anyLogistix

# How It Works

Once started, the experiment analyzes the input data and proceeds to designing the milk runs:

1. The experiment calculates the sum of demand of each customer for all the products for each shipment.
2. Having received the total demand, it calculates direct shipments.

The fleet (if defined) is not considered in the direct shipments calculation. This means that all vehicles of the fleet are available for the next step.

3. To deliver the rest of the demand that is left after the direct shipments, the experiment must find paths (among the ones defined in the Paths table) that are available within the whole shipment period.

Delivery is always made at the end of the period. Let's see into the following:

• Point number 1. The Periods table contains the periods you define. These periods are used in the Paths table to denote the availability of a path within the specified period only.
• Point number 2. The user-defined Experiment duration does not necessarily contain all the periods from the Periods table. Which means that the experiment can run for either a custom period or the period created by combining the selected periods.
• Point number 3. There can be just 1 shipment per period, which brings us to the Number of shipments parameter. As you understand, the number of shipments is equal to the number of periods into which the Experiment duration is divided.

Hence the choice of the path for each shipment.

4. Finally, the experiment creates optimized delivery routes using the network designed in the previous step.

### How a path is chosen

Let us say, the experiment duration covers the period from 1.01.2018 till 12.31.2018 and we have 4 shipments a year. This divides the experiment duration into 4 equal periods, 91 day each. The shipments in this case will be made on the following dates: April 2nd, July 2nd, October 1st, December 30th. The New Year's eve will not be considered, since the time periods must be equal.

This is where the experiment starts to design a network by connecting every pair of objects (Site - Customer, Customer - Customer, Customer - Site). This is done by applying the paths (from the Paths table) that are available for every shipment date separately. The segments connecting the pairs of objects are not necessarily taken from only one available path. The experiment takes all paths that are available within the required period of time and combines them to create a complete network of segment connections from one object to another.

The experiment might fail to find the required segments to complete the network. Note the following conditions:

• If there is no active path covering the whole shipment period (e.g. January 1st - April 2nd), certain segments of network (connections between the pairs of objects) will not be available. In this case the experiment will look for a path that is at least active on this particular shipment date (April 2nd) to create every possible connection in the network on the day the shipment must be made.
• If there is no required active path on the shipment date to be found, the network will be used as it is by the experiment to finally create the optimized delivery routes. This will cause certain routes to be longer than expected and, as a result, more expensive.
• If no path (defined in the Paths table) is set to be available on the shipment date, a message will pop up, informing you that not a single customer could be reached within this shipment period due to the unavailability of paths. To fix this you can either define paths to be available for the required period or change the required number of shipments.
How can we improve this article?