SimPy : Un cadre de simulation d'événements discrets
SimPy est un cadre de simulation d'événements discrets basé sur le langage Python. Il est défini par des fonctions génératrices Python et peut modéliser des composants actifs tels que des clients, des véhicules ou des agents. SimPy fournit également différents types de ressources partagées pour modéliser les points de congestion à capacité limitée.
Les simulations peuvent être effectuées 'aussi vite que possible', en temps réel ou en avançant manuellement à travers les événements. Cependant, bien qu'il soit théoriquement possible de faire des simulations continues avec SimPy, il n'a pas de fonctionnalités pour vous aider dans ce domaine. Par contre, SimPy est excessif pour les simulations avec une taille d'étape fixe où vos processus ne s'interagissent pas entre eux ou avec des ressources partagées.
Un exemple court simulant deux horloges qui sonnent à des intervalles de temps différents est le suivant :
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))
env.process(clock(env, 'slow', 1))
env.run(until=2)
La documentation contient un tutoriel, plusieurs guides expliquant les concepts clés, un certain nombre d'exemples et la référence de l'API. SimPy est publié sous la licence MIT. Les développeurs de modèles de simulation sont encouragés à partager leurs techniques de modélisation SimPy avec la communauté SimPy. Veuillez poster un message sur la liste de diffusion SimPy.
Il existe également un talk d'introduction expliquant les concepts de SimPy et fournissant quelques exemples : regardez la vidéo ou obtenez les diapositives. SimPy a également été réimplémenté dans d'autres langages de programmation. Consultez la liste des ports pour plus de détails.