Conforme descrito brevemente na Visão geral da otimização de rotas, uma solicitação básica consiste em Modelo, Envios e Veículos como entidades obrigatórias:
- O modelo captura as configurações e restrições de toda a solicitação,
incluindo
Shipments
eVehicles
. - Envios representam tarefas ou envios reais que incluem
VisitRequest
s de coleta e entrega. 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 consultar 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).
OptimizeToursRequest
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 atende a 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 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 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 as primeiras transições e envios 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 remessas e transições atribuídas precisam ser concluídas antes desse período.
Propriedades do envio
Algumas propriedades usadas com frequência da mensagem Shipment
(REST, gRPC)
incluem:
pickups[]
edeliveries[]
representam onde um envio pode ser retirado 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
correspondente dos veículos (REST, gRPC) representa a quantidade de carga que um veículo pode acomodar por vez. Leia mais sobre a carga em Solicitações e limites de carga.penalty_cost
representa o custo incorrido se um envio for pulado. 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, o trajeto do veículo começará no local da primeira remessa atribuída.endLocation
representa 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 do último frete atribuído.startTimeWindows[]
representa quando um veículo pode iniciar a rota. Essa propriedade é opcional.endTimeWindows[]
representa quando um veículo pode iniciar e terminar a rota. Ambas as propriedades são opcionais.loadLimits
representa 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 é parecido com 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"
}
}
O OptimizeTours
e o 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: