Symulacja zdarzeń dyskretnych w Pythonie
Dr Diogo Costa
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Zrozumienie systemu dynamicznego
Zdefiniowanie celu(-ów) modelu symulacji dyskretnej
Identyfikacja procesów:
Wybór odpowiednich zasobów SimPy (resource, container, store)
Zdefiniowanie architektury modelu:
Zrozumienie systemu dynamicznego
Cele modelu
Co chcemy zoptymalizować?
Zmienne stanu do monitorowania tych celów
Zasoby współdzielone
simpy.Resource(env, capacity=4)
Przykłady
Kontenery
simpy.Container(env, capacity,
init=initial_capacity)
Zasób działający jak zbiornik lub kosz
Dodawanie i pobieranie ilości:
.put() i .get()
Przykłady
Store
simpy.Store(env, capacity=4)
Zasób jak magazyn z wieloma elementami
Pojemność nieograniczona (domyślnie)
Miejsca do przechowywania dowolnych obiektów
Dodawanie i pobieranie elementów:
.put() i .get()
Przykłady
SimPy używa operatorów bitowych do łączenia dwóch zdarzeń
Typy operatorów w Pythonie
Operatory bitowe
a & b, a >> b, a ^ bW SimPy
Istotne operatory bitowe dla SimPy
__and__() lub &__or__() lub |Symulacja zdarzeń dyskretnych w Pythonie