Get startedGet started for free

Non-deterministic events and processes

1. Non-deterministic events and processes

Let's now learn how to account for non-deterministic processes in discrete-event models.

2. Event non-determinism

Recall again that we will be using the terms "event" and "process" interchangeably because discrete-event models like SimPy tend to use the term "events", but the term "process" might be more meaningful when referring to for example manufacturing or supply-chain activities. What is event non-determinism? It is the inability of a process to be predicted accurately. If accurate prediction is not possible, processes are referred to as "non-deterministic". But why are non-deterministic processes important? Both natural and human-driven activities often involve non-deterministic processes. Every time these processes occur, they repeat in a different way. Their duration cannot be determined with precision and accuracy. However, despite the lack of precise predictability, they may have a strong impact on the system output, so they cannot be neglected.

3. Examples of non-deterministic processes or events

There are many examples of processes in both natural and human-driven environments that can be considered non-deterministic, not necessarily because they are entirely unpredictable, but because we may not have enough information or maybe because obtaining such information is beyond the scope of the modeling project. Examples of non-deterministic natural processes could be the moment a volcano will erupt, the exact instant a rainstorm will start, and the time and location where lightning will strike and tornados form. Examples of non-deterministic human-driven or human-initiated processes include the moment a machine will break, the moment you feel the need to go to the bathroom, the precise moment a baby starts crying, and whether a commercial flight will be delayed or not.

4. Representing non-deterministic events in discrete-event models

How can we include non-deterministic processes in discrete-event models? Recall that such processes produce a non-repeatable impact on dynamic systems because their duration changes every time they repeat. To represent them in models, we need to use statistical approaches that can account for variability in the duration of these processes. The random package can be very helpful for this. On the right-hand side, we can see one process, “process_1”, the duration of which varies between five and 15 minutes. To account for the randomness of the actual duration of "process_1" on every occurrence, we can use the random method random-dot-randint. This method generates a random numeric value between five and 15.

5. Representing non-deterministic events using SimPy

In SimPy models, the implementation is similar. SimPy doesn't have a specific method to account for non-deterministic processes. Variability in the duration of events needs to be calculated in the same way for SimPy- and non-SimPy-based models. We'll need to pass the right statistics to the dot-timeout SimPy method. In the example on the right-hand side, which is the same model shown before but coded using the SimPy package, we use the same random-dot-randint method to generate a random integer value between five and 15.

6. Let's practice!

The random package has many more methods that can be useful to randomize events, but let's first practice the general procedure to include non-deterministic processes in SimPy and non-SimPy discrete-event models.

Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.