SimPy

SimPy是“Simulation in Python”的缩写，意为“在Python中模拟”，是一個基於標準Python的過程型離散事件模擬框架。它使用戶可以將活動組件（如客戶、車輛或代理）建模為簡單的Python 生成器函數。SimPy作为開源軟體在MIT許可證下，第一個版本於2002年12月發布。

 概述  

SimPy的事件調度器是基於Python的生成器，這使得它可以應用於異步網絡或實現多代理系統（包括模擬和真實的通信）。模擬可以以“盡可能快”的方式進行，也可以實時進行（即按照實際時間），或者可以手動一步步地進行。儘管理論上SimPy可以進行連續模擬，但它並未提供足夠的支援。然而，對於那些具有固定步長、過程之間沒有互動或與共享資源交互的模擬，一個簡單的while迴圈就足以應對。

此外，SimPy提供了不同類型的共享資源，以模擬具有有限容量的擁塞點，如服務器、結帳櫃檯和隧道。在3.1版本及以上，SimPy提供了監控功能，以協助收集有關過程和資源的統計資訊。

有關於版本需求，SimPy 3.0需要Python 3，而SimPy 4.0需要Python 3.6+。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 0x...>
>>> env.process(clock(env, 'slow', 1))
<Process(clock) object at 0x...>
>>> env.run(until=2)
fast 0
slow 0 
fast 0.5 
slow 1 
fast 1.0 
fast 1.5

參考資料 

注解

Category:跨平台軟體
Category:自由科学软件
Category:用Python編程的自由軟體
Category:使用MIT许可证的软件