Обработка данных
Формальное определение сети Петри
Чтобы можно было использовать сети Петри для анализа процессов обработки, необходимо иметь точное определение.
Графом сети Петри будем называть тройку (), где
- непустое множество элементов сети, называемых местами,
- непустое множество элементов сети, называемых переходами,
- отношение инцидентности,
и для () выполнены следующие условия:
-
(множества мест и переходов не пересекаются);
-
(т.е. любой элемент сети инцидентен хотя бы одному элементу другого типа);
-
если для произвольного элемента сети
обозначить через
множество его входных элементов
, а через
- множество его выходных элементов
, то
то есть сеть не содержит пары мест, которые инцидентны одному и тому же множеству переходов.
Графическим представлением сети служит двудольный ориентированный граф с двумя типами вершин; вершины-места изображаются кружочками, вершины-переходы - барьерами. Из вершины в вершину
ведет дуга, если и только если
.
На основе понятия сети, которая описывает только статическую топологию моделируемого процесса или системы, вводятся динамические сетевые структуры, в которых местам приписываются специальные разметки, моделирующие выполнение условия, и с сетью связывается понятие ее функционирования, изменяющего эти разметки (условия) в результате так называемых срабатываний переходов. К таким динамическим сетям относятся сети Петри, их различные варианты, обобщения и частные случаи.
Сеть Петри - это набор , где
- конечная сеть (множество
конечно), a
и
- две функции, называемые соответственно кратностью дуг и начальной разметкой. Первая сопоставляет каждой дуге число
(кратность дуги). Если
, то в графическом представлении сети число
выписывается рядом с короткой чертой, пересекающей дугу. Часто такая дуга будет также заменяться пучком из
дуг, соединяющих соответствующие элементы сети. Условимся никак не отмечать кратность дуг, равную 1. Такую сеть будем называть ординарной. Вторая функция сопоставляет каждому месту
некоторое число
(разметка места). В графическом представлении сети разметка места
изображается помещением в вершину-кружок числа
или, если это число невелико, соответствующего числа точек (фишек).
Разметка сети - это функция
. Если предположить, что все места сети
строго упорядочены каким-либо образом, т.е.
, то разметку
сети (в том числе начальную разметку) можно задать как вектор целых неотрицательных чисел
![M=\begin{pmatrix}m_1\\m_2\\\vdots\\m_n\end{pmatrix}](/sites/default/files/tex_cache/3dc3d0ce3c56b84d804295003a153111.png)
такой, что для любого .
На основе отношения инцидентности можно ввести функцию инцидентности
, которая определяется выражением
![Ф(х,у)=\begin{cases}n \in N^+, \mbox {\ если\ } xFy\\o, \mbox {\ если\ } \neg xFy\end{cases}](/sites/default/files/tex_cache/69daee8e9dc50ab8479a88c94d03e248.png)
Значения функции можно трактовать как кратность дуги между вершинами сети
и
. Если
, то это означает, что между вершинами
и
дуги нет.
Если места сети упорядочены, то можно каждому переходу сопоставить два целочисленных вектора
и
длиной
, где
:
![Ф(t)=\begin{pmatrix}b_1\\b_2\\\vdots\\b_n\end{pmatrix}, \; где\; b_i=Ф(p_i,t)](/sites/default/files/tex_cache/83e8b5ac375be36fa300b658e03a2a9c.png)
и
![Ф(t)=\begin{pmatrix}b_1\\b_2\\\vdots\\b_n\end{pmatrix}, \; b_1=Ф(t,p_i)](/sites/default/files/tex_cache/a17c00ed12f923203b91e822c0ff4bee.png)
Функционирование сети Петри описывается формально с помощью множества последовательностей срабатываний и множества достижимых в сети разметок. Эти понятия определяются через правила срабатывания переходов сети.
Переход может сработать при некоторой разметке
сети
, если
, то есть каждое входное место
перехода
имеет разметку, не меньшую, чем кратность дуги, соединяющей
и
. Это условие можно переписать в векторной форме следующим образом:
.
Предполагается, что для векторов выражение
озна-чает, что
.
Из определения векторов и
ясно, что вектор
является столбцом матрицы
, а вектор
является столбцом матрицы
![D^-=\begin{pmatrix}
Ф(p_1,t_1)&Ф(p_1,t_2)&\dots&Ф(p_1,t_m)\\
Ф(p_2,t_1)&Ф(p_2,t_2)&\dots&Ф(p_2,t_2)\\
\vdots&\vdots&\ddots&\vdots\\
Ф(p_n,t_1)&Ф(p_n,t_2)&\dots &Ф(p_n,t_m)
\end{pmatrix},
D^+=\begin{pmatrix}
Ф(t_1,p_1)&Ф(t_2,p_1)&\dots&Ф(t_m,p_1)\\
Ф(t_1p_2)&Ф(t_2,p_2)&\dots&Ф(t_m,p_2)\\
\vdots&\vdots&\ddots&\vdots\\
Ф(t_1,p_n)&Ф(t_2,p_n)&\dots &Ф(t_m,p_n)
\end{pmatrix}](/sites/default/files/tex_cache/342093f274bcedf9a1f6c64565192a71.png)
Векторы и
могут быть представлены как произведения
и
матриц
и
на вектор
вида
![]() |
( 8.3) |
у которого все компоненты равны 0, кроме -й компоненты, равной 1.
Для ординарной сети Петри условие срабатывания перехода означает, что любое входное место этого перехода содержит хотя бы одну фишку, т.е. имеет ненулевую разметку.
Срабатывание перехода при разметке
порождает разметку
по следующему правилу:
![\forall p \in P\; М(р) = М(р)-Ф(р,t_i) + Ф(t_i,р)](/sites/default/files/tex_cache/6fecbd6a8824c183ee91c3a2750efd34.png)
В матричном виде изменение разметки при срабатывании перехода описывается выражением
![]() |
( 8.4) |
Обозначив , получим еще более краткую запись для выражения (8.4)
![]() |
( 8.5) |
Таким образом, срабатывание перехода изменяет разметку так, что разметка каждого его входного места
уменьшается на
, т.е. на кратность дуги, соединяющей
и
, а разметка каждого его выходного места увеличивается на
, т.е. на кратность дуги, соединяющей
и
.
Элемент матрицы , находящийся в
-й строке и
-м столбце, представляет собой разность числа появившихся и удаленных в
-м месте фишек в результате срабатывания
-го перехода.
На множестве разметок можно ввести отношение непосредственного следования разметок:
![М \triangleright М \leftrightarrow \exists t \in Т:(М\ge Ф(t) \wedge(М'= - 'Ф(t) + Ф'(t))](/sites/default/files/tex_cache/fa21c58d5e032f9e49375aec58faf0b5.png)
Будем использовать уточняющее обозначение , если
непосредственно следует после
в результате срабатывания перехода
.
Говорят, что разметка
достижима от разметки
, если существует последовательность разметок
и слово
в алфавите
, такие что
![М^{t_1}\triangleright М^{t_2} \triangleright М^{t_2} \dots \triangleright М'](/sites/default/files/tex_cache/82a99bdaba0342001fad8e4424551612.png)
Слово в этом случае называется последовательностью срабатываний, ведущих от
к
. Обобщим отношения непосредственного следования до отношения "
достижима от
", используя обозначение
или
, если уточняется последовательность срабатываний (последовательность может быть пустой, т.е.
не достижима от
).
Множество разметок, достижимых в сети
от разметки
, обозначим через
. Множество
, т.е. множество всех разметок, достижимых в
от начальной разметки
, называют множеством достижимых разметок сети
(заметим, что
и
).
Множеством последовательностей срабатываний сети , или свободным языком сети
, называется множество
![L(N) =\{\tau \in T'| \exists M\in R(N):M_0^{\tau}\triangleright M\)](/sites/default/files/tex_cache/6558932dcf4235fa5a2624aac56bb47d.png)
то есть множество всех последовательностей срабатываний, ведущих от к каждой достижимой в
разметке.
На рис.8.6 изображена сеть Петри, на примере которой поясним данные выше определения. В этой сети . Функция инцидентности
задается с помощью следующих двух таблиц, в которых на пересечении строки
и столбца
стоит число
:
Начальная разметка задается следующим образом:
, или в векторной форме:
.
При разметке могут сработать переходы
и
, так как
. Переходы
и
не могут сработать, так как вектор начальной разметки
не покрывает векторы
, и
.
В результате срабатывания перехода разметка
сменяется на разметку (1, 3, 0), а в результате срабатывания перехода
разметка
сменяется на разметку (0, 0, 1) . Обе новые разметки непосредственно следуют после
в рассматриваемой сети. Можно представить возможные изменения разметок сети
, происходящие в результате срабатывания ее переходов, в виде графа разметок - ориентированного графа, множество вершин которого образовано множеством
достижимых в
разметок. Из вершины
в вершину
ведетa дуга, помеченная символом перехода
, если и только если
. На рис.8.7 показан начальный фрагмент графа разметок сети на рис.8.6. Этот граф бесконечен, так как множество
достижимых разметок бесконечно для рассматриваемой сети.
Разметка называется тупиковой, если в сети
не существует ни одного перехода, который может сработать при этой разметке. Для рассматриваемой сети тупиковыми являются разметки (0, 2, 0), (0, 3, 0), (0,4,0),..., (0, n, 0)...
Легко видеть, что если выделить путь по дугам графа разметок, начинающийся в вершине и заканчивающийся в вершине
, и выписать подряд все встречающиеся символы переходов, то полученное слово образует последовательность срабатываний, ведущих от
к
. Множество всех слов, которые получены выписыванием символов переходов вдоль путей, начинающихся в
, образует множество последовательностей срабатываний сети, или ее свободный язык. Так, язык рассматриваемой сети включает слова
.