Дискретно-событийное моделирование на Python
Dr Diogo Costa
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Понять динамическую систему
Определить цели модели дискретных событий
Выявить процессы:
Выбрать подходящие ресурсы SimPy (resource, container, store)
Определить архитектуру модели:
Понимание динамической системы
Цели модели
Что именно нужно оптимизировать?
Переменные состояния для отслеживания этих целей
Общие ресурсы
simpy.Resource(env, capacity=4)
Примеры
Контейнеры
simpy.Container(env, capacity,
init=initial_capacity)
Ресурс, работающий как резервуар или корзина
Добавление и извлечение количества:
.put() и .get()
Примеры
Store
simpy.Store(env, capacity=4)
Ресурс в виде склада с несколькими объектами
Вместимость не ограничена (по умолчанию)
Слоты для хранения произвольных объектов
Добавление и извлечение объектов:
.put() и .get()
Примеры
SimPy использует побитовые операторы для объединения двух событий
Типы операторов в Python
Побитовые операторы
a & b, a >> b, a ^ bВ SimPy
Актуальные побитовые операторы для SimPy
__and__() или &__or__() или |Дискретно-событийное моделирование на Python