O principal objetivo da API Route Optimization é encontrar rotas com o menor custo. Assim, 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ículos e de envio.
As propriedades do modelo de custo oferecem suporte aos seguintes tipos de objetivos de otimização:
- Atribuições e rotas eficientes de veículos
- Horários de coleta e entrega econômicos
- Priorização de envios críticos
Estrutura
Como mostrado no diagrama, as propriedades do modelo de custo são estruturadas da seguinte maneira:
Shipmentcontém a propriedadepenaltyCost.Vehiclecontém as seguintes propriedades:
Este documento destaca apenas os parâmetros essenciais do modelo de custo. Consulte a documentação de referência para ver o conjunto completo de parâmetros de custo.
Lista de verificação de fundamentos
A lista de verificação a seguir descreve o conhecimento essencial que evita possíveis erros relacionados a custos. Essa lista pode ajudar você a validar sua solicitação e solucionar problemas na resposta.
Propriedades
A tabela a seguir lista e descreve as propriedades do modelo de custo.
| Com filhos | Nome da propriedade | Tipo de propriedade | Custo por | Descrição da propriedade |
|---|---|---|---|---|
Shipment |
penaltyCost |
número | Envio ignorado | O custo incorrido ao ignorar o envio. A API ignora um envio quando o custo para concluí-lo excede o custo da penalidade.
|
Vehicle |
fixedCost |
número | Envio | Custo fixo aplicado se esse veículo for usado para processar um envio. |
costPerHour |
número | Hora | O custo de operação de um veículo por hora, incluindo tempos de trânsito, espera, visita e pausa. À medida que esse custo aumenta, o otimizador tenta encontrar trajetos mais rápidos que podem não ser os mais curtos. Essa propriedade pode ser um custo independente eficaz 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 de manutenção amortizados do veículo. | |
costPerTraveledHour |
número | Hora | O custo de operação de um veículo por hora apenas durante o trânsito, excluindo tempos de espera, visita e pausa. Isso prioriza rotas de viagem mais rápidas em vez de rotas mais curtas. |
Exemplos
Esta seção aborda três tipos de exemplos:
- Amostras de código que ilustram a estrutura das propriedades do modelo de custo .
- Um cenário de exemplo 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 uma empresa de creche para cães. Você está otimizando uma rota para o caminhão que usa para buscar os cães nas casas deles. Nesse cenário, você quer que o otimizador considere os custos relacionados à coleta dos cães e às operações do veículo ao fornecer uma rota.
Para este exemplo, uma unidade de custo representa US$ 1. 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 penalidade que você oferece aos clientes por não buscar o cão em um dia programado. Sempre que você não buscar o cão em um dia programado, o cliente receberá um desconto de US$ 40 no total do serviço. |
fixedCost |
30 | Representa o custo diário das parcelas do empréstimo do veículo, que é de US$ 30 por dia. |
costPerKilometer |
0,08 | Representa a quantidade de gasolina que o veículo gasta por quilômetro. O 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 US$ 2. |
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 na parte de trás e desligar o ar-condicionado. |
Com base nos parâmetros de custos, o otimizador pode fazer compensações que não são óbvias para o usuário, mas podem ser encontradas por meio da otimização.
O diagrama a seguir ilustra um exemplo em que o otimizador pode escolher uma rota mais longa, mas mais rápida, pela linha tracejada verde para evitar o trânsito na linha vermelha pontilhada.

Nesse cenário, o saldo de custos das duas rotas é o seguinte:
A linha tracejada verde tem um
costPerHourecostPerTraveledHourbaixos, 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
costPerKilometerbaixo, já que é uma rota direta, mas ocostPerHoure ocostPerTraveledHoursã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 oferece um resumo 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 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 em todas as rotas discriminado por campos de solicitação relacionados a custos.metrics.totalCost: o custo total em todas as rotas somadas.