1 simpy库简介
SimPy是基于标准Python语言的基于过程的离散事件仿真框架。SimPy中的进程由Python的generator函数定义,例如,可以用于对客户、车辆或智能体等活动组件进行建模。SimPy还提供各种类型的共享资源来模拟有限容量的拥塞点(如服务、收银台和通道)。
模拟可以“尽可能快”进行,以(以实时(现实时钟时间)或通过手动执行单步事件模式)。
虽然理论上可以使用SimPy进行连续模拟,但它在实现上面没有任何特性优势。此外,对于具有固定步长的模拟,如果您的流程彼此之间或共享资源之间不交互的话,您实际上并不需要SimPy进行模拟。
本文档包含一个教程、几个解释关键概念的指南,以及一些示例和API参考。
SimPy是根据MIT许可协议发行的。鼓励仿真开发人员与SimPy社区共享SimPy建模技术。
2 安装
SimPy需要Python 2.7、3.2、pypy2.0或更高版本。
您可以通过pip轻松安装SimPy:
pip install -U simpy
3 一个简单例子
SimPy的主要目标之一是易于使用。
下面是一个简单SimPy模拟的示例:在每个事件打印当前的仿真时间:
import simpy
def clock(env, name, tick):
while True:
print(name, env.now)
yield env.timeout(tick)
env = simpy.Environment()
env.process(clock(env, 'fast', 0.5))
<Process(clock) object at 0x7f3d88347080>
env.process(clock(env, 'slow', 1))
<Process(clock) object at 0x7f3d88330eb8>
env.run(until=2)
fast 0
slow 0
fast 0.5
slow 1
fast 1.0
fast 1.5