El objetivo principal de la API de Route Optimization es encontrar rutas con el costo más bajo. Por lo tanto, el modelo de costos es el principal factor determinante de la optimización de rutas.
El modelo de costos es un conjunto de propiedades que especifican los costos globales, de vehículos y de envíos.
Las propiedades del modelo de costos admiten los siguientes tipos de objetivos de optimización:
- Asignaciones y rutas eficientes de vehículos
- Tiempos de retiro y entrega rentables
- Priorización de envíos críticos
Estructura
Como se muestra en el diagrama, las propiedades del modelo de costos se estructuran de la siguiente manera:
Shipment
contiene la propiedadpenaltyCost
.Vehicle
contiene las siguientes propiedades:
En este documento, solo se destacan los parámetros esenciales del modelo de costos. Consulta la documentación de referencia para ver el conjunto completo de parámetros de costos.
Lista de tareas de Essentials
En la siguiente lista de tareas, se describe el conocimiento esencial que evita posibles errores relacionados con los costos. Esta lista puede ayudarte a validar tu solicitud y solucionar problemas relacionados con tu respuesta.
Propiedades
En la siguiente tabla, se enumeran y describen las propiedades del modelo de costos.
Madre o padre | Nombre de la propiedad | Tipo de propiedad | Costo por | Descripción de la propiedad |
---|---|---|---|---|
Shipment |
penaltyCost |
número | Se omitió el envío | Es el costo en el que se incurre por omitir el envío. La API omite un envío cuando el costo para completarlo supera su costo de penalización.
|
Vehicle |
fixedCost |
número | Envío | Es el costo fijo que se aplica si se usa este vehículo para transportar un envío. |
costPerHour |
número | Hora | El costo de operar un vehículo por hora, incluidos los tiempos de tránsito, espera, visita y descanso. A medida que aumenta este costo, el optimizador intenta encontrar rutas más rápidas que pueden no ser las más cortas. Esta propiedad puede ser un costo por vehículo independiente eficaz debido a su simplicidad y completitud. |
|
costPerKilometer |
número | Kilómetros | Es el costo por kilómetro recorrido por el vehículo, como los costos de combustible y los costos amortizados de mantenimiento del vehículo. | |
costPerTraveledHour |
número | Hora | El costo de operar un vehículo por hora solo mientras está en tránsito, sin incluir los tiempos de espera, visita y descanso. Esto prioriza las rutas de viaje más rápidas por sobre las más cortas. |
Ejemplos
En esta sección, se abordan tres tipos de ejemplos:
- Muestras de código que ilustran la estructura de las propiedades del modelo de costos.
- Un caso de ejemplo que muestra una forma de usar las propiedades del modelo de costos para alcanzar un objetivo comercial.
- Un ejemplo de solicitud que incluye los valores establecidos en la situación de ejemplo.
Muestras de código
En el siguiente ejemplo de código, se muestra la estructura de las propiedades del modelo de costos en Shipment
:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
En el siguiente ejemplo de código, se muestra la estructura de las propiedades del modelo de costos en Vehicle
:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Situación de ejemplo
En esta sección, se describe una situación en la que tienes un negocio de guardería para perros. Estás optimizando una ruta para el camión que usas para recoger a los perros de sus casas. En esta situación, deseas que el optimizador tenga en cuenta los costos relacionados con la recogida de los perros y las operaciones del vehículo cuando proporcione una ruta.
En este ejemplo, una unidad de costo representa 1 dólar. Esto significa que los valores de las propiedades del modelo de costos en tu solicitud son los siguientes:
Propiedad | Valor | Situación |
---|---|---|
penaltyCost |
10 | Representa la penalización que ofreces a tus clientes por no retirar a su perro en el día programado. Cada vez que no recojas al perro en un día programado, el cliente recibirá un descuento de USD 40 en el total del servicio. |
fixedCost |
30 | Representa el costo diario de los pagos del préstamo de tu vehículo, que es de USD 30 por día. |
costPerKilometer |
0.08 | Representa la cantidad de gasolina que consume tu vehículo por kilómetro. Tu vehículo necesita 0.04 galones por kilómetro para moverse, y el costo por galón en tu región es de USD 2. |
costPerHour |
27 | Representa cuánto le pagas a un conductor por conducir tu vehículo. Le pagas al conductor 27 dólares por hora. |
costPerTraveledHour |
2.5 | Representa cuánto debes pagar por el aire acondicionado del vehículo por hora para los perros mientras viajan. Cuando el vehículo no está en movimiento, el conductor puede abrir las puertas traseras y apagar el aire acondicionado. |
Según los parámetros de costos, el optimizador podría realizar compensaciones que no son obvias para el usuario, pero que se pueden encontrar a través de la optimización.
En el siguiente diagrama, se ilustra un ejemplo en el que el optimizador podría elegir una ruta más larga, pero más rápida, a través de la línea punteada verde para evitar el tráfico en la línea punteada roja.
En este caso, el balance de costos de las dos rutas es el siguiente:
La línea punteada verde tiene un valor de
costPerHour
ycostPerTraveledHour
bajos, ya que es una ruta rápida que evita el tráfico, lo que resulta más rentable incluso cuando el valor decostPerKilometer
es alto.La línea punteada roja tiene un valor de
costPerKilometer
bajo, ya que es una ruta directa, pero los valores decostPerHour
ycostPerTraveledHour
son demasiado altos debido a los tiempos de espera en el tráfico, lo que la convierte en la ruta más costosa.
Además de proporcionar rutas rentables, el optimizador también proporciona una suma de los costos totales de las rutas de entrega en las propiedades de respuesta.
Ejemplo de solicitud
En el siguiente ejemplo, se muestra la estructura de una solicitud básica de optimizeTours
que incorpora los valores establecidos en la situación de ejemplo:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Propiedades de la respuesta
El mensaje OptimizeToursResponse
tiene propiedades de costo que describen los costos incurridos en el proceso de completar una ruta:
metrics.costs
: Es el costo total en todas las rutas, desglosado por los campos de la solicitud relacionados con el costo.metrics.totalCost
: Es el costo total de todas las rutas sumadas.