ISSN 2305-5626. Вестник МГТУ им. Н.Э. Баумана: электронное издание. 2013
7
Рис. 3. Пример сети Петри
При анализе дерева достижимости целесообразно также осуще-
ствить поиск всех циклов. Это обусловлено тем, что циклы, в кото-
рых не предусмотрен или из которых никогда не выполняется выход,
станут причиной зацикливания.
Для того чтобы найти цикл в дереве достижимости, просматри-
вают все его дублирующие вершины. От каждой такой вершины про-
водится «подъем» по родителям этой вершины к корню дерева до тех
пор, пока не найдется в дереве вершина такого же уровня вложенно-
сти с такой же маркировкой. Если такая вершина отсутствует, то
цикл не найден. На рис. 4 показан пример сети с циклом. При сраба-
тывании перехода
t
0 фишка попадет в цикл, из которого предусмот-
рен выход с помощью перехода
t
3.
Ситуация зацикливания программы возникает в случае, когда
вычисления проходят по некоторому замкнутому циклу, не оста-
навливаясь. Поиск зацикливаний подразумевает поиск циклов, из
которых нет выхода. Для обнаружения ситуации зацикливания в
дереве достижимости просматриваются все вершины. Если верши-
на является дублирующей и на данном уровне вложенности отсут-
ствует терминальная вершина, выполнение сети на этом уровне не
закончится никогда, а значит, имеет место зацикливание. В сети на
рис. 5 при срабатывании перехода
t
0 фишка попадает в цикл, из
которого никогда не выйдет. Таким образом, работа сети не будет
завершена.
1,2,3,4,5,6 8,9,10