1. Deterministic events and processes
Let's learn how to account for deterministic processes in discrete-event models.
2. Event (or Process) determinism
We will be using the terms "event" and "process" interchangeably. Discrete-event models like SimPy tend to use the term "events", but the term "process" might be more meaningful when referring to manufacturing or supply-chain activities, for example.
What is event or process determinism?
It is the ability of a process to be predicted accurately. Such processes are referred to as "deterministic".
But why are deterministic processes important?
Natural and human-driven processes are often complex, usually involving many interdependent processes and resources.
Some of these processes are deterministic because they repeat in the same way every time they occur. So, their impact on the system output can be predicted accurately.
3. Examples of deterministic processes or events
There are many examples of deterministic processes in the natural world and human-driven activities.
In the natural world, examples include ocean tides, the acceleration of objects due to gravity, the movement of planets in the solar system, the speed of sound and light, which are constant, and the freezing temperature of water.
There are several examples of how deterministic human-driven or human-initiated processes can be accurately estimated as well. These include flow rate from a water tap, automatic water bottle filling machines, coffee machines making coffee, ovens at a given temperature, washing machines and their programmed cycles, and the functioning of microwave appliances.
4. Representing deterministic events in discrete-event models
How can we represent deterministic processes in discrete-event models?
We will start with models not based on the SimPy package.
As we said previously, deterministic processes produce a predictable impact on dynamic systems.
Their duration is well-known because they occur in the same manner every time they repeat.
In discrete-event models, the relevant information is often the process duration, resources needed, and how that affects the simulation time.
On the right-hand side, we have two deterministic processes with durations of ten and five hours, respectively.
Because the duration of these processes is constant, we can directly add the impact of variables "duration_process_1" and "duration_process_2" on the simulation time-track variable named "sim_time".
5. Representing deterministic events using SimPy
The procedure is similar if our model is based on SimPy.
SimPy uses the dot-timeout method to clock in the duration of processes.
Recall that SimPy is blind to the model time units. In other words, SimPy treats time as numeric values regardless of the units. So, we must keep the time units consistent throughout the model.
On the right-hand side, we can see the model shown before, now coded using the SimPy package.
We use the dot-timeout method to clock-in the duration of the two processes in the simulation time-tracking variable.
6. Let's practice!
Let's practice.