Chapter 1
Computer Simulation:
General Methodologies
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
1
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
2
1.2 Preliminary concepts
The basic concept of a computer simulation:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
3
1.2 Preliminary concepts
Disadvantages of computer simulation:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
4
Advantages of computer simulation:
1.3 The computer simulation methodology
Classifying the system:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
5
1.3 The computer simulation methodology
Examples of the system:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
6
1.3 The computer simulation methodology
Classifying simulation methodology (Grigoryev, 2022):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
7
1.3 The computer simulation methodology
Discrete–event systems:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
8
Length of the simulation — the amount of time over which to conduct the simulation for purposes of analysis.
1.3 The computer simulation methodology
The basic steps of computer simulation (adapted from Banks et al., 2004):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
9
1.3 The computer simulation methodology
Model inputs:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
10
1.4 Why AnyLogic?
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
11
1.5 Input data analysis
Preparing the inputs to a simulation:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
12
1.5 Input data analysis
Preparing the inputs to a simulation:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
13
1.5 Input data analysis
Issues arises during data collection:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
14
Triangular distribution:
1.6 Random number generation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
15
1.6 Random number generation
Computer languages have a capability for generating a sequence of random numbers between 0 and 1:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
16
1.6 Random number generation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
17
1.6 Random number generation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
18
1.6 Random number generation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
19
Inverse transform method – generating random numbers from a random variable’s cumulative distribution function and uniform 0–1 random numbers.
1.6 Random number generation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
20
1.7 Model verification and validation
Verification determines whether a model actually behaves as an experimenter assumes it does.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
21
1.7 Model verification and validation
Validation tests whether a simulation model reasonably approximates a real system.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
22
1.8 Output data analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
23
1.8 Output data analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
24
1.8 Output data analysis
Overview of computer simulation in supply chain and operation management:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
25
1.9 Simulation optimization
Default global optimization algorithm, implemented in AnyLogic:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
26
1.9 Simulation optimization
Shortcomings of the default global optimization algorithm, implemented in AnyLogic:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
27
Chapter 2
Business Process Simulation �Modeling and Analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
28
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
29
Chapter summary
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
30
2.1
A Simple Process Model:
A Bank Office
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
31
2.1 A simple process model: A Bank Office
Problem statement
The simplest queuing model simulating how customers are serviced at the ATM.
A step–by–step tutorial is freely available on the AnyLogic help system by selecting Help → AnyLogic Help → Tutorials → Bank Office (Queueing system) → Phase 1. Creating a simple model. Alternatively, navigate here: https://anylogic.help/tutorials/index.html.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
32
2.1 A simple process model: A Bank Office
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
33
Customers | 18 |
Average inter–arrival time | 313 min |
Average arrival rate | 0,3 cust per min |
Tellers | 4 |
ATM | 1 |
% of customers served by tellers | 50% |
% of customers used ATM | 50% |
Average time ATM | 1,5 min |
Shorterst time ATM | 0,8 min |
Longest time ATM | 3,5 min |
Average time teller | 6 min |
Shortest time teller | 2,5 min |
Longest time teller | 11 min |
Max. customers in line | 20 min |
2.1.2 Process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
34
2.1 A simple process model: A Bank Office
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
35
Process model
2.1 A simple process model: A Bank Office
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
36
Process model
2.1 A simple process model: A Bank Office
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
37
Process model
2.1 A simple process model: A Bank Office
The triangular service time distribution implies that a teller’s expected service time is (2.5+6+11)/3 = 6.5 minutes; the teller resource pool capacity is 4 × 60/6.5 = 36.9 customers per hour, on average. The expected service time of the ATM is 1.93 minutes; the ATM’s average capacity is 60/1.93 = 31.1 customers per hour. And so an average system arrival rate of up to 36.9/50% + 31.1/50% = 136 customers per hour would not exceed the average process capacity.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
38
Process model
2.1 A simple process model: A Bank Office
Long–run performance is rather difficult to analyze with stochastic models — and simple with simulation. Process performance is subject to four distinct types of uncertainty: variable arrival times, variable “customer types” (ATM vs. teller demand), variable ATM service times, and variable durations of teller service encounters.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
39
Process model
2.2
More Complex Process Models:
A Manufacturing Line
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
40
2.2 A manufacturing line
A linear manufacturing process that contains four machines
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
41
Process Description
2.2 A manufacturing line
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
42
Process Description
2.2 A manufacturing line
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
43
A linear manufacturing process:
Process Description
2.2 A manufacturing line
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
44
Backlog – the total units of work–in–process inventory that has arrived and exists anywhere in the system.
Backlog WIP – the total unit of work–in–process inventory that has commenced production; does not include backlogged orders waiting to begin the process.
Financial Performance Metrics
2.2 A manufacturing line
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
45
Financial Performance Metrics
2.3
Model Building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
46
2.3 Model building
Creating a Flow Diagram and Defining Process Properties
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
47
Indicate the Model name and Location
Model time units are seconds
Press Finish
2.3 Model building
Creating a Flow Diagram and Defining Process Properties
Create process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
48
Drop simulation building blocks from the Process Modeling Library Palette onto the “canvas”
2.3 Model building
Creating a flow diagram and defining Process Properties
Create process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
49
1
2
3
4
5
6
6
6
7
8
2.3 Model building
Creating a flow diagram and defining Process Properties
Create process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
50
1
2
3
4
5
6
6
6
7
8
2.3 Model building
Creating a flow diagram and defining Process Properties
Create process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
51
1
2
3
4
5
6
6
6
7
8
2.3 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
52
Lead time – the total time a customer order is in the process, from the moment of arrival to the moment of departure.
Flow time – the duration of time a customer order requires to complete the process, from the moment it commences work in the first station, until it departs the process; the flow time plus the initial wait equals the lead time.
Arrival process – the way in which customers from the population arrive for service.
Creating a flow diagram and defining Process Properties
2.3 Model building
Features of process model:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
53
Creating a flow diagram and defining Process Properties
2.3 Model building
Define order arrival process
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
54
The arrivals of batches: rates, inter–arrival times, or schedules.
A batch of agents arrives at deterministic inter–arrival intervals of 1 second..
We set First arrival occurs at model start.
Creating a flow diagram and defining Process Properties
2.3 Model building
Define order arrival process
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
55
Limited number of arrivals is selected.
Maximum number of arrivals = 100.
Creating a flow diagram and defining Process Properties
2.3 Model building
Define order arrival process
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
56
One can further restrict the arrival process 50 arrival batches by enabling Limited number of arrivals and then setting Maximum number of arrivals to 50.
Creating a flow diagram and defining Process Properties
2.3 Model building
Define a pull policy in source properties
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
57
Forced pushing checkbox allows us to specify a push vs. pull policy.
If Forced pushing is enabled, the source does not allow the orders to wait until they can be “consumed” by the next object.
Creating a flow diagram and defining Process Properties
2.3 Model building
Define a pull policy in source properties
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
58
Deselecting Forced pushing and choosing the behavior (destroy or wait in the queue) from Agents that can’t exit models a pull system that depends on available capacity, corresponding to one–piece flow and CONWIP control techniques.
Creating a flow diagram and defining Process Properties
2.3 Model building
The inter–arrival intervals of batches may be deterministic or stochastic, and the number of agents within a batch may be deterministic or stochastic.
Define queue rules:
Queueing process – the way in which customers wait for service.
Queueing discipline – the way customers are selected for service.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
59
CONWIP control – CONstant Work in Process where the start of manufacturing each product in an assembly line is triggered by the completion of one at the end of the line; a kind of single–stage kanban system.
Creating a flow diagram and defining Process Properties
2.3 Model building
Creating a flow diagram and defining properties: Define queue rules
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
60
A queue’s capacity can be finite (e.g., Capacity = 50) or unlimited (checking the Maximum capacity checkbox).
Its dispatching rule can be FIFO, priority–based (i.e., orders from the most important customers dispatched first), preemptive (the Enable preemption option), agent comparison (i.e., preferences for certain orders), or LIFO.
The Enable exit on timeout option allows orders to abandon the queue.
2.3 Model building
Creating a flow diagram and defining properties: Define processing rules
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
61
Delay time can be modeled with the Delay time: triangular(1, 2, 3) function.
We employ symmetric triangular distributions using the two–parameter Delay time: triangularAV(2, 0.5) function.
Service process – the way and rate at which customers are served.
2.3 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
62
Creating a flow diagram and defining Process Properties
2.3 Model building
Define processing rules
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
63
The Capacity setting in a Delay block is the batch size of orders that can be processed at the machine simultaneously.
In the advanced models, the processing stage may require multiple resources (e.g., a machine and a worker and a forklift). Such requirements can be implemented using Resource, Seize, Release, and Service process modeling blocks.
Creating a flow diagram and defining Process Properties
2.3 Model building
Define processing rules
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
64
Creating a flow diagram and defining Process Properties
2.3 Model building
Create basic animation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
65
Double–click the Rectangular Node.
Draw nine Rectangular Nodes (the source node, four waiting areas, and four machines).
Connect Rectangular Nodes with Paths.
Adding Animation
2.3 Model building
Create basic animation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
66
Open the Properties for each rectangular node and give each a name.
Adding Animation
2.3 Model building
Adding Animation: Create basic animation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
67
In the Properties of each process diagram element (i.e., Source, Queue, and Delay blocks), assign the drawn Rectangular Nodes.
Assign the Supplier node to the Source block by setting the Location of arrival to Network/GIS node and the Node to Supplier.
Repeat this in properties for each Queue and Delay block, chose the name of the corresponding Rectangular Node in Agent location.
2.3 Model building
Adding Animation: Set simulation experiment parameters
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
68
Set Stop to Stop at specified time.
Set Stop time to 100 time units. The experiment will simulate 100 days continuous operation using 100 seconds of model time.
2.3 Model building
Set simulation experiment parameters
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
69
To enable a reproducible simulation, set a Fixed seed (reproducible simulation runs) in Randomness.
Henceforth, if Fixed seed (reproducible simulation runs) is enabled, the Seed value is 1.
Adding Animation
2.3 Model building
Set simulation experiment parameters
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
70
Adding Animation
2.3 Model building
In this step, diagrams to analyze the following financial and operational KPIs will be created:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
71
KPI dashboard – a graphical representation of financial, operational, and customer service metrics, arranged for intuitive data visualization.
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
72
Parameters mfgCost, Revenue, and Backlog define the monetary estimations of manufacturing costs, revenue, and backlog delay costs.
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
73
From the Agent palette drag and drop three Parameter blocks onto the canvas.
In properties, rename them mfgCost, Revenue, and Backlog.
In the Default value assign them values $10, $15, and $4.
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
74
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
75
Setting the Recurrence Time to 1 second updates the chart every second of the model run time (i.e., after every simulated day).
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
76
Collect Statistics
2.3 Model building
Revenue, costs, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
77
Collect Statistics
2.3 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
78
Capacity utilization – the proportion of time during a scheduling horizon that resources in a process are busy working on the flow units of that process.
Collect Statistics
2.3 Model building
Capacity utilization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
79
Collect Statistics
2.3 Model building
Capacity utilization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
80
Collect Statistics
2.3 Model building
Capacity utilization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
81
Collect Statistics
2.3 Model building
Lead time and flow time
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
82
Collect Statistics
2.3 Model building
Lead time and flow time
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
83
Collect Statistics
2.3 Model building
Backlog and queue analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
84
Collect Statistics
2.3 Model building
Backlog and queue analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
85
Collect Statistics
2.3 Model building
Backlog and queue analysis
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
86
Collect Statistics
2.4
Experiments &
Managerial Insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
87
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
88
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
89
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
90
Experimental view – an AnyLogic window that appears when AnyLogic is running a process simulation; includes simulation controls and a depiction of the process model and KPI dashboard with metrics that update dynamically as the simulation runs.
Experimental settings
2.4 Experiments and managerial insights
The following settings are used in every experiment:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
91
Experimental settings
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
92
Experiment 1
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
93
Statistics collected by the parameters.
Flow statistics at every stage.
Simple process animation.
KPI dashboard.
Experiment 1
2.4 Experiments and managerial insights
Results:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
94
Experiment 1
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
95
Experiment 1
2.4 Experiments and managerial insights
Results:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
96
Experiment 1
2.4 Experiments and managerial insights
Queueing theory:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
97
Service level (of a flow line) – the proportion of jobs that arrive to a manufacturing process during a planning period that have been completed; not the same as service level in an inventory system.
Experiment 1
2.4 Experiments and managerial insights
Based on the analysis, suppose the manufacturing manager proposes the following improvements:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
98
Experiment 1
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
99
Experiment 2
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
100
Statistics collected by the parameters.
Flow statistics at every stage.
Simple process animation.
KPI dashboard.
Experiment 2
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
101
The lead time statistics comparison that are revealed when clicking on the End1 block in experiments 1 and 2.
Flow Similar flow time statistics are available by clicking on the End2 block.
Experiment 2
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
102
Experiment 2
2.4 Experiments and managerial insights
Results:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
103
Experiment 2
2.4 Experiments and managerial insights
Additional improvements:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
104
Heijunka – the Japanese term for production leveling so that steps in a production process are smoothed out to flow at the same rate.
Experiment 2
2.4 Experiments and managerial insights
Additional improvements:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
105
Experiment 2
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
106
Experiment 3
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
107
Statistics collected by the parameters.
Flow statistics at every stage.
Simple process animation.
KPI dashboard.
Experiment 3
2.4 Experiments and managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
108
Experiment 3
2.4 Experiments and managerial insights
Results:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
109
Experiment 3
2.5
Replication & Validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
110
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
111
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
112
Instance – the drawing of random numbers for a single run of a simulation experiment..
Reproducible simulation – when an instance of a simulation experiment’s output is replicated identically.
Change Seed value to 2.
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
113
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
114
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
115
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
116
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
117
“We expect that the revenue from this redesigned process will be $1370, and we are 95% certain that the actual revenue will fall within the range of $1353 to $1387 (that’s $1370 ± 1.2%) if the system after the process change behaves exactly the same as the simulation model.”
Runs, replication, and reproducibility
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
118
If any replication gave particularly interesting results, it can be conveniently reproduced for further analysis by resetting the seed value.
Table indicates that replications 1, 7, and 8 recorded unit profits exceeding $3.75 per order. The manager could reset the seed value to 1, 7, and 8 to explore what in particular happened in those runs to achieve such high profits.
Reproducibility for deeper analysis
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
119
One can use AnyLogic PLE to replicate an experiment thousands of times to truly understand the uncertainty in all KPI output measures.
Random seeds
Toggle on Random seed (unique simulation runs).
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
120
Random seeds
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
121
A workload in PLE
We want to measure Revenue, Profit, Customer orders, and Output for 1000 replications.
Name the experiment Replicate_1000_times.
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
122
A workload in PLE
Add four Histogram Data.
Add four Histogram charts.
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
123
A workload in PLE
Properties of the four Histogram Data and Histogram objects are added.
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
124
A workload in PLE
In the Projects view, select the Replicate_1000_times Parameter Variation experiment.
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
125
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
126
A workload in PLE
It is not possible to reproduce Figure exactly as these replications employ Random seed (unique simulation runs).
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
127
A workload in PLE
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
128
A workload in PLE
Automated replications
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
129
Considering the 50000–agent limit in AnyLogic PLE, adopt a 9900–day planning horizon for validation.
The following changes are made to the Experiment–1 and to the parameter variation experiment:
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
130
Queueing theoretic description
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
131
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
132
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
133
Little’s Law – a fundamental result in Operations Research due to John D.C. Little that relates three key process an system (or a subsystem) of a business process: (average system inventory) = (average system flow rate) × (average lead time).
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
134
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
135
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
136
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
137
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
138
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
139
Queueing theoretic description
Expected results for the system:
The theoretical process lead time is approximated 4624.26 days.
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
140
Comparing analytical and simulation results
Two changes in Experiment 1, required for validation purposes:
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
141
Comparing analytical and simulation results
The resulting simulation �summary statistics should be �compared with the theoretical �values:
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
142
Comparing analytical and simulation results
We employ the one–sample t–test. Specifically, we conduct 14 hypothesis tests to ascertain if the simulation results are “equivalent” to the theoretical values, where:
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
143
Comparing analytical and simulation results
At the α = 0.05 level, we see that there is insufficient evidence to reject the null hypothesis for 12 of the 14 metrics.
We conclude that the validation of the model is complete, and that the model is indeed generating results that are in line with queueing theory.
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
144
Comparing analytical and simulation results
Instead of hypothesis testing, one may use the 95% confidence interval of the mean. The Backlog order M1 statistic displays a sample mean of 44 551.926, with a mean confidence of 8.664.
Validation
2.5 Replication and validation
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
145
Comparing analytical and simulation results
This implies that a 95% confidence interval on the population mean is [44 551.926 − 8.664, 44551.926 + 8.664], namely, that a plausible range for the population mean is roughly [44 543.3, 44 560.6].
Validation
2.6
Advanced Experiment Control
& Modeling
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
146
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
147
Taking control
All changes in are applied to the simulation model in Chapter 4, starting with Experiment 1 (summarized in §5.2).
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
148
2.6 Advanced experiment control modeling
Modeling customer impatience
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
149
Enable the option Enable exit on timeout
Define a constant or random amount of time in the Timeout field
2.6 Advanced experiment control modeling
Modeling customer impatience
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
150
In the process model, the queue block’s outTimeout port (upper–right green dot) is connected to a new Sink node.
2.6 Advanced experiment control modeling
Real–time experiment control
Before simulation model parameters were entered in respective model blocks. For better simulation model control, create interfaces. We introduce new methods for gathering statistics, more accurate costs analysis, and KPI computation.
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
151
Views – a method of partitioning the AnyLogic experiment view into different areas; useful for navigating thought different parts of complex models as well as separating process logic, animation, and KPI output during an experiment.
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
152
Drag the View Area pointer in the desired working area.
2.6 Advanced experiment control modeling
Real–time experiment control
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
153
Define the Name as ProcessLogic (and repeat for the AnimationAndOutput view area).
Real–time experiment control
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
154
To hyperlink to the process logic, in the Presentation palette, drag a Text object onto the workspace.
Real–time experiment control
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
155
Change the Text to Process Logic.
Real–time experiment control
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
156
In the Advanced → On click field, type: ProcessLogic.navigateTo();
Real–time experiment control
2.6 Advanced experiment control modeling
Views
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
157
In the other view, change the Text to Animation & Output and in the Advanced → On click field type: AnimationAndOutput.navigateTo();
Real–time experiment control
2.6 Advanced experiment control modeling
Parameters
Previously parameters mfgCost, Revenue, and Backlog were defined as static values (e.g., Revenue had default value $15 per order). It is possible to expand this by enabling real–time parameter changes during the simulation experiment.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
158
Parameters – a way of defining inputs to AnyLogic simulation models that (usually) take on fixed values during a simulation experiment; parameters are changed only when one wants to change model behavior.
Real–time experiment control
2.6 Advanced experiment control modeling
Parameters
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
159
Add additional Parameters and Variables.
Real–time experiment control
2.6 Advanced experiment control modeling
Parameters
Additional parameters:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
160
Real–time experiment control
2.6 Advanced experiment control modeling
Parameters
Additional parameters:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
161
Real–time experiment control
2.6 Advanced experiment control modeling
Variables
Additional variables:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
162
Variable – a way of storing numerical data that changes or is collected during a simulation; whereas parameters are usually static, variables are dynamic.
Real–time experiment control
2.6 Advanced experiment control modeling
Variables
Additional variables:
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
163
Real–time experiment control
2.6 Advanced experiment control modeling
Variables
Update the properties of process model blocks to assign the logic that updates variables:
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
164
Real–time experiment control
2.6 Advanced experiment control modeling
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
165
Real–time experiment control
2.6 Advanced experiment control modeling
Functions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
166
Function – a method of automating an algorithm or calculation that needs to be carried out during an AnyLogic experiment; returns the value of an expression when called from a model.
Define properties of functions totalUnitCost.
Real–time experiment control
2.6 Advanced experiment control modeling
Functions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
167
Define properties of functions totalUnitProfit.
Real–time experiment control
2.6 Advanced experiment control modeling
Functions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
168
Define properties of functions ServiceLevel.
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
169
Event – a way of scheduling some action to take place during the running of a model
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
170
Set a Mode to Cyclic to repeat it every day.
Set a Recurrence time to 1 second.
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
171
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
172
Define properties of a time plot of the Input Orders data set.
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
173
Define properties of a time plot of the lost orders variable LO.
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
174
Create an event to calculate inventory costs.
Real–time experiment control
2.6 Advanced experiment control modeling
Events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
175
Include inventory costs in the cost bar chart.
Real–time experiment control
2.6 Advanced experiment control modeling
Sliders
Sliders allow manual parameter changes while an experiment is running.
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
176
From the Controls palette, drag one Slider to the work space for each of the 21 parameters.
Real–time experiment control
2.6 Advanced experiment control modeling
Sliders
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
177
In slider properties, give it a Name, check Link to and specify the name of the appropriate parameter.
Real–time experiment control
2.6 Advanced experiment control modeling
Sliders
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
178
Real–time experiment control
2.6 Advanced experiment control modeling
Sliders
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
179
Press Add labels. . . to mark “min value max”.
Real–time experiment control
2.6 Advanced experiment control modeling
Real–time experiment control
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
180
2.6 Advanced experiment control modeling
Real–time experiment control
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
181
2.6 Advanced experiment control modeling
Real–time experiment control
In the “Animation & Output” view, create a KPI dashboard that is separate from the process model view.
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
182
In the Presentation palette, drag Text for each of the text labels that are needed in the KPI dashboard.
2.6 Advanced experiment control modeling
Real–time experiment control
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
183
Enter the Formula.
2.6 Advanced experiment control modeling
Real–time experiment control
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
184
2.6 Advanced experiment control modeling
Real–time experiment control
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
185
Add a Rounded Rectangle from the Presentation palette. In properties, set the Fill color to white.
2.6 Advanced experiment control modeling
We assumed every worker is dedicated to a single activity in a process, and so we modeled every stage using a Queue block followed by a Delay block, where the Delay block’s “capacity” denotes the number of workers/machines available.
What if a resource serves multiple process steps? For such scenario, one employs Resource Pools.
If a resource must perform N sequential tasks, then rather than employing Delay blocks, we can model this using the following blocks:
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
186
Resources and resource pools
2.6 Advanced experiment control modeling
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
187
Resources and resource pools
2.7
Simulation Game &
Optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
188
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
189
2.7 Simulation game and optimization
Players:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
190
Game rules and roles
2.7 Simulation game and optimization
Rules:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
191
Game rules and roles
2.7 Simulation game and optimization
Setup:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
192
Game rules and roles
2.7 Simulation game and optimization
Input data:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
193
Playing round #1
2.7 Simulation game and optimization
Input data:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
194
Playing round #1
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
195
Name it Round 1.
Playing round #1
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
196
Enter parameters for Round #1.
Playing round #1
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
197
Results of Round #1 (seed value: 1).
Playing round #1
2.7 Simulation game and optimization
The team agrees to test the process changes:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
198
Playing round #2a
2.7 Simulation game and optimization
Apply changes in a real–time simulation environment:
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
199
Playing round #2a
2.7 Simulation game and optimization
Apply changes in a real–time simulation environment:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
200
Playing round #2a
2.7 Simulation game and optimization
Apply changes in a real–time simulation environment: �
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
201
Results after modifications in Round #2a (seed value: 1).
Playing round #2a
2.7 Simulation game and optimization
Apply changes in a real–time simulation environment:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
202
Playing round #2a
2.7 Simulation game and optimization
KPI comparison, Rounds #1 vs. #2a.:�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
203
Playing round #2a
2.7 Simulation game and optimization
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
204
Optimization Experiment – a module in AnyLogic that allows a simulation experiment to be repeatedly rerun while varying one or more input parameters to identify values of those parameters that “optimize” a performance criterion; requires caution as it “optimizes” only the sample mean of replications of the performance criterion, ignoring measures of central
tendency and ignoring statistical significance.
Decision variable – the input parameter in a simulation experiment that the AnyLogic Optimization Experiment will repeatedly change in search of optimizing some performance criterion; multiple simultaneous decision variables are possible.
Playing round #2b
2.7 Simulation game and optimization
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
205
Give the experiment name Optimization.
Playing round #2b
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
206
Set top–level agent to Main.
Playing round #2b
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
207
Playing round #2b
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
208
Playing round #2b
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
209
Playing round #2b
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
210
Playing round #2b
2.7 Simulation game and optimization
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
211
Playing round #2b
2.7 Simulation game and optimization
Running the optimization experiment
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
212
User interface upon experiment completion.
Playing round #2b
2.7 Simulation game and optimization
Initial results in default interface
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
213
The UI confirms that the simulation completed 14 iterations and 1000 replications of each iteration, for a total of 14 000 samples.
Playing round #2b
2.7 Simulation game and optimization
Initial results in default interface
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
214
The “best” expected profit found was $1714 using MaxArrivalQuantity = 2 (this is the sample mean profit across the 1000 replications of MaxArrivalQuantity = 2).
Playing round #2b
2.7 Simulation game and optimization
Initial results in default interface
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
215
The blue line in the chart indicates that the second iteration (specifically, iteration ”1” where the 14 iterations are indexed 0, ..., 13 on the horizontal axis) yielded the “best” profit of $1714, and subsequent iterations yielded inferior profits.
Playing round #2b
2.7 Simulation game and optimization
Initial results in default interface
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
216
This is unconstrained optimization, thus there are no infeasible solutions shown (no red line in the chart).
Playing round #2b
2.7 Simulation game and optimization
Analysis of sample statistics collection
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
217
Playing round #2b
2.7 Simulation game and optimization
Analysis of sample statistics collection
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
218
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
We wish to know what new demand management policy optimizes a process with double the original capacity, that is the optimal level of MaxArrivalQuantity that maximizes 100–day profits with the revised parameters:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
219
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
220
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
221
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
222
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
Decision–makers can conclude:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
223
Playing round #2b
2.7 Simulation game and optimization
Another optimization experiment
Decision–makers can conclude:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
224
Playing round #2b
2.7 Simulation game and optimization
Similarities with parameter variation experiments
A parameter variation experiment is similar to the foregoing optimization experiment described through–out §8.4, with three key the exceptions: there is no objective function, the Create default UI button (in experiment properties) does not generate the the Java actions to find optimal values, and variable parameters are incremented sequentially (when Allow parallel evaluations is deselected in advanced properties).
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
225
Playing round #2b
2.7 Simulation game and optimization
Multiobjective optimization–based simulation experiments
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
226
Playing round #2c
2.7 Simulation game and optimization
Multiobjective optimization–based simulation experiments
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
227
Playing round #2c
2.7 Simulation game and optimization
Multiobjective optimization–based simulation experiments
Managers’ KPI after various simulation optimization experiments:
�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
228
Playing round #2c
2.7 Simulation game and optimization
Sample parameters for rounds #3 to #10.�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
229
Playing round #3 to # 10
2.7 Simulation game and optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
230
Playing round #3 to # 10
2.7 Simulation game and optimization
Evaluation:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
231
Playing round #3 to # 10
2.8
Further Extensions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
232
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
233
2.8 Further extensions
The business case study that was introduced in Chapter 3 can be extended from its original linear system to networked supply chains, assembly lines, multiple parallel machines, and so forth.
Possible extensions:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
234
2.8 Further extensions
Possible extensions:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
235
2.8 Further extensions
Possible extensions:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
236
2.8 Further extensions
Discussion question:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
237
2.8 Further extensions
Discussion question:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
238
Chapter 3
Advanced Process Modeling
and Optimization
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
239
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
240
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
241
3.1
Problem Statement: Capacity Flexibility
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
242
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
243
3.1 Problem statement: capacity flexibility
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
244
3.1 Problem statement: capacity flexibility
A single–stage manufacturing system:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
245
3.1 Problem statement: capacity flexibility
The main difference between serial manufacturing and rapid prototyping (RPT) is that the workers at the RPT work station have a higher level of qualification (and higher labor costs) that allows them to produce both prototypes and serial products.
If there is no RPT demand, the workers at the RPT station can produce serial products which have significantly lower processing times and process–time variability.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
246
3.1 Problem statement: capacity flexibility
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
247
3.1 Problem statement: capacity flexibility
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
248
3.2
Model Building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
249
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
250
Learning objectives
Steps of Model building:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
251
Learning objectives
A note on complexity reduction. In the problem statement we assumed that “demand for serial products is sufficiently steady that any unused rapid prototype capacity can process serial orders.” And so to simplify our analysis for clarity in this manuscript, we shall decouple to joint RPT worker and serial worker capacity decisions, focusing only on RPT workers. A more complete model may consider both simultaneously.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
252
3.2 Model building
Process model
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
253
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
254
RPT workstation is modeled using two sub–processes: one for RPT orders and another for serial orders, connected by a resource pool (rptWorkers) which serves them.
Process model
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
255
The RPT sub–process includes a source node (RPT demand) to generate RPT orders, a service block (RPT service) denoting the part of the RPT workstation processing RPT orders, and two sink nodes for completed orders (sink) and for lost RPT orders (sink1).
Process model
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
256
The serial sub–process includes another source node (serial demand), a service block for the other part of the RPT workstation processing serial orders (serial service), and two additional sink nodes for completed serial orders (sink2) and for lost orders (sink3).
Process model
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
257
Process model
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
258
Process model
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
259
Process model
3.2 Model building
Custom agents have several modeling benefits:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
260
Customer agent – a method of method of modeling a unique flow unit with a customizable name; allows multiple types of flow units in AnyLogic models.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
261
Name this agent RPT_order.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
262
Define a variable timestampt1 to measure the start of a lead time.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
263
Define a variable timestampt2 to measure the start of a flow time.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
264
Set New agent to RPT_order.
In Actions → On exit, enter the code agent.timestampt1 = time(); to record the arrival
time of each RPT order.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
265
Set Agents per arrival as nAgents.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
266
Define the Resource pool.
Define the Delay time.
Define the Timeout exit time (120 seconds).
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
267
To prioritize RPT orders over serial orders, one may open the properties of the service blocks and set the priority in Priorities/preemption → Task priority.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
268
In this model, Task priority for RPT service and serial service are 1 and 0 respectively.
Custom agents and process settings
3.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
269
The resource capacity (i.e., the number of RPT workers) is defined in the properties of resource pool RPTworkers using parameter nAgents.
Custom agents and process settings
3.2 Model building
In this part, diagrams to analyze the following KPIs will be created:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
270
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
271
Statistics collection and KPI dashboard design
3.2 Model building
Lead time and flow time
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
272
Lead time is a duration from the moment an RPT_Order exits the RPT_demand source until it departs the RPT_service block.
Statistics collection and KPI dashboard design
3.2 Model building
Lead time and flow time
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
273
An RPT order’s end timestamp is collected at the sink (“sink”) with the following code:
//measure lead time double LeadTime = time() – agent.timestampt1;
//add the new observation to the lead time histogram dataset LeadTime_hist.add(LeadTime);
Statistics collection and KPI dashboard design
3.2 Model building
Lead time and flow time
On enter delay:
agent.timestampt2 = time();
On exit:
//measure flow time
double FlowTime = time() – agent.timestampt2;
//add the new observation to the flow time histogram dataset
FlowTime_hist.add(FlowTime);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
274
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
//calculate number of on–time– and late– RPT orders and revenue
if (LeadTime <= 80) {
nOnTime ++;
R += RPT Revenue;}
else {
nLate ++;�R += 0.8*RPT Revenue;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
275
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
R += serial Revenue;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
276
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
277
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
//calculate manufacturing cost using RPT worker
mfgCosts += nAgents*RPT_HourlyRate;
//calculate the average util. of RPT workers for RPT
RPTworkerUtil = zidz(RPT_service.utilization(), nAgents);
//calculate the average util. of RPT workers for serial
SerialworkerUtil = RPTworkers.utilization() – RPTworkerUtil;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
278
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
//track number of incoming RPT orders
dt_RPT_demand.add(RPT_demand.count() – cumRPTdemand_t_minus_1);
cumRPTdemand_t_minus_1 = RPT_demand.count();
//track number of incoming RPT orders
dt_RPT_completed.add(sink.count() – cumRPTcompleted_t_minus_1); cumRPTcompleted_t_minus_1 = sink.count();
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
279
Statistics collection and KPI dashboard design
3.2 Model building
Revenue, cost, profit
LostOrder++;
O += RPT OpportunityCost;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
280
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
281
The conditional formatting syntax that makes the dark–blue rectangle visible whenever the queue has 10 or more.
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
282
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
283
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
284
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
285
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
286
Statistics collection and KPI dashboard design
3.2 Model building
KPI dashboard
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
287
Statistics collection and KPI dashboard design
3.3
Simulation Game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
288
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
289
3.3 Simulation game
Setup:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
290
Game rules and roles
3.3 Simulation game
Roles for the game:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
291
Game rules and roles
3.3 Simulation game
Metrics used to establish the best–player role, each game round:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
292
Game rules and roles
3.3 Simulation game
Input data round #1:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
293
Playing round #1
3.3 Simulation game
Sample results #1 (seed value: 1):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
294
Playing round #1
3.3 Simulation game
KPI results #1 (seed value: 1):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
295
Playing round #1
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
296
Rounds #2a and #2b
3.3 Simulation game
Sample results from Round #2a (seed value: 1):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
297
Rounds #2a and #2b
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
298
Rounds #2a and #2b
3.3 Simulation game
Sample results from Round #2b (seed value: 1):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
299
Rounds #2a and #2b
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
300
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
301
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
302
The user interface of the optimization experiment.
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
303
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
304
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
305
An optimization experiment
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
306
Round #2c
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
307
Round #2c
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
308
Rounds #3 to #10, evaluation
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
309
Rounds #3 to #10, evaluation
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
310
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
311
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
312
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
313
dt_nAgent_RPTunitProfit.add(nAgents, ht_RPTunitProfit.mean());
ht_RPTunitProfit.reset();
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
314
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
315
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
316
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
317
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
318
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
319
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
320
Generalizing managerial insights
3.3 Simulation game
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
321
Generalizing managerial insights
Chapter 4
Supply Chain Coordination
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
322
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
323
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
324
4.1
Problem Statement: 2–Supplier Coordination
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
325
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
326
4.1 Problem statement: 2–supplier coord.
The bullwhip effect (BWE) is a well–known phenomenon where uncertainty propagates with increasing fluctuations up the supply chain.
There are four underlying causes of the BWE:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
327
Introduction
4.1 Problem statement: 2–supplier coord.
Supply chain network:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
328
Supply chain description
4.1 Problem statement: 2–supplier coord.
Linear manufacturing process using two work stations:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
329
Supply chain description
4.1 Problem statement: 2–supplier coord.
An automobile assembly supply chain:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
330
Supply chain description
4.1 Problem statement: 2–supplier coord.
Customer orders:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
331
Supply chain description
4.1 Problem statement: 2–supplier coord.
The supply chain manager control the frequency of material inventory review (i.e., the planning cycle) considering the workload of the supply chain planner and other KPIs.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
332
Order–up–to policy – an inventory management policy whereby the inventory level is periodically reviewed so that it may be replenished up to a preset amount called an “order–up–to level”; the order quantity is usually the difference between the order–up–to level and the present inventory position.
In any planning cycle (e.g., daily, weekly, ...), the supply chain planner must manage order quantities to suppliers.
Levers of SC coordination
4.1 Problem statement: 2–supplier coord.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
333
Levers of SC coordination
4.1 Problem statement: 2–supplier coord.
Causal loop diagram for the order–up–to policy based on simple exponential smoothing forecasts (Dejonckheere et al., 2003):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
334
Levers of SC coordination
4.1 Problem statement: 2–supplier coord.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
335
Levers of SC coordination
4.1 Problem statement: 2–supplier coord.
Their material management process can be broken down into four steps conducted each periodic review cycle:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
336
Levers of SC coordination
4.1 Problem statement: 2–supplier coord.
The management objective is to match capacity with demand so as to balance incoming customer orders, deliveries from suppliers, and shipments to customers at minimal cost while maintaining a reasonable 95% fill rate.
The total duration of management’s planning period is 365 days in real life, simulated in 365 seconds of model time.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
337
Fill rate – the proportion of unit demand that can be satisfied immediately from on–hand inventory; a metric of inventory management performance.
Levers of SC coordination
4.2
Model Building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
338
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
339
4.2 Model building
An automobile assembly supply chain process model:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
340
Creating the process model
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
341
Creating the process model
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
342
Creating the process model
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
343
Creating the process model
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
344
Creating the process model
4.2 Model building
A Hold block “can block the agent flow along a particular connection.”
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
345
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
346
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
347
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
348
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
349
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
350
Creating the process model
Hold blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
351
Creating the process model
Hold blocks
4.2 Model building
A Batch block is used to accumulate a number of units before forwarding them to the next process block. Before shipping to customers one have to unbatch the production lot.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
352
Creating the process model
Batch and unbatch blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
353
Creating the process model
Batch and unbatch blocks
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
354
Creating the process model
Batch and unbatch blocks
4.2 Model building
Outstanding orders must be received before subsequent orders may be placed.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
355
Creating the process model
Material flow
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
356
Creating the process model
Material flow
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
357
Creating the process model
Material flow
4.2 Model building
An AnyLogic function is a good way to describe a repeated task. Functions are employed to calculate KPI, model a forecasting demand and calculate the order–up–to level S.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
358
Modeling the work flow
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
359
Modeling the work flow
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
360
Modeling the work flow
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
361
Modeling the work flow
4.2 Model building
The supply chain planner’s work flow is modeled with an event work flow. The event occurs at the beginning of day 1 and recurs daily.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
362
Modeling the work flow
4.2 Model building
// step 0: demand generation
Demand = roundToInt(max(normal(stddevDemand, meanDemand),0));
source.inject(Demand);
D_t_period += Demand; //total demand in t_period
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
363
Modeling the work flow
4.2 Model building
// trigger actions at every t period
if ((time % t_period) == 0) {
// step 1.1: forecast FG demand by simple exponential smoothing
FG_D_t_plus_1_hat = demand_forecast(D_t_period, FG_D_t_hat);
FG_D_t_hat = FG_D_t_plus_1_hat; // overwrite D_t_hat
D_t_period = 0; //reset D_t_period
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
364
Modeling the work flow
4.2 Model building
// step 1.2: calculate forecasted demand of material in t+1
M1_D_plus_1_hat = FG_D_t_plus_1_hat * M1_consumptionRate;
M2_D_plus_1_hat = FG_D_t_plus_1_hat * M2_consumptionRate;
// step 2: calculate up–to–level S
M1_S = OUT_S(M1_D_plus_1_hat, M1_Tp);
M2_S = OUT_S(M2_D_plus_1_hat, M2_Tp);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
365
Modeling the work flow
4.2 Model building
// step 3: calculate Inventory Position (including Backlog)
M1_Inventory_position = M1_Netstock + M1_Order_in_Transit.size();
M2_Inventory_position = M2_Netstock + M2_Order_in_Transit.size();
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
366
Modeling the work flow
4.2 Model building
// step 4: calculate order quantity and release orders to suppliers
// step 4.1: material 1�M1_Order_Quant = roundToInt(max(M1_S – M1_Inventory_position, 0));
M1_supplier.inject(M1_Order_Quant);
// step 4.2: material 2
M2_Order_Quant = roundToInt(max(M2_S – M2_Inventory_position,0));
M2_supplier.inject(M2_Order_Quant);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
367
Modeling the work flow
4.2 Model building
// step 5: measure bullwhip effect and other KPIs
if (time() > warm up duration) {
// step 5.1: measure bullwhip ratio
M1_stat_Order.add(M1_Order_Quant);
M2_stat_Order.add(M2_Order_Quant);
M1_BWR = M1_stat Order.variance()/stat_Demand.variance();
M2_BWR = M2_stat_Order.variance()/stat_Demand.variance();
Stat_Demand.add(Demand);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
368
Modeling the work flow
4.2 Model building
// step 5.2: measure ordering cost
ordering_cost(M1_Order_Quant);
ordering_cost(M2_Order_Quant);
}}
// step 5.3: measure holding cost
if (time() > warm up duration) {
HoldingCosts += (max(M1_Netstock, 0) + max(M2_Netstock,0)) * HoldingCost;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
369
Modeling the work flow
4.2 Model building
// step 5.4: measure fill rate
FillRate = zidz(sink.count(), source.count());
// measure time
time ++
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
370
Modeling the work flow
4.2 Model building
The logic of the code:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
371
Modeling the work flow
4.2 Model building
The logic of the code:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
372
Modeling the work flow
4.2 Model building
The logic of the code:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
373
Modeling the work flow
4.2 Model building
KPI dashboard:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
374
Designing the KPI dashboard
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
375
Designing the KPI dashboard
4.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
376
Designing the KPI dashboard
4.3
Experiments &
Managerial Insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
377
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
378
4.3 Experiments & managerial insights
The following settings hold true for all experiments:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
379
Experimental settings
4.3 Experiments & managerial insights
What is the right frequency to review inventory from suppliers?
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
380
Experiment 1: Daily review policy
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
381
Experiment 1: Daily review policy
4.3 Experiments & managerial insights
An optimization experiment: to minimize the total costs including holding costs, stock–out costs, and ordering costs.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
382
Change t_period from fixed to discrete over the range from 1 to 15 using a step of 1, enable Random seed and Use replications. 30 instances per 365–day iteration are replicated.
Experiment 2: An optimization experiment
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
383
Experiment 2: An optimization experiment
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
384
Experiment 2: An optimization experiment
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
385
Experiment 2: An optimization experiment
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
386
Experiment 2: An optimization experiment
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
387
Experiment 3: Weekly review policy
4.3 Experiments & managerial insights
Parameter variation experiment to explore the relationship between batch sizes and supply chain volatility.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
388
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
389
Change t_period to 7 days.
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
390
Control batch_size changing it from Fixed to Range on the interval of [1,20] with the step of 1.
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
After simulation runs:
// collect data of each simulation
ht_M1_BWR.add(root.M1_BWR);
ht_M2_BWR.add(root.M2_BWR);
ht_costs.add(root.HoldingCosts + root.StockoutCosts + root.OrderingCosts);
ht_FillRate.add(root.FillRate);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
391
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
After iteration:
//record summarised data of each iteration
dt_batchsize_M1_BWR.add(batch_size, ht_M1_BWR.mean());
dt_batchsize_M2_BWR.add(batch_size, ht_M2_BWR.mean());
dt_batchsize_costs.add(batch_size, ht_costs.mean());
dt_batchsize_FillRate.add(batch_size, ht_FillRate.mean());
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
392
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
//clean histogram datasets
ht_M_ BWR.reset();
ht_M2_BWR.reset();
ht_costs.reset();
ht_FillRate.reset();
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
393
Relationship between batch size and the BWE
4.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
394
Relationship between batch size and the BWE
Chapter 5
Inventory Control
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
395
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
396
5.1
Problem Statement:
Periodic– and Continuous–
Review Policies
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
397
5.1 Problem statement
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
398
Continuous review – an inventory management system in which computer tracking enables constant monitoring of inventory positions in real time.
Periodic review – an inventory management policy where the inventory positions are counted at fixed intervals (e.g., daily, weekly, monthly, and so forth) and inventory replenishment decisions are made.
Fixed order quantity system – an inventory management policy whereby inventory replenishment orders are a constant size; the size is usually optimized due to appropriate performance criteria.
5.1 Problem statement
Automotive parts retailer
Demand and inventory requirements of five products:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
399
5.1 Problem statement
Automotive parts retailer
Four inventory control policies:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
400
5.1 Problem statement
Automotive parts retailer
Inventory control policies used in Part IV (Ivanov et al., 2021):
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
401
5.2
Model Building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
402
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
403
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
404
Deterministic EOQ model – a classical mathematical model that prescribes the optimal reorder quantity in inventory systems where inventory levels are continuously reviewed, and demand and replenishment lead times are constant; the model trades off the cost of ordering inventory vs. cost of holding inventory.
Order quantity – the number of inventory units that are requested for delivery from a supplier, usually after a delay called the replenishment lead time.
Replenishment lead time – the time delay from the moment that an order is placed to a material supplier until the moment that the shipment is received.
Deterministic EOQ model with zero lead times
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
405
Deterministic EOQ model with zero lead times
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
406
Deterministic EOQ model with zero lead times
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
407
Where “- =” is the Java operator equivalent to InventoryLevel = InventoryLevel – Demand.
Deterministic EOQ model with zero lead times
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
408
The reorder point is s = 0 with instantaneous replenishment, so describe this replenishment rule using the Java script:
if (InventoryLevel == 0){
InventoryLevel += OrderQuantity;
}
Deterministic EOQ model with zero lead times
5.2 Model building
A simple model with one event
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
409
Deterministic EOQ model with zero lead times
5.2 Model building
More accurate charting with two events
To make inventory charts more precise, one can divide the functionality of the Ordering event into two separate events:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
410
Deterministic EOQ model with zero lead times
5.2 Model building
More accurate charting with two events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
411
Deterministic EOQ model with zero lead times
5.2 Model building
More accurate charting with two events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
412
Deterministic EOQ model with zero lead times
5.2 Model building
More accurate charting with two events
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
413
Deterministic EOQ model with zero lead times
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
414
Adding stochastic demand and periodic review
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
415
To account for this uncertainty, define new parameters.
Adding stochastic demand and periodic review
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
416
Add the following actions:
Demand = round( max (normal(DevDemand,MeanDemand),0));
LeadTime = round( max (normal(DevLT,MeanLT),0));
Adding stochastic demand and periodic review
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
417
Adding stochastic demand and periodic review
5.2 Model building
Periodic review policy
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
418
Adding stochastic demand and periodic review
5.2 Model building
Periodic review policy
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
419
Adding stochastic demand and periodic review
5.2 Model building
Continuous review policy
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
420
Reorder point – the inventory level, that when reached in a continuously–reviewed inventory management system, automatically triggers a replenishment order of the item from the supplier; controls when orders are placed, but does not control order quantity.
// Define replenishment rule
if (InventoryLevel == 0){
InventoryLevel += OrderQuantity;
}
Adding stochastic demand and periodic review
5.2 Model building
Continuous review policy
// Define replenishment rule
if (InventoryLevel <= ROP){
InventoryLevel += OrderQuantity;
}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
421
Adding stochastic demand and periodic review
5.2 Model building
Continuous review policy
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
422
Adding stochastic demand and periodic review
5.2 Model building
Continuous review policy
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
423
Adding stochastic demand and periodic review
5.2 Model building
Only one order may be outstanding at any time.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
424
Including deterministic lead times
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
425
Including deterministic lead times
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
426
Including deterministic lead times
5.2 Model building
To evaluate the efficiency of different ordering policies, there is a need to estimate holding, ordering and stockout costs of inventory.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
427
Recording holding, ordering, and stockout costs
5.2 Model building
// Put this condition before consumption dynamics
// Compute sales and retail shortage
if (InventoryLevel >= Demand)
{TotalSales += Demand;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
428
Recording holding, ordering, and stockout costs
5.2 Model building
else
if (InventoryLevel >= 0)
{TotalSales += InventoryLevel;
RetailShortage += Demand – InventoryLevel;}
else
{RetailShortage += Demand;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
429
Recording holding, ordering, and stockout costs
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
430
Recording holding, ordering, and stockout costs
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
431
Recording holding, ordering, and stockout costs
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
432
Recording holding, ordering, and stockout costs
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
433
Service level – the long–run proportion of inventory replenishment cycles in which a stockout occurs.
Safety stock – extra inventory that is carried to provide protection against the risk of stocking out.
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
434
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
435
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
436
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
437
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
438
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
439
Modeling stochastic lead times; The Reorder Point
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
440
Allowing for planned shortages
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
441
Allowing for planned shortages
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
442
Allowing for planned shortages
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
443
Allowing for planned shortages
5.2 Model building
Let’s develop a more flexible model that integrates all four inventory control policies in one model.
Consumption_dynamics to describe the daily demand uncertainty and inventory consumption
s_OrderingPolicy to describe the continuous review policies and a dynamic reorder point.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
444
Action charts
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
445
Action charts
5.2 Model building
InventoryLevel <= ROP && !OrderInTransit
and if true, then Update Inventory subsequently executes the following:
NewOrder.restart( LeadTime );
OrderInTransit = true;�
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
446
Action charts
5.2 Model building
InventoryLevel1 <= ROP1 && !OrderInTransit1
NewOrder1.restart( LeadTime );
OrderInTransit1 = true;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
447
Action charts
5.2 Model building
InventoryLevel1 = s_TargetInventory;
OrderingCosts1 = OrderingCosts1 + OrderingCost;
OrderInTransit1 = false;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
448
Action charts
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
449
Action charts
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
450
Dynamic target inventory
5.2 Model building
// Count time
t2++;
t3++;
// Periodic Review – Fixed Quantity Model
if (t2 == t Period)
{InventoryLevel2 += OrderQuantity;
OrderingCosts2 = OrderingCosts2 + OrderingCost;
t2 = 0;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
451
Dynamic target inventory
5.2 Model building
// Periodic Review – Target Inventory Model
// Calculate t_Target Inventory
t_TargetInventory = MeanDemand*(t_Period + MeanLT) + z*DevDemand*sqrt(t_Period + MeanLT);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
452
Dynamic target inventory
5.2 Model building
// Simple logic with deterministic leadtime
if (t3 == t_Period – LeadTime)
{Order quantity3 = (t_TargetInventory – InventoryLevel3);}
if (t3 == t Period)
{InventoryLevel3 += Order quantity3;
OrderingCosts3 = OrderingCosts3 + OrderingCost;
t3 = 0;}
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
453
Dynamic target inventory
5.2 Model building
s_TargetInventory = (ROP1–InventoryLevel1)+(a*(MeanDemand+DevDemand)*LeadTime);
NewOrder1.restart( LeadTime );
OrderInTransit1 = true;
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
454
Dynamic target inventory
5.2 Model building
s_TargetInventory = (ROP1 – InventoryLevel1) + (a*(MeanDemand + DevDemand)*LeadTime);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
455
Dynamic target inventory
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
456
Dynamic target inventory
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
457
Dynamic target inventory
5.2 Model building
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
458
Dynamic target inventory
5.3
Experiments &
Managerial Insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
459
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
460
5.3 Experiments & managerial insights
The performance of the four inventory control policies introduced in Chapter 16 for the first three products A, B, and C with additional details about demand and inventory levels is compared:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
461
Experimental design
5.3 Experiments & managerial insights
In all experiments, demand is variable and lead times are assumed to be constant. When (s,q) or (s,S) policies are employed, a 95% service level is desired (using z–value 1.65). Holding costs are $0.10 per unit per day, ordering costs are $90 per order, and stockout costs are $0.20 per unit per day backlogged.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
462
Experimental design
5.3 Experiments & managerial insights
Logic view:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
463
Experimental design
5.3 Experiments & managerial insights
Analysis view:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
464
Experimental design
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
465
Experiment 1
5.3 Experiments & managerial insights
s_TargetInventory = (ROP1 – InventoryLevel1) + (a*(MeanDemand + DevDemand)*LeadTime);
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
466
Inventory policy efficiency – the degree to which an inventory management methodology simultaneously minimizes the conflicting costs of inventory maintenance and poor service, including the costs of ordering, holding, and stocking out of inventory units; also called cost efficiency.
Experiment 1
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
467
Experiment 1
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
468
Experiment 1
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
469
Experiment 1
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
470
Experiment 1
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
471
Experiment 1
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
An unpredictable demand surge occurs: after 10 days the mean daily demand (MeanDemand) jumps from 200 to 250 units due to a competitor shutting down unexpectedly.
New variable, events, and parameter:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
472
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
473
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
474
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
475
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
476
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
477
5.3 Experiments & managerial insights
Experiment 1: Modeling a demand shock
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
478
5.3 Experiments & managerial insights
Inventory management with lead time disruptions: product B, nuts and bolts.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
479
Experiment 2
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
480
Experiment 2
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
481
Experiment 2
5.3 Experiments & managerial insights
Modeling a change in lead times. After 10 days the lead time increases from three to six days (due to a natural disaster interrupting the transportation route) while daily demand remains stationary.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
482
Experiment 2
5.3 Experiments & managerial insights
Modeling a change in lead times.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
483
Experiment 2
5.3 Experiments & managerial insights
Modeling a change in lead times.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
484
Experiment 2
5.3 Experiments & managerial insights
Modeling a change in lead times.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
485
Experiment 2
5.3 Experiments & managerial insights
Modeling a change in lead times.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
486
Experiment 2
5.3 Experiments & managerial insights
Explore trade–offs between inventory cost efficiency and customer responsiveness: product C, spark plugs.
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
487
Experiment 3
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
488
Experiment 3
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
489
Experiment 3
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
490
Experiment 3
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
491
Experiment 3
5.3 Experiments & managerial insights
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
492
Experiment 3
5.3 Experiments & managerial insights
Trade–offs due to parameter change
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
493
Experiment 3
5.3 Experiments & managerial insights
Trade–offs due to parameter change
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
494
Experiment 3
5.3 Experiments & managerial insights
Trade–offs due to parameter change
The implications of the 2 proposed parameter changes may be gleaned:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
495
Experiment 3
5.4
Further Extentions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
496
Learning objectives
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
497
5.4 Further extentions
Inventory management in supply chains with production and transportation considerations
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
498
System dynamics – a methodology employing computer–aided design for decision–making in complex systems; uses simulation modeling grounded in feedback systems theory, enabling the analysis of system behavior over time and the understanding of complex causal relationships and the prediction of system responses to changes.
System dynamics
5.4 Further extentions
Agent–based models for market demand
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
499
Agent–based simulation – a computational modeling technique that simulates systems of autonomous, interacting agents to replicate and study complex system behavior; useful for analyzing emergent phenomena and understanding the interplay between individual behaviors and overall system dynamics.
5.4 Further extentions
To learn more about the AnyLogic’s functionality with agent–based simulation, system dynamics, and advanced inventory control policies, consider the following example models available with the AnyLogic PLE software:
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
500
Agent–based models
5.4 Further extentions
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
501
Agent–based models
Thank you!
© 2025 Dmitry Ivanov, William Millhiser, Phu Nguyen, and Springer Nature. All rights reserved.
502
We gratefully acknowledge the support of Ms. Laides Kreuzpointner and Ms. Anna Putintseva for preparing the slides.