SimPy 是标准 Python 上的进程式离散事件仿真框架,可用于对实体(顾客、车辆、数据包等)随时间交互、竞争共享资源(服务器、机器、带宽等)的系统建模。
主要能力:使用 Python 生成器函数进行进程建模;共享资源管理(Resource、PriorityResource、PreemptiveResource、Container、Store、FilterStore、PriorityStore);事件驱动的调度与同步(env.timeout、request、event 的组合与、或);可与真实时钟同步的实时仿真(simpy.rt.RealtimeEnvironment);以及监测与数据采集。
典型用途包括:离散事件系统建模、资源争用分析、排队与吞吐量研究、制造/物流/服务流程优化、网络与容量规划、系统验证。不适用于固定时间步的连续仿真、无资源共享的独立进程,以及纯数学优化。
基本用法:创建 env = simpy.Environment(),用 env.process() 启动生成器进程,进程内用 yield env.timeout(5) 推进时间、用 with resource.request() as req: yield req 获取资源,最后 env.run(until=100) 运行。实时仿真可用 simpy.rt.RealtimeEnvironment(factor=1.0)。随机种子可用 random.seed() 保证可复现。
注意事项:进程必须 yield 事件才能暂停;事件只能被触发一次;用上下文管理器避免资源泄漏;避免阻塞调用;保持时间单位一致;注意死锁。
资料中提及的辅助脚本,如 basic_simulation_template.py、resource_monitor.py 及其 ResourceMonitor 等接口,以及若干参考文档,属于资料所述内容,但未提供安装命令、收费与平台信息,暂未提供。