СимПи
Оригинальный автор(ы) | Клаус Г. Мюллер, Тони Виньо |
---|---|
Разработчик(и) | Онтье Люнсдорф, Стефан Шерфке |
Первоначальный выпуск | 17 сентября 2002 г. |
Стабильная версия | 4.1.1
/ 12 ноября 2023 г |
Репозиторий | |
Написано в | Питон |
Операционная система | Кросс-платформенный |
Тип | Дискретное моделирование событий |
Лицензия | С |
Веб-сайт | простой |
SimPy означает «Моделирование на Python», основанную на процессах, моделирования дискретных событий, представляет собой среду основанную на стандартном Python . [1] Он позволяет пользователям моделировать активные компоненты, такие как клиенты, транспортные средства или агенты, как простые функции генератора Python . SimPy выпускается как программное обеспечение с открытым исходным кодом под лицензией MIT . Первая версия была выпущена в декабре 2002 года. [2]
Обзор
[ редактировать ]Его диспетчер событий основан на генераторах Python и может использоваться для асинхронной сети или для реализации многоагентных систем (как с моделируемой, так и с реальной связью). Моделирование может выполняться «как можно быстрее», в реальном времени (по времени настенных часов) или путем ручного пошагового прохождения событий. Хотя теоретически возможно проводить непрерывное моделирование с помощью SimPy, в нем отсутствуют функции для его поддержки. Однако для моделирования с фиксированным размером шага, где процессы не взаимодействуют друг с другом или с общими ресурсами, простой while
петли достаточно. [3]
Кроме того, SimPy предоставляет различные типы общих ресурсов для моделирования точек перегрузки с ограниченной пропускной способностью, таких как серверы, кассы и туннели. В версии 3.1 и выше SimPy предлагает возможности мониторинга, помогающие собирать статистику о процессах и ресурсах.
SimPy 3.0 требует Python 3., [4] а для SimPy 4.0 требуется Python 3.6+. Дистрибутив SimPy содержит учебные пособия, [5] документация и примеры.
Пример
[ редактировать ]Ниже приведена симуляция SimPy. [6] показ часового процесса, который печатает текущее время моделирования на каждом этапе:
>>> 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))
<Process(clock) object at 0x...>
>>> env.process(clock(env, 'slow', 1))
<Process(clock) object at 0x...>
>>> env.run(until=2)
fast 0
slow 0
fast 0.5
slow 1
fast 1.0
fast 1.5
Ссылки
[ редактировать ]- ^ Ивата, Кертис; Маврис, Дмитрий (01 января 2013 г.). «Объектно-ориентированная среда моделирования дискретных событий для процессов обслуживания и логистики аэрокосмических аппаратов» . Procedia Информатика . 2013 Конференция по системным инженерным исследованиям. 16 : 187–196. дои : 10.1016/j.procs.2013.01.020 . ISSN 1877-0509 .
- ^ Сюн, Синьли; Ма, Линру; Цуй, Чао (13 января 2020 г.). «Среда моделирования оценки и оптимизации защиты от движущихся целей: подход SimPy» . Материалы 9-й Международной конференции по коммуникации и сетевой безопасности 2019 . ICCNS '19. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 114–117. дои : 10.1145/3371676.3371692 . ISBN 978-1-4503-7662-4 .
- ^ Олайтан, Оладипупо; Джерати, Джон; Янг, Пол; Дагкакис, Георгиос; Хиви, Катал; Байер, Мартин; Перрен, Джером; Робин, Себастьян (01 января 2014 г.). «Внедрение ManPy, бессемантического пакета моделирования дискретных событий с открытым исходным кодом, в магазине вакансий» . Процесс CIRP . 8-я Международная конференция по технологиям цифрового предприятия - DET 2014. Прорывные инновации в машиностроении на пути к 4-й промышленной революции. 25 : 253–260. дои : 10.1016/j.procir.2014.10.036 . ISSN 2212-8271 .
- ^ «История и журнал изменений SimPy — документация SimPy 4.0.2.dev1+g2973dbe» .
- ^ Зиновьев Дмитрий (февраль 2018 г.). «Дискретное моделирование событий. С SimPy это легко!». ПрагПаб (104): 1–16.
- ^ Шерфке, Стефан (25 июля 2014 г.). «Дискретно-событийное моделирование с помощью SimPy» (PDF) . п. 5 . Проверено 10 августа 2016 г.