Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭ-2013-анн-130515.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.69 Mб
Скачать

Алгоритм построения дерева достижимости

Пусть x – граничная вершина.

  1. Если есть не граничная вершина y, такая, что [x]= [y], то вершина x граничная.

  2. Если для [x] ни один переход не разрешён (для tjT: ([x], tj) не определена), то вершина x терминальная.

  3. Для tjT, tj разрешённый, создать вершину z. Маркировка [z] определяется покомпонентно следующим образом (i – номер позиции):

    • если [x]i=, то [x]i=;

    • если на пути от корня к x встречается вершина y такая, что [y]<([x], tj), причём, [y]i<([x], tj)i, то [z]i=;

    • в противном случае [z]i=([x], tj)i .

Дуга tj направлена от x к z.

  1. Алгоритм останавливается, когда нет граничных вершин.

Пример

Для предыдущего примера (рис. 24.2) дерево достижимости выглядит следующим образом.

Р ис. 24.4. Дерево достижимости для МСП, представленной на рис. 1.

Построим дерево достижимости ещё для одной сети Петри.

Р ис. 24.5. Сеть Петри и её дерево достижимости.

Конец примера

9.7. Применение дерева достижимости сети Петри для проверки безопасности и ограниченности.

Сеть Петри безопасна, если число фишек в каждой позиции не превышает 1, и ограничена, если оно не больше фиксированного положительного числа k. Безопасность – частный случай ограниченности при k = 1. Эти свойства могут быть проверены с помощью дерева достижимости.

Утверждение. Сеть Петри ограничена тогда и только тогда, когда её дерево достижимости не содержит .

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

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

Если сеть Петри ограничена, она представляет систему конечных состояний, причём, дерево достижимости – граф состояний, содержащий вершины, соответствующие любым достижимым маркировкам. таким образом, вопросы анализа решаются простым перебором. Так, границы для любой вершины определяются как максимум чисел, стоящих в этой позиции. Если граница всех позиций не превышает 1, сеть безопасна.

Пример

Р ис. 25.1. Оценка границы дерева достижимости.

Очевидно, что граница дерева достижимости k=2.

Конец примера

С помощью дерева достижимости можно анализировать часть сети Петри. В этом случае рассматриваются лишь те компоненты вектора маркировки, которые соответствуют исследуемым позициям. Часть сети может быть ограниченной, тогда как сеть целиком – нет.

9.8. Применение дерева достижимости сети Петри для проверки покрываемости

Пусть дана сеть Петри C с начальной маркировкой . Задача покрываемости – определить, существует ли для произвольной маркировки маркировка ′′R(C, ) такая, что ′′ .

Для данной сети Петри с начальной маркировкой строится дерево достижимости. Затем просматриваются его вершины и ищется любая вершина x, для которой [x] . Если такой вершины нет, значит, маркировка не покрывается никакой достижимой маркировкой. Если вершина найдена, то соответствующая ей маркировка и есть искомая.

Путь от корня к вершине x определяет последовательность переходов, которую необходимо выполнить для решения задачи. Если покрывающая маркировка содержит символ , значит, в сети Петри есть цикл, который необходимо выполнить достаточное число раз для получения покрывающей маркировки. Если покрывающая маркировка содержит в более чем одной позиции, между соответствующими позициями сети может существовать взаимосвязь. В этом случае расчёт переходов для каждой позиции в отдельности невозможен. Тем не менее, существует алгоритм (Карп и Миллер), который даёт возможность определить минимальное количество переходов для нахождения покрытия данной маркировки.

Пример

Р ис. 26.1. Проверка покрываемости с помощью дерева достижимости.

Предположим, что проверяется покрываемость маркировки =(0,14,1,7). Существует вершина (01), которая удовлетворяет условию. Ясно, что нужно достаточное количество раз запустить переход t1, затем t2, затем несколько раз переход t3. Вопрос, сколько раз их нужно запускать. Конечно, можно сказать, что достаточно по 100 раз запустить каждый из них, получится покрывающая маркировка. Но если речь идёт о минимальном количестве запусков, приходим к выводу, что t1 необходимо запустить 21 раз, затем t2, затем t3 7 раз. Это обусловлено тем, что каждый запуск t3 уменьшает число фишек во второй позиции на 1. Таким образом, последовательность переходов – 21t1t27t3.

Конец примера