Como descrito resumidamente em Visão geral da otimização de rotas, uma solicitação básica consiste em Modelo, Envios e Veículos como entidades obrigatórias:
- Modelo captura configurações e restrições para toda a solicitação,
incluindo
Shipments
eVehicles
. - As remessas representam tarefas ou remessas reais que incluem
VisitRequest
s de coleta e entrega. As remessas têm configurações e restrições locais. - Veículos representam veículos, motoristas ou funcionários. 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 do modelo são aplicadas a todas as remessas e veículos, enquanto as restrições e propriedades especificadas nas remessas ou veículos são específicas para uma única remessa ou veículo.
Para consultar a documentação completa sobre cada tipo de mensagem, consulte a documentação de referência para mensagens ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) e Vehicle
(REST e gRPC).
OptimizeToursRequest
propriedades
Algumas propriedades comumente usadas da mensagem OptimizeToursRequest
de nível superior (REST, gRPC) incluem:
searchMode
indica se é necessário retornar a primeira solução que satisfaça as restrições especificadas ou encontrar a melhor solução possível dentro de um prazo definido.considerRoadTraffic
determina se o tráfego em tempo real é usado ou não para rota e estimativa de HEC.populateTransitionPolylines
determina se as polilinhas de rota são ou não retornadas na resposta.
Propriedades do modelo
Algumas propriedades comumente usadas da mensagem ShipmentModel
(REST, gRPC) incluem:
globalStartTime
representa o horário de início mais antigo dos trajetos em todos os veículos e remessas. Nenhum veículo pode iniciar suas primeiras transições e envios antes desse período.globalEndTime
representa o horário de término mais recente das rotas em todos os veículos e remessas. Todas as remessas e transições atribuídas precisam ser concluídas antes desse período.
Propriedades do envio
Algumas propriedades comumente usadas da mensagem Shipment
(REST, gRPC) incluem:
pickups[]
edeliveries[]
representam o local em que uma remessa pode ser retirada ou descartada. 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 quanta carga um veículo pode acomodar ao mesmo tempo. Leia mais sobre a carga em Demandas e limites de carga.penalty_cost
representa o custo incorrido se um frete for pulado. Leia mais sobre custos em Parâmetros do modelo de custo.
Propriedades do veículo
Algumas propriedades comumente usadas da mensagem Vehicle
(REST, gRPC) incluem:
startLocation
representa o ponto em que um veículo precisa iniciar o trajeto. Essa propriedade é opcional. Se não for especificado, o trajeto do veículo começará no local da primeira remessa atribuída.endLocation
representa o local onde um veículo precisa encerrar o trajeto. Essa propriedade é opcional. Se não for especificado, o trajeto do veículo terminará no local da última remessa atribuída.startTimeWindows[]
representa quando um veículo pode iniciar um trajeto. Essa propriedade é opcional.endTimeWindows[]
representa quando um veículo pode iniciar e encerrar um trajeto. As duas propriedades são opcionais.loadLimits
representa a capacidade disponível do veículo para atender às demandas de carga das remessas. Leia mais sobre as demandas e limites de carga em Demandas e limites de carga.
Um exemplo de solicitação completo no formato JSON é semelhante a:
{
"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: