SimPy - Википедия - SimPy

SimPy, бесплатный пакет моделирования дискретных событий на основе Python
SimPy logo.svg
Оригинальный автор (ы)Клаус Г. Мюллер, Тони Винно
Разработчики)Онтье Люнсдорф, Стефан Шерфке
изначальный выпуск17 сентября 2002 г. (2002-09-17)
Стабильный выпуск
3.0.11 / 16 ноября 2018 г.; 2 года назад (2018-11-16)
Репозиторий Отредактируйте это в Викиданных
Написано вPython
Операционная системаКроссплатформенность
ТипДискретное моделирование событий
ЛицензияМассачусетский технологический институт
Интернет сайтпростой.readthedocs.org

SimPy это процессно-ориентированный дискретное событие симуляция каркас на основе стандартаPython. Его диспетчер событий основан на Python генераторы а также может использоваться для асинхронных сетей или для реализации многоагентных систем (как с имитацией, так и с реальной связью).

Процессы в SimPy - это простые функции генератора Python, которые используются для моделирования активных компонентов, таких как клиенты, транспортные средства или агенты. SimPy также предоставляет различные типы общих Ресурсы для моделирования точек перегрузки с ограниченной пропускной способностью (например, серверов, касс и туннелей). Начиная с версии 3.1, он также будет предоставлять возможности мониторинга для помощи в сборе статистики о ресурсах и процессах.

Моделирование можно выполнять «как можно быстрее», в реальном времени (настенные часы) или вручную переходя по событиям.

Хотя теоретически возможно проводить непрерывное моделирование с помощью SimPy, в нем нет функций для этого. Однако SimPy излишен для моделирования с фиксированным размером шага, когда ваши процессы не взаимодействуют друг с другом или с общими ресурсами - используйте простой пока петля в этом случае.

Дистрибутив SimPy содержит учебные пособия, подробную документацию и большое количество примеров.

SimPy выпущен как Открытый исходный код программное обеспечение под Лицензия MIT. Первая версия была выпущена в декабре 2002 года.

Пример

Одна из основных целей SimPy - простота использования. Вот пример простой симуляции SimPy:[1] а Часы процесс, который печатает текущее время моделирования на каждом шаге:

>>> импорт простой>>>>>> def Часы(env, имя, поставить галочку):...     пока Истинный:...         Распечатать(имя, env.сейчас же)...         урожай env.тайм-аут(поставить галочку)...>>> env = простой.Среда()>>> env.процесс(Часы(env, 'быстрый', 0.5))<Process(clock) object at 0x...>>>> env.процесс(Часы(env, 'медленный', 1))<Process(clock) object at 0x...>>>> env.пробег(до того как=2)быстро 0медленный 0 быстро 0,5 медленный 1 быстро 1.0 быстро 1,5

Рекомендации

  1. ^ Шерфке, Стефан (25 июля 2014 г.). «Дискретно-событийное моделирование с помощью SimPy» (PDF). п. 5. Получено 10 августа, 2016.