Operational Planning

Understanding the Bulk Plan Run

The performance tab of the bulk plan manager provides useful information regarding performance. Performance metrics are gathered if the number of orders is greater than the value set in the parameter MINIMUM ORDERS FOR MILESTONE COLLECTION. This parameter is set to 50 by default. To generate the information in the performance tab for smaller bulk plans, you should set this parameter to 1.

The following processes in bulk plan have been identified as taking the most time. The next few sections provide typical processes and tips on how to improve performance. Remember that bulk plan run times are dependent on various factors and the problem may be very complex and require the time taken to produce quality solutions.

Key Process Steps

Bundle Orders

Order bundling is typically the first step during a bulk plan run and often includes querying order releases. If you encounter slowness during order bundling, a likely suspect is slow queries. There may be opportunities for tuning the database for faster queries. Order bundling is not multi-threaded and hence the multi-thread settings will not help order bundling performance.

Find Itineraries

The run time during the find itinerary step can be improved by specifying a particular itinerary on the order releases and reducing the need for evaluating different itineraries. The find itineraries step is not multi-threaded.

Direct Shipment Building

Following are some reasons for long direct shipment building run times and tips for improving performance.

Complex Itineraries

If there are itineraries that have several legs and each leg has several routing options, carrier options and equipment options, the number of combinations to evaluate will be huge. Reducing the number of available options for routing orders can result in huge performance gains.

Number of Itineraries

Having too many itineraries to consider may negatively impact performance. Reduce the number of itineraries for each order by specifying an itinerary GID on the order releases.

Setup Multi-threading in Planning Build

The shipment building process is multi-threaded. Setting up the right number of threads to take advantage of the processes on the server will improve the overall performance of direct shipment building. See the topic Bulk Plan Multi-threading for further information on how to setup multi-thread properties.

True Container Optimization for Performance

The shipment building process invokes container optimization for packing ship units into containers. Ensure that there is only one container optimization algorithm, one metric, and one objective chosen so that only one container optimization run is performed for each call. Choosing Multi-Container MIP, Column Generation, or Enumerative packing could result in significant computational time. Use Quick Packing instead.

Multi-Stop Shipments

If the performance issue is during multi-stop shipment building, there are several things that can be done to improve the performance including changing some settings for multi-stop logic configuration parameters

Setup Distance and Time Parameters

Using maximum distance and time between pickup and drop-off stops could significantly improve the run time. The following multi-stop logic configuration parameters will help in reducing the overall run times (performance is better for smaller values of these parameters).

  • MULTISTOP MAX DISTANCE BETWEEN DELIVERIES
  • MULTISTOP MAX DISTANCE BETWEEN PICKUPS
  • MULTISTOP MAX RADIUS FOR DELIVERIES
  • MULTISTOP MAX RADIUS FOR PICKUPS
  • MULTISTOP MAX RADIUS PERCENTAGE FOR DELIVERIES
  • MULTISTOP MAX RADIUS PERCENTAGE FOR PICKUPS
  • MULTISTOP MAX TIME BETWEEN DELIVERIES
  • MULTISTOP MAX TIME BETWEEN PICKUPS

Avoid Using Computationally Expensive Multi-Stop Options

  • Setting the logic configuration parameter MULTISTOP COST SAVINGS CHECK TYPE to "4. Calculate cost for all paired shipments," significantly increases the run time as costing and driving are done for every pair of shipment savings calculations. Instead of using this option, try options 1 or 2, which calculate the costs at the end of the iteration or at the end of the process.
  • When building multi-stop shipments, and selecting the value for the Multistop Consolidation Algorithm Type parameter, avoid using expensive algorithms such as "Complete Enumeration" which cannot scale well to large order sets. Instead, use "Column Generation" if solution quality is important.
  • For the generation of stop sequences, avoid using the Complete Enumeration algorithm: 2-Opt or 3-Opt algorithms generally produce great sequences.
  • Avoid setting MULTISTOP PERFORM THOROUGH SEQUENCE CHECK to "TRUE".
  • Use "Estimate" for MULTISTOP RATE DISTANCE ID. Using an external rate distance will perform expensive calls to an external engine and thus slow down the multi-stop process.

Set Up Leg Consolidation Groups

Setting up many leg consolidation groups will create multiple small multi-stop runs rather than one huge run. For example, running 10 multi-stops with 100 order releases each executes a lot faster than running one large multi-stop with 1000 order releases.

Related Topics