Criar uma mensagem de solicitação

Desenvolvedores do Espaço Econômico Europeu (EEE)

Conforme descrito brevemente em Visão geral da otimização de rotas, uma solicitação básica consiste em Model, Shipments e Vehicles como entidades obrigatórias:

  • Model captura configurações e restrições para toda a solicitação, incluindo Shipments e Vehicles.
  • Remessas representam tarefas ou remessas reais que incluem horários de coleta e entrega VisitRequest. 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 conferir 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).

Propriedades de OptimizeToursRequest

Algumas propriedades usadas com frequência da mensagem OptimizeToursRequest de nível superior (REST, gRPC) incluem:

  • searchMode indica se é para retornar a primeira solução que satisfaz as 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 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 usadas com frequência da mensagem ShipmentModel (REST, gRPC) incluem:

  • globalStartTime representa o horário de início mais cedo das rotas em todos os veículos e envios. Nenhum veículo pode iniciar as primeiras transições e entregas 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 transições e remessas atribuídas precisam ser concluídas antes desse horário.

Propriedades de envio

Algumas propriedades usadas com frequência da mensagem Shipment (REST, gRPC) incluem:

  • pickups[] e deliveries[] representam onde uma remessa pode ser retirada ou entregue. As propriedades pickups[] e deliveries[] usam a mensagem VisitRequest (REST, gRPC).
  • loadDemands representam a carga necessária para que um veículo conclua um envio. A propriedade load_limits (REST, gRPC) correspondente dos veículos representa a quantidade de carga que um veículo pode acomodar por vez. Leia mais sobre carga em Demandas e limites de carga.
  • penalty_cost representa o custo incorrido se um envio for ignorado. 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, a rota do veículo vai começar no local da primeira entrega atribuída.
  • endLocation representa o local 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 da última entrega atribuída.
  • startTimeWindows[] representa quando um veículo pode iniciar o trajeto. Essa propriedade é opcional.
  • endTimeWindows[] representa quando um veículo pode iniciar e terminar o trajeto. As duas propriedades são opcionais.
  • loadLimits representam 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 é:

{
  "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:

Comparação entre OptimizeTours e BatchOptimizeTours