<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>aprendizado por reforço | OPL</title>
    <link>http://www.opl.ufc.br/tags/aprendizado-por-reforco/</link>
      <atom:link href="http://www.opl.ufc.br/tags/aprendizado-por-reforco/index.xml" rel="self" type="application/rss+xml" />
    <description>aprendizado por reforço</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>pt</language><copyright>© Built by OPL  - 2026</copyright><lastBuildDate>Tue, 07 Jul 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>http://www.opl.ufc.br/images/logo_hua2de5c07dd59517e5a694e3aa947c0a9_21275_300x300_fit_lanczos_2.png</url>
      <title>aprendizado por reforço</title>
      <link>http://www.opl.ufc.br/tags/aprendizado-por-reforco/</link>
    </image>
    
    <item>
      <title>Uma abordagem de aprendizado por reforço profundo para o problema dinâmico assíncrono de despacho de veículos</title>
      <link>http://www.opl.ufc.br/post/vehicle_dispatching/</link>
      <pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate>
      <guid>http://www.opl.ufc.br/post/vehicle_dispatching/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_1.png&#34; alt=&#34;Representação espacial do ambiente no DVDP assíncrono&#34;&gt;&lt;/p&gt;
&lt;p&gt;Imagine que você gerencia uma frota de táxis em uma grande cidade. Requisições de corrida surgem em horários e locais imprevisíveis, e os motoristas ficam disponíveis sempre que terminam uma viagem. Toda vez que um desses eventos ocorre, você precisa decidir — agora mesmo — qual veículo atende qual requisição. Se esperar demais, os passageiros cancelam; se atribuir sem critério, você perde eficiência e qualidade de serviço.&lt;/p&gt;
&lt;p&gt;Esse é o &lt;strong&gt;problema dinâmico de despacho de veículos (DVDP, do inglês &lt;em&gt;dynamic vehicle dispatching problem&lt;/em&gt;)&lt;/strong&gt;: atribuir veículos a requisições que surgem de forma estocástica no tempo e no espaço. Ele aparece em serviços de táxi e de aplicativos de mobilidade, entrega de comida, transporte de cargas, mineração a céu aberto e sistemas de emergência, como patrulhamento policial e gestão de frotas de ambulâncias.&lt;/p&gt;
&lt;p&gt;O DVDP é fundamentalmente diferente do roteamento clássico de veículos. Em problemas de roteamento, a demanda e os recursos são geralmente conhecidos de antemão, e o objetivo é calcular um plano ótimo (por exemplo, o melhor conjunto de rotas). No DVDP, um agente de controle precisa atribuir veículos a requisições &lt;strong&gt;em tempo real&lt;/strong&gt;, com base no estado atual do sistema. Ele é mais bem compreendido como um problema de &lt;em&gt;controle&lt;/em&gt; ótimo — exatamente o tipo de cenário em que o aprendizado por reforço se destaca.&lt;/p&gt;
&lt;h2 id=&#34;despacho-síncrono-vs-assíncrono&#34;&gt;Despacho síncrono vs. assíncrono&lt;/h2&gt;
&lt;p&gt;O despacho dinâmico pode ser feito em dois modos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modo síncrono:&lt;/strong&gt; as atribuições ocorrem em intervalos de tempo fixos. A cada época de decisão, um agente central reúne todas as requisições pendentes e os veículos disponíveis e resolve um problema combinatório de emparelhamento (tipicamente um problema de designação linear).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modo assíncrono:&lt;/strong&gt; o despacho é disparado &lt;em&gt;imediatamente&lt;/em&gt; sempre que uma requisição chega ou um veículo fica ocioso. Não é preciso esperar pelo próximo ciclo de decisão.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A maior parte da literatura estuda o modo síncrono, mas o modo assíncrono tem vantagens práticas reais. No patrulhamento policial ou na gestão de ambulâncias, esperar a formação de um &amp;ldquo;lote&amp;rdquo; de ocorrências é socialmente inaceitável — um veículo precisa partir o mais rápido possível. O despacho assíncrono também permite uma tomada de decisão distribuída, em vez de centralizada, e &lt;strong&gt;reduz drasticamente o espaço de decisão&lt;/strong&gt;: em vez de escolher entre todos os emparelhamentos possíveis (uma explosão combinatória), o agente precisa apenas escolher um único veículo para uma requisição, ou uma única requisição para um veículo.&lt;/p&gt;
&lt;p&gt;Apesar dessas vantagens, o DVDP assíncrono permanece amplamente inexplorado. Este post resume nossa abordagem para formulá-lo e resolvê-lo.&lt;/p&gt;
&lt;h2 id=&#34;formulando-o-problema-como-um-processo-de-decisão-semi-markoviano&#34;&gt;Formulando o problema como um processo de decisão semi-Markoviano&lt;/h2&gt;
&lt;p&gt;A característica definidora do DVDP assíncrono é que as &lt;strong&gt;épocas de decisão ocorrem em instantes aleatórios em tempo contínuo&lt;/strong&gt;. Dois eventos disparam uma decisão:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;um evento de &lt;strong&gt;&amp;ldquo;nova chamada&amp;rdquo;&lt;/strong&gt;, quando uma nova requisição é comunicada ao agente, e&lt;/li&gt;
&lt;li&gt;um evento de &lt;strong&gt;&amp;ldquo;veículo livre&amp;rdquo;&lt;/strong&gt;, quando um veículo termina de atender uma requisição.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_2.png&#34; alt=&#34;Processo de decisão sequencial no DVDP assíncrono&#34;&gt;&lt;/p&gt;
&lt;p&gt;Como esses eventos ocorrem de forma estocástica, os intervalos de tempo entre decisões sucessivas são, eles próprios, aleatórios. É exatamente isso que um &lt;strong&gt;processo de decisão semi-Markoviano (SMDP, do inglês &lt;em&gt;semi-Markov decision process&lt;/em&gt;)&lt;/strong&gt; captura — uma generalização do processo de decisão de Markov (MDP) que permite que as épocas de decisão sejam separadas por intervalos de tempo aleatórios.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_3.png&#34; alt=&#34;Representação espacial dos eventos de &amp;ldquo;veículo livre&amp;rdquo; e &amp;ldquo;nova chamada&amp;rdquo;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Outra característica-chave é que o conjunto de decisões viáveis $\mathcal{A}(s)$ depende de qual evento foi disparado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Em um evento de &lt;strong&gt;veículo livre&lt;/strong&gt;, o agente escolhe qual requisição em espera será atribuída ao veículo que acabou de ficar disponível. O tamanho de $\mathcal{A}(s)$ cresce &lt;em&gt;linearmente&lt;/em&gt; com o número de requisições pendentes (e é vazio se nenhuma estiver aguardando).&lt;/li&gt;
&lt;li&gt;Em um evento de &lt;strong&gt;nova chamada&lt;/strong&gt;, o agente escolhe qual veículo livre será atribuído à requisição que está chegando. O tamanho de $\mathcal{A}(s)$ cresce linearmente com o número de veículos livres (e é vazio se nenhum estiver disponível).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buscamos uma política $\pi$ que maximize o valor esperado do fluxo de recompensas descontadas em um horizonte infinito:&lt;/p&gt;
&lt;p&gt;$$ v^\star(s) = \max_{\pi \in \Pi} \lim_{N \to \infty} \mathbb{E} \Bigg[ \sum_{k=0}^{N-1} \int_{T_{k}}^{T_{k+1}} e^{-\beta t} r(S_k, \pi(S_k)) dt \Bigg| S_0 = s \Bigg], \quad \forall s \in \mathcal{S} $$&lt;/p&gt;
&lt;p&gt;Note que a recompensa é integrada sobre os intervalos &lt;em&gt;aleatórios&lt;/em&gt; entre as épocas de decisão $T_k$ e $T_{k+1}$, e que $e^{-\beta t}$ é o análogo em tempo contínuo do usual fator de desconto discreto $\gamma$ (com $e^{-\beta} = \gamma$). A equação de Bellman correspondente para o SMDP descontado é:&lt;/p&gt;
&lt;p&gt;$$ v^\star(s) = \max_{a \in \mathcal{A}(s)} \Big\lbrace \bar{r}(s,a) + \mathbb{E}\big[e^{-\beta \tau} v^\star(S&amp;rsquo;)\big] \Big\rbrace, \quad \forall s \in \mathcal{S} $$&lt;/p&gt;
&lt;p&gt;em que $\bar{r}(s,a)$ é a recompensa esperada acumulada entre duas épocas de decisão consecutivas. A única diferença real em relação à equação de Bellman do MDP comum é o intervalo aleatório $\tau$ que aparece no termo de desconto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por que não resolver de forma exata?&lt;/strong&gt; A programação dinâmica exata (iteração de valor ou de política) exige a enumeração de todo o espaço de estados. Mas um estado precisa, no mínimo, codificar as localizações de cada veículo e de cada requisição — de modo que o espaço de estados cresce exponencialmente com o tamanho da frota e da demanda. Além disso, a dinâmica complexa torna impossível escrever uma expressão fechada para as probabilidades de transição. Métodos exatos são inviáveis para instâncias realistas, o que motiva uma abordagem de simulação combinada com aprendizado.&lt;/p&gt;
&lt;h2 id=&#34;o-caso-síncrono-como-um-caso-particular&#34;&gt;O caso síncrono como um caso particular&lt;/h2&gt;
&lt;p&gt;O despacho síncrono pode ser visto como um SMDP &lt;em&gt;restrito&lt;/em&gt;, no qual as épocas de decisão são forçadas a ocorrer em intervalos fixos — ou seja, um MDP comum. Sua equação de Bellman é simplesmente&lt;/p&gt;
&lt;p&gt;$$ v^\star(s) = \max_{a \in \mathcal{A}(s)} \Big\lbrace r(s, a) + \gamma \mathbb{E}[v^\star(s&amp;rsquo;)] \Big\rbrace, \quad \forall s \in \mathcal{S}. $$&lt;/p&gt;
&lt;p&gt;O detalhe está no conjunto de ações: no modo síncrono, $\mathcal{A}(s)$ contém &lt;em&gt;todos os emparelhamentos viáveis&lt;/em&gt; entre veículos e requisições, de modo que escolher a melhor ação significa resolver um programa não linear inteiro a cada passo. Para tornar isso tratável, os autores na literatura geralmente relaxam a função Q global em uma soma de termos por par $\tilde{q}_{ij}$ e resolvem, em vez disso, um problema de alocação linear:&lt;/p&gt;
&lt;p&gt;$$ \begin{align} \max \quad &amp;amp; \sum_{i=1}^n \sum_{j=1}^n \tilde{q}_{ij}, x_{ij} \\ \text{s.a.} \quad &amp;amp; \sum_{j=1}^n x_{ij} = 1, \quad i \in \mathcal{I} \\ &amp;amp; \sum_{i=1}^n x_{ij} = 1, \quad j \in \mathcal{J} \\ &amp;amp; x_{ij} \in {0,1}, \quad (i,j) \in \mathcal{I} \times \mathcal{J} \end{align} $$&lt;/p&gt;
&lt;p&gt;Esse relaxamento torna o cálculo tratável, mas decompõe o valor global em contribuições independentes de cada par motorista–requisição, ignorando suas interações e produzindo decisões sob uma perspectiva individual, e não global. Os intervalos fixos também acrescentam latência: um passageiro rejeitado em um ciclo precisa esperar pelo próximo. O despacho assíncrono contorna ambos os problemas: um novo veículo pode ser proposto no instante em que uma rejeição acontece.&lt;/p&gt;
&lt;h2 id=&#34;nossa-solução-rl-profundo--simulação-de-eventos-discretos&#34;&gt;Nossa solução: RL profundo + simulação de eventos discretos&lt;/h2&gt;
&lt;p&gt;Como a maioria dos métodos modernos de RL, trabalhamos com &lt;strong&gt;funções Q&lt;/strong&gt; (funções de valor-ação). A função Q ótima satisfaz a equação de Bellman do SMDP&lt;/p&gt;
&lt;p&gt;$$ q^\star(s,a) = \bar{r}(s,a) + \mathbb{E}\Big[ e^{-\beta \tau} \max_{a&amp;rsquo; \in \mathcal{A}(s&amp;rsquo;)} q^\star(s&amp;rsquo;,a&amp;rsquo;)\Big] $$&lt;/p&gt;
&lt;p&gt;e, uma vez conhecida, uma política ótima é obtida agindo de forma gulosa:&lt;/p&gt;
&lt;p&gt;$$\pi^\star(s) \in \arg\max_{a \in \mathcal{A}(s)} q^\star(s,a).$$&lt;/p&gt;
&lt;p&gt;A vantagem das funções Q é que elas são &lt;strong&gt;livres de modelo&lt;/strong&gt; — não precisamos de um modelo probabilístico explícito da dinâmica do ambiente para agir.&lt;/p&gt;
&lt;h3 id=&#34;dois-agentes-especializados&#34;&gt;Dois agentes especializados&lt;/h3&gt;
&lt;p&gt;Inicialmente tentamos um único agente lidando com os dois tipos de evento, mas o treinamento foi instável. Dividir o problema em &lt;strong&gt;dois agentes especializados&lt;/strong&gt; funcionou muito melhor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;o &lt;strong&gt;&lt;code&gt;NewCallAgent&lt;/code&gt;&lt;/strong&gt;, que atua nos eventos de nova chamada (sob a perspectiva dos passageiros), e&lt;/li&gt;
&lt;li&gt;o &lt;strong&gt;&lt;code&gt;FreeVehicleAgent&lt;/code&gt;&lt;/strong&gt;, que atua nos eventos de veículo livre (sob a perspectiva dos motoristas).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada agente se concentra em seu próprio espaço de decisão e aprende decisões melhores para o seu lado do problema.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_5.png&#34; alt=&#34;Arquitetura geral da abordagem de solução proposta&#34;&gt;&lt;/p&gt;
&lt;p&gt;Como o espaço de estados é enorme, usamos &lt;strong&gt;redes neurais como aproximadores de função&lt;/strong&gt; para a função Q. Sempre que um evento de decisão ocorre durante a simulação, o agente correspondente constrói um vetor de características $\phi(s,a)$ para cada ação viável, o passa por sua rede para obter $\hat{q}(s,a)$ e escolhe a ação com o maior valor Q estimado. Como o conjunto de ações cresce apenas linearmente, avaliar todos os candidatos é rápido — bem dentro do orçamento de tempo de um sistema online.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_6.png&#34; alt=&#34;Fluxo de dados na estimação do valor Q de um par estado–ação&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;aprendendo-com-experiência-simulada&#34;&gt;Aprendendo com experiência simulada&lt;/h3&gt;
&lt;p&gt;Trajetórias de amostra são geradas por um &lt;strong&gt;simulador de eventos discretos&lt;/strong&gt;. À medida que a simulação avança, cada transição é armazenada em um &lt;em&gt;buffer de experiência&lt;/em&gt; como uma tupla&lt;/p&gt;
&lt;p&gt;$$ (s, a, r, s&amp;rsquo;, \tau) $$&lt;/p&gt;
&lt;p&gt;em que $s$ é o estado atual, $a$ a decisão, $r$ a recompensa, $s&#39;$ o próximo estado e $\tau$ o tempo de transição realizado. Treinamos as redes com o algoritmo &lt;strong&gt;double deep Q-learning&lt;/strong&gt;, que usa duas redes (A e B) para reduzir o viés de superestimação do Q-learning padrão. Dada uma transição amostrada, a rede A é atualizada em direção ao alvo&lt;/p&gt;
&lt;p&gt;$$ Y^{\text{DoubleQ}} = r + e^{-\beta \tau} q\Bigg(s&amp;rsquo;, \arg\max_{a&amp;rsquo; \in \mathcal{A}(s&amp;rsquo;)} q(s&amp;rsquo;, a&amp;rsquo;; \boldsymbol{\theta}^{\text{A}}_t);\ \boldsymbol{\theta}^{\text{B}}_t\Bigg) $$&lt;/p&gt;
&lt;p&gt;com a rede B atualizada de forma simétrica. O aprendizado começa assim que o buffer acumula transições iniciais suficientes (coletadas sob uma política aleatória), e ambos os agentes são treinados simultaneamente à medida que a simulação avança.&lt;/p&gt;
&lt;h2 id=&#34;estudo-de-caso-gestão-de-frota-de-táxis-na-cidade-de-nova-york&#34;&gt;Estudo de caso: gestão de frota de táxis na cidade de Nova York&lt;/h2&gt;
&lt;p&gt;Validamos a abordagem em um cenário realista de gestão de frota de táxis usando os registros de viagens da &lt;strong&gt;New York City Taxi and Limousine Commission&lt;/strong&gt;. Restringimos o estudo às viagens dentro do distrito do &lt;strong&gt;Brooklyn&lt;/strong&gt; realizadas via Uber ou Lyft, usando os dados de janeiro de 2022 para treinamento e os dados de fevereiro de 2022 — completamente isolados para evitar vazamento de dados — para teste. Todas as distâncias usaram a métrica de Manhattan (L1).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_7.png&#34; alt=&#34;Instantâneo da distribuição de chamadas e veículos no Brooklyn às 19h&#34;&gt;&lt;/p&gt;
&lt;p&gt;O simulador de eventos discretos, do tipo &lt;strong&gt;orientado por rastros (&lt;em&gt;trace-driven&lt;/em&gt;)&lt;/strong&gt;, foi construído com o 
&lt;a href=&#34;https://simpy.readthedocs.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SimPy&lt;/a&gt;
. Para aumentar o realismo, modelamos as rejeições de atribuição: a probabilidade de rejeição de cada motorista é amostrada de uma distribuição beta, e a tolerância de espera de cada passageiro, de uma distribuição gama (de modo que requisições que esperam tempo demais acabam canceladas).&lt;/p&gt;
&lt;h3 id=&#34;características-de-estado-e-ação&#34;&gt;Características de estado e ação&lt;/h3&gt;
&lt;p&gt;Cada par estado–ação $(s,a)$ é mapeado para um vetor de características $\phi(s,a)$ que combina informações sobre o veículo, a requisição e o contexto mais amplo:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;Índice&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;Tipo&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Descrição da característica&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;veículo&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Coordenadas (x, y) da localização atual do veículo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;veículo&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Coordenadas (x, y) do destino do veículo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;3&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;veículo&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Tempo para concluir o serviço atual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;4&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;veículo&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Probabilidade de cancelamento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;5&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;veículo&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Situação do veículo (ocupado ou ocioso)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;6&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;requisição&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Coordenadas (x, y) da origem da requisição&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;7&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;requisição&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Coordenadas (x, y) do destino da requisição&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;8&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;requisição&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Instante em que a requisição chegou ao sistema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;9&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;contexto&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Razão nº de veículos / nº de requisições nos últimos 15 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;10&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;contexto&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Característica cíclica da semana: $\sin(2\pi, m / 10080)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;11&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;contexto&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Característica cíclica da semana: $\cos(2\pi, m / 10080)$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Aqui, $m$ é o minuto dentro da semana (10080 minutos = 1 semana), de modo que as características cíclicas permitem ao modelo capturar padrões semanais de demanda.&lt;/p&gt;
&lt;h3 id=&#34;projetando-a-função-de-recompensa&#34;&gt;Projetando a função de recompensa&lt;/h3&gt;
&lt;p&gt;Acertar a recompensa foi crucial. Recompensar &lt;em&gt;apenas&lt;/em&gt; tempos de espera curtos saiu pela culatra: os agentes aprenderam a atender as requisições mais recentes e deixaram as antigas definharem até o cancelamento. Nossa recompensa final parte de um termo proporcional à duração da corrida, mais um bônus fixo:&lt;/p&gt;
&lt;p&gt;$$ r_d = t_d + b $$&lt;/p&gt;
&lt;p&gt;em que $t_d$ é o tempo estimado de viagem da origem ao destino. Corridas mais longas são mais desejáveis (maiores ganhos), enquanto a constante $b$ atua como uma recompensa fixa por corrida que incentiva &lt;strong&gt;maiores taxas de atendimento&lt;/strong&gt;. Ajustar $b$ equilibra &amp;ldquo;muitas corridas curtas&amp;rdquo; contra &amp;ldquo;poucas corridas longas&amp;rdquo;. Por fim, como o tempo total de serviço $t_s$ é aleatório, descontamos a recompensa ao longo dessa duração:&lt;/p&gt;
&lt;p&gt;$$ r = \dfrac{r_d}{t_s} + \gamma \dfrac{r_d}{t_s} + \cdots + \gamma^{t_s-1} \dfrac{r_d}{t_s} = \dfrac{r_d(\gamma^{t_s} - 1)}{t_s(\gamma - 1)} $$&lt;/p&gt;
&lt;p&gt;de modo que atribuições com a mesma recompensa imediata, mas com durações diferentes, sejam valoradas de forma distinta.&lt;/p&gt;
&lt;h2 id=&#34;resultados&#34;&gt;Resultados&lt;/h2&gt;
&lt;p&gt;Comparamos a política aprendida (rotulada como &lt;strong&gt;DQN&lt;/strong&gt;) com quatro heurísticas assíncronas — Vizinho Mais Próximo (NN, do inglês &lt;em&gt;Nearest Neighbor&lt;/em&gt;), Primeiro a Entrar, Primeiro a Sair (FIFO), Último a Entrar, Primeiro a Sair (LIFO) e Aleatória — e com duas políticas síncronas em &lt;strong&gt;lote (&lt;em&gt;batch&lt;/em&gt;)&lt;/strong&gt; que resolvem um problema de designação linear a cada 15 segundos com o algoritmo de Jonker–Volgenant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BWO&lt;/strong&gt; — lote &lt;em&gt;sem&lt;/em&gt; o tempo de espera prévio (minimiza apenas o tempo de deslocamento do veículo até a origem), e&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BW&lt;/strong&gt; — lote &lt;em&gt;com&lt;/em&gt; o tempo de espera prévio (minimiza espera + deslocamento).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avaliamos quatro regimes de oferta em relação à demanda — &amp;ldquo;muito fácil&amp;rdquo;, &amp;ldquo;fácil&amp;rdquo;, &amp;ldquo;médio&amp;rdquo; e &amp;ldquo;difícil&amp;rdquo; — correspondentes a razões frota/demanda de 3%, 2%, 1% e 0,5%. Três métricas foram acompanhadas: &lt;strong&gt;atraso médio&lt;/strong&gt; (tempo entre a requisição e o embarque), &lt;strong&gt;taxa de cancelamento&lt;/strong&gt; e &lt;strong&gt;tempo total de serviço&lt;/strong&gt; (uma proxy para a receita dos motoristas).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_13.png&#34; alt=&#34;Atraso médio durante a fase de teste&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Atraso médio.&lt;/strong&gt; Entre as políticas assíncronas, a DQN reduziu o atraso médio em &lt;strong&gt;50,6%&lt;/strong&gt; em relação à segunda melhor (NN) no cenário difícil. A política síncrona BW alcançou o menor atraso geral (3,4 min contra 6,49 min da DQN no cenário difícil), graças à sua estratégia de &amp;ldquo;esperar para ver&amp;rdquo; — mas, como veremos, isso tem um custo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_14.png&#34; alt=&#34;Taxa de cancelamento durante a fase de teste&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Taxa de cancelamento.&lt;/strong&gt; Nos cenários difícil e médio, a DQN obteve a &lt;strong&gt;menor taxa de cancelamento entre todas as políticas&lt;/strong&gt; — uma redução de 18,4% em relação à segunda melhor (BWO) no cenário difícil. Como as políticas assíncronas atribuem veículos o mais rápido possível, elas evitam os cancelamentos induzidos pela estratégia de espera das políticas em lote. Isso revela um verdadeiro &lt;strong&gt;compromisso (&lt;em&gt;trade-off&lt;/em&gt;)&lt;/strong&gt;: a BW vence em atraso, mas favorece requisições com pouco tempo de espera, deixando as demais aguardando até que cancelem.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_15.png&#34; alt=&#34;Tempo total de serviço durante a fase de teste&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tempo total de serviço.&lt;/strong&gt; As políticas DQN e BWO entregaram os maiores tempos totais de serviço (receita dos motoristas) no cenário difícil, sem diferença estatisticamente significativa entre elas; as diferenças foram desprezíveis nos cenários mais fáceis.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.opl.ufc.br/img/vehicle_dispatching/figure_16.png&#34; alt=&#34;Número de requisições pendentes ao longo de um dia de 24 horas&#34;&gt;&lt;/p&gt;
&lt;p&gt;Por fim, a política DQN mantém o &lt;strong&gt;menor conjunto de requisições em espera&lt;/strong&gt; durante a maior parte do dia, especialmente nos horários de pico — uma consequência direta de sua natureza de atribuir o mais rápido possível.&lt;/p&gt;
&lt;p&gt;De modo geral, a política assíncrona baseada em aprendizado (DQN) atinge um equilíbrio eficaz entre &lt;strong&gt;eficiência e confiabilidade do serviço&lt;/strong&gt;, com desempenho especialmente bom nos cenários com recursos escassos, que são os que mais importam na prática.&lt;/p&gt;
&lt;h2 id=&#34;conclusão&#34;&gt;Conclusão&lt;/h2&gt;
&lt;p&gt;Neste trabalho, formulamos o problema &lt;strong&gt;assíncrono&lt;/strong&gt; dinâmico de despacho de veículos como um processo de decisão semi-Markoviano e o resolvemos combinando &lt;strong&gt;simulação de eventos discretos&lt;/strong&gt; com &lt;strong&gt;aprendizado por reforço profundo&lt;/strong&gt;, usando dois agentes especializados treinados via double deep Q-learning. Com dados reais de táxis de Nova York, a política aprendida alcançou até &lt;strong&gt;50,6% de redução no atraso médio dos passageiros&lt;/strong&gt; e &lt;strong&gt;18,4% de redução nas taxas de cancelamento&lt;/strong&gt; em comparação com outras políticas assíncronas, mantendo tempos totais de serviço comparáveis.&lt;/p&gt;
&lt;p&gt;O arcabouço fornece uma base escalável e adaptável para a gestão de frotas em tempo real em ambientes estocásticos e dinâmicos. Direções futuras incluem cenários multiagente, a integração de previsão de demanda e a melhoria da transferibilidade de políticas entre diferentes contextos operacionais.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Este estudo foi financiado em parte pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq; Processo nº 407466/2021-5) e pela NVIDIA Corporation por meio do Programa GPU Grant.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;referências&#34;&gt;Referências&lt;/h2&gt;
&lt;p&gt;&lt;a id=&#34;cordeiro&#34;&gt;[1]&lt;/a&gt;
Cordeiro, F. E. A.; Pitombeira-Neto, A. R.
A deep reinforcement learning approach for the asynchronous dynamic vehicle dispatching problem.
Artificial Intelligence for Transportation, 3–4, 100038, 2025. &lt;a href=&#34;https://doi.org/10.1016/j.ait.2025.100038&#34;&gt;https://doi.org/10.1016/j.ait.2025.100038&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id=&#34;powell&#34;&gt;[2]&lt;/a&gt;
Powell, W. B.
A stochastic formulation of the dynamic assignment problem, with an application to truckload motor carriers.
Transportation Science, 30(3), 195–219, 1996.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#34;xu&#34;&gt;[3]&lt;/a&gt;
Xu, Z. et al.
Large-scale order dispatch in on-demand ride-hailing platforms: A learning and planning approach.
Proceedings of the 24th ACM SIGKDD, 2018.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#34;puterman&#34;&gt;[4]&lt;/a&gt;
Puterman, M. L.
Markov Decision Processes: Discrete Stochastic Dynamic Programming.
John Wiley &amp;amp; Sons, 2014.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#34;vanhasselt&#34;&gt;[5]&lt;/a&gt;
van Hasselt, H.; Guez, A.; Silver, D.
Deep reinforcement learning with double Q-learning.
Proceedings of the AAAI Conference on Artificial Intelligence, 2016.&lt;/p&gt;
&lt;h2 id=&#34;como-citar-este-artigo&#34;&gt;Como citar este artigo&lt;/h2&gt;
&lt;p&gt;Cordeiro, F. E. A., &amp;amp; Pitombeira-Neto, A. R. (2025). A deep reinforcement learning approach for the asynchronous dynamic vehicle dispatching problem. &lt;em&gt;Artificial Intelligence for Transportation&lt;/em&gt;, &lt;em&gt;3–4&lt;/em&gt;, 100038. &lt;a href=&#34;https://doi.org/10.1016/j.ait.2025.100038&#34;&gt;https://doi.org/10.1016/j.ait.2025.100038&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@article{cordeiro2025deep,
  title     = {A deep reinforcement learning approach for the asynchronous dynamic vehicle dispatching problem},
  author    = {Cordeiro, Francisco Edyvalberty A. and Pitombeira-Neto, Anselmo R.},
  journal   = {Artificial Intelligence for Transportation},
  volume    = {3--4},
  pages     = {100038},
  year      = {2025},
  issn      = {3050-8606},
  doi       = {10.1016/j.ait.2025.100038},
  publisher = {Elsevier}
}
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
  </channel>
</rss>
