Quantcast

Porque é que a Uber nem sempre lhe envia o carro mais próximo?

2 Comentários

Abre a aplicação, pede uma viagem e espera que apareça um motorista. Parece simples. Mas, por trás dessa decisão, há mapas divididos em pequenas células, previsões de trânsito e combinações entre vários pedidos. Um carro da Uber pode estar a 300 metros e demorar 10 minutos a chegar. E esperar mais um minuto pode poupar 13 a outra pessoa. Como se explica?

Pedir uma viagem demora poucos segundos. Abrimos a aplicação, escolhemos o destino e aguardamos a atribuição de um motorista. No entanto, aquilo que vemos no ecrã é apenas uma pequena parte do processo.

Para encontrar uma combinação adequada, é preciso organizar posições geográficas, calcular percursos e considerar outros pedidos feitos na mesma zona.

O carro mais próximo no mapa pode não ser o que chega mais depressa. E atribuí-lo imediatamente a uma pessoa pode aumentar bastante a espera de outra. Vamos perceber como funciona.

Os sistemas de grelha são fundamentais para a análise de grandes conjuntos de dados espaciais, dividindo áreas da Terra em células de grelha identificáveis.

1. Porque não comparar a nossa posição com todos os carros?

A solução mais óbvia seria calcular a distância entre o passageiro e cada motorista disponível. Depois, bastaria escolher o mais próximo. Com poucos veículos, o problema parece simples. Mas imagine repetir esta operação para muitos pedidos, enquanto os carros circulam e as suas posições mudam continuamente.

Uma forma de reduzir o trabalho consiste em começar pela localização, isto é, selecionar uma zona relevante e identificar os motoristas que podem ser candidatos à viagem.

Pesquisar por zona permite reduzir o número de candidatos. As linhas representam comparações, não percursos rodoviários.

É semelhante a procurar um restaurante. Antes de comparar menus de toda a cidade, começamos por escolher uma área onde faça sentido ir.

Contudo, esta primeira seleção ainda não responde à pergunta principal: qual destes motoristas consegue chegar ao ponto de recolha nas melhores condições?

2. H3: organizar o mapa como um favo de mel

É aqui que entra o H3, um sistema de indexação geoespacial desenvolvido pela Uber e disponibilizado como código aberto em 2018. A empresa documentou a sua utilização na análise geográfica e na otimização de preços e da atribuição de viagens.

O nome pode parecer complicado, mas a ideia é acessível: dividir a superfície terrestre em células identificáveis, maioritariamente hexagonais.

A posição do passageiro fica associada a uma célula. Consultar a sua vizinhança ajuda a encontrar candidatos próximos.

No exemplo, o passageiro encontra-se na célula central. Uma pesquisa pode consultar essa célula e as que a rodeiam, alargando a área quando necessário.

Há, porém, um detalhe importante: as células H3 não têm todas uma dimensão fixa. O sistema disponibiliza 16 resoluções, numeradas de 0 a 15. Resoluções mais elevadas correspondem a células mais pequenas, e as áreas também variam com a localização. Fonte: estatísticas oficiais do H3.

Esta organização ajuda a procurar e analisar informação geográfica. O H3, por si só, não escolhe o motorista nem calcula o percurso até ao passageiro.

3. Porque são usados hexágonos?

Ao olhar para a grelha, surge uma pergunta: porque não dividir o mapa em quadrados?

Numa grelha quadrada regular, uma célula tem quatro vizinhas que partilham um lado. Se incluirmos as quatro diagonais, passamos a ter oito, mas os centros destas últimas ficam mais longe.

Numa grelha hexagonal regular, os seis vizinhos que partilham um lado estão à mesma distância do centro da célula de referência.

Num plano regular, a grelha hexagonal apresenta uma relação mais uniforme com os seis vizinhos adjacentes.

Essa simetria favorece determinadas análises de proximidade e movimento, sendo uma das razões apresentadas pela Uber para a escolha dos hexágonos.

A representação tem, ainda assim, uma simplificação: a Terra não é plana. A grelha global H3 inclui exatamente 12 pentágonos em cada resolução, além dos hexágonos.

E a regularidade geométrica não resolve tudo. Duas células vizinhas podem estar separadas por um rio, uma linha ferroviária ou uma estrada sem acesso direto.

4. Da posição GPS a um identificador de célula

Para trabalhar com esta organização, uma posição geográfica pode ser associada ao identificador da respetiva célula.

Um índice H3 é representado por um inteiro de 64 bits e pode ser apresentado em formato hexadecimal. É uma forma compacta de identificar uma célula. Fonte: terminologia H3.

Na prática, isto permite organizar informação por área, como mostra o esquema seguinte.

A e B são rótulos didáticos. Os números 12, 27 e 35 representam identificadores de motoristas fictícios.

Neste exemplo, os motoristas 12 e 27 estão associados à célula A, enquanto o motorista 35 está na célula B. Consultar as células relevantes permite obter um conjunto de candidatos.

Mas identificar a célula não equivale a conhecer a posição exata do carro dentro dela. Para calcular uma recolha, continuam a ser necessárias coordenadas e informação sobre as estradas.

A tabela ilustra o conceito; não representa uma descrição da base de dados atualmente usada pela Uber.

5. Um carro a 300 metros pode demorar 10 minutos

Imagine que está numa margem de um rio e que o motorista se encontra na outra. No mapa, os dois pontos parecem muito próximos.

O problema é que o automóvel não pode atravessar a água. Precisa de seguir até uma ponte e regressar pela outra margem.

No exemplo do vídeo, os 300 metros em linha reta correspondem a um percurso rodoviário de 10 minutos. São valores ilustrativos.

Este cenário mostra a diferença entre distância geográfica e tempo de chegada.

Também os sentidos únicos, os acessos às vias e o trânsito podem alterar o percurso. Um veículo aparentemente mais afastado pode ter uma ligação rodoviária mais favorável ao ponto de recolha.

A Uber descreve uma arquitetura em que as previsões de tempo para segmentos de estrada alimentam a escolha das rotas e as estimativas de chegada. Por isso, contar os carros nas imediações não permite concluir quanto tempo um motorista demorará a chegar.

6. Dois passageiros e dois motoristas: quem fica com quem?

O problema torna-se mais interessante quando existem vários pedidos na mesma zona. Imagine que pede uma viagem quase ao mesmo tempo que outro passageiro, a quem chamaremos João.

Há dois motoristas disponíveis, A e B, com os seguintes tempos de chegada:

Motorista Tempo até si Tempo até João
A 4 minutos 2 minutos
B 5 minutos 15 minutos

Se o motorista A lhe for atribuído imediatamente, espera quatro minutos. João fica com B e espera 15 minutos. Somadas, as duas esperas representam 19 minutos.

Mas existe outra possibilidade: A vai buscar João e B vem buscá-lo a si.

A troca de atribuições reduz a soma das esperas de 19 para sete minutos. Cada passageiro faz uma viagem separada.

Nesta segunda combinação, espera cinco minutos e João espera dois. A soma passa para sete minutos.

Ou seja:

  • Espera mais um minuto.
  • João espera menos 13 minutos.
  • A soma das esperas diminui 12 minutos.

A espera média desce de 9,5 para 3,5 minutos. O exemplo mostra também um compromisso: melhorar o resultado do grupo não significa reduzir a espera de cada pessoa.

Neste caso, uma pequena diferença para um passageiro evita uma espera muito maior para o outro.

7. Porque pode fazer sentido avaliar vários pedidos em conjunto?

É esta lógica que ajuda a compreender a atribuição por lotes, conhecida como batched matching. A Uber explica que pode avaliar, durante alguns segundos, vários pedidos e motoristas próximos em conjunto, procurando reduzir a espera média.

Agrupar pedidos para avaliar combinações não implica juntar passageiros no mesmo carro.

O exemplo anterior explica a vantagem: atribuir imediatamente um motorista pode retirar a outro passageiro a sua melhor opção, mesmo quando existe uma alternativa quase tão boa para o primeiro.

Ao considerar os pedidos em conjunto, torna-se possível comparar essas combinações antes de fazer as atribuições. A própria Uber ressalva que funcionalidades e regras variam entre mercados.

Em Portugal, basta pensar em Lisboa ou no Porto para perceber o problema: um carro pode parecer próximo no mapa, mas estar do outro lado do rio ou ter de contornar ruas de sentido único. É essa diferença entre a proximidade no ecrã e o caminho real até ao passageiro que ajuda a explicar uma espera aparentemente difícil de compreender.

Da próxima vez que esperar por um Uber, apesar de ver vários carros por perto, lembre-se: o mapa mostra posições. A decisão exige avaliar estradas, tempos de chegada e possíveis combinações com outros pedidos.

Partilhar:
Tags:

Comentários

2
  1. CL
    Cláudio

    Claro que ainda falta falar de outros fatores, como é que o preço e histórico do cliente entra no algoritmo, a possibilidade do condutor mais perto não aceitar o transporte e de se ter de incluir outros condutores mais longe, entre muitos outros fatores.

  2. HI
    Hilário

    Isso aí é o que a Uber diz, mas na prática não acontece. É algo que devia ser fiscalizado pelas entidades competentes. Basta irem falar com um motorista e verão.

Deixe um comentário