1.1 What is simulation
A simulation is an imitation of the dynamics of a real-world process or system over time. Although simulation could potentially still be done “by hand,” nowadays it almost always implicitly requires the use of a computer to create an artificial history of a system to draw inferences about its characteristics and workings.
The behavior of the system is studied by constructing a simulation model, which usually takes the form of a set of assumptions about the workings of the system. Once developed, a simulation model can be used for a variety of tasks, including:
Investigate the behaviour of the system under a wide array of scenarios. This is also often referred to as “what-if” analyses;
Changes to the system can be simulated before implementation to predict their impact in real-world;
During the design stage of a system, meaning while it is being built, simulation can be used to guide its construction.
Computer simulation has been used in a variety of domains, including manifacturing, health care, transport system, defense and management science, among many others.
1.1.1 A simple simulation model
Suppose we decided to open a donut shop and are unsure about how many employees to hire to sell donuts to costumers. The operations of our little shop is the real-world system whose behavior we want to understand. Given that the shop is not operating yet, only a simulation model can provide us with insights.
We could of course devise models of different complexities, but for now suppose that we are happy with a simple model where we have the following elements:
costumers that arrive at our shop at a particular rate;
employees (of a number to be given as input) that take a specific time to serve costumers.
Implicitly, we are completely disregarding the number of donuts available in our shop and assuming that we have an infinite availability of these. Of course, in a more complex simulation model we may want to also include this element to give a more realistic description of the system.
1.1.2 Why simulate?
An alternative approach to computer simulation is direct experimentation. In the bagel shop setting, we could wait for the shop to open and observe its workings by having a different number of employees on different days. Considered against real experimentation, simulation has the following advantages:
It is cheaper to implement and does not require a disruption of the real-world system;
It is faster to implement and time can be compressed or expanded to allow for a speed-up or a slow-down of the system of interest;
It can be replicated multiple times and the workings of the systems can be observed a large number of times;
It is safe since it does not require an actual disruption of the system;
It is ethical and legal since it can implement changes in policies that would be unethical or illegal to do in real-world.
Another alternative is to use a mathematical model representing the system. However, it is often infeasible, if not impossible, to come up with an exact mathematical model which can faithfully represent the system under study.