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ículos e de envios.
As propriedades do modelo de custo são compatíveis com os seguintes tipos de objetivos de otimização:
- Atribuições e rotas de veículos eficientes
- Tempos de retirada e entrega econômicos
- Priorização de remessas críticas
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 do Essentials
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 resolver problemas com a 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 adiado | O custo incorrido ao pular o envio. A API ignora uma remessa quando o custo para concluí-la excede o custo de penalidade.
|
Vehicle |
fixedCost |
número | Envio | Custo fixo aplicado se este veículo for usado para processar uma remessa. |
costPerHour |
número | Hora | O custo de operação de um veículo por hora, incluindo os tempos 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 por veículo independente eficaz devido à simplicidade e integridade. |
|
costPerKilometer |
número | Quilômetro | O custo por quilômetro percorrido pelo veículo, que pode representar custos de combustível ou de manutenção amortizada do veículo. | |
costPerTraveledHour |
número | Hora | O custo de operação de um veículo por hora apenas durante o transporte, excluindo os tempos de espera, visita e pausa. Isso prioriza rotas 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 atingir um objetivo de negócio.
- 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 creche para cachorros. Você está otimizando um trajeto para o caminhão que usa para buscar os cachorros nas casas deles. Nesse cenário, você quer que o otimizador considere os custos relacionados à busca dos cães e às operações do veículo ao fornecer uma rota.
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 que não buscam o cachorro no dia agendado. Sempre que você não busca o cachorro em um dia agendado, o cliente recebe um desconto de 40 dólares no total do serviço. |
fixedCost |
30 | Representa o custo diário das parcelas do financiamento do seu 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ão 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 US$ 27 por hora ao motorista. |
costPerTraveledHour |
2,5 | Representa quanto você precisa pagar por hora pelo ar-condicionado do veículo para os cachorros enquanto estiver na estrada. Sempre que o veículo não estiver em movimento, o motorista pode 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 que podem ser encontradas pela otimização.
O diagrama a seguir ilustra um exemplo em que o otimizador pode escolher um trajeto mais longo, mas mais rápido, pela linha tracejada verde para evitar o trânsito na linha pontilhada vermelha.

Nesse cenário, o saldo de custo das duas rotas é o seguinte:
A linha tracejada verde tem um
costPerHoure umcostPerTraveledHourbaixos, já que é um trajeto rápido 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 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 um trajeto:
metrics.costs: o custo total de todas as rotas detalhado por campos de solicitação relacionados ao custo.metrics.totalCost: o custo total de todas as rotas somadas.