Simulation model of a logistics center

I bring to the attention of users of a small article that describes the practical side of the application of such an area as simulation.

Problem statement (process description)


According to the supply calendar agreed with the supplier, a certain quantity of goods of one type arrives at the logistics center. If the warehouse is full, the application for the supply of goods is deliberately canceled. The goods are received, stored and transferred to the retail point of sale in packages of 8 pcs. Upon arrival, the car is met by an employee of the center (storekeeper), checks for the necessary supporting documentation, certificates of conformity / quality, primary accounting documentation and accompanies the car to the unloading area.

In the unloading zone, the storekeeper, in the presence of the forwarder and with the help of loading equipment (electric forklift), carries out the reception and visual inspection of the goods. Then it moves it to the input control zone. The quality specialist (controller) conducts incoming inspection of the goods. Upon admission, the goods, with the help of a quality specialist, are moved to the waiting area for further placement on the shelves of the storage area. If a product is found that does not match the input parameters, it moves it to the defect isolator for further return to the supplier.

Pickers using loading equipment (electric forklift) complete the delivery to the retail point of sale in the shipping area. The picking is carried out when the balance of the goods at the retail point of sale of the replenishment point (reorder point) is reached.

After completing the standard shipment lot, the goods are transferred to the retail point of sale for sale.
It is necessary to develop a model of the presented process for further optimization experiments (for example, determining the reorder point in the absence of a zero balance at the retail point of sale).

Initial data


Logistics Center Resources
No.ResourcenumberEIShift
1Storekeeper2people3 shifts of 8 hours
2Electric forklift5PCS.3 shifts of 8 hours
3Controller3people3 shifts of 8 hours
4Storage rack shelving cells 120cells


Duration of operations
No.OperationDuration min
1Unloading machineFrom 15 to 30, on average 21
2Input control4 to 11, average 11


Retail Point of Sale Performance Parameters
No.ParameterValueEINote
1Current demand40PCS.Once an hour
2Reorder point500PCS.
3Quantity of goods received in 1 package8PCS.


Implementation AnyLogic
software product (v.7.0.2) was selected as a development tool .

Description of active object classes
No.ClassDescription
1WarehouseThe main active class of the model, containing the
remaining classes;
Reflects the behavior diagram and presentation of the warehouse model;
2LogisticsmapThe nested active class of the model, which contains a
diagram of the behavior of the
interaction between the warehouse and the retail point, as well as the
behavior of the retail point of sale;
3BoxType of application for goods;
Contains a presentation of the Box application;
4TrackApplication type of the machine delivering the goods;
Contains presentation of Track application;
5LorryRequest type of a machine delivering goods to a retail
point of sale, as well as returning
goods that have not passed control to the supplier;
Contains a presentation of the Lorry application;
6StorekeeperType of agent;
Contains a presentation of the storekeeper resource;
7LoaderType of agent;
Contains a presentation of the resource "loader";
8ControllerType of agent;
Contains a presentation of the resource "controller";
9Shop_1Type of agent;
It contains a presentation of the resource "shop_1"
simulating a retail point of sale in the model;


Using a discrete event modeling diagram, a model for the functioning of a logistics center has been developed

Description of the main blocks of the model
No.BlockDescription
1SourceboxBefore each step, the model counts the number of free cells
in the storage area;
At each step of the model generates Box class requests;
2selectFreeCellSwitch. It analyzes the calculated free cells
and, in the absence of free cells , sends requests for destruction to the
cancellationRequests block
3batchTruck /
unbatchBox
Builds / decomposes the
number of “Box” requests indicated in the delivery calendar into one “Track” order to reflect
on the presentation of the arrival of the car
4seizeStorekeeper /
releaseStorekeeper
Captures / releases a resource of the “storekeeper” type, reflecting at the
presentation the interaction of the storekeeper with the machine (meeting, escort,
unloading);
After the vacation, the resource returns to the base node in the absence of
other work;
5serviceUnloadCaptures a resource of type "loader" and moves it to the application;
Carries out a delay, symbolizing unloading the machine and checking the goods.
The delay is carried out using the triangular distribution method
(triangular (15, 21, 30));
Releases a resource of type "loader";
The allocated resource is returned to the base node in the absence of
other work;
6splitTruckCreates a copy of an application of type “Track” to further reflect the
disposal of the machine in the exit zone at the presentation. The need for this is
due to the fact that upon reverse decompilation of an application of the type “Track” into applications of the
type “Box”, the application “Track” is destroyed;
7seizeController /
releaseController,
releaseController1
Captures / releases a resource of the “controller” type to reflect on the
presentation the controller’s movement to the application and return to the base
node in the absence of other work;
8controllConducts a delay, symbolizing the conduct of incoming control.
The delay is carried out using the triangular distribution method
(triangular (4, 7, 11));
9admittanceSwitch;
Determines the likelihood that the application type “Box” passes the process of
incoming control;
The probability is set directly (0.107)
10batchLorryIt compiles a specified number of applications of the “Box” type into an application of the
“Lorry” type, symbolizing the packaging of goods that have not passed control
into the machine for return to the supplier;
elevenqueuePalleteIt delays the incoming applications of the “Box” type
until the availability of the free resource of the “loader” type for moving
goods to the cells of the storage zone;
12palleteSystemCombines the racks reflected in the presentation into a single storage system;
thirteenpalleteStoreCaptures any free resource of type "loader" and attaches it to the application;
Places a request of type “Box” in a free cell in the zone “palleteSystem” Releases a
resource of type “loader”. The allocated resource is returned to the base node
in the absence of other work;
14holdBlocks further transfer of “Box” type orders if the current balance at the
retail point of sale is greater than the reorder point. This is achieved by calling the
"block ()" and "unblock ()" methods at the entrance of the application;
the code
if (LogisticsMap.currentStock < LogisticsMap.reorder) {
	hold.unblock();
} else {
	hold.block();
}


fifteenseizeLoaderPall /
releaseLoaderPall
Captures / releases a resource of the “loader” type to reflect on the presentation
the controller’s movement to the application and return to the base node, provided there are
no other works;
16palletePickRetrieves an order of type “Box” from the zone “palleteSystem” and moves it
to the shipping area at a retail point of sale;
17batchLorry1It compiles a specified number of Box type requests into a Lorry type application,
symbolizing the loading of a machine for shipment to a retail point of sale;
18sinkDestroys an application of type "Box";
At the entrance, it starts the generation of one “Agent” type order by the
“sourceLorry ” object in the active “LogisticsMap” class to reflect the delivery of
goods to the retail point of sale;
This is achieved by calling the "manual" application generation method.
the code
logisticsMap.sourceLorry.inject(1)




The input stream “SourceBox” is controlled by a schedule generated from an external source:



In a similar way, using the “downtime” schedule, you can set a schedule for resource outages. The visual representation is formed using the space markup tool:



Description of markup areas
No.Description
1Arrival point of cars (applications of type "Track")
2The base node of the location of the storekeepers (applications like "Storekeeper")
3The basic node for the location of electric forklifts (applications like "loader")
4The point of disposal of cars (applications of the type “Track”, in cases of return of goods that have not passed the incoming control to the supplier - “Lorry”)
5Node unloading goods and passing the input control
6The base node of the location of the controllers (applications of the type "Controller")
7Node for picking goods that did not pass incoming control
8Loader waiting unit for placing goods on storage racks
9Storage area
10Assembly unit for shipment to retail outlets
elevenItem disposal unit



After the sink object passes through the Box type application, the application is destroyed, and in the active LogisticsMap class, the sourceLorry object generates the Agent type request. The application moves along hidden lines of the space marking to the only resource "Shop_1" (Fig. 4) reflecting the point of retail sales.



Upon reaching the resource, an agent type order is destroyed by the sink object, and the current balance of the retail point of sale is increased by a specified amount.

At the presentation there is a chart reflecting the current balance of the goods at the retail point of sale.

When the zero balance is reached, sales at the retail outlet are suspended until the next delivery. The functionality provides the "sale" event that is fired with a frequency of 1 hour.

The event transfers control to the action diagram:



The chart, when an event occurs, analyzes the current balance (currentStock variable) relative to the reorder point (recorderPoint parameter). If the current balance exceeds the reorder point, the variable storing the current demand level (the “currentStock” variable) is assigned the value> 0 and the product is sold by reducing the current balance by the current demand level (currentStock-currentStock). Otherwise, the chart moves to the next decision block, which compares the current balance and the level of current demand. If the current balance exceeds the current demand level, a variable storing the current demand level is assigned a value> 0 and the goods are sold by reducing the current balance by the current demand level. Otherwise, a variable,

In conclusion


At the current stage of construction, the model is quite general, but it fully reflects the process of passing the goods: from the arrival of the goods and their placement on the shelves of the storage area to its transfer to a retail point of sale with subsequent sale. Already at this stage of model development, experiments can be performed optimizing the reorder point in order to stabilize the supply chain.

Also popular now: