Conforme descrito brevemente na Visão geral da otimização de rotas, uma solicitação básica consiste em Model, Shipments e Vehicles como entidades obrigatórias:
- Modelo: captura configurações e restrições para toda a solicitação,
incluindo
Shipments
eVehicles
. - Remessas representam tarefas ou remessas reais que incluem
VisitRequest
s de retirada 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 em todo o modelo são aplicadas a todas as remessas e veículos, enquanto as restrições e propriedades especificadas em remessas ou veículos são específicas de uma única remessa ou veículo.
Para conferir a documentação completa sobre cada tipo de mensagem, consulte a documentação de referência
das mensagens ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC)
e Vehicle
(REST, gRPC).
OptimzeToursRequest
propriedades
Algumas propriedades comumente usadas da mensagem OptimizeToursRequest
de nível superior
(REST, gRPC) incluem o seguinte:
searchMode
indica se é necessário retornar a primeira solução que atenda às 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 trajetos e estimativas de HEC.populateTransitionPolylines
determina se as polilinhas do trajeto são retornadas na resposta.
Propriedades do modelo
Algumas propriedades comumente usadas da mensagem ShipmentModel
(REST,
gRPC) incluem:
globalStartTime
representa o primeiro horário de início dos trajetos em todos os veículos e fretes. Nenhum veículo pode iniciar suas primeiras transições e envios antes desse período.globalEndTime
representa o último horário de término dos trajetos em todos os veículos e fretes. 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 onde uma remessa pode ser retirada ou entregue. As propriedadespickups[]
edeliveries[]
usam a mensagemVisitRequest
(REST, gRPC).loadDemands
representa a carga necessária para um veículo concluir um envio. A propriedadeload_limits
correspondente (REST, gRPC) dos veículos representa a quantidade de carga que um veículo pode acomodar de uma só vez. Leia mais sobre carga em Demandas e limites de carga.penalty_cost
representa o custo incorrido se uma remessa for pulada. Leia mais sobre os custos em Parâmetros do modelo de custo.
Propriedades do veículo
Algumas propriedades comumente usadas da mensagem Vehicle
(REST, gRPC) incluem:
startLocation
representa onde um veículo precisa iniciar o trajeto. Essa propriedade é opcional. Se não for especificado, o trajeto do veículo vai começar no local da primeira remessa atribuída.endLocation
representa 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 seu trajeto. Essa propriedade é opcional.endTimeWindows[]
representa quando um veículo pode começar e terminar seu trajeto. As duas propriedades são opcionais.loadLimits
representam a capacidade do veículo disponível para atender às demandas de carga das remessas. Leia mais sobre demandas e limites de carga em Demandas e limites de carga.
Um exemplo completo de solicitação no formato JSON é semelhante a este:
{
"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 rota, é importante entender a diferença entre os dois métodos: