SimPy - SimPy

SimPy, egy ingyenes, különálló, Python-alapú szimulációs csomag
SimPy logo.svg
Eredeti szerző (k) Klaus G. Müller, Tony Vignaux
Fejlesztő (k) Ontje Lünsdorf, Stefan Scherfke
Első kiadás 2002. szeptember 17  ( 2002-09-17 )
Stabil kiadás
4.0.1 / 2020. április 15 . ; 11 hónappal ezelőtt  ( 2020-04-15 )
Adattár Szerkessze ezt a Wikidatán
Beírva Piton
Operációs rendszer Cross-platform
típus Diszkrét eseményszimuláció
Engedély MIT
Weboldal simpy .readthedocs .org

Simpy egy folyamat alapú diszkrét esemény szimulációs keretrendszer alapján szabványos Python . Esemény-diszpécsere a Python generátorain alapul, és aszinkron hálózatépítésre, vagy több ügynöki rendszerek megvalósítására is használható (mind szimulált, mind valós kommunikációval).

A SimPy folyamatai egyszerű Python generátor funkciók, és aktív komponensek, például ügyfelek, járművek vagy ügynökök modellezésére szolgálnak. A SimPy különféle típusú megosztott erőforrásokat is kínál a korlátozott kapacitású torlódási pontok modellezéséhez (például szerverek, pénztárak és alagutak). A 3.1-es verziótól kezdve felügyeleti képességeket is biztosít az erőforrásokról és folyamatokról szóló statisztikák összegyűjtéséhez.

A Simpy 3.0 Python 2-ről 3-ra változik.

A szimulációkat „a lehető leggyorsabban”, valós időben (falióra) vagy az események manuális végigvitelével lehet végrehajtani.

Bár elméletileg lehetséges folyamatos szimulációkat végezni a SimPy-vel, ennek végrehajtására nincsenek jellemzői. A SimPy azonban túlzottan képes rögzített léptékű szimulációkra, ahol a folyamatai nem lépnek kölcsönhatásba egymással vagy megosztott erőforrásokkal - while ebben az esetben használjon egyszerű ciklust.

A SimPy disztribúció oktatóanyagokat, részletes dokumentációt és számos példát tartalmaz.

A Simpy 4.0-nak Python 3.6+ verzióra van szüksége.

A SimPy nyílt forráskódú szoftverként jelenik meg az MIT licenc alatt . Az első verzió 2002 decemberében jelent meg.

Példa

A SimPy egyik fő célja a könnyű használat. Itt egy példa egy egyszerű simpy szimuláció: egy óra folyamat, amely kiírja az aktuális szimulációs idő minden egyes lépés:

>>> 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

Hivatkozások