Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория вычислительных процессов. Лабораторный практикум. Учебное пособие
.pdf
81
t4
t2
t1
t3
Вариант 8.
Задать начальную маркировку из двух фишек так, чтобы сеть Петри
была живой и безопасной. Построить дерево (граф) достижимости и выполнить анализ сети Петри.
Вариант 9.
Для каждой сети Петри построить дерево достижимости. В какой сети
Петри из начальной маркировки достижима тупиковая? Привести пример
последовательности запусков переходов, приводящей к тупиковой маркировке.
Вариант 10.
Построить дерево достижимости и выполнить анализ сети Петри.
Найти последовательность переходов (t1, t4, t1,…), приводящую к тупиковой маркировке.

82
0010
1100
0010
0001
D
0002
1000
1000
0110
D
Т е о р е т и ч е с к и е с в е д е н и я
Структура сети Петри
Структура cети Петри — это четверка C = (P, Т, I, O), где
P = {p1, p2,…, pn} — конечное множество позиций, n 0;
T = {t1, t2,…, tm} — конечное множество переходов, m 0;
I: T P — входная функция, сопоставляющая переходу мультимно-
жество его входных позиций;
О: T P — выходная функция, сопоставляющая переходу мультим-
ножество его выходных позиций.
Позиция pi P(tj) называется входной для перехода ti T, если pi
I(tj). Позиция pi P(tj) называется выходой для перехода ti T, если pi
O(tj).
Кратностью входной позиции pi переходу ti называется количе-
ство вхождений позиции pi в мультимножество I(tj) и обозначается
#(pi, I(tj)). Кратностью выходной позиции pi переходу ti называется
количество вхождений позиции pi в мультимножество O(tj) и обозначается #(pi, O(tj)).
Структура сети Петри может быть задана двумя матрицами: матрицей
входов D– и матрицей выходов D+. Строки этих матриц соответствуют
переходам, столбцы — позициям, а элементы определяются следующим
образом: D–
= #(pi, I(tj)), а D+
j, i
= #(pi, O(tj)).
j, i
Другой способ задания структуры сети Петри — графовый. Граф сети
Петри — это двудольный ориентированный мультиграф. Он имеет два
типа вершин, соответствующих позициям и переходам. Вершины, соответствующие позициям, изображаются кружочками, а вершины, соответствующие переходам — черточками. Каждому вхождению позиции pi в
мультимножество I(tj) соответствует дуга из вершины pi в вершину tj, а
каждому вхождению позиции pi в мультимножество O(tj) соответствует
дуга из вершины tj в вершину pi. Дуги соединяют только вершины различных типов. На рис. 28 приведен пример графа сети Петри, а ниже —
ее матричное представление:

83
p1
t4
t2
t1
t3
p4
p2 . p1
t4
t2
t1
t3
p4
p2
p3
p3
Рис. 28. Граф сети Петри
Маркировка и выполнение сетей Петри
Маркировка сети Петри C = (P, Т, I, O) — это функция, отображающая множество позиций P в множество неотрицательных N целых чисел:
: P N.
Маркировка может быть определена как n-вектор = (1, 2, …, n),
где n = | P |. Вектор определяет количество фишек в каждой позиции
сети Петри (i = ( pi)).
Структура сети Петри C и маркировка образуют маркированную
сеть Петри M =(C, ).
На графе сети Петри фишки изображаются точками в позициях. Если
количество фишек в позиции велико, то в позицию записывается соответствующее число. На рис. 29 представлена маркированная сеть Петри с
маркировкой = (1, 0, 0, 0).
Рис. 29. Маркированная сеть Петри
Маркировка в сети Петри может изменяться в результате запуска
разрешенного перехода. Переход ti в маркировке разрешен, если в
каждой входной позиции количество фишек не меньше кратности
позиции переходу. Переход t1 (рис. 29) разрешен, если в позиции p1 будет
хотя бы одна фишка, переход t2 разрешен, если в позиции p2 будет не
менее двух фишек, а переход t3 разрешен, если в позициях p3 и p4 будет

84
хотя бы по одной фишки. В сети Петри с маркировкой может не быть
разрешенных переходов или может быть несколько разрешенных
переходов, например в сети Петри (рис. 29) с маркировкой = (0, 0, 1, 0)
нет разрешенных переходов, а с маркировкой = (0, 2, 1, 1) разрешены
переходы t2, t3 и t4. Один из разрешенных переходов можно запустить. В
результате запуска разрешенного перехода изменяется маркировка: из
каждой входной позиции удаляется количество фишек, равное
кратности позиции переходу, а в каждую выходную позицию
добавляется количество фишек, равное кратности позиции переходу. В
позициях, “не связанных” с запускаемым переходом, количество фишек
не изменяется. Количество фишек в позиции pi после запуска перехода tj
можно определить по формуле: (pi) = (pi) – #(pi, I(tj)) + #(pi, O(tj)),
где — маркировка, в которой разрешен переход tj, а — маркировка,
полученная в результате запуска перехода tj. Маркировка называется
маркировкой, непосредственно достижимой из маркировки , если
существует разрешенный перехода tj в маркировке , запуск которого
приводит к маркировке . Если маркировка непосредственно
достижима из маркировки , а маркировка непосредственно
достижима из маркировки , то маркировка достижима из
маркировки .
Выполнение сети Петри заключается в последовательном запуске
разрешенных переходов. При выполнении сети Петри получаются две
последовательности: последовательность маркировок (0, 1, 2…) и
последовательность переходов (tj0, tj1, tj2,…). Маркировка
k+1
получается
из маркировки k запуском перехода tjk. Обе эти последовательности
представляют собой описание процесса выполнения сети Петри.
Определим одну из последовательностей запусков переходов в
маркированной сети Петри (рис. 29). В начальной маркировке (1, 0, 0, 0)
разрешен переход t1. При запуске этого перехода из входной позиции p1
одна фишка удаляется, а в выходные позиции p2 и p3 добавляются по
одной фишке. В результате получаем маркировку (0, 1, 1, 0). В этой
маркировке разрешен только переход t4. При его запуске одна фишка
удаляется из позиции p2 и две фишки добавляются в позицию p1.
Получаем маркировку (2, 0, 1, 0), в которой разрешен переход t1. При
запуске перехода t1 получаем маркировку (1, 1, 2, 0), в которой разрешены
переходы t1 и t4. Запустим переход t1 и получим маркировку (0, 2, 3, 0), в
которой разрешены переходы t2 и t4. Запустим переход t2 и получим
маркировку (0, 0, 3, 1). Далее можно три раза запустить переход t3. С
каждым запуском перехода t3 количество фишек в позиции p3
уменьшается на единицу. В результате придем к маркировке (0, 0, 0, 1), в
которой нет разрешенных переходов. Итак, мы получили

85
последовательность переходов (t1, t4, t1, t1, t2, t3, t3, t3) и
последовательность маркировок ((1, 0, 0, 0), (0, 1, 1, 0), (2, 0, 1, 0), (1, 1, 2,
0), (0, 2, 3, 0), (0, 0, 3, 1), (0, 0, 2, 1), (0, 0, 1, 1), (0, 0, 0, 1)).
Маркировка называется маркировкой, непосредственно
достижимой из маркировки , если существует разрешенный перехода tj
в маркировке , запуск которого приводит к маркировке . Если
маркировка непосредственно достижима из маркировки при запуске
разрешенного перехода tj, то будем писать = (, tj). Маркировка
называется маркировкой, достижимой из маркировки , если существует
последовательность разрешенных переходов = (tj0, tj1, tj2,…) в
маркировке , запуск которой приводит к маркировке . Если
маркировка достижима из маркировки при запуске
последовательности разрешенных переходов = (tj0, tj1, tj2,…), то будем
писать = (, ).
Пусть C — структура сети Петри, а 0 — начальная маркировка.
Множество всех маркировок, достижимых из начальной, образует
множество достижимости сети Петри. Множество достижимости
будем обозначать R(C, 0).Множество маркировок, достижимых из
произвольной маркировки будем обозначать R(C, ).
Свойства сетей Петри
Позиция pi в сети Петри M =(C, 0) называется k-ограниченной (или k-
безопасной), если (pi) k для всех из множества достижимости. Это
означает, что при любом выполнении сети Петри количество фишек в
позиции pi не превысит k. Границей позиции pi называется максимальное
из значений (pi) для всех из множества достижимости. Это означает,
что при каком либо выполнении сети Петри количество фишек в позиции
pi может достичь границы. Если позиция k-ограни-чена, то она и kограничена для всех k ≥ k. Поэтому можно выбрать k, равное максимуму
из границ каждой позиции, и определить сеть Петри k-ограниченной, если
каждая ее позиция k-ограничена.
Позиция pi в сети Петри M =(C, 0) называется ограниченной, если она
k-ограничена для некоторого k. Сеть Петри ограничена, если все ее
позиции ограничены.
Частным случаем ограниченности является безопасность. Позиция pi в
сети Петри M =(C, 0) называется безопасной, если она 1-ограниче-на.
Сеть Петри безопасна, если все ее позиции безопасны.
Сеть Петри называется строго сохраняющей, если сумма фишек в
каждой маркировке из множества достижимости одна и та же. Это

86
означает, что количество фишек в сети Петри не изменяется при любом
ходе ее выполнения.
Определим w как n-разрядный вектор взвешивания, где n —
количество позиций в сети Петри, в котором i-ый разряд соответствует
позиции pi, а его значение wi — весу одной фишки в позиции pi. Сеть
Петри называется сохраняющей по отношению к вектору взвешивания w,
если взвешенная сумма фишек в каждой маркировке из множества
достижимости одна и та же. Сеть Петри сохраняющая, если существует
вектор взвешивания, по отношению к которому она является
сохраняющей.
Переход tj в сети Петри M =(C, 0) называется потенциально живым в
маркировке , если существует достижимая из маркировка , в которой
переход tj разрешен. Переход tj называется потенциально живым в сети
Петри M =(C, 0), если он потенциально живой в маркировке 0. Переход
tj в сети Петри M =(C, 0) называется живым, если он потенциально
живой в любой маркировке из множества достижимости. Сеть Петри
называется живой, если все ее переходы живые.
Переход tj называется мертвым в маркировке , если он не является
потенциально живым в маркировке . Переход tj называется мертвым,
если он мертв в любой маркировке из множества достижимости. Переход
tj называется потенциально мертвым, если в множестве достижимости
существует маркировка , такая, что во всех маркировках, достижимых
из нее переход tj не разрешен. В этом случае маркировка называется t-
тупиковой для перехода tj. Если маркировка является t-тупиковой для
всех переходов сети Петри, то она называется тупиковой. В тупиковой
маркировке нет разрешенных переходов.
Если переход tj разрешен и при запуске любого другого перехода он
остается разрешенным, то такой переход называется устойчивым. Сеть
Петри, в которой все переходы устойчивы, называется устойчивой.
Две маркированные сети Петри M1 =(C1, 0) и M2 =(C2, 0) с
одинаковыми множествами позиций называются R-эквивалентными, если
равны их множества достижимости.
Две маркированные сети Петри M1 =(C1, 0) и M2 =(C2, 0) с
одинаковыми множествами переходов назовем T-эквивалентными, если
равны их множества последовательностей запусков переходов.
Задача достижимости. Определить, принадлежит ли заданная
маркировка множеству достижимости сети Петри M =(C, 0).
Задача покрываемости. Определить, принадлежит ли множеству
достижимости сети Петри M =(C, 0) маркировка , большая заданной

87
маркировки . Маркировка больше , если каждый элемент
маркировки не меньше соответствующего элемента маркировки .
Задача достижимости подмаркировки. Дано: маркированная сеть
Петри M =( C, 0), подмножество позиций P и маркировка . Определить,
принадлежит ли множеству достижимости сети Петри M =(C, 0)
маркировка , такая, что (pi) = (pi) для всех pi из подмножества P.
Задача покрываемости подмаркировки. Дано: маркированнкая сеть
Петри M =( C, 0), подмножество позиций P и маркировка . Определить,
принадлежит ли множеству достижимости сети Петри M =(C, 0)
маркировка , такая, что (pi) ≥ (pi) для всех pi из подмножества P.
Анализ сетей Петри
Анализ сети Петри заключается в определении ее свойств. Анализ
сети Петри обычно выполняется с помощью дерева достижимости, графа
достижимости или с помощью матричных уравнений.
Дерево достижимости
При построении дерева достижимости и анализе свойств сети Петри
будем использовать символом ω, обозначающий сколь угодно большое
натуральное число. Для этого символа определим следующие свойства:
1) ω > n, где — n любое натуральное число;
2) n + ω = ω + n = ω + ω = ω – n = ω – ω = ω;
3) ω · n = n · ω = ω;
4) 0 · ω = ω · 0 = 0.
Вершины дерева достижимости соответствуют маркировкам из
множества достижимости, либо векторам, содержащим символ ω (один
или более) и обозначающим некоторое бесконечное множество
маркировок. Дуги дерева достижимости соответствуют переходам сети
Петри. Корень дерева соответствует начальной маркировке. В вершинах
будем записывать маркировки, которым они соответствуют. Если x —
вершина дерева, то маркировку, которой соответствует эта вершина,
будем обозначать [x].
В процессе построения дерева достижимости каждая вершина
классифицируется как граничная, терминальная, дублирующая, или
внутренняя. Граничными являются вершины, еще не обработанные
алгоритмом; алгоритм переводит их в терминальные, дублирующие или
внутренние.
Алгоритм построения дерева достижимости сети Петри.

88
t2
t3
t3
t2
t4
t1
(1, 0, 0, 0)
t1
(0, 1, 1, 0)
(ω, 0, 1, 0)
(ω, ω, ω, 0)
(ω, ω, ω, ω)
(ω, ω, ω, ω)
(ω, ω, ω, 0)
(ω, ω, ω, 0)
t4
t1
t1
Рис. 30. Дерево достижимости сети Петри (рис. 29)
(ω, ω, ω, ω)
(ω, ω, ω, ω)
(ω, ω, ω, ω)
1. Создать корень дерева, записать в него начальную маркировку.
Считать его граничной вершиной.
2. Пока в дереве есть граничные вершины, выполнять п.3.
3. Пусть x — граничная вершина, которую нужно обработать.
Если в дереве имеется другая вершина y, не являющаяся
граничной, с такой же маркировкой как и вершина x ([y] = [x]),
то вершина x — дублирующая.
Если маркировка [x] тупиковая, то вершина x —
терминальная.
Для каждого перехода, разрешенного в [x], создать новую
вершину z. Маркировка [z] определяется следующим образом:
а) если [x]i = ω, то [z]i = ω.
б) если на пути от корня к вершине x существует вершина y с
[y] < ([x], tj) и [y]i < ([x], tj)i, то [z]i = ω.
в) в противном случае [z]i = ([x], tj)i.
Дуга, отмеченная переходом tj, направляется от вершины x к
вершине z. Вершина x переопределяется как внутренняя, а вершина
z становится граничной.
4. Конец алгоритма.
Этот алгоритм всегда останавливается и строит конечное дерево
достижимости.
Дерево достижимости сети Петри (рис. 29) представлено на рис. 30.

89
Построение дерева достижимости начинается с корня с начальной
маркировкой (1, 0, 0, 0). Это граничная вершина. В этой маркировке
разрешен только переход t1. Создаем новую вершину с маркировкой (0, 1,
1, 0), т. к. ((1, 0, 0, 0), t1) = (0, 1, 1, 0), и проводим дугу, отмеченную
переходом t1. Теперь корень становится внутренней вершиной, а
созданная вершина — граничной. В граничной вершине маркировка (0, 1,
1, 0), в ней разрешен переход t4. Создаем новую вершину с маркировкой
(ω , 0, 1, 0), т.к. ((0, 1, 1, 0), t4) = (2, 0, 1, 0), это маркировка больше, чем
маркировка в корне, причем больше первый элемент. Проводим дугу,
отмеченную переходом t4, в созданную вершину. Теперь вершина с
маркировкой (0, 1, 1, 0) становится внутренней, а созданная вершина —
граничной. В граничной вершине маркировка (ω , 0, 1, 0), в ней разрешен
переход t1. Создаем новую вершину с маркировкой (ω, ω, ω, 0), т. к. ((ω ,
0, 1, 0), t1) = (ω , 1, 2, 0), это маркировка больше маркировки (ω , 0, 1, 0),
причем больше второй и третий элементы. Проводим дугу, отмеченную
переходом t1, в созданную вершину. Теперь вершина с маркировкой (ω ,
0, 1, 0) становится внутренней, а созданная вершина — граничной. В
граничной вершине маркировка (ω, ω, ω, 0), в ней разрешены переходы t1,
t2 и t4. Для каждого перехода создаем новую вершину. Для перехода t1 —
вершину с маркировкой (ω, ω, ω, 0), т. к. ((ω, ω, ω, 0), t1) = (ω, ω, ω, 0).
Для перехода t2 — вершину с маркировкой (ω, ω, ω, ω), т. к. ((ω, ω, ω, 0),
t2) = (ω, ω, ω, 1) > (ω, ω, ω, 0). Для перехода t4 — вершину с маркировкой
(ω, ω, ω, 0), т. к. ((ω, ω, ω, 0), t4) = (ω, ω, ω, 0). Проводим дуги в новые
вершины и отмечаем их соответствующими переходами. Новые вершины
теперь считаем граничными, все остальные — внутренними. Две
граничные вершины с одинаковыми маркировками (ω, ω, ω, 0) являются
дублирующими и представляют собой листья дерева достижимости.
Рассматриваем граничную вершину с маркировкой (ω, ω, ω, ω). В ней
разрешены все переходы и запуск разрешенного перехода не изменяет
этой маркировки, поэтому добавляем четыре новые вершины с такой же
маркировкой, которые являются дублирующими. Обработанная
граничная вершина становится внутренней. Больше граничных вершин
нет, дерево достижимости построено.
Дерево достижимости позволяет определить следующие свойства сети
Петри.
Позиция pi в сети Петри M =(C, 0) является k-ограниченной, если
(pi) k для всех из вершин дерева достижимости. Границей позиции pi
является максимальное из значений (pi) для всех из вершин дерева
достижимости. Позиция pi не ограничена, если (pi) = ω хотя бы для
одной из вершин дерева достижимости. Сеть Петри ограничена, если в

90
sxw
ni
ii
,1
][
дереве достижимости нет ни одного символа ω. Сеть Петри не
ограничена, если в дереве достижимости есть хотя бы один символ ω.
Сеть Петри безопасна, если в дереве достижимости нет маркировки,
содержащей более одной фишки в позиции.
Сеть Петри строго сохраняющая, если сумма фишек в маркировках
всех вершин дерева достижимости одна и та же.
Сеть Петри является сохраняющей по отношению к вектору
взвешивания w, если взвешенная сумма фишек в маркировках всех
вершин дерева достижимости одна и та же.
С помощью дерева достижимости можно определить, существует ли
вектор взвешивания w с неотрицательными элементами, по отношению к
которому сеть Петри является сохраняющей, и, если существует, найти
его. Если сеть Петри неограниченна, то принять wi = 0, если [x]i = ω
хотя бы в одной вершине x дерева достижимости. Теперь, если вектор ω
существует, то и существует взвешенная сумма, обозначим ее s. Для
каждой маркировки [x] дерева достижимости составим уравнение
, где n — количество позиций. Добавим ограничения
wi > 0. В результате решения системы уравнений получим ограничения
для вектора весов. Если ограничения, накладываемые на веса, являются
чрезмерно жесткими, то вектор взвешивания не существует.
Переход tj является потенциально живым в сети Петри M =(C, 0),
если он метит хотя бы одну дугу в дереве достижимости, иначе он
мертвый.
С помощью дерева достижимости можно определить, может ли
заданный переход tj сработать сколь угодно большое число раз. Для этого
в исходную сеть Петри нужно добавить новую выходную позицию
перехода tj, которая не является входной для всех переходов. Если эта
позиция окажется неограниченной, то переход tj может сработать сколь
угодно большое число раз.
С помощью дерева достижимости можно решить задачу
покрываемости. Для этого достаточно сравнить заданную маркировку с
маркировками в вершинах дерева достижимости, и, если хотя бы одна
маркировка в дереве достижимости больше заданной, то она покрывается,
иначе — нет. Задача покрываемости подмаркировки решается аналогично
за исключением того, что при сравнении маркировок нужно учитывать
только позиции из заданного подмножества.
Граф достижимости
Дерево достижимости ограниченной сети Петри легко перестроить в
граф достиждимости. Для этого необходимо последовательно
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
