Discrete Event Simulation in Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
NOTE: Terms "event" and "process" used interchangeably.
What is event (or process) non-determinism?
Why are deterministic processes important?
Natural world
Human-driven or human-initiated processes
Non-deterministic processes
Statistics
The random
package is helpful for this
Example: random.randint(start, end)
import random
# Non-deterministic processes
process_1 = [5, 15]
while time < simulation_time:
# Update simulation time: process_1
time += random.randint(
process_1[0],
process_1[1])
No specific methods to account for non-deterministic processes
Event duration variability calculated as for non-SimPy-based models
Pass right statistics to .timeout()
import random
# Non-deterministic processes
process_1 = [5, 15]
while True:
# Update simulation time: process_1
env.timeout(random.randint(
process_1[0],
process_1[1]))
Discrete Event Simulation in Python