Como descrito resumidamente em 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
. - As remessas representam tarefas ou remessas reais que incluem coleta e
VisitRequest
s de 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 uma com um nível particular de granularidade. As restrições do modelo são aplicadas remessas e veículos, enquanto as restrições e propriedades especificadas nas remessas ou veículos são específicos para uma única remessa ou veículo.
Para obter a documentação completa sobre cada tipo de mensagem, consulte a documentação de referência
para 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 satisfaça restrições específicas ou encontrar a melhor solução possível dentro de um conjunto prazo.- O
considerRoadTraffic
determina se o tráfego em tempo real é usado ou não para rotas e estimativa de HEC. populateTransitionPolylines
determina se as polilinhas do trajeto 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 todas veículos e remessas. Nenhum veículo pode iniciar as primeiras transições e remessas antes desse período.globalEndTime
representa o horário de término mais recente dos trajetos em todos os veículos. e fretes. Todas as remessas e transições atribuídas precisam estar completas antes dessa data.
Propriedades do envio
Algumas propriedades comumente usadas da mensagem Shipment
(REST, gRPC)
incluem:
pickups[]
edeliveries[]
representam os locais em que uma remessa pode ser retirada ou deixaram de usar. As propriedadespickups[]
edeliveries[]
usam as MensagemVisitRequest
(REST, gRPC).loadDemands
representam a carga necessária para que um veículo conclua uma envio Veículosload_limits
correspondente (REST, gRPC) 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. Lida 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 o ponto em que um veículo precisa iniciar o trajeto. Isso é opcional. Se não for especificado, o trajeto do veículo iniciará no da primeira remessa atribuída.endLocation
representa o local onde um veículo precisa encerrar o trajeto. Esta propriedade é opcional. Se não for especificado, o trajeto do veículo terminará no local a última remessa atribuída.startTimeWindows[]
representa quando um veículo pode iniciar um trajeto. Isso é 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 aos pedidos demandas de carga diferentes. Leia mais sobre demandas e limites de carga em Demandas de carga e Limites.
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 a
exemplo acima, mas de maneiras diferentes. Antes de fazer uma otimização de trajetos
é importante entender a diferença entre os dois métodos: