メインコンテンツまでスキップ

Order Grouping

Order Grouping is a constraint that allows the optimization engine to bundle multiple orders heading to the same physical location into a single, consolidated stop.

This feature ensures that drop-offs for orders going to the exact same location are fulfilled by the same vehicle simultaneously, creating more realistic and efficient route plans while satisfying other constraints.

Value in the Planning Process

In real-world logistics, if several orders are placed by the same customer or are destined for the same location, it is highly inefficient for multiple vehicles to fulfill them separately or for one vehicle to visit the location multiple times in a single trip.

Activating the Order Grouping constraint provides immense value during the planning process by:

  • Reducing service time overhead: The time spent parking or at the delivery point is not duplicated for each individual order.
  • Ensuring compact routes: By forcing the optimizer to treat multiple shipments to the same location as one consolidated delivery, the algorithm generates highly efficient schedules.

To enable this feature during optimization, you use the node_grouping_enabled parameter (boolean).

ヒント

When manually editing routes, you can enable the manual_edit_allow_cvrptw_conversion parameter to trigger a similar grouping logic. This streamlines manual planning by converting grouped orders into single nodes (ignoring capacity constraints to force the drop-off combination) to ensure trips have a single consolidated drop-off, visiting each location only once per trip.

How Order Grouping Works

The engine groups nodes by verifying that they share the exact same geographical coordinates, but the strictness of the grouping differs based on whether you are running a CVRPTW (Capacitated Vehicle Routing Problem with Time Windows) or PDP (Pickup and Delivery Problem) simulation:

  • CVRPTW Mode: The engine applies grouping to drop-off locations. Deliveries that share the exact same drop-off latitude and longitude, AND have overlapping open and close delivery time windows, are consolidated into one grouped node.
  • PDP Mode: In Point-to-Point delivery, both the origin and destination vary for every order. The engine will only group orders in pairs. Two orders will be grouped ONLY if they share both the exact same pickup coordinates AND the exact same drop-off coordinates, AND both their pickup and drop-off time windows overlap.
警告

When multiple drop-offs are grouped into a single node, their individual service times are combined. The grouped node as a whole might easily satisfy a specific delivery time window during the optimization.

However, once the engine ungroups the node to output the final actual results and sequence the individual service times, the resulting calculated arrival timestamps for subsequent un-grouped orders within the group might land much later than the initially scheduled time of the grouped node block.

Grouping Capacity Strategies

When multiple nodes are grouped, their demands are aggregated together. Because this consolidated demand could easily surpass the capacity of smaller vehicles, you must provide a strategy for the engine to evaluate whether the group is allowed to be formed in the first place based on vehicle capacity constraints.

You can configure this using the node_grouping_capacity_strategy parameter. The available strategies are:

  • min: Grouping fails if the combined total demand exceeds the minimum capacity across all eligible vehicle types. This is the safest approach to guarantee any eligible vehicle can pick it up.
  • max: Grouping fails if the combined total demand exceeds the maximum capacity of eligible vehicle types.
  • median: Grouping fails if the combined total demand exceeds the median capacity across all eligible vehicle types.
  • mean: Grouping fails if the combined total demand is greater than the average (mean) capacity of eligible vehicle types.
  • ignore: Bypasses the capacity checks entirely during the grouping phase. Use this if you want maximum consolidation regardless of vehicle capacity, but note that if the grouped demand exceeds all your largest vehicles, the orders might be entirely rejected during routing.

Implementation in API

You can configure order grouping parameters globally within the optimization engine settings or simulation parameters via the logistics_api_settings. For more details about these configurations, reference the Logistics API Settings.

Example Configuration

{
"data": {
"logistics_api_settings": {
"node_grouping_enabled": true,
"node_grouping_capacity_strategy": "min"
}
}
}