Ejemplo 4 – Cargas separadas por tipo de vehículo
En este ejemplo, tenemos una solicitud para resolver un problema logístico de una empresa que utiliza vehículos especializados para diferentes tipos de carga: congelados, refrigerados y secos.
Hay 3 vehículos disponibles — uno para refrigerados (capaz de transportar cargas congeladas y refrigeradas), uno para cargas secas y uno híbrido (capaz de transportar todos los tipos).
En total, existen 15 operaciones de entrega, con productos asignados a grupos específicos, garantizando que cada vehículo transporte solo cargas compatibles.
Descripción del problema
Las entregas involucran productos como pescado (congelado), leche (refrigerada) y soja (seca). Los vehículos están configurados con compartimentos que restringen los grupos permitidos, simulando escenarios reales de la logística de alimentos perecederos, en la que la temperatura y el tipo de carga son factores críticos.
Las ventanas horarias definidas cubren todo el período operativo disponible para los vehículos (desde las 08:00 de un día hasta las 18:00 del día siguiente), es decir, no imponen ninguna restricción adicional más allá de la propia disponibilidad de la flota. El foco de la planificación, por lo tanto, está en respetar la compatibilidad de compartimentos y optimizar la distancia recorrida.
![]() 15 OPERACIONES DE ENTREGA | ![]() 1 DEPÓSITO | ![]() 3 VEHÍCULOS ESPECIALIZADOS (REFRIGERADO, SECO, HÍBRIDO) | ![]() 3 TIPOS DE PRODUCTOS (CONGELADO, REFRIGERADO, SECO) |
Los puntos de entrega están distribuidos en diferentes localidades — incluso hay dos clientes (STOPPOINT_7 y STOPPOINT_8) que comparten las mismas coordenadas, simulando, por ejemplo, dos destinatarios en el mismo hub o almacén. La optimización asigna cargas compatibles a cada vehículo: el refrigerado transporta leche y, cuando la ruta lo justifica, también pescado (ya que su compartimento acepta ambos tipos de embalaje); el vehículo para cargas secas transporta soja; y el vehículo híbrido atiende las demás entregas, combinando los tres tipos de producto en un único compartimento.
Este enfoque evita la contaminación cruzada o las violaciones de temperatura, situaciones comunes en las cadenas de suministro de alimentos.
Parámetros que resuelven la combinación carga-vehículo
Antes de ver la solicitud completa, vale la pena aislar los tres parámetros que efectivamente deciden qué vehículo puede cargar qué producto. Son estos los que la Planning API cruza internamente para armar las rutas — los demás campos del payload (perfiles, legislación, ventanas horarias, etc.) no interfieren en esta combinación y se tratan en otro artículo.
products[].packagings— define a qué tipo de embalaje/acondicionamiento pertenece cada producto. En el ejemplo,PESCADOestá enCONGELADOS,LECHEenREFRIGERADOSySOJAenSECOS. Este campo no dice nada sobre los vehículos — solo etiqueta el producto.vehicleTypes[].compartmentConfigurations[].compartments[].allowedPackagings— del lado del vehículo, cada compartimento declara qué embalajes acepta. Aquí es donde la compatibilidad realmente ocurre: el compartimentoREFRIGERADOacepta["CONGELADOS", "REFRIGERADOS"], elSECOacepta solo["SECOS"], y elHIBRIDOacepta los tres —["CONGELADOS", "REFRIGERADOS", "SECOS"].compartments[].type(FIXED) ycompartments[].maximumCapacity— además de aceptar o no el embalaje, cada compartimento tiene una capacidad máxima fija (en este ejemplo, 1000 para todos). La API solo asigna una operación a un compartimento si el embalaje del producto está enallowedPackagingsy la suma de volumen/peso todavía cabe dentro demaximumCapacity.
Combinando los dos primeros campos, se puede armar la matriz de compatibilidad usada en este caso de uso sin necesidad de ejecutar la API:
| Producto | Embalaje (products[].packagings) | Compartimentos compatibles (allowedPackagings) |
|---|---|---|
| PESCADO | CONGELADOS | REFRIGERADO, HIBRIDO |
| LECHE | REFRIGERADOS | REFRIGERADO, HIBRIDO |
| SOJA | SECOS | SECO, HIBRIDO |
Observe que el vehículo HIBRIDO es el único compatible con los tres productos — por eso absorbe la mayor parte de las entregas en la solución final, mientras que REFRIGERADO y SECO quedan restringidos a los productos de sus respectivos embalajes.
Solicitud completa
La solicitud completa se puede consultar a continuación. Preste atención a los bloques products y vehicleTypes.compartmentConfigurations — son exactamente los tres parámetros descritos anteriormente:
{
"optimizationProfile": "BRAZIL46",
"tripsProfile": "MAPLINKBR",
"startDate": 1624608000000,
"legislationProfiles": [
{
"name": "DEFAULT"
}
],
"logisticConstraints": [
{
"name": "DEFAULT"
}
],
"products": [
{
"name": "PESCADO",
"packagings": [
"CONGELADOS"
]
},
{
"name": "LECHE",
"packagings": [
"REFRIGERADOS"
]
},
{
"name": "SOJA",
"packagings": [
"SECOS"
]
}
],
"sites": [
{
"name": "STOPPOINT_1",
"coordinates": {
"latitude": -23.524322,
"longitude": -46.706273
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_2",
"coordinates": {
"latitude": -23.623525,
"longitude": -46.703297
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_3",
"coordinates": {
"latitude": -23.588551,
"longitude": -46.646401
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_4",
"coordinates": {
"latitude": -23.504494,
"longitude": -46.857385
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_5",
"coordinates": {
"latitude": -29.823819,
"longitude": -51.14773
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_6",
"coordinates": {
"latitude": -25.556829,
"longitude": -49.348827
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_7",
"coordinates": {
"latitude": -29.827506,
"longitude": -51.172703
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_8",
"coordinates": {
"latitude": -29.827506,
"longitude": -51.172703
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_9",
"coordinates": {
"latitude": -25.242227,
"longitude": -53.981779
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_10",
"coordinates": {
"latitude": -29.638353,
"longitude": -51.004301
},
"logisticConstraints": "DEFAULT"
}
],
"depots": [
{
"name": "DEPOT",
"coordinates": {
"latitude": -23.504494,
"longitude": -46.857385
},
"logisticConstraints": "DEFAULT"
}
],
"vehicleTypes": [
{
"name": "REFRIGERADO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_REFRIGERADO",
"compartments": [
{
"name": "REFRIGERADO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"CONGELADOS",
"REFRIGERADOS"
]
}
]
}
]
},
{
"name": "SECO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_SECO",
"compartments": [
{
"name": "SECO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"SECOS"
]
}
]
}
]
},
{
"name": "HIBRIDO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_HIBRIDO",
"compartments": [
{
"name": "HIBRIDO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"CONGELADOS",
"REFRIGERADOS",
"SECOS"
]
}
]
}
]
}
],
"vehicles": [
{
"name": "VEHICLE_1",
"vehicleType": "REFRIGERADO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
},
{
"name": "VEHICLE_2",
"vehicleType": "SECO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
},
{
"name": "VEHICLE_3",
"vehicleType": "HIBRIDO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
}
],
"operations": [
{
"id": "STOPPOINT_1",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PESCADO",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_1",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_2",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PESCADO",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_2",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_3",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PESCADO",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_3",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_4",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "PESCADO",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_4",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_5",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "PESCADO",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_5",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_6",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LECHE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_6",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_7",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LECHE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_7",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_8",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LECHE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_8",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_9",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LECHE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_9",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_10",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LECHE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_10",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_11",
"priority": 0,
"volume": 100,
"weight": 100,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_1",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_12",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_2",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_13",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_3",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_14",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_4",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_15",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_5",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
}
]
}
Observe que solo las operaciones de PESCADO en los tres primeros puntos (30 kg/30 L en total) y la operación de SOJA en STOPPOINT_11 (100 kg/100 L) llevan volumen y peso reales — las demás representan paradas de visita/entrega simbólicas, mantenidas en cero a propósito para que el ejemplo se mantenga enfocado en la compatibilidad de compartimento en lugar de en la optimización de capacidad. Vale la pena notar que la operación de soja (100/100) ya nace en el límite exacto del maximumCapacity del compartimento SECO — es decir, además de validar el embalaje, el ejemplo también pone a prueba el límite de capacidad del vehículo.
Solución del problema logístico
La respuesta de la API devuelve la mejor secuencia de las operaciones para cada vehículo, respetando la matriz de compatibilidad descrita anteriormente. En la práctica:
- VEHICLE_1 (REFRIGERADO) entrega en STOPPOINT_9, STOPPOINT_6 (leche) y STOPPOINT_4 (pescado) — como su compartimento acepta tanto
REFRIGERADOScomoCONGELADOS, puede atender ese pescado sin violar la regla de embalaje, aunque sea el «vehículo de la leche». - VEHICLE_2 (SECO) entrega solo en STOPPOINT_1, cargando la soja (100 kg/100 L) — el único embalaje que su compartimento acepta, y en el límite máximo de capacidad.
- VEHICLE_3 (HIBRIDO) absorbe el resto de las 15 operaciones, ya que es el único compartimento compatible con los tres embalajes al mismo tiempo (incluido el pescado con volumen real en STOPPOINT_1, 2 y 3).
El detalle campo por campo de la respuesta (actividades, indicadores, tiempos de ruta, etc.) se trata en un artículo dedicado a la estructura de respuesta de la Planning API.

Respuesta completa
La respuesta completa se puede consultar a continuación:
{
"id": "69dd5d8d8620796cf45f002b",
"clientId": "maplink",
"vehicleRoutes": [
{
"routes": [
{
"id": "NewRoute_1_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 30.0,
"weight": 15.0,
"operations": [
"STOPPOINT_14",
"STOPPOINT_1",
"STOPPOINT_12",
"STOPPOINT_2",
"STOPPOINT_3",
"STOPPOINT_13",
"STOPPOINT_5",
"STOPPOINT_15",
"STOPPOINT_10",
"STOPPOINT_7",
"STOPPOINT_8"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_14",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_1",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_12",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_2",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_3",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_13",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_5",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_15",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_10",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_7",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_8",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624657932000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_5",
"departureSite": "DEPOT",
"distance": 1120701,
"nominalDuration": 49932
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624657932000,
"end": 1624657932000
},
"type": "SITE",
"site": "STOPPOINT_5",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_15",
"STOPPOINT_5"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624657932000,
"end": 1624658489000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_8",
"departureSite": "STOPPOINT_5",
"distance": 5660,
"nominalDuration": 557
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624658489000,
"end": 1624658489000
},
"type": "SITE",
"site": "STOPPOINT_8",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_8"
]
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624658489000,
"end": 1624658489000
},
"type": "SITE",
"site": "STOPPOINT_7",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_7"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624658489000,
"end": 1624660506000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_10",
"departureSite": "STOPPOINT_7",
"distance": 34459,
"nominalDuration": 2017
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624660506000,
"end": 1624660506000
},
"type": "SITE",
"site": "STOPPOINT_10",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_10"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624660506000,
"end": 1624711033000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_2",
"departureSite": "STOPPOINT_10",
"distance": 1116318,
"nominalDuration": 50527
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624711033000,
"end": 1624711033000
},
"type": "SITE",
"site": "STOPPOINT_2",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_12",
"STOPPOINT_2"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624711033000,
"end": 1624711941000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_3",
"departureSite": "STOPPOINT_2",
"distance": 9321,
"nominalDuration": 908
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624711941000,
"end": 1624711941000
},
"type": "SITE",
"site": "STOPPOINT_3",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_3",
"STOPPOINT_13"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624711941000,
"end": 1624713373000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_1",
"departureSite": "STOPPOINT_3",
"distance": 13302,
"nominalDuration": 1432
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624713373000,
"end": 1624713373000
},
"type": "SITE",
"site": "STOPPOINT_1",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_1"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624713373000,
"end": 1624714661000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_4",
"departureSite": "STOPPOINT_1",
"distance": 19063,
"nominalDuration": 1288
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624714661000,
"end": 1624714661000
},
"type": "SITE",
"site": "STOPPOINT_4",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_14"
]
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624714661000,
"end": 1624714661000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_HIBRIDO"
}
],
"vehicle": "VEHICLE_3",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
},
{
"routes": [
{
"id": "NewRoute_2_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_4",
"STOPPOINT_9",
"STOPPOINT_6"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_4",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_9",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_6",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624651585000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_9",
"departureSite": "DEPOT",
"distance": 953923,
"nominalDuration": 43585
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624651585000,
"end": 1624651585000
},
"type": "SITE",
"site": "STOPPOINT_9",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_9"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624651585000,
"end": 1624680059000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_6",
"departureSite": "STOPPOINT_9",
"distance": 561860,
"nominalDuration": 28474
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624680059000,
"end": 1624680059000
},
"type": "SITE",
"site": "STOPPOINT_6",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_6"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624680059000,
"end": 1624700312000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_4",
"departureSite": "STOPPOINT_6",
"distance": 422688,
"nominalDuration": 20253
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624700312000,
"end": 1624700312000
},
"type": "SITE",
"site": "STOPPOINT_4",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_4"
]
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624700312000,
"end": 1624700312000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_REFRIGERADO"
}
],
"vehicle": "VEHICLE_1",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
},
{
"routes": [
{
"id": "NewRoute_3_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 100.0,
"weight": 100.0,
"operations": [
"STOPPOINT_11"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_11",
"compartmentSolutions": [
{
"compartment": "SECO",
"capacityWeightUsed": 100.0,
"capacityVolumeUsed": 100.0
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624609233000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_1",
"departureSite": "DEPOT",
"distance": 18005,
"nominalDuration": 1233
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624609233000,
"end": 1624609233000
},
"type": "SITE",
"site": "STOPPOINT_1",
"fixedTimeSite": 0,
"volume": 100.0,
"weight": 100.0,
"operations": [
"STOPPOINT_11"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624609233000,
"end": 1624610521000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "DEPOT",
"departureSite": "STOPPOINT_1",
"distance": 19063,
"nominalDuration": 1288
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624610521000,
"end": 1624610521000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_SECO"
}
],
"vehicle": "VEHICLE_2",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
}
],
"indicators": {
"totalServiceTime": 0,
"totalDeliveringTime": 0,
"dayWorkingTotalTime": 136814,
"nightWorkingTotalTime": 64680,
"totalUnloadingTime": 0,
"totalWorkingTime": 201494,
"totalCollectingTime": 0,
"timeWindowNumber": 3,
"totalDrivingTime": 201494,
"totalLoadingTime": 0,
"totalTime": 201494,
"totalDistance": 4294363,
"averageOccupancyRateVolume": 43.34,
"averageOccupancyRateWeight": 38.34,
"rejectOperationsNumber": 0,
"totalWaitingTime": 0,
"totalRestTime": 0,
"routesNumber": 3
}
}



