O principal objetivo da API Route Optimization é encontrar rotas com o menor custo. Por isso, o modelo de custo é o principal fator para a otimização de rotas.
O modelo de custo é um conjunto de propriedades que especificam custos globais, de veículo e de envio.
As propriedades do modelo de custo oferecem suporte aos seguintes tipos de objetivos de otimização:
- Atribuições e rotas de veículos eficientes
- Prazos de retirada e entrega econômicos
- Priorização de remessas críticas
Estrutura
Conforme mostrado no diagrama, as propriedades do modelo de custo são estruturadas da seguinte maneira:
Shipment
contém a propriedadepenaltyCost
.Vehicle
contém as seguintes propriedades:
Este documento destaca apenas os parâmetros essenciais do modelo de custo. Consulte a documentação de referência para conferir o conjunto completo de parâmetros de custo.
Lista de verificação de itens essenciais
A lista de verificação a seguir descreve o conhecimento essencial que evita possíveis erros relacionados a custos. Esta lista pode ajudar você a validar sua solicitação e resolver problemas com a resposta.
Propriedades
A tabela a seguir lista e descreve as propriedades do modelo de custo.
Com filhos | Nome da propriedade | Property type | Custo por | Descrição da propriedade |
---|---|---|---|---|
Shipment |
penaltyCost |
número | Envio pulado | O custo de pular o envio. A API pula um envio quando o custo para concluí-lo excede o custo da penalidade.
|
Vehicle |
fixedCost |
número | Envio | Custo fixo aplicado se o veículo for usado para processar um envio. |
costPerHour |
número | Hora | O custo de operar um veículo por hora, incluindo o tempo de trânsito, espera, visita e pausa. À medida que esse custo aumenta, o otimizador tenta encontrar rotas mais rápidas que podem não ser as mais curtas. Essa propriedade pode ser um custo autônomo por veículo devido à simplicidade e à integridade. |
|
costPerKilometer |
número | Quilômetro | O custo por quilômetro percorrido pelo veículo, como custos de combustível e custos amortizados de manutenção do veículo. | |
costPerTraveledHour |
número | Hora | O custo de operar um veículo por hora apenas em trânsito, excluindo os tempos de espera, de visita e de intervalo. Isso prioriza rotas de viagem mais rápidas em vez de rotas mais curtas. |
Exemplos
Esta seção aborda três tipos de exemplos:
- Exemplos de código que ilustram a estrutura das propriedades do modelo de custo.
- Um exemplo de cenário que mostra uma maneira de usar as propriedades do modelo de custo para alcançar um objetivo de negócios.
- Um exemplo de solicitação que inclui os valores definidos no cenário de exemplo.
Amostras de código
O exemplo de código a seguir mostra a estrutura das propriedades do modelo de custo em
Shipment
:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
O exemplo de código a seguir mostra a estrutura das propriedades do modelo de custo em
Vehicle
:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Exemplo de cenário
Esta seção descreve um cenário em que você tem um negócio de creche para cães. Você está otimizando uma rota para o caminhão que você usa para pegar os cães nas casas deles. Nesse cenário, você quer que o otimizador leve em conta os custos relacionados à coleta de cães e às operações do veículo ao fornecer um trajeto.
Neste exemplo, uma unidade de custo representa 1 dólar. Isso significa que os valores da propriedade do modelo de custo na sua solicitação são os seguintes:
Propriedade | Valor | Cenário |
---|---|---|
penaltyCost |
10 | Representa a multa que você oferece aos clientes por não buscarem o cachorro no dia agendado. Sempre que você não buscar o cachorro em um dia programado, o cliente vai receber um desconto de US$ 40 no valor total do serviço. |
fixedCost |
30 | Representa o custo diário dos pagamentos do empréstimo do veículo, que é de 30 dólares por dia. |
costPerKilometer |
0,08 | Representa a quantidade de gasolina que seu veículo gasta por quilômetro. Seu veículo precisa de 0,04 galões por quilômetro para se mover, e o custo por galão na sua região é de 2 dólares. |
costPerHour |
27 | Representa quanto você paga a um motorista para dirigir seu veículo. Você paga ao motorista US$ 27 por hora. |
costPerTraveledHour |
2,5 | Representa quanto você precisa pagar pelo ar-condicionado do veículo por hora para os cães enquanto estiver na estrada. Sempre que o veículo não estiver em movimento, o motorista poderá abrir as portas traseiras e desligar o ar-condicionado. |
Com base nos parâmetros de custo, o otimizador pode fazer compensações que não são óbvias para o usuário, mas podem ser encontradas pela otimização.
O diagrama a seguir ilustra um exemplo em que o otimizador pode escolher um caminho mais longo, mas mais rápido, pela linha tracejada verde para evitar o tráfego na linha vermelha pontilhada.
Nesse cenário, o equilíbrio de custos das duas rotas é o seguinte:
A linha tracejada verde tem um
costPerHour
ecostPerTraveledHour
baixos, já que é uma rota rápida que evita o trânsito, o que é mais econômico, mesmo quando ocostPerKilometer
é alto.A linha pontilhada vermelha tem um
costPerKilometer
baixo, já que é uma rota direta, mas ocostPerHour
e ocostPerTraveledHour
são muito altos devido aos tempos de espera no trânsito, o que a torna a rota mais cara.
Além de fornecer rotas econômicas, o otimizador também fornece uma soma dos custos totais das rotas de entrega nas propriedades de resposta.
Exemplo de solicitação
O exemplo a seguir mostra a estrutura de uma solicitação básica de optimizeTours
que incorpora os valores definidos no cenário de exemplo:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Propriedades de resposta
A mensagem OptimizeToursResponse
tem propriedades de custo que descrevem os custos incorridos no processo de conclusão de uma rota:
metrics.costs
: o custo total de todas as rotas dividido por campos de solicitação relacionados a custos.metrics.totalCost
: o custo total de todas as rotas somadas.