Diskrete-Ereignis-Simulation mit Python
Dr Diogo Costa
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Dynamisches System verstehen
Ziel(e) des diskreten Ereignismodells definieren
Prozesse identifizieren:
Passende SimPy-Ressourcen (resource, container, store) identifizieren
Architektur des Modells festlegen:
Das dynamische System verstehen
Ziele des Modells
Welche Aspekte willst du optimieren?
Zustandsvariablen zur Überwachung dieser Ziele
Geteilte Ressourcen
simpy.Resource(env, capacity=4)
Beispiele
Container
simpy.Container(env, capacity,
init=initial_capacity)
Ressource verhält sich wie Tank oder Korb
Menge hinzufügen und entnehmen:
.put() und .get()
Beispiele
Store
simpy.Store(env, capacity=4)
Ressource wie ein Laden mit mehreren Artikeln
Kapazität ist unbegrenzt (Standard)
Kapazitäts-Slots zum Speichern beliebiger Objekte
Elemente hinzufügen und entnehmen:
.put() und .get()
Beispiele
SimPy nutzt Bitoperatoren, um zwei Events zu verknüpfen
Operatorarten in Python
Bitoperatoren
a & b, a >> b, a ^ bIn SimPy
Relevante Bitoperatoren für SimPy
__and__() oder &__or__() oder |Diskrete-Ereignis-Simulation mit Python