Como se describe brevemente en Descripción general de la optimización de rutas, una solicitud básica consiste en Modelo, Envíos y Vehículos como entidades obligatorias:
- Model captura la configuración y las restricciones de toda la solicitud, incluidos
Shipments
yVehicles
. - Los envíos representan tareas o envíos reales que incluyen el retiro y
VisitRequest
de 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 configuraciones y restricciones locales.
Las propiedades de cada entidad describen parte de un problema de optimización en un nivel de detalle particular. Las restricciones a nivel 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 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
Estas son algunas de las propiedades de uso general del mensaje OptimizeToursRequest
de nivel superior (REST, gRPC):
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 usa o no el tráfico en vivo para la planificación de ruta y la estimación de la hora de llegada estimada.populateTransitionPolylines
determina si se deben enrutar las polilíneas y los tokens de ruta se devuelven en la respuesta.
Propiedades del modelo
Estas son algunas de las propiedades de uso general del mensaje ShipmentModel
(REST, gRPC):
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 ni embarques 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 este horario.
Propiedades de envío
Estas son algunas de las propiedades de uso general del mensaje Shipment
(REST, gRPC):
pickups[]
ydeliveries[]
representan dónde se puede retirar un envío o desde donde se dejaron. Las propiedadespickups[]
ydeliveries[]
usan el MensajeVisitRequest
(REST, gRPC).loadDemands
representan la carga requerida para que un vehículo complete una envíos. La propiedadload_limits
(REST, gRPC) correspondiente de los vehículos representa la cantidad de carga que 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. Obtén más información sobre los costos en Parámetros del modelo de costos.
Propiedades del vehículo
Estas son algunas de las propiedades de uso general del mensaje Vehicle
(REST, gRPC):
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 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 cuándo un vehículo puede comenzar su ruta. Esta propiedad 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 Demandas y límites de carga.
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: