Algoritmo Despacho - devbasetecnologia/devmobility GitHub Wiki
O Algoritmo de Despacho permite que as solicitações sejam enviadas aos prestadores de acordo com uma Pontuação (Score) calculada para cada prestador.
Essa pontuação considera diferentes informações do prestador, como:
- Distância
- Tempo Ocioso
- Taxa de Aceitação
- Taxa de Conclusão
- Avaliação
Quanto maior for o Score Despacho, maior será a prioridade do prestador no envio da solicitação.
As configurações utilizadas pelo algoritmo ficam disponíveis em: Configurações > Algoritmo Despacho.
Para que o Algoritmo de Despacho possa ser utilizado nas solicitações, é necessário habilitar a opção no menu 'Configurações > Sistemas' flag Habilita Algoritmo Despacho
Com essa opção habilitada, as configurações definidas para o Algoritmo de Despacho poderão ser aplicadas às solicitações.
Por padrão, a configuração do algoritmo possui a opção Simulação habilitada (Menu 'Configurações > Algoritmo Despacho > Configuração Algoritmo')
Quando a Simulação está habilitada, o cálculo do Score é realizado apenas para análise. Nesse modo, a solicitação continua sendo enviada considerando a distancia do motorista mais próximo em relação ao cliente, sem utilizar o Score Despacho para definir a prioridade.
A simulação permite visualizar como o algoritmo se comportaria caso estivesse ativo no envio das chamadas, sem alterar a forma como as solicitações são distribuídas.
O Score Despacho é calculado a partir de cinco critérios: OBS: As estatísticas dos prestadores são atualizadas sempre que realizam uma corrida, assim como no sistema roda periodicamente a atualização dos dados.
| Critério | Como é obtido | Como é transformado em Score |
|---|---|---|
| 📍 Distância | Distância do prestador até o cliente, em KM | Utiliza uma Faixa de Pontuação |
| ⏱️ Tempo Ocioso | Tempo, em minutos, desde a última corrida | Utiliza uma Faixa de Pontuação |
| ✅ Taxa de Aceitação | Percentual de solicitações aceitas | O percentual é utilizado diretamente como Score |
| 🏁 Taxa de Conclusão | Percentual de solicitações concluídas | O percentual é utilizado diretamente como Score |
| ⭐ Avaliação | Avaliação do prestador, de 0 a 5 estrelas | Convertida para uma pontuação de 0 a 100 |
Os Scores de Distância e Tempo Ocioso são definidos pelas faixas cadastradas em: Configurações > Algoritmo Despacho > Faixas Pontuação. Já os Scores de Aceitação, Conclusão e Avaliação são calculados diretamente a partir dos dados do prestador.
Antes de calcular o Score Despacho, o algoritmo calcula individualmente a pontuação de cada critério.
📍 Distância
A distância entre o prestador e o cliente é utilizada para encontrar a faixa correspondente.
- Exemplo: 0,30 km → Faixa de 0,00 até 0,50 km → Score Distância = 100
⏱️ Tempo Ocioso
O tempo em que o prestador está sem realizar corridas também é comparado com as faixas cadastradas.
- Exemplo: 5 minutos → Faixa de 2,00 até 5,00 minutos → Score Tempo Ocioso = 25
✅ Taxa de Aceitação
A taxa percentual é utilizada diretamente como Score.
- Exemplo: 76% de aceitação → Score Aceitação = 76
🏁 Taxa de Conclusão
A taxa percentual também é utilizada diretamente como Score.
- Exemplo: 80% de conclusão → Score Conclusão = 80
⭐ Avaliação
A avaliação do prestador é convertida de uma escala de 0 a 5 estrelas para uma escala de 0 a 100 pontos. A conversão é realizada através da seguinte fórmula: Score Avaliação = (Avaliação × 100) ÷ 5
- Exemplo: (4,30 × 100) ÷ 5 = 86
Após calcular os cinco Scores individuais, cada Score é multiplicado pelo respectivo Peso definido no menu 'Configurações > Algoritmo Despacho > Configuração Algoritmo'
| Critério | Peso |
|---|---|
| 📍 Distância | 40% |
| ⏱️ Tempo Ocioso | 20% |
| ✅ Aceitação | 10% |
| 🏁 Conclusão | 10% |
| ⭐ Avaliação | 20% |
| Total | 100% |
Score Despacho* = (Score Distância × Peso Distância) + (Score Tempo Ocioso × Peso Tempo Ocioso) + (Score Aceitação × Peso Aceitação) + (Score Conclusão × Peso Conclusão) + (Score Avaliação × Peso Avaliação)
Identificação de 2 prestadores:
| Critério | 👤 Prestador 1 | 👤 Prestador 2 | ||
|---|---|---|---|---|
| Informação | Score | Informação | Score | |
| 📍 Distância | 0,30 km | 100 | 1,30 km | 70 |
| ⏱️ Tempo Ocioso | 5 minutos | 25 | 22 minutos | 85 |
| ✅ Aceitação | 76% | 76 | 70% | 70 |
| 🏁 Conclusão | 80% | 80 | 70% | 70 |
| ⭐ Avaliação | 4,30 estrelas | 86 | 5,00 estrelas | 100 |
Aplicação dos PESOS:
| Critério | Prestador 1 | Prestador 2 |
|---|---|---|
| 📍 Distância | 100 * 40% | 70 * 40% |
| ⏱️ Tempo Ocioso | 25 * 20% | 85 * 20% |
| ✅ Aceitação | 76 * 10% | 70 * 10% |
| 🏁 Conclusão | 80 * 10% | 70 * 10% |
| ⭐ Avaliação | 86 * 20% | 100 * 20% |
| 🏆 Score Despacho | 77,8 | 79,0 |
O Algoritmo de Despacho possui quatro telas principais:
- Configuração Algoritmo
- Faixas de Pontuação
- Estatísticas Prestadores
- Análise Algoritmo
Acesso:
Configurações → Algoritmo Despacho → Configuração Algoritmo
Acesso:
Configurações → Algoritmo Despacho → Faixas de Pontuação
Acesso:
Configurações → Algoritmo Despacho → Estatísticas Prestadores
Acesso:
Configurações → Algoritmo Despacho → Análise Algoritmo
Configuração Algoritmo -> Define os pesos e configurações.
↓
Faixas de Pontuação -> Define as pontuações dos critérios.
↓
Estatísticas Prestadores -> Fornece os dados que estão sendo utilizados pelo algoritmo.
↓
Análise Algoritmo -> Analise do resultados da priorização em cada solicitação.