Сети Петри(финал) с моими правками
.pdfПереход с |
и |
и разрешен всякий раз, когда в |
будет |
хотя бы одна фишка. Переход |
запускается удалением одной фишки из позиции |
и |
|
помещением одной фишки в позицию и в |
(его выходы). Дополнительные фишки в |
позиции не влияют на запуск (хотя они могут разрешать дополнительные запуски
). |
|
|
|
Переход |
, в котором |
и |
, запускается |
удалением одной фишки из |
и одной фишки из |
, при этом одна фишка помещается в |
|
и две в — |
(так как |
имеет кратность, равную двум). |
|
Запуск перехода в целом заменяет маркировку |
сети Петри на новую маркировку . |
Заметим также, что так как можно запустить только разрешенный переход, то при запуске перехода количество фишек в каждой позиции всегда остается неотрицательным. Запуск перехода никогда не удалит фишку, отсутствующую во входной позиции. Если какая-либо входная позиция перехода не обладает достаточным количеством фишек, то переход не разрешен и не может быть запущен.
Пример изменения маркировки:
рис.6 рис.7
Определение
Переход в маркированной сети Петри с маркировкой может быть запущен всякий раз, когда он разрешен. В результате запуска разрешенного перехода образуется новая маркировка , определяемая следующим соотношением:
В качестве примера рассмотрим маркированную сеть Петри:
рис.8 |
|
При такой маркировке разрешены только три перехода: , и . Переход |
не |
разрешен, так как ни позиция , ни позиция , являющиеся входами перехода |
, не |
содержат ни одной фишки. |
|
Так как переходы , и разрешены, любой из них может быть запущен. Если запущен переход , то происходит удаление фишки из каждого входа и помещение фишки в каждый выход. При этом одна фишка удаляется из , одна фишка помещается в
, а количество фишек в увеличивается с двух до трех. Новая маркировка, полученная в результате запуска перехода , показана на рис.9:
рис.9
В маркированной сети Петри, изображенной на рис. , разрешены только переходы и
. При запуске перехода осуществляется удаление фишки из и помещение фишек в , и (в — две фишки, так как эта позиция является кратным выходом перехода ).
Эта операция образует маркировку:
рис.10
В такой маркированной сети Петри переходы и разрешены. Запуск перехода образует новую маркировку (рис. 2.18), где две фишки удалены из , а одна добавлена в
.
рис.11
Запуски могут осуществляться до тех пор, пока существует хотя бы один разрешенный переход. Когда не останется ни одного разрешенного перехода, выполнение прекращается.
3. Работа с ПО PIPE
PIPE2 - открытый источник, независимый инструмент для создания и анализа сетей Петри, включая обобщенные стохастические сети Петри. Сети Петри - популярный способ моделирования параллелизма и синхронизации в распределенных системах.
Подготовка
Для выполнения работы необходимо знать основные элементы сетей Петри: позиция, переход, дуга, фишка, а также правила срабатывания переходов сети.
С сайта http://pipe2.sourceforge.net/ скачать бесплатную программу для моделирования работы сетей Петри PIPE2.
Подготовка к использованию ПО:
1)Наличие последней версии архиватора(WinRar, WinZip, 7zip)
2)Наличие библиотек JavaScript
ПО протестировано на Windows 7 Ultimate 32 bit
Алгоритм работы с программой:
1)Для запуска программы необходимо открыть архив ПО с помощью архиватора
2)Открываем файл launch.bat(если у Вас Windows) или launch.sh(если у Вас Linux)
3)В открывшемся окне программы для создания нового проекта в панели команд
File->New(по умолчанию при запуске создается проект под номером 1)
4) Для создания переходов, состояний, фишек и соединительных линий кликаем на соответствующие изображения на панели инструментов(для переходов есть два типа – срабатывающий по времени и обычный)
5)Для перемещений уже установленных переходов и состояний используем кнопку
«Select Components»(курсор)
6)В случае необходимости для поворота перехода кликаем по нему правой кнопкой мыши, Edit Transition->Rotation
7) Для редактирования количества фишек кликаем правой кнопкой мыши, Edit Place и изменяем поле Default или на соответствующее изображение на панели инструментов
«Add a token» или «Delete a token»
8)Для запуска построенной сети используем Animate в панели команд или соответствующее изображение на панели инструментов «Toggle Animation Mode»(зеленый флаг)
9)Далее кнопками «Randomly fire transition» или «Randomly fire a number of transition» на панели инструментов или в соответствующем разделе в меню команд осуществляем обход по сети.
Замечание!!!
Отличие кнопок заключается в том, что «Randomly fire transition»выполняет обход случайным образом, а с помощью «Randomly fire a number of transition» в открывающемся диалоговом окне мы можем указать номер перехода, срабатывание которого нам необходимо, а также время ожидания (в случае использования соответствующего перехода)
10)Для сохранения результатов используем команду File->Save или File->Save As
11)Для загрузки ранее созданных проектов используем команду File->Open
4. Пример выполнения практического задания
Дано:
‒
‒
1) Расставляем необходимое количество состояний и переходов, соединяем их так, как требует задание.
2) Расставляем фишки
3) Исследуем сеть по заданию. deadlock
deadlock
4) Модификация сети
5)Исследуем активность и безопасность и делаем вывод
;.
1- безопасно
2-безопасно
2-безопасно
Сеть ограниченная(2-безопасна и конечное число позиций)
6) Выбираем произвольный переход, который может сработать из начальной маркировки сети, и выписываем формулы для проверки возможности его запуска и изменения маркировки после его запуска.
Практическое задание.
Построение моделей простых объектов
Цель занятия.
Изучить основные элементы сетей Петри, правила функционирования сети, освоить методику построения моделей параллельных процессов и систем с помощью программного средства PIPE2.
Задания выполнять в соответствии с номером варианта (номер варианта = номеру в списке студентов группы).
Задания можно взять здесь: http://ec.dstu.edu.ru/site/ci/documents/index/55/1774/17144/
1. Для заданного графа сети Петри построить алгебраическую структуру сети Петри, при этом значения входных и выходных функций записать в алгебраической форме (т.е. формулой типа ), а значения сопряженных функций построить в табличном виде.
2.Построить граф достижимых маркировок сети Петри.
3.Построить сеть в программном средстве PIPE2. Выполнить различные запуски сети
(функция animate) и выяснить возможен ли deadlock при заданной начальной маркировке. Если deadlock возможен, предложите модификацию сети, позволяющую избежать тупиковой ситуации. В тетради необходимо привести скриншот исходной и модифицированных сетей.
4.Укажите уровни безопасностей позиций исходной сети и уровни активности ее переходов.
5.Выберите произвольный переход, который может сработать из начальной маркировки сети, и выпишите формулы для проверки возможности его запуска и изменения маркировки после его запуска.