Введение

Сеть Петри, также известная как сеть «место/переход» (PT net), является одним из нескольких языков математического моделирования для описания распределённых систем. Это класс дискретных динамических систем, управляемых событиями. Сеть Петри – это ориентированный двудольный граф, имеющий два типа элементов: места и переходы. Элементы «место» изображаются белыми кругами, а элементы «переход» – прямоугольниками. Место может содержать любое количество маркеров, изображаемых чёрными кругами. Переход активируется, если все места, связанные с ним в качестве входов, содержат хотя бы один маркер. Некоторые источники утверждают, что сети Петри были изобретены в августе 1939 года Карлом Адамом Петри в возрасте 13 лет для описания химических процессов. Подобно отраслевым стандартам, таким как диаграммы деятельности UML, модель и нотация бизнес-процессов (BPMN) и цепочки событийных процессов, сети Петри предлагают графическую нотацию для пошаговых процессов, включающих выбор, итерацию и параллельное выполнение. В отличие от этих стандартов, сети Петри имеют точное математическое определение семантики выполнения и хорошо развитую математическую теорию для анализа процессов.

Исторический фон

Немецкий ученый-компьютерщик Карл Адам Петри, именем которого названы эти структуры, всесторонне проанализировал сети Петри в своей диссертации 1962 года «Kommunikation mit Automaten».

Основы сети Петри

Сеть Петри состоит из мест, переходов и дуг. Дуги соединяют место с переходом или наоборот, но никогда не соединяют места между собой или переходы между собой. Места, из которых дуги ведут к переходу, называются входными местами этого перехода; места, в которые дуги ведут от перехода, называются выходными местами перехода. Графически, места в сети Петри могут содержать дискретное количество маркеров, называемых токенами. Любое распределение токенов по местам представляет собой конфигурацию сети, называемую маркировкой. В абстрактном смысле, относящемся к диаграмме сети Петри, переход может быть выполнен (сработать), если он активирован, то есть во всех его входных местах достаточно токенов; при выполнении перехода необходимые входные токены потребляются, а в его выходных местах создаются новые токены. Выполнение перехода является атомарным, то есть представляет собой единый, неделимый шаг. Если не определена политика выполнения (например, строгий порядок переходов, определяющий приоритет), выполнение сети Петри является недетерминированным: когда одновременно активировано несколько переходов, они могут быть выполнены в любом порядке. Поскольку выполнение перехода недетерминировано, и в сети может присутствовать несколько токенов в любом месте (даже в одном и том же), сети Петри хорошо подходят для моделирования параллельного поведения распределенных систем.

Формальное определение и основная терминология

Сети Петри – это системы переходов состояний, расширяющие класс сетей, называемых элементарными сетями. Определение 1. Сеть – это кортеж, где P и T – непересекающиеся конечные множества мест и переходов соответственно. F – это множество (направленных) дуг (или отношений потока). Определение 2. Для сети N = (P, T, F) конфигурация – это множество C, такое что C ⊆ P.

Определение 3. Элементарная сеть – это сеть вида EN = (N, C), где N = (P, T, F) – сеть, а C – конфигурация, такая что C ⊆ P. Определение 4. Сеть Петри – это сеть вида PN = (N, M, W), расширяющая элементарную сеть, где N = (P, T, F) – сеть, M: P → Z – мультимножество мест, где Z – счетное множество. M расширяет понятие конфигурации и обычно описывается со ссылкой на диаграммы сети Петри как маркировка. W: F → Z – мультимножество дуг, так что число (или вес) для каждой дуги является мерой кратности дуги. Если сеть Петри эквивалентна элементарной сети, то Z может быть счетным множеством {0,1}, а элементы из P, отображаемые в 1 посредством M, образуют конфигурацию. Аналогично, если сеть Петри не является элементарной сетью, то мультимножество M может интерпретироваться как представление не-одиночного набора конфигураций. В этом смысле M расширяет понятие конфигурации для элементарных сетей на сети Петри. На диаграмме сети Петри (см. верхнюю фигуру справа) места обычно изображаются кругами, переходы – длинными узкими прямоугольниками, а дуги – односторонними стрелками, показывающими соединения мест с переходами или переходов с местами. Если бы диаграмма представляла элементарную сеть, то места в конфигурации обычно изображались бы как круги, каждый из которых содержит одну точку, называемую токеном. На приведенной диаграмме сети Петри (см. справа) круги мест могут содержать более одного токена, чтобы показать, сколько раз место встречается в конфигурации. Конфигурация токенов, распределенных по всей диаграмме сети Петри, называется маркировкой. На верхнем рисунке (см. справа) место p1 является входным местом для перехода t, в то время как место p2 является выходным местом для того же перехода. Пусть PN0 (на верхнем рисунке) будет сетью Петри с маркировкой M0, а PN1 (на нижнем рисунке) – сетью Петри с маркировкой M1. Конфигурация PN0 позволяет выполнить переход t, поскольку все входные места содержат достаточное количество токенов (показаны на рисунках в виде точек), "равное или большее" кратности соответствующих дуг к t. Переход будет выполнен один раз и только один раз, когда он станет возможным. В этом примере выполнение перехода t генерирует отображение, которое имеет маркировку M1 в образе M0 и приводит к сети Петри PN1, показанной на нижнем рисунке. На диаграмме правило выполнения перехода можно охарактеризовать вычитанием из его входных мест числа токенов, равного кратности соответствующих входных дуг, и добавлением нового числа токенов в выходные места, равного кратности соответствующих выходных дуг. Примечание 1. Точное значение выражения "равное или большее" будет зависеть от точных алгебраических свойств сложения, применяемых к Z в правиле выполнения, где незначительные изменения алгебраических свойств могут привести к другим классам сетей Петри; например, алгебраическим сетям Петри. Следующее формальное определение основано на существующих альтернативных определениях.

Изменения в определении

Общая вариация состоит в запрете кратных дуг и замене множества дуг W простым набором, называемым отношением потока. Это не снижает выразительную силу, поскольку оба представления могут быть преобразованы друг в друга. Другая распространенная вариация, например, в Desel и Juhás (2001), заключается в разрешении определять пропускную способность для мест. Это рассматривается в разделе "Расширения" ниже.

Теоретическая формулировка категорий

Месэгуер и Монтанари рассматривали особый вид симметричных моноидальных категорий, известных как категории Петри.

Математические свойства сетей Петри

Одна из причин, по которой сети Петри представляют интерес, заключается в том, что они обеспечивают баланс между выразительностью моделирования и возможностью анализа: многие характеристики, которые хотелось бы знать о параллельных системах, могут быть автоматически определены для сетей Петри, хотя определение некоторых из них в общем случае может быть очень затратным. Исследовано несколько подклассов сетей Петри, которые по-прежнему способны моделировать интересные классы параллельных систем, при этом указанные определения становятся более простыми. Обзор таких задач принятия решений, с результатами о разрешимости и сложности для сетей Петри и некоторых их подклассов, можно найти в работе Esparza и Nielsen (1995).

Доступность

Проблема достижимости для сетей Петри состоит в том, чтобы определить, для заданной сети Петри N и маркировки M, возможно ли достичь этой маркировки. Это сводится к обходу графа достижимости, определенного выше, до тех пор, пока не будет достигнута требуемая маркировка или пока не станет ясно, что дальнейший поиск невозможен. Это сложнее, чем кажется на первый взгляд: граф достижимости обычно бесконечен, и нелегко определить, когда можно безопасно остановиться. Фактически, было показано, что эта проблема является EXPSPACE-сложной за годы до того, как было доказано, что она вообще разрешима (Mayr, 1981). Статьи, посвященные эффективному решению этой проблемы, продолжают публиковаться. В 2018 году Czerwiński et al. улучшили нижнюю оценку сложности и показали, что проблема не является элементарной. В 2021 году, независимо друг от друга, Jerome Leroux и Wojciech Czerwiński с Łukasz Orlikowski показали, что эта проблема не является примитивно рекурсивной. Эти результаты, таким образом, устраняют давний пробел в оценке сложности. Хотя проверка достижимости представляется полезным инструментом для обнаружения ошибочных состояний, для практических задач построенный граф обычно содержит слишком много состояний для вычисления. Чтобы смягчить эту проблему, линейная временная логика часто используется в сочетании с табличным методом для доказательства недостижимости таких состояний. Линейная временная логика использует технику полурешения для определения возможности достижения состояния, находя набор необходимых условий для его достижения, а затем доказывая, что эти условия не могут быть выполнены.

Живость

Сети Петри могут обладать различной степенью живости. Сеть Петри называется живой, если и только если все ее переходы живые, где переход считается мертвым, если он никогда не может быть выполнен, то есть он не входит ни в одну последовательность выполнения. Переход считается потенциально выполнимым (live), если и только если он может быть выполнен, то есть он входит в некоторую последовательность выполнения. Переход считается живым, если он может быть выполнен произвольно часто, то есть для каждого положительного целого числа k он встречается по крайней мере k раз в некоторой последовательности выполнения. Переход считается живым, если он может быть выполнен бесконечно часто, то есть существует фиксированная (необходимо бесконечная) последовательность выполнения, в которой для каждого положительного целого числа k переход встречается по крайней мере k раз. Переход считается живым (live), если он может быть выполнен всегда, то есть он живой в каждой достижимой разметке.

Обратите внимание, что эти требования становятся все более строгими: живость подразумевает более высокую степень живости. Эти определения соответствуют обзору Мураты, который дополнительно использует термин "живой" для обозначения "мертвого" перехода.

Ограниченность

Место в сети Петри называется k-ограниченным, если оно не содержит более k токенов во всех достижимых маркировках, включая начальную маркировку; оно называется безопасным, если оно 1-ограничено; оно ограничено, если оно k-ограничено для некоторого k.

(Маркированная) сеть Петри называется k-ограниченной, безопасной или ограниченной, если все её места ограничены. Сеть Петри (граф) называется (структурно) ограниченной, если она ограничена для каждой возможной начальной маркировки. Сеть Петри ограничена тогда и только тогда, когда её граф достижимости конечен. Ограниченность определяется путем рассмотрения покрытий, а также построением дерева Карпа–Миллера. Может быть полезно явно установить ограничение на места в заданной сети. Это можно использовать для моделирования ограниченных системных ресурсов. Некоторые определения сетей Петри явно допускают это как синтаксическую особенность. Формально, сети Петри с емкостями мест могут быть определены как кортежи , где – сеть Петри, – назначение емкостей (некоторым или всем) местам, а отношение переходов является обычным, но ограничено маркировками, в которых каждое место с емкостью содержит не более указанного числа токенов. Например, если в сети N обоим местам присвоена емкость 2, мы получаем сеть Петри с емкостями мест, скажем N2; её граф достижимости изображен справа. Альтернативно, места можно сделать ограниченными путем расширения сети. В частности, место можно сделать k-ограниченным, добавив "счетное место" с потоком, противоположным потоку исходного места, и добавив токены так, чтобы общее количество токенов в обоих местах стало равно k.

Дискретные, непрерывные и гибридные сети Петри

Помимо дискретных событий, существуют сети Петри для непрерывных и гибридных дискретно-непрерывных процессов, а также для автоматов, связанных с дискретными, непрерывными и гибридными системами.