Congratulations!

Discrete Event Simulation in Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Chapter 1: Introduction to dynamic systems and discrete-event simulation models

Dynamic vs. Steady-state A plot showing the temporal evolution of state variables in dynamic and steady-state systems. In the dynamic system, the variable changes over time, while in the steady-state system, it remains constant.

Applications of Discrete-event models Schematic of the processes and workflow of a supply-chain activity.

Examples:

Manufacturing: Photo of a manufacturing industry.

Construction: Photo of a construction site.

Discrete Event Simulation in Python

Chapter 2: Developing discrete-event models using SimPy.

Summary of SimPy methods

env = simpy.Environment()
env.process()
env.run()
env.timeout()
env.now

SimPy Resources

simpy.Resource()
simpy.Container()
simpy.Store()
Discrete Event Simulation in Python

Chapter 3: Mixing determinism and non-determinism in models

Process sequence with deterministic (yellow) and non-deterministic (pink) processes:

Diagram showing the sequence of processes of a manufacturing activity, which includes the following processes in chronological order: welding_1, manual_assembly_1, manual_assembly_2, and welding_2.

# Next-event time progression
time[0] = 0          
time[1] = time[0] + welding_1["time_hours"]
time[2] = time[1] + rd.gauss(manual_assembly_1["time_hours"], manual_assembly_1["std_hours"])
time[3] = time[2] + rd.gauss(manual_assembly_2["time_hours"], manual_assembly_2["std_hours"])
time[4] = time[3] + welding_2["time_hours"]
time[5] = time[4]
Discrete Event Simulation in Python

Chapter 4: Model application, clustering, optimization, and modularity

  • Monte Carlo sampling Plot showing the response envelope of a manufacturing activity that includes a series of sequential processes, where the blue bottom line corresponds to the last run that met the requirements of the Search & Stop method. The minimum duration of each of the processes obtained for the best simulations is highlighted.

  • Cluster analysis

  • Objective functions
  • Model scalability and modularity

Diagram showing a model composed of seven functions, where a model upgrade entailed replacing module "func_b" by module "func_b1", and adding module "func_f" between modules "func_c" and "func_d".

Discrete Event Simulation in Python

Other DataCamp courses

Other relevant courses

  • Monte Carlo Simulations in Python
  • Cluster Analysis in Python
  • Introduction to Linear Modeling in Python
  • Supply Chain Analytics in Python

Python logo

Discrete Event Simulation in Python

Congratulations!

Discrete Event Simulation in Python

Preparing Video For Download...