Python 中的离散事件模拟
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
注意:术语"事件"和"过程"可互换使用。
什么是事件(或过程)的确定性?
为何确定性过程重要?
自然界
人为或人启动
确定性过程
需在仿真时间中计入过程持续时间
# Deterministic processes (time in hours) duration_process_1 = 10 duration_process_2 = 5while sim_time < total_sim_time:# Update simulation time: Process 1 sim_time += duration_process_1# Update simulation time: Process 2 sim_time += duration_process_2
使用 SimPy 实现确定性事件:
.timeout() 方法记录过程持续时间# Deterministic processes
duration_process_1 = 10
duration_process_2 = 5
while True:
# Update simulation time: Process 1
yield env.timeout(duration_process_1)
# Update simulation time: Process 2
yield env.timeout(duration_process_2)
Python 中的离散事件模拟