Crea un mensaje de solicitud

Desarrolladores del Espacio Económico Europeo (EEE)

Como se describió brevemente en Descripción general de la optimización de rutas, una solicitud básica consta de Model, Shipments y Vehicles como entidades obligatorias:

  • Model captura la configuración y las restricciones de toda la solicitud, incluidos Shipments y Vehicles.
  • Los envíos representan tareas o envíos reales que incluyen VisitRequests de retiro y entrega. Los envíos tienen parámetros de configuración y restricciones locales.
  • Los vehículos representan vehículos, conductores o personal. Los vehículos también tienen parámetros de configuración y restricciones locales.

Las propiedades de cada entidad describen parte de un problema de optimización en un nivel de detalle particular. Las restricciones generales del modelo se aplican a todos los envíos y vehículos, mientras que las restricciones y propiedades especificadas en los envíos o vehículos son específicas de un solo envío o vehículo.

Para obtener documentación completa sobre cada tipo de mensaje, consulta la documentación de referencia de los mensajes ShipmentModel (REST, gRPC), Shipment (REST, gRPC) y Vehicle (REST, gRPC).

OptimizeToursRequest propiedades

Algunas propiedades de uso común del mensaje OptimizeToursRequest de nivel superior (REST, gRPC) incluyen las siguientes:

  • searchMode indica si se debe devolver la primera solución que satisfaga las restricciones especificadas o si se debe buscar la mejor solución posible dentro de un plazo determinado.
  • considerRoadTraffic determina si se usa el tráfico en tiempo real para la planificación de rutas y la estimación de la ETA.
  • populateTransitionPolylines determina si se muestran o no polilíneas de rutas y tokens de rutas en la respuesta.

Propiedades del modelo

Algunas propiedades de uso común del mensaje ShipmentModel (REST, gRPC) incluyen las siguientes:

  • globalStartTime representa la hora de inicio más temprana de las rutas en todos los vehículos y envíos. Ningún vehículo puede iniciar sus primeras transiciones y envíos antes de esta hora.
  • globalEndTime representa la hora de finalización más reciente de las rutas en todos los vehículos y envíos. Todos los envíos y las transiciones asignados deben completarse antes de esta hora.

Propiedades del envío

Algunas propiedades de uso común del mensaje Shipment (REST, gRPC) incluyen las siguientes:

  • pickups[] y deliveries[] representan los lugares donde se puede retirar o dejar un envío. Las propiedades pickups[] y deliveries[] usan el mensaje VisitRequest (REST, gRPC).
  • loadDemands representa la carga necesaria para que un vehículo complete un envío. La propiedad load_limits (REST, gRPC) correspondiente a los vehículos representa la cantidad de carga que un vehículo puede transportar a la vez. Obtén más información sobre la carga en Load Demands and Limits.
  • penalty_cost representa el costo en el que se incurre si se omite un envío. Obtén más información sobre los costos en Parámetros del modelo de costos.

Propiedades del vehículo

Algunas propiedades de uso común del mensaje Vehicle (REST, gRPC) incluyen las siguientes:

  • startLocation representa el lugar donde un vehículo debe comenzar su ruta. Esta propiedad es opcional. Si no se especifica, la ruta del vehículo comienza en la ubicación de su primer envío asignado.
  • endLocation representa el lugar donde un vehículo debe finalizar su ruta. Esta propiedad es opcional. Si no se especifica, la ruta del vehículo finaliza en la ubicación de su último envío asignado.
  • startTimeWindows[] representa el momento en que un vehículo puede comenzar su ruta. Esta propiedad es opcional.
  • endTimeWindows[] representa cuándo un vehículo puede comenzar y finalizar su ruta. Ambas propiedades son opcionales.
  • loadLimits representa la capacidad del vehículo disponible para satisfacer las demandas de carga de los envíos. Obtén más información sobre los límites y las demandas de carga en Límites y demandas de carga.

Un ejemplo de solicitud completa en formato JSON se ve de la siguiente manera:

{
  "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 y BatchOptimizeTours consumen mensajes de solicitud como el ejemplo anterior, pero de diferentes maneras. Antes de realizar una solicitud de Route Optimization, es importante que comprendas la diferencia entre los dos métodos:

Comparación entre OptimizeTours y BatchOptimizeTours