Conforme descrito brevemente em Visão geral da otimização de rotas, uma solicitação básica consiste em Model, Shipments e Vehicles como entidades obrigatórias:
- Model captura configurações e restrições para toda a solicitação, incluindo
Shipments
eVehicles
. - Remessas representam tarefas ou remessas reais que incluem horários de coleta e entrega
VisitRequest
. Os envios têm configurações e restrições locais. - Veículos representam veículos, motoristas ou pessoal. Os veículos também têm configurações e restrições locais.
As propriedades de cada entidade descrevem parte de um problema de otimização em um nível específico de granularidade. As restrições em todo o modelo são aplicadas a todos os envios e veículos, enquanto as restrições e propriedades especificadas em envios ou veículos são específicas para um único envio ou veículo.
Para conferir a documentação completa de cada tipo de mensagem, consulte a documentação de referência para mensagens ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) e Vehicle
(REST, gRPC).
Propriedades de OptimizeToursRequest
Algumas propriedades usadas com frequência da mensagem OptimizeToursRequest
de nível superior
(REST, gRPC) incluem:
searchMode
indica se é para retornar a primeira solução que satisfaz as restrições especificadas ou encontrar a melhor solução possível dentro de um prazo definido.considerRoadTraffic
determina se o trânsito em tempo real é usado para roteamento e estimativa de HEC.populateTransitionPolylines
determina se as polilinhas e os tokens de rota são retornados na resposta.
Propriedades do modelo
Algumas propriedades usadas com frequência da mensagem ShipmentModel
(REST,
gRPC) incluem:
globalStartTime
representa o horário de início mais cedo das rotas em todos os veículos e envios. Nenhum veículo pode iniciar as primeiras transições e entregas antes desse horário.globalEndTime
representa o horário de término mais recente das rotas em todos os veículos e envios. Todas as transições e remessas atribuídas precisam ser concluídas antes desse horário.
Propriedades de envio
Algumas propriedades usadas com frequência da mensagem Shipment
(REST, gRPC) incluem:
pickups[]
edeliveries[]
representam onde uma remessa pode ser retirada ou entregue. As propriedadespickups[]
edeliveries[]
usam a mensagemVisitRequest
(REST, gRPC).loadDemands
representam a carga necessária para que um veículo conclua um envio. A propriedadeload_limits
(REST, gRPC) correspondente dos veículos representa a quantidade de carga que um veículo pode acomodar por vez. Leia mais sobre carga em Demandas e limites de carga.penalty_cost
representa o custo incorrido se um envio for ignorado. Leia mais sobre custos em Parâmetros do modelo de custo.
Propriedades do veículo
Algumas propriedades usadas com frequência da mensagem Vehicle
(REST, gRPC) incluem:
startLocation
representa onde um veículo precisa iniciar o trajeto. Essa propriedade é opcional. Se não for especificado, a rota do veículo vai começar no local da primeira entrega atribuída.endLocation
representa o local onde um veículo precisa terminar o trajeto. Essa propriedade é opcional. Se não for especificado, a rota do veículo vai terminar no local da última entrega atribuída.startTimeWindows[]
representa quando um veículo pode iniciar o trajeto. Essa propriedade é opcional.endTimeWindows[]
representa quando um veículo pode iniciar e terminar o trajeto. As duas propriedades são opcionais.loadLimits
representam a capacidade disponível do veículo para atender às demandas de carga dos envios. Saiba mais sobre demandas e limites de carga em Demandas e limites de carga.
Um exemplo completo de solicitação no formato JSON é:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
e BatchOptimizeTours
consomem mensagens de solicitação como o exemplo acima, mas de maneiras diferentes. Antes de fazer uma solicitação de otimização de rotas, é importante entender a diferença entre os dois métodos:
Comparação entre OptimizeTours e BatchOptimizeTours