Discord
@hash/distributor-vs-direct-delivery-gis
Simulation
1
0
Public

Distributor vs Direct Delivery - GIS

This simulation demonstrates how adding a local distributor to a supply chain affects delivery and capital costs. The first variant of the supply chain consists of a port which receives shipments and clients located in various cities in West Virginia

This simulation demonstrates how adding a local distributor to a supply chain affects delivery and capital costs. The first variant of the supply chain consists of a port which receives shipments and clients located in various cities in West Virginia. The second variant adds a local distributor which receives stock from the port, and delivers to the clients.

To switch between which variant is being displayed in the 3D Viewer, change the local_distributor property in globals.json.

Routing

Truck agents in this simulation make use of the GIS library to

Metrics

Costs are incurred for renting warehouse space and sending delivery trucks. The Plots tab shows cost breakdowns and comparisons for the current variant of the supply chain. We can make use of HASH's experiments to directly compase the costs of the two variants

Experiment

We'd like to know which supply chain configuration ends up minimizing expenses for the supply chain. We can use HASH's experiments functionality to answer this question.

This simulation makes use of the "values" type experiment which allows us to run and compare the plots of the supply chain with and without a local distributor. Run the experiment by pressing the Experiments button (test tube) in the lower left of the 3D Viewer, and then the "Local Distributor Experiment".

With the plots tab open, select the All Runs (Collated View) from the Activity sidebar. You can now compare the plots generated by both configurations of the supply chain. We can determine that the presence of a local distributor reduces the total expenses of the supply chain, and that the savings become more significant the longer the supply chain operates.

Optimization

Now that we know that the distributor configuration minimizes costs, let's try to further improve it by optimizing some global parameters.

Reorder Level

The first parameters we'll take a look at affect when the port and distributor make reorder requests. port_stock_2_alarm_level represents the level of total capacity at which the port will reorder, and wv_stock_alarm_level represents the same for the distributor.

Optimizations must have a set of global parameters specified to act as the independent variables and constraints in the experiment. However, in addition they require that you specify a metric to either minimize or maximize. We'll try to minimize the total_expenses metric. Run the Optimize Alarm Levels experiment, and then check the Activity Sidebar to see which run has been marked as optimal (the circled checkmark).

Optimal reorder level for distributor: 0.887 Optimal reorder level for port: 0.117

Why are the optimal reorder levels so different? A likely explanation is that, since the distributor is making shipments far more frequently than the port, it is much safer for it to always be well-stocked. For the port however, constantly maintaining so much stock is costly, since it only makes infrequent shipments (compared to the distributor).

Distributor Location

Next, why don't we try to optimize the location of the distributor. Since the delivery costs for the distributor's trucks are linearly dependent on the distance to a client, we expect this optimization to find the "center of mass" of all clients.

Indeed, when we run the Optimize Distributor Location experiment, we find the distributor placed in a much more central location than its default.

Optimal lng_lat: [-80.3667, 38.8789]