Skip to content

Stop duration multiplier

Info

This feature is configurable via .json input, without the need for code customization and is available for both the Marketplace app and Platform. You can find a list of all available features.

Field name Required Data type SI Unit Defined on Example Configurable via defaults
stop_duration_multiplier No float NA vehicle {"stop_duration_multiplier": 1.23}

The stop_duration_multiplier specifies a multiplier for the vehicle on:

For example, a large semi-truck might take longer to park than a sedan, so the semi-truck's stop durations should be scaled up in comparison.

Here is an example defining a stop duration multiplier on a vehicle. A sample output obtained after solving the problem is also shown.

{
  "stops": [
    {
      "id": "Fushimi Inari Taisha",
      "location": { "lon": 135.772695, "lat": 34.967146 },
      "duration": 300
    },
    {
      "id": "Kiyomizu-dera",
      "location": { "lon": 135.78506, "lat": 34.994857 },
      "duration": 120
    },
    {
      "id": "Nijō Castle",
      "location": { "lon": 135.748134, "lat": 35.014239 },
      "duration": 180
    },
    {
      "id": "Kyoto Imperial Palace",
      "location": { "lon": 135.762057, "lat": 35.025431 },
      "duration": 600
    },
    {
      "id": "Gionmachi",
      "location": { "lon": 135.775682, "lat": 35.002457 }
    },
    {
      "id": "Kinkaku-ji",
      "location": { "lon": 135.728898, "lat": 35.039705 }
    },
    {
      "id": "Arashiyama Bamboo Forest",
      "location": { "lon": 135.672009, "lat": 35.017209 }
    }
  ],
  "vehicles": [
    {
      "id": "v1",
      "start_location": { "lon": 135.672009, "lat": 35.017209 },
      "speed": 20,
      "start_time": "2023-01-01T12:00:00Z",
      "stop_duration_multiplier": 2
    }
  ]
}
{
  "options": {
    "check": {
      "duration": 30000000000,
      "verbosity": "off"
    },
    "format": {
      "disable": {
        "progression": true
      }
    },
    "model": {
      "constraints": {
        "disable": {
          "attributes": false,
          "capacities": null,
          "capacity": false,
          "distance_limit": false,
          "groups": false,
          "maximum_duration": false,
          "maximum_stops": false,
          "maximum_wait_stop": false,
          "maximum_wait_vehicle": false,
          "mixing_items": false,
          "precedence": false,
          "start_time_windows": false,
          "vehicle_end_time": false,
          "vehicle_start_time": false
        },
        "enable": {
          "cluster": false
        }
      },
      "objectives": {
        "capacities": "",
        "cluster": 0,
        "distance": 0,
        "early_arrival_penalty": 1,
        "late_arrival_penalty": 1,
        "min_stops": 1,
        "stop_balance": 0,
        "travel_duration": 0,
        "unplanned_penalty": 1,
        "vehicle_activation_penalty": 1,
        "vehicles_duration": 1
      },
      "properties": {
        "disable": {
          "duration_groups": false,
          "durations": false,
          "initial_solution": false,
          "stop_duration_multipliers": false
        },
        "maximum_time_horizon": 15552000
      },
      "validate": {
        "disable": {
          "resources": false,
          "start_time": false
        },
        "enable": {
          "matrix": false,
          "matrix_asymmetry_tolerance": 20
        }
      }
    },
    "solve": {
      "duration": 10000000000,
      "iterations": 50,
      "parallel_runs": 1,
      "plateau": {
        "absolute_threshold": -1,
        "delay": 0,
        "duration": 0,
        "iterations": 0,
        "relative_threshold": 0
      },
      "run_deterministically": true,
      "solver": {
        "plan_group_size": {
          "delta": 0,
          "delta_after_iterations": 1000000000,
          "max_value": 2,
          "min_value": 2,
          "snap_back_after_improvement": true,
          "start_value": 2,
          "zigzag": true
        },
        "unplan_units": {
          "delta": 2,
          "delta_after_iterations": 125,
          "max_value": -1,
          "min_value": 2,
          "snap_back_after_improvement": true,
          "start_value": 2,
          "zigzag": true
        },
        "unplan_weights": "Vehicle:3,Island:1,Location:293"
      },
      "start_solutions": 1
    }
  },
  "solutions": [
    {
      "objective": {
        "name": "1 * vehicles_duration + 1 * unplanned_penalty",
        "objectives": [
          {
            "base": 3309.046635866165,
            "factor": 1,
            "name": "vehicles_duration",
            "value": 3309.046635866165
          },
          {
            "factor": 1,
            "name": "unplanned_penalty",
            "value": 0
          }
        ],
        "value": 3309.046635866165
      },
      "unplanned": [],
      "vehicles": [
        {
          "id": "v1",
          "route": [
            {
              "arrival_time": "2023-01-01T12:00:00Z",
              "cumulative_travel_duration": 0,
              "end_time": "2023-01-01T12:00:00Z",
              "start_time": "2023-01-01T12:00:00Z",
              "stop": {
                "id": "v1-start",
                "location": {
                  "lat": 35.017209,
                  "lon": 135.672009
                }
              },
              "travel_duration": 0
            },
            {
              "arrival_time": "2023-01-01T12:00:00Z",
              "cumulative_travel_duration": 0,
              "end_time": "2023-01-01T12:00:00Z",
              "start_time": "2023-01-01T12:00:00Z",
              "stop": {
                "id": "Arashiyama Bamboo Forest",
                "location": {
                  "lat": 35.017209,
                  "lon": 135.672009
                }
              },
              "travel_duration": 0
            },
            {
              "arrival_time": "2023-01-01T12:04:47Z",
              "cumulative_travel_distance": 5752,
              "cumulative_travel_duration": 287,
              "end_time": "2023-01-01T12:04:47Z",
              "start_time": "2023-01-01T12:04:47Z",
              "stop": {
                "id": "Kinkaku-ji",
                "location": {
                  "lat": 35.039705,
                  "lon": 135.728898
                }
              },
              "travel_distance": 5752,
              "travel_duration": 287
            },
            {
              "arrival_time": "2023-01-01T12:07:34Z",
              "cumulative_travel_distance": 9081,
              "cumulative_travel_duration": 454,
              "duration": 360,
              "end_time": "2023-01-01T12:13:34Z",
              "start_time": "2023-01-01T12:07:34Z",
              "stop": {
                "id": "Nijō Castle",
                "location": {
                  "lat": 35.014239,
                  "lon": 135.748134
                }
              },
              "travel_distance": 3329,
              "travel_duration": 166
            },
            {
              "arrival_time": "2023-01-01T12:15:02Z",
              "cumulative_travel_distance": 10857,
              "cumulative_travel_duration": 542,
              "duration": 1200,
              "end_time": "2023-01-01T12:35:02Z",
              "start_time": "2023-01-01T12:15:02Z",
              "stop": {
                "id": "Kyoto Imperial Palace",
                "location": {
                  "lat": 35.025431,
                  "lon": 135.762057
                }
              },
              "travel_distance": 1776,
              "travel_duration": 88
            },
            {
              "arrival_time": "2023-01-01T12:37:24Z",
              "cumulative_travel_distance": 13696,
              "cumulative_travel_duration": 684,
              "end_time": "2023-01-01T12:37:24Z",
              "start_time": "2023-01-01T12:37:24Z",
              "stop": {
                "id": "Gionmachi",
                "location": {
                  "lat": 35.002457,
                  "lon": 135.775682
                }
              },
              "travel_distance": 2839,
              "travel_duration": 141
            },
            {
              "arrival_time": "2023-01-01T12:38:25Z",
              "cumulative_travel_distance": 14897,
              "cumulative_travel_duration": 745,
              "duration": 240,
              "end_time": "2023-01-01T12:42:25Z",
              "start_time": "2023-01-01T12:38:25Z",
              "stop": {
                "id": "Kiyomizu-dera",
                "location": {
                  "lat": 34.994857,
                  "lon": 135.78506
                }
              },
              "travel_distance": 1201,
              "travel_duration": 60
            },
            {
              "arrival_time": "2023-01-01T12:45:09Z",
              "cumulative_travel_distance": 18177,
              "cumulative_travel_duration": 909,
              "duration": 600,
              "end_time": "2023-01-01T12:55:09Z",
              "start_time": "2023-01-01T12:45:09Z",
              "stop": {
                "id": "Fushimi Inari Taisha",
                "location": {
                  "lat": 34.967146,
                  "lon": 135.772695
                }
              },
              "travel_distance": 3280,
              "travel_duration": 164
            }
          ],
          "route_duration": 3309,
          "route_stops_duration": 2400,
          "route_travel_distance": 18177,
          "route_travel_duration": 909
        }
      ]
    }
  ],
  "statistics": {
    "result": {
      "custom": {
        "activated_vehicles": 1,
        "max_duration": 0.123,
        "max_stops_in_vehicle": 7,
        "max_travel_duration": 0.123,
        "min_duration": 0.123,
        "min_stops_in_vehicle": 7,
        "min_travel_duration": 0.123,
        "unplanned_stops": 0
      },
      "duration": 0.123,
      "value": 0.123
    },
    "run": {
      "duration": 0.123,
      "iterations": 50
    },
    "schema": "v1"
  },
  "version": {
    "sdk": "VERSION"
  }
}