Uma abordagem de aprendizado por reforço profundo para o problema dinâmico assíncrono de despacho de veículos

Representação espacial do ambiente no DVDP assíncrono

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.

Esse é o problema dinâmico de despacho de veículos (DVDP, do inglês dynamic vehicle dispatching problem): 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.

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 em tempo real, com base no estado atual do sistema. Ele é mais bem compreendido como um problema de controle ótimo — exatamente o tipo de cenário em que o aprendizado por reforço se destaca.

Despacho síncrono vs. assíncrono

O despacho dinâmico pode ser feito em dois modos:

  • Modo síncrono: 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).
  • Modo assíncrono: o despacho é disparado imediatamente sempre que uma requisição chega ou um veículo fica ocioso. Não é preciso esperar pelo próximo ciclo de decisão.

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 “lote” 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 reduz drasticamente o espaço de decisão: 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.

Apesar dessas vantagens, o DVDP assíncrono permanece amplamente inexplorado. Este post resume nossa abordagem para formulá-lo e resolvê-lo.

Formulando o problema como um processo de decisão semi-Markoviano

A característica definidora do DVDP assíncrono é que as épocas de decisão ocorrem em instantes aleatórios em tempo contínuo. Dois eventos disparam uma decisão:

  • um evento de “nova chamada”, quando uma nova requisição é comunicada ao agente, e
  • um evento de “veículo livre”, quando um veículo termina de atender uma requisição.

Processo de decisão sequencial no DVDP assíncrono

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 processo de decisão semi-Markoviano (SMDP, do inglês semi-Markov decision process) 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.

Representação espacial dos eventos de “veículo livre” e “nova chamada”

Outra característica-chave é que o conjunto de decisões viáveis $\mathcal{A}(s)$ depende de qual evento foi disparado:

  • Em um evento de veículo livre, 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 linearmente com o número de requisições pendentes (e é vazio se nenhuma estiver aguardando).
  • Em um evento de nova chamada, 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).

Buscamos uma política $\pi$ que maximize o valor esperado do fluxo de recompensas descontadas em um horizonte infinito:

$$ 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} $$

Note que a recompensa é integrada sobre os intervalos aleatórios 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 é:

$$ v^\star(s) = \max_{a \in \mathcal{A}(s)} \Big\lbrace \bar{r}(s,a) + \mathbb{E}\big[e^{-\beta \tau} v^\star(S’)\big] \Big\rbrace, \quad \forall s \in \mathcal{S} $$

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.

Por que não resolver de forma exata? 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.

O caso síncrono como um caso particular

O despacho síncrono pode ser visto como um SMDP restrito, 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

$$ v^\star(s) = \max_{a \in \mathcal{A}(s)} \Big\lbrace r(s, a) + \gamma \mathbb{E}[v^\star(s’)] \Big\rbrace, \quad \forall s \in \mathcal{S}. $$

O detalhe está no conjunto de ações: no modo síncrono, $\mathcal{A}(s)$ contém todos os emparelhamentos viáveis 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:

$$ \begin{align} \max \quad & \sum_{i=1}^n \sum_{j=1}^n \tilde{q}_{ij}, x_{ij} \\ \text{s.a.} \quad & \sum_{j=1}^n x_{ij} = 1, \quad i \in \mathcal{I} \\ & \sum_{i=1}^n x_{ij} = 1, \quad j \in \mathcal{J} \\ & x_{ij} \in {0,1}, \quad (i,j) \in \mathcal{I} \times \mathcal{J} \end{align} $$

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.

Nossa solução: RL profundo + simulação de eventos discretos

Como a maioria dos métodos modernos de RL, trabalhamos com funções Q (funções de valor-ação). A função Q ótima satisfaz a equação de Bellman do SMDP

$$ q^\star(s,a) = \bar{r}(s,a) + \mathbb{E}\Big[ e^{-\beta \tau} \max_{a’ \in \mathcal{A}(s’)} q^\star(s’,a’)\Big] $$

e, uma vez conhecida, uma política ótima é obtida agindo de forma gulosa:

$$\pi^\star(s) \in \arg\max_{a \in \mathcal{A}(s)} q^\star(s,a).$$

A vantagem das funções Q é que elas são livres de modelo — não precisamos de um modelo probabilístico explícito da dinâmica do ambiente para agir.

Dois agentes especializados

Inicialmente tentamos um único agente lidando com os dois tipos de evento, mas o treinamento foi instável. Dividir o problema em dois agentes especializados funcionou muito melhor:

  • o NewCallAgent, que atua nos eventos de nova chamada (sob a perspectiva dos passageiros), e
  • o FreeVehicleAgent, que atua nos eventos de veículo livre (sob a perspectiva dos motoristas).

Cada agente se concentra em seu próprio espaço de decisão e aprende decisões melhores para o seu lado do problema.

Arquitetura geral da abordagem de solução proposta

Como o espaço de estados é enorme, usamos redes neurais como aproximadores de função 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.

Fluxo de dados na estimação do valor Q de um par estado–ação

Aprendendo com experiência simulada

Trajetórias de amostra são geradas por um simulador de eventos discretos. À medida que a simulação avança, cada transição é armazenada em um buffer de experiência como uma tupla

$$ (s, a, r, s’, \tau) $$

em que $s$ é o estado atual, $a$ a decisão, $r$ a recompensa, $s'$ o próximo estado e $\tau$ o tempo de transição realizado. Treinamos as redes com o algoritmo double deep Q-learning, 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

$$ Y^{\text{DoubleQ}} = r + e^{-\beta \tau} q\Bigg(s’, \arg\max_{a’ \in \mathcal{A}(s’)} q(s’, a’; \boldsymbol{\theta}^{\text{A}}_t);\ \boldsymbol{\theta}^{\text{B}}_t\Bigg) $$

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.

Estudo de caso: gestão de frota de táxis na cidade de Nova York

Validamos a abordagem em um cenário realista de gestão de frota de táxis usando os registros de viagens da New York City Taxi and Limousine Commission. Restringimos o estudo às viagens dentro do distrito do Brooklyn 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).

Instantâneo da distribuição de chamadas e veículos no Brooklyn às 19h

O simulador de eventos discretos, do tipo orientado por rastros (trace-driven), foi construído com o SimPy . 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).

Características de estado e ação

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:

Índice Tipo Descrição da característica
1 veículo Coordenadas (x, y) da localização atual do veículo
2 veículo Coordenadas (x, y) do destino do veículo
3 veículo Tempo para concluir o serviço atual
4 veículo Probabilidade de cancelamento
5 veículo Situação do veículo (ocupado ou ocioso)
6 requisição Coordenadas (x, y) da origem da requisição
7 requisição Coordenadas (x, y) do destino da requisição
8 requisição Instante em que a requisição chegou ao sistema
9 contexto Razão nº de veículos / nº de requisições nos últimos 15 minutos
10 contexto Característica cíclica da semana: $\sin(2\pi, m / 10080)$
11 contexto Característica cíclica da semana: $\cos(2\pi, m / 10080)$

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.

Projetando a função de recompensa

Acertar a recompensa foi crucial. Recompensar apenas 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:

$$ r_d = t_d + b $$

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 maiores taxas de atendimento. Ajustar $b$ equilibra “muitas corridas curtas” contra “poucas corridas longas”. Por fim, como o tempo total de serviço $t_s$ é aleatório, descontamos a recompensa ao longo dessa duração:

$$ 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)} $$

de modo que atribuições com a mesma recompensa imediata, mas com durações diferentes, sejam valoradas de forma distinta.

Resultados

Comparamos a política aprendida (rotulada como DQN) com quatro heurísticas assíncronas — Vizinho Mais Próximo (NN, do inglês Nearest Neighbor), 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 lote (batch) que resolvem um problema de designação linear a cada 15 segundos com o algoritmo de Jonker–Volgenant:

  • BWO — lote sem o tempo de espera prévio (minimiza apenas o tempo de deslocamento do veículo até a origem), e
  • BW — lote com o tempo de espera prévio (minimiza espera + deslocamento).

Avaliamos quatro regimes de oferta em relação à demanda — “muito fácil”, “fácil”, “médio” e “difícil” — correspondentes a razões frota/demanda de 3%, 2%, 1% e 0,5%. Três métricas foram acompanhadas: atraso médio (tempo entre a requisição e o embarque), taxa de cancelamento e tempo total de serviço (uma proxy para a receita dos motoristas).

Atraso médio durante a fase de teste

Atraso médio. Entre as políticas assíncronas, a DQN reduziu o atraso médio em 50,6% 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 “esperar para ver” — mas, como veremos, isso tem um custo.

Taxa de cancelamento durante a fase de teste

Taxa de cancelamento. Nos cenários difícil e médio, a DQN obteve a menor taxa de cancelamento entre todas as políticas — 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 compromisso (trade-off): a BW vence em atraso, mas favorece requisições com pouco tempo de espera, deixando as demais aguardando até que cancelem.

Tempo total de serviço durante a fase de teste

Tempo total de serviço. 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.

Número de requisições pendentes ao longo de um dia de 24 horas

Por fim, a política DQN mantém o menor conjunto de requisições em espera 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.

De modo geral, a política assíncrona baseada em aprendizado (DQN) atinge um equilíbrio eficaz entre eficiência e confiabilidade do serviço, com desempenho especialmente bom nos cenários com recursos escassos, que são os que mais importam na prática.

Conclusão

Neste trabalho, formulamos o problema assíncrono dinâmico de despacho de veículos como um processo de decisão semi-Markoviano e o resolvemos combinando simulação de eventos discretos com aprendizado por reforço profundo, 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é 50,6% de redução no atraso médio dos passageiros e 18,4% de redução nas taxas de cancelamento em comparação com outras políticas assíncronas, mantendo tempos totais de serviço comparáveis.

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.

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.

Referências

[1] 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. https://doi.org/10.1016/j.ait.2025.100038

[2] 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.

[3] 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.

[4] Puterman, M. L. Markov Decision Processes: Discrete Stochastic Dynamic Programming. John Wiley & Sons, 2014.

[5] van Hasselt, H.; Guez, A.; Silver, D. Deep reinforcement learning with double Q-learning. Proceedings of the AAAI Conference on Artificial Intelligence, 2016.

Como citar este artigo

Cordeiro, F. E. A., & Pitombeira-Neto, A. R. (2025). A deep reinforcement learning approach for the asynchronous dynamic vehicle dispatching problem. Artificial Intelligence for Transportation, 3–4, 100038. https://doi.org/10.1016/j.ait.2025.100038

@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}
}
Avatar
Anselmo R. Pitombeira Neto
Departamento de Eng. de Produção

Professor Associado da UFC e líder do OPL. Seus interesses de pesquisa incluem a aplicação de inteligência artificial e pesquisa operacional a problemas em produção, logística, transportes, energia e saúde.

comments powered by Disqus