📜 ⬆️ ⬇️

Simulation model of the logistics center

I bring to the attention of small users a small article describing the practical side of applying such a field as simulation modeling.

Task setting (process description)


According to the delivery calendar agreed with the supplier, a known quantity of goods of the same type arrives. When the warehouse is overfilled, the application for the supply of goods is deliberately canceled. The product arrives, is stored and transferred to the retail point of sale in packs of 8 pcs. Upon arrival, the car is met by an employee of the center (storekeeper), checks for the availability of the necessary supporting documentation, certificates of conformity / quality, primary accounting documentation and escorts the car to the unloading area.

In the unloading area, the storekeeper in the presence of the freight forwarder and with the help of loading equipment (electric loader) conducts reception and visual inspection of the goods. Then moves it to the input control zone. A quality specialist (controller) conducts an input control 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 storage racks. When a product that does not comply with the input parameters is detected, it is moved to the scrap isolator for further return to the supplier.
')
With the help of loading equipment (electric loader), the pickers supply the retail point of sale in the shipping area. The package bundle is carried out when the balance of goods at a retail point of sale is reached at the stock replenishment point (reorder point).

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

Initial data


Logistics center resources
NoResourceamountUiShift
oneStorekeeper2people3 shifts of 8 hours
2Electric loaderfivePC.3 shifts of 8 hours
3Controller3people3 shifts of 8 hours
fourStorage shelving cells120cells


Duration of operations
NoOperationDuration, min.
oneUnloading machineFrom 15 to 30, on average 21
2Input controlFrom 4 to 11, on average 11


Parameters of the retail point of sale
NoParameterValueUiNote
oneCurrent demand40PC.1 time per hour
2Reorder point500PC.
3Quantity of goods arriving in 1 packageeightPC.


Implementation
AnyLogic software (v.7.0.2) was chosen as a tool for development.

Description of classes of active object
NoClassDescription
oneWarehouseThe main active class of the model containing
other classes;
Reflects the behavior diagram and warehouse model presentation;
2LogisticsmapNested active class of the model containing
behavior chart
interaction of warehouse and retail point, as well as
retail outlet behavior;
3BoxType of application of the goods;
Contains the presentation of the application Box;
fourTrackType of application of the machine supplying the goods;
It contains the presentation of the application Track;
fiveLorryType of application of the machine delivering the goods to the retail
point of sale, as well as returning not
passed the control of the goods to the supplier;
Contains the presentation of the application Lorry;
6StorekeeperAgent type;
Contains a presentation of the resource "storekeeper";
7LoaderAgent type;
Contains a presentation of the resource "loader";
eightControllerAgent type;
Contains a presentation of the resource "controller";
9Shop_1Agent type;
Contains a presentation of the resource "shop_1"
imitating the retail point of sale model;


Using the discrete-event modeling diagram, a model of the logistics center has been developed.

Description of the main blocks of the model
NoBlockDescription
oneSourceboxBefore each step, the model calculates the number of free cells.
in the storage area;
At each step, the model generates the application class Box;
2selectFreeCellSwitch. Analyzes calculated free cells
and in the absence of free sends an application for destruction in the block
"CancellationRequests"
3batchTruck /
unbatchBox
Compiles / unpacks specified in the calendar of delivery
the number of applications of the type “Box” in one application of the type “Track” to reflect
at the presentation of the arrival of the car
fourseizeStorekeeper /
releaseStorekeeper
Captures / releases a “storekeeper” type reflecting on
presentations of storekeeper’s interaction with the machine (meeting, escort,
unloading);
After the release, the resource returns to the base node if there is no
other works;
fiveserviceUnloadCaptures the resource “loader” and moves it to the application;
Conducts a delay, symbolizing the unloading of the machine and checking the goods.
The delay is carried out by the method of triangular distribution
(triangular (15, 21, 30));
Releases a “loader” type resource;
The released resource is returned to the base node if there is no
other works;
6splitTruckCreates a copy of the application type "Track" for further reflection
Disposal of the car in the exit area at the presentation. Need for this
due to the fact that during the reverse unbundling of the application of the “Track” type in the application
of the “Box” type, the “Track” application is destroyed;
7seizeController /
releaseController,
releaseController1
Captures / releases a “controller” type resource to reflect on
presentation of the controller’s relocation to the application and return to the base
the node provided no other work;
eightcontrollConducts a delay, symbolizing the conduct of input control.
The delay is carried out by the method of triangular distribution
(triangular (4, 7, 11));
9admittanceSwitch;
Determines the probability of the passage of the type of "Box" process
input control;
The probability is given directly (0.107)
tenbatchLorryComposites a specified number of applications of the type "Box" in the application type
"Lorry", symbolizing a complete set of goods that did not pass the control
in the car for return to the supplier;
elevenqueuePalleteDelays the received incoming inspection of the type "Box"
before the appearance of the free resource “loader” to move
goods in storage area cells;
12palleteSystemCombines the racks reflected on the presentation into a single storage system;
13palleteStoreCaptures any free resource of the “loader” type and attaches it to the application;
Places the “Box” type application in the free cell of the “palleteSystem” zone
Releases the resource "loader". The released resource returns to the base node.
subject to the absence of other works;
14holdBlocks the further transmission of requests of type "Box", if the current balance in
retail point of sales is greater than the reorder point. This is achieved by calling
methods "block ()" and "unblock ()" at the entrance of the application;
code
if (LogisticsMap.currentStock < LogisticsMap.reorder) { hold.unblock(); } else { hold.block(); } 


15seizeLoaderPall /
releaseLoaderPall
Captures / releases the “loader” type resource to reflect on the presentation.
relocation of the controller to the application and return to the base node, provided
the absence of other works;
sixteenpalletePickRetrieves a “Box” application from the “palleteSystem” zone and moves it
to the retail shipping point;
17batchLorry1Composites the specified number of “Box” type applications into a “Lorry” type application,
symbolizing the loading of the machine for shipment to a retail point of sale;
18sinkDestroys the “Box” type application;
Upon entry, it launches the generation of one “Agent” type request by the object
“SourceLorry” in the “LogisticsMap” active class to reflect delivery
product to a retail point of sale;
This is achieved by calling the method of "manual" generation of applications
code
 logisticsMap.sourceLorry.inject(1) 




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



In the same way, using the “downtime” schedule, sets the schedule for resource interruptions. A visual representation is formed using the space layout tool:



Markup area description
NoDescription
onePoint of arrival of cars (applications such as "Track")
2Base site of storekeepers location (“Storekeeper” applications)
3The basic node location of electric loaders (applications such as "loader")
fourThe point of disposal of cars (applications of the type "Track", in cases of return of goods that did not pass the entrance control to the supplier - "Lorry")
fiveKnot of unloading goods and passage of entrance control
6Base node of the location of controllers (applications of the type “Controller”)
7Knot of a complete set of the goods which did not pass the entrance control
eightLoader waiting unit for placing goods on storage racks
9Storage area
tenKnot of a complete set for shipment to a point of retail sales
elevenNode disposal of goods



After passing the “sink” object with a “Box” application, the application is destroyed, and in the active class “LogisticsMap”, an “Agent” application is generated by the “SourceLorry” object. The order moves along the hidden space marking lines to a single resource “Shop_1” (Fig. 4) reflecting the point of retail sales.



When the resource is reached, the “Agent” type order is destroyed by the “sink” object, and the current balance of the retail point is increased by the specified amount.

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

When a zero balance is reached, retail sales are suspended until the next delivery. The functionality provides a “sale” event that runs at intervals of 1 hour.

The event passes 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 (variable “currentStock”) is assigned the value> 0 and the product is sold by decreasing the current balance by the current demand level (currentStock-currentStock). Otherwise, the diagram goes to the next decision block, in which the current balance and the level of current demand are compared. In case of exceeding the current balance above the level of current demand, the variable storing the level of current demand is assigned a value> 0 and the goods are sold by reducing the current balance by the level of current demand. Otherwise, the variable storing the level of current demand is assigned the value 0, thus sales are suspended until the demand is filled.

As a conclusion


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

Source: https://habr.com/ru/post/254067/


All Articles