Criar uma mensagem de solicitação

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 e Vehicles.
  • As remessas representam tarefas ou remessas reais que incluem coleta e VisitRequests 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[] e deliveries[] representam os locais em que uma remessa pode ser retirada ou deixaram de usar. As propriedades pickups[] e deliveries[] usam as Mensagem VisitRequest (REST, gRPC).
  • loadDemands representam a carga necessária para que um veículo conclua uma envio Veículos load_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:

Comparar OptimizeTours e BatchOptimizeTours