Сети Петри для моделирования
Сети Петри
Основные определения
Сети Петри (СП) и их многочисленные модификации являются одним из классов моделей, неоспоримым достоинством которых является возможность адекватного представления не только структуры сложных организационно-технологических систем и комплексов, но также и логико-временных особенностей процессов их функционирования. Сети Петри представляют собой математическую модель для представления структуры и анализа динамики функционирования систем в терминах «условие-событие». Это модель может быть успешно использована для описания так называемых динамических дискретных систем различных классов, таких как: вычислительные процессы и программы, технологические процессы, информационные, экономические, биологические, социальные и технические системы.
Модели сетей Петри позволяют исследовать работоспособность моделируемых систем, оптимальность их структуры, эффективность процесса их функционирования, а также возможность достижения в процессе функционирования определенных состояний. Сети Петри и их обобщения являются удобным и мощным средством моделирования асинхронных, параллельных, распределенных и недетерминированных процессов, позволяют наглядно представить динамику функционирования систем и составляющих их элементов. Свойство иерархического вложения сетей Петри позволяют рассматривать модели различной степени детализации, обеспечивая тем самым необходимую композицию сложных систем и процессов.
Структура сети Петри.Сеть Петри С является четверкой: С = (Р, Т, I, О). Р— {p1, р2, ..., рn} — конечное множество позиций, n³ 0. Т = (t 1, t 2, ..., t m} — конечное множество переходов, m ³ 0. Множество позиций и множество переходов не пересекаются, Р ∩ Т = Ø. I : T → Р∞ является входной функцией — отображением из переходов в комплекты позиций.
О: Т → Р∞есть выходная функция — отображение из переходов в комплекты позиций.
Позиция рi является входной позицией перехода tjв том случае, если piÎ I(tj); piявляется выходной позицией, если рiÎ O(tj). Входы и выходы переходов представляют собой комплекты позиций. Комплект является обобщением множества, в которое включены многократно повторяющиеся элементы — тиражированные элементы. Использование комплектов, а не множеств для входов и выходов перехода позволяет позиции быть кратным входом либо кратным выходом перехода. Кратность входной позиции piдля перехода tjесть число появлений позиции во входном комплекте перехода, #(pi, I(tj)). Аналогично кратность выходной позиции piдля перехода tjесть число появлений позиции в выходном комплекте перехода, #(pi, О(tj)). Если входная и выходная функции являются множествами (а не комплектами), то кратность каждой позиции есть либо 0, либо 1.
Существует и такой вариант определения входной и выходной функций переходов. I – входная функция переходов, которая определяется как отображение I: P T N0; O – выходная функция переходов, которое определяется как отображение O: T P N0, где N0 – множество натуральных чисел и ноль.
Пример. C = (P, T, I, O), P = {p1, p2, p3, p4, p5}, T = {t1, t2, t3, t4},
I ( t1) = {p1}, O(t1) = {p2, p3, p5},
I ( t2) = {p2, p3, p5}, O(t2) = {p5},
I( t3) = {p3}, O(t 3) = {p4},
I( t4) = {p4}, O(t 4) = {p2, p3},
Графическое представление сети Петри. Структура сети Петри представляет собой совокупность позиций и переходов. В соответствии с этим граф сети Петри обладает двумя типами узлов. Кружок является позицией, а планка | - переходом.
Ориентированные дуги (стрелки) соединяют позиции и переходы, при этом некоторые дуги направлены от позиций к переходам, а другие — от переходов к позициям. Дуга, направленная от позиции piк переходу tj, определяет позицию, которая является входом перехода. Кратные входы в переход указываются кратными дугами из входных позиций в переход. Выходная позиция указывается дугой от перехода к позиции. Кратные выходы также представлены кратными дугами.
Граф G сети Петри есть двудольный ориентированный мультиграф, G = (V, А), где V= {v1, v2, ..., vs} — множество вершин, а А = {a1, a2, ..., ar} — комплект направленных дуг, аi = (vj, vk), где vj, vkÎ V. Множество Vможет быть разбито на два непересекающихся подмножества Р и Т, таких, что V = Р U Т, Р I Т = Æ , и для любой направленной дуги aiÎ А, если ai= (vj, vk), тогда либо vjÎ Р и vkÎ T, либо vjÎ Т, а vkÎ P.
Рис. 1.1. Граф сети Петри
Матричное представление сети Петри.Альтернативным по отношению к определению сети Петри в виде (Р, Т, I, О) является определение двух матриц D-и D+, представляющих входную и выходную функции. Каждая матрица имеет mстрок (по одной на переход) и nстолбцов (по одному на позицию). Определим D- [j, i]= # (pi, I(tj)), a D+ [j, i] = #(pi, 0 (tj)). D -определяет входы в переходы, D+— выходы. Матричная форма определения сети Петри (Р, Т, D-, D+) эквивалентна стандартной форме, но позволяет дать определения в терминах векторов и матриц.
Маркировка сетей Петри.Маркировка μ есть присвоение фишек позициям сети Петри. Фишка — это примитивное понятие сетей Петри (подобно позициям и переходам). Фишки присваиваются (можно считать, что они принадлежат) позициям. Количество и положение фишек при выполнении сети Петри могут изменяться. Фишки используются для определения выполнения сети Петри.
Маркировка μ сети Петри С = (Р, Т, I, О) есть функция, отображающая множество позиций Р в множество неотрицательных целых чисел N μ : Р → N. Маркировка μ может быть также определена как вектор μ = (μ 1, μ2, … , μ n), где n = |Р| и каждое μiÎ N, i = 1, ..... n. Вектор μ определяет для каждой позиции piсети Петри количество фишек в этой позиции. Количество фишек в позиции piесть μi, i = 1, ..., n.
Рис. 1.2. Маркированная сеть Петри
Связь между определениями маркировки как функции и как вектора очевидным образом устанавливается соотношением μ(pi) = μi.
Маркированная сеть Петри М = (С, μ) есть совокупность структуры сети Петри С = (Р, Т, I, О) и маркировки μ и может быть записана в виде М = (Р, Т, I, О, μ). На графе сети Петри фишки изображаются маленькой точкой в кружке, который представляет позицию сети Петри. На рис. 1.2 приведен пример графического представления маркированной сети Петри.
Правила выполнения сетей Петри.Сеть Петри выполняется посредством запусков переходов. Переход запускается удалением фишек из его входных позиций и образованием новых фишек, помещаемых в его выходные позиции. Переход может запускаться только в том случае, когда он разрешен. Переход называется разрешенным, если каждая из его входных позиций имеет число фишек, по крайней мере, равное числу дуг из позиции в переход.
Переход tjÎ Т в маркированной сети Петри С — (Р, Т, I, О) с маркировкой μ разрешен, если для всех piÎ Р μ(pi) ³ #(pi, I(tj)).
Переход запускается удалением всех разрешающих фишек из его входных позиций и последующим помещением в каждую из его выходных позиций по одной фишке для каждой дуги. Кратные фишки создаются для кратных выходных дуг. Запуск перехода в целом заменяет маркировку μ сети Петри на новую маркировку μ'. Если какая-либо входная позиция перехода не обладает достаточным количеством фишек, то переход не разрешен и не может быть запущен.
Переход tjв маркированной сети Петри с маркировкой μ, может быть запущен всякий раз, когда он разрешен. В результате запуска разрешенного перехода tjобразуется новая маркировка μ', определяемая следующим соотношением: μ'(pi) = μ(рi) - #(pi, I(tj)) + #(рi, O(tj)).
В качестве примера рассмотрим маркированную сеть Петри, изображенную на рис. 6.3. При такой маркировке разрешены только три перехода: t1, t3и t4. Переход t2не разрешен, так как ни позиция р2, ни позиция р3, являющиеся входами перехода t2, не содержат ни одной фишки. Так как переходы t1,t3и t4разрешены, любой из них может быть запущен. Если запущен переход t4, то происходит удаление фишки из каждого входа и помещение фишки в каждый выход. При этом одна фишка удаляется из р5, одна фишка помещается в р3, а количество фишек в р 4 увеличивается с двух до трех. Новая маркировка, полученная в результате запуска перехода t4, показана на рис. 1.4.
В маркированной сети Петри, изображенной на рис. 1.4, разрешены только переходы t1и t3. При запуске перехода t1 осуществляется удаление фишки из р1 и помещение фишек в р2, р3 и р4 (в p4 — две фишки, так как эта позиция является кратным выходом перехода t1). Эта операция образует маркировку, приведенную на рис. 1.5.
Рис. 1.3. Маркированная сеть Петри для иллюстрации правил запуска. Переходы t1, t3 и t4 разрешены.
Рис. 1.4. Маркировка, полученная в результате запуска перехода t4в сети на рис. 1.3.
Рис. 1.5. Маркировка, полученная при запуске перехода t1 в сети на рис. 1.4.
Запуски могут осуществляться до тех пор, пока существует хотя бы один разрешенный переход. Когда не останется ни одного разрешенного перехода, выполнение прекращается.
Пространство состояний сети Петри.Состояние сети Петри определяется ее маркировкой. Запуск перехода изменяет состояние сети Петри посредством изменения маркировки сети. Пространство состояний сети Петри, обладающей nпозициями, есть множество всех маркировок, т. е. Nn. Изменение в состоянии, вызванное запуском перехода, определяется функцией изменения d , которую мы назовем функцией следующего состояния. Когда эта функция применяется к маркировке μ (состоянию) и переходу tj (он должен быть разрешен), она образует новую маркировку (состояние), которая получается при запуске перехода tjв маркировке μ.
Функция следующего состояния d : NnxТ → Nnдля сети Петри С = (Р, Т, I, О) с маркировкой μ и переходом tjÎ Т определена тогда и только тогда, когда μ(pi) ³ #(pi, I(tj)) для всех piÎ Р. Если d (μ, tj) определена, то d (μ, tj) = μ’, где μ’ (pi) = μ(pi) - #(pi, I(tj)) + #(pi, O(tj)) для всех рiÎ P.
Пусть дана сеть Петри С = (Р, Т, I, О) с начальной маркировкой μ°. Эта сеть может быть выполнена последовательными запусками переходов. Запуск разрешенного перехода tjв начальной маркировке образует новую маркировку μ1 = d (μ°, tj). В этой новой маркировке можно запустить любой другой разрешенный переход, например tk, образующий новую маркировку μ2 = d (μ1, tk). Этот процесс будет продолжаться до тех пор, пока в маркировке будет существовать хотя бы один разрешенный переход. Если же получена маркировка, в которой ни один переход не разрешен, то никакой переход не может быть запущен, функция следующего состояния не определена для всех переходов, и выполнение сети должно быть закончено.
При выполнении сети Петри получаются две последовательности: последовательность маркировок (μ°, μ1, μ2, ...) и последовательность переходов, которые были запущены (tj0, tj1, tj2, ...). Эти две последовательности связаны следующим соотношением: d (μk, tjk) = μk+1 для k = 0,1,2, ... . Имея последовательность переходов μ, легко получить последовательность маркировок сети Петри, а имея последовательность маркировок, легко получить последовательность переходов, за исключением нескольких вырожденных случаев. Таким образом, обе эти последовательности представляют описание выполнения сети Петри.
Для сети Петри С = (Р, Т, I, О) с маркировкой μ маркировка μ' называется непосредственно достижимой из μ, если существует переход tjÎ Т, такой, что d (μ, tj) = μ'.
Можно распространить это понятие на определение множества достижимых маркировок данной маркированной сети Петри. Если μ' непосредственно достижима из μ, а μ" — из μ', говорят, что μ" достижима из μ. Определим множество достижимости R(C, μ) сети Петри С с маркировкой μ как множество всех маркировок, достижимых из μ. Маркировка μ' принадлежит R(С, μ), если существует какая-либо последовательность запусков переходов, изменяющих μ на μ'.
Множество достижимости R(C, μ) для сети Петри С = (Р, Т, I, О) с маркировкой μ есть наименьшее множество маркировок, определенных следующим образом:
1. μ Î R(С, μ);
2. Если μ' Î R(С, μ) и μ" = d (μ', tj) для некоторого tjÎ Т, то μ" Î R (С, μ).
Удобно распространить функцию следующего состояния на отображение маркировки и последовательности переходов в новую маркировку. Для последовательности переходов (tj1, tj2, ..., tjk) и маркировки μ маркировка μ’ = d (μ, tjl, tj2, ..., tjk) есть результат запусков: сначала — tjl, затем — tj2и т. д. до tjk. (Такая операция, конечно, возможна только в том случае, если каждый переход к моменту его запуска разрешен.)
Сети Петри для моделирования
Сети Петри были разработаны и используются в основном для моделирования. С их помощью могут быть промоделированы многие системы, в особенности системы с независимыми компонентами, например аппаратное и программное обеспечение ЭВМ, физические системы, социальные и др. Сети Петри применяются для моделирования возникновения различных событий в системе. В частности, сети Петри могут моделировать поток информации или другие ресурсы системы.
Простое представление системы сетью Петри основано на двух основополагающих понятиях: событиях и условиях. События — это действия, имеющие место в системе. Возникновением событий управляет состояние системы. Состояние системы может быть описано множеством условий. Условие — есть предикат или логическое описание состояния системы. Условие может принимать либо значение «истина», либо значение «ложь».
Так как события являются действиями, то они могут происходить. Для того чтобы событие произошло, необходимо выполнение соответствующих условий. Эти условия называются предусловиями события. Возникновение события может вызвать нарушение предусловий и может привести к выполнению других условий, постусловий.
В качестве примера рассмотрим задачу моделирования простого автомата-продавца. Автомат-продавец находится в состоянии ожидания до тех пор, пока не появится заказ, который он выполняет и посылает на доставку. Условиями для такой системы являются: а) автомат-продавец ждет; б) заказ прибыл и ждет; в) автомат-продавец выполняет заказ; г) заказ выполнен. Событиями будут: 1. Заказ поступил. 2. Автомат-продавец начинает выполнение заказа. 3. Автомат-продавец заканчивает выполнение заказа. 4. Заказ посылается на доставку. Предусловия события 2 (автомат-продавец начинает выполнение заказа) очевидны: (а) автомат-продавец ждет; (б) заказ прибыл и ждет. Постусловие для события 2: (в) автомат-продавец выполняет заказ. Аналогично мы можем определить предусловия и постусловия для всех остальных событий:
События | Предусловия | Постусловия |
нет | б | |
а, б | в | |
в | г , а | |
г | нет |
Такое представление системы легко моделировать сетью Петри. В сети Петри условия моделируются позициями, события — переходами. При этом входы перехода являются предусловиями соответствующего события; выходы — постусловиями. Возникновение события равносильно запуску соответствующего перехода. Выполнение условия представляется фишкой в позиции, соответствующей этому условию. Запуск перехода удаляет разрешающие фишки, представляющие выполнение предусловий и образует новые фишки, которые представляют выполнение постусловий.
Сеть Петри на рис. 1.6 иллюстрирует модель приведенного выше автомата-продавца.
Рис. 1.6. Сеть Петри для простого автомата-продавца
Аналогичный пример можно привести для вычислительной системы, которая обрабатывает задания, поступающие с устройства ввода, и выводит результаты на устройство вывода. Задания поступают на устройство ввода. Когда процессор свободен и в устройстве ввода есть задание, процессор начинает обработку задания. Когда задание выполнено, оно посылается в устройство вывода; процессор же либо продолжает обрабатывать другое задание, если оно имеется, либо ждет прихода задания, если устройство ввода еще не получило такового. Эта система может быть промоделирована сетью Петри, показанной на рис. 1.7.
Рис. 1.7. Моделирование простой вычислительной системы
Одновременность и конфликт.Приведенные примеры иллюстрируют некоторые особенности сетей Петри и систем, моделируемых с их помощью. Одной из особенностей является свойственный сетям и их моделям параллелизм, или одновременность. В модели сети Петри два разрешенных невзаимодействующих события могут происходить независимо друг от друга. Синхронизировать события, пока это не потребуется моделируемой системе, нет нужды. Но, когда синхронизация необходима, моделировать ее легко. Таким образом, сети Петри представляются идеальными для моделирования систем с распределенным управлением, в которых несколько процессов выполняются одновременно.
Другая важная особенность сетей Петри — это их асинхронная природа. В сети Петри отсутствует измерение времени или течение времени. Это отражает философский подход к понятию времени, утверждающий, что одно из важнейших свойств времени, с логической точки зрения, — это определение частичного упорядочения событий. В реальной жизни различные события укладываются в различные интервалы времени, и это отражено в модели сети Петри независимостью от времени управления последовательностью событий. Структура сети Петри такова, что содержит в себе всю необходимую информацию для определения возможных последовательностей событий. Таким образом, на рис. 1.7 событие «завершение выполнения задания» должно следовать за соответствующим событием «начало выполнения задания». Однако нет и не требуется никакой информации, связанной с количеством времени, необходимым на выполнение задания.
Выполнение сети Петри (или поведение моделируемой системы) рассматривается здесь как последовательность дискретных событий. Порядок появления событий является одним из возможных, допускаемых основной структурой. Это приводит к явной недетерминированности в выполнении сети Петри, Если в какой-то момент времени разрешено более одного перехода, то любой из нескольких возможных переходов может стать «следующим» запускаемым. Выбор запускаемого перехода осуществляется недетерминированным образом, т. е. случайно. Эта особенность сети Петри отражает тот факт, что в реальной жизненной ситуации, где несколько действий происходит одновременно, возникающий порядок появления событий — не однозначен; скорее может возникнуть любая из множества последовательностей событий. Однако частичный порядок появления события — единственен.
Рис. 1.8. Моделирование" не примитивного события.
Для простоты обычно вводят следующее ограничение. Запуск перехода (и соответствующего события) рассматривается как мгновенное событие, занимающее нулевое время, и возникновение двух событий одновременно невозможно. Моделируемое таким образом событие называется примитивным; примитивные события мгновенны и неодновременны . Непримитивными называются такие события, длительность которых отлична от нуля. Они не являются неодновременными и, следовательно, могут пересекаться во времени. Так как осуществление большинства событий в реальном мире занимает некоторое время, то они являются непримитивными событиями и поэтому не могут должным образом моделироваться переходами в сети Петри. Однако это не приводит к возникновению проблем при моделировании систем. Непримитивное событие может быть представлено в виде двух примитивных событий: «начало непримитивного события», «конец непримитивного события» и условия «непримитивное событие происходит». Эта ситуация может быть промоделирована с помощью сети, показанной на рис. 1.8.
Недетерминированность и неодновременность запусков переходов в моделировании параллельной системы показываются двумя способами. Один из них представлен на рис. 1.9. В этой ситуации два разрешенных перехода в любом случае не влияют друг на друга, и в число возможных последовательностей событий входит последовательность, в которой первым срабатывает один переход, и последовательность, в которой первым будет запущен другой переход. Это называется одновременностью.
Другая ситуация, в которой одновременное выполнение затруднено и которая характеризуется невозможностью одновременного возникновения событий, показана на рис. 1.10. Здесь два разрешенных перехода находятся в конфликте. Может быть запущен только
Рис. 1.9. Одновременность. Эти два Рис. 1.10. Конфликт. Переходы tj,tk
перехода могут быть запущены находятся в конфликте, т. е. запуск
в любом порядке. одного из них удаляет фишку из pi
и тем самым запрещает другой.
один переход, так как при запуске он удаляет фишку из общего входа и запрещает другой переход.
Рассмотренные ситуации требуют внимательного изучения моделируемых сетями Петри систем для правильного отображения их поведения.
Анализ сетей Петри