Elaborar un mensaje de solicitud

Como se describe brevemente en la Descripción general de la optimización de rutas, se incluye una solicitud básica Contiene Modelo, Envíos y Vehículos como entidades obligatorias:

  • Modelo captura la configuración y las restricciones para toda la solicitud. que incluyen Shipments y Vehicles.
  • Los envíos representan tareas o envíos reales que incluyen el retiro y VisitRequest de entrega. Los envíos tienen restricciones y parámetros de configuración 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 un nivel de detalle particular. Las restricciones de todo el modelo se aplican envíos y vehículos, mientras que las restricciones y propiedades que se especifican sobre los envíos o vehículos son específicos de un solo envío o vehículo.

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

OptimizeToursRequest propiedades

Algunas propiedades de uso general del mensaje OptimizeToursRequest de nivel superior (REST, gRPC) incluyen lo siguiente:

  • searchMode indica si se debe mostrar la primera solución que satisface restricciones específicas o encontrar la mejor solución posible dentro de un conjunto fecha límite.
  • considerRoadTraffic determina si se utiliza o no el tráfico en vivo para la planificación de rutas y la estimación de la hora de llegada estimada.
  • populateTransitionPolylines determina si las polilíneas de ruta se que se devuelven en la respuesta.

Propiedades del modelo

Algunas propiedades de uso general del mensaje ShipmentModel (REST, gRPC) incluyen:

  • globalStartTime representa la hora de inicio más temprana de las rutas en todas las rutas. vehículos y envíos. Ningún vehículo puede iniciar sus primeras transiciones y envíos antes de este plazo.
  • globalEndTime representa la hora de finalización más reciente de las rutas en todos los vehículos. y envíos. Se deben completar todos los envíos y transiciones asignados. antes de esa fecha.

Propiedades de envío

Algunas propiedades de uso general del mensaje Shipment (REST, gRPC) incluyen:

  • pickups[] y deliveries[] representan dónde se puede retirar un envío o desde donde se dejaron. Las propiedades pickups[] y deliveries[] usan el Mensaje VisitRequest (REST, gRPC).
  • loadDemands representan la carga requerida para que un vehículo complete una envío de datos. Vehículos load_limits correspondiente (REST, gRPC) representa cuánta carga puede admitir un vehículo a la vez. Obtén más información sobre la carga en Demandas y límites de carga.
  • penalty_cost representa el costo que se genera si se omite un envío. Leído Obtén más información sobre los costos en Parámetros del modelo de costos.

Propiedades de vehículos

Algunas propiedades de uso general del mensaje Vehicle (REST, gRPC) incluyen:

  • startLocation representa el punto en el que un vehículo debe comenzar su ruta. Esta es opcional. Si no se especifica, la ruta del vehículo comienza en el de su primer envío asignado.
  • endLocation representa el lugar en el que 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 cuándo un vehículo puede comenzar su ruta. Esta es opcional.
  • endTimeWindows[] representa cuándo un vehículo puede iniciar y finalizar su ruta. Ambas propiedades son opcionales.
  • loadLimits representa la capacidad disponible del vehículo para cumplir con los envíos. de carga de trabajo. Obtén más información sobre las demandas y los límites de carga en Load Demands and Límites.

Una solicitud de ejemplo 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 optimización de rutas es importante comprender la diferencia entre los dos métodos:

Cómo comparar OptimizeTours y BatchOptimizeTours