Текст
                    22.18.
К 73
УДК 519.6
Котов В.Е. Сети Петри. — М.: Наука. Главная редакция физико-мате-
матической литературы. 1984. — 160 с.
Книга посвящена систематическому изложению теории сетей Петри,
которые относятся к числу наиболее важных и распространенных матема-
тических моделей в области обработки информации. Они обеспечивают
формальное описание как алгоритмов и программ, так и собственно вы-
числительных систем и их устройств, а также порождаемых вычислитель-
ных процессов, и используются для решения разнообразных задач анали-
за, синтеза и оптимизации.
" Ж"
© Издательство "Наука".
Главная редакция
физи ко-матем этической
литературы, 1984

ОГЛАВЛЕНИЕ Предисловие....................................................5 ГЛАВА 1 ОСНОВНЫЕ ПОНЯТИЯ...............................................9 §1.1. Системы, процессы, сети..................................9 § 1.2. Формальное определение сети Петри......................14 ГЛАВА 2 СВОЙСТВА СЕТЕЙ ПЕТРИ И ИХ АНАЛИЗ..............................20 §2.1. Основные свойства сетей Петри..........................20 § 2.2. Проблемы ограниченности и безопасности.................22 § 2.3. Проблемы Я-включения и Я-эквивалентности...............27 § 2.4. Проблемы достижимости и живости........................32 ГЛАВА 3 ЯЗЫКИ СЕТЕЙ ПЕТРИ.............................................35 § 3.1. Помеченные сети и классы языков сетей Петри............36 § 3.2. Характеризация классов языков сетей Петри..............43 § 3.3. Раэрешимью и неразрешимые свойства языков сетей Петри..47 ГЛАВА 4 ПОДКЛАССЫ СЕТЕЙ ПЕТРИ..........................................55 § 4.1. Ординарные сети Петри...................................55 § 4.2. Автоматные сети и синхронизационные графы..............58 § 4.3. Свободные сети.........................................62 ГЛАВА 5 ОБОБЩЕНИЯ СЕТЕЙ ПЕТРИ. . .....................................68 § 5.1. Счетчиковые автоматы...................................68 § 5.2. Ингибиторные сети и сети с приоритетами................71 § 5.3. Раскрашенные, синхронные и самомодифицируемые сети.....74 3
ГЛАВА 6 РЕГУЛЯРНЫЕ И ИЕРАРХИЧЕСКИЕ СЕТИ....................................78 § 6.1. Алгебра регулярных сетей....................................79 § 6.2. Некоторые свойства регулярных сетей.........................83 § 6.3. Иерархические сети..........................................89 § 6.4. Сравнение иерархических сетей с другими классами сетей......92 § 6.5. Сети с ожиданием и строго иерархические сети................96 ГЛАВА 7 СЕТИ-СИСТЕМЫ И СЕТИ-ПРОЦЕССЫ......................................101 § 7.1. Процессы...................................................102 § 7.2. Сетевое представление параллельных процессов...............104 § 7.3. Сетевое представление последовательно-альтернатианых процессов. . . .110 § 7.4. Сетевое представление параллельно-альтернативных процессов.111 § 7.5. Развартка сетей Петри в сети-лроцессы......................117 § 7.6. Сетевое представление параллельных процессов с конкуренцией.125 ГЛАВА 8 СЕТИ ПЕТРИ И ПРОГРАММИРОВАНИЕ.....................................128 § 8.1. Сети Петри и семантика структур управления.................128 § 8.2. Потоковые сети.............................................135 § 8.3. Типы управления........................................ . .138 § 8.4. Петри-машина...............................................445 Заключение. . ....................................................149 Литература........................................................150 Словарь терминов..................................................153
ПРЕДИСЛОВИЕ Среди большого числа понятий, которые возникли и исследуются в ки- бернетике и информатике, одним из наиболее общих является понятие дис- кретной динамической системы. Примерами дискретных систем могут слу- жить электронно-вычислительные машины, их элементы и устройства, сети ЭВМ, программы и операционные системы, системы сбора и автоматичес- кой обработки цифровой информации, системы автоматического управле- ния объектами и процессами, производственные системы дискретного ха- рактера, такие как сборочные линии и цеха, социально-экономические структуры и т.п. Изучение свойств дискретных систем и развитие методов их конструи- рования проводится с помощью различных математических моделей и мето- дов в зависимости от класса систем, степени детализации их структуры и свойств, а также от характера исследуемых проблем. В ходе развития науки, техники и производства появляются новые виды дискретных систем, их разнообразие и сложность постоянно растут. Чтобы успешно решать зада- чи анализа и синтеза все более сложных систем, необходимо дальнейшее развитие и совершенствование математических методов их исследования. Особую роль в теории дискретных информационных систем сыграло понятие автомата. Автомат является математической абстракцией еистемы (машины, устройства) переработки информации или процесса переработки. Автомат имеет конечное число входов, воспринимающих дискретную ин- формацию, т.е. информацию, изображаемую конечным числом символов из некоторого алфавита, и конечное число выходов для выдачи информации. Переработка информации осуществляется в дискретном времени, т.е. во времени, представленном в квантованной шкале. Процесс переработки мо- жет быть разбит на этапы, каждый из которых характеризуется некоторым состоянием, в котором находится автомат. Конечный автомат имеет конеч- ное число состояний. Если автомат моделирует систему сложной структуры, то он может быть представлен как совокупность взаимодействующих автоматов, моделирующих ее подсистемы (компоненты системы). Автома- ты, построенные из определенных компонентов по определенным прави- лам, часто представляют сетями, т.е. графами специального вида с допол- нительной интерпретацией вершин и дуг. Понятие конечного автомата в той форме, в какой оно применялось до Настоящего времени, существенно связано с понятиями алгоритма и последовательной алгоритмической системы. Для последних характе- 5
рен последовательный способ функционирования: система (автомат) пос- ледовательно переходит из состояния в состояние в соответствии с задан- ной функцией перехода и осуществляет очередной (последовательный) шаг алгоритма. По мере усложнения дискретных систем все большее внимание привле- кают "неалгоритмические" параллельные системы с недетерминированным поведением, в которых отдельные компоненты функционируют, в основ- ном, независимо, взаимодействуя друг с другом время от времени. Приме- ром могут служить такие системы параллельной обработки информации, как многопроцессорные вычислительные машины, параллельные програм- мы^ моделирующие параллельные дискретные системы и их функциониро- вание, мультипрограммные операционные системы, асинхронные электрон- ные схемы и т.п. Системы с параллельно функционирующими и асинхронно (т.е. в произ- вольные моменты времени) взаимодействующими компонентами не описы- ваются адекватно в терминах классической теории автоматов. Такие фунда- ментальные понятия, как состояние автомата (общее, глобальное текущее состояние системы) и глобальная функция перехода, не удобны для нагляд- ной и экономной характеризации недетерминированной динамики поведе- ния систем с локальными связями между независимыми параллельными процессами. Пример подобной ситуации: некоторое число пользователей вводит информацию в ЭВМ с разных терминалов, процессор ЭВМ занят трансляцией в машинный код, одновременно идет перепись файла с диска в буфер канала, связанного с печатающим устройством и т.п. В случае систем с параллелизмом и тогда, когда нас интересует не только и не столько функция, реализуемая системой, а ее структурные характерис- тики и свойства, модель системы должна быть структурно подобна самой системе. Это означает, что модель можно строить по частям, как и систему. Глобальные функции и понятия могут определяться на основе локальных, соответствующих компонентам, подсистемам и подпроцессам; связи и от- ношения между фрагментами модели подобны связям и отношениям меж- ду фрагментами системы. Наконец, немаловажным фактором является возможность представления моделей систем в форме, удобной и эффек- тивной для обработки их с помощью ЭВМ. Среди многих существующих методов описания и анализа дискретных параллельных систем выделился подход, который основан на использо- вании сетевых моделей, восходящих к сетям специального вида, пред- ложенным Карлом Петри [73] для моделирования асинхронных информа- ционных потоков в системах преобразования данных. В рамках этого подхода рассматривались различные версии и модификации сетей Петри (под разными названиями). Независимо предполагались также форма- лизмы, которые оказывались эквивалентными по своим свойствам и воз- можностям сетям Петри. Систематическое изучение свойств сетей Петри и возможности приме- нения их для решения прикладных задач, в основном — задач, связанных 6
с моделями и средствами параллельной обработки информации, началось на рубеже 60-х и 70-х годов. Хотя к настоящему времени фронт работ существенно расширился, теория сетей Петри еще не известна широко. Поэтому автор данной книги, который на собственном опыте убедился в том, что сети Петри являются не только удобным и полезным инстру- ментом для формулирования и решения проблем в области параллель- ных систем и процессов, но и источником новых, увлекательных и трудных математических задач, решил попытаться изложить ее основные понятия, проблемы и результаты в том виде, в каком они сформировались к насто- ящему времени 1. Возможно, что расширение круга специалистов, знако- мых с теорией сетей Петри, позволит интенсифицировать ее развитие и рас- ширить сферы ее приложений. В теории сетей Петри складываются три основных направления исследо- ваний: — общая теория сетей, которая выделяет и формализует базовые поня- тия, изучает связь между различными классами сетей и классами реальных систем, обосновывает метод исследования сетей, устанавливает связь аппа- рата сетей с другими разделами математики; — специальная теория сетей, которая изучает собственно сети Петри как математические объекты, их свойства, правила конструирования и преоб- разования; — приложения сетей к конкретным задачам анализа и синтеза дискрет- ных систем. Все три направления взаимосвязаны. Например, опыт применения сетей Петри к решению практических задач системотехники показывает, что по- верхностный подход, состоящий в прямолинейной интерпретации систем- ных объектов и сущностей в терминах сетей, без правильного понимания математических особенностей сетевого аппарата не дает ожидаемого резуль- тата. Поэтому в последнее время особое внимание уделяется изучению ба- зовых понятий сетей Петри, их связи с математическим аппаратом теории систем, теоретического программирования и т.п. Эта книга посвящена, в основном, второму направлению — специальной теории сетей Петри, так как именно с него началось интенсивное изучение сетей и их свойств. Понятия и результаты специальной теории образуют ядро всей теории в целом и отправную точку для исследований в общей 1 После того как начата была работа над этой книгой, которая задумывалась как введение в проблематику сетей Петри и их приложений, вышли монографии П. Штарке (83), В. Райзига (79) и Дж. Питерсона [72], посвященные сетям Петри.. Оказалось, что структура и содержание книги Питерсона, перевод которой готовит издательство "Мир", и первоначального варианта настоящей книги, близки друг другу. Поэтому последняя была существенно переработана. Исключен ряд вопросов и иллюстратив- ных примеров, хорошо и обстоятельно представленных в книге Питерсона, общий ак- цен* был смещен на математические аспекты теории сетей Петри. Кроме того, в книге Питерсона многие детали рассуждений и доказательств заменены ссылками на трудно- доступные в СССР источники. В данной книге изложение такого материала более зам- кнуто, с минимизацией внешних ссылок и с намерением не только сообщить факты, нои продемонстрировать технику исследований в области сетей Петри. 7
теории >И Приложениях. Элементы общей теории включены в материал главы 7. Некоторые приложения теории сетей Петри к проблемам програм- мирования описаны в заключительной главе. Автор считает своим приятным долгом выразить благодарность М. Ха- ку, привлекшему его внимание к задачам и перспективам сетевой пробле- матики, К- Петри, X. Генриху и А. Бесту за стимулирующие обсуждения планов и результатов работ в этой области, а также за их информационное Обеспечение. Особую благодарность автор выражает Л.А. Черкасовой за активное сотрудничество в работе над книгой и А.А. Болотову за ценные замечания. Т.С. Батырева и И.И. Сергеева оказали большую помощь в технической подготовке рукописи. В.Е. Котов
ГЛАВА 1 ОСНОВНЫЕ ПОНЯТИЯ Реальные дискретные системы состоят из разнообразных компонентов, различающихся физическими свойствами, функциональным назначением, сложностью внутренней структуры. Для того чтобы сконструировать адек- ватный математический аппарат, предназначенный для моделирования сис- тем, необходимо установить круг вопросов, которые должны решаться с помощью моделей, и осуществить переход от физических сущностей к их абстракциям, сначала в форме некоторого (ограниченного) на- бора концептуальных понятий, затем — в точных математических тер- минах. Следующие проблемы могут служить примерами тех задач, которые часто возникают при конструировании и исследовании дискретных систем: выполняет ли система те функции, для которых она предназначена; функ- ционирует ли она эффективно; могут ли в ней возникнуть ошибки и ава- рийные ситуации; имеются ли в ней потенциально узкие места;' можно ли упростить систему или заменить ее отдельные компоненты и подсистемы на более совершенные, не нарушая ееобщегофункционирования; можно ли из данных систем сконструировать более сложную, отвечающую заданнным требованиям, и т.д. Эти задачи носят в основном "качественный", а не ко- личественный характер. В этой главе описаны основные принципы сетевого подхода к моделиро- ванию дискретных систем и вводятся базовые понятия теории сетей Петри. § 1.1. Системы, процессы, сета Первый шаг на пути к построению модели дискретной системы — это аб- страгирование от конкретных физических и функциональных особенностей ее компонентов. Компоненты системы и их действия представляются аб- страктными событиями, каковыми могут быть, например, исполнение опе- ратора программы, переход триггера из состояния в состояние, прерывание в операционной системе, операция станка или конвейерной линии, заверше- ние этапа проекта и т.п. Событие может произойти (реализоваться) один раз, повториться много- кратно, порождая конкретные действия (реализации события), .или не про- изойти ни разу. Совокупность действий, возникающих как реализации со- бытий при функционировании дискретной системы, образует процесс, по- рождаемый этой системой. В общем случае одна и та же система может функционировать в одних и тех же условиях по-разному, порождая некоторое множество процессов, т.е. функционировать недетерминиро- ванно. Реальная система функционирует во времени, события происходят в не- которые моменты времени и длятся некоторое время. В синхронных моде- лях дискретных систем события явно привязаны к определенным момен- там или интервалам времени, в которые происходит одновременное изме- 9
нение состояний всех компонентов системы, трактуемое как изменение общего состояния системы. Смена состояний происходит последовательно. Этот подход к моделированию больших параллельных систем имеет ряд недостатков. Во-первых, в большой системе приходится учитывать состояние всех компонентов при каждой смене ее общего состояния, что делает модель громоздкой, особенно в тех случаях, когда локальные изменения каса- ются небольшого фрагмента системы. Во-вторых, при таком подходе исчезает информация о причинно-след- ственных связях между событиями в системе. Например, если два со- бытия при функционировании системы произошли одновременно, то мы не знаем, произошло ли это случайно или в этом факте скрыт какой-то функциональный смысл. Такие понятия, как конфликты между компо- нентами системы (из-за ресурсов) или ожидание одним из компонентов результатов работы других компонентов, трудно выражаются в терминах смены состояний системы. В-третьих, в так называемых асинхронных системах события могут происходить внутри неопределенно больших интервалов времени, зара- нее трудно или нельзя указать более точно время их начала, конца и дли- тельность. Выходом может служить отказ от введения в модели дискретных систем времени и тактированных последовательностей изменений состояний, а замена их — причинно-следственными связями между событиями. Моде- ли такого типа (в том числе сети Петри) называют асинхронными. (Если возникает необходимость осуществить привязку ко времени, то момен- ты или интервалы времени представляют как события. Таким образом, существенно синхронные системы могут описываться в терминах асинх- ронных моделей.) Замена временных связей причинно-следственными дает возможность более наглядно описать структурные особенности функцио- нирования систем. Отказ от времени приводит к тому, что события в асинхронной модели рассматриваются или как элементарные (неделимые, "мгновенные"), или как составные, имеющие некоторую внутреннюю структуру, образованную из "подсобытий". При неформальном описании функционирования асинхрон- ных* моделей, в частности, сетей Петри, мы будем привлекать временные от- ношения (раньше, позже, не одновременно и т.п.), когда это удобно или привычно, но они представляют собой лишь результаты причинно-следствен- ных отношений. Взаимодействие событий в больших асинхронных системах имеет, как правило, сложную динамическую структуру. Эти взаимодействия описыва- ются более просто, если указывать не непосредственные связи между Собы- тиями, а те ситуации, при которых данное событие может реализоваться. При этом глобальные ситуации в системе формируются с помощью локаль- ных операций, называемых условиями реализации событий. Условие имеет емкость: условие не выполнено (емкость равна 0), усло- вие выполнено (емкость равна 1), условие выполненр сл-кратным запасом (емкость равна п, где п — целое положительное число). Условие соответст- вует таким ситуациям в моделируемой системе, как наличие данного для операции в программе, состояние некоторого регистра в устройстве ЭВМ, наличие деталей на конвейере и т.п. Определенные сочетания условий разре- шают реализоваться некоторому событию (предусловия события), а реали- зация события изменяет некоторые условия (постусловия события), т.е. события взаимодействуют с условиями, а условия — с событиями. 10
Рис. 1.1. Таким образом, предполагается, что для решения указанных в начале главы задач достаточно представлять дискретные системы как структуры, образованные из элементов двух типов — событий и условий. В сетях Петри события и условия представлены абстрактными символа- ми из двух нелересекающихся алфавитов, называемых соответственно мно- жеством переходов и множеством мест. В графическом представлении се- тей переходы изображаются "барьерами", а места — кружками (рис. 1.1, 1.2 и 1.3). Условия-места и события-переходы связаны отношением непос- редственной зависимости (непосредственной причинно-следственной свя- зи) , которое изображается с помощью направленных дуг, ведущих из мест в переходы и из переходов в места. Мес- та, из которых ведут дуги на данный переход, называются его входными местами. Мес- та, на которые ведут дуги из данного перехода, называют- ся его выходными местами. В сети на рис.1.1,а места Pl И Pi являются входными для перехода G, а места р3 и р4 — выходными. В этом примере событие-переход tt непосредственно зависит от условий-мест pt и рг, а мес- та Рз и р4 непосредственно зависят от tp В этой же сети место Рг является вход- ным одновременно для двух переходов и t2, место р6 является выходным одно- временно для двух перехо- дов t3 иг4. Выполнение условия изо- бражается разметкой соот- ветствующего места, а имен- Рис. 1.2. 11
но помещением числа лилилфишек (маркеров) в это Место, где л > 0 — емкость условия: р О — условие р не выполнено, р О - условие р выполнено, р О — условие р имеет емкость 3, р ® — условие р имеет емкость 5. Динамика поведения моделируемой системы находит свое отражение в функционировании (работе) сети Петри. Неформально работу сети можно представить как совокупность локальных действий, которые называются срабатываниями переходов. Они соответствуют реализациям событий и при- водят к изменению разметки мест, т.е. к локальному изменению условий в системе. Переход может сработать, если выполнены все условия реализации со- ответствующего события. Например, для так называемых ординарных сетей Петри (частный случай принятой в настоящее время версии сетей Петри, введенный им в первой работе) все входные места перехода должны содер- жать хотя бы по одной фишке. Срабатывание перехода — неделимое действие, изменяющее разметку его входных и выходных мест следующим образом: из каждого входно- го места изымается по одной фишке, а в каждое выходное место добав- ляется по одной фишке. Тем самым реализация события, изображаемого переходом, изменяет состояние (емкость) непосредственно связанных с ним условий так, что емкость предусловий, вызвавших реализацию этого события, уменьшается, а емкость постусловий, на которые оно влияет, увеличивается. Переход t| на рис. 1.1, а может сработать, так как оба его входных места Pt ир2 содержат фишки, а после срабатывания ti разметка его входных и выходных мест изменяется так, как показано на рис. 1.1, б. Если два (и более) перехода могут сработать и они не имеют общих входных мест, то их срабатывания являются независимыми действиями, осуществляемыми в любой последовательности или параллельно. Если несколько переходов могут сработать и имеют общее входное мес- то (как переходы г> иг2 на рис. 1-1,а), то срабатывает только один, лю- бой из них. При этом может оказаться, что, сработав, этот переход лишит возможности сработать другие переходы (рис. 1.1, б иг). Таким способом в сети моделируется конфликт между событиями, когда реализация одного события может исключить возможность реализации других. В сети никак не указывается, каким образом конфликт следует фактически разрешить. Считается, что решение о том, какое из конфликтующих событий следует реализовать, принимается вне формализма сети, т.е. поведение сети носит недоопределенный недетерминированный характер. Аналогичный конфликт возникает в том случае, когда несколько переходов могут сработать и они имеют общие выходные места, как переходы г3 и t4 (рис. 1.1, б и в). В процессе функционирования сети происходит смена разметок мест как результат срабатывания ее переходов. Сеть останавливается, если ни один из ее переходов не может сработать (рис. 1.1, в и г). На рис. 1.2, а показан еще один пример сети Петри с некоторой начальной разметкой мест, при которой может сработать только переход f>, так как его единственное входное место Р\ содержит фишку. Переходы t2 , t$ и t6 имеют по одному входному месту, не содержащему фишки, поэтому они не могут сработать. Переходы t3 й Г4 имеют по два входных места. Это оз- начает, что общее условие реализации события, представленного переходом 12
tj или r4, является конъюнкцией из двух условий. Для каждого из ледохо- дов-событий выполнено лишь одно условие, поэтому ни г3, нй г4 не могут сработать. В результате срабатывания перехода tt место Pi лишится фишки, а места р3 ир5 получат по одной фишке (рис. 1.2, б). Изменилась разметка сети и при новой разметке могут сработать два перехода — t3 и t4. Срабатывание любого из них помещает фишку в место р7, после чего возможно срабаты- вание переходов ts и Г6. При этом, если срабатывают оба перехода t3 и г4до того, как сработают ts и t6, то местор7 будет содержать две фишки (рис. 1.2, в), в противном случае — одну. МестоРч — общее входное место для переходов ts и Г6. Еслир7 содержит одну фишку, то сможет сработать только один из переходов ts или гб, так как сработавший переход заберет единственную фишку. Если жер7 содержит две фишки, то возможны раз- личные продолжения работы сети: (1) сработает переход t$, затем — переход t6; (2) сработает переход гб, затем — переход Г5; (3) дважды сработает г$, at6 не может реализовать возможность срабаты- вания; (4) дважды сработает t6, a ts не сможет сработать ни разу. В первых двух случаях места pi и р2 получат по фишке, в последних двух случаях одно из местр, илир2 будет содержать две фишки, а второе не будет иметь фишек. Еслир] и р2 содержат по фишке, то срабатывание переходов h и Г2 приведет к разметке, которая уже возникла ранее в про- цессе функционирования сети (рис. 1.2, б), и последующая работа сети будет повторять описанную выше. Если же одно место содержит две фишки (например, р2), то сработать может (дважды) только один переход (в дан- ном случае г2), после чего каждый из переходов t3 и г4 имеет в одном входном месте две фишки, а в другом — ни одной (рис. 1.2, г). Возникает разметка, при которой ни один из переходов сети не может сработать, и сеть Петри останавливается. Анализ работы сети Петри, показанный на рис. 1.2, позволяет сделать некоторые выводы о функционировании моделируемой сетью системы (это может быть, например, фрагмент операционной системы, состоящей из параллельных циклических процессов, взаимодействующих друг с дру- гом) . В частности, можно отметить, что система способна функционировать циклически как угодно долго, но может и остановиться в "тупиковой" си- туации, показанной на рис. 1.2, г. Таким образом, сети Петри формализуют понятие абстрактной асинхрон- ной системы — динамической структуры из событий и условий. В общей теории сетей сеть Петри рассматривается как один из способов сетевого моделирования систем. Вводятся более общие сетевые модели. Их единую основу образует понятие неинтерпретированной ориентйрованной сети из условий и событий, которая описывает только статическое строение систе- мы (формальное определение сети дано в § 1.2). Самой общей в спектре динамических сетевых моделей является, по-видимому, условно-событий- ная система [37], которая представляет собой сеть, дополненную прави- лами изменений условий в результате реализации событий. Сеть Петри можно считать конкретизацией условно-событийной системы. Если сеть Петри описывает функциональную схему моделируемой сис- темы, то работа сети моделирует процесс, происходящий при функциони- ровании системы. Поскольку процесс протекает во времени, для его изу- чения нужно зафиксировать его в форме некоторой' "истории процесса", которую обычно отождествляют с самим процессом. Недетерминирован- 13
ный характер функционирования асинхронной системы и соответствую- щей сети Петри приводит к тому, что система может порождать не един- ственный процесс, а множество возможных процессов. Кроме того, процес- сы, порождаемые такими системами, являются параллельными. Возникает вопрос, каким образом формализовать понятие параллель- ного процесса, в какой системе понятий можно удобно и полно описывать параллельные процессы (а также множества параллельных процессов) и изучать их. Другими словами, возникает необходимость в разработке моде- лей параллельных процессов. Поскольку параллельный процесс можно рас- сматривать как дискретную динамическую систему, то в этом случае можно использовать сетевую модель, которая является частным случаем условно- событийной системы. Модели такого типа будем называть реализацион- ными сетями, или сетями-процессами. Они представляют собой сети, в об- щем случае бесконечные, с дополнительными ограничениями на структу- ру связей между условиями и событиями и на начальную разметку условий. Возможность описывать системы и порождаемые ими процессы в рамках одного и того же формализма сетей позволяет не только унифицировать математический аппарат теории систем и процессов, но и более наглядно выявлять связи между функциональными и операционными свойствами систем. Подробнее этот вопрос обсуждается в главе 7. § 1.2. Формальное определение сети Петри Зафиксируем основные математические обозначения, которые будем использовать в формальных определениях. {а, Ь,..., с} — множество, состоящее из элементов с; (а,Ь,..., с) — упорядоченное множество (набор), состоящее из элемен- тов а,Ь,..., с; (х|Д(х)} — множество значений переменной х, удовлетворяющих усло- вию Д(х); х,..., у ё X — элементы х,..., у принадлежат множеству X; X,... ,Y CZ — множества X,..., Y являются частью (подмножества- ми) множества Z; (£,<£ — отрицание отношений ё и Q; IX j — мощность (число элементов) множества X; ф — пустое множество; U, О, \ — теоретико-множественные операции объединения, пересечения и разности множеств; Д| X ... X А„ — декартово произведение множеств At,,.., А„; Ап = Д X . .ХД, п > 2; п N - множество всех натуральных чисел (включая 0); \/,Л, ~1=*— логические операции дизъюнкции, конъюнкции, отрицания и импликации; А *=> В — А истинно тогда и только тогда, когда истинно В; Э, V — кванторы существования и всеобщности (например^хё Х,3у ё е У; Д (х, у) — для любого х, принадлежащего X, существует у. принадле- жащее Y, такое, что истинно условие А (х, у)). Пусть X, Y — множества, R ё X X X — бинарное отношение на X, и х,у&Х. xRy — х и у находятся в отношении R; RJ1 — обращение отношения R, т.е._уЯ-1х, если и только если xRy; R - дополнение отношения R, т.е. R = {X X X)\R; 14
R о S - суперпозиция отношений R и 5,т.е. Яо$ = 1 (х,у) \Зг&Х: xRzAzSy}; Rn = Я о ... ° fl, п > 2; п /?+= U Rn, где п G N, — транзитивное замыкание отношения R. п = о Для функции f запись f: X -* Y указывает область определения функ- ции X и область ее значений Y. Конечное множество символов А =! а, Ь,...„ с} образует алфавит. Сло- вом в алфавите А называется некоторая последовательность выписанных подряд символов из алфавита А (например, abbacb}. Конкатенацией двух слов а и 0 в алфавите А называется слово а/3, т.е. слово, полученное выписыванием подряд слов а и 0 (слова а и /3 являются в этом случае подсловами слова ар). Через А* обозначим множество всех слов в алфа- вите А, через X — пустое слово, т.е. слово, не содержащее'ни одного сим- вола. Через ап и ап, где а — символ, а — слово или подслово, обознача- ют слова (подслова) аа. .. а и аа ,.. а. Если слово представляет собой п л конкатенацию Ру, то Р называют префиксом, а у — суффиксом слова Ру. Если А и В — алфавиты такие, что А 2 В. то слово Р в алфавите В, полу- ченное вычеркиванием из слова а в алфавите А всех символов из А \ В, бупетл называть проекцией слова а в алфавите А на алфавит В. Через А1Ы = N U (ш) обозначим расширенное множество натуральных чисел, где ш — элемент, удовлетворяющий для любого N следующим свойствам: 1) w >п, 2)n + cj = a>+n = w+ w = cj — пж ш — со = со, 3) w • п = п • со = w, 4) 0 • со = со • 0 = 0. Пусть К = (Дг,,..., kr), L = (/,,... ,/,)6N' — векторы из г чисел. Ариф- метические операции распространим на векторы, считая их покомпонентны- ми операциями. Например, К + L = (к i + /,„..., kr +/,). Отношения же пе- реопределим для векторов как глобальные отношения, с использованием кванторов существования и всеобщности. Например, {истина, если V 7, 1 </<г: ki^L, ложь в противном случае. f истина, если V 7, 1 < 7 < г: к, = /„ (*=£) = ( ложь в противном случае, ( истина,если (V7, 1<7<г: к><1:} Л (37, 1<7<г: X/</.-), (*<£) = ' ‘ ( ложь в противном случае. Сетью будем называть тройку (Р, T,F) где Р — непустое множество элементов сети, называемых местами, Т — непустое множество элементов сети, называемых переходами, F £ Р X Т UT X Р — отношение инцидентности, и для (Р, Т, F) выполне- ны следующие условия: А1) Р П Т = ф (множества мест и переходов не пересекаются); А2) (Р&ф) Д (Vx G РОТ, Зу & Р ОТ-. xFyXJ yFx) (т.е. любой эле- мент сети инцидентен хотя бы одному элементу'другого типа); 15
АЗ) если для произвольного элемента сети х ё X обозначить через ‘х множество его входных элементов {у I yFx}, а через х‘ — множество его выходных элементов (у | xFy) , то VPi,Pi fp, = 'p2)A(pi =р2) => (р1 = р2), (т.е. сеть не содержит пары мест, которые инцидентны одному и тому же множеству переходов). Графическим представлением сети служит двудольный ориентированный граф (в общем случае бесконечный) с двумя типами вершин; вершины- места изображаются кружочками, вершины-переходы — барьерами (а так- же прямоугольниками или квадратами, если переходы являются неэлемен- тарными объектами, см. главу 6). Из вершины х в вершину у ведет дуга, если и только если xFy. На основе понятия сети, которая описывает только статическую тополо- гию моделируемого процесса или системы, вводятся динамические сете- вые структуры, в которых местам приписываются специальные разметки, моделирующие выполнение условия, и с сетью связывается понятие ее функционирования, изменяющего эти разметки (условия) в результате так называемых срабатываний переходов. К таким динамическим сетям относятся сети Петри, их различные варианты, обобщения и частные случаи. Сеть Петри — это набор N = {Р, Т, F, W, Мо}, где IP, Т, F) — конечная сеть (множество X = Р U Т конечно), a W: F N\ {0} и Мо: Р -» N — две функции, называемые соответственно кратностью дуг и начальной раз- меткой. Первая сопоставляет каждой дуге число л > 0 (кратность дуги). Если л > 1, то в графическом представлении сети число л выписывается ря- дом с короткой чертой, пересекающей дугу. Часто такая дуга будет также заменяться пучком из л дуг, соединяющих соответствующие элементы сети. Условим.ся никак не отмечать кратность дуг, равную 1. Такую сеть будем называть ординарной (см. § 4.1). Вторая функция сопоставляет каждому месту р ё Р некоторое число Мо (р) ё N (разметка места). В графическом представлении сети разметка места р изображается помещением в верши- ну-кружок числа Мо (р) или, если это число невелико, соответствующего числа точек (фишек). Функционирование сети Петри описывается формально с помощью мно- жества последовательностей срабатываний и множества достижимых в сети разметок. Эти понятия определяются через правила срабатывания перехо- дов сети. Разметка сети N — это функция М: Р -*N. Если предположить, что все места сети /Vстрого упорядочены каким-либо образом, т.е.Р = (р1#... ,рл), то разметку М сети (в том числе начальную разметку) можно задать как вектор чисел М = (л?1( .... тп) такой, что для любого /, 1 </ <л, л?,- = = Мip/). Если Р' ={ рц,..., pik} — подмножество мест изР, то условимся через М (А*) обозначать множество разметок {М (р^ ), ... ,М lPik)} Если Р представить как вектор Р' = (р^,..., р//£), то М (А') обозначает вектор из множества N*, называемый проекцией разметки М на Pf. На основе отношения инцидентности F и функции кратности дуг W можно ввести функцию инцидентности Ft PXTUTX/’-»N, которая определяет- ся как In, если xFyA(W(x, у} = л), 0, если 1(xFy). 16
Если места сети упорядочены, то можно каждому переходу t сопоставить два целочисленных вектора ‘F(t) и F‘(t) длиной п, гцеп = | Р |: 'F(t) = (61х..., Ьп}, где bt = F(pi, t), F'(t) = (bt,...,bn), где bi = F(t,Pi). Переход t может сработать при некоторой разметке М сети /V, если Vo <= 't: М(р) > F (р, г), т.е. каждое входное место р перехода г имеет разметку, не меньшую, чем кратность дуги; соединяющей р и г. Это условие можно переписать в векторной форме следующим образом: M>'F(t}. Для ординарной сети Петри условие срабатывания перехода означает, что любое входное место этого перехода содержит хотя бы одну фишку, т.е. имеет ненулевую разметку. Срабатывание перехода Г при разметке М порождает разметку М' по сле- дующему правилу: VpGA»: M'(p)=M(p)-F(p,t)+F(t,p), т.е. М' = M-F(t) + F’(t). Таким образом, срабатывание перехода t изменяет разметку так, что разметка каждого его входного места р уменьшается на F {р, г), т.е. на кратность дуги, соединяющей р и f, а-разметка каждого его выходного места увеличивается на F (f, р), т.е. на кратность дуги, соединяющей f и р. На множестве разметок можно ввести отношение [ ) непосредственного следования разметок: М[>М'«=»Эге Т: (M>'F(t))/\(M’= M-'F(t)+F'(t)). Будем использовать уточняющее обозначение M[t) М', если М' непо- средственно следует после М в результате срабатывания перехода t. Говорят, что разметка М' достижима от разметки М, если существует последовательность разметок М, Mif М2, ..., М' и слово т = ftt2 . • - tk в алфавите Т такие, что M{ti >МХ [t2)M2 ... [t* )M'. Слово т в этом случае называется последовательностью срабатываний, ведущих от М кМ'. Обобщим отношения непосредственного следования до отношения "М' достижима от М", испоЛьзуя обозначение М [) М' или М[т} М', если уточняется последовательность срабатываний. (Последо- вательность т может быть пустой, т.е. М достижима от М.) Множество {М' | М[) М'} разметок, достижимых в сети Л/от разметки М, обозначим через R (N, М). Множество R (N) = R (N, Мо I, т.е. множество всех разметок, достижимых в N от начальной разметки Мо, называют мно- жеством достижимых разметок сети N. (Заметим, что М G RW, М\ и Мо G «(/¥).) Множеством последовательностей срабатываний сети N, или свободным языком сети N, называется множество /.(Л/)={т£Г*|9Мея(Л/): М0[т>М}, т.е. множество всех последовательностей срабатываний, ведущих от Мо к каждой достижимой в N разметке. На рис. 1.3 изображена сеть Петри, на примере которой поясним данные выше определения. В этой сети Р = (р,, р2,р3}, Т = {гм, t2, t3, t4}. Функ- 17
ция инцидентности F задается с помощью следующих двух таблиц, в ко- торых на пересечении строки х и столбца у стоит число Л (х, у): Pt Рг Рз i 1 0 0 0 1 0 2 0 1 0 0 Д| 1 1 0 0 Рз 0 2 0 0 Рз 0 0 1 1 Начальная разметка Мо задается следующим образом: Af0<Pi) = 1. Мо {р2) = 2, Мй (р3) = 0 или, в векторной форме: Л40 = (1, 2, 0). При разметке Мо могут сработать переходы и t2, так как Мо = = (1,2, 0) > ‘F (Г 1) =? (1, 0, 0), Мо > Ua) ~ И,2,0). Переходы Г3 и t4 не могут сработать, так как Мо F{t3) = (0, 0, 1), Мо > ’F(t4) = (0, 0, 1). В результате срабатывания перехода разметка Мо сменяется на раз- метку (1, 3, 0}, а в результате срабатывания перехода г2 разметка Мо сме- няется на разметку (0,0,1). Обе новые разметки непосредственно следуют после Мо в рассматриваемой сети. Можно представить возможные измене- ния разметок сети N, происходящие в результате срабатывания ее перехо- дов, в виде графа разметок — ориентированного графа, множество вершин которого образовано множеством R W достижимых в N разметок. Из вершины М в вершину М' ведет дуга, помеченная символом перехода Г, если и только если М [г > м'. На рис. 1.4 показан начальный фрагмент графа разметок сети на рис. 1.3. Этот граф бесконечен, так как множество Я (Л/) достижимых разметок бесконечно для рассматриваемой сети. Разметка М ё R(M называется тупиковой, если в сети N не существует ни одного перехода, который может сработать при этой разметке. Для рассматриваемой сети тупи- ковыми являются разметки (0,2, 0), (0,3, 0), (0,4,0).....(0,л, 0), ... Легко видеть, что если выделить путь по дугам гра- фа разметок, начинающийся в вершине М и заканчиваю- щийся в вершине Ми выпи- сать подряд все встречаю- щиеся символы переходов, то полученное слово обра- зует последовательность сра- батываний, ведущих от М к М\ Множество всех слов, полученных выписыванием символов переходов вдоль путей, начинающихся в Мо, образует множество после- довательностей срабатыва- ний сети, или ее свободный язык. Так, язык рассматри- ваемой сети включает слова {X, ti, t2, 11?1, tit2, t2t3, tjt4,ОДЬлОДЬ/ОДГз/ й йй. 18
Wi, titi Mi, Mi Mi, M1M3, M1M4, t|t2t4ti, ...}. Следующая тео- рема характеризует эффект увеличения начальной разметки в сети. Теорема 1.1. Пусть N = (Р, Т, F, W, Мо), /V' = (Р, Т, F, W, Мо + К). где Тогда a) M£R(N)=>(M + K)&R(N'); б) L(N)C L(N')-, в} Mi [т)М2 => (Mi + К) [тХМг + К). Доказательство. Воспользуемся индукцией по длине срабаты- ваемых последовательностей. Прежде всего Мо G R (/V) и (Мо + К) G G R(N"). Заметим также, что Мо [Х> Мо, где X - пустая последователь- ность, XG£.(/V) и X G L (N'). Предположим, что Мо [т) М в N и (Мо + К) [т) (М + К). Покажем, что VtGT: M[t>M'-> (М + К) [t> (М' + К). Если t может сработать при разметке М в сети N, т.е. М 'F (г), то t может сработать и при разметке (М+К) > М в сети N'. Это означает, что последо- вательность срабатываний тГ принадлежит как L (N), так и L (N1). (Если t не может сработать при М bN , то это не исключает возможности срабаты- вания Г при (М + К) > М в сети N'.) После срабатывания перехода t в N и соответственно в N' разметка в обеих сетях изменяется следующим об- разом: М -'F(t)+F(t)~M', (М + К)- ’F(t) + F'(t) = (М - ’F(t) + F‘ (t)) + К = M' + К. Тем самым установлена справедливость соотношений а) и б). Аналогично можно убедиться в том, что имеет место соотношение в) .□
ГЛАВА 2 СВОЙСТВА СЕТЕЙ ПЕТРИ И ИХ АНАЛИЗ Для постановок задач анализа сетей Петри прежде всего необходимо указать и формально определить те свойства сетей, которые целесооб- разно анализировать. Естественно, что при выборе таких свойств глав- ную роль играет ориентация на практические задачи, возникающие при исследовании моделируемых сетями дискретных систем. Когда такие свойства выделены, ставится вопрос о возможности их автоматического распознавания в произвольных сетях Петри или в некоторых частных случаях сетей. Наконец, третий этап исследований состоит в нахождении оптимальных алгоритмов распознавания тех свойств сетей, которые ока- зываются принципиально распознаваемыми. § 2.1. Основные свойства сетей Петри Первое из рассматриваемых ниже свойств сетей Петри связано с ог- раниченной емкостью реальных условий реализаций событий. Действи- тельно, из определения правил срабатывания переходов сети следует, что для реализации события, моделируемого некоторым переходом, доста- точно, чтобы каждое его входное место-условие содержало некоторое ко- нечное число фишек, равное кратности дуги, соединяющей его с перехо- дом. Однако при работе сети Петри общего вида некоторые ее места мо- гут накапливать неограниченное число фишек (например, место р2 в сети на рис. 1.3). Если интерпретировать места как накопители (буферы) данных, сигналов или деталей в моделируемых системах, то естественно потребовать, что при любом варианте функционирования этих систем не происходило бы переполнение накопителей, которые в реальных си- туациях имеют конечную, фиксированную емкость. Следующие понятия формализуют такие требования. Место р в сети Петри N= (Р, Т, F, W, Мо} называется ограниченным, если существует число п такое, что для любой достижимой в сети размет- ки М справедливо неравенство М(р} <п. Сеть Nназывается ограниченной сетью, если любое ее место ограничено. Ясно, что множество достижимых разметок R (/V) конечно, если и только если /V — ограниченная сеть. В сети на рис. 1.3 места и р3 ограничены, так как каждое из них может со- держать не более одной фишки. В то же время место р2 не ограниче- но, и поэтому эта сеть не является ограниченной. Сеть на рис. 1.2 огра- ничена: любое место в ней не может содержать более 2 фишек. Место р называется безопасным, если VMGR[N): Mlp}^; соответственно сеть безопасна, если все ее места безопасны. Любая достижимая в безопасной сети разметка представляет собой вектор из 0 и 1. Сети на рис. 1.2 и 13 не являются безопасными (в отличие от сети на рис. 2.4, см. ниже). Ограниченность и безопасность характеризуют емкость условий: в дис- кретной информационной системе, моделируемой соответствующими сетями, можно ограничить емкость накопителей, необходимых для хране- 20
ния условий наступления событий. Родственным этим понятиям является понятие консервативной сети, в которой сумма фишек во всех ее местах остается постоянной при работе сети, т.е. S Mi{p)= S M2(p}. pep pep В консервативной сети каждый переход консервативен в том смысле, что его срабатывание не меняет число фишек в сети, т.е. Г f | = 11 ‘ |. Переход в сети может сработать при определенных условиях, связанных с разметкой его входных мест. В общем случае может оказаться, что для некоторого перехода условие его срабатывания никогда не выполняется, как бы ни функционировала сеть. Такой переход — лишний в сети, его мож- но исключить без ущерба для работы сети. Может случиться также, что пос- ле некоторой последовательности срабатываний переходов сети и соответ- ствующих изменений ее разметки некоторые переходы, в том числе те, которые уже срабатывали, больше никогда не сработают, какие бы вариан- ты достижимых в сети разметок не возникали. Это означает, что в модели- руемых системах могут появляться ситуации, тупиковые для некоторых событий, "исключающие их Из дальнейшей игры". Например, в операцион- ных системах подобные случаи имеют место при взаимных блокировках процессов (deadlocks) (см. главу 8). Следующие определения связаны с выявлением таких ситуаций в сетях Петри. Переход г в сети Петри N = (Я, Т, F, W, Мо} называется потенциально живым при разметке M^ R(N], если Э/И'еЛ('Л/,Л#): M’>'F(t}, т.е. существует достижимая от М разметка М', при которой переход t мо- жет сработать. Если М = М0, то t называется потенциально живым в сети N. Переход t — мертвый при М, если он не является потенциально живым при М. Переход t — мертвый, если он мертв при любой достижимой в сети разметке. Переход t в сети Петри N называется живым, если V/WG«(/V), 3M'G R(N, МУ. М> 'F(t), т.е. переход t является потенциально живым при любой достижимой в сети /V разметке. Переход г — потенциально мертвый, если существует М G R(N} такая, что при любой разметке М' G R (Л/, М} переход t не может сработать. Разметка М в этом случае называется t-тупиковой; если она г-тупиковая для всех t G Т, то она является тупиковой. Если М — тупиковая разметка, то R(N, М) = {М}. Сеть называется живой, если все ее переходы живы. В сети на рис. 1.2 все переходы потенциально живы и все переходы по- тенциально мертвы, так как в ней достижима тупиковая разметка (рис. 1.2, г). Эта сеть не может быть живой, так как содержит потенциаль- но мертвые переходы. Сеть на рис. 1.3 также не является живой, так как в ней достижимы тупиковые разметки вида (0, л, 0), п > 0. Переход f называется устойчивым в сети /V, если Vt'er\(t), VAfGfl(/V): (М> 'F(t}}MM> 'F(t'}}=> [М> ‘Fit} + 'Fit'}}, т.е. если переход t может сработать, то никакой другой переход не может, сработав, лишить его этой возможности. Сеть /V устойчива, если все ее пе- реходы устойчивы. 21
8 сети на рис. 1.2 устойчивы переходы t1# t2, t3, t4, в сети на рис. 13 устойчив только переход t2. Однако обе сети не устойчивы, так как в первой сети не устойчивы переходы ts,t6, во второй — t,, t3, t4. Конечная цель специальной теории сетей Петри — автоматический анализ свойств сетей, их автоматические синтез и преобразования, на основании чего могут быть построены практические алгоритмы анализа, синтеза и преобразований дискретных систем, моделируемых сетями. В частности, полезно найти алгоритмы, с помощью которых для любой предъявленной сети можно установить, обладает ли она интересующим нас свойством — является ли она ограниченной, живой, устойчивой и т.п. В первую очередь нужно выяснить существование таких алгоритмов. Эти вопросы формули- руются как массовые алгоритмические проблемы для сетей: проблема ограниченности (существует ли алгоритм, который позволяет узнать, яв- ляется ли данная сеть ограниченной), проблема потенциальной живости переходов, проблема живости сетей, проблема устойчивости, проблема безопасности. Говорят, что проблема разрешима, если соответствующий алгоритм распознавания свойств существует, в противном случае пробле- ма неразрешима. Большинство из перечисленных выше проблем связано с определением возможности достижения некоторых специальных разметок в сети (напри- мер, с достижением t-тупиковых разметок для данного перехода г), т.е. с проблемой достижимости заданной разметки. В этой проблеме ставится вопрос о существовании алгоритма, с помощью которого можно узнать для произвольной сети Л/ и произвольной разметки М, принадлежит ли М мно- жеству R {N}. Ниже будет показано, например, что проблемы живости и достижимости эквивалентны в том смысле, что решение одной из них авто- матически решает другую. Несколько особняком стоят проблемы Я-включения и Я-эквивалентнос- ти сетей Петри. Пусть задан класс сетей, которые имеют одно и то же мно- жество мест (или их множества мест изоморфны). В первом случае необхо- димо выяснить существование алгоритма, устанавливающего для любых двух сетей из этого класса, имеет ли место соотношение Я )С Я (Л/2), во втором — Я (Л/,) = Я(Л/2). § 2.2. Проблемы ограниченности и безопасности Некоторое место р в сети Л/ может оказаться неограниченным по двум причинам. Первая заключается в следующем. Пусть свободный язык сети L (Л/) содержит последовательность срабатываний т = т(т2 такую, что Wofri >Л/1)ЛШ, 1т2 )М2)Л(М2 >/И1)Л(/И2(р)>/И1(р)). Поскольку М2 > Af,, то любая подпоследовательность срабатываний, начинающаяся при разметке Мj, может повториться и начиная с разметки М2. Это означает, что любая последовательность вида rtr2 также принадле- жит L (Л/), каким бы большим не было л. Следовательно, разметка места р может безгранично расти. Например, для местар2 в сети на рис. 2.1 сущест- вует т = Xtj, где X — пустое слово, такое, что ---"Од Wo = d.0,0,0) [Г] >Л#, = (1,1,0,0))Л I О Т О (Л#’ М° 1 Л (Л#’7₽2 > = 1 > Мо (Р2 I = 0). Рг Ра Однако место р4 не ограничено по другой Рис 2.1. причине, так как нельзя найти пару достижи- 22
1.2,0 мых в этой сети разметок Mt и М2 таких, что (М2 > Mi) /\ (М2 (р4) > > М1(р4)), хотя и ясно, что последовательности срабатываний вида t"t2t" ведут к накоплению любого числа п фишек в р4. Можно отметить следующую разницу в неограниченности мест р2 и р4: в р2 может быть "бесконечное" число фишек, а в р4 — сколь угодно большое, но конечное число фишек, так как переход г3 может сработать только конечное число раз, не большее, чем число срабатываний перехода t,. Таким образом, неограниченность места р4 "вторична" по отношению к неограниченности места р2. Выше, в §1.2, было дано определение графа разметок сети Петри, ха- рактеризующего динамику ее функционирования. Исследование проблемы ограниченности сводится к анализу графа другого типа, а именно — покры- вающего дерева сети. Для любой сети такой граф конечен и может быть построен с помощью следующей процедуры: 1) Первоначально предполагается, что дерево содержит единственную вершину-корень Мй и не имеет дуг. 2) Пусть М — вершина дерева, которая еще не объявлена листом (т.е. вершиной, из которой не исходит ни одна дуга), но в дереве нет исходящих из нее дуг. Возможны четыре случая. а) Ни один из переходов сети не может сработать при разметке М, т.е. Vt € Т: М ’F(t). В этом случае вершина М объявляется листом. б) На пути из корня дерева в вершину М существует вершина М' такая, что М =М'. Вершина М объявляется листом. в) На пути из корня дерева в вершину М существует вершина Af' такая, что М' < М. Для любого места р такого, что М' (р) < М (р), значение, соот- ветствующей координаты М заменяется на ы и вершина М объявляется со -листом. г) Если ни один из вышеперечисленных случаев не им£ет места, то М — внутренняя вершина дерева. Для каждого перехода t G Т такого, что М > > 'F (г), в дерево добавляется новая вершина М’ = М - "F (t) + F' (г) и дуга, ведущая из М в Мпомеченная символом t. На рис. 2.2,а показано покрывающее дерево для сети Петри, изображен- ной на рис. 1.3, а на рис. 2.2,6 — для сети на рис. 2.1. Из правил построения покрывающего дерева для сети Петри следует, что вершины дерева представляют собой векторы из множества N£, = = X ... X где п — число мест в сети. Введем несколько определе- п ний и отметим некоторые свойства множеств и последовательностей векто- ров из N” и N£. Для отношения частичного порядка <множество N” явля- ется решеткой, а множество N^, является полной решеткой [13] и любое 23
подмножество X Q имеет единственную наименьшую верхнюю грань (VZ-GX: (£< vnAW'Giy" : (VtGX: (£. <V') =МУ< И). Цепью С в N£> называется последовательность (Lt, Lit ... ) такая, что V / > 1, V/ > 1: L, ^Li + i Lj. Множество X G N£ замкнуто, если любая цепь в X содержит свою наименьшую верхнюю грань. Поскольку — полная решетка, любая цепь в N£> замкнута, в то время как беско- нечные цепи из N” не содержат своих наименьших верхних граней. Множество XQ N£, монотонно, если VZ.GX, V£.'GN": L' < L «• L'&X. Для множества N" его множество максимальных элементов опре- деляется как {L&X 1П(Э£.'€Х: О L Л L' ¥=£.)) . Для множества X С его замыканием называется наименьшее замкну- тое множество из N^, содержащее X. Лемма 2.1. Любое бесконечное подмножество множества N£ содер- жит бесконечную цепь. Доказательство. Любая бесконечная цепь из N" содержит беско- нечную неубывающую последовательность. Любое бесконечное подмножест- во множества можно упорядочить так, чтобы оно не содержало одина- ковых векторов. Из полученной бесконечной последовательности выби- рается бесконечная подпоследовательность так, чтобы все первые координаты векторов следовали в неубывающем порядке. Из этой под- последовательности выбирается такая, что все вторые координаты следуют в неубывающем порядке, и т.д. для всех п координат. Результатом является бесконечная последовательность, не убывающая в каждой координате й не содержащая одинаковых векторов. □ Лемма 2.2. Любое множество взаимно несравнимых (по отношениям С, >, =) векторов из N^, конечно. Доказательство. Из леммы 2.1 следует, что любая бесконечная цепь в множестве N£ состоит из разных сравнимых по упомянутым отно- шениям векторов. Следовательно, множество несравнимых векторов долж- но быть конечным. □ Теорема 2.1. Для любой сети N ее покрывающее дерево конечно. Доказательство. Предположим, что дерево бесконечно. По по- строению, из каждой его вершины может исходить дуг не больше, чем чис- ло переходов в сети, которое конечно. По лемме Кёнига [56] в дереве должен существовать бесконечный путь, начинающийся в корне. По лем- ме 2.1 должна существовать бесконечная цепь векторов-разметок, пред- ставляющая собой подпоследовательность этой цепи, а в ней существуют две разметки М и М' такие, что М' предшествует М по дереву и М > М’. Но, по построению дерева, вершина М должна быть листом, что противоре- чит предположению о бесконечности выбранного пути. Теорема 2.2. Проблема ограниченности сети Петри разрешима. Доказательство. Поскольку для любой сети N накрывающее дерево конечно, описанная выше процедура его построения эффективна, т.е. может быть выполнена за конечное число шагов. Если дерево содержит лист с разметкой М, содержащей ы, то сеть не ограничена. Действительно, 24
в этом случае существуют, по построению, внутренняя вершина М1 и под- последовательность срабатываний т такие, что (М'[т> М)Л.(М>М'). Подпоследовательность т может повторяться сколь угодно большое число раз, порождая последовательность возрастающих разметок. Если же дерево не содержит вершин-разметок с символом ы, то для каж- дой его вершины М, отличной от тупиковой, существует переход t 6 Т и другая вершина М’ такая, что М Ф М' и Л#[г > М'. Учитывая, что М = Мо принадлежит R {N}, убеждаемся, что разметка из R (/V) представлена в де- реве. Так как дерево конечно, то число достижимых в сети разметок конеч- но и соответственно каждая из разметок представляет собой вектор из "ко- нечных" чисел. Таким образом, алгоритм распознавания ограниченности сети состоит в построении ее покрывающего дерева и последующего просмотра конечного числа вершин-разметок. Если будет найдена хотя бы одна разметка с симво- лом ш, то сеть не ограничена, в противном случае — ограничена. □ С помощью покрывающего графа можно установить лишь глобальный факт, является ли заданная сеть ограниченной или нет, так как в этом дере- ве ш появляется только в тех позициях разметок-векторов, которые соот- ветствуют местам с потенциально неограниченной разметкой, возникающей по первой из двух указанных в начале параграфа причин неограниченности мест. Например, в покрывающем дереве на рис. 2.2,6 символ ы появляется только в позиции, соответствующей месту р2 сети на рис. 2.1, но нет симво- ла ы, соответствующего месту р4. Поэтому с помощью алгоритма распоз- навания ограниченности из теоремы 2.1 нельзя установить, какие места сети могут иметь "вторичную" неограниченную разметку. Чтобы иметь такую возможность, следует построить полное покрывающее дерево сети по сле- дующей процедуре. 1. Строится покрывающее дерево сети N. Если это дерево не имеет со- листов, то построение полного дерева закончено и оно совпадает с покры- вающим деревом. 2. Если покрывающее дерево содержит со-лист М, то для него строится покрывающее дерево для сети Л/', полученной из N заменой начальной раз- метки Мо на разметку М. При этом правила срабатывания переходов и из- менение разметки сети обобщаются на случай векторов с ыс учетом ариф- метических свойств расширенного множества натуральных чисел (см. § 1.2). Построенное дерево присоединяется к основному дереву совмеще- нием корня М в новом дереве с листом М в основном дереве. Процесс повторяется до тех пор, пока не исчезнет последний ы-лист. На рис. 2.3,а показано полное покрывающее дерево для сети, изображен- ной на рис. 1.3, на рис. 2.3,6 - для сети на рис. 2.1. В первом случае полное дерево не дает новой информации по сравнению с покрывающим деревом, так как сеть на рис. 13 имеет единственное неограниченное место "первого рода". Во втором случае в полном дереве символ ш появляется в позиции местар4, неограниченного места "второго рода". Т е о р е м а 2.3. Проблема ограниченност некоторого места в произ- вольной сети Петри разрешима. Доказательство. Из построения полного покрывающего дерева для сети N легко устанавливается, что это дерево конечно. Произвольное место р не ограничено, если и только если среди вершин полного дерева существует вершина М такая, что в позиции места р стоит символ о>. Дейст- вительно, как следует из доказательства теоремы 2.1, в покрывающем дере- 25
1,2,0 ве сети N для любой его вершины М существует в замыкании множества R (N) разметка М' такая, что М' > М. По построению полного дерева, зто свойство сохраняется для всех его вершин. С другой стороны, если зафиксирована произвольная разметка М' G € ЖЛО, то в полном покрывающем дереве есть вершина с разметкой М > > М'. Из определения неограниченности места р следует, что оба неравенст- ва имеют место только в том случае, если хотя бы одна из вершин полного дерева содержит ы в позиции места р. □ Теорема 2.4. Существует алгоритм, с помощью которого можно установить для произвольного вектора М € и для произвольного пере- хода t в сети Петри с п местами, является ли вектор М t-тупиковым. Доказательство. Заменим в сети N начальную разметку Мо на разметку М, после чего построим полное покрывающее дерево для получен- ной сети с начальной разметкой М, являющейся корнем этого дерева. Ясно, что М — f-тупиковый вектор тогда и только тогда, когда построенное пол- ное покрывающее дерево не содержит дуги, помеченной символом t. □ Следующие теоремы легко доказать, исходя из основных свойств (пол- ных) покрывающих деревьев. Т е о р е м а 2.5. Проблема безопасности cejeii Петри разрешима. (Сеть с п местами безопасна, если и только если все вершины ее покрывающего дерева представляют собой векторы из множества {О, I}'1, т.е. векторы составленные из 0 и 1). Пример безопасной сети дан на рис. 2.4. Теорема 2.6. Проблема потен- циальной живости переходов разре- шима. (Переход г потенциально живой, если и только если он метит некото- рую дугу в полном покрывающем де- реве сети хотя бы один раз.) 26
Теорема 2.7. Существует алгоритм, с помощью которого можно уз- нать, получит ли данное место в сети хотя бы одну фишку. (Если хотя бы в одной вершине покрывающего дерева позиция, соответ- ствующая месту р, содержит число п > 0, то местор может получить фишку в процессе функционирования сети.) Теорема 2.8. Существует алгоритм, с помощью которого можно уз- нать, может ли данный переход сработать сколь угодно большое число раз. (Достаточно присоединить к данному переходу новое "висячее" выход- ное место р и затем выяснить, является ли оно неограниченным.) § 2.3. Проблемы R-включения и R-эквивалентности Обе проблемы не являются разрешимыми. Доказательства были прове- дены Рабином (не опубликовано) и Хаком [43, 46] сведением 10-й пробле- мы Гильберта к рассматриваемым проблемам. Неразрешимость 10-й проб- лемы была установлена Матиясевичем [11]. Проблема Гильберта формули- руется следующим образом: существует ли алгоритм,с помощью которого можно выяснить, имеет ли полином f[Xi, , х„) с целыми рациональны- ми коэффициентами целое рациональное решение, т.е. существует ли век- тор чисел (У1, - , уп) такой, что Цу1г ...,/„) =0? Метод сведения состоит в том, что устанавливается такая связь между решенной и решаемой проблемой, при которой допущение о разрешимости решаемой проблемы приводит к разрешимости проблемы, о которой из- вестно, что она неразрешима. В сведении Рабина и Хака используется проме- жуточная проблема включения графов полиномов, в которой рассматри- ваются полиномы с целыми неотрицательными коэффициентами. Эта проблема состоит в следующем. Пусть g (f) обозначает множество { .... х„, z) € N"+l | z < f(xt,...,х„|]. Можно ли для двух произ- вольных полиномов fi и f2 с одинаковым числом переменных выяснить, имеет ли место включение g{f\) Q g(f2) ? Сведением проблемы Гильберта к данной проблеме показано, что последняя неразрешима [45]. Для сведения проблемы включения графов полиномов к проблемам Я-включения и Я-эквивалентности Рабин предложил использовать сети в качестве абстрактных машин, "слабо вычисляющих" полиномы. Машина слабо вычисляет полином f (xlz..., х„), если для произвольного "входно- го" вектора чисел (/lz .... у„) результатом на "выходе" машины может быть любое число z такое, что 0 < f(yi, —, /п).. Это означает, что машина недетерминирована в том смысле, что вместо единственного резуль- тата, однозначно определяемого входным вектором (yt,..., у„), она мо- жет выдать любой из векторов, не превышающих ?(/Iz ...,/„). Недетер- минированности результата работы машины отражает недетерминирован- ность функционирования сети Петри. Конечная сеть (Я, Т, F, 1¥), "слабо вычисляющая" полином f (x)z... ,х„), должна удовлетворять следующим условиям: 1) в ней выделены п "входных" мест int, .... in„, каждое из которых сопоставлено соответствующему аргументу полинома, и одно "выходное" место out; 2) для управления работой сети выделены специальные места: "старто- вое" on и "выключающее" off; 3) произвольному вектору у € N" можно сопоставить начальную размет- ку Му такую, что Л#л.(оп) = 1, V/, 1</<л: Afy(inj) = у,, все остальные места имеют нулевую разметку; 27
Рис. 2.6. 4) для любой разметки М, достижимой в сети (Р, Т, F, W, Му}, М(out) < Ни, • • •. уп); 5) для любого целого к, 0 <к < f (Ki, , Kn), существует достижимая в сети с начальной разметкой Му тупиковая разметка М такая, чтоМ (out) = = к, A#(off)= 1. В работах [45, 46] показано, что для любого полинома с неотрицатель- ными коэффициентами можно конструктивно построить слабо вычисляю- щую его сеть. Опуская технические детали доказательства, представим толь- ко его идею. Полином f (xlz х„) является конечной суммой одночленов вида к Е hj (xlz — , х„), где Луг (х1х ..., хп) представляет собой произведение /= • т.1 т/н CjXi ... х„ с неотрицательным коэффициентом с;. Таким образом, чтобы построить сеть, слабо вычисляющую полином, нужно уметь модели- ровать сетями умножение и сложение неотрицательных чи- сел, умножение на константу, сравнение на равенство и су- перпозицию сетей. На рис.2.5,а и б и 2.6, а показаны сети, слабо вычисляющие сумму х( + х2, произведения xt • х2 и с • х. На рис. 2.6, б показана сеть, слабо вычисляющая одно- член с • Xt • ... • х„. Эта сеть представляет собой комбина- цию сетей, представленных на рис. 2.5 и 2.6, а. Сеть, слабо вычисляющая полином с к одночленами, строится как суммирующая комбинация се- тей, типа построенной на рис. 2.6, б (суммирование к слагаемых обобщает пример на рис. 2.5, а). 28
Лемма 2.3. Для любого полинома Цх.........хн) с не- отрицательными целыми коэф- фициентами можно построить сеть Петри N такую, что g{f} = = Я„(Л/), где g(f) - граф полинома f, а /?„ (Л/) — мно- жество проекций векторов из R{N} на их первые п + 1 координату. (Множество проекций R„ (Л/) = = {Л#(Рп+|)|Л#еЯ(Л/)},где/,пЧ.1 “ вектор, составленный из первых п + 1 координат вектора мест Р, и п < Доказательство. Основой для построения сети Петри Дослужит сеть Nf, слабо вычисляющая полином f. К этой сети добавляются переходы to, tj, ..., tп и места pif рг,..., р„. Месту out сети Nf присваивается но- вый символ рп+1- Дуги связывают добавленные места и переходы друг с другом, а также с входными местами ini, .... in„ и местом on сети Nf так, как показано на рис. 2.7. Место р0 имеет разметку Мй (р0) = 1. Старто- вое место on сети Nf получает фишку после срабатывания перехода f0. Однако до этого момента могут сработать любые из переходов tit ..., tn произвольное число раз каждый, переслав во входные места in(,..., in„ и дополнительные места рх,... ,рп соответствующее число фишек. Та- ким образом, к моменту, когда стартовое место on получает возможность запустить в работу сеть Nf, каждое входное место in;, 1 </ <л, имеет разметку М(in/), каждое место р,, 1 </<п, имеет разметку Mlpj} и /И(in,) = M(Pi). В процессе дальнейшей работы сети XfM'^R(N): 0< <М’(рп +1) < ЦМ(Р|),..., М(рп)). Следовательно, проекции достижимых разметок на места pt,... ,рп,рп^х образуют множество /7„(Л/) =g(f). □ Теорема 2.9. Проблема R-включения неразрешима. Доказательство. Для двух произвольных полиномов f и h с оди- наковым числом переменных п можно построить сети Петри N и N' такие, что g(f)QgV>) *=> R[N) С RIN'). Пусть Nf и Л6, — сети, слабо вычисляющие, полиномы f и соответственно Л, причем, g(f) = Rn(Nf) и g (ft) = Я„(Л/А) (см. лемму 2.3). Если первая сеть имеет к мест, а вторая I, то число мест в обеих сетях можно уравнять, добавив | к — 11 мест в сеть с меньшим числом мест. Чтобы эти места не изменили множество достижимых разме- ток, начальная разметка каждого из них полагается равной 0, они не связы- ваются дугами ни с одним из переходов сети и добавляется новый (мерт- вый) переход, для которого они являются входными местами. Сети N и Л/' строятся по сетям Nf и Nh (одна из них имеет дополни- тельные места) так, как показано на рис. 2.8. Сети Nf и /V/, представлены прямоугольниками, в которых показаны все их переходы и места, но не указаны связывающие их дуги. В каждую из сетей добавляются места Pr+i и Рг + 2, где г = max «г, /). К сети Nf добавлен также переход Го> ко- торый никогда не сработает, поэтому разметка мест рг +1 ирг +2 постоянна в сети N. К сети Nh добавлены новые переходы, месторг + 1 является вход- ным и выходным для всех переходов сети Nh, переходы Г/ и Г/, где л + 1 < <i < г, связаны с менами р'п+,,..., р'г так, как показано на рис. 2.8. Пока переход Г<у не сработал и не перевел фишку из местаprврг+2, сеть N' функционирует точно так же, как и сеть Nh. После срабатывания г0 29
Рис. 2.8. ни один из переходов сети Nh не может сработать и размет- ка мест р\,..., р'п не может измениться. В то же время "новые" переходы tt и t,\ п + 1 </</•, могут произ- вольным образом изменять разметку мест р„+1,..., р'г. Если вектор X € N" и век- тор Y G N' где п < г, то через Z будем обозначать "конкатенацию" векторов X и Y, т.е. вектор Z G Nr, пер- вые п компонент которого совпадают с X, а компоненты с (п + 1) -й по г-й совпадают с компонентами вектора Y. Ес- ли С/ — множество векторов из N", а V — множество век- торов из то через t/Х V будем обозначать множество попарных конкатенаций векторов из l/и V. Из анализа функционирования сети Л/' следует, что Я(Л/') = Я(Л/Й)Х {(1,0)}ufl„(/Vft(XNr-"X{(0,1)} . Из анализа функционирования сети N следует, что Я(Л/) = Я(Л/у) X {(О,1)} . Таким образом, Я (Л/) С Я (Л/') <=* Я (Nf) С Я„(Л/Й) X Nr ~п. Правая часть эквивалентна отношению Я„(Л/у) С Я„(Л/Й). Следовательно, Я(Л/) С Я(Л/') «=* Я„(Л/у) С Я„(Л/Й). Это означает, что для решения проблемы включения графов двух произ- вольных полиномов f и h достаточно построить сети Nf. Nh, N, п , убедить- ся, имеет ли место включение Я (Л/) С Я (Л/'), на основании этого сделать заключение о том, имеет ли место Я„(Л/у) Q Rn(Nj,), и на основании лем- мы 2.3 установить, содержится ли g(f) вд (Л). Таким образом, если пред- положить разрешимость проблемы включения для множеств достижимых разметок сетей Петри, получаем разрешимость проблемы включения гра- фов полиномов с неотрицательными коэффициентами, что не верно. □ Теорема 2.10. Проблема R-экеивалентности неразрешима. Доказательство. Для доказательства t ^разрешимости методом сведения достаточно показать, что проблема Я-включения сводится к проб- леме Я-зквивалентности. Это означает, что нужно указать способ, с по- мощью которого для любых двух сетей А и В можно построить сети А’ и В' такие, что R(A)Q R(B) <==> ЯСА') = Я(Я'). Обе сети А' и В' строятся добавлением разных переходов к одной и той же сети С, которая, в свою очередь, строится из сетей А и В. Она как бы ко- дирует объединение Я (А) иЯ(Я), и ниже будет использован тот факт, что Я (A) Q R (Я) <=*Я(Я) =Я(А) иЯ (В). Способ конструирования сетей С, А’, В' показан на рис. 2.9. Предполагается, что сети А и В имеют одно и 30
то же множество мест (в противном случае добавляют- ся новые места, как в дока- зательстве теоремы 2.9, и со- поставленные друг другу места помечаются одинаковы- ми символами). Из сетей А и В убрана начальная размет- ка. Она устанавливается пере- ходами г । и Г2 способом, ука- занным на рис. 2.10. На нем показан пример, как началь- ная разметка мест р2, Рз может быть задана с помощью дополнительного перехода и одного места р0 с единичной начальной разметкой. Переход t! "запускает" сеть А, передав фишку из места рг + ] в место рг+2- Послед- нее является входным и вы- ходным для всех мест сети А и служит стартовым и одновременно выключающим местом этой сети. Переход fi устанавливает также начальную разметку для сети А. Анало- гичную роль играет переход t2 для сети В. Таким образом, в зависимости от того, какой из переходов 11, t2 сработает первым, сеть С функциони- рует далее как сеть А или как сеть В. Сеть А строится по сети С добавлением перехода, который "выключает" сеть А, изымая фишку из места рг +2. Это может случиться только в том случае, если вначале первым сработал переход г( и сеть С моделирует рабо- ту сети А. Аналогично сеть в' строится по сети С добавлением еще одного перехода г4, который выключает сеть В. Легко видеть, что R(C) = Я(Д) X {(0,1, 0)} U Й(В) X {(0, 0,11} U {(0,.... 0.1, 0, 0)}, Г где (1,0,0), (0,1,0), *0,0,1) — достижимые в Сразметки местРг+ьРг+2< Рг+з; R(A') = Я(С) U R(A) X {(0,0, 0)} ; R(B’) = R(/f) U R(B) X {(0, 0, 0)} = R(C) U (R(A) U R(B)) X{(0, 0, 0)} . Так как разметка M (pr +1, pr +2, pr +3) = (0,0,0) не достижима в се- ти С, то Я(А') = R(B’) <=> Я(Д) С R(B). □ А® ю 0} Я0 Поскольку множество достижимых разме- ток сети Петри характеризует, в некотором смысле, множество возможных ситуаций (сос- тояний) в сети и в моделируемой ею дискрет- ной системе, проблемы Я-включения и Я-экви- ДСХ <2° JL валентности привлекли внимание на первых же этапах исследований сетей Петри. Рис. 2.10. 31
С практической точки зрения проблема /7-эквивалентности, например, интересна потому, что разработка различных систем оптимизирующих преобразований сетей может потребовать сохранения достижимых разме- ток. Неразрешимость указанных проблем свидетельствует о том, что сети Петри являются математически более сложными и мощными объектами, чем, например, конечные автоматы. Более детально эти вопросы будут обсуждены ниже, в главах 3 и 5. § 2.4. Проблемы достижимости и живости Проблема достижимости является центральной в специальной теории сетей Петри, так как многие другие проблемы эквивалентны ей в том смысле, что их разрешимость или неразрешимость непосредственно следует из разрешимости или неразрешимости проблемы достижимости. Неодно- кратные попытки доказать общепринятую гипотезу о разрешимости послед- ней, в том числе опубликованные, страдали одним общим недостатком — в доказательствах были обнаружены ошибки. Последней работой в этом ряду является статья Майра [63], в которой приведено очередное доказательст- во разрешимости проблемы достижимости. Мы ограничимся рассмотрени- ем вопроса об эквивалентности проблемы достижимости и живости. Доказа- тельства соответствующих теорем содержат ряд приемов, которые могут представлять интерес в других задачах анализа свойств сетей Петри [42, 45]. Проблема достижимости состоит в обнаружении алгоритма, с помощью которогодля любой сети N и для любой разметки М GNIpl можно выяснить, MER (Л/)? Более частной представляется проблема, в которой выясняется достижимость нулевой разметки 0 - (0,. .., 0). |Р| Теорема 2.11. Проблема достижимости произвольной разметки сво- дится к проблеме достижимости нулевой разметки. Доказательство. Пусть задана сеть N и разметка М G N1 р 1. Пока- жем, что N можно преобразовать в сеть N' такую, что М € R (/V) тогда и только тогда, когда 0 6Я (Л/'). Соответствующее преобразование показа- но на рис. 2.11. Пока место Qo содержит фишку, сеть Л/' функционирует точно так же, как и сеть N. После срабатывания перехода t0 место полу- чает фишку. Каждое из мест qit 1 <i<n, п = |Р|, имеет в сети N' начальную разметку Мо (<7/) =Л< (рД. Из этого следует, что Сеть Л/может достигнуть нулевой разметки только в том случае, если все места qx.q„ и все мес- та pi....р„ лишатся фишек. В свою очередь это возможно только при достижении сетью N разметки М. Переход ^за- вершает "очистку" сети ЛА'от фишек, убирая фишку из места q^. Поэтому решение пробле- мы достижимости произвольной разметки в сети N можно свести к решению проблемы до- стижимости нулевой разметки в сети Л/'. □ Теорема 2.12. Проблема достижимости разметки сводится к проблеме живости сети. Доказательство. В силу теоремы 2.11 достаточно показать сводимость проблемы дости- жимости нулевой разметки к проблеме живос- ти. В свою очередь для этого достаточно пока- зать, что для произвольной сети Л/ можно постро- ить сеть Л/'такую, что Л/'жива тогда и только тогда, когда в сети Л/ не достижима нулевая разметка. Построение N' показано на рис. 2.12. 32
Сеть Л/' функционирует следующим образом. До срабатывания переходов г0 или любого перехо- да tj, 1 < i <п, сеть N' работает точно так же как и сеть N. Если to сработает раньше, чем любой из переходов г,, 1 </ < п, то возможны даа случая. В первом случае, если текущая разметка подсети N является нулевой, вся сеть N1 останавливается (с нулевой разметкой). Во втором случае, если хо- тя бы одно из мест pf, 1 </< п, содержит хотя бы одну фишку, может сработать переход г,- и место <7о получает фишку, которая не может далее исчез- нуть из него. Тогда переход f о постоянно готов сра- батывать и снабжать места сети N каким угодно чис- лом фишек, тл. подсеть N не останавливается и может породить произвольную последовательность Рис. 2.12. срабатываний. Отсюда следует, что для любого перехода t сети N' f-тупиковая разметка должна иметь нулевую проекцию на места pt,. . . , рп сети N. Наоборот, если в Л/достижима нулевая размет- ка, то в сети N' переходы to, tit 1 < / < п, являются потенциально мерт- выми. Таким образом, сеть Л/ жива тогда и только тогда, когда в Л/не до- стижима нулевая разметка. □ Для доказательства сводимости проблемы живости к проблеме дости- жимости рассмотрим более детально свойства f-тупиковых разметок. Пусть Dt — множество всех f-тупиковых разметок сети Петри с п местами. Лемма 2.4. Множество Dt монотонно. Доказательство. ПустьМх EDtin М2 <Mt.. Предположим, что М2 Dt, т.е. существуют разметка М3 £ R (N, М2) и последовательность срабатываний т такие, чтоМ2 [т)М3, и переход t может сработать при М3. Но, по теореме 1Л, переход г может также сработать при разметке М4 такой, что Мх [т > Мц и Л#4 = М3 + |М2 — Мх |, т.е. М2 Dt, что противо- речит начальному предположению. □ Лемма 2.5. Множество Dt максимальныхэлементов множества Dt ко- нечно для любой сети Петри и может быть эффективно построено. Доказательство. Из определений множества Dt и его множества максимальных элементов следует, что Dt является множеством несравни- мых по отношению < векторов из N£. В силу леммы 2.2 множество D, конечно. Его можно построить следующим способом. Зафиксируем множество!О, ш}п всех векторов длины л, составленных изОиш. В этом множестве выделим подмножество Xt максимальных f-тупиковых век- торов: Xt ={МЕ{0, со)" | М — t-тупиковый и УМ': М' > М =*М1— нег-тупико- вый). Ясно, что множество Xt является конечным множеством несравнимых по отношению < t-тупиковых векторов, и оно может быть эффективно построено, так как по теореме 2.4 можно для любого вектора из{0, со)" выяснить, является ли он t-тупиковым. Если любая нулевая компонента вектора из Xt заменить на со, то получится вектор, не принадлежащий Xt, так как он не будет t-тупиковым. Таким образом, для любого вектора М £ Xt существует вектор Mf = М + К (М), где К (М} £ N", причем М' явля- ется t-тупиковым, но любой вектор М" > М' уже не является Г-тупиковым. Для каждого M^Xt вектор К (М\ может быть найден последовательной 33
проверкой на t-тупиковость векторов М,М+К1,М + К2....М + К W), где 0 < Ki^Ki . ,<К (М) — конечная цепь векторов из N". Множест- во можно представить как{М + К (М) | М &Xt}, откуда следует, что его можно эффективно построить с помощью описанной процедуры поиска вектора К (М) для каждого М G Xt. □ Теорема 2.13. Проблема живости сети Петри сводится к проблеме достижимости некоторой разметки. Доказательство. Пусть известно, что разметка М достижима в се- ти N. Т от да, если для произвольного перехода t в множестве Д существует вектор М' такой, чтоЛКМ', то переход Г не является живым. Наоборот, если известно, что t не является живым переходом, то существует t-тупико- вая разметка Af е R (/V) такая, что ЭМ' € Dt: М<М'. Таким образом, t яв- ляется потенциально мертвым, если и только если ЭМ1 G 5tl 3M&R(N):M< < М'. Поскольку множество Dt, конечно и может быть эффективно построено, то для установления того факта, что переход t является потен- циально мертвым, достаточно установить достижимость разметки М < М' G € Dt. Так как число переходов в сети /V конечно; то живость сети можно ус- тановить, проверяя для каждого перехода, является ли он живым или по- тенциально мертвым. □ Теорема 2.14. Проблема живости сети Петри и проблема достижи- мости в ней произвольной разметки эквивалентны. Доказательства Прямое следствие теорем 2.12 и 2.13. □
ГЛАВА 3 ЯЗЫКИ СЕТЕЙ ПЕТРИ Проблемы, рассмотренные в предыдущей главе, связаны в большей сте- пени с разметкой сети и соответствуют таким прикладным задачам, кото- рые требуют анализа возможных ситуаций (состояний) в моделируемых сетями системах, анализа характера изменений условий в них. Другой круг проблемы связан с анализом динамики функционирования системы, с характером множеств возможных последовательностей реали- зации событий. Поскольку события системы представлены переходами се- ти, ее функционирование можно описать в терминах последовательностей срабатываний переходов. Множество L (/V) последовательностей срабаты- ваний сети Петри N представляет собой подмножество множества Г*всех слов, составленных из символов переходов сети, т.е. всех слов в алфавите Т. Таким образом, множество L (N} является языком в алфавите Т. Этот язык называют свободным языком сети Петри. Множество свобод- ных языков всех сетей Петри образует класс свободных языков се- тей Петри. В сети все символы-переходы различны. Однако в системах, моделиру- емых сетями, часто удобно считать разные события одинаковыми, тождест- венными в некотором смысле. Например, разные операторы программы могут текстуально совпадать, или, другими словами, представлять собой разные вхождения в программу одного и того же оператора. В конвейер- ной линии могут быть встроены в разных местах одинаковые устройства. В сетях Петри, как они определены в §1.2, нет средств для изображения таких ситуаций. Однако это можно легко исправить, введя специальные пометки, отмечающие "одинаковые" и "разные" переходы. Эти пометки представляют собой символы из некоторого алфавита, в общем случае отличного от алфавита Т, а сами сети называют помеченными. Если симво- лы переходов в последовательностях срабатываний заменить на помечаю- щие символы, то свободный язык сети преобразуется в некоторый другой язык, порождаемый этой же сетью. В зависимости от правил пометки переходов и от правил формирования Последовательностей срабатываний выделяются различны? классы языков, порождаемых сетями Петри. Эти классы сравниваются в данной главе друг с другом и с языками, порождаемыми другими типами абстрактных сис- тем, предназначенных для моделирования дискретных систем, в частности, с языками конечных автоматов и машин Тьюринга. Такое сравнение позво- ляет характеризовать моделирующие возможности сетей Петри, их способ- ность адекватно описывать системы со сложной динамикой функциониро- вания. Оказывается, что моделирующие возможности сетей Петри выше, чем у конечных автоматов, но ниже, чем у "универсальных" систем типа машин Тьюринга. В этой главе рассмотрены также массовые алгоритмические проблемы для различных классов языкЬв сетей Петри. 35
§3.1. Помеченные сети и классы языков сетей Петри Помеченная сеть Петри — эта пара (Л/, S), где N — сеть Петри, S: 7-М— помечающая функция над некоторым алфавитом А. Если S— частичная функция, т.е. некоторым переходам не сопоставляется никакого символа из А, то эти непомеченные переходы называют Х-переходами и помечают одним и тем же "пустым" символом X. Помечающая функция Sрасширяется на последовательности срабатыва- ний естественным образом: v t t | S (г) S (г), если S (tj определено, S (т) в противном случае. где тг е 7*. При этом S (X) = X, где X — пустое слово. Помеченные сети с Х-переходами удобны в тех случаях, когда при моде- лировании системы нужно ввести вспомогательные переходы, не связан- ные непосредственно с событиями системы, а используемые для некоторых специальных целей моделирования. С их помощью можно также "маскиро- вать" те события, которые не должны рассматриваться в данной задаче моделирования. На рис. 3.1, а показан пример сети Петри, на рис. 3.1, б, в и г — помечен- ные сети над алфавитом{ а, b, с, d}, полученные из первой сети с помощью следующих помечающих функций: S| : Lt (Г|)-а, Sj (tj)=c, (Гз) = £>, Si (Гд)=4/, Sj : Sj (tj) = a, Sj (tj) = a, Sj (f3) = b, Sj U4) - b, S3 : S3 (t]) = X, S3 (tj) = a, S3 (Гз) = b, S3 U4) = c. Если т € 7* — последовательность срабатываний сети Петри /V, а (/V, S) — помеченная сеть, то S (Г)6Д‘ называют помечающей последовательностью. Если L (Л/) — свободный язык сети N, то множество^ (т) | т G L (Л/)} обра- зует префиксный язык помеченной сети (N, S). Во многих приложениях бывает удобно или необходимо рассматривать не свободный язык сети Петри /V, включающий все ее последовательности срабатываний, а его подмножество терминальных последовательностей, кото- рое состоит из всех последовательностей, ведущих от начальной разметки Мо к некоторой фиксированной терминальной разметке М?, т.е. множество L ={тG 7‘ |Л#0 {т)МА. Множество! (Л/,Mj) образует свободный терминальный язык сети N. Соответственно множество {S (т) | т€= L {N, М?)} образует терминальный язык помеченной сети (N, S). 36
Для сети AZ на рис. 3.1, а свободный язык представляет собой множество L । 0, >О)Л J >л2 >О)Л (nt пг> п3 >0)л(п2 >п4 >0)}, а свободный терминальный язык L (N, М?), где Mj = (0, 0, 0, 1) (т.е. при Mj только местор4 содержит фишку), представляет собой множество L t2 t4 |л>0}. Поскольку для помеченной сети на рис. 3.1, б помечающая функция Si осуществляет взаимнооднозначное отображение множества 7на алфа- вит Д, то ее префиксный язык и терминальный языки получаются из выше- приведенных языков прямой заменой символов-переходов на соответству- ющие символы из А. Для помеченных сетей на рис. 3.1, е й г их префикс- ные и терминальные языки (для М? = (0, 0, 0, 1)) образуют множества: L (Л/, S2)={anbm \п>т>0}, L (Л/, S2,Afz)={a"bm in>Q}, L {N, S3 ) ={ а”1 Л"2 c"’ | (1 >Oi >0)л(л! = 0=*л2 = 0)л (Л1 = 1 =»Л2 >0)А(Л! >л3 >0 )}, L (N,^3.Mf}={abnc\n>G}. Пусть JT- класс всех сетей Петри. На основе введенных выше определе- ний языков разного типа для сетей Петри и помеченных сетей можно обра- зовать различные классы языков сетей Петри, из которых выделим следу- ющие. 1) Класс £л префиксных языков сетей Петри включает префиксные язы- ки всех помеченных сетей, которые можно образовать из сетей класса Jf с помощью произвольных помечающих функций над произвольными алфави- тами. Верхний индекс X указывает, что помечающие функции могут быть частичными, т.е. помеченные сети могут содержать Х-переходы. 2) Класс £ о терминальных языков сетей Петри включает терминальные языки всех помеченных сетей, образованных из сетей класса , в том чис- ле помеченных сетей с X-переходами. 3) Классы £ и £0 являются под классами классов £х и соответственно £о и включают префиксные и терминальные языки всех тех помеченных сетей, которые не содержат Х-переходов, т.е. которые образованы из сетей класса .4х* только с помощью всюду определенных помечающих функций. 4) Классы £^, <{£ включают свободные префиксные языки и свободные терминальные языки всех сетей Петри. Если условиться, что существует специальный класс всюду определенных помечающих функций типа S: Т -* -* 7, т.е. функций над алфавитом А => Т, причем V t € Т : S (t) = г, то классы £ и £& можно считать подклассами классов £ и соответственно £0. Для сопоставления друг с другом введенных выше языков и классов сетей Петри полезной оказывается специальная стандартная форма поме- ченных с?тей. Сеть, преобразованная в стандартную форму, сохраняет префиксный и терминальный языки, хотя в стандартной форме и появля- ются новые переходы и места. Помеченная сеть представлена в стандартной форме, если: 1) выделено специальное "включающее" место on с начальной размет- кой Afo (on) = 1 и начальная разметка всех остальных мест равна 0; 2) терминальный язык сети всегда определяется для одной и той же терминальной разметки Mf = б = (0,..., 0), где п = |Р| - число мест в сети; п 37
3) каждый переход сети имеет хотя бы одно входное место (т.е. размет- ка 0 является тупиковой для сети). Лемма 3.1. Для любой помеченной сети {N, S) и любой терминальной разметки этой сети существует представленная в стандартной форме помеченная сеть IN', S') такая, что L \N', S') = L {N,Z) и L IN', S', 0 ) = = L (N, S,MZ). Доказательство. Пусть N = {P, T. F, W, Mo). Если эта сеть содер- жит переходы без входных или выходных мест, т.е. не удовлетворяет треть- ему условию стандартности формы, то в сеть добавляется новое "стандарт- ное" место о, которое делается входным и одновременно выходным для каждого перехода сети (такие места уже вводились выше, при доказатель- стве теорем параграфов 2.3 и 2.4). Начальная разметка Мо распространяет- ся на новую сеть так, что M0{q}= 1. Введение места q не изменяет ни усло- вий срабатывания переходов исходной сети, ни разметку ее мест после срабатывания переходов, поэтому новая сеть сохраняет свободный, префик- сный и терминальный языки заданной сети (последний с учетом добавления к компоненты Mj (р) = 1). На рис.3.2, а и б показан пример описанного преобразования помеченной сети, содержащей переходы с пустым множест- вом входных или выходных мест, в сеть удовлетворяющую третьему усло- вию стандартности. Для того чтобы выполнилось первое условие стандартности, добавим к сети включающее место on с единичной разметкой, разметку всех осталь- ных мест сделаем нулевой, а для каждого перехода t € Т, могущего срабо- тать при начальной разметке Мо, введем новый переход г' с пометкой S (t') = S (t). Каждый из новых переходов имеет в качестве единственного места включающее место on, а его выходные дуги заводятся на места сети так, чтобы после срабатывания перехода t' разметка этих мест равнялась бы разметке преобразуемой схемы после срабатывания перехода t при Мо, а именно: F- (t') = M0-F- (f) + F- (t). Легко видеть, что любое слово S (г) G L IN, S), т€ L (N), принадлежит также языку новой сети и порождается ее последовательностью т, отличаю- щейся от т лишь первым символом перехода ft' в т вместо t в т). Наобо- рот, любая последовательность срабатываний г' новой сети должна начинать- ся некоторым символом перехода г', так как ни один из "старых" перехо- Рис. 3.2. 38
дов сети не может сработать из-за того, что все места, кроме места on, име- ют нулевую разметку. Продолжение последовательности срабатываний т' должно далее совпадать с продолжением некоторой последовательности срабатываний т старой сети, начинающейся символом перехода t. На рис.3.2,бив показан пример описанного преобразования. В исходной сети на рис. 3.2, б при разметке Мо могут сработать переходы ti и Г3, для кото- рых введены дополнительные переходы tj и t3 в Новой сети на рис. 3.2, в. Срабатывание перехода h меняет разметку Мо на разметку (2, 1, 1), где переход q считается третьим в упорядоченном наборе мест, а срабатывание перехода t3 меняет разметку Мо на разметку (0, 0, 1). Поэтому в новой сети F- (г{) = (2, 1, 1) и F' (г3) = (0, 0, 1). Чтобы выполнить второе требование стандартности формы, для каждо- го перехода t G Т такого, что он последним может сработать перед терми- нальной разметкой Mf (т.е. Му> F' (г)), добавляется новый переход г' с пометкой S (г") = S (г). Входные дуги, ведущие в переход t", заводятся так, чтобы F (t")=M-F(t)+F(t), а выходных дуг переход t" не имеет (т.е. F’ (г") = 0). Из построения следует, что t" может сработать в новой сети только в том случае, если t может сработать (так как *F(t")>*F (т)), и что сраба- тывание t" приводит к нулевой разметке 0 в том и только том случае, если срабатывание Г в сети N приводит к разметке Mf. Соответственно последовательности срабатываний т и г' такие, что Мо [т>Му, Mq [т >0 длина |т| = |т'| = 2, отличаются лишь последними символами переходов (г" в т' вместо t в S). В случае, если |т| = |т'| 1, т.е. Мо [г > Mf, для t до- бавляется еще переход t’" с S (t"') =_S (t). Его единственным входным местом служит место on и F' (г’") = 0. На рис. 3.2, виг показан пример описанного преобразования для тер- минальной разметки Му (3,0, 1),гдед— третий элемент набора мест.Эта разметка достижима в сети на рис. 3.2, б после последовательностей сраба- тываний, заканчивающихся символами переходов tj или t3. В первом слу- чае имеет место изменение разметки (2,0,1) (г3 > (3^0, 1), во втором — (4, 1, 1) [Г3 > (3, 0, 1). В сеть добавляются переходы г/ и Г3 с F (tT> = (3, 0, 1) — (1, 0,1) + (0, 0,1) = (2, 0, 1J, F (Гз) = (3, 0, 1 > — (0, 0, 1) + (1,1, 1)=(4, 1, 1), S (г") = а, S (Г3) -с. □ Следствие. Любой язык из классов £, £к, £0, £д макет быть по- рожден некоторой помеченной сетью в стандартной форме как ее терми- нальный язык для терминальной разметки М? = 0. Это позволяет переносить любые результаты о языках сетей, представ- ленных в стандартной форме, на общий случай языков сетей Петри. Следующие теоремы сравнивают введенные выше классы языков сетей Петри. Т еор ем а 3.1. а) £С£0,б) £С4. Доказательство. Сначала установим, что £ Q £0 и £к Q£*, а за- тем убедимся, что эти включения являются на самом деле строгими. 39
Покажем, что для любой помечен- ной сети (Л/, S) можно построить по- меченную сеть (Л/', S') такую, что L W,S)«tW',S’)« L IN', S',0), т.е. префиксный и терминальный (для Mf = (Г) языки сети (/V', S') равны друг другу и равны префиксному язы- ку сети (/V, S). При этом, если сеть (N, S) не имеет Х-переходов, то сеть (N', S') также не должна иметь Х-переходов. Заменим каждый переход t € Т множеством переходов {t/|-F(r/)=-F(r)AF-(r/)<F- (t)}. Здесь индекс / меняется от 0 до к, где к равно числу различных векторов длины |Р|, меньших или равных F' (г), и пусть при/ = 0 новый переход f° является точной копией перехода Г, т.е. Р ’ (t°) = F‘ (t). Кроме того, полагаем, что для всех t7 S (t7) - S (г), т.е. все новые переходы помечаются так же, как и заменяемый ими старый переход. На рис. 3.3, б показана по- меченная сеть, построенная описываемым способом по помеченной сети на рис. 3.3, а. Каждый из новых переходов г7 может сработать точно при той же размет- ке, что и замещенный старый переход. Но после срабатывания он может вы- дать меньше фишек, так из него выходит меньше дуг (при/ #= 0), чем из t. Рассмотрим произвольную последовательность срабатываний т' сети (Л/', S'), приводящую к некоторой разметке М1, т.е. Мо [г' > Л/. Если заме- нить в т' каждый переход г7 на t, то получим последовательность срабаты- ваний т сети (Л/, S), причемМо [т}МЛ М>М1. Наоборот, если задана последовательность срабатываний т€ L (N , S') та- кая, что Л#о \т)М, то можно последовательно заменить в ней каждый пере- ход t на t> так, чтобы на каждом очередном шаге замены выбирался г7 с наи- меньшим вектором F’ (г7), позволяющим, однако, сохранить оставшуюся часть последовательности. В результате последнее срабатывание "новой" последовательности т' должно привести к нулевой разметке в сети (/V', S'). В обоих случаях последовательности срабатываний тит' порождают одно и то же слово S (х) = S' (т'). Например, если выбрать т' = Г° t* такую, что (2, 0, 0) [т'> (0, 0; 0), в сети на рис. 3.3, б, то для нее существует т G L (N, S), где (N, S) — сеть на рис.3.3,а, причемт = t| fi f2, (2,0,0) [т> (0, 0,1), S (т) = aab = S (г'). Нао- борот, для т = f| f| f2 t3, где т e L {N, S) и (Л/, S) — сеть на рис. 3.3, а и (2,0,0) [т> (0,0, 1),существуетт' €L (Л/',S'), где (/V' S')- сеть на рис. 3.3, б и т' = f° г*} 12 t ° , причем (2, 0, 0) [т'> (0, 0,1), a S' (т') = a a b а = S (т). Таким образом, из способа построения сети (N', S') следует, что£ (/V, S) = = L {N', S') = L \n’, S', 0). Например, для сети (Л/, S) на рис. 3.3,а пре- фиксный язык L (Л/, S) - (а, аа, aab, aaba, aabaa ). Для сети IN', S') на рис. 3.3, б префиксный язык L (N', S') = L (N1, S', 0)\=(а, аа, aab, aaba, aabaa} = L (Л/, S). Следствием установленного соотношения между префиксным языком сети (Л/, S) и префиксным и терминальным языками сети (Л/', S') является включение £ С £0. 40
Чтобы установить справедливость соотношения б), достаточно убедить- ся, что в любую помеченную сеть Петри можно ввести дополнительные Х-лереходы таким образом, чтобы нулевая разметка была достижима от любой разметки сети и префиксные языки новой и старой сети совпадали. Для этого достаточно для каждого места заданной сети ввести свой Х-пере- ход без выходных дуг, который изымает при своем срабатывании по одной фишке из этого места. Новые Х-переходы могут срабатывать в любое вре- мя, уменьшая разметку сети. Для любой последовательности срабатываний т исходной сети найдется такая последовательность срабатываний т' новой сети, что S' (т) - S (т'). Обратное также верно, поэтому префиксные языки обеих сетей совпадают. Отсюда следует, что£л Теперь убедимся, что установленные включении являются строгими. Легко построить помеченную сеть в стандартной форме, с X-переходами или без них, порождающую терминальный язык L ={?, f 11}. Однако, ясно, что никакая сеть не может порождать этот язык в качестве префиксного, так как наряду со словом 111 он должен содержать слово 11. Отсюда сле- дует, что £ С £о и £х С JCj. □ Т е о р е м а 3.2. а)£{с£о, 6)£fC£. Доказательство. Из определения упоминаемых в формулиров- ке теоремы языков следует, что£^ О.£о.£? £.£• Остается показать, что имеет место строгое включение в обоих этих случаях. Для доказательства справедливости строгих включений в этой и в следующей теоремах будет использован один и тот же прием, а именно: будут предъявлены языки, принадлежащие правым классам языков и не входящие в левые классы языков. а) Легко построить помеченную сеть в стандартной форме, порождаю- щую терминальный язык L i = (г, rtf} (см. доказательство теоремы 3.1), но никакая сеть Петри не может породить такой же свободный терминаль- ный язык. Действительно, пусть переход t — единственный потенциально живой переход в некоторой сети Петри N. Он может сработать при началь- ной* разметке Мо, т.е. Мо > 'F (г). Разметка М, возникающая после сраба- тывания перехода ?, может удовлетворять или не удовлетворять условию M>‘F (г). В первом случае язык L (АО будет также содержать все слова вида f (в силу теоремы 1.1). Во втором случае слово t оказывается един- ственной последовательностью срабатываний, т.е. слово?ffне входит в язык Li. Таким образом, £] G£o и£.( 0£{,т.е. £^С£0. б) Легко построить помеченную сеть, порождающую префиксный язык Lt = {а,аа, aab, b, ba, baa }, но никакая сеть Петри не может породить L2 в качестве свободного языка. Предположим противное, и пусть сеть А/ = [Р, Т, F, W, Мо) порождает язык L (N) = L2. Предположим, что первым сработал переход a G Т (слово а е L 2) и изменил разметку Мо на М. Далее возможны два случая. 1) M>'F ib), где b G Т. В этом случае переход b может сработать непос- редственно послед, в результате чего словоab& L (N), что противоречит предположению L {N} = L2. 2)M^’F(b). В этом случае в сетиА/существует место ртакое, что р Ga*, р G ’Ь и имеют место два неравенства: М lp)<F ip.b), М[р)<М0 ip). 41
Тогда для места р и для разметки М' такой, что /Ио [а > М [а > Мимеет место неравенство M'lpXM (pXFIp.b), т.е. переход b не может сработать при разметке М1 и слово aab ф L (N) = =L г ,что противоречит предположению. Таким образом, L2 € £ и Д2 ф £?. т.е. £’ С £. □ Т е о р е м а 3.3. a) £CjCx, б )£0CjCx. Д ок азательство. а) Рассмотрим язык L = [аа* |а€{0, 1}* А (О (а))}, где а — двоичный код, а — символ, л (а) — целое неотрицательное число, задаваемое двоичным кодом а. При этом полагаем, что л (X) = 0. Этот язык порождается (как префиксный) помеченной сетью Петри с Х-перехо- дами, показанной на рис. 3.4. В этой сети поочередные срабатывания пере- ходов t2 иг3, помеченных соответственно символами 0 и 1, порождают некоторое двоичное слово а. Если при этом срабатывают также переходы Г4 nts, то в местах Рз ир4 накапливаются фишки. Можно убедиться, что суммарное число фишек в обоих местах не может превысить л (а). Если после того, как породится префикса, сработает переход t6, он переместит фишку из места Pj в место ps. При дальнейшей работе сети может сраба- тывать только переход t7, помеченный символом а, причем число сраба- тываний этого перехода не может превысить л (а). Таким образом, сеть на рис. 3.4 порождает помечающие последовательности, принадлежащие языку L. Наоборот, любое слово аа*, 0<Аг <л (а), из языка L может быть поро- ждено этой сетью. Действительно, эта сеть порождает любое двоичное сло- во а в качестве помечающей последовательности. Если каждый из Х-пере- ходов г4 и ts срабатывает максимально возможное для них число раз, то в месте р4 накопится ровно л (а) фишек. После этого переход t7 может сработать любое число раз, не превышающее л (а). Покажем теперь методом от противного, что язык L не может быть префиксным языком ни одной помеченной сети Петри без Х-переходов. С этой целью допустим существование такой сети с к местами. Пусть т0 — суммарное число фишек во всех к местах сети при начальной разметке, а т — максимальное число фишек, которое может добавиться в сети при сра- батывании какого-то перехода. Тогда после лсрабатываний любых переходов сети последняя содержит не более чем т0 + тп фишек.Среди к мест они могут быть расположены не более чем (то + л т + 1)* способами. Таким образом, число различных разметок данной сети, достижимых за не более чем л шагов, не превы- шает (л>о + пт +1)*, что, в свою очередь, строго меньше 2" при достаточно большом л. С другой стороны, имеется 2” различных двоичных слов длины л. Каждое такое слово представляет целое число л (а), где 0 < л (а) < < 2” — 1. Пусть все эти слова упо- 42
рядочены в последовательность a0,ai,..., a2"_i, где л(а(- ) = 7 для 7 = 0, 1, . . ., 2” — 1. Для каждого слова а/ из этой последова- тельности должна существовать по крайней мера одна разметка Мь которая достигается после порождения помечающей последовательности а/ и начи- ная от которой можно породить слово а/а'. Если все такие разметки Мо-, Mi,..., М2п _ ] различны, то мы получаем противоречие, поскольку мы установили, что в данной сети число различных разметок, достижимых в пределах п шагов, строго меньше 2". Предположим, что для некоторых 7 и/ таких, что7=#=/, имеет место Mj = Mj. Тогда в рассматриваемой сети можно породить слово а1аг, где 1= min (7,/), г = max (7,/)- Но это слово не входит в язык L, следовательно, мы вновь приходим к противоречию. Таким образом, показано, что язык L входит в£х и не входит в£, т.е. £С£Х. 6) Если в качестве терминальной разметки для сети на рис. 3.4 взять разметку Mf = 0 и добавить Х-переходы, очищающие все места от фишек, то окажется, что язык L порождается как терминальный язык этой сети. В то же время доказательство того факта, что никакая сеть без Х-переходов не может породить язык L, относится, как к префиксным, так и к терми- нальным языкам. Отсюда следует, что £0 с £о- О Установленные в теоремах 3.1, 3.2, 3.3 соотношения между классами языков сетей Петри можно изобразить следующей схемой, в которой стрелки указывают отношение включения: £z^£ ^£х £{ ~*£ о *£<> Таким образом, оказывается, что классы терминальных языков более мощны, чем классы префиксных языков, помеченные сети Петри оказы- ваются более мощным моделирующим инструментом, чем непомеченные, а Х-переходы еще больше усиливают моделирующие способности сетей. § 3.2. Характеризация классов языков сетей Петри В теории алгоритмов и автоматов рассматриваются различные абстракт- ные системы (машины, автоматы), предназначенные для моделирования функционирования дискретных систем. Их "выразительная мощность", т.е. способность адекватно описывать сложное поведение моделируемых систем, часто характеризуется классами порождаемых ими языков, кото- рые, как и в случае языков сетей Петри, определенным образом кодируют разные возможные способы функционирования систем. Если, например, системы из класса St порождают класс языков Д, а системы из класса S2 порождают класс языков £2 и £12 £2, то говорят, что класс систем Sj мощнее класса систем S2, а если jCt D £2,то класс систем St строго мощ- нее класса систем S2. Классы Si и S2 равномощны, если £i = £2- В теории формальных языков выделены и изучены некоторые классы языков, порождаемых системами разного типа. Эти же классы языков порож- даются конечными множествами правил, называемых порождающими грамматиками. Каждая грамматика представляет собой набор И, V, 11, $0), где А — алфавит терминальных символов, V — алфавит нетерминальных символов, П - конечное множество продукций (или правил подстановки}, $о - начальный символ. 43
Продукция имеет вид а (3, где а € V , /3 € (Д U У) . Продукция а может быть применима к некоторому слову вида 6|а62 и преобразует его в слово 51/33 2 .Последовательность слов у0, yi, у2 > • • • • 7п такая, что слово у,-, 1 </ получено из слова %-! с помощью некоторой продукции из II, называется выводом в данной грамматике, а слово уп выводимо в ней из слова у0. Язык, порождаемый грамматикой, — это множество всех терми- нальных слов (слов из Д *), выводимых из слова So с помощью продук- ций из П. Класс языков, порождаемых произвольными грамматиками (нет огра- ничений на множество продукций П), совпадает с классом всех рекурсивно перечислимых множеств слов и поэтому может быть назван классом рекур- сивно перечислимых языков. Известно, что класс языков, порождаемых машинами Тьюринга [13] или машинами Минского [12], является клас- сом рекурсивно перечислимых языков. Поскольку это наиболее широкий класс языков, соответствующие классы абстрактных машин можно счи- тать "универсально мощными". Если каждая продукция в П имеет вид atSa2 -+ai(la2, где S G V; alra2 G V*. 0G (Д ОУ)*, то грамматика порождает контекст- но-зависимый язык. Если каждая продукция в П имеет вид S-+/3, где S € У и 0€(ДиУ)’, то грамматика порождает контекстно-свободный язык. Класс контекстно- свободных языков является собственным подклассом класса контекстно- зависимых языков. Контекстно-свободные языки порождаются магазин- ными автоматами [5] и играют важную роль как синтаксические модели современных языков программирования. Если каждая продукция в П имеет вид S -> S'(S или каждая продукция имеет вид S + /3S*, где /3 G (Д U У)*, aS- пустой символ или S € У, то грамматика порождает регулярный язык. Класс регулярных языков явля- ется собственным подклассом класса контекстно-свободных языков. Ре- гулярные языки порождаются конечными автоматами и поэтому называют- ся также автоматными языками. В этом разделе будет охарактеризована выразительная мощность сетей Петри путем сравнения классов языко.в сетей Петри с.вышеперечисленными Классами языков. Прежде всего сравним классы языков сетей Петри к классом £а регу- лярных языков. Регулярный язык порождается конечным автоматом, который представляет собой набор (Д, Q, /), где А — алфавит, Q — конечное непустое множество состояний автомата (О Г) А = ф), ко- торое содержит выделенное начальное состояние q0 и заключительное состояние 4?, / - программа автомата, представляющая собой множество команд - слов вида qa-*q, в которых q.q'GQ, a GA, и для любой пары (о,а) су- ществует единственная команда, начинающаяся этими символами. Конечный автомат представим в виде графа, множеством вершин кото- рого является множество Q. Из вершины q в вершину q' ведет дуга, поме- ченная символом а, в том и только в том случае, если программа автомата содержит команду qa-+q’. Среди вершин графа выделены начальная, со- ответствующая состоянию Qo> и заключительная соответствующая заключи- 44
тельному состоянию qf. Функционирование автома- та состоит в процессе прод- вижения по дугам графа на- чиная от начальной верши- ны, и чтения символов, помечающих дуги. Автомат останавливается, если и только если достигает зак- лючительной вершины, а слово, прочитанное автома- том при его движении от начальной до заключитель- ной вершины, называется словом, допускаемым авто- матом. Множество всех слов, допускаемых автома- том, образует его язык. t, р t2 Ь) Рис. 3.5. На рис. 3.5 ,а показан при- мер конечного автомата, допускающего язык {апЬт | п > 0, т > 0). Этот автомат имеет четыре со- стояния {q0, Qi, q2, q3}, заключительное состояние - (отмечено двой- ным кружком). Т е о р е м а 3.4. а) £аС£о, 6} £аС£. Доказательство, а) Любой конечный автомат, порождающий язык L над алфавитом А, можно легко преобразовать в помеченную сеть без Х-переходов, порождающую такой же терминальный язык, следующим простым образом. Каждому состоянию qt € Q автомата сопоставляется место Pj в сети Петри, каждая дуга "пересекается" переходом и этот пере- ход помечается тем же символом из А, что и эта дуга. Начальная разметка задается так, что единственную фишку содержит место, соответствующее начальному состоянию, все остальные места имеют нулевую разметку. В качестве терминальной разметки берется разметка, при которой имеет фишку только место, соответствующее заключительному состоянию. На рис. 3.5,6 показана помеченная сеть, построенная таким образом по автомату на рис. 3.5,а. Простой анализ способа построения помеченной сети по конечному автомату убеждает в том, что язык, допускаемый ав- томатом, совпадает с терминальным языком построенной сети. Тем самым показано, что £а Q£o. Однако существуют терминальные языки сетей, не являющиеся регуляр- ными. Например, на рис. 3.5,в показана помеченная сеть, в которой поме- чающая функция сопоставляет одному переходу символ открывающей скобки [, другому — символ закрывающей скобки ]. Для терминальной разметки Mf =0 эта сеть порождает терминальный язык, совпадающий с так называемым скобочным языком, слова которого представляют собой "правильно вложенные" последовательности открывающих и закрывающих скобок. Известно, что скобочный язык является контекстно-свободным (и не регулярным) и задается следующей грамматикой: So SoSo. So - [So ], So -X.
•a с Здесь [>] - символы открываю- —X "О—ук щей и закрывающей скобок, X - пус- (Р> ftA Pi той символ. Таким образом, класс а \ J b \ J £ регулярных языков является собствен- Q—J——J——-1—-О ным подклассом класса £0. д t, д, р4 z5 дб б) Префиксным регулярным язы- зе ком называют множество всех слов, ис' ' являющихся префиксами (в том числе пустыми) слов некоторого регуляр- ного языка. Префиксные регулярные языки являются регулярными языка- ми [5] и представляют собой префиксы слов, допускаемых конечными ав- томатами. Поэтому сеть Петри, построенная по конечному автомату опи- санным выше способом, порождает префиксный язык, совпадающий с пре- фиксным регулярным языком, допускаемым автоматом. Отсюда следует, что£в Q£. С другой стороны, существуют префиксные языки сетей Петри, не яв- ляющиеся регулярными. Например, сеть Петри на рис. 3.5, в порождает в качестве префиксного языка так называемый префиксный скобочный язык, слова которого являются префиксами правильно вложенных после- довательностей открывающих и закрывающих скобок. Этот язык задается следующей контекстно-свободной грамматикой: So "* S0S0, So * [So J • So * [Sq, So -+X.D Из теорем 3.1-3.4 следует, что каждый из классов языков £, £к, £0, £о включает все регулярные языки, причем отношение включения является собственным, так как эти классы содержат и нерегулярные языки, такие как скобочный язык или контекстно-свободный язык п > 0}. Пос- ледний порождается как терминальный язык для Mf = (0, 0,0,1) помечен- ной сетью, показанной на рис. 3.5, г. В качестве примеров нерегулярных языков сетей Петри мы выбрали контекстно-свободные языки. Однако не все языки сетей Петри являются контекстно-свободными и, наоборот, не все контекстно-свободные языки порождаются сетями. Следующие две теоремы подтверждают сказанное. Т е о р е м а 3.5. Существует терминальный язык, порождаемый поме- ченной сетью Петри и не являющийся контексно-свободным. Доказательство. Известно, что язык {anbncn I п > 0} не является контекстно-свободным. На рис. 3.6 показана помеченная сеть, порождаю- щая этот язык в качестве терминального для Mf - (0, 0,0, 0,1). □ Теорема 3.6. Существует контекстно-свободный язык, не порождае- мый ни одной {помеченной) сетью Петри. Доказательство. Рассмотрим контекстно-свободный язык L в алфавите {а, Ь, с}, порождаемый следующей грамматикой: Sq Sq С Sq, Sq -S, s -ss, S ~>aSb, S -+X. 46
Этот язык обобщает скобочный язык, рассмотренный в доказательстве теоремы 3.3, если отождествить а с открывающей скобкой [, b - с закры- вающей скобкой ]. Символы с как бы разделяют правильно вложенные последовательности скобок. Предположим, что язык L порождается некоторой помеченной сетью Петри (Л/, S) в качестве терминального языка. Подъязык {апЬпс | п > 0 } языка L также порождается этой сетью. Тогда эта сеть должна порождать бесконечные последовательности срабатываний. Зафиксируем некоторую бесконечную последовательность срабатываний и соответствующую ей последовательность векторов-разметок. Обозначим через Мк такую размет- ку, которая возникает после того, как сеть породила префикс ак. По лем- ме 22 для зафиксированной последовательности разметок существует та- кая пара чисел 7 и/, что 7 =#/ иЛ^ <Л#у или Му <М/. Пусть для определен- ности Mj < Mj. Рассмотрим слово a'b‘c е L. При достижении разметки Mj сеть N порождает префикс af этого слова. Рассмотрим слово a’b'c € L. При достижении разметки М, сеть Л/ порождает префикс а1 этого слова. Пусть сеть Л/' отличается от сети Л/лишь начальной разметкой, которая за- менена на Mj, а сеть N" также отличается от Л/ лишь начальной разметкой, которая заменена на Mj. Терминальный язык сети (Л/', S) содержит слово Ь'с. Терминальный язык сети (N", S) содержит, в силу свойства монотон- ности языков сетей Петри (теорема 1.1), слово bfc, потому что Mt <Mj. Следовательно, слово a7 bf с содержится в терминальном языке сети N, что противоречит предположению о совпадении этого языка с языком £.’. Таким образом, контекстно-свободный язык L не принадлежит классу JCо- Поскольку этот класс языков — максимальный в семействе классов язы- ков, порождаемых сетями Петри (теорема 3.2), то язык L не может вхо- дить ни в один из классов языков сетей Петри. □ Т е о р е м а 3.7. Класс помеченных сетей Петри строго мощнее клас- са конечных автоматов, не сравним с классом магазинных автоматов и строго менее мощен, чем класс машин Тьюринга. Доказательство. Теорема является непосредственным следствием теорем 3.1,3.3—3.6. □ § 33. Разрешимые и неразрешимые свойства языков сетей Петри Типичная массовая алгоритмическая проблема для формальных языков состоит в том, что требуется установить существование алгоритма, который для произвольного языка L, заданного порождающей грамматикой или другой порождающей системой, устанавливает, обладает ли этот язык не- которым свойством. Например, проблема принадлежности связана с про- веркой, принадлежит ли произвольное слово а языку L; в проблеме пусто- ты следует выяснить, пусто ли множество L; в проблеме конечности задача состоит в выяснении, является ли L конечным множеством. Проблемы эквивалентности и включения грамматик или других порождающих языки систем формулируются как проверка равенства или включения порождае- мых ими языков (как множеств). Известно, что в классе £а регулярных языков, порождаемых конечными автоматами, все перечисленные проблемы разрешимы. В классе контекст- но-свободных языков разрешимы проблемы принадлежности, пустоты и конечности, но не разрешима проблема эквивалентности контекстно-сво- бодных грамматик. В этом параграфе рассматриваются соответствующие проблемы для введенных выше классов языков сетей Петри. 47
Теорема 3.8. Проблема принадлежности разрешима для языков из классов £,£ou£\ Доказательство. Пусть сеть Петри N имеет множество перехо- дов Т. Для любого слова т€ Т* легко устанавливается, является ли г по- следовательностью срабатываний переходов этой сети. Действительно, достаточно проверить, может ли сработать при начальной разметке Мо пере- ход г, символ которого стоит первым в слове г, затем, изменив разметку Мо на Му, где Мо [г > М,, проверить, сможет ли сработать при переход, символ которого стоит вторым в слове т, и т.д. Так как слово т содержит конечное число символов, процедура последовательных проверок завер- шится за конечное число шагов. В любой помеченной сети (Л/, S) без Х-пере- ходов каждой помечающей последовательности а соответствует конечное число последовательностей срабатываний таких, что S(т) =а. Поэтому про- цедура проверки принадлежности слова а префиксному языку L (N, S) или терминальному языку L {N, 'E.Mj) завершается за конечное число шагов. Следовательно, проблема принадлежности в классах £ и £0 разрешима. Для выяснения принадлежности слова а языку помеченной сети с Х-пере- ходами может быть применена следующая процедура. Словоа =а,а2 — а„ длины п. входит в префиксный язык сети (Л/О,ЕО), показанной на рис. 3.7,а. В этой сети (t,) = at для 1 </ <л й место рп+1 может полу- чить фишку в том и только том случае, если выполнится последователь- ность срабатываний г(г2 • t„, порождающая слово а. Пусть (Л/, S) — произвольная помеченная сеть с Х-переходами, для которой выясняется, принадлежит ли а языку L (N, S). Строится новая сеть, получаемая "пере- сечением" сетей (Л/, S) и (Na, 2а) по одинаково помеченным переходам так, как показано на рис. 3.7,5. В построенной сети (Л/', S') место р„+1 получит фишку в том и только том случае, если а€ £. (Л/, S). В предыду- щей главе (теорема 2.7) было установлено, что существует алгоритм, с помощью которого можно узнать, получит ли данное место в сети Петри хотя бы одну фишк”. Отсюда следует и разрешимость проблемы принад- лежности произвольного слова а языку из класса □ Теорема 3.9. Проблема достижимости заданной резметки в сети Петри сводима к проблеме принадлежности для языков из класса £$. Доказательство. Пусть сеть Петри N, для которой выясняется вопрос о достижимости некоторой разметки, имеет множество мест Р = - {Pi. Р2‘ • • • ’Рп} и множество переходов T = {r1,t2,...,tm}. Преобразу- ем сеть Л/ в помеченную сеть (Л/', S) с Х-переходами следующим образом 48
(рис. 3.8). Все переходы сети N оставляем непомеченными (они становятся Х-переходами в сети (Л/', 2)). Новые места и переходы добавляются так, как показано на рис. 3.8. Новые переходы rt, г2,. • • >rn>rn+i являются Х-пе- реходами, а переходы sr, з2, ... , s„ помечены символами at,а2,...,а„ из алфавита А. Начальная разметка новой сети совпадает для мест рх, р2,... ..., р„ с начальной разметкой Мо - (т,, т2, ..., т„) сети N, место q0~ имеет одну фишку, места qx,..., qn имеют нулевую разметку. Пока место q0 в порожденной сети содержит фишку, эта сеть работает так же, как сеть N. и достигает некоторой разметки М, после чего может сработать Х-перехоД г ,. С этого момента единственный путь достижения нулевой разметки б в новой сети состоит в том, чтобы реализовалась тер- минальная последовательность срабатываний т =>'г xs^ ^р'^ r2s2^P2^ — ... г„з„('Рп^ г п+1, где s“‘p‘> означает, что символ перехода з,- входит в т столько раз подряд, сколько фишек содержит место р, при разметке М. Последовательность срабатываний т порождает помечающую последователь- ность а^р‘ )а^₽г) ...а^Рп). Таким образом, в построенной помечен- ной сети имеется возможность кодировать достижимые разметки из мно- жества R (N) словами в алфавите А и £(Л/', 2,0)={аГ‘а72 l(/n,,m2..../п„) G Я(Л/)}. Следовательно, для выяснения принадлежности некоторой разметки (/n,, т2,..., тп) множеству R (Л/) достаточно построить указанным спо- собом помеченную сеть (Л/', X) и выяснить, принадлежит ли слово а7 ‘а^*’ ... а”" терминальному языку L (N', 2,0). Сеть на рис. 3.8 пред- ставлена в стандартной форме, поэтому, с учетом леммы 3.1 и следствия из нее, проблема достижимости разметки может быть сведена к проблеме принадлежности слова к терминальному языку из класса £$ . □ Формулировку проблемы пустоты для языков сетей Петри приходится модифицировать по сравнению с обычной, так как языки сетей Петри всег- да содержат хотя бы одно слово, а именно — пустое слово X. Для префикс- ных языков из классов £ и £ к можно считать, что они не пусты, если содер- жат хотя бы одно слово, отличное от X. Терминальный язык L (N, из класса £0 или £д можно считать пустым тогда и только тогда, когда пуст свободный терминальный язык L (Л/, Mf}, последний, в свою очередь, пуст тогда, когда Mf £ Я(Л/). После уточнения формулировок легко доказы- ваются следующие теоремы. 49
Теорема 3.10. Проблема пустоты разрешима для префиксных язы- ков из классов £и £к. Доказательство. Для произвольного языка из £ или £\ порож- даемого помеченной сетью, достаточно проверить, может ли сработать при начальной разметке хотя бы один переход этой сети, помеченный некото- рым символом из помечающего алфавита (символом, отличным от X). □ Теорема 3.11. Проблема достижимости разметки и проблема пусто- ты терминальных языков из классов £0 и £о эквивалентны. Доказательство. Так как для любого терминального языка L IN, S, Mf} верно, что он пуст тогда и только тогда, когда Mf$R {N}, то проверка пустоты языка сводится к проверке достижимости разметки Mf в сети N, и наоборот. □ Теорема 3.12. Проблема конечности разрешима для префиксных языков из классов и £к. Доказательство. Пусть задан язык, порождаемый помеченной сетью (Л/, S). Он бесконечен, если и только если содержит бесконечную по- мечающую последовательность. Добавим к сети (N, S) новое место-счетчик р, которое является выходным местом всех помеченных переходов, и р' = = ф. В процессе функционирования сети после каждого срабатывания по- меченного перехода место-счетчик получает фишку. Это место ограничено тогда и только тогда, когда сеть (Л/, S) не порождает ни одной бесконеч- ной помечающей последовательности. Поскольку проблема ограниченности некоторого места в сети Петри разрешима (теорема 2.3), разрешимой яв- ляется и проблема конечности префиксных языков. □ Теорема 3.13. Проблема достижимости разметки сводима к пробле- ме конечности терминальных языков из классов £0 и £q. Доказательство. С учетом теоремы 3.11 достаточно показать, что проблема пустоты терминальных языков сводима к проблеме их конечнос- ти. Пусть порождающая заданный терминальный язык помеченная сеть представлена в стандартной форме. Добавим к сети помеченный некоторым символом переход и этот переход соединим входной и выходной Дугами с включающим местом оп. Новый переход не влияет на достижимость терми- нальной нулевой разметки. Если для исходной сети существует терминаль- ная помечающая последовательность (для Mf = О), то тогда в модифици- рованной сети существует сколь угодно длинная терминальная помечающая последовательность, получаемая за счет того, что сеть начинает работу с произвольно большого числа срабатываний добавленного перехода. Поэто- му терминальный язык модифицированной сети бесконечен в том и только том случае, если язык исходной сети не пуст. □ При решении проблем эквивалентности и включения для языков сетей Петри предполагается, что все помеченные сети определены над одним и тем же алфавитом (полученным, например, объединением алфавитов, для кото- рых заданы разные помечающие функции). Проблемы эквивалентности и включения оказываются неразрешимыми для классов языков £, £\ £0. £$, причем доказательство неразрешимости этих проблем проводится аналогично доказательству неразрешимости проб- лем Я-эквивалентности и Я-включения для сетей Петри, а именно сведением к рассматриваемым проблемам неразрешимой проблемы включения гра- фов полиномов (см. §2.3). Напомним, что граф g (f} для полинома flxif х2,... ,х„) с неотрицательными целыми коэффициентами представля- ет собой множество (Ui.....x„,y)GN" + l |y<f(xi,... ,х„)}. 50
;----A.* JO" Рис. 3.9. функцию та- Для сведения проблемы включения графов полиномов к проблеме включе- ния устраивается кодировка графов ✓ языками над помечающим алфави- [ том. При этой кодировке каждому век- I тору, принадлежащему данному графу \ полинома, взаимно однозначно сопостав- \ ляется слово кодирующего языка. Ко- дировка опирается на предположенный Париком [67] метод отображения слов в заданном алфавите А = {eIr..., а„ } в целочисленные векторы. Отображение Парика для алфавита А представляет собой кую, что для а€Д* вектор #а содержит в качестве /то компонента целое неотрицательное число, равное числу вхождений символа а, € А в слово а. Например, для алфавита A ={ai,a2,a3} и слова а =а2а1а1а2 вектор #а= = (2, 2, 0). Отображение Парика распространяется на языки над алфавитом А естественным образом: #£ | За€£: М=#а}. Лемма 3.2. Для любого полинома f (х,,..., х„) с неотрицательными целыми коэффициентами можно построить помеченную сеть (N, S) без \-nepexodoe такую, что префиксный язык HN,Z) кодирует граф g (f) полинома с помощью отображения Парика для алфавита Д =(at,... ,а„, а„+1} следующим образом: L (Л/, Е) является максимальным языком, для которого #L (Л/, Е) = g(f). Доказательство. Пусть Л/' — сеть Петри, слабо вычисляющая полином f (xj,... ,хп} (см. § 2.3). Строится помеченная сеть (Л/, S) спо- собом, указанным на рис.33. Добавляются новые переходы г!,..., г„ по одному для каждого входного места in,,..., in„ сети Л/', стартовое место оп сети Л/'. делается входным и выходным местом каждого из добавленных переходов, переход tt, 1 </ <л, соединяется выходной дугой с местом in,-, соответствующим переменной xt в полиноме. Помечающая функция Е вы- бирается таким образом, что Е (т) = ап+1 для любого старого перехода г сети N' и Е(г,) = а/ для каждого нового перехода tit 1 <7 <л, сети N. Следовательно, сеть (Л/, Е) не содержит Х-переходов. Начальная разметка Мо сети (Л/, Е) такова, что Мо (оп) = 1 иЛ#0 (in/) = 0 для всех / от 1 до л. В сети (Л/, X) ни один из старых переходов, помечен- ных символом а„+1, не может сработать, пока один из них не удалит (на- совсем) фишку из места on. Это означает, что все срабатывания новых пе- реходов в сети (Л/, X) предшествуют срабатываниям старых переходов, общих для сетей Л/' и Л/. Поэтому префиксный язык L (N, X) удовлетворя- ет следующим свойствам: 1) £(MS)Q{a,.............+ где о — операция попарной конкатенации слов из двух множеств слов {«1.....ап}‘ и {а„+1}‘; 2) для любой помечающей последовательности а€ L (N, Е) верно, что #а = (/л,,..., т„, тп+1), где л>/, 1 <7 <п, — число срабатываний перехода tt, а л>„+1 — число срабатываний всех старых переходов сети /V*. причем л)„+1 не превышает f (гл,,... ,т„). □
Так как класс префиксных языков £f является подклассом классов £к, £0 и £о (теоремы 3-1 и 3.3), то можно считать, что граф любого полинома с целыми неотрицательными коэффициентами можно кодировать описан- ным в лемме 3.2 способом с помощью языков из классов £, £0, £q. Лемма 3.3 Для любой пары помеченных сетей (Л/|,2() и (A/2,S2) можно построить помеченную сеть (Л/, S) такую, что UN, S) = £(/V,,Sl)U£(/V2,S2) и UN, S, 0) = L(Nt, Slz Mfi) U L(N2, S2, Mft), где Mf и Mfi — произвольные заданные терминальные разметки первой и второй сетей. Доказательство. Если сети (Л/|, Z t) и (Л/2, S2) представлены не в стандартной форме, их следует преобразовать в таковую способом, указанным в доказательстве леммы 3.1. Сеть IN, S) строится следующим образом: представленные в стандартной форме сети (Л/2, £,) и (Л/2,Е2) объединяются в одну сеть так, что их включащие места ont и оп2 совме- щаются в одно место (с одной фишкой в нем). Если обе исходные сети не содержали Х-переходов, то их не будет и в объединенной сети. Последняя удовлетворяет всем требованиям стандартности, а любая порождаемая ею помечающая последовательность является помечающей последователь- ностью сети (/V|, Zi) или сети (Л/2, S2) в зависимости от того, переход какой из составляющих сетей первым заберет фишку из объединенного включающего места on. Таким образом, префиксный и терминальный (для Mf = 0) языки сети (Л/, S) являются объединениями соответствующих языков заданных сетей. □ Из леммы 3.3 следует, что классы языков £, £к, £0 и £$ замкнуты относительно операции теоретико-множественного объединения, т.е. язык, полученный объединением любых двух языков из одного из этих классов, также принадлежит этому классу. Теорема 3.14. Проблемы включения и эквивалентности неразреши- мы для языков сетей Петри из классов £, £\ £0., £о • Доказательство. Пусть f3 и f2 — два полинома с целыми неотри- цательными коэффициентами и требуется узнать, g (f i) С g (f2) • Если бы проблема включения для языков из класса £ была разрешима, то достаточ- но было бы закодировать g (f i) и g (f2) языками L (N3. S t) и L {N2, S2) из £ по способу, указанному в лемме 3.2, и выяснить, £(Л/|,Х1) С Q L (Л/2, S2). Это означало бы, что проблема включения графов полиномов разрешима, что не верно. Поэтому не является разрешимой и проблема включения для языков из класса £. Так как £ С £к, £ Q £о и £ С £q, то проблема включения неразрешима и для языков из классов £х, £0, £$. Так как для произвольных двух языков Lt и L2 включение Lt С L2 имеет место тогда и только тогда, когда Ut2 = L2 и каждый из классов языков £, £х, £0, £о замкнут относительно операции объединения, то проб- лема включения для языков из этих классов легко сводится к проблеме их эквивалентности. Действительно, для того чтобы установить справедли- вость включения £ ] Q L 2, достаточно проверить равенство языков Lз = L 2, где £3 = £.] UZ.2. Отсюда следует, что проблема эквивалентности языков сетей Петри (классы£,£х,£о.£о) неразрешима.□ В табл. 3.1 суммированы сведения о разрешимых (Я) и неразрешимых (Я) свойствах классов языков сетей Петри, а также о свойствах, к анализу которых может быть сведена проблема достижимости (С). 52
Таблица 3.1 Проблемы Классы языкой^^ Принадлежности Пустоты и конечности Эквивалентности и включения £ Р р н £Х Р р н Р с н С с н Рассмотрим, как сильно локальные изменения в структуре сетей Петри влияют на порождаемые ими языки. Следующие теоремы говорят о том, что такие "малые" изменения, как удаление одного перехода или одной фишки из сети, приводят к нераспознаваемым изменениям в порождаемых языках. Теорема 3.15. Неразрешимой является проблема, изменится ли пре- фиксный или терминальный язык сети, если из нее удалить некоторый переход. Доказательство. Пусть сеть Л/имеет вид, показанный на рис3.10,а, где Ni и Л/2 — ее подсети, каждая из которых представлена в стандартной форме со специальными включающими местами ОП] и оп2, не содержащи- ми, однако, фишек. Место on является "включающим" местом в сети N, переходы 11 и г2 помечены одним и тем же символом а, который не может помечать переходы подсетей и Л/2. Обозначим через L префиксный язык L(N, S) .через £./ — язык L (N/, X), где 7 = 1, 2, через £.о — терминальный язык £(Л/, S, Mf) для некоторой тер- минальной разметки Mf, через £.0< - язык L {Nt, X, Mf (Я/)), где Я/ — мно- жество мест подсети Ц, 7=1,2. Имеют место очевидные равенства: l=a«(£1U£J)uU}, £.о ж»° Uoi U£.0J)- (Считаем, что начальная разметка Мо сети N не выбирается в качестве тер- минальной разметки Mf.) Пусть £.' и /.о обозначают префиксный и терминальный языки сети, полученной удалением из сети Л/ перехода г2 вместе с инцидентными дуга- ми. Тогда, £'=ao£,u{X), L'0=aoL0i. Из этих равенств следует, что L = L £.2 С £-1/ £-о = £-о <==* £-о 2 £-о i • Следовательно, предположение о резрешимости сформулированной в теоре- ме проблемы приводит к разрешимости проблемы Л-включения для язы- ков из классов £ и jC0 , что противоречит предыдущей теореме. □ Рис. З.Ю. S3
Теорема 3.16. Неразрешимой является проблема, изменится ли пре- фиксный или терминальный язык сети, если из некоторого ее места удалить фишку. Доказательство. Пусть сеть N на рис. 3.10,6 отличается от сети, рассмотренной в доказательстве предыдущей теоремы (рис. 3.10,а), лишь тем, что в нее добавлены еще один переход t3, в который ведет дуга из мес- та оп и из которого ведет дуга на "включающее" место подсети Л/1( и еще одно место р, из которого заведены дуги на переходы г2 и г3. Новый пере- ход помечен тем же символом а. Сеть N' будет отличаться от сети Л/лишь начальной разметкой; в которой место р не имеет фишки. Пусть £.' и L'o обозначают соответственно пре- фиксный и терминальный языки сети Л/'. Тогда £.=ао (£, u£2)u{X), Lo =а° (£.01 Ui02), £.'=ао £.! и{Х}, £.;=ао£.01. Вновь, как и в предыдущей теореме, имеем £. = £.'«=> £.2 С£.ь £.о =£.; «=>£.02 С£.О1, откуда следует неразрешимость сформулированной в теореме проблемы. □
ГЛАВА 4 ПОДКЛАССЫ СЕТЕЙ ПЕТРИ Сети Петри моделируют широкий спектр дискретных систем (с учетом теоремы 3.7), но для некоторых распространенных специальных классов систем удобно применять сети Петри не общего вида, а некоторые их под- классы, более простые и более адекватные рассматриваемым системам. Кроме того, проблемы анализа свойств сетей общего вида оказываются или неразрешимыми или достаточно сложными. Поэтому вводились и исследо- вались различные подклассы сетей Петри, получаемые в основном путем упрощения топологии (графовой структуры) сетей; некоторые из этих подклассов рассматриваются в этой главе. § 4.1. Ординарные сети Петри В определении сети Петри (см. § 1.2) присутствует функция PV, задаю- щая кратность дуг, и для срабатывания перехода г при функционировании сети требуется, чтобы каждое его входное местор имело разметку не мень- шую, чем кратность дуги, соединяющей р и г, а после срабатывания пере- хода t разметка любого его выходного места q увеличивается на кратность дуги, соединяющей t и q. В общем случае кратность дуги может быть лю- бым неотрицательным числом, но если всё дуги имеют одну и ту же крат- ность 1, то сеть относится к подклассу ординарных сетей. Для срабатывания перехода в ординарной сети Петри требуется, чтобы каждое его входное мес- то содержало хотя бы одну фишку, а после срабатывания перехода каждое его выходное место получает дополнительно по одной фишке. Наличие в сетях Петри дуг с кратностью, большей единицы, позволяет естественно моделировать реальные дискретные системы, но во многих случаях теоре- тического анализа сетей удобней ограничиться рассмотрением ординарных сетей. Возникает вопрос, насколько переносимы результаты, полученные для ординарных сетей, на общий случай сетей. Хак [43] показал,что подкласс ор- динарных сетей не является существенным сужением класса сетей Петри и по отношению к большинству своих сетей оба класса оказываются эквивалентными в том смысле, что для сети Петри с заданным набором свойств можно посроить ординарную сеть, обладающую тем же набором свойств. Предложенное Хаком преобразование произвольной сети Петри N = = (Р, Т, F, W,M0} в ординарную сеть N' - (Р', Т', F', MfQ) состоит в сле- дующем. 1) Для каждого места р &Р определяется максимальная кратность п (р) дуг, инцидентных этому месту, по формуле л(р)= max (F(p, t) + F(t,p)}. teT Так, для места р на рис. 4.1, а л(р) =3. 55
Рис. 4.1. 2) Каждому месту р € Р будет соответствовать в сети N' множество Р' (р) из п (р) мест р*,р2,... ,р" гДе л (р) - определенная выше мак- симальная кратность дуг для места р. Таким образом, общее число мест в Р' равно сумме максимальных кратностей для всех мест из Р, т.е. Р'= U Р'(р). р е Р 3) Каждому переходу t G Т соответствует в Т' единствен- ный переход, обозначаемый тем же символом г, но в сети N' появляется также множест- во Т' (р) = {г,,г2..... новых переходов, которые связывают места р*, р2,..., р" из множест- ва Р' (р) в кольцевую сеть, как показано на рис. 4.1,6. При этом, если л(р)= = 1,то новые переходы не вводятся. Таким образом,Г’ = Ти ( U Т' (р)). 4) Для каждой дуги сети N, связывающей место р с некоторым перехо- дом г и имеющей кратность kV(p, г), заводятся l/V(p,t) дуг,связывающих г с местами р1, р2,..., рп^. При этом распределение дуг в сети N' по мес- там р1, р2,..., рп^ произвольно, лишь бы не возникали ситуации, когда переход и место связаны более чем одной дугой. На рис. 4.1,в показано распределение дуг в простой сети, построенной по сети на рис. 4.1;а. Началь- ная разметка Afo (р) места р' € Р'(р) в сети N1 определяется следующим образом: MqIp1) = Af0(p), Мо(р') = 0 для />1. Анализ способа, которым конструируется ординарная сеть А/' по сети N, позволяет установить связь между свободными языками L (/V) и L (Л/') обеих сетей и множествами достижимых разметок Я (Л/) и Я(Л/'). В кольце- вой подсети ординарной сети Л/', образованной множеством мест Pf (р} и множеством переходов Т'(р), фишки могут беспрепятственно переме- щаться по местам и распределяться в них произвольным образом, если сра- батывают только переходы из Г'(р), причем сумма фишек в местах из мно- жества Р' (р) остается постоянной. Если в сети Л/ переход t € Т может сра- ботать при разметке М G Я(Л/), то переход t G Т Г) Т' может сработать в сети Л/' при разметке М' € Я(Л/') такой, что VPG >: S М'(р'} = М(р). р’ ер'(р) Таким образом, можно утверждать, что если т — последовательность срабатываний из L (Л/'), то ее проекция на Т (см. § 1.2) является последо- вательностью срабатываний из L (Л/), а для любой достижимой в сети N' раз- 56
метки М' G RIN1) существует разметка М € RW) такая, что VpeP: М(р)х S М'(р'). р'еР'(р) Т е о р е м а 4.1. Описанное преобразование сетей Петри в ординарные сети Петри сохраняет основные свойства исходных сетей — живость, огра- ниченность, консервативность. До к азатепьство. Поскольку язык L(N) состоит из последова- тельностей срабатываний, являющихся проекциями последовательностей срабатываний из L (N1) на Т, то в ординарной сети Л)' любой переход г, принадлежащий Т о г', является живым тогда и только тогда, когда t — живой в сети N. Если все переходы из Т Г> f живы в Л)', то и все "новые" переходы в Л/', принадлежащие множеству U Т’(р). живы в силу ре р устройства кольцевых подсетей, образованных местами изЯ'(р)и перехо- дами из Г'(р). Таким образом, ординарная сеть Петри Л/' жива тогда и толь- ко тогда, когда жива исходная сеть Петри N. Тот факт, что сеть N' ограничена (консервативна) тогда и только тогда, когда исходная сеть N ограничена (консервативна), непосредственно сле- дует из установленной выше связи между достижимыми разметками в множествах R(Л/) и Я(Л/').П Если исходная сеть Петри помечена символами из некоторого алфавита А, то описанное преобразование позволяет получить помеченную ординар- ную сеть Петри, порождающую те же префиксный и терминальный языки, что и исходная сеть. Для этого достаточно дополнить правила преобразова- ния правилом конструирования помечающей функции S' для ординарной сети. Она выражается через помечающую функцию S исходной сети следую- щим образом: Vr€T: Г'(г) = f Х(Г), если г € Г. если t € Т'\Т. Другими словами, "старые" переходы сохраняют в ординарной сети по- мечающие символы (в том числе символы X, если исходная сеть содержит Х-переходы), а все дополнительные переходы становятся Х-переходами. Из соотношения между свободными языками исходной и построенной се- тей и между помечающими функциями S и S' следует, что как префикс- ные, так и терминальные языки этих сетей совпадают. Это означает, что класс всех префиксных языков ординарных помеченных сетей с Х-перехо- дами совпадает с классом £к префиксных языков сетей Петри, а класс терминальных языков ординарных помеченных сетей с Х-переходами сов- падает с классом £о терминальных языков сетей Пе4ри. Предлагаецре преобразование приводит в общем случае к тому, что помеченная сеть без Х-переходов преобразуется в ординарную помеченную сеть, содержащую Х-переходы. Теорема 3.3 говорит о невозможности избавиться в общем слу- чае от Х-переходов, и, следовательно, не ясно, можно ли помеченную сеть Петри без Х-переходов преобразовать в ординарную помеченную сеть без Х-переходов. Однако в другой работе [44] Хак предложил новое преобра- зование, результатом применения которого к сети без Х-переходов является ординарная помеченная сеть (в общем случае также с Х-переходами), кото- рую можно преобразовать в эквивалентную сеть без Х-переходов. Таким образом, для любой помеченной сети Петри без Х-переходов существует эквивалентная ей помеченная ординарная сеть без Х-переходов, т.е. классы 57
префиксных и герминальных языков ординарных сетей без Х-лереходов совпадают соответственно с классами £ и £0. Обсужденные факты позво- ляют сформулировать следующую теорему. Теорема 4.2. Ординарные сети Петри генерируют те же классы язы- ков £,£0,£\ £q, что и сети Петри с кратными дугами. Если класс помеченных ординарных сетей равномощен классу помечен- ных сетей с кратными дугами по отношению к префиксным и терминаль- ным языкам, то иная ситуация складывается со свободными языками. Теорема 4.3. Класс свободных языков сетей Петри строго включает класс свободных языков ординарных сетей Петри. Рис. 4.2. Доказательство. Поскольку класс ординарных сетей является, по определению, подклассом класса сетей Петри, достаточно показать, что существует сеть с кратными дугами, которая порождает свободный язык, не порождаемый никакой ординарной сетью. Такая сеть показана на рис.4.2. Она порождает свободный префиксный язык L(N} = {, ttr 1# titit2}, а для терминальной разметки Mf = {0,0} она порождает терминальный язык UN, Mf} = {titit2}. Никакая ординарная сеть Петри не может порождать такие свободные языки. Предположим противное. Тогда сеть N' = - (Р', Т', F', М'о}, порождающая эти языки, должна иметь ровно два пере- хода — t! иГ2. 1) Предположим, что 't2 -ф или VpG *t2: AfJ (р) >0. Поскольку сеть N — ординарная, то в префиксном языке UN} = L (N'} должно содержать- ся слово, начинающееся символом перехода t2, но это не так. 2} Предположим, что Зр € t2: Mq (р) = 0. Обозначим через Р° (t2) множество всех входных мест перехода г2, имеющих нулевую разметку. Здесь возможны два подслучая. 2.1) Существует место р такое, что р € Р° (t) A р . В этом случае нулевую разметку места р не может изменить ни переход tj, ни переход г2, поэтому t2 оказывается мертвым переходом, что противоречит вхожде- нию слова tjtjt2 в язык L(N'} = L(N}. 2.2} f* (t2) Q t|, т.е. любое входное место перехода t2 с нулевой раз- меткой является одновременно выходным местом перехода tt-. В этом слу- чае язык L (Л/') должен содержать слово т2 г2, поскольку он содержит слово Г|, а срабатывание ft увеличивает на единицу разметку всех мест из Р° (tj), после чего переход t2 может сработать (так как сеть Л/'— орди- нарная) . Перечисленные случаи исчерпывают все возможные варианты сетевых связей между переходами tt и 12, но ни один из них не приемлем для по- рождения свободного языка L (Л/') = LAN}. Поэтому не существует орди- нарной сети Петри, порождающей такой язык. □ § 4.2. Автоматные сети и синхронизационные графы Два наиболее простых подкласса сетей Петри образуются за счет наложе- ния строгих топологических ограничений на структуру сети,т.е. ограниче- ний на отношения инцидентности F, связывающее места и переходы сети. 58
Сеть Петри с множеством переходов Т называется автоматной, если yt€ G7:|'t| = |t"| = 1» ТВ. если каждый переход сети имеет ровно одно входное и ровно одно выходное место. Пример автоматной сети показан на рис.4.3. Сеть Петри с множеством мест Р назы- вается синхронизационным графом (или синхрографом, или маркированным гра- фом), если | 'р | = |р‘| = 1, тл. если в каждое место сети входит ровно одна дуга и из каждого места исходит ров- но одна дуга. Пример синхрографа показан на рис. 4.4. Оба подкласса являются действительно простыми в том смыслу, что они способны моделировать только простые дискретные системы, а анализ их математических свойств несложен. Оба они являются подклассами класса ординарных сетей Петри. Из определения автоматной сети следует, что граф сети связен (из любой вершины графа можно пройти в любую вершину по пути вдоль дуг и про- тив дуг). При своем срабатывании любой переход г изымает ровно одну фишку из своего входного места р2 и помещает ровно одну фишку в свое выходное место р2 Поэтому, если переход г сработал при разметке М и изменил ее на разметку М’, то М'{р) = М (р) для всех местр, не совпадаю- щих cpi ир2. Af'(Pj) + М'(р2) = M(Pi) - 1 + М(р2) + 1 = М(р1) + М(р2). Таким образом, 2 М'(р) 2 М (р), и число фишек в автомат- ре р ре р ной сети остается постоянным при ее работе, т.е. автоматная сеть консерва- тивна и ограничена. Отсюда следует также, что автоматная сеть безопасна тогда и только тогда, когда ее начальная разметка содержит ровно одну фишку. Автоматная сеть жива тогда и только тогда, когда она представляет собой сильно связный граф, т.е. из любой вершины сети существует путь вдоль дуг в любую вершину, и ее начальная разметка содержит хотя бы одну фишку. Так как автоматная сеть ограничена, то ее граф разметок конечен, и, сле- довательно, в классе автоматных сетей разрешимы проблемы достижимос- ти разметки, проблемы живости, проблемы Я-включения и Я-эквивалент- ности, проблема эквивалентности по языкам и все другие проблемы анали- за свойств сетей. Все это следствие того, что автоматные сети представляют 59
собой, по существу; сетевую форму задания конечных автоматов. Это непосредственно следует из конечности графа разметок любой автомат- ной сети. Этот граф представляет собой не что иное, как граф конечного автомата, в котором множество состояний образовано множеством до- стижимых в сети разметок, а алфавит — символами переходов сети. По- этому на автоматные сети распространяются все результаты теории ко- нечных автоматов, и изучать этот класс в рамках теории сетей Петри не имеет смысла. В ряде случаев при определении автоматной сети накладывается до- полнительное ограничение, чтобы ее начальная разметка имела ровно одну фишку. Такие сети моделируют последовательные дискретные системы, в которых невозможны никакие параллельные события (исходное опре- деление автоматной сети допускает моделирование так называемого кон- вейерного параллелизма в дискретных системах, когда несколько фишек независимо перемещаются в сети). В то же время автоматные сети поз- воляют изображать конфликтные ситуации, когда одно и то же место- условие является входным (или выходным) для нескольких переходов- событий. В отличие от автоматных сетей синхрографы могут описывать паралле- лизм событий, но не допускают изображения конфликтных ситуаций. Основ- ные свойства сетей, и в том числе живость и достижимость разметки, рас- познаваемы в классе маркированных графов, причем на основе простого анализа структуры графа и его начальной разметки. Структурные компо- ненты, в терминах которых формулируются условия ограниченности, жи- вости и пр., — это простой путь и цикл в сети. Простой путь в сети {Р, Т, F) представляет собой последовательность (xt, х2, ..., х„) элементов сети такую, что X, Fxt+1 для 1 < / < п - 1 и х( х, для любых двух элементов сети, кроме, быть может, / = 1 и/ = п. Простой путь называется (простым) циклом, если х( = х„. В счнхрографе на рис. 4.4,а простыми циклами являются пути (tj, р2, r2, plt ), (t2,p3, t3, p4, t2), (f3, ps, t4, p6, f3). Будем говорить, что простой путь (в том числе цикл) содержит л фишек при разметке М, если п — сумма фишек в проекции М (/*') разметки М на множество мест Р' С Р, входящих в этот путь. Теорема 4.4. При функционировании синхрографа число фишек, содержащихся в любом его цикле, остается постоянным. Доказательство. Пусть (xlzx2,... ,х„) - цикл (х3 =х„) в синхрографе N и пусть, для определенности, х2 = х„ — переход t. Тогда этот цикл можно записать как последовательность (Г(,Р1, t2,. •. ,Pm<f i1 m Если 2 M (Pi) — число фишек в местахpt.......pm цикла при некоторой /= । разметке М G R(N), то при смене разметки М на М' такую, что )М', возможны два случая: t принадлежит этому циклу или t не принадлежит ему. В первом случае разметка мест р1г... ,рт не изменяется при смене М на М', так как эти места инцидентны только переходами цикла и не мо- гут получить или потерять фишки при срабатывании переходов, не входя- щих в цикл. Во втором случае срабатывание любого из переходов цикла приведет к перемещению ровно одной фишки из его входного в его выход- т ное место. Оба эти места принадлежат циклу, и поэтому 2 M'(pj} = 1 = 1 = S М(р().П i= 1 60
На рис. 4.4,а цикл (г,, р2, t() содержит две фишки при любой достижимой разметке, цикл (t2, р3, t3, р4, t2) - ни одной фишки, цикл (t3, ps. t4, р6, t3) - одну фишку. Простой путь (втом числе цикл) будем называть пустым {непустым) при разметке М, если он нё содержит ни од- ной фишки (если он содержит хотя бы одну фишку) при этой разметке. Цикл {t2,p3, t3,p4, t2) - пустой в синхрографе на рис. 4.4,а. Теорема 4.5. Переход t — потенциально живой в синхрографе, если и только если он не входит ни в один пустой при Мо цикл и ни в один пустой при Мо путь из пустого цикла. Доказательство. В силу теоремы 4.4, если переход t принад- лежит пустому при Мо циклу, то он никогда не сработает, так как его вход- ное место, входящее в пустой цикл, никогда не получит фишки. Путь из цикла в синхрографе может начинаться только переходом. Поскольку в пустом цикле этот переход мертв, то и все остальные переходы пустого пути, начинающегося в пустом цикле, мертвы. Для любого перехода в синхрографе можно выписать следующее мно- жество всех простых путей (в том числе циклов): (1) каждый путь или заканчивается этим переходом или является цик- лом, содержащим этот переход, (2) ни один из путей не является подпутем другого пути из этого мно- жества, (3) каждый путь, если это не цикл, начинается некоторым переходом, который или не имеет входных мест или принадлежит некоторому циклу. Если переход потенциально живой, то все переходы из построенного множества путей также потенциально живы. Это имеет место только тогда, когда каждый путь из этого множества обладает одним из следующих свойств: 1) он начинается переходом без входных мест (этот переход всегда мо- жет сработать), 2) рн начинается в цикле, содержащем хотя бы одну фишку при Мо, 3) он является циклом, содержащим хотя бы одну фишку при Мо. Поэтому, если переход является потенциально живым, то он не может принадлежать пустому при Мо циклу или пустому при Мо пути из такого цикла. □ В синхрографе на рис. 4.4,а потенциально живыми являются переходы 11, t4, мертвыми — переходы г2,Гз Теорема 4.6. Синхрограф является живым, если и только если любой цикл в нем не пуст при начальной разметке Мо. Доказательство. При выполнении условия теоремы любой пе- реход в синхрографе является потенциально живым, так как для него вы- полнены условия теоремы 4.5. При функционировании синхрографа ни один из циклов не может стать пустым, поэтому условия^теоремы 4.5 вы- полнены для любой достижимой разметки и, следовательно, любой из пе- реходов сети является живым, вся сеть — жива. Если синхрограф является живой сетью, то он не может содержать пус- тых при Мо циклов, так как в этом случае переходы пустого цикла будут метрвыми. □ Синхрограф на рис. 4.4,а не является живым, так как он содержит пус- той цикл (t2, р3, t3, р4, t2) В синхрографе на рис. 4.4,6, отличающемся от предыдущего начальной разметкой, все циклы непусты, поэтому он живой. В то время как любая автоматная сеть ограничена, синхронизационная сеть может содержать неограниченные места, как, например, сеть на рис. 4.5, в которой таким местом является место р2. Распознавание ограниченности 61
Рис. 4.5. и безопасности синхрографов может быть выполнено так же, как и в общем случае сетей Петри (теоремы 2.3 и 2.5 главы 2), но для живых синхрографов про- верку на ограниченность и безопасность можно сде- лать на основе анализа их структурных свойств и начальной разметки. Т е о р е м а 4.7. Живой синхрограф является огра- ниченным, если и только если каждое его место вхо- дит в некоторый цикл. Доказательство. Если место р входит в цикл синхрографа, то максимальное число фишек, которое может в нем накопиться, не превышает об- щего числа фишек в этом цикле, а оно постоянно (теорема 4.4), следовательно, место р ограничено. Если место р не входит ни в какой цикл, то оно принадлежит некоторо- му пути, который начинается или переходом без входных мест или перехо- дом в некотором цикле. В обоих случаях переход t = 'р и переход t - р' живы, так как жива сеть. При этом число срабатываний перехода Г не за- висит от числа срабатываний перехода г', так как они не входят в некото- рый цикл. Поэтому возможна такая последовательность срабатываний, в которой t срабатывает сколь угодно ббльшее число раз, чем г', и, следова- тельно, место р неограничено. □ В живом синхрографе на рис. 4.5 место р3 не ограничено, так как оно не входит ни в один цикл. В живом синхрографе на рис. 4.4,6 все места огра- ничены и он ограничен, так как выполнено условие теоремы 4.7. Теорема 4.8. Живой синхрограф безопасен, если и только если каж- дое его место входит в некоторый цикл, содержащий ровно одну фишку. Доказательство. Следствие из теоремы 4.7. □ Проблема достижимости разметки разрешима в классе синхрографов, так как она эквивалентна проблеме живости (теорема 2.14), а последняя разрешима в этом классе (теорема 4.6). § 43. Свободные сети Свободная сеть (или сеть со свободным выбором) — это сеть Петри (Р, Т, F, Мо) такая, что V (р, t) G F: р‘ = {t} \/t = {р} , т.е. любая дуга, ведущая от места к переходу, или начинается местом, из которого не выхо- дит ни одной другой дуги, или заканчивается переходом, в который не ве- дет никакая другая дуга. Пример свободной сети показан на рис. 4.6,а. В свободной сети каждое конфликтное место (место, из которого выходит более чем одна дуга) является входным для такого множества переходов, в котором при любой разметке любой (но один) из переходов может сработать или все переходы не могут сработать. Например, в сети на рис. 4£,б множество переходов {tI, t2}, которые имеют в качестве входного места конфликтное место р1, не удовлетворяет таким условиям, так как после срабатывания перехода г3 переход Г2 не может сработать. Эта сеть не является свободной. Класс свободных сетей, как видно из его определения, строго включает классы автоматных сетей и синхронизационных графов, он является под- классом ординарных сетей Петри. Для этого класса Коммонером [27] и Хаком [41] были найдены необходимые и достаточные условия живости и безопасности. Они сформулированы с использованием следующих двух специальных типов подмножеств множества мест сети. 62
Ловушкой называется не- пустое подмножество Q - = {<7|, ..., Чп } множества мест Р такое, что Q' С ‘Q, п п гдеО’= U g;,a"Q=U 'qt. i=l «=1 Другими словами, любой пе- реход, входное место которо- го принадлежит Q, содержит в Q и некоторое свое выход- ное место. Когда такой пере- ход срабатывает и забирает фишку из ловушки, то он немедленно возвращает фиш- ку в ловушку. Таким обра- зом, если Ловушка размечена, т.е. содержит хотя бы одну фишку, то при функциониро- вании сети она всегда остается размеченной, так как любая фишка, попавшая в ловушку, не может исчез- нуть из нее. Тупиком называется непустое подмножество R ={гх,... ,/*„} множества мест Р такое, что 'RQR'. Другими словами, любой переход, выходное место которого принадлежит R, содержит в R и свое входное место. Для того чтобы переход, содержащий свое выходное место в тупике, сработал и поместил фишку в тупик, нужно, чтобы он забрал по крайней мере од- ну фишку из тупика. Таким образом, если тупик nyct, т.е. не содержит ни одной фишки, то этот переход мертв. Пустой тупик остается пустым при функционировании сети, так как разметка мест в тупике не может возрастать. Заметим, что ловушка и тупик не исключают друг друга. В сильно связной сети множество Р всех ее мест обладает свойством ‘Р = Р', т.е. является одновременно ловушкой и тупиком. В сети на рис. 4.7 множество мест Q ={рх, Pj} образует ловушку, так как Q' = {t2, t3), 'Q = {tj, (2, г3) и, следовательно, Q' С 'Q. Множество мест R = {р5, р6} образует тупик, так как R ={ Г«, Г5 }, R’ = {t4, ts, tj) и 'R<ZR\ Критерий живости свободной сети основан на следующих рассуждениях. Как отмечено выше, переход, содержащий выходное место в тупике, не сможет сработать, если тупик пуст. Таким образом, сеть, при функциониро- вании которой некоторый тупик может оказаться пустым*, не будет живой. Чтобы удержать фишки в тупике нужно, чтобы тупик содержал размечен- ную ловушку. Прежде чем оформить это рассуждение в теорему, докажем две вспомогательные леммы. Для сети с множеством мест Р и для разметки М обозначим через Р° (М) множество мест {р 6 Р | М{р) =0}, т.е. множество мест без фишек при разметке М, а через Р*(М) — множество (р € р | М(р) > 0), т.е. множество мест, содержащих фишки при М. Лемма 4.1 .Для произвольного подмножества переходов S в сети Пет- ри и для произвольной разметки М, если * (’S Л Р°(М)) Q S, то или в S существует переход, могущий сработать при М, или существует пустой при М тупик R такой, что S Q R‘. 63
Доказательство. Предположим, что выполнено условие леммы и в $ нет перехода, могущего сработать бри М, т.е. V t 6 S: Г Р*(М), или что то же самое, Vt€S:'t ЛР°(М) * ф wwyt G S: t G ( Г ПР°(М))\ Отсюда следует, что SC ('$ ЛР°(Л<))'. По условию леммы ’($ ûа(Af)) С Q S, поэтому ('S Л Р° (М)) — пустой тупик. □ Лемма 4.2. Пусть в свободной сети Петри (Р, Т, F, Мо) достижима разметка М, a S QT — множество переходов, мертвых при М. Тогда сущест- вует достижимая от М разметка М' и пустой при М' тупик R такой, что SCR'. Доказательство леммы проводится индукцией по мощности множества S. Если S содержит все переходы сети, то непосредственно при- менима лемма 4.1. Это базис индукции. Каждый шаг индукции связан с уменьшением числа переходов в S, а при одном переходе в S лемма форму- лирует достаточные условия живости этого перехода. Предположим, что S совпадает с Т, т.е. | Т \ S | = 0. Так как Т — множество всех переходов сети, то включение (S ЛР° тривиально истинно. В силу леммы 4.1, если ни один из переходов множест- ва S не может сработать, то существует пустой при Мтупик R такой, что R СР° (ЛП и S С R'. Пусть теперь S СТ, т.е. | Т \ S | > 0. Построим последовательность достижимых от М разметок Ми,М{,... , Mi , М такую, что М= Ми и .при ^’имеется пустой тупик R такой, что/?£Я° (ЛГ) hSQR'. Покажем, что все переходы множества ('$)* мертвы. Предположим, что в S есть переход t, для которого существует входное место р в t, из кото- рого ведет дуга на другой переход г', принадлежащий (7)‘, и переход г' - потенциально живой. По условию леммы переход t мертвый, поэтому t' G G р'\ $. Но тогда место Р является входным для нескольких переходов, включая Г и t'. Так как сеть свободна, то переходы Г и г' имеют по одной входной дуге, и если может сработать Г*, то и Г также может сработать, что противоречит условию. Пусть М = Mt — текущая разметка при функционировании сети. Возмож- ны два случая. 1) ‘(’S Л Р°(М(-)) Q S. В этом случае применима лемма 4.1. Так как все переходы из $ мертвы, то должен существовать пустой при М, тупик R = = '(’$ Р°(Mj)) такой, что S tCR\ Этот случай доказывает лемму при tf=M{. 2) '('S Л р° (Mi)) <£ S. Тогда существует переход t G ffsn P°(Mt))\ S, для которого возможны два подслучая. 2.1) Г — мертвый переход. Это означает, что все переходы множества S' = S U {г} мертвы. Множество Т\ S' содержит на один элемент меньше, чем множество 7*\ S. По индуктивному предположению, должна сущест- вовать последовательность срабатываний г, ведущая от разметки Mi к не- которой разметке м' такой, что для нее существует пустой при м' тупик R QP°(lrf) и S С R'. Так как S С s', то лемма доказана для разметки А#'и тупика R. 2.2) Г — потенциально живой переход. Пусть Л/, + 1 — разметка, при кото- рой может сработать t, и Mi [т > Af/ + 1. Поскольку ни один из переходов из множества ("S)‘ не может появиться в последовательности т, то (’S И Р* (Mi)) Q (‘S л А»+ (Mt+1)). Так как t срабатывает и посылает фиш- кив (*S Л/>® (Mt)). то | 'SrtP°(Mi+l) |< | ’$Л /*®(М{)|. 64
Пусть теперь +i — текущая разметке. Повторяя для нее те же рассуж- дения, что и для разметки М(, мы или приходим к подслучаю 2.2, при кото- ром мощность множества (S О уменьшается, или доказываем лемму, приходя к первому случаю или подслучаю 2.1. □ Т е о р е м а 4Л. Если в свободной сети каждый тупик содержит разме- ченную ловушку, то сеть жива. Доказательство. Из леммы 4.2 следует, что если никакой из ту- пиков свободной сети никогда не сможет стать пустым ни при какой дости- жимой разметке, то никакой переход t сети не может стать мертвым ни при какой разметке. Действительно, в противнбм случае достаточно взять S и {г} и Г-тупиковую разметку М, применить лемму 4.2 и прийти к сущест- вованию пустого тупика. Таким образом, если все тупики сети не пусты ни при одной достижимой разметке, то все переходы сети живы. В свою оче- редь, если тупик содержит размеченную ловушку, то он никогда не сможет стать пустым. □ Теорема 4.9 устанавливает достаточные условия живости в классе сво- бодных сетей Петри; в работах [27,41] показано, что если свободная сеть жива, то каждый ее тупик должен содержать размеченную ловушку, в про- тивном случае среди достижимых разметок сети существует t -тупиковая разметка для некоторого перехода t сети. Таким образом, условие теоре- мы 4.9 является на самом деле необходимым и достаточным, но мы опус- каем здесь доказательство необходимости. Проиллюстрируем применимость коитерия живости свободных сетей к примерам сетей, рассмотренных в этой главе. В автоматной сети на рис. 4.3 (автоматная сеть — частный случай свободной) имеются следующие тупики (исключая тривиальный - множество всех мест): “{Ри Рз, Рз}> яа * {Pi.Pa}. Я3-{pj,p3}, и следующие нетривиальные ловушки: Qt - = {pi, Р2, Ре}. Qa - {р3, Ре}. Как видно, ни один из этих тупиков не со- держит ловушки, поэтому сеть на рис. 43 не жива. В синхронизационных графах на рис. 4.4, отличающихся лишь начальной разметкой, нетривиальные тупики: “{Pl.Pa.P3.P4.Ps}/ *2 “{Pl.Pj.P3.P4}. Я3 -{p3,P4,Ps,Pe}, ^4 “{P4.Ps.Pe}. fts ^{РъРз.Рз}. Я6-{Р1,ра}, Я7 “{рз.Ре}. Яв-{р$,р6}, нетривиальные ловушки: Qi “{РьРа.Рз.Ре.Ре}. Qi •‘{Р\.Рз,Рз,Ра}- Оз’{Рз^Рь.Рз.Рь}, Q« -{Ps.Ps.Pe}. 0$ ж{Р1.Ра.Рз}. Ое “{Pi.Pa}. О?—{Рз.Ре}. Qa“{Ps.Pe}- Любой тупик в обеих сетях содержит ловушку. В сети на рис. 4.4;б все ловушки размечены, поэтому эта сеть — живая. В сети на. рис. 4.4,а тупик Я7 = {Рз. Ре} содержит ловушку Q7 • {р3, р4), но эта ловушка не содер- жит фишек, поэтому сеть на рис. 4.4,а не является живой. В синхрогрефе на рис. 4.5 каждый из тупиков {Pi.Pa}, {Pt.Ps'i • {Рз>Ра>Рз} содержит разме- ченную ловушку {Pi, ра } или (р4,Ps}. В свободной сети на рис. 4.7 нетривиальные тупики: ^i“ {Pi.Pa, Ре, Ps.Pe}. Я2 ж(Р1,Ра,Рз»Р$/Ра}/ R3 -{Pi.Pa.Ps.Pe}. Я4 -{P4.Ps.Pe}. Яз-{р$,р6), 45
нетривиальные ловушки: Q| = {PlzP2zP4zPszPe}z Ог = {PlzJhzPjzPszPe), Qi ={Р\,Р1,Рь,Рб}, Q4 “{P1zP2/P4}. Qs={PizPs}- Все ловушки размечены, но тупики /?4 и Rs не содержат ни одну из по- вушек сети, поэтому сеть на рис. 4.7 не является живой. Действительно, последовательность срабатываний Gf4f iG приводит к тупиковой разметке (0,2,1,0,0,0). Заметим, что условия живости для автоматных сетей и синхрографов могут быть получены из теоремы 4.10 как следствия. Условия безопасности для свободных сетей Петри будем выводить толь- ко для живых сетей. Для живых свободных сетей Петри имеются необходи- мые и достаточные условия их безопасности, формулируемые без привле- чения графов разметок. В сети Петри (Р, Т, F,M0} замкнутой подсетью,задаваемой подмножест- вом мест Q Q Р, называется сеть (Q, Т', F',M'O), в которой Г' » 'Q Л Q', F1 = FO (Q X Т’ U Т' X Q), Afo = Af0 (Q). Другими словами, замкнутая под- сеть, задаваемая подмножеством мест О, включает места из О, все перехо- ды, инцидентные'Q, и все дуги, связывающие Q и Г’, а начальная разметка подсети является проекцией начальной разметки сети на места из Q. Напри- мер, в сети на рис. 43,а замкнутая подсеть, задаваемая множеством мест {РиРл}. выглядит так, как показано на рис.4.8,б, а замкнутая подсеть, задаваемая множеством мест {р2,Рз}. показана на рис. 4.8,в. Будем говорить, что сеть Петри покрыта заданной совокупностью замк- нутых подсетей, если каждое место сети входит в одну из подсетей этой совокупности. Соответствующая совокупность подсетей покрывает сеть. Например, подсети на рис. 4.4,6 и в покрывают сеть на рис. 4.4,а. Критерий безопасности живой свободной сети связан с покрытием ее замкнутыми подсетями, которые представляют собой сильно связные автоматные сети, каждая из которых содержит лишь одну фишку. Заме- тим, что такая подсеть сама является живой и безопасной сетью. Поэтому можно сказать, что свободная сеть жива и безопасна, если существует по- крытие ее живыми и безопасными подсетями. Вновь мы остановимся толь- ко на доказательстве достаточности условий живости и безопасности, хотя была доказана и их необходимость (41]. Лемма 4.3. Пусть сеть жива и безопасна при канальной разметке Мо. Если изменить начальную разметку, убрав из непустого места фишку, то полученная сеть не будет живой. Доказательство. Если бы это было не так, то вернув в получен- ную живую сеть одну фишку в то же самое место, мы получили бы, как легко видеть, небезопасную сеть. □ Рис. 4.8. 66
Лемма 4.4. В живой небезопасной свободной сети существует неогра- ниченное место. Доказательство. Из теоремы 4.9 следует, что если изменить на- чальную разметку сети, удовлетворяющей условию данной теоремы, удалив из сети все фишки, кроме фишек в ловушках, то полученная сеть останется живой. Пусть сеть работает до тех пор, пока одно из мест не получит две фишки (если при Мо не было таких мест). В каждом месте, в котором больше од- ной фишки, пометим каким-либо образом (например, закрасим в красный цвет) все фишки, кроме одной. Пусть сеть продолжит работу так, чтобы из мест убирались только не отмеченные фишки, а отмеченные не двигались. При этом каждый раз, когда в некотором месте появляется больше одной фишки, повторяем процедуру отметки и задержки отмеченных фишек. На каждом таком шаге число отмеченных фишек увеличивается. Задержа- ние отмеченных фишек не препятствует срабатыванию переходов, так как в живой сети любая достижимая разметка не является г-тупиковой ни для какого перехода f и для любого перехода каждое его входное место, имею- щее ненулевую разметку, содержит хотя бы одну неотмеченную фишку. Описываемый процесс функционирования сети с задержкой фишек может продолжаться бесконечно, а так как число отмеченных фишек растет, то найдется место, в котором оно будет расти неограниченно. □ Теорема 4.11. Если живая свободная сеть покрывается совокуп- ностью сильно связных автоматных плотных подсетей, то она безопасна. Доказательство. Число фишек в любой из покрывающих авто- матных подсетей постоянно. Общее число фишек в свободной сети ограни- чено сверху суммой фишек во всех покрывающих плотных подсетях. Тогда, по лемме 4.4, если сеть жива, то она должна быть безопасной, иначе в ней есть неограниченное место. □ Свободная сеть на рис.4.8,а содержит только один тупик{р1,р2,р3,р4}, т.е. все множество мест сети. Тупик содержит размеченную ловушку, сов- падающую с самим тупиком, поэтому эта сеть — живая. Сеть на рис. 4.8,а покрывается разными совокупностями плотных подсетей, например, авто- матными подсетями, показанными на рис. 4.8,6 и в. Однако только под- сеть на рис. 4.8,6 является сильно связной сетью. Поэтому сеть на рис. 4.8,а не является безопасной. В этом легко убедиться, выполнив, на- пример, последовательность срабатываний г4 G Г» которая приведет к разметке (0,1,2,1).
ГЛАВА 5 ОБОБЩЕНИЯ СЕТЕЙ ПЕТРИ Анализ языков, порождаемых сетями Петри, показывает, что сети Петри пр выразительной мощности, т.е. по способности адекватно моделировать поведение дискретных систем, превосходят такие классы моделей, как конечные автоматы, но все же не обладают "универсальными" возможно- стями, так как некоторые классы языков не могут порождаться сетями Петри. Это заставило искать такие обобщения сетей, которые увеличивали бы их выразительную мощность. В этой главе будет рассмотрен ряд модификаций сетей Петри, направлен- ных на усиление их моделирующих способностей, и проведено сравнение получаемых классов друг с другом и с классом сетей Петри. §5.1. Счетчиковые автоматы Рассматриваемые ниже обобщения сетей Петри приводят к универсаль- ным моделирующим системам, порождающим рекурсивно-перечислимые классы языков, т.е. к системам, равномощным машинам Тьюринга. Этот факт проще устанавливается сравнением обобщенных сетей со счет- чиковыми автоматами, модификациями машин Минского [12], которые, как известно, равномощны машинам Тьюринга. Счетчиковый автомат состоит из конечного множества счетчиков 11 </ <л}, алфавита и программы автомата. Программа автомата представляет собой связный ориентированный граф q одной начальной вершиной без входных дуг, с одной заключитель- ной вершиной без выходных дуг; из остальных вершин выходит одна или две дуги. Вершинам приписаны операторы одного из шести типов (рис. 5.1): а) начальной вершине приписан оператор старт, единственный в про- грамме, б) заключительной вершине приписан оператор стоп, единственный в программе, в) оператор прибавления единицы X/ : xt + 1 может быть приписан вершине с одной выходной дугой, г) оператор печати символа из алфавита автомата: печать а также при- писывается вершинами с одной выходной дугой, д) оператор условного вычитания единицы: если х( 0 то xt : х, — 1 может быть приписан вершинам с двумя выходными дугами. Рис. 5.1. «8
г) оператор недетерминированного перехода м также приписывается Вершинам с двумя выходными дугами. На рис. 5.1 операторы представлены в некоторой сокращенной форме. Метки у выходных дуг указывают вершины (метки операторов), на ко- торые эти дуги заводятся. Счетчиковый автомат порождает (печатает) слово в алфавите автомата, продвигаясь по программе, меняя значения счетчиков и печатая очередной символ. Движение начинается в начальной вершине. При прохождении оператора xt : х( + 1 значение счетчика х, увеличивается на 1. При про- хождении оператора если х< # 0 то х( : « X/ — 1 осуществляется проверка равенства значения счетчика х, нулю и, в зависимости от результата, осу- ществляется переход по одной из двух дуг, выходящих из данной верши- ны: по левой, если х/¥=0, и по правой, если х/»0, причем из х/ вычитается единица. Оператор недетерминированного перехода выбирает произволь- ным образом направление дальнейшего движения. При прохождении опера- тора печати автомат печатает символ на ленте автомата справа от уже на- печатанных символов, формируя таким образом на ленте некоторое слово (в начале работы автомата на ленте пустое слово). Если автомат достигает заключительную вершину, он останавливается, и результатом его работы является напечатанное им слово, в противном случае он зацикливается. Поскольку в общем случае программа автомата может содержать операторы недетерминированного перехода, то автомат, остановившийся в заключительной вершине, печатает одно из множеств слов, которые он может напечатать. Это множество слов образует язык, порождаемый автоматом. Если программа не содержит операторов не- детерминированного перехода и автомат останавливается, то язык состоит из единственного слова. Если автомат зацикливается при любом воз- можном варианте выполнения его программы, то он порождает пустой язык. Машина Минского не содержит алфавита, операторов печати и неде- терминированного перехода. Поэтому она является "числовой" машиной, задающей некоторую функцию f: N” •* N", где f {тх,. . ., mn) - вектор значений счетчиков х>, . . ., х„ при остановке машины, mi,.... т„ — на- чальные значения тех же счетчиков, функция f не определена тогда и только тогда, когда машина зацикливается. Для любой Частично-рекурсивной функции существует задающая ее машина Минского, поэтому машины Минского эквивалентны машинам Тьюринга по своим вычислительным возможностям. Теорема 5.1. Любой рекурсивно перечислимый язык может быть порожден некоторым счетчиковым автоматом. Доказательство. Известно, что любой рекурсивно перечисли- мый язык может быть взаимно-однозначно отображен в рекурсивно пере- числимое множество целых неотрицательных чисел, причем многими спо- собами. Выберем следующую кодировку К: А* N слов из алфавита 4s{at......а„} числами: К(Х) = о, Уа,€Д Vae/T: К (aza) = /+ (л + 1) • К (в). Например, кодом двоичного слова 1001 в алфавите (0,1} служит число (2 + 3 • (1 + 3 • (1 + 3 • 2))) 68, а кодом строки цифр 123 в алфавите десятичных цифр {1,.... 9 ) служит число (1 + 10 • (2 + 10 • 3))я • 321. Кодирующая функция К взаимнооднозначна, что видно из ее опре- деления, поэтому существует обратная (декодирующая) функция 69
Рис. 5.2. а) Рис. 5.3. К'1: IM сопоставляющая чис- лам слова в алфавите А. (функция К~1 является частично определенной, так как функция К отображает мно- жество А* в N, а не на N.) Счетчиковый автомат на рис. 5.2 реализует декодирующую функцию К~х, которая является частично-ре- курсивной. Этот автомат имеет два счетчика х и у, он останавливается и печатает слово К~1 (т), если т яв- ляется начальным значением счетчи- ка х и одновременно числом-кодом. В противном случае автомат зацик- ливается. Таким образом, любой рекурсив- но перечислимый язык является об- разом некоторого рекурсивно пере- числимого множества чисел при де- кодирующей функции К~х, вычис- ляемой некоторым счетчиковым ав- томатом. В свою очередь, каждое рекурсивно перечислимое множество чисел является областью значений некоторой частично-рекурсивной функции f, которая может быть за- дана машиной Минского. Следова- тельно, любой рекурсивно перечис- лимый язык может быть областью значений функции, задаваемой счет- чиковым автоматом, как показано на рис. 5.3,а. На этом рисунке фраг- мент "х : = 7(х) " соответствует под- программе, которая представляет собой программу машины Минского (без начального и заключительного операторов), задающей функцию f, а фрагмент "печать К~х (х)" являет- ся программой счетчикового автома- та на рис. 5.2 (без начального и заключительного операторов). Наконец, любой рекурсивно пе- речислимый язык может быть по- рожден счетчиковым автоматом, программа которого начинается (после оператора старт) недетерми- нированным переходом, позволяю- щим получить произвольное значение счетчика х (см. рис. 5.3, б), и затем совпадает с программой автомата на рис. 5.3, а. Язык, порождаемый ав- томатом на рис. 5.3,6, совпадает с областью значений суперпозиции функций К'Ч. □ 70
§ 5.2. Ингибиторные сети и сети с приоритетами Выше, в главе 2, мы встречались с ситуациями, когда сети Петри модели- ровали некоторые арифметические операции (§2.3). Сравнение счетчико- вых автоматов с сетями Петри показывает, что пяти из шести операторов автомата можно сопоставить фрагменты сетей Петри, имитирующие их работу. Например, оператору старт можно поставить в соответствие на- чальное место без входных дуг и с единичной разметкой (рис. 5.4,а); опе- ратору стоп — заключительное место без выходных дуг (рис. 5.4, б); опе- ратору печати символа а — переход, помеченный символом а, с одним входным и одним выходным местом (рис. 5.4,в). Оператор недетермини- рованного перехода моделируется двумя переходами с общим конфликт- ным входным местом и разными выходными местами (рис. 5.4, г). Опе- ратор прибавления единицы х,- : = xf + 1 может быть представлен пере- ходом С одним входным и одним выходным местом для моделирования управляющих связей оператора с другими операторами программы и еще одним выходным местом, которое соответствует счетчику х/ автома- та (рис. 5.4, б). Однако оператор условного вычитания единицы не удается промо- делировать средствами сетей Петри. Причина этого состоит в том, что в сети Петри можно заметить (и отметить это срабатыванием некоторого перехода) тот факт, что место сети измени- ло разметку с нулевой на нену- левую, но нельзя отметить срабатыванием перехода факт изменения разметки с ненуле- вой на нулевую. Таким обра- зом, из двух альтернатив (Xj 0 и хг = 0), содержа- щихся в операторе условного вычитания единицы, в сети Петри можно представить только одну, первую, но нель- зя отразить проверку на ноль, так как сеть не может реаги- ровать непосредственно на отсутствие фишки в месте (если это место неограничен- но, в противном случае это можно сделать косвенным путем). Келлер [54] и Коса- раю [57] обратили на этот факт внимание и показали, что сети Петри не могут моделировать машины Минс- кого и Тьюринга. Естественным в этой си- туации был шаг, сделанный Флинном и Аджервалой [16, 17], которые модифициро- вали сети Петри, введя в них специальные. ингибиторные
дуги, осуществляющие проверку на нулевую разметку, и показали, что получаемое обобщение дает класс сетей (ингибиторные сети), которые мо- гут моделировать счетчиковые автоматы и, следовательно, порождать лю- бые рекурсивно перечислимые языки. Ингибиторная сеть представляет собой сеть Петри, дополненную спе- циальной функцией инцидентности F/: Р X Т -* { 0,1}, которая вводит ингибиторные дуги для тех пар (р, г), для которых Fj(p, t) ж 1. Ингиби- торные дуги связывают только места с переходами, на рисунках их изобра- жают заканчивающимися не стрелками, а маленькими кружочками. Пра- вило срабатывания переходов вингибиторной сети модифицируется следую- щим образом. Переход t может сработать при разметке М, если Vp € 't: М(р] > Fip, t) л Mlp) • Flip, t) = 0. Другими словами, переход г может сработать, если каждое его входное местор, соединенное с t "обычной" дугой с кратностью Wip, t), содержит не менее Wlp, t) фишек, а каждое входное место, соединенное с г инги- биторной дугой (ее кратность всегда равна 1), имеет нулевую разметку. Используя ингибиторную дугу, можно промоделировать оператор услов- ного вычитания если ¥= 0 то xt . х, - 1 фрагментом ингибиторной сети, показанной на рис. 5.4, е. Место х/ соответствует счетчику xt, срабатывание перехода t' — альтернативе, связанной с выполнением условия х, # 0 и последующим вычитанием единицы из х;, срабатывание перехода г" — альтернативе, связанной с выполнением условия xt « 0. Для построения ингибиторной сети, моделирующей счетчиковый авто- мат, достаточно каждому оператору программы автомата сопоставить моделирующий его фрагмент ингибиторной сети и затем связать эти фраг- менты в единую сеть. С этой целью символы входных и выходных "управ- ляющих" мест переходов в фрагментах сети выбираются в соответствии с метками операторов в автомате, как показано на рис. 5.4, а каждому счетчику X/ автомата сопоставляется место х,. Переходы, соответствующие операторам печати, помечаются соответствующими символами, остальные переходы вводятся как Х-переходы. Фрагменты связываются в сеть путем слияния одинаково помеченных выходных и входных мест. Т е о р е м а 5.2. Любой рекурсивно перечислимый язык может быть порожден помеченной ингибиторной сетью как префиксный или терми- нальный язык сети. Доказательство. Способ, которым строится помеченная ин- гибиторная сеть, моделирующая счетчиковый автомат, непосредственно убеждает в эквивалентности терминальных языков, порождаемых обеими системами, если для сети фиксировать терминальный язык с такой резмет- кой Mf, при которой все места сети, кроме места, соответствующего опера- тору стоп, имеют нулевую разметку, а это место — единичную. Таким образом, класс £<>(/) всех терминальных языков (помеченных) ингиби- торных сетей является классом рекурсивно перечислимых языков. Класс £х (/) образован префиксами языков из класса £о (/) рекурсивно пере- числимых языков и поэтому он также является классом рекурсивно пере- числимых языков. □ При описании функционирования сетей Петри (глава П отмечался недетерминизм следующего рода: если t есколько переходов могут сра- ботать, то срабатывает любой из них. В реальных дискретных системах имеют место ситуации, когда из двух готовых работать устройств требует- ся запустить сначала одно, например, первое, а затем второе. Другими словами, одно из устройств имеет приоритет на запуск перед другим в том случаё, если оба готовы работать. Эти ситуации не моделируются П
в сетях Петри в силу принятого в них правила срабатывания нескольких готовых к срабатыванию переходов. Модифицируем определение сети Петри следующим обрезом. Введем множество приоритетов PR, элементы которогр частично упорядочены некотЬрым отношением < (меньше или равно). С каждым переходом t сети Петри свяжем его приоритет pr (г) € PR. Правило срабатывания перехода модифицируем, дополнив его условием: переход t может сра- ботать, если для любого другого перехода Г* этой сети, который может сработать по стандартному условию, pr(t') <pr(f). Другими словами, если несколько переходов готовы сработать, то срабатывает любой такой переход, приоритет которого не меньше приоритетов остальных гртовых к срабатыванию переходов. Такущ модификацию сети Петри называют сетью с приоритетами. Рис. в.5. Г' На рис. 5.5,а показан пример простой сети с приоритетами, для кото- рой в качестве множества приоритетов выбрано множество натуральных чисел и отношение совпадает с отношением "больше или равно". Пусть pr(ti) 1 < pr(ti) >2. Если Mo0i) “ 0, то ни один из переходов не может сработать. Если Мо ipi) 1 и1 Мо (pi) ж 0, то срабатывает только переход t2, который перемещает фишку из места в место р«. Если Мо (pi) « Мо (pj) »1, как показано на рис. 5.5, а, то по стандартным усло- виям оба перехода могут сработать, но поскольку pr (tj) < pr (fj, то в этой сети с приоритетами разрешено сработать только переходу Гь ко- торый лишает оба своих входных места фишек и помещает фишку на место р3. Легко заметить, сравнив данную сеть с ингибиторной сетью на рис. 5.4, е, что обе они функционируют одинаково и что поэтому сеть на рис. 5.5, а моделирует оператор условного вычитания единицы счетчико- врго автомата. Отсюда следует справедливость следующей теоремы, ана- логичной теореме 5.2 как по формулировке, так и по доказательству. Теорема 5.3. Любой рекурсивно перечислимый т^зык может быть порожден помеченной сетью с приоритетами как ве префиксный или термин нальный язык. Теорема 5.4. Проблемы ограниченности, достижимости, эквивалент- ности по префиксным и терминальным языкам, пустоты зтих языков неразрешимы для ингибиторных сетей и сетей с приоритетами. Доказательство. Для машин Минского и, следовательно, счет- чиковых автоматов неразрешима проблема остановки (бстанавливается ли машина, начав работать с заданными начальными значениями счет- чиков?) . При построении ингибиторной сети, моделирующей заданный счетчико- вый автомат, счетчику х< в сети соответствует место х,, а текущему состоя- нию счетчика xt - текущая разметка места х(. Поэтомуртроблема ограни- 73
ценности места в ингибиторной сети равносильна проблеме ограниченности счетчика в автомате. Последняя проблема неразрешима. Чтобы убедиться в этом, достаточно показать неразрешимость "более узкой" проблемы, а именно — не существует алгоритма, который для любого счетчика может установить, будет ли его начальное нулевое значение изменено хотя бы один раз, т.е. является ли счетчик О-ограниченным или нет. Преобразуем произ- вольный заданный счетчиковый автомат следующим образом. Введем дополнительный вспомогательный счетчик х, запись в который дела- ется только после того, как исходный автомат останавливается, выполнив заключительный оператор стоп. Для этого достаточно заменить этот опера- тор на последовательность операторов х : = х + 1 и стоп. Если бы была разрешима проблема О-ограниченности, то мы могли бы решать проблему остановки счетчикового автомата, воспользовавшись описанным преобразо- ванием. Таким образом, проблема О-ограниченность не может быть разре- шимой и, следовательно, неразрешима более общая проблема ограничен- ности счетчиков и проблема ограниченности ингибиторной сети. Аналогично доказывается неразрешимость проблемы ограниченности в классе сетей с приоритетами и проблемы достижимости в обоих классах обобщенных сетей. Неразрешимость проблем эквивалентности и пустоты языков следует из теоремы 5.3 и неразрешимости этих проблем для рекусивно перечисли- мых языков. □ Теорема 5.5. Классы ингибиторных сетей и сетей с приоритетами строго мощнее класса сетей Петри и равномощны классам машин Тьюрин- га и Минского, т.е. являются "универсально мощными". Доказательство. Непосредственно следует из теорем 3.6, 5.2 и 5.3. В частности, контекстно-свободный язык, относительно которого установлено в доказательстве теоремы 3.6, что он не порождается никакой из помеченных сетей Петри, порождается в качестве терминального (в том числе свободного) языка ингибиторной сети, показанной на рис. 5.5, б. □ § 5.3. Раскрашенные, синхронные и самомодифицируемые сети Описываемые в этом параграфе модификации сетей Петри предлага- лись в первую очередь для того, чтобы более адекватно и удобно выра- жать в терминах сетей особенности функционирования реальных дис- кретных систем. Эти модификации приводят к классам сетей, строго более мощным, чем класс сетей Петри. Например, при моделировании сетями Петри дискретных систем фишки часто соответствуют объектам, передаваемым от компонента к компо- ненту системы (данным в информационных системах, деталям, ресурсам и т.п.), Зачастую эти объекты имеют дополнительные атрибуты, позволяю- щие различать их и использовать эти различия для управления функцио- нированием системы. Однако фишки в сетях Петри "безлики" и не отража- ют такие различия. Пусть необходимо описать с помощью сетей Петри фрагмент операционной системы, управляющей обменами между тремя накопителями на магнитных дисках О], D2, D3 и центральным процессором ЦП через два канала А и В. При этом требуется, чтобы D, использовал канал A, D2 — канал В, D3 — оба канала А нВ. Для адекватного описания подобных ситуаций можно использовать модификацию сетей Петри, в которой фишкам приписаны некоторые признаки, например, различные цвета, а условия срабатываний переходов и правила изменения разметки сети задаются специальной таблицей, учиты- вающей цвета фишек. Пример такой раскрашенной сети показан на рис. 5.6. 74
Рис. 5.6. В этой сети использованы следующие фишки с признаками: di, dt, <h — фишки, отмечающие возможность связи с дисководами О1(О2,О3; а, b — фишки, отмечающие доступность каналов А и В; а, % S, е — вспомогательные фишки для запоминания предыстории функционирования системы. Для каждого из шести переходов сети имеется индивидуальная таблица условий срабатывания. В ней столбцы, связанные с входными местами перехода, содержат сочетание конкретных признаков фишек, при которых переход может сработать. Столбцы, связанные с выходными местами перехода, указывают признаки, с которыми переход добавляет фишки в свои выходные места для каждого входного сочетания признаков. Приз- наки фишек указаны на рисунке рядом с ними. Эта сеть моделирует упо- минавшийся выше фрагмент операционной системы. Выразительная мощность раскрашенных сетей зависит от мощности множества признаков. Класс сетей с конечным множеством признаков эквивалентен классу сетей Петри [71, 89], хотя при преобразовании рас- крашенной сети в сеть Петри могут значительно возрасти размеры сети. Сети с бесконечным множеством признаков могут моделировать счетчи- ковые автоматы, и, следовательно, класс таких сетей равномощен классам ингибиторных сетей и сетей с приоритетами. Идея моделирования проста и состоит в следующем. Целые неотрицательные числа, и в том числе О, кодируются признаками из бесконечного множества. В результате возни- кает возможность изобразить разметку М (р) места р, в том числе нулевую разметку, фишкой с соответствующим признаком. Таблицы срабатыва- ний задаются таким образом, что переход получает возможность реагиро- вать на отсутствие "обычной" фишки в некотором месте за счет того, что в этом месте присутствует фишка с признаком, соответствующим нулю. 75
Рис. 6.7. Еще одна модификация сетей связана с изменением правила функционирования се- тей - синхронные сети. В этом случае работа сети разбивается на такты. В начале каждого такта выясняется, какие переходы могут сработать (по стандартным условиям сраба- тываний) , из них выбирается некоторое мак- симальное множество Г взаимно неконфлик- тующих переходов, т.е. для которых справед- ливо следующее утверждение: Vp € Р\ 2 F(p, t) < ЛГ(р). тег' Затем все такие переходы срабатывают в любом порядке, изменяя разметку сети обыч- ным образом. На этом заканчивается такт, после чего начинается новый такт при новой, разметке. Подчеркнем, что внутри такта выб- ранное множество срабатывающих переходов не меняется. Если после срабатывания части из выбранных переходов появит- ся переход, который может сработать по стандартным условиям, он не добав- ляется к выбранным. (После срабатывания части переходов разметка не мо- жет измениться так, что для одного из выбранных, но не сработавших пе- реходов перестанут выполняться условия срабатывания.) Другими словами, срабатывания выбранных переходов внутри такта не мешают друг другу и неоказывают влияния на ситуацию других переходов. Такое изменение правил функционирования сетей приводит к увели- чению их выразительной мощности до уровня машин Тьюринга. Чтобы убедиться в этом, достаточно показать, каким образом выражается сред- ствами синхронных сетей оператор условного вычитания единицы счетчико- вого автомата. На рис. 5.7 показан соответствующий фрагмент синхрон- ной сети. Если М(р|) » 1,аМ|Х() 0, то после срабатывания перехода ti места Pi и р2 имеют единичную разметку, но может сработать только переход г2. Затем срабатывает t4 и окончательно фишка поступает в место Pf. Если М(р|) J и M(xf) ж 1, то после срабатывания перехода гt могут сработать переходы t2 и гэ. В обычных сетях Петри можно разрешить срабатывание перехода t2 и затем перехода f4 (пока не сработал переход Гз, в месте р2 остается фишка). Но в синхронной сети вместе с t2 должен сработать переход 13. Это приведет к тому, что переход t 4 не сможет затем сработать (место р2 лишилось фишки), но сработает переход и поместит фишку в место ру. В сетях с приоритетами и в синхронных сетях наметился отход от чисто локального принципа управления функционированием сети, принятого в сетях Петри, и переход к привлечению более глобальной информации о состоянии сети. В первом случае это информация о статических прио- ритетах тех переходов, которые могут сработать по стандартным условиям, во втором — о множестве всех переходов, которые готовы сработать при данной разметке. Именно в силу привлечения данных о глобальной ситуа- ции в системе и возрастает выразительная мощность сетей. Аналогичный подход просматривается в самомодифицируемых сетях Фелька (85, 86). В сетях этого класса каждой дуге (р, г) и (t, р) при- писана модифицируемая кратность V{p, t) или V(t, р). Если кратность дуги - число, то оно имеет тот же смысл, что и кратность в определении сетей Петри (см. 5 1.2). Но в качестве кратности может выступить символ 76
q некоторого места данной се- ти. В этом случае кратность дуги переменна и равна те- кущей разметкеM(q) места?. Поскольку разметка места q может динамически меняться в процессе работы сети, то и кратность тех дуг, которым сопоставлен символ q, дина- мически меняется. В результа- те число фишек, перемеща- емых одним и тем же перехо- дом от входных мест к вы- ходным местам, динамически меняется при разных срабатываниях этого перехода. Правило срабатывания перехода f изменяется следующим образом: Vp€-f: ЛГ(р)> V(₽, t), где У (р, t) - п, если дуга (р, г) помечена числом п > 1, и V(p, г) » Af (?), если дуга (р, г) помечена символом места q. Правило изменения разметки сети после срабатывания перехода г вы- глядит так: ур€Я: Л/(р) - W(p)-FM(p,t) + FM(t,p), где FM - модифицируемая функция инцидентности, определяемая следую- щим. обрезом (сравните С определением функции инцидентности F в $ 1.2): п, если xFy л V(x, у) л, где л —число, FM(x, /) M{q}. если xFy л V(x, у) - q, где q - символ места, О, если ”l(xFy). Введение модифицируемой кратности позволяет достаточно просто моделировать ингибиторные сети и сети с приоритетами. На рис. В.8 по- казано, каким образом ингибиторная дуга и фрагмент сети с приоритета- ми трансформируются во фрагменты самомодифицируемых сетей. В первом случае использован тот факт, что переход t может сработать в том случае, если его входное место р имеет нулевую разметку, но при текущей раз- метке М значение FM (р, t) М (V (р. t)) М (р') » 0, где р' - добавлен- ное в сеть место с "фиктивным" переходом Г/, без входящих вр' дуг и с разметкой, постоянно равной 0. Во втором случае место р6 влияет или не влияет на готовность перехода t2 к срабатыванию в зависимости от раз- метки места pt и входного места "конкурирующего" перехода t(. В результате на самомодифицируемые сети распространяются утвержде- ния из § 5.2, т.е. эти сети порождают класс рекурсивно перечислимых языков, и основные сетевые проблемы для них неразрешимы.
ГЛАВА 6 РЕГУЛЯРНЫЕ И ИЕРАРХИЧЕСКИЕ СЕТИ Сеть Петри определена в главе 1 как набрр, состоящий из множеств мест и переходов, отношения инцидентности и функции начальной раз- метки. Такой способ задания сетей обычен для постановки и решения теоретических задач анализа сетей. Графовую форму представления сетей Петри удобно применять в иллюстративных целях. Однако оба эти способа представления сетей не подходят для прикладных задач модели- рования дискретных систем, например, для задач, включающих автомати- ческий анализ, синтез и преобразования сетевых моделей с помощью ЭВМ. Более удобным оказывается или матричное, или аналитическое пред- ставление сетей. В первом случае сеть Петри Л/= {Р, Т, F, Мо} задается дву- мя целочисленными матрицами: А, размерности IP I X | Т\, и В, размер- ности I 7* | X | Р |, и вектором Мо длины 1Я I. Строка /, 1 <7 <| Р |, матри- цы А соответствует месту р/ G Р, столбец/, 1 </ <| Г|, матрицы А соот- ветствует переходу Г/ € Т (множества Р и Т строго упорядочиваются). Строка 7, 1 < / < | Т I, матрицы В соответствует переходу Г,- € Т, столбец /, 1 </ < | Р |, матрицы В соответствует месту Pj 6 Р. Элемент А (7, /) матрицы А равен F (pt, t,), элемент В (i, j} матрицы В равен F{tt,pj}. Вектор Мо — это вектор начальной разметки (см. § 1.2). Аналитическое представление сети Петри задает ее с помощью формулы в некоторой алгебре сетей [8, 58]. Эта формула построена из символов, задающих некоторые элементарные сети, и сетевых операций, с помощью которых описываемая сеть может быть построена из элементарных сетей. Предложенная в работах [8, 58} алгебра сетей порождает класс регуляр- ных сетей1, для которых характерно топологически регулярное строение, и дает возможность расчленить процесс анализа и конструирования се- тей на совокупность этапов, на каждом из которых достаточно иметь дело с более простыми фрагментами сети. Класс регулярных сетей формально является подклассом сетей Петри за счет топологических ограничений (ограничения на отношение инцидент- ности), которые возникают при аналитическом способе задания сетей. Однако будет показано, что этот класс эквивалентен по порождаемым языкам классу (ординарных) сетей Петри. Во второй части главы рассматривается обобщение регулярных сетей — иерархические сети, предназначенные для адекватного моделирования иерархических динамических систем. Будет показано, что иерархические сети обладают такой же выразительной мощностью, что и ингибиторные сети или сети с приоритетами. ' К сожалению, термин "регулярные сети" был также независимо использован [87] для обозначения класса сетей Петри, порождающих регулярные языки. 8 дан- ной книге он будет употребляться только в первом смысле. 78
В главе 8 мы вернемся к алгебре регулярных и иерархических сетей как к средству описания семантики структур управления асинхронных параллельных программ, на основе которого разработаны программные механизмы управления вычислениями в языках параллельного програм- мирования. § 6.1. Алгебра регулярных сетей Алгебра регулярных сетей строится с помощью операций над сетями и класса элементарных сетей. Элементарная сеть — это сеть вида a a a где а — символ-переход, Т — головное место элементарной сети, "3 — ее хвостовое место. В формульном представлении элементарная сеть обозна- чается символом перехода а. В классе регулярных сетей, который будет определен ниже, обобщено по- нятие разметки. Множество всех целых неотрицательных чисел расширено за счет введения элемента ы (см. § 1.2), который используется как размет- ка мест сети и обозначает "неограниченное число фишек" в данном месте. Такое обобщение является формальным, так как место с разметкой ы мож- но удалить из сети со всеми инцидентными дугами. Например, следующие сети эквивалентны и обладают одинаковыми свойствами: в b @-(-0-1-0 Введение мест с "бесконечной разметкой" позволит топологически струк- турировать сети Петри, не сужая, по существу, класс рассматриваемых сетей. Определим операции над сетями. Пусть Л (Л/) обозначает множество головных мест сети Л/, а / (Л/) - множество ее хвостовых мест. (Ниже указы- вается правила изменения множествh(Л/) и /(Л/), которые могут считаться индуктивными определениями множеств головных и хвостовых мест сети.) Операция наложения " , ". Эта операция — обычное теоретико-множест- венное объединение графов, дополненное правилом формирования размет- ки; с помощью этой операции одна сеть накладывается на другую. Если Л/1 = (Pj, ТМо 1) и Л/2 = (Pi, Тг, Fi, Moi), то Л/= (Л/,, Л/г )=(/*! U Яг, Т2 U Тг, F, UF2, ЛГ0 >, где Мо(р) | Л/о/0),если p£Pt, где /=1, 2, и p$Pt С\Рг, [ min (Moi (р\, Moi(p)), если р GП/>г. Пример выполнения операции наложения показан на рис. 6.1,а. По опре- делению операции, Л (Л/) = Л (Nt) U/j (Л/2), / (Л/) = / (Nt) U/ (Л/2). Операция разметки “п ( )". Мы рассматриваем эту операцию как унар- ную. Она представляет собой, по существу, множество операций, задавае- мых параметром п — целым неотрицательным числом или символом ы "бесконечного числа" фишек. Сеть Л/'=~л(Л/) совпадает как граф с 79
сетью N, но имеет другую начальную разметку М^, а именно: | л + М0(р). если pGft(/V), | Мо (р) в противном случае. tfoW - Пример выполнения операции разметки показан на рис. 6.1, б. Остальные операции над сетями определяются с помощью операции наложения и вспомогательной операции слияния мест в сети. Места, воз- никающие в результате слияния, представляют собой не символы, а мно- жества символов, что требует некоторого простого обобщения определе- ния сети Петри: место идентифицируется не символом, а множеством символов (в том числе состоящим из единственного символа). Операция слияния мест состоит в свою очередь из двух подопераций: формирования слитых мест и замены сливаемых мест слитыми. Формальное определение операции слияния мест дано в работе [8], здесь мы ограничимся неформальным описанием этой операции. Пусть X “ (xi, . . ., хп) и Y » (yt..ут) - два сливаемых множества мест сети Л/ж (Я, Т, F, Мо). Если Хили Y— пустое множество, то результат слия- ния - исходная сеть N. Операция слияния ц множества мест X и Y в сети N строит новую сеть N' д (/V, X, У) в два этапа. Сначала каждое место х/ G X копируется в m экземплярах, где m - число мест в Y, а каждое место У/ G Y копируется в л экземплярах, где л - число мест в X. Места копируются вместе с их разметкой и инцидентными дугами. Затем каждая пара мест(х/, yj) заменяется новым местом z = х/ U у; с. разметкой ао
Л4и(г) - М0[х() + Moly/) и соответствующими инцидентными дугеми. Пример выполнения операции слияния показан на рис. 6.1, в. Продолжим определение операций над сетями. Операция итерации " Эта операция унарная, она сливает множество головных и множество хвостовых мест сети и применима к сети N, если множества головных и хвостовых мест не пересекаются: /V* *W) “ р[N, h [N), UN)), где Л(/V) П UN) * 0. По определению множества головных и хвостовых мест сети N1 « ♦ (/V) совпадают друг с другом и с множеством мест, полученных слиянием головных и хвостовых мест исходной сети. Пример выполнения операции итерации показан на рис. 6.1, г. Рис. 6.2. Операция присоединения " ; ". Эта операция соединяет две сети в одну, сливая множество хвостовых мест первой сети со множеством головных мест второй сети: N (Л/( ; N2) р((Nt, N2), I (Л/1), Л (Л/2)). По опреде- лению головными местами сети являются “бывшие" головные места сети Л/1 и те места, в образовании которых участвовали места из h (Л/(); ана- логично назначаются хвостовые места сети N. Пример выполнения опера- ции присоединения показан на рис. 6.1, д. Операция исключения "1". Эта операция объединяет две сети /V( и N2 в одну сеть N (Л/a Q Л/j), сливая соответственно их головные и хвостовые места. По определению головные места сети N образованы местами, в которые вошли при слиянии мест головные места сетей Л/{ и N2; анало- гично назначаются хвостовые места сети N. Пример выполнения операции исключения показан на рис. 6.1,е. Пусть & - класс элементарных сетей, т.е. класс символов-переходов. Формула сети в алгебре, порождаемой классом и введенными выше опера- циями, определяется следующим образом: (а) символ из & - формула, (б) если А - формула, тол (А) и .(А) - также формулы, (в) если А и В - формулы, то (А, В), (А; В) и (А | В) - также фор- мулы. Формулы в предлагаемой алгебре задают класс сетей Петри, которые мы будем называть регулярными. Например, формула 1(»((а; b) М, . ((с;сО J Ь)) задает регулярную сеть, показанную на рис. 6:2. Одна и та же регулярная сеть может быть задана различными формула- ми, которые мы в этом случае считаем тождественными. Тождественные формулы могут быть трансформированы друг в друга с помощью конечной последовательности тождественных преобразований. Пусть А, В, С - произвольные формулы, л а и п2 — целые неотрицатель- ные числа или символ ы. (1) Коммутативность операций наложения и исключения: П1. (А, В) = (В, А). П2. (А | В) - (В | А). 81
(2) Ассоциативность бинарных операций: ПЗ. ((А, В),С) = (А, [В, С)). П4. ((А; В); С) = (A; (fi; С)). П5. ((А И) ЦС) = (А I (В О С)). Для того чтобы сократить число скобок в формулах, будем учитывать ассоциативность операций, записывания формулы вида ((А, В}, С} или (А, (В, С)) как (А/В, С). Кроме того, будем опускать самые внешние скобки и введем следующее старшинство операций: унарные операции связывают сильнее, чем бинарные, а операции " ; " и "] " старше, чем операция ", ". (3) Дистрибутивность операций: П6. (А, В} ; С= (А, С), (В; С}. П7.А; IB, С) = (А; В), (А; С). П8. (А,Д) О С= (А 1 С), (В | С). П9. *(А, В) = *А, *В, *(А; В}, *(В; А). П10. »(А jfl) = »А | *В = *А | В =А |*Д= (*А; *В}. (4) Рефлексивность операции наложения: П11. (А, А) = А. (5) Свойства операции разметки: П12. п, (л2А) =пг (л^) = (Л| + л2)А. П13. л(»А) = *(лА). П14. л(А, Я) = (лА, пВ}. П15. л (А; В) = (лА; В). П16. л (A J В} = (Л1А j пгВ}, гдеЛ| + л2 = л. Пример тождественных формул: сеть на рис. 6.2 задается как,формулой, приведенной выше, так и следующими формулами: 1*(в,б)|</, (c;d)]6). (*(1а;6) | Id, * (1с; d) ] * 16). Формулу А из класса всех формул регулярных сетей назовем расслоен- ной формулой,если она имеет вид (A t, А2,..., А„), л > 2, где А,- — форму- лы. Формулу А назовем стандартно расслоенной, если А/ — формулы, не содержащие операции наложения ", ". Последние будем называть при- митивными формулами, а задаваемые ими сети — также примитивными. Теорема 6.1. Класс формул регулярных сетей и его подклассы — класс расслоенных и класс стандартно расслоенных формул — тождествен- ны в том смысле, что для любой формулы существуют тождественные ей расслоенная и стандартно расслоенная формулы. Доказательство. Если А — примитивная формула, то она три- виально преобразуется в расслоенную с помощью П11: А = (А, А). Если А — не примитивная или расслоенная формула, то существует ее подфор- мула, которая не является ни примитивной, ни расслоенной и имеет вид: ((В, С); D), ИВ, С) 1 D), * (В, С), (В; (С, £>)), IB 1 (С, D)), п(В, С). 82
Применяя подходящее из преобразований П6, П7, П8, П9, П14, эту формулу можно трансформировать соответственно к одной из следующих форм: (B;D,C;D), (B;C,B;D), (В I D, С | D), (В | С, В | D), (* В, * С, * (В; С), * (С; В}}, (пВ, пС}. Таким образом, подформула преобразована в тождественную расслоен- ную формулу. Поступая аналогично с теми подформулами новой формулы А, которые не являются ни примитивными, ни расслоенными, и затем продолжая этот процесс до тех пор, пока не будет получена расслоенная формула или пока все подформулы не станут примитивными или стандарт- но расслоенными, можно получить расслоенную или стандартно расслоен- ную формулу, тождественную исходной формуле. □ § 6.2. Некоторые свойства регулярных сетей Теорема 6.1 говорит о том, что любая непримитивная регулярная сеть может быть получена из более простых сетей (в том числе — из примитив- ных) с помощью операции наложения. Такое расслоение регулярной сети позволяет расчленить процесс ее анализа или конструирования на отдель- ные этапы, на которых выступают сети с более простыми свойствами. В частности, примитивные сети весьма похожи по своим свойствам на автоматные (§ 4.1), но не совпадают с ними. В примитивной сети каж- дый переход имеет ровно одно входное и одно выходное место, сеть кон- сервативна. Графовая структура примитивных сетей более ограничена, чем у автоматных сетей, за счет ее регуляризации, получаемой при алге- браическом способе конструирования с помощью операций присоеди- нения, исключения и итерации. С другой стороны, примитивная сеть может содержать места с размет- кой со, поэтому она, в отличии от автоматной сети, может иметь бесконеч- ное множество достижимых разметок и, следовательно, не моделируется конечным автоматом. В силу этого примитивная сеть может быть неогра- ниченной, причем только в том случае, если содержит места с начальной разметкой со. Примитивная сеть имеет единственное головное и единственное хвосто- вое место, она жива, если и только если: а) она представляет собой сильно связный граф и ее начальная раз- метка содержит хотя бы одну фишку, или б) начальная разметка головного места равна ы. При поэтапном анализе регулярных сетей, последние ^удобно задавать с помощью (стандартно) расслоенных формул, затем выяснить свойства составляющих сетей, и зная, каким образом операция наложения форми- рует свойства результирующей сети, по свойствам составляющих сетей устанавливать свойства анализируемой сети. Для этого рассмотрим во- прос о том, как связаны между собой свойства составляющих и резуль- тирующей сетей. Пусть Л/ = (Л/,, Л/2). Если Pi П Р2 Ф ф, то преобразуем сеть Л/2_в сеть Л/2, заменив в сети Л/2 каждое место р & Р{ П Рг на новое место р, р $ Ф Pi и сохранив для него начальную разметку места р. Сеть N= (A/j, N'2) будем называть макетом сети N. Отметим, что формально сети Л/2 и Л/ не являются регулярными, так как содержат места, которые не кон- 83
струируются по правилам образования регулярных сетей. Более того, макет не удовлетворяет условию АЗ определения сети вообще (см. $ 1.2), так как может содержать пару мест р и р, которые инцидентны одному и тому же множеству переходов. Но поскольку макет является вспомо- гательной конструкцией, мы допускаем такое отклонение от принятого определения сети. Свойства сетей Л/ и N весьма близки друг к другу..В част- ности, если Pi Г»Р2 *ф,тоЛ/жЛ(. На рис. 6.3 показан пример двух сетей Л/( и Л/2, сеть N (Л^, Л/2) и ее макет Л/. Пусть множества мест и Р2 сетей /Vt и Л/2 упорядочены каким-либо образом. При переименовании мест из Pt Г» Рг в сети Л/2 новые^ места по- лучают порядковые номера заменяемых мест. Множество мест А макета W сети N = [N\, Ni) упорядочивается так, что сначала следуют места из согласно их порядку в Pi, а затем места из Р2, сохраняющие свой порядок. Пусть М е R(Л/), Л? € R(/V), где R(N) и Я(/у) - множества достижимых разметок сетей N и N; обозначим через М' нМ1 проекции разметок М и М на множество мест Р(, где / = 1, 2. При векторном представлении разме- ток Мо х M0to М02, т.е. вектор начальной разметки сети N — это конка- тенация векторов начальных разметок сетей Л/( и Л/2. Лемма бЛ.Ж^Сжл/,) о Я(л/2). _ Доказательство. Учитывая, что Мо = М01 « М02, получим М ж * М] ° М2 и MiG Я (Л/|), М2 € R (Л/2). Покажем, что непосредственно следующая за М в результате срабатывания некоторого перехода г раз- метка М' также представляет собой конкатенацию разметок из R(Ni) и R (Л/2}. Действительно, если г € Г(\ Т2, то в сети N его входные и вы- ходные места — это места из , поэтому М ’ = М\ о М2, где М\ — это раз- метка из R (Л/2) такая, что М! [г > М\ в сети Л/2. Аналогично, при t € Тг \ новая резметка Й'*М, ° М2, где М2 € Я(Л/2) и М2 (г>М2 в сети Л/2. Наконец, если г е Г, Г» Т2, то его входные места делятся на две неза- висимые группы: места из и места из Р[ (та. из модифицированной сети Л/2). Поэтому МMj о^.гдеМ', ежл/j, М'2 еЯ(Л/2), Mi [t>M'i в сети Ni, М2 (г > М2 в сети Л/2. Таким образом, в каждом из рассмотренных случаев разметка М' та- кая, что M(t>M' в сети N, представляет собой конкатенацию разметок 84
из R (Л/t) и R (Л/2). Начиная от начальной разметки Мо, убеждаемся, что любая достижимая в N разметка представляет собой такую конкатенацию.П Лемма 6.2. Для сети N* (A/j, Л/2) множество достижимых разметок R(N) состоит из всех теки только тех разметок, которые образованы из разметок множества R (А/) по следующему правилу: Чр е Р = Pi UP2; | М(р), если _р 6 Pi\Pt U Р2 \ р^ М[Р' “ i min(Af(p), М(р)), если р G Р2 П Р2. Справедливость этой леммы непосредственно следует из определения операции наложения и определения макета fl сети N. Заметим, в частности, чтоМо <М& шМ01,гле1 Ж1 или 2. Хотя мы рассматривали сеть Л/ • (Л/1, Л/2), составленную наложением двух сетей, ясно, что понятие макета сети и леммы 6.1 и 6.2 естественным образом обобщаются на случай, когда N (Л/2, Л/2..... Л/Л). Теорема 62. Сеть N (Л/2, Л/2,..., Л/„) ограничена, если ограни- чены сети Ni, Л/2.N„, Доказательство. Если сети Л/,, Л/2,... ,Nn ограничены, то мно- жества ЖЛ/,) /? (Л/2)...R(Nn) содержат только конечные разметки. В силу леммы 6.1 таким же будет множество , а в силу леммы 62 множество R(N) содержит только конечные разметки, т.е. сеть Л/огра- ничена. □ Лемма 6.3. В сети N ж (A/2, Л/2) разметка М' достижима от размет- ки М и переход t достижим от М, если и только если разметка Я', из ко- торой образована М', и переход t достижимы в flor 1Й, из которой обра- зована М. Доказательство. Для любого перехода t G Т = Т1 U Г2 *Т мно- жество разметок М* С Я (Л/), при которых он может сработать в N, - это те и только те разметки, которые образованы (по правилу леммь! 62) из аналогичного множества М* С.Я(АГ). Действительно, если г может сра- ботать при разметке Я Mi ° Л»2 в макете N, то VP в Р - Pi U Я2: М (р) - F (р, г) > 0. Отсюда следует, что VP в Я/:М/(р) - F/(p, Г) > 0, где 7 = 1,2. С учетом леммы 62 получаем: VP G Р:М(р) - F{p, г) > 0. С другой стороны, если г не может сработать при .разметке М в N, то он не сможет сработать при М в N, так как Зр G Р: Af (р) - f {р, Г) < 0 и, с учетом леммы 62, для того жер верно, чтоМ (р) - F (р, t) <0. В результате любой последовательности [г*>ЛГ' при функционировании сети N соответствует последовательность M{ti)Mn(г2>... [г*>ЛГ при функционировании сети N, что гаранти- рует справедливость утверждения леммы. □ Из лемм 6.2 и 6.3 непосредственнр следует Лемма 6.4. (а) Сеть N* (Л/,, Л/2) эквивалентна макетуR. (б) Сеть N жива тогда и только тогда, когда жив макет N. 85
Пусть GfA/J, G (Л/2) — графы разметок сетей Л/г и Л/2, G(Л/) и G (7V) — графы разметок сетей N = (/Vi, N2) и /V (см. § 1.2). Граф G(N) связан с графами _G (Л/1) и G (Л/2) следующим образом. Пусть вспомогательный граф G° (Л7) - это граф со множеством вершин Л(Л7) = R (TVJo Я(Л/2). Две вершины М и М' соединены в этом графе /'-дугой_(7 = 1, 2), поме- ченной символом перехода t, если и только если М = М2, М* = = М\ ° М'2, вершины, иMj соединены в G (Л/,) дугой с символом Г. Если Г G 7\ Г) Тг, в графе G°(A/( из вершины М в вершину М' ведут две дуги ^символом t: 1-дуга и 2-дуга (эти дуги будем называть парными). Граф G (Л/) отличается от графа G (Л7) тем, что в G(/V) отсутствуют: (а) все непарные дуги, помеченные символами из Г1 Г) Т2, (б) для каждой удаленной 7-дуги — все вершины (вместе с исходящи- ми дугами), на которые нельзя прийти из Мо по /-путям, где 7-путь — это путь по 7-дугам и по тем 7-дугам, которые соединяют две соседние вершины-разметки с одной и той же 7-частью разметки (7 = 1, если 7 =2, и 7=2, если 7=1). (Определение графа G(A7) неэффективно, так как все рассматривае- мые графы разметок и граф G° (Л7) могут быть бесконечными.) На рис. 6.4 показаны две (примитивные) сети = * 1 ((а; 6) [ <У) и Л/2 = * 1 ((с; d) [bh Сеть Л/ = (Л/1Г Л/2) — это сеть на рис. 6.2. Заметим, что N совпадает с /V, так как Р2 С\ Р2 = ф. На этом же рисунке изображе- ны графы G (Л/,), G (Л/2), G0 (Л7), G (Л7). ( Лемма 6.5. Если разметка М* = М 2 ° М'г достижима от разметки М = ° Мг в сети N, то разметка М\ достижима от разметки М, в сети Nj, 7 =1,2. Доказательство. Если М' достижима от М в N, то в G (7V) есть путь {М, М', М‘\. Каждое "звено" этого пути включает пару смеж- ных вершин-разметок и соединяющую их дугу. По лемме 6.1 в G (/V,-) есть пара вершин, которые являются проекциями смежных вершин звена. Если в G (7V) соединяющие дуги - это 7-дуга с символом t, то, по опреде- лению графа G (7V), в G (Л/,-) соответствующие вершины соединены дугой Рис. 6.4. 86
Рис. 6.5. с тем же символом. Если эта дуга — /-дуга, то проекции смежных вершин на Л/, совпадают (см. доказательство леммы 6.1) и им соответствует одна вершина в G(Nt). Поэтому указанному выше пути в G(/V) соответ- ствует путь в G (Л/,-) or Mi кМ/, что и доказывает утверждение леммы. □ Следствием лемм 63 и 6.5 является Теорема 63. Если в сети N = (Л/1, N2) разметка М' достижима от разметки М и переход t € Т достижим от М, то в сети Мр i = 1, 2, раз- метка М'1 и переход t достижимы отМ'. Как в случае лемм 6.1 и 6.2, леммы 63, 6.4 и теорема 63 обобщаются на случай наложения нескольких сетей. Базовым фрагментом Vр сети Петри N, где р G Р, называют подсеть, включающую место р, все дуги, инцидентные р, и все переходы из 'р (J р'. Например, для сети, показанной на рис. 6.5, а, все ее базовые фрагменты изображены на рис. 65, б. Регуляризованный базовый фрагмент (р.б.ф.) - это фрагмент, который получается из базового фрагмента следующим образом: (а) если 'р\р' ф, то вводится новое место, которое объявляется го- ловным местом р.б.ф., его разметка полагается равной ш и из него заво- дятся дуги на каждый переход из ’р\р", (б) если р'\'р & ф, то вводится новое место, которое объявляется хвостовым местом р.б.ф., его разметка полагается равной 0 и на это место заводятся дуги от каждого перехода изр* \ р; (в) если ’р\р'= ф, тор - головное местор.б4>*; (г) еслир’\р = ф, тор — хвостовое место р.б.ф. На рис. 6.5, в показаны регуляризованные базовые фрагменты, полу- ченные из базовых фрагментов на рис. 6.5, б. Р.б.ф. является регулярной сетью и р.б.ф. эквивалентен базовому фрагменту, из которого он получен. 87
Заметим, что, если Vp , VPt,..., И- - базовые фрагменты сети N и (Р\. Рг....рп) * Р. то (V₽1, V₽j....Vp } * N, т.е. сеть N - результат наложения друг на друга всех базовых фрагментов. Теорема 6.4. Класс сетей Петри и его подкласс регулярных сетей равномощен, т.е. любую сеть Петри можно преобразовать в эквивалентную регулярную сеть. Доказательств о> Алгоритм преобразования (регуляризации) сети состоит из трех этапов: (1) в заданной сети Петри выделяются все базовые фрагменты Vp , (2) каждый базовый фрагмент VPj преобразуется в регуляризован- ный базовый фрагмент UPt ; (3) формируется регулярная сеть наложением друг на друга всех полу- ченных р.бф., т.е. N' = (UPi, UPi ,...,Up ). На рис. 6.5, а показана* сеть Петри, которая не является регулярной, так как не существует задающей ее формулы. На рис. 6.5, б - все ее базо- вые фрагменты, на рис. 65, в - соответствующие р.б.ф., не рис. 6.5, г — регулярная сеть, эквивалентная исходной сети. Построенная сеть А/' эквивалентна исходной сети N. Действительно, сеть N1 отличается от сети N лишь тем, что в нее добавлены новые места и дуги, соединяющие их с переходами сети N. Ясно, что те места, которые введены как хвостовые места р.бф., не изменяют язык сети, так как из них не исходит ни одной дуги. Те места, которые введены как головные места р.бф., имеют разметку щ, и поэтому их добавление к входным местам переходов сети Nтакже не меняет язык. □ Алгебраизеция сетей и особенно расслоение их на более простые сети позволяют более последовательно решать проблему живости, переходя от частных случаев сетей ко все более сложным. Иллюстрацией сказанного могут служить следующие две простые теоремы. Теорема 6.5. Регулярная сеть N » (Л/1,..., Nn) не жива, если хотя бы одна из составляющих сетей Nt,..., N„ho живе. Доказательство. Предположим противное - сеть N жива, но одна из составляющих сетей Nt не жива, например, за счет того, что неко- торый переход.г не достижим от некоторой разметки М1 е R(Nt). Так как N жива, то переход г достижим от любой разметки М е R(N}. На основании лемм 6.1,6.2 и теоремы 63 этот переход должен быть достижи- мым в N/ от любой разметки М1 € RIN/), что противоречит предполо- жению. □ Теорема 6.5 устанавливает только необходимые условия живости регу- лярных сетей. Из того факта, что все составляющие сети Nx.Nn живы, не следует, что и результирующая сеть N * (Л/1(..., Л/„) будет живой. Например, сети Л/i и Л/2 на рис. 6.4 живы, но не является живой сеть N » (Л/,, Ni) (рис. 6.2). Легко устанавливается следующий факт. Теорема 6.6. Регулярная сеть N « (A/t, N2) жива, если N\ и N2 жи- вы, и пересечение их множеств переходов содержит не более одного пе- рехода. Регулярную сеть N « (Р, Т, F, Мо) назовем конечноразмеченной, если V р е Р, Мо (р) Ф ы. Теорема 6.7. Конечноразмеченная регулярная сеть ограничена. Доказательство. Пусть конечноразмеченная регулярная сеть N представлена стандартно расслоенной формулой (Л/i..Л/„). Возможны два случая. U
Если ни одна из сетей Л/j,..., Nn не содержит мест с си, то каждая из них ограничена и. по теореме 6.2, сеть N также ограничена. Если некоторая составляющая сеть Nt содержит место р с разметкой Мо (р) = ш, то тогда имеется в другой составляющей сети N/ место р с разметкой М& (р) - к * ы. В противном случае разметка ы проникла бы в сеть N. Заменим в сети Nt разметку Мо на разметку Мо* так, чтобы Мо (р) = к. Проделаем аналогичные изменения так, чтобы ни одна из состав- ляющих сетей не содержала мест с разметкой ш. В силу определе- ния операции наложения сеть окажется представленной новой стандарт- но расслоенной формулой .........N‘n) такой, что ни одна из составляю- щих сетей не содержит мест с разметкой со. Эта формула эквивалентна предыдущей, а все составляющие сети ограничены. Следовательно, сеть N также ограничена. □ Теорема 6.8. Проблема живости разрешима в классе конечнораз- меченных регулярных сетей. Доказательство. Пусть N — конечноразмеченная сеть, G(Л/) - ее граф разметки. Для любой вершины М из графа G (/V) выпишем мно- жество 7(М) переходов, метящих все дуги, исходящие из М. Множество Т (М) содержит те переходы, которые могут сработать в N при разметке М€Я(Л/). Сеть N жива тогда и только тогда, когда для любого перехода t Е Г и для любой вершины М в G (/V) выполнено следующее условие: если t £ 7 (М), то в G (Л/) существует путь из М в некоторую вершину М* та- кую, что t G 7 (М *). В силу теоремы 6.6 сеть N ограничена, и, следовательно, граф G (Л/) конечен. Поэтому можно непосредственно убедиться, выполнено ли для N сформулированное выше необходимое и достаточное условие жи- вости. □ § 6.3. Иерархические сети Иерархические сети являются обобщением регулярных сетей и служат для моделирования иерархических систем, которые, наряду с неделимы- ми, атомарными компонентами, содержат составные компоненты, сами представляющие собой системы (быть может, также иерархические) [9,26]. Для определения иерархических сетей и формул класс элементарных формул, т.е. класс символов переходов, разбивается на два непересекаю- щихся подкласса: терминальные символы и нетерминальные символы. Соответственно переходы разделяются на простые и составные. Терминальные символы и простые переходы трактуется точно тек же, как и в предыдущей главе. Нетерминальные символы обозначают "эле- ментарную" сеть, состоящую из единственного составного перехода (с го- ловным и хвостовым местом), который имеет внутреннюю структуру и является по существу самостоятельной (иерархической) сетью. Иерархическая сеть — это сеть, задаваемая структурной формулой. Последняя представляет собой формулу сети, которая строится из терми- нальных и нетерминальных символов с помощью операций алгебры регу- лярных сетей и упорядоченного множества определений нетерминальных символов. Каждое определение имеет вид а: А, где а — нетерминальный сим- вол, А - формула сети. Следующая структурная формула определяет 89-
иерархическую сеть, показанную на рис. 6.6: (1 • («; («, *)), 1 • (Ф>)) и : (1 (а, Ь) с) V. (1 *Л; Аг) w : ((2х, 4d; е), (2f; е)) x:(2f;g). Дополнительные контекстные ограничения состоят в следующем. (1) Любой символ, входящий в структурную формулу и не опреде- ляемый в ней, является Терминальным. Он обозначает простой переход, как и символы a, b, с, d, a, f, к на рис. 6.6. (2) Каждый нетерминальный символ определяется один раз и не может входить в формулу в правой части своего и последующих определений. Нетерминальные символы и, v, w, х на рис. 6.6 обозначают составные переходы, изображаемые прямоугольниками, внутри которых содержат- ся сети, задаваемые формулами в правых частях определений. Переход г является внутренним переходом перехода t', а переход t ’ яв- ляется объемлющим переходом для перехода f, если: (1) t содержится в правой части определения перехода t', (2) существует цепочка переходов tit t2..tk такая, что Tj = t', tk = t и для любого 7, где 2 <7 <Аг, переход t( является внутренним пе- реходом перехода tt _ i. К приведенным выше ограничениям добавляется еще одно: (3) Любые два определения нетерминальных символом могут содер- жать в своих правых частях одинаковые символы, если только они зада- ют переходы, один из которых является внутренним по отношению к другому. Это ограничение гарантирует "хорошую вложенность" состав- ных переходов в иерархической сети. Переход t' охватывает переход t, если t является внутренним перехо- дом г' и не существует в сети перехода t " такого, что t' является вну- тренним переходом t' и объемлющим для t. Переход t — охватываемый переходом г'. Рис. 6.6. 90
Переходы называются соседями, если они охватываются одним и тем же переходом или не имеют охватывающих переходов. В последнем случае они называются переходами верхнего уровня. Местор является локальным входным или выходным местом перехода t, если все переходы, связанные ср, являются соседями t или внутренними переходами соседей перехода t. В противном случае, место р является внешним входным или выходным местом перехода t. Место р является внутренним местом перехода t, если оно связано толь- ко с внутренними переходами перехода t. Место р является сторонним для перехода t, если оно не является его внутренним местом, но в t есть внутренний переход, связанный с мес- том р. На рис. 6.6 переход f является внутренним для переходов w и х, пере- ход х охватывает f. Переходы а, b и с являются соседями. Местр {f} — локальное входное место перехода f и внутреннее место в х, место {f, в} яв- ляется сторонним для х и внешним выходным местом перехода f. Иерархическая сеть функционирует, переходя от разметки к разметке, как и регулярная сеть, но правила функционирования иерархической сети отличаются от соответствующих правил для регулярной сети. Эти различия вызваны наличем составных переходов, срабатывание которых является не мгновенным событием, как в сетях Петри, а составным действием. Поэтому целесообразно говорить не о срабатывании составного перехода, а о его работе. Если связать с функционированием сети (дискретное) время, то можно говорить о том, что составной переход может находиться в одном из двух состояний — пассивном и активном. Смена пассивного состояния на активное, или активация составного перехода, и смена актив- ного состояния на пассивное, или завершение, являются мгновенными событиями. Начальное состояние всех переходов — пассивное. Будем считать, что простые переходы также могут быть активны, но их актив- ность мгновенна и активация совпадает с завершением. Переход f может быть активирован, если: (1) он пассивен, (2) охватывающий его переход активен или t является переходом верхнего уровня, (3) Ур€ Р: М (р) > F (р, г), где Р — множество всех мест в сети. Когда составной переход t активируется, происходит смена текущей разметки М сети на разметку М' по правилу Vp G Р: М'(р} = М(р} — F lp,t). Условием завершения составного перехода г служит тот факт, что все его внутренние переходы пассивны и ни один из них не может быть активирован. Когда переход t завершен, происходит смЬна текущей раз- метки М на разметку М по правилу V р G Pt: М '(р) = Мо (р). VpG Р\Pt-. М'(р) = М(р) + Fit, р), где Pt — множество внутренних мест перехода t, Р — множество всех мест сети. Другими словами, при завершении составного перехода восстанавли- вается начальная разметка его внутренних мест, а его выходные места получают дополнительные фишки. Пусть каждому составному переходу t сопоставлены два символа: символ Гактивации перехода и символ t завершения перехода. Пусть 91
также в иерархической сети множество ТТ Ts U Т U Т, где’ Tt — мно- жество простых переходов, Т - множество символов активации, Т - мно- жество Символов завершений составных переходов. В процессе функционирования иерархической сети разметка М может смениться на разметку М' в результате: (1) срабатывания простого перехода г, т.е. М [Г) М', (2> активирования составного перехода г, т.е. М(г) М (3) завершения составного перехода г, та. М[ t)M ’. Разметка М' достижима в иерархической сети от разметки М в резуль- тате последовательности срабатываний т* tit..., tk. где г/ € ТТ, если существует последовательность разметок М [г [г2>... '. Опреде- ления достижимых переходов, ограниченности сети и ее живости из 5 12 переносятся естественным образом на иерархические сети. При определе- нии свободных языков иерархических сетей появляются варианты. Полным свободным языком L [N] иерархической сети N назовем мно- жество всех последовательностей г € 7Т*, таких, что существует дости- жимая в N разметка М, причем Мо [т> М. Свободным языком LtlN} иерархической сети N будем считать проек- цию языка UN} на множество Т, та. множество последовательностей, полученных удалением символов активации и завершения составных переходов в последовательностях из L (Л/). Помеченная иерархическая сеть имеет дополнительно (частичную) помечающую функцию Z: Ts * А, которая метит только простые пере- ходы. Точно так же, как ив 8 3.1, определяются префиксный и терми- нальный языки помеченной иерархической сети. § 6.4. Сравнение иерархических сетей с другими классами сетей В этом параграфе будет проведено сравнение выразительной мощности класса иерархических сетей, класса сетей Петри и их обобщений, рассмот- ренных в главе 5. Будет показано, что иерархические сети обладают та- Рис. 6.7. кими же моделирующими способ- ностями, что и счетчиковый автомат, и, следовательно, иерархические сети являются существенным обобщени- ем сетей Петри (и регулярных сетей). Теорема 6.9. Любой рекур- сивно перечислимый язык может быть порожден помеченной иерар- хической сетью. Доказательство. Достаточ- но продемонстрировать, как в иерар- хических сетях можно промоделиро- вать оператор условного вычитания единицы счетчикового автомата. На рис. 6.7 показан фрагмент сети, моделирующий оператор если ¥= О то Xf. * х/ - 1. Место X/ соответ- ствует счетчику Xj, место Pi при- нимает "управляющую" фишку от фрагмента, соответствующего пре- дыдущему оператору, места pt- и 92
Pi" соответствуют альтернативам xt # 0 илц X/ * 0, ровно одно из них должно получить фишку в результата работы фрагмента. После того как в место Pt поступает фишка, срабатывает переход г (, посылая по фишке в три места pit рг, р«. Если место х? не содержит фишек, то переход г2 не может сработать, в результате чего не смогут сработать ни t4, ни t$, т.е. pf не получит фишки. Составной переход и в этом случае является единственным переходом, который может сработать. После его актива* ции начинает работать внутренняя сеть, содержащая единственный переход г3. Если xt не содержит фишек, то переход t3 не может сработать и состав- ной переход и завершается, посылая фишку в место р4. После этого может сработать только переход г«, который направляет фишку в место р«". Если место xt содержит фишки, то могут сработать как переход г2, так и составной переход и. Срабатывание г2 посылает фишку в место ps, после чего может сработать переход t4, забирающий фишки из мест р$, р« и посылающий фишку в р7. Параллельно с последовательностью срабатываний переходов г2, г4 активируется составной переходи. Если он начал работать раньше, чем переход г2, то его внутренняя сеть функцио- нирует в результате циклического повторения срабатываний внутреннего перехода г3. Переход и закончит работу или после того, как г2 заберет единственную фишку из места xt, или после того, как переход г4 забе- рет фишку из места р«. После завершения составного перехода место р4 получает фишку, которая позволяет сработать переходу t $ • посылающему фишку в место р(>. Переход г« не может сработать, так как в этом случае месте pi, р«,.р4 никогда не могут иметь одновременно фишки. Таким образом, фрагмент иерархической сети на рис. 6.7 моделирует оператор условного вычитания единицы. □ Из теоремы 6.9 следует, что класс иерархических сетей равномощен классам ингибиторных сетей и сетей с приоритетами, введенным в гла- ве 6. Более того, сети любого из этих трех классов эффективно преобра- зуются в эквивалентные сети из двух других классов [9, 26]. Покажем, например, что иерархическую сеть можно трансформировать в сеть с при- оритетами, которая Х-эквивалентна исходной сети в следующем смысле. Сравниваются свободный язык иерархической сети и язык помеченной сети с приоритетами (или сети другого типа), причем помечающая функция для последней сети имеет вид 2 (г) = г или 2(г) • X, т.е. помечающая функ- ция является частичной. Другими словами, так помеченная сеть отличается от непомеченной лишь наличием дополнительных Х-переходов, символы которых не используются при порождении языка сети. Теорема 6.10. Для тобой иерархической сети можно построить \-эквивалентную ей сеть с приоритетами. Доказательство. Алгоритм преобразования иерархической сети в сеть в приоритетами состоит в последовательной замене составных .переходов, начиная с таких, у которых все внутренние переходы простые, на фрагменты сети с приоритетами. Рассмотрим сначала честный случай иерархической сети, которая пред- ставляет собой единственный составной переход, все внутренние переходы которого - простые. Пусть Tt - множество внутренних переходов пере- хода г, Pt — множество его внутренних мест, Мо — начальная раз- метка сети. Преобразование будет состоять в "раскрытии" составно- го перехода. Для построения Х-эквивалентного фрагмента сети с приоритетами ко- пируется "внутренняя сеть" перехода г и его входные и выходные места. К копии добавляются следующие места и Х-переходы (см. рис. 6.8).
1) Х-первход bt с двумя выходными местами runr и епф. Этот пере- ход в сети с приоритетами будет менять разметку входных мест перехо- да t и активировать внутреннюю сеть. 2) Множество Х-переходов Ct = (crun, cPi,..., сРп}, где plr..., рп - места из Pt. Эти переходы начнут работать тогда, когда ни один из внут- ренних переходов составного перехода Г не сможет сработать, и "очи- стят" внутренние места от фишек. 3) Множество Х-переходов Dt = {dj, d2, , dm} с входными местами <7i> dm- Место q, получает фишки от перехода bt, с которым оно связано дугой. Эти Х-переходы будут восстанавливать начальную раз- метку внутренних мест после завершения работы внутренней сети. 4) Х-переход et, входным местом которого служит место endr. Этот переход будет менять разметку выходных мест перехода г и иницииро- вать восстановление разметки во внутренней сети. Для введенных переходов и простых переходов в t вводятся приори- теты следующим образом: pr (t J = ...= prUfc) > pr(Cfun) > pr lcPl ) = ...= pr (c-pj > > pr (di) = ... = pr(dm) > pr (ef) > pr(bz), где G.....tk & Tt. Введенные Х-переходы и места связываются дугами с простыми пере- ходами и местами иерархической сети следующим образом. (1) Каждое входное место из? соединяется дугой с Х-переходом bt. (2) Место run, становится входным и одновременно выходным ме- стом каждого внутреннего перехода из Г,. (3) Место run t и каждое внутреннее место pt из Pt становится вход- ным местом соответственно Х-перехода crun и Х-перехода ср.. (4) Каждое внутреннее место р/из Рг становится выходным местом I Х-переходов из Dt, где l=M0 (pf}. (5) Каждое выходное место из V становится выходным местом Х-пере- хода et. На рис. 6.8,а показан пример составного перехода, на рис. 6.8,6 — по- строенная по описанному алгоритму сеть с приоритетами. Анализ функционирования исходной иерархической сети с единствен- ным составным переходом и построенной сети с приоритетами непосред- ственно убеждает, что эти сети эквивалентны. Действительно, пока не сработает переход bt, ни один переход из Г, не может сработать, так как Ч) Рис. 6.8. 94
a) Рис. 6.9. место run г не содержит фишек. Переход Ь, может сработать только при тех условиях, при которых активируется составной переход t. После сра- батывания bt место runr получает фишку, и может функционировать подсеть, соответствующая внутренней сети перехода г. Переход bt не мо- жет повторно сработать, пока не сработает переход ег, соответствующий завершению составного перехода t, так как pr (er) > pr (bt). Поскольку приоритет внутренних переходов перехода t — наивысший, то внутренняя сеть будет функционировать до тех пор, пока ни один из этих переходов не сможет сработать. Лишь после этого может сработать переход сгип, который "выключит" внутреннюю сеть, убрав фишку из runf. Затем могут сработать остальные переходы из Ct, удаляющие все фишки из внутренних мест. Переходы из Dt могут сработать и передать начальную разметку, которая хранится в местах qt,..., qm, в соответ- ствующие внутренние места. Наконец, может сработать переход et, после чего функционирование фрагмента сети с приоритетами, соответствующего составному переходу t, заканчивается. Префиксные и терминальные языки, порождаемые в обоих случаях, совпадают. В случае произвольной иерархической сети преобразование в сеть с приоритетами состоит в последовательной замене составных переходов на фрагменты сети с приоритетами. Сначала заменяются составные пере- ходы с простыми внутренними переходами. Затем заменяются составные переходы второго уровня. При этом процедура замены составных пере- ходов второго уровня повторяет описанную выше процедуру замены составных переходов первого уровня. Однако она не затрагивает те пе- реходы и места, которые входят в уже построенные по переходам первого уровня фрагменты сети с приоритетами. Исключение составляют Х-перехо- ды bf, которые соединяются входными и выходными дугами с новым местом run. Приоритеты переходов для второго уровня ниже приоритетов перехо- дов в фрагментах для первого уровня. Приоритет Х-переходов bt, встав- ляемых вместо составных переходов второго уровня, равен приоритету, назначаемому переходам, охватываемым этими составными переходами. □ Теорема 6.11. Класс иерархических сетей равномощен классам ингибиторных сетей и сетей с приоритетами и строго мощнее классов (ординарных} сетей Петри и регулярных сетей. Доказательство. Справедливость утверждения теоремы не- медленно следует из теорем 6.9 и 5.5. На рис. 63 показаны примеры иерар- хических сетей, которые порождают языки, не принадлежащие классам языков сетей Петри. Помеченная иерархическая сеть на рис. 63,а задается структурированной формулой 1 * (Ф1 и: (иа; Ь}, (1 *а; Г) 95
и помечающей функцией 2 такой, что 2(a) =«, 2(6) “6, 2(c) “с, 2 (г) • • Л, т.е. переход t является Х-переходом. Эта сеть порождает язык, кото* рый, как было установлено в доказательстве теоремы 3.6, не порожда- ется никакой помеченной сетью Петри. Сеть на рис. 6.9,6 порождает сво- бодный язык (а, м, aab, b, ba, baa}, который не принадлежит классу сво- бодных языков сетей Петри (см. доказательство теоремы 3.2). □ § 6.5. Сети с ожиданием и строго иерархические сети Определение правил функционирования иерархической сети, данное в § 6.3, предполагает, что локальные и внешние входные места внутренних переходов в составных переходах равноправны при выяснении возмож- ности срабатывания переходов. В результате составной переход завершает- ся, если ни один из его внутренних переходов не может сработать, так как хотя бы одно из его входных мест, безразлично - локальное или внешнее, не имеет фишек. Рассмотрим, например, иерархическую сеть на рис. 6.10. Если составной переход и перешел в активное состояние, а переход а еще не сработал, то переход b не может сработать и тогда переход и завершается и становится пассивным. Здесь место р, внешнее место для перехода b и стороннее место для составного перехода и, служит как бы "внешним выключате- лем" для внутренней сети перехода и: если р содержит фишку, то внут- ренняя сеть функционирует (срабатывает переход 6), а отсутствие фишек в р немедленно завершает и (переход b не срабатывает при этом). Мож- но изменить семантику функционирования иерархической сети таким об- разом, чтобы сторонние места служили не выключателями, а "внешними задержками": в случае сети на рис. 6.10 и описанной выше ситуации (пере- ход а не сработал), хотя переход b не может сработать, переход и не за- вершается, а ждет появления фишек в месте д Условием завершения пе- рехода и будет служить тот факт, что локальное входное место перехода b не содержит фишек. Таким образом, можно ввести новый тип иерархических сетей — саги с ожиданием, синтаксис которых полностью совпадает с синтаксисом иерар- хических сетей из § 6.3, но семантика изменяется за счет изменения усло- вия завершения составного перехода. В иерархической сети с ожиданием активный составной переход и может завершиться, если для любого его внутреннего перехода г верно, что (а) переход t пассивен, (б) не выполняется локальное условие активации перехода Г: Vp е ри,- Mip}-F(p,t} > о, где Put — множество локальных входных мест перехода г. Сети с ожиданием более адекватно, чем "простые" иерархические сети, описывают и моделируют, например, структуры операционных систем, для которых типичны параллельные процессы с ожиданием: процесс ждет ин- формацию, вырабатываемую другими процессами, или процесс ждет осво- бождения ресурса, захваченного другими процессами. Обозначим через S ( класс иерархических сетей, введенных в § 63, а через (S2 - класс иерерхических сетей с ожиданием. Пару иерархических сетей — одна сеть /V, из класса Si и вторая сеть Л/2 из класса Sj — назо- вем подобными, если они задаются одной и той же формулой сети. Теорема 6.12. Для любой пары подобных сетей Nx €Si и Л/j €S2 верно: UN £(Л/а), где UN) - полный свободный язык иерархической сети N, 96
Рис. 6.10. Доказательство. Любой переход г, который может стать активным в N2 при начальной раз. метке Мо> может стать активным и в Nt при Мо, так как различие между сетями из St и из S2 связа- но только с условиями завершения составных переходов. Начальная разметка Мо сменится на одну и ту же разметку Mi в обоих сетях, потому что топология сетей Nx и Л/2 одинакова. Следовательно, для любой последовательности срабаты- ваний т Г(, tj, . . ., t„ из L (Л/г) верно, что t( € 7Т является и первым символом некоторой последова- тельности г’ G L {Nx). Индукцией по длине последовательностей из L (N2) легко устанавливается, что в £ (A/t) существует т" = г. В то же время в L (Л/1) могут существовать последовательности сраба- тываний, которые не входят в L (Л/2 )• Они возникают в том случае, когда некоторый составной переход может завершиться в Nx, послать фишки в свои выходные места и тем самым активировать другие переходы, а в N2 этот переход не может завершиться, так как ожидает появления фишек в сторонних местах. Например, для подобных сетей Nt и N2 со структурой сети, изображенной на рис. 6.10, соответствующие языки имеют вид: £(/Vj) = {а, й, ай, На, йаЬ, aub, йаЬи, autiu, йаЬис, айЬис, йи, и и а, йис, йиас, йиса}, L[N2}a (а, й, ай, йа, йаЬ, aub, йаЬй, айЬй, йаЬис, айЬис}. Здесь й обозначает активирование составного перехода и а П - его за- вершение. □ Теорема 6.13. Любую иерархическую сеть с ожиданием из S2 мож- но преобразовать в \-зкеивалентную сеть из класса S\. Доказательство. Достаточно в каждый составной переход и до- бавить Х-переходы dx, d2,...,dn по одному на каждый охватываемый переходом и переход ti...t„, имеющий хотя бы одно внешнее вход- ное место. Входными и одновременно выходными местами Х-перехода d,- назначаются локальные входные места перехода tj, 1 < i < л. Пере- ходы di,..., dn не позволяют завершиться составному переходу и в по- строенной сети, пока для всех них не окажутся ложными условия актива- ции, которые совпадают с локальными условиями активаций переходов /1»• • •» • СЗ На рис. 6.11,а показан пример составного перехода сети с ожиданием, * на рис. 6.11, б — фрагмент Х-эквивалентной сети из класса St. Теорема 6.14. Произвольную ингибиторную сеть можно преобразо- вать в 'К-эквивалентную иерархическую-свть с ожиданием из класса S2. Доказательство. Преобразование осуществляется в три этапа. На первом этапе ингибиторная сеть преобразуется в Х-эквивалентную ингибиторную сеть, обладающую следующим свойством: любой переход сети содержит среди своих входных и выходных мест не более одного места, из которого исходит ингибиторная дуга. На втором этапе полученная ингибиторная сеть представляется как результат наложения базовых фраг- ментов 1/₽1, VPi...VPn, где {pir р2....рп} - множество всех мест W
сети. Для каждого фрагмента ингибиторной сети строится Л-эквивалентный фрагмент сети с ожиданием. Наконец, третий этап состоит в сборке иско- мой сети из класса $2 с помощью операции наложения. 1-й этап. Исходная сеть преобразуется в X-эквивалентную ингиби- торную сеть таким образом, чтобы никакая пара базовых фрагментов вто- рой сети не содержала один и тот же переход. Если ни один переход исход- ной сети не содержит среди своих входных и выходных мест более одного места, инцидентного ингибиторной дуге, то она остается без изменений. В противном случае для каждого перехода а, не удовлетворяющего вы- шеприведенному требованию, добавляется Л-переход Тв, дополнительные места с некоторой разметкой и дуги,, соединяющие эти места с переходами сети. Число дополнительных мест и конфигурация новых связей зависят от того, как связан переход с местами, инцидентными ингибиторным дугам (назовем такие места ингибиторными). а) Пусть переход а имеет два входных ингибиторных места (см. при- мер на рис. 6.12, а). Добавляются четыре места (места р\, р'з, Рз, Pt на рис. 6.12, б). Первые два места являются копиями двух ингибиторных мест, имеют ту же разметку и в них заводятся новые дуги от тех переходов. от которых' ведут дуги в ингибиторные места. Из одного нового места заво- дится дуга на переход а, из другого - ta. Два других места связываются дугамй с переходами а и ta так, как показано на рис. 6.12, б, и в место Рз помещается фишка. Эти два места разрешают переходам а и ta работать только поочередно. Можно непосредственно убедиться, что такое преобра- зование приводит к Х-эквивалентной сети. Преобразование легко обоб- щается на случай более двух входных ингибиторных мест. б) Пусть переход а имеет вход- ное pi и выходное рз ингибитор- ные места (см. пример на рис. 6.13, е). В этом случае добав- ляются два дополнительных места Рз и Р4 и дополнительные дуги. Места Рз и рд играют ту же роль, что и одноименные места в пре- дыдущем случае. Кроме того, и: места р4 заводится дуга на пере- ходы, связанные ингибиторными дугами с местом р2. Наличие этой дуги не разрешает этим переходам сработать в том случае, когда мес- то рз имеет нулевую разметку, 98
<L) Рис. 6.13. переход а сработал, а Х-переход ta еще не сработал и не поместил фишку в место р2. в) В случае, если а имеет дм выходных ингибиторных места, добав- ляются места Рг, Р4 и дуги заводятся так же, как и в предыдущем случае. Дуга, ведущая из а на одно из мест, "передается" Х-переходу ta. Остальные случаи наличия нескольких ингибиторных мест у перехода а представляются как комбинации рассмотренных случаев, и последователь- но применяются описанные преобразования. Во всех случаях, если переход а имеет среди своих входных мест такое место Р, на которое не ведет ни одна дуга, то к этому месту присоединяется Х-переход с одним вход- ным местом р. Начальная разметка места р становится нулевой, а место р' получает разметку места р. Это необходимо для того, чтобы на после- дующих этапах место р стало внешним местом для составного перехода, содержащего переход а. 2-й этап. Построенная на первом этапе ингибиторная сеть представ- лИется как результат наложения ее базовых фрагментов. Если базовый фрагмент не содержит ингибиторных дуг, то этот фрагмент объявляется без изменений фрагментом сети из класса S2. В противном случае базовый фрагмент Vp (рис. 6.14, а) преобразуется во фрагмент Wp иерархической сети с ожиданием так, как показано на рис. 6.14, а (число переходов, свя- занных с местом р дугами одного типа, несущественно). Фрагмент Wp со- стоит из двух составных переходов, отличающихся разметкой внутренних мест р и р\ места р° и перехода с. Месту р в Vp соответствуют ^ри места р, р* и р° в Wp. В мастер0 фишка может появиться, только если разметка мест р или р* становится нулевой. Наличие двух составных переходов одинаковой структуры вызвано тем фактом, что в составном переходе начальная разметка его внутренних мест восстанавливается после завершения перехода. Если место р в Vp Рис. 6.14. W
имеет ненулевую разметку т, то после завершения перехода и, т.е. после того как место р, лишится всех фишек, разметка т в нем восстановится. Поэтому вместо перехода и следующий раз начнет работать переход v, в котором место р+, аналогичное месту р, не содержит фишек. (Заметим, что если р в Vp имеет рулевую разметку, составной переход v можйо элиминировать в И/р.) 3-й этап. Осуществляется наложение фрагментов сети из класса S2, построенных по всем базовым фрагментам промежуточной ингибиторной сети. Затем для каждого фрагмента Wp из любого внешнего места, связан- ного дугами с переходами а и b в составном переходе и, заводятся такие же дуги для переходов г2 и t3 в составном переходе v. Одинаковые мет- ки переходов элиминируются методом, описанным в работе [43], и прово- дится регуляризация сети. Преобразование исходной ингибиторной сети в иерархическую сеть с ожиданием завершено. □ Теорема 6.15. Класс S2 иерархических сетей с ожиданием равномо- щен классу Si •иерархических сетей, классу ингибиторных сетей и классу сетей с приоритетами. Он строго мощнее класса сетей Петри и класса регу- лярных сетей. Доказательство. Из теоремы 6.13 следует, что класс Si мощнее класса S2. Ранее было показано (теорема 6.11), что класс St равномощен классу ингибиторных сетей и сетей с приоритетами. Теорема 6.14 говорит о том, что класс S2 мощнее класса ингибиторных сетей. Отсюда следует, что все эти классы сетей равномощны. Тот факт, что класс сетей с ожиданием строго мощнее классов сетей Петри и регулярных сетей, непосредственно следует из теоремы 6.11.0 Запретив использование в иерархических сетях мест, которые являются внешними для внутренних переходов составных переходов, можно выде- лить класс иерархических сетей So, который образует собственный под- класс как класса St, так и класса S2. Назовем сети из класса So строго иерархическими. Из определений всех трех классов следует, что So “ Si ri ris2, так как в классе So условия завершения составных переходов свя- заны только с локальными местами этих переходов. Возникает вопрос, ка- ковы моделирующие возможности строго иерархических сетей? Теорема 6.16. Класс строго иерархических сетей строго мощнее классов сетей Петри и регулярных сетей. Доказательство. Сети на рис. 6.9 являются строго иерархически- ми, так как не содержат мест, сторонних для составных переходов. Как установлено в теореме 6.11, эти сети порождают языки, не принадлежащие классам языков сетей Петри. □ В то же время класс строго иерархических сетей оказывается не "уни- версально мощным". В работе [9] показано, что класс ингибиторных се- тей строго мощнее класса So, так как существуют ингибиторные сети, для которых нет Х-эквивалентных сетей из класса So. Примером такой сети может служить ингибиторная сеть на рис. 6.12, а. В целом сравнительный анализ выразительной мощности иерархических сетей и сетей Петри показывает, что введение иерархии в сетевые модели существенно улучшает моделирующие способности моделей. В свою оче- редь наличие межуровневых связей в иерархических системах увеличивает сложность их функционирования, и такие системы не моделируются "хо- рошо структурированными" сетями такими, как строго иерархические сети.
ГЛАВА 7 СЕТИ-СИСТЕМЫ И СЕТИ-ПРОЦЕССЫ Сеть Петри является абстракцией динамической системы в том смысле, что ее переходы соответствуют событиям в системе, а места — условиям наступления событий. Событие — это некоторый факт в системе, обычно трактуемый как потенциальное действие компонента системы, которое может осуществляться один, несколько раз или ни разу. Функционирование системы в целом (или некоторой ее части — подсистемы) порождает про- цесс - аранжированную во времени или некоторым другим способом совокупность реализаций событий (действий} и изменений условий. В об- щем случае система может порождать разные процессы, а множество всех процессов, порождаемых системой, полностью характеризует динамику по- ведения системы. Одним из способов изучения множества всех процессов, порождаемых системой, служит изучение языков соответствующей сети Петри. Однако языки сети Петри недостаточно полно отражают поведение моделируемой системы. Для описания процессов, исследования их свойств и изучения связей между свойствами нужна некоторая синтаксическая форма представления процессов (протоколы процессов). В этой главе рассматриваются методы сетевого представления процессов и устанавливаются взаимосвязи между свойствами сетей, моделирующих системы, и свойствами сетей, модели- рующих процессы. Идея разработки общей теории систем и процессов в терминах сетей восходит к ранним работам К. Петри, конкратизируется в статье [74] и развивается в ряде последующих работ Петри и других авторов [77, 21, 22, 23]. В работах [10, 15] так же, как и в данной главе, понятие парал- лельного процесса обобщается за счет допущения в процессах наряду с параллелизмом действий (и условий) альтернативы, возникающей в тех случаях, когда разрешено в процессе указывать набор взаимоисключающих действий, а также конкуренции, исключающей строгий параллелизм (одно- временность), но допускающей произвольный порядок следования дей- ствий. Изучение взаимосвязи между сетями-системами и сетями-процессами нацелено прежде всего на выявление требований к осмысленным, "хорошо устроенным*' сетям, моделирующим "реалистичные" системы и процессы. С этой целью вводится ряд структурных свойств для сетей-процессов, с помощью которых выделяются хорошо устроенные сети-процессы. Затем формулируются требования к сбтям-системам, которые могут порождать только такие, хорошо устроенные процессы. Этот круг исследований еще далеко не завершен, но в силу его важности для целенаправленного развития общей теории сетей, опирающейся на строгие базовые семантические понятия, мы приводим в этой главе неко- торые начальные результаты, говорящие о продвижении в данном направ- лении. 101
§ 7.1. Процессы При определении функционирования сети Петри были использованы такие понятия, как граф разметок, множество достижимых разметок, мно- жество последовательностей срабатываний (см. 5 1.2). Путь а графе разме- ток от корневой вершины или последовательность срабатываний можно рассматривать как представление некоторого процесса, порождаемого сетью Петри, в форме линейно упорядоченной последовательности симво- лов переходов и разметок мест или просто символов переходов. В послед- нем случае такая последовательность - это слово а алфавите Т, а все мно- жество возможных в сети процессов характеризуется свободным языком Рис. 7.1. сети Петри. Этих понятий достаточно было для формулировки и анализа математических свойств сетей, но они не всегда адекватно отражают струк- турные и поведенческие аспекты сетей, в честности, при сопоставлении их с поведением моделируемых систем, особенно если речь идет о моделирова- нии параллельных асинхронных систем. В этих случаях представление про- цессов в виде последовательностей реализаций событий отодвигает на вто- рой план такие отношения между ними, как параллелизм или конфликты из-за ресурсов. Например, простая сеть на рис. 7.1, а порождает для Afy«0 свободный терминальный язык {t|t}, Этот язык описывает мно- жество возможных строгих упорядочений действий в процессах, порождае- мых данной сетью. При этом оказывается, что такой же свободный терми- нальный язык порождается показанной на рис. 7.1, б сетью Петри другой структуры и с процессами другого характера. Действительно, в системе, моделируемой первой сетью, события г, и fa могут произойти одно- временно (т.е. в множестве возможных процессов существует процесс, в котором события t( и ta параллельны). С другой стороны, среди про- цессов, порождаемых второй сетью, такого процесса нат: события г, и г» могут реализоваться в любом последовательном порядке, но только не од- новременно. Можно протоколировать процессы с помощью временных диаграмм, в которых по одной оси откладывается дискретное время, а по другой - выполнившиеся действия. Этот способ описания процессов, во-первых, громоздок, а во-вторых, обладит томи недостатками временного представ- ления процессов в асинхронных системах, о которых говорилось в 51.1. Поиск новых форм представления процессов, которые были бы избав- лены от указанных недостатков, приводит к идее задания процессов в виде структур сетевого типа, подобных структурам порождающих эти процессы систем. При таком определении процесс выглядит как совокупность реали- заций событий и изменений условий системы, связанных отношениями разного типа, и задает, по существу, не единственный временной протокол функционирования системы, а некоторое множество временных протоко- 102
лов. различающихся конкретными привязками действий ко врамени. Другими словами, процесс представляет собой класс эквивалентности для враменнь1х протоколов, в котором эквивалентные протоколы характери- зуются одним и тем же набором причинно-следственных и других отноше- ний между действиями и условиями. Базовыми, неопределенными понятиями, из которых строится процесс, служат два типа элементов процесса: действия и изменения условий Действие в процессе - это реализация события системы, порождающей про- цесс. Изменение условия - это разовая реализация факта изменения неко- торого условия в системе. Процесс представляет собой множество элемен- тов процесса, содержащее хотя бы одно действие, хотя бы одно изменение условия и некоторую совокупность отношений, определенных на этом мно- жестве элементов. Все элементы процесса уникальны (различны). В понятии процесса, как оно введено в работах Петри [74, 77], каждый элемент реализуется в про- цессе ровно один раз. Однако ниже мы будем рассматривать обобщение по- нятия процесса - процессы с альтернативами. В представлении такого про- цесса могут содержаться альтернативные действия и изменения условий, которые взаимно исключают друг друга: если выполняется, например, одно действие, то другое не реализуется, и наоборот, но ровно одно из этих действий обязательно происходит. Типы отношений, связывающих элементы процессе, определяют тип процесса. Все они вводятся через базовое отношение предшествования элементов процесса, которое обозначается символом <. Пусть х и у - элементы некоторого процесса. Запись х<у трактуе'тся таким образом, что элемент х входит в процесс "раньше, чем" элемент у, т.е. действие или изменение условия х завершится до того, как начинается действие или изменение условия у. При причинно-следственной трактовке процесса эта запись означает, что появление элемента у в этом процессе яв- ляется следствием появления в нем элемента х. Постулируется, что отноше- ние предшествования не рефлексивно и транзитивно. (Более точно: х<у"Эп6П: (tx < tp 11: (tx < ty or ty < , где П - множество всех временных протоколов процесса, tx — момент завершения реализации элементах, - момент начала реализации элемента у, or - логическая операция "исключительное или" И or В ** (Л A “IS) V V ГМАв)). Отношение следствия II между элементами безальтернативного процесса определяется следующим образом: xliy ** (х<уогу<х) V (х-у). . Если элементы х и у связаны отношением II в процессе, то возможен только один из двух вариантов: либо х всегда реализуется а процессе раньше, чем у, либо у реализуется в процессе раньше, чем х. Отношение следования рефлексивно (xllx), симметрично (хUy *» yllx) и нетранзитивно (из xliy A yllx не следует, что xllx). Отношение параппепизма со определяется следующим образом для про- цессов баз альтернатив: хсоу ** С1(х<у)АКу<х)) V(x-y). Это отношение не накледывает никаких ограничений но порядок следо- вания элементов и не устанавливает никаких причинно-следственных свя- зей между ними. Оно рефлексивно, симметрично и нетранзитивно. 103
Отношение конкуренции con определяется следующим образом: хсопу *» (х < у Л у < х) V (х = у). Это отношение, в отличие от отношения следования li, разрешает элемен- там х и у реализоваться в процессе в любом порядке:х может как предшест- вовать у, так и следовать за ним. Однако х и у не могут реализоваться "одновременно". Отношение con рефлексивно, симметрично и нетранзи- тивно. Для того чтобы определить отношение альтернативы, введем специаль- ный фиктивный элемент П в процесс, который по определению реализует-, ся "позже всех других элементов процесса". Тогда высказывание х < £2 вы- полнимо для элемента х, реализовавшегося в процессе, и только для него. Запись “1(х < £2) означает, что элемент х не реализовался в процессе. Отно- шение альтернативы al определяется следующим образом: xaly ** (х < £2 * “1(у < £2)) V (х = у). Если процесс содержит элементы х и у, находящиеся в отношении al, то реализация одного из этих элементов исключает возможность реали- зации другого. Это отношение также рефлексивно, симметрично и нетран- зитивно. Данные выше определения отношений следования и параллелизма отно- сились к элементам процессов без альтернативы, когда каждый элемент реализуется в процессе ровно один раз. Обобщим эти определения на слу- чай процессов с альтернативами, в которых некоторые из альтернативных элементов могут не реализоваться: xliy ((х < £2 Л У < £2) =* (х < yory < х)) V (х у), хсоу *==» ((х < 12 Л у < £2) =» (Их <у) Л ~|(у <х)>) V (х = у). Обобщение состоит в том, что дополнительно выделены случаи, когда один из элементов х и у или оба элемента могут не реализоваться за смет того, что реализованы их альтернативы. Процесс называется последовательным, если все его элементы связаны отношением следования, т.е. V|x,y|6XXX: xliy, где X — множество элементов процесса. В последовательном процессе отношение следования является отношением полного упорядочения. Процесс называется параллельным, если любая пара его различных элементов связана либо отношением li, либо отношением со. Процесс называется последовательно-альтернативным, если любая пара его различных элементов связана либо отношением li, либо отношением al. Процесс называется параллельно-альтернативным, если любая пара его различных элементов связана одним из отношений li, со, al. Процесс называется параллельным с конкуренцией, если любая пара его различных элементов связана одним из отношений li, со, con. Ниже мы рассмотрим сетевые представления для введенных типов процессов. § 7.2. Сетевое представление параллельных процессов В главе 1 •(§ 1.2) было введено общее определение сети, на основе кото- рого строятся различные классы динамических сетей, в том числе сети Пет- ри и сети, представляющие введенные выше типы процессов. Напомним, что сеть - это тройка (Я, Т, F), где Я — непустое множество мест, Т — непустое множество переходов, F - отношение инцидентности. Кроме того, для сетей выполнены следующие условия. 104
А1.РПГ = ф. А2. (Я=Аф) Л (VxSFUT, Э/GAU Т; xFy V yFx) (любой элемент сети инцидентен хотя бы одному элементу другого типа). АЗ. >iPx,Pi еР-. (7>i *т>2) Л (Pi =Pi) * (Pi -Ра). Для всех рассматриваемых ниже типов сетей, представляющих процессы, понадобятся общие дополнения ограничения. Введем вспомогательные обозначения: D(x) — путь в сети, начинающийся элементом х, т.е. конечная или беско- нечная последовательность (х t, х2,...) такая, что х х i и V / > 1: x/Fx#+1 ,* D'1 (х) - обратный путь в сети, заканчивающийся элементом х, т.е. ко- нечная или бесконечная последовательность (хь ха,...) такая, что х = Xi и V/>1: x,F-1x/+i, где F~* - обращение отношения F; D(x, И) - отрезок пути, начинающийся элементом х и заканчивающийся элементом у; D~' (х, у) - отрезок обратного пути, заканчивающийся элементом х и начинающийся элементом у; H(N} - множество головных мест сети, не имеющих входных переходов, т.е. И(Л/)= {р|-ряР}. А4. Vx, у € X » F U Г: xF*y =» “l(yF+x), если х # у, т.е. отношение F* (транзитивное замыкание отношения F) не симметрично, сеть не содержит циклов. А5. H(N)=£ ф AVxGX, VD"’(x): D~l (х) - конечен. Это ограничение требует, чтобы любая сеть представляющая процесс, имела непустое мно- жество головных мест и не содержала "бесконечных влево" путей. А6. vrGT: Ч&ф At-^ф, т.е. любой переход имеет хотя бы одно входное и одно выходное место. Л7 wn<=o. м . I 1,если pSW(/V), Р о(Р) | о в противном случае. Сети-процессы имеют начальную разметку, причем стандартную: только головные места содержат по одной фишке. Введем сети, представляющие параллельные процессы. Параллельной сетью действий или О-сетью (от английского термина "occurrence net" [74]) будем называть сеть (со стандартной начальной разметкой), которая наря- ду с перечисленными выше условиями А1-А7 удовлетворяет еще одному условию. А8. VP G F: | -р | < 1 Л |р* | < 1, т.е. каждое место сети имеет не более одного входного и не более одного выходного перехода. Места, не имеющие выходных переходов, будем называть хвостовыми местами сети. Все места, не входящие в множество головных или множество хвостовых мест, имеют ровно по одному входному и одному выходному переходу. В общем случае О-сети могут быть бесконечными, а среди бесконечных сетей могут быть сети, не имеющие хвостовых мест. Легко видеть из опре- деления О-сети, что в случае, если сеть конечна, она представляет собой частный случай сети Петри, а с учетом структурных ограничений, она яв- ляется некоторым вариантом ациклического синхронизационнс*го графа. В отличие от последнего, где требуется, чтобы Vp€F: (*p| » |/г | = 1, в О-сети каждое место инцидентно не более чем одной входной и выходной дуге. Если на сети действий перенести определение безопасной сети (5 2.1), то ясно, что любая О-сеть безопасна за счет стандартной начальной разметки и ограничений на топологию сети, задаваемых условиями А4, А5, А6. Для того чтобы продемонстрировать, что О-сети могут использоваться в качестве сетевых представлений параллельных процессов, свяжем поня- тия, с помощью которых определялись процессы, с сетевыми понятиями. Бу- 105
дем считать, что элементы процесса представлены в О-сети ее элементами, при этом действия представлены переходами, а изменения условий - места- ми. Отношение предшествования представлено в сети отношением F*. Тогда отношение следования II выражается через отношение F* следую- щим образом: xliy ** (xF*y or yF*x) V (х “ Z). где х,у€Х = РиГ. С учетом того, что О-сеть ациклична UxF+y)* “l(yF*xH, отноше- ние II можно следующим образом выразить через отношение F . хНу «* (xF+y VZF*x)' V (х" у), где х,у€Х-/»ит. Отношение параллелизма переносится на элементы О-сети следующим образом: хсоу** Kxliy) V (х у) *» “l(xF*y VyF*x) V (х “ у). Например, переходы О-сети, показанной на рис. 7.2, находятся между собой в следующих отношениях: В силу рефлексивности отношений Н и со любой элемент следует сам за собой и параллелен сам себе. Естественным образом отношения II и со между парами элементов обобщаются на произвольные наборы. Пусть YQX- непустое подмно- жество множества элементов сети. Множество У называется линией, если Ух, у 6 У: xliy,, т.е. любые два элемента из У находятся в отношении следования. Множество У называется разрезом, если Ух, у€ У: хсоу, т.е. любые два элемента из У параллельны. В графическом представлении О-сети любые ее элементы, принадлежащие некоторой линии, лежат на не- котором пути в графе сети. Наоборот, все элементы, образующие разрез, попарно не соединены никаким путем. В множестве всех линий О-сети вы- делим максимальные, т.е. такие, которые не содержатся ни в каких других линиях. Их будем называть И-еечениями. В множестве всех разрезов также выделим максимальные и их будем называть ео-сечем/ями. В сети на рис. 7.2 имеются следующие li-сечения {pl( tt, Pi, Рз}. {р$,г3,р4, ti>Pi}t {Ps'h>Pe>t*'Pi}’ Линия {r3,p4, содержится в линии {Ps, t3, p4, fj- Рз У и поэтому не является li-сечением. В этой же сети много со-се- чений, поэтому мы не перечисляем всех, только некоторые: {Pl.Pt}, {Pi.Ра.Pt}, {Pi. Ра, U}. (ta.M. IM
Теорема 7.1. В О-сети N (Р, Т, F, Мо) любое 11-сечемие и любое со-сеченио пересекаются не более чем по одному мамонту. Доказательство. Предположим противное: существует li-сечение L и со-сечение С такие, что | L Г) С| > 1. В этом случае найдутся два эле- мента х,у£Х такие, что х, у€£ и х#у€С. По определению сечений xllz и одновременно хсоу, но это может быть только в том случае, если х х у, т.е. L и С содержат единственный общий элемент. □ Поскольку О-сети объявляются представленийми параллельных процес- сов, возникает вопрос, насколько корректно они представляют процессы этого типа. Сравнение определений параллельного процесса и О-сети убеж- дает, что все понятия, связанные с процессами, хорошо Интерпретируются в терминах сетей. Чтобы установить обратное, следует выяснить, для любой ли О-сети можно найти подтверждающий ее реальный параллельный про- цесс. Трудность здесь состоит в том, что формальное понятие сети нужно сравнивать с неформализованным, интуитивным понятием параллельного процесса. Однако уже предварительные исследования показали, что сущест- вуют "синтаксически корректные" О-сети, которые, если их проинтерпре- тировать как процессы, оказываются неприемлемыми в качестве реальных процессов. В связи с этим Петри [74, 77] ввел дополнительное условие /C-плотности для О-сетеЙ, соблюдение которого позволяет избежать описан- ного выше несоответствия между синтаксическим и семантическим аспек- тами сетевого представления процессов. О-сеть называется К-плотной, если в ней любое ll-сечение и любое со-се- чение пересекаются ровно по одному элементу. С учетом теоремы 7.1 это означает, что /С-плотная сеть не содержит ни одной пары непересекающихся li-сечений и со-сечений. Легко убедиться непосредственно, что сеть на рис. 7.2 /С-плотна. Пример не-/С-плотной сети приведен на рис. 7.3. В этой сети су- ществует бесконечное ll-сечение {pit ti,p4, tj, ръ ts,...}, которое не пересекается с бесконечными co-сечениями {р2, pt,Pt,.,.{ta, t4, te,... {Pi.Pt.P9. • • •} (на рис. 7.3 эти со-сечения показаны пунктирными ли- ниями) . Пример О-сети на рис. 7.3 хорошо иллюстрирует, в чем состоит несоответствие между синтаксисом и семантикой в на-К-плотной сети. В соответствии со структурой сети в ней существуют указанные бес- конечные со-сечения. Это означает, например, что все переходы сечения {ta, t4, U, • • •} взаимно параллельны и существует конкретная вре- менная реализация задаваемого сетью процесса, в которой все действия ta, t4, t6,... могут произойти одновременно. С другой стороны, фишка распространяется вдоль бесконечного ll-сечения {р,, t1( р4, t3,...) по- следовательно, и последовательно поступают фишки в места Pi.Pt, Pt, ... Этот процесс заполнения всех мест р2, р5, р8,... фишками никогда не может завершиться, и поэтому потенциальный, "топологический” паралле- лизм действий h, t4, t«,... не может в действительности реализоваться. Таким образом, О-сеть на рис. 7.3 не описывает реальный параллельный Рис. 7.2. Рис. 7.3. 107
Рис. 7.4. процесс. Еще один пример О-сети, которая не является /С-плотной, пока- зан на рис. 7,4, а. В этой сети результат несоответствия топологического сетевого параллелизма отношению параллелизма в процессах приводит к тому, что переходу t не соответствует никакого действия. Действительно, поскольку li-сечение {рь »i,p3, h,ps, t3l...) не пересекается с со-сече- нием {р2, Ра, Рь.-- •} , то никогда не может случиться, чтобы все входные места перехода t имели разметку, отличную от 0. Поэтому пере- ход г мертв. В приведенных примерах не-К'-плотные О-сети бесконечны. На рис. 7.4, в приведен пример также бесконечной сети, но эта сеть /С-плотна. Следующая теорема говорит о том, что не К-плотной сетью может быть только беско- нечная О-сеть. Теорема 7.2. Любая конечная О-сеть К-плотна. Доказательство. Предположим, что существует конечное со-се- чение С и конечное li-сечение L такие, что С Г> L = ф. Любой элемент li-сечения L не может быть параллелен всем элементам со-сечения С, так как в противном случае существовало бы со-сечение, содержащее С. Разобьем L на две линии £t и £2 так, чтобы в £] входили все те. эле- менты х€£, для каждого из которых существует в С элемент у такой, что xF*y, а в L2 входили бы все те элементы х, для каждого из которых в. С существует элемент у такой, что yF*x. Другими словами, в Lt вхо- дят элементы, "предшествующие" сечению С, а в L2 входят элементы, "следующие за" сечением С. Заметим, что £| и L2 эле- менты можно частично упорядочить в соответствии с отношением F*. Гак как L । и конечны, то в L 1 существует "максимальный" в этом упоря- дочении элемент (х', а в L2 существует "минимальный" в этом упорядо- чении элемент х". Пусть Lt &ф, a L2 -ф. Тогда множество £| U {/') = где у' е С, и x'FV образует линию, содержащую L, и, сле- довательно, L не является li-сечением, что противоречит предположению. Аналогичные рассуждения приводят к противоречию в случае = ф Ц^ф. Если £1 и Z.2 Фф, то в С существуют элементы у' и у' такие, что x'F*y' и y"F*x". При у' = у" = у линия Lt U {у} U L2 = в L U {у । содержит L, поэтому L не является li-сечением, что приводит к противоречию. Если же у' у", то в L должен существовать элемент х такой, что x'F*x и xF+x". Он не принадлежит ни L{, ни L2, и вновь образуется линия, содержащая L, что противоречит условию предположе- ния. □ 108
Теорема 7.3. В К-плотной О-сети, каждый переход которой имеет конечное множество входов, любой переход срабатывает ровно один раз. Доказательство. Любое li-сечение в О-сети содержит единствен- ную фишку при любой достижимой разметке. Действительно, в силу усло- вия А5 любое li-сечение начинается некоторым головным местом, содер- жащим фишку. При срабатывании некоторого перехода Г в сети возможны два случая: t принадлежит данному li-сечению L или t не принадлежит рму. В первом случае t обязательно переместит фишку из своего входного Места, принадлежащего L, в свое выходное место, также принадлежащее L. Во втором случае фишка остается в прежнем месте сечения L. Поэтому О-сеть безопасна. Разобьем множество Т переходов сети на "ярусы" следующим образом: Т<, = {Г|7С rA = (r|(Vr'e-(-r): t'eT/ A/<k) AOt'e-Ct): t’eTfc 1)}. Ярус To образуют те переходы, все входные места которых являются одновременно головными местами сети.'Ярус 7\ образуют те переходы, входные места которых являются выходными местами переходов из ярусов с меньшими номерами, причем хотя бы одно входное место являет- ся выходным местом некоторого перехода из яруса Тк. Заметим, что «о Т = U Тк, так как для любого перехода t G Т существует номер к та- к=о кой, что t е Тк. Этот номер можно определить следующим образом. Пусть ........L,} - множество всех путей, ведущих из некоторого головного места сети к переходу t Каждый из этих путей конечен, если О-сеть К-плотна. Последний факт является следствием теоремы о Дискретности К-плотной О-сети, доказанной в работах [21,23]. Дискретной названа сеть, не содержащая бесконечных отрезков li-сечений, соединяющих два элемен- та х и у сети, т.е. не содержащая бесконечных последовательностей х, хх, х2...г, у, где х€ 'xb xt € *х2.....г€у. Например, сеть на рис. 7,4, а не дискретна, так как содержит бесконечный отрезок (Pi, Г1. Рз, t2, Pi. h..О- Тогда к = тах(|£, |...|£,|)/2-1. Покажем теперь индукцией по номеру яруса, что любой переход из лю- бого яруса срабатывает ровно один раз. Легко видеть, что это утверждение справедливо для всех г€Т0. Пусть оно справедливо для всех переходов из ярусов Tj, где j<k. Тогда для любого р€'Г, где t — переход из яру- са Тк, возможны следующие два случая. В первом р € H(N) и, следова- тельно, для любой достижимой разметки М такой, что . М0[т>М и т не со- держит t, имеет место Mlp) = 1. Во втором случае Э t’G 7}, / < к и р G G (г’)\ Так как по предположению г может сработать, то существуют т и М' такие,что Л<01т*>Л<', т заканчивается переходом h' и' М'(р} = 1. Заметим, что изменить разметку входных мест перехода с единичной на нулевую не может никакой другой переход^ кроме самого t, в силу усло- вия А8. Так как число к конечно, то по предположению достижима размет- ка М такая, при которой все входные места перехода получат по одной фишке и он может сработать, причем только один раз, так как его входные места не смогут больше получить фишки в силу условий А4 и А8. □ Проиллюстрируем на примерах необходимость условий теоремы 7.3. На рис. 7.4, б приведем пример сети, каждый переход которой имеет конеч- ное множество входных мест. В данном случае причиной того, что перехо- ды 6|, Ь2, Ь3, . . . не могут сработать, является не-Zf-плотность исходной сети. Любой переход Ь, может сработать только после выполнения после- 109
довательности переходов at, а2. а3,.... но эта последовательность беско- нечна. В /С-плотной сети на рис. 7,4, в переход b имеет бесконечное мно- жество входов. Переходы а и b в данной сети соединены бесконечным множеством конечных путей. Длина каждого отдельного пути ограничена, но не существует такого натурального числа к, которое одновременно ограничивало бы длины всех данных путей. В силу этого процесс запол- нения фишками входных мест перехода b никогда не может быть зако^ чен, и переход Ь не может сработать в данной сети. §73. Сетевое представление последовательно-альтернативных процессов Дополним условия А1-А7 в общем определении сетей-процессов сле- дующими ограничениями. А9. | H{N} | 1, сеть имеет единственное головное место. А10. V t е Т: |Т| 1 A |f |=1. т.е. любой переход сети имеет ровно одно входное и одно выходное место. Сети, удовлетворяющие перечисленным условиям, назовем последова- тельно-альтернативными сетями действий, или S-сетями. В общем случае S-сети могут быть бесконечными, а конечные сети представляют собой ациклические автоматные сети с единичной разметкой в единственном го- ловном месте (см. $ 42). Из условий А9 и А10 следует, что S-сети пред- ставляют связный граф. Точно так же, как и в случае О-сетей, S-сети являются некоторой синтак- сической формой представления процессов, а именно — последовательно- альтернативных процессов. Отношение следования II выражается через от- ношение F* в S-сетях так же, как и в случае О-сетей. Отношение альтерна- тивы al выражается для элементов S-сети через отношение F* следующим образом: х al у *=» П (х И у) V (х = у) «=> “I (х F*y V yF*x) V (х » у). Для S-сетей можно определить понятие ii-сечения, и это определение полностью совпадает с определением li-сечения для О-сетей. Множество А элементов S-сети назовем альтернативным разрезом, если Vx, у G А: х al у, т.е. любые два элемента из А альтернативны. В графическом представлении S-сети все элементы, образующие альтернативный разрез, попарно не соеди- нены никаким путем. В множестве всех разрезов S-сети выделим макси- мальные, т.е. такие, которые не содержатся ни в каких других, и будем на- зывать их аЫсечениями. На рис. 7.5, а Рис. 7.5. показана S-сеть, в которой име- ются следующие li-сечения: {р t, t,, Pi, ta, Рз, t4, Pt, ts, Ps,-.-}> {Pi- t3, p3. t6, ps,... } и сле- дующие al-сечения: {ti, t3), {pi, t.«), {h, t3}, {t4, te}, {рЛ. te}. {ts, t6),.. . Теорема 7.4. В S-сети любое 1Ысечение и любое аЫсечение пере- секаются не более чем по одному злементу. Доказательство. Предпо- ложим противное: существуют Н-се- чение L и al-сечение S такие, что I L П S | > 1. В этом случае найдут- ся два элемента х и у сети такие, 110
что х, у е L и х. у 6 S. По определению сечений х li у и одновре- менно х al у, ио это может быть только в том случае, если х »у, т.е. L и S содержат единственный общий элемент. □ Так же, как и в случае О-сети, возникает проблема неадекватных S-сетей, которые, если их интерпретировать как последовательно-альтернативные процессы, оказываются неприемлемыми как реальные процессы. Среди О- ретей выделялись К-плотные О-сети, для которых синтаксические (сетевые) и семантические представления соответствовали друг другу. Аналогично Для S-сетей вводится понятие L -плотности, которое определяется следую- щим образом: S-сеть £-плотна, если в ней любое li-сечение и любое al-сече- ние пересекаются ровно по одному элементу. С учетом теоремы 7.4 это означает, что L -плотная сеть не содержит ни одной пары непересекающихся li-сечений и al-сечений. S-сеть на рис. 7.5, а является £-плотной, в то время как S-сеть на рис. 7.5, б не является £-плотной. В последней сети имеется бесконечное li-сечение (Рь ГьРгЛз.Рз. h» • •}, которое не пересекается с бесконечным al-сечением {f2, t4, гб,. . .}, показанным пунктирной ли- нией. На примере этой сети можно увидеть, в чем выражается несоответст- вие между синтаксисом и семантикой не-£-плотной сети. Наличие в ней бесконечных al-сечений означает, что существуют бесконечные совокупно- сти альтернативных действий (или изменений условий). По определению последовательно-альтернативного процесса в каждой полной альтернативе должно реализоваться ровно одно действие. С другой стороны, в сети на рис. 7.5, б возможна ситуация, когда фишка проходит вдоль бесконечного li-сечения (Pi, ti.Pi, Ь.Рз» ts. - • •} ив результате ни одно из действий fj, - . . не реализуется. Таким образом, указанные "топологические" альтернативы могут в действительности не иметь места. Теорема 7.5. Любая конечная S-сеть L-плотна. Опускаем доказательство этой теоремы, поскольку оно весьма похоже на доказательство теоремы 7.2 о /(-плотности конечных О-сетей. § 7.4. Сетевое представление параллельно-ельтернативных процессов Параллельно-альтернативные процессы мы будем представлять с по- мощью ациклических сетей, или А-сетей, удовлетворяющих условиям Al—А7 и дополнительному условию А11, обеспечивающему безопасность сетей из данного класса (аксиома А11 будет сформулирована ниже). В А-сети переход может иметь более одного входного и/или выходного места, а место может быть инцидентно нескольким переходам. Примеры А-сетей показаны на рис. 7.6, а, 7.7, а, 7.8. О-сети и S-сети являются частны- ми подклассами А-сетей. Покажем, каким образом отношения следования, параллелизма и альтер- нативы выражаются в терминах А-сетей. Отношение li выражается через се- тевое отношение F* точно так же, как и в О- и S-сетях. Отношение альтернативности нельзя определить топологически едино- образным способом для переходов и мест сети из-за разных требований к реализации условия и действия в системе и соответственно появлению фиш- ки в месте и срабатыванию перехода в сети. Условие может реализоваться (измениться), если хотя бы одно непосредственно предшествующее ему действие реализовалось, т.е. место получит фишку, если хотя бы один пере- ход, для которого это место является входным, сработал. Действие может реализоваться, если все непосредственно предшествующие ему условия реализовались, т.е. переход может сработать, если все его входные места имеют фишки. Ill
Рис. 7.6. Два перехода 71 и 72 альтернативны в Д-сети в следующем случае: ti al 72 <=*“1(71 li f2) Л ((•tj n-r2 * «)V(3pi G7,: (vr'i e'pr. t'( al72))V (3p2 e-r2: (V72 e 'pt'. fi al 72))) v (71 = 72), т.е. разные переходы 7| и 72 альтернативны, если 1) они не находятся в отношении следования, 2} имеют общее входное место или непосредственный предшественник одного из переходов альтернативен другому. Два места pi ир2 альтернативны, если Pi alp2 <=>(V7i € -pi, V72 е ’р2: (7, al 72) Л (7j ¥=72))V(Pi »р2), т.е. два различных места р\ и р2 альтернативны, если любой переход, для которого выходным местом служит pi, альтернативен каждому переходу, выходным местом которого является р2, и все эти переходы различны. Место р и переход 7 альтернативны, если р al 7 «=» (V 7' € 'р: 7* al 7) Л “1(7 li р), т.е. место р и переход 7 альтернативны, если они не связаны друг с другом никаким путем и любой переход t‘, для которого р является выходным Рис. 7.7. 112
Рис. 7.8. местом, альтернативен переходу Г. Два элемента ж и у в 4-сети параллель- ны, если они не связаны отношениями следования и альтернативны (или ж* у} х со у ♦“» (х = у) V 1 (х Н у V х al у).. Например, в сети на рис. 7.6, а переходы tt и г2 связаны отношением al, переходы ta и t3 также связаны отношением al, а переходы f i и г3 связа- ны отношением со. Дополнительное условие All формулируется следующим образом: All. Vpe Р, Vti, ta е Г: «tbh е -р) * (t1 al taB. Определения li-сечений, со-сечений, данные выше для О-сетей и S-сетей, переносятся на случай А-сетей. Al-сечение в А-сети определяется несколько иначе. Об этом будет сказано ниже. Если рассматривать отношения li, со, al как "координатные оси" некото- рого трехмерного пространства, то О-сети лежат в плоскости, образованной координатными осями li и со (нет альтернативных элементов), а S-сети лежат в плоскости, образованной осями li и at (нет параллельных элемен- тов) . Для О-сетей структурные ограничения, гарантирующие адекватное сетевое задание процессов, формулировались с помощью понятий li- и со- сечений (все они должны попарно пересекаться). Аналогично для адекват- ности представления последовательно-альтернативных процессов требова- лось, чтобы попарно пересекались все li- и al-сечения. Для A-сетей, адекват- но представляющих параллельно-альтернативйые процесс^!, должны, во- первых, выполняться требования /С-плотности и t-плотности их подсетей, вводимых ниже, и, во-вторых, требуется выполнение еще одного свойства (M-nnoTHoctu}, которое формулируется в терминах пересечения плоско- стей, образованных, с одной стороны, li- и со-сечениями, а с другой - li- и al- сечениями. Сеть N' = (Р', T',F'} является подсетью сети N (Р, Т, F), если Р’ Q Р, Т' QT, F' QFC\ (Р'X Т'^Т' ^Р'}. Сеть N’ называется 0-подсетью А-сети N, если: 1) Л/’ является подсетью Л/, 2) для N’ выполнены все условия, справедливые для О-сетей, 3) Vr er': (pePIpFt) Q Р' и Ур е Р': F'(p,t} = F(p,t), 113
т.е. переход f в О-подсети N' имеет то же самое множество входных мест и все дуги, связывающие его с этими местами, что и в А -сети Л/. Замечание. При определении О-подсети мы не требуем выполнения уело, вия АЗ, поскольку резные в исходной А-сети места в О-подсети могут иметь одно и то же множество инцидентных переходов. Несмотря на то, что в подсети эти места совпадают, нам важно сохранить информацию, что а исходной А-сети они были инцидентны различным множествам переходов и по существу были разными. О-подсеть N' сети N назовем макенмалмюд, если: 1) для любой О-подсети N} сети N такой, что М является О-подсетью сети Nt, верно, что Л/» Na; 2) все головные места N' являются головными мостами А-сети N. Множество всех максимальных О-подсетей А-сети N образуют ее проек- цию на координатную плоскость (li, со), а объединение свободных языков всех О-подсетей совпадает со свободным языком сети N (151. Для А-сети на рис. 7.6, а множество ее максимальных О-подсетей состоит из подсетей, показанных на рис. 7.6, б. в, а для А-сети на рис. 7.7, а — из подсетей, пока- занных на, рис. 7.7. б, в, а. Сеть N' • (А*, Г , F ’) называется 3-подсепю А -сети N (Я, Т, F}, если: 1) N является подсетью N, 2) для N' выполнены все условия, справедливые для 3-сетей, 3) УГьГабГ, Vp1(p2€P': (t, Fpt Л t3Fpa AllPi lip2)) - (33-подсеть N* • (Я", Г", F"): t|,t2er*). Фактически условие 3) обеспечивает, что в S-подсеть входят те и только те элементы, которые в исходной А-сети были альтернативны или находи- лись в отношении следования. Замечание. Для S-подсетей мы не требуем выполнения второй части условия А6,т.е. "l(Vt€ Г’: г , так как из условия ft al t2 в А-сети N следует существование альтернативных входных мост (или наличие обще- го входного места), но альтернативность переходов но гарантирует альтер- нативности их выходных мост. 3-подсеть N' А-сети N назовем максимальной 3-подсетью, если: 1) для любой 3-подсети N"сети N такой, что N является 3-подсетью сети N ", верно, что N ’ N 2) головное место H(N') входит во множество головных мест сети N. Множество всех максимальных 3-подсетей А-сети N образует ее проек- цию на координатную плоскость (li,al). Для сети на рис. 7.6,а множество ее максимальных 3-подсетей состоит из подсетей, показанных на рис. 7.6,г, д, для сети на рис. 7.7, а - из подсетей, показанных на рис. 7.7, д, а, ж. Множество А элементов А-сети называется альтернативным разрезом, если Vx, у€А: xal увЛ(и существует максимальная 3-подсеть /V*, в ко- торой множество А является альтернативным разрезом. Множество А эле- ментов А-сети А/называется al-сечением, если множество А образует макси- мальный альтернативный разрез в N. т.е. для любого альтернативного раз- реза А' в А-сети Л/из условия А’р А следует, что А’ А. А-сеть назовем /(-плотной, если все ее максимальные О-подсети /(-плот- ны, и А-сеть назовем L -плотной, если все ее максимальные 3-подсети L -плотны. А-сеть N назовем М-плотной, если результатом пересечения любой мак- симальной О-подсети сети N с любой максимальной 3-подсетью сети N является некоторое (единственное) ll-сечение сети N. Заметим, что если для определения понятий К- и L -плотности в "двумерных” О- и 3-сетях требова- лась единственность элемента, по которому пересекаются сечения, то в слу- 114
мае "трехмерной" А-сети понятие (К-плотности определяется с помощью пересечения "плоскостей" и это пересечение должно быть сечением. А-сеть на рис. 7.6, а является М-плотной. Действительно, ее максимальная О-под- сеть на рис. 7.6,6 пересекается с ее максимальными 5-подсетями на рис. 7.6, * и д по ll-сечениям (pi, h,Рз) и соответственно (ра, г3, р4), а максималь- ная О-подсеть на рис. 7.6, в пересекается с теми же максимальными 5-под- сетями по li-сечениям (ра, ta, р3) и соответственно (ра, га, р4). с другой стороны, А -сеть на рис. 7.7, а не является M-плотной, так как пересечение ее максимальной О-подсети на рис. 7.7, г с ее максимальной S-подсетью на рис. 7.7, е пусто. На рис. 7.8 показаны еще две А-сети, из которых одна является M-плот- ной (сеть на рис. 7.8, а), другая - не-М-плотной (сеть на рис. 7.8,6). Одна из максимальных О-подсетей второй сети (рис. 7.8, а) пересекается с одной из максимальных 5-подсетей этой же сети (рис. 7.8, г) по линии (р4, Гз,р$), которая не является li-сечением сети, так как образует лишь начальный фрагмент. Ii-сечения (р4, ts, ps, t4, рб). A-сеть назовем плотной, если она /С-плотна, L -плотна, М-плотиа. На рис. 73, а показан пример плотной сети, а на рис. 7.9, б - сети, которая не является ни ни £-, ни М-плотной. Возможны различные варианты неплот- ности, возникающие за счет разных сочетаний нарушений структурных ограничений. Заметим, что если конечность О- или 5-сети гарантировала К- или /.-плотность этой сети, то конечная А-сеть может оказаться не плот- ной, но только за счет того, что она не является М-плотной. Следующие утверждения иллюстрируют адекватность А-сетей как сете- вых представлений параллельно-альтернативных процессов. Назовем сеть правильной, если для любой достижимой тупиковой раз- метки М и для любого места р, не принадлежащего множеству хвостовых мест сети, М(р) “ 0. (Заметим, что бесконечные A-сети могут в общем слу- чае не иметь хвостовых мест и/или тупиковых разметок. В этих случаях они считаются правильными.) Лемма 7.1. Любая ациклическая сеть безопасна. Доказательство. Начальная разметка А-сети безопасна по опре- делению. В силу условия Al 1 любое место может иметь в качестве входных переходов только альтернативные переходы. Поэтому исключена ситуация, 115
когда некоторое место сети может получить более одной фишки (от пег раллельных переходов). □ Лемме 7.2. Любая S-сеть и любая О-сеть являются правильными. Доказательство. В S-сети любая достижимая разметка содержит ровно одну фишку. В силу связности S-сети любая тупиковая разметка до- стижима только в том случае, если единственная фишка сети попадает в хвостовое место. В конечной О-сети любой переход сработает ровно один раз, перемещая фишки из всех своих входных мест в выходные. Поэтому при достижении тупиковой разметки ни одно из мест, не входящих во множество хвосто- вых мест сети, не может содержать фишек. В бесконечной О-сети нет дости- жимых тупиковых разметок, и она по определению - правильная. □ Теорема 7.8. Плотная А-сеть является правильной. Доказательство. По определению Af-плотной сети результатом пересечения любой ее максимальной О-подсети с любой ее максимальной S-подсетью является li-сечение. Это означает, что любое li-сечение макси- мальной О-подсети N' является одновременно и li-сечением в исходной се- ти N. Отсюда следует, что любое хвостовое место О-подсети N' является хво- стовым местом сети А/, в множество хвостовых мест сети N образовано объе- динением множеств хвостовых мест всех ее максимальных О-подсетей. За- метим, что для любой достижимой разметки М в сети N множество мест, содержащих фишки, является со-сечением и существует максимальная О-подсеть, содержещая это сечение. Поскольку любая К-плотная О-подсеть является правильной сетью (лем- ма 7.2), то при любой достижимой тупиковой разметке в плотной сети N любая ее максимальная О-подсеть содержит фишки только в своих хво- стовых местах (для этой подсети такая разметка также будет тупиковой). Следовательно и сеть N содержит при тупиковой разметке фишки только в своих хвостовых местах. □ Теорема 7.7. В плотной A-сети любой переход может сработать не более одного раза и в любом ее al-сечении, состоящем из переходов, сраба- тывает ровно один переход. До к а з а т е л ь с т в о. Первая часть утверждения теоремы справед- лива для любой Д-сети, что следует из ацикличности Д-сети (условие А4) и ее безопасности (лемма 7.1). Пусть Д - некоторое al-сечение плотной Д-сети N, для которой не выпол- нена вторея часть утверждения, т.е. (1) по крайней мере два перехода f । и г2 из Д сребатывают при функ- ционировании сети N, или (2) все переходы из Д мертвы. В силу ацикличности сети и ее безопасности первый случай возможен, только если переходы t 1 и г2 находятся в отношении I», но тогда они не мо- гут оба входить в А. Второй случай рассмотрим сначала для частного случая Д-сетей, а имен- но: для S-сетей. Если S-сеть Л/ L -плотна, то al-сечение А пересекается со всеми ее li-сечениями. Поэтому в силу правильности £ -плотной S-сети долж- но существовать li-сечение, все переходы которого срабатывают, в том чис- ле и переход, входящий в al-сечение А. В общем случае плотной Д-сети, если сеть Nсодержит al-сечение Д, ни один из переходов которого не срабатывает, то в Л/существует максималь- ная S-подсеть Л/’, содержащая это al-сечение. Пусть {Ni,Ni.. . .} — мно- жество всех максимальных О-подсетей сети N. Поскольку сеть N плотна и, следовательно, Af-плотна, пересечение любой ее максимальной О-подсети 116
Л/, с подсетью N' образует некоторое li-сечение L/ в N и одновременно то же 11-сечение £/ в Nt и ЛГ. Поскольку сеть N плотна и, следовательно, L -плотна, в S-подсети N' al-сечение А пересекается с li-сечением Lt по некоторому пере- ходу г, G Z., И А. Поскольку сеть N плотна и, следовательно, Х-плотна, то любой переход t, срабатывает в максимальной /С-плотной О-подсети Nt (тео- рема 7.3). Свободный язык, порождаемый А -сетью N, является обыдине- нием свободных языков всех максимальных О-подсетей N\, Nif. . . [15], поэтому один иэ переходов G А обязательно сработатет при функцио- нировании сети N.O § 7.5. Развертка сетей Петри в сети-процессы В предыдущих параграфах этой главы введены сетевые представления для трех типов процессов - параллельных, последовательно-альтернатив- ных и параллельно-альтернативных — и выделены свойства сетей, адекват- но представляющих процессы. Рассмотрим, каким образом можно устано- вить связь между сетями Петри как моделями систем и сетями, описываю- щими процессы их функционирования. После установления такой связи можно выделить среди сетей Петри сети, адекватно описывающие "осмыс- ленные" системы, порождающие "осмысленные" процессы. Введение обобщенных процессов, в которых действия и изменения усло- вий могут быть связаны не только отношениями следования и параллелиз- ма, но и отношениями альтернативы и конкуренции, позволяет ставить вопрос об установлении взаимно-однозначного соответствия между сетя- ми Петри и порождаемыми ими сетями-процессами. Когда связь установ- лена, можно следующим обрезом перенести на сети Петри определения тех свойств, которые были введены для сетей-процессов. Будем говорить, что сеть Петри является плотной (К-, L-, М-плотной], если порождаемая ею сеть-процесс является плотной (Ку L-, Af-плотной). Сопоставление сети Петри порождаемой сети-процесса будет рассматри- ваться как результат некоторого преобразования развертки исходной сети. Поскольку сеть, задающая процесс, может быть в общем случае бесконеч- ной, то процедур развертки сводится к построению некоторого префикса сети-процесса, заканчивающегося указанием не бесконечное повторение ее периодического фрагмента. Мы ограничимся примерами преобразова- ний развертки для подклассов сетей Петри, порождающих сети-процессы, рассмотренные выше. Заметим, прежде всего, что для сети Петри, являющейся конечной сетью, удовлетворяющей ограничения А1-А7, преобразование развертки триви- ально: исходная сеть и порождаемая ею сеть-процесс совпадают. В качестве первого примере преобреэования развертки рассмотрим развертку примитивных сетей (см. § 6.1), которые принадлежат Пересе- чению класса автоматных сетей (§ 4.2) и регулярных сетей (§ 6.1). На- помним, что простой путь в сети представляет собой последовательность элементов сети (х1# х2,. . . , хи) такую, что х^Хщ для всех 1 </ < п и Х;¥=ХуДЛЯ любых ДВуХ ЭЛвМвНТОВ СвТИ, КрОМв, быть может, X! и х„. Про- стой путь называется простым циклом, если х( хп. Простой цикл назо- вем регулярным, если X] и хп — головные и хвостовые места в цикли- ческой подсети примитивной сети, т.е. в подсети, для всех элементов х, у которой верно, что xF*y Л yF*x. Назовем циклическим компонентом примитивной сети N ее максималь- ную циклическую подсеть N' такую, что V/ е Х\Х‘, Э xGX': 1(xF+yA yF*x). 117
Любой циклический компонент представим в виде формулы сети, начи- нающейся операцией итерации ». Максимальная подсеть сети N, не содержащая внутри ни одного цикли- ческого компонента, образует ациклический компонент. Легко видеть, что любую примитивную сеть N можно представить как конечную чередующуюся последовательность циклических и ациклических компонентов: N М, Ы2;...; N„), где п > 1, и для любого 1 </ <п, если Ni - циклический (ациклический) компонент, то Nt+i - ациклический (циклический) компонент. Пусть N (Я, Г, Я, — исходная сеть Петри; условимся в порождае- мой сети-процессе N (Р, Г, Я, Мо) использовать в качестве элементов мно- жества ? и Тсимволы элементов из X Р и Т с дополнительными верх- ними индексами. Рассмотрим развертку примитивной сети со стандартной начальной раз- меткой Мо, при которой только единственное головное место р сети имеет разметку М0(р) 1, а остальные места имеют нулевую разметку. На рис. 7.10, а показана примитивная сеть N • 1а; • (Ь; »с; d); а, на рис. 7.10, б сеть представлена как комбинация компонентов (/V»; /V2; N3), где Nj и N3 - ациклические компоненты, Nt *0; *с; Р)-циклический компонент. При развертке такой примитивной сети сначала отдельно разворачиваютг ся все ее циклические компоненты. В каждом циклическом компоненте Ni имеется единственное головное (и хвостовое) место pt (в компоненте N2 на рис. 7.10, б такое место - место р2). Головному месту Р/ компонента Nj сопоставляется головное место р} развернутой сети Nt . Далее развертка осуществляется индуктивным спо- собом. Рис. 7.10. 11S
Пусть р - некоторое место е компоненте Nt и ему соответствует Mocto р' в построенной части сети Nt, причем / - максимальный индекс среди верхних индексов копий местар в построенной части Nh Если р' • {tj,... .... tn)bNt, то в N) добавляются вершины-переходы (если их еще нет в Щ и из места Р1 заводятся дуги на каждый из новых добавлен- ных переходов. Пусть t - некоторый переход в циклическом компоненте Nt и ему со- ответствует в построенной части сети переход t'. где / - максимальный верхний индекс среди верхних индексов копий перехода t в построенной части fy. Здесь возможны два продолжения развертки. 1) Если место q г • не является головным местом некоторого регуляр- ного цикла в N), то просматривается построенная часть Nt в поисках моста О'. Если такое место найдено, то оно объявляется выходным местом пере- хода V, в противном случае добавляется новое место q' с верхним индек- сом/ и на него заводится дуга от перехода г. 2) Если место q " г является головным местом некоторого регулярного цикла в Nh содержащего t, то просматривается построенная часть Nt в поис- ках моста qi* *. Если такое место найдено, то оно объявляется выходным местом перехода г, в противном случае добавляется новое место О'+1 и на него заводится дуга от перехода гЛ На рис. 7.10, • показана развертка циклического компонента Л/j се- ти N, изображенной на рис. 7.10, а. После развертки отдельных циклических компонентов осуществляется их стыковка с ациклическими компонентами, если таковые .имеются в исходной сети. Пусть N (AG; Nt;...; N„). Для_стыковки Nt и /vj+ j в том случае, когда Nt - ациклический компонент, a ~ развертка цикличес- кого компонента, выделяется единственное общее "стыковочное" место р, которое является хвостовым местом в Nt и головным в ty+i. и затем р в Nt и р1 в Nj+1 сливаются. Для стыковки /fy cNt+i в том случае, когда fy ~ развертка циклическо- го компонента, a Nt+i - ациклический компонент, выделяется стыковоч- ное мастер, котгрое является хвостовым местом в Nt и головным в N/+1 . После развертки циклического компонента Nt в ациклическую сеть fy это- му месту р в Nt соответствует бесконечная последовательность хвостовых мест рх, р*,... При стыковке с N^ । головное место р из N^ । раско- пируется а бесконечную последовательность р1, р1, ... вместе с выходны- ми дугами, переходами, на которые эти дуги ведут, и выходными дугами этих переходов, после чего сливаются одинаковые копии местр1 ,р’.... из Nf и из , где Nf+ 1 ~ ЭТЬ ациклический фрегмент после копирования его головного места. На рис. 7.10, г показана S-сеть Я, представляющая процесс функциони- рования примитивной сети N, изображенной на рис. 7.10, а. Легко видеть, что S-сеть А?не является L -плотной, так как в ней имеется li-сечение {pi, а, р1, Ь*, pj, </*, р\, b1, р\, dJ, Pi,...}, которое не пересекается с al-сечением {•ь et, «з,...}. Поэтому исходная примитивная сеть Л/- не является L -плотной. Процедура развертки примитивной сети со стандартной разметкой сво- дится, как легко видеть, к выделению всех возможных путей в графе ис- ходной сети и склеиванию путей в тех местах, после которых эти пути совпадают. Поэтому справедливо следующее утверждение: Теорема 7.8. Результатом развертки примитивной сети со стан- дартной начальной разметкой является 3-сеть. 119
Пусть R — S-сеть, полученная разверткой примитивной сети N со стан- дартной начальной разметкой. Если для Rввести помечающую функцию S такую, что S (tO = t для любого /, где G Т, t е Т, то можно сформулиро- вать следующую теорему. Теорема 7.9. L W> = L \N, S), т.е. свободный префиксный язык сети Nи префиксный язык помеченной сети (Л?, ИЯ совпадают. Развертка примитивной сети с произвольной начальной разметкой осу- ществляется сведением к рассмотренному выше случаю сети со стандарт- ной начальной разметкой. С этой целью производится предварительное пре- образование расщепления исходной сети на совокупность примитивных се- тей со стандартной разметкой. Расщепление осуществляется следующим образом. Пусть m - сумма фишек в начальной разметке исходной сети. Если m 0, то сеть порождает "пустой" процесс, никак, не изображаемый сетями. В противном случае эта Сеть копируется в m экземплярах, и каж- дый из экземпляров сети получает новую начальную разметку по следующе- му правилу: 1) в каждой копии единственное место имеет ненулевую разметку, рав- ную 1; 2) если место р в некоторой копии имеет фишку, то Мо (р) > 0 в исход- ной сети; 3) общее число копий, имеющих фишку в месте р, в точности равно Мо (р) в исходной сети. Следующий шаг состоит в индексации переходов и мест в каждом из m экземпляров. Эти экземпляры упорядочиваются произвольным образом и каждый элемент /‘-го экземпляра (1 < /' < т) получает верхний индекс /. На рис. 7.11, а .показана примитивная сеть 2а; »(Ь; 1с). Начальная разметка этой сети (2, 0, 1) отличается от стандартной. На рис. 7.11, б исходная сеть преобразована в совокупность трех примитивных сетей, две из которых Рис. 7.11. 120
имеют по фишке в головном месте, а третья содержит фишку во "внутрен- нем" месте Рз. Каждая из копий разворачивается по правилам развертки примитивной сети со стандартной разметкой, причем переходы и места получают второй верхний индекс. В случае, если в некоторой копии фишка содержится не в головном месте сети, как, например, в третьей копии сети на рис. 7.11, б, развертка осуществляется, как будто фишка находится в головном месте. Затем фишка помещается в первое вхождение р1л (в развертку копии) того места р1, которое содержало фишку в соответствующей /-й копии исходной сети. Наконец, в развертке /-й копии удаляются все те элементы х (и связывающие их дуги), для которых не выполняется отношение р1'1 F*x, т.е. те элементы, которые не достижимы в развернутой сети при движении от места р1л вдоль дуг сети. При этом необходима корректировка вторых верхних индексов оставшихся элементов. Для элемента x'J берется новый второй индекс (/ - к), где к - максимальный индекс удаленного элемента х''к. На рис. 7.11, в показана сеть, полученная в результате развертки сети на рис. 7.11,а. Заметим, что развертка примитивной сети с произвольной начальной раз- меткой может привести к сети, не являющейся S-сетью, т.е. теорема 7Я не верна для этого случая. Например, сеть на рис, 7.11, е является А-сетъю. Для получаемых сетей-процессов выполняется ограничение А10 (см. S 7.3), т.е. каждый переход имеет ровно одну входную и ровно одну выходную дуги, но нарушается требование А9 к S-сети иметь ровно одно головное место. В то же время теорема 73 остается верной и для случая примитив- ной сети с произвольной разметкой. Рассмотрим развертку подкласса регулярных сетей, которые мы назо- вем параллельными сетями. Параллельная сеть N представляет собой нало- жение последовательных сетей Л/ь Л/2,..., Nn, каждая из которых являет- ся простым путем или простым (регулярным) циклом. Примеры парал- лельных сетей показаны на рис. 7.12, а и 7.13, а. Процедура резвертки па- раллельных сетей включает три этапа. На первом этапе в исходной сети N = (Л/ь Ni,..., Nn} выделяются все ее последовательные составляющие, и каждая из них разворачивается по правилам развертки примитивных се- тей с произвольной разметкой (последовательная сеть является частным случаем примитивной сети). На втором этапе осуществляется специальная переиндексация развернутой сети fy для обеспечения последующего нало- жения развернутых сетей. На третьем этапе развернутые сети накладывают- ся друг на друга с учетом индексации и образуют развернутую сеть (Л/|, Л/2,..., Л/„), которая затем приводится к "каноническому" виду сети-про- цесса путем удаления мертвых переходов и связанных с ними дуг и мест. Пусть N, - последовательная составляющая параллельнбй сети и "началь- ная резметка сети А/,- помещает в ее места m фишек. После расщепления Nt на m экземпляров последовательных сетей Л// А. 1 < к <т, со стандарт- ной разметкой (единственная фишка в каждой из копий) и их развертки в S-сети производится переиндексация переходов данных сетей следую- щим образом. На первом шаге новый индекс получают первые переходы в каждой из сетей. Первый переход в первой сети (W/,i) получает индекс 1. Если первый Переход в Ar-й сети (Л/#*) не имеет одноименных среди первых переходов предыдущих к -1 сетей' (Л^д,.... ), то он также полу- чает индекс 1, в противном случае данный переход получает индекс, на еди- ницу больший максимального индекса среди одноименных первых перехо- дов в предыдущих сетях Ntti,..., 121
Рис. 7.12. На Ar-м шаге индексируются Ar-е переходы а каждой из копий. Аналогично индексированию на первом шаге, переиндексации ведется "сверху вниз" с учетом перехода копий; Ar-й переход в сети Йц получает индекс 1. если сре- ди всех ранее переиндексированных переходов нет ему одноименных, в про- тивном случае данный переход получает индекс, на единицу больший макси- мального индекса среди всех ранее занумерованных одноименных перехо- дов. После переиндексации все переходы из множества сетей {Nt>te | 1 < к < т) различны: или переходы имеют разные имена (но могут иметь одинако- вый индекс), или если переходы имеют одну и ту же метку, то их индексы (по построению) различны. Все сети \<к<т, объединяются в одну сеть Л); путем наложения. При этом ни одна из пар переходов фактически не накладывается, так как все переходы резличны. В случае, если число экземпляров т конечно (сеть Nt не содержит раз- метки с ш) и Nt не является циклом, процесс переиндексации заканчивает- ся за конечное число шагов. В противном случае процедуре переиндекса- ции применяется к конечным префиксам разверток циклических сетей. На рис. 7.12, а показана параллельная сеть N, представляющая собой наложение двух последовательных сетей Ni и Nt (рис. 7.12, б). Начальная резметка сети N\ помещает в ее места 3 фишки, сети Ni - 2 фишки, поэто- му сеть Ni расщепляется на три последовательные сети /V i ,j, Ni л, ,з со стандартной разметкой, сеть Ni - на две сети /Vjj, Л/112. На рис. 7.12, е и t показаны сети и после переиндексации переходов и объединения резверток расщеплений в одну сеть. После того как вса составляющие сети расщеплены, развернуты и пере- индексованы, производится "выравнивание" числа накладываемых пере- 122
ходов, Если в сети Nt максимальный индекс у перехода г равен />, а в сети N/ максимальный индекс у того же перехода ровен /а и /а < /,, то в сеть N/ добавляются Л - копий сети /V/ с нулевой разметкой всех мест. При этом все вхождения перехода г индексируются описанным выше способом, начиная с индекса (G + 1). Такое выравнивание числа вхождений перехо- дов производится для всех переходов, входящих одновременно в сети /V, и Nf, и для всех пар сетей, составляющих сеть Л/. На рис. 7.12, д показана сеть после выравнивания числа вхождений пе- рехода с. В сеть if} добавлена "пустая" копия сети Л/2, и переход с получил верхний индекс 3. Предпоследний этап состоит в построении сети Я (Л)ь .Я,,} пу- тем объединения выравненных разверток составляющих сетей Nit Nt, . . . ..., N,, в одну сеть с помощью операции наложения. При выполнений опе- рации наложения вхождения одинаковых символов переходов с одинако- выми верхними индексами совмещаются по общим правилам операции на- ложения. (Заметим, что здесь операция наложения из § 6.1 обобщена на случай бесконечных сетей.) На рис. 7.12, е показана сеть Л?» Wi.W;), полученная наложением се- тей АГ} и Я}. Последний этап состоит в приведении полученной в результате сети к форме, удовлетворяющей требованиям, предъявляемым к сетям-процес- 123
сам. Дело в том, что в результате наложения в результирующей сети могут появиться головные места без фишек. "Чистка" полученной сети состоит в удалении из сети таких головных мест и всех тех элементов сети, к кото- рым можно прийти из головных мест по путям вдоль дуг. На рис. 7.12, ж показана сеть AZ= (Л/,, Л?2) после чистки. Эта сеть является О-сетью и пред- ставляет параллельный процесс функционирования параллельной сети, изображенной на рис. 7.12, а. На рис. 7.13 показана параллельная сеть с циклами, О-сеть, являющаяся результатом развертки предыдущей сети, и некоторые промежуточные этапы развертки. О-сеть на рис. 7.13, г не яв- ляется К-плотной и поэтому не К-плотна и параллельная сеть на рис. 7.13, а (она является регуляризованной версией синхронизационного графа). Причиной не-К-плотности этой сети служит неограниченность мест р4 и Pl. Анализ описанного преобразования развертки параллельных сетей позволяет сформулировать следующие два утверждения: Т е о р е м а 7.10. Результатом развертки параллельной сети является О-сеть. Теорема 7.11. L (Л/) = L (Л/, S), где L (Л/) - свободный язык поме- ченной сети-развертки, в которой Xft1: S (г?) = Г. Процедура развертки произвольной регулярной сети здесь не описы- вается. Она состоит из тех же этапов, что и процедура развертки параллель- ной сети, но этап переиндексации усложняется и требует топологических преобразований разверток составляющих примитивных сетей. На рис. 7.14 приведены примеры регулярных (и легко регуляризуемых) сетей, которые разворачиваются в А-сети, рассмотренные в предыдущих параграфах. Например, сеть на рис. 7.14, а не является К-плотной, так как разворачи- вается в не-К-плотную О-сеть, структура которой показана на рис. 7.3 (с точностью до именования переходов); сеть на рис. 7.14, б разворачивает- ся в £-плотную S-сеть на рис. 7.5, а; сеть на рис. 7.14, в разворачивается в не-Z. -плотную S-сеть на рис. 7.5, б; что же касается сети, изображенной Рис. 7.14. 124
на рис. 7,14, д, то она на является ниК-, ни L-, ни М-плотной, так как таки- ми свойствами обладает /1-сеть на рис. 7.9, б и эта А -сеть является разверт- кой предыдущей сети. § 7.6. Сетевое представление параллельных процессов с конкуренцией Сети, предназначенные для описания параллельных процессов с конку- ренцией, строятся на основе О-сетей с добавлением в них специальных мест, называемых ресурсами, и дуг, связывающих эти места с переходами осо- бым способом. В сети N я (Р, Т, F), удовлетворяющей условиям А1-А8, на- зовем интервалом подсеть / = (Р/, Т/. Ft), для которой выполнены следую- щие условия: 1) имеется переход € Т, который служит началом интервала; 2) имеется переход te € Т, который служит концом интервала, причем fг, F te V г6 = ге; 3) Т,- { te Т\tbF tht F te}, т.е. множество переходов интервала включает все переходы сети, в которые имеется путь от перехода tb и одновременно от которых имеется путь в сети до перехода te; 4) /»/ = {peAlti>F+pApF+te}, т.е. множество мест интервала включает все места сети, в которые есть путь по графу сети от перехода tb и от которых есть путь до перехода te; 5) Ft = F D [P, XT, U 7/ X Pf); 6) для любого x 6 {P U 71 \ {Р/ U7/) не существует пути в сети N от х до у S (А/ U Гу), не содержащего перехода tb, и не существует пути от у до х, не содержащего перехода ге. Таким образом, интервал образует подсеть, которую в теории графа на- зывают гамаком, причем при движении по графу внутрь гамака нельзя попасть, минуя его начало, а из гамака нельзя выйти, минуя его конец. Если tb = te, то интервал состоит из единственного перехода. Интервал / сети /V с началом tb и концом te будем обозначать l(tb, te). Тот факт, что / является интервалом сети N, будем обозначать / CN. Ясно, что в любой сети имеются тривиальные интервалы, состоящие из единственного пере- хода. Сеть на рис. 7.4,а имеет единственный нетривиальный интервал с на- чалом ti и концом t. ''тот интервал является бесконечной подсетью. В сетях на рис. 7.4,6,7.2 и 7.3 нет нетривиальных интервалов. Можно показать, что в /(-плотной О-сети любой интервал конечен. Сетью действий с конкуренцией (или ОС-сетью) назовем сеть вида /V = (Pa U Рс, Т, Fd U Fc, Л70), в которой: 1) Рс - множество мест, называемых ресурсами, и Р</ П Рс я ф; 2) Fd С (Pd X Ги ТX Pd), Fc С (Ас X ГО ГХ АД 3) подсеть Nd = (Pd Г, F,<, Мп (ЯД представляет собой О-сеть; 4) VpePc; Motp) = 1, т.е. все места-ресурсы изРс имеют единичную раз- метку; 5) Vp€ Рс: I -р l= Ip’l > 1, т.е. из каждого места-ресурса выходит столько же дуг, сколько и входит, но всегда ресурс имеет минимум по две вход- ной и по две выходной дуги; 6) VpGFc; (Vt, ер’ 3r2 G'p : /(tb t2) - интервал в подсети дейст- вйй Na и Vta €*р, 311 ёр*: /(t|, ) — интервал в лрдсети действий Л/Д На рис. 7.15,а показан пример ОС-сети. Из определения ОС-сети видно., что она представляет собой наложение на О-сеть"синхронизирующей" сети специального вида, в которой множество мест совпадает с множеством Рс, каждый выходной переход места-ресурса р и Рс является началом не- 125
Рис. 7.15. которого интервала в О-сети, для этого перехода имеется парный входной для р пере- ход, который служит кон- цом этого интервала. На рис. 7.15, бив показано разложение ОС-сети на со- ставляющую ОС-сеть и син- хронизирующую сеть. (Опе- рация наложения была вве- дена в главе 6 для конечных сетей. Мы уже отмечали, что она естественным обра- зом может быть расширена на случай бесконечных се- тей.) Если в разных интерва- лах их начала являются вы- ходными переходами для некоторого ресурса, а их концы - входными для то- го же ресурса, что эти интер- валы будем называть критическими интервалами по данному ресур- су. Если {/1..... /,,} - множество интервалов, каждая пара которого является парой критических интервалов по ресурсу р, то будем обозначать этот факт следующим образом: IIЛ..../й 1р. Единственным ресурсом в сети /Уна рис. 7.1, а служит место Рю- Интер- валы /(t|.t}), /(tj, t») и /(t4, t7) - критические интервалы по р|0- Свяжем отношения, с помощью которых в § 7.1 вводилось понятие параллельного процесса с конкуренцией, с отношениями в ОС-сетях. Как обычно, действия представлены переходами, а изменения условий - места- ми, не являющимися ресурсами. Таким образом, места-ресурсы играют вспомогательную роль и не интерпретируются как изменения условий. Поэтому, если для остальных мест ОС-сети остается актуальным правило, требующее, чтобы место изменяло свою разметку лишь один раз, на ресур- сы это правило не распространяется. Отношения К. со и соп следующим образом выражаются через сетевые отношения. Пусть Л/« (Pd U Рс, Т, Fd U Fe, Мо ) - О-сеть, а элементы х и у принад- лежат множеству Xd • Pd U 7: х II у ** (xFj у V yFd х) V (х - у). х соп у *“* ЗрGPv,3/|, /а € Nd : х€/| Л у G /j Л 1 Ц, /j Ip, хсоу **"l(xlly Vxcony) V(x-y). Таким образом, отношение II связывает те и только те элементы ОС- сети, которые соединены некоторым путем в подсети действий A/d. Отно- шение соп связывает те и только те элементы, которые принадлежат двум разным критическим интервалам по некоторому ресурсу из Рс. Отношение со связывает то элементы, которые не соединены никаким путем в подсети Nd (но их может соединить путь в сети N, проходящий через некоторый ресурс) и они но принадлежат разным критическим интервалам по любо- му из ресурсов из Рс. 120
Рис. 7.1 в. В случае ОС-сетей также возникает вопрос, всякая ли ОС-сеть является корректным представлением параллельного процесса с конкуренцией. Рассмотрим ОС-сеть N, показанную на рис. 7.16 а. В этой сети имеется два критических интервала /(гi, га) и /<г5. гъ) по ресурсу р« и два критических интервала /(t2, tj) и 1(т4, ts) по ресурсу Рю. Эта сеть полностью соответст- вует определению ОС-сети. 8 ней имеются последовательные переходы (например, т( Htj.ts li г«), параллельные переходы (например, tt со 4, h cot*),и конкурирующие переходы (например, t, cont^.t; cont6,T3 cont4). Однако при работе сети N может возникнуть ситуация, показанная на рис. 7.16,6, когда ни один из переходов t2,t3, t$, г« не может сработать. Это означает, что перечисленные переходы соответствуют действиям, которые могут не реализоваться, что противоречит определению параллельного про- цесса с конкуренцией, в котором любое действие происходит ровно один раз. Причина возникновения такой ситуации состоит в том, что- интервал /(ti, t2) и /(t2, г3) пересекаются по переходу т2, а интервалы /(t4, ts) и /(ts, г6) пересекаются по переходу 1$. При этом пересечение устроено таким образом, что пересекающиеся две пары интервалок являются критически- ми по разным ресурсам, и начало интервала /(t2, tj) входит в интервал /(ti.tji как внутренний (не начальный) переход, а начало интервала Hh. t4) выходит в интервал Z(t4, t5) как внутренний переход. Мы ограничимся введением ОС-сетей как сетевых представлений парал- лельных процессов с конкуренцией, не обсуждая их связи с сетями Петри, моделирующими системы, которые порождают такие процессы.
ГЛАВА 8 СЕТИ ПЕТРИ И ПРОГРАММИРОВАНИЕ Среди приложений теории сетей Петри к задачам моделирования дис- кретных систем наибольшее развитие получили работы, связанные с попыт- ками использовать аппарат сетей Петри, их модификации и обобщения, для описания и изучения структурной динамики программ, в первую оче- редь — так называемых параллельных программ. В этой главе будет изложен один из подходов к применению сетей Петри для решения задач параллельного программирования, опирающийся на вве- денную в главе 6 алгебру регулярных и иерархических сетей, элементы которых интерпретируются специальным образом элементами параллель- ных программ. § 8.1. Сети Петри и семантика структур управления Под структурой управления программы понимают совокупность базо- вых структурных единиц - операторов (а также модулей, подмодулей) - и специальных управляющих примитивов, повзоляющих в процессе испол- нения программы формировать сложные вычислительные процессы из бо- лее простых, задаваемых упомянутыми структурными единицами. К числу управляющих примитивов относятся, например, операторы управления в алгоритмических языках, такие как условные операторы, операторы пе- рехода, операторы цикла и т.п. К управляющим примитивам следует отнес- ти и специальные разделители, явно или неявно указывающие порядок следования операторов. Рассмотрим основные типы структур управления в программах и мето- ды их представления с помощью сетей Петри и их обобщений. Обычная для алгоритмических языков последовательная структура управления представляет собой совокупность операторов различных типов, которые связаны некоторым отношением следования. Начальный оператор (единственный в программе) не следует ни за каким-либо другим опера- тором. После безусловного оператора следует ровно один оператор. После условного оператора следует два оператора (используется также оператор выбора, за которым следует некоторая совокупность операторов). После заключительного оператора не следует никакой другой оператор. Исполне- ние программы с последовательной структурой управления начинается с начального оператора. После завершения исполнения безусловного опера- тора начинается выполнение следующего за ним оператора. После заверше- ния исполнения условного оператора начинается исполнение одного из двух следующих за ним операторов в зависимости от значения логического усло- вия, вычисленного в условном операторе. Исполнение программы заверша- ется исполнением заключительного оператора. Последовательная структура управления может быть представлена как связная автоматная сеть Петри (см. § 4.2) с определенным топологическим ограничением, элементы которой интерпретируются специальным образом. 128
?Жакая сеть имеет единственное головное место, все ее переходы делятся ЯМ "безусловные'' с одним выходным местом и "условные" с двумя выход- ными местами. Каждый "безусловный" переход сети интерпретируется как безусловный оператор, каждый "условный" переход интерпретируется как условный оператор. Если в последовательной программе оператор •' следует за оператором а, то в сети соответствующие переходы связаны Дугами с общим местом, которое является выходным для а и входным для а'. Например, структура управления следующей программы (вычисление факториала) представляется с помощью интерпретированной сети Петри, изображенной на рис. 8,1: begin integer х,у; /hpt/f(x); у:-1; 11: if х = 0 then goto 12; у : = у X х; х : = х — 1 ; goto 11; 12; output^) stop end Переходы в интерпретированной сети изображены прямоугольниками, внутри которых выписаны сопоставленные переходам операторы. Интер- претированная сеть на рис. 8.1 описывает только структуру последователь- ного управления, но не моделирует сам механизм управления. Действитель- но, в терминах сети Петри нельзя описать семантику условного оператора (см. главу 5). Поэтому, когда место рд получает фишку, то эта фишка со- общает лишь о том, что условный оператор выполнился, но не несет инфор- мацию о вычисленном значении условия. В результате выбор оператора для продолжения исполнения последовательной программы моделируется в сети недетерминированной альтернативой (оператор output (у) иЛи оператору: •= = у X х), указывающей оба возможных варианта продолжения. Для того чтобы иметь средства моделирования условного управления, достаточно вы- брать одно из описанных в главе 5 обобщений сети Петри, например, ингиби- торную сеть, и интерпретировать переходы такой сети операторами про- граммы. Последовательно-параллельные структуры управления представляют со- бой обобщение последовательных за счет включения в набор управляющих примитивов специальных операторов или указателей, которые выделяют параллельные ветви программы, исполняемые независимо друг от друга. Ветви имеют общее начало — точку расхождения ветвей — и конец — точку схождения ветвей. Совокупность ветвей с общим началом и концом обра- зует сегмент параллельной структуры. При исполнении программы процесс вычислений продвигается до начала первого сегмента, после чего "расщепляется" на столько копий, сколько ветвей содержит сегмент. Каж- дый из параллельных процессов вычислений ветвей протекает независимо от Других и, достигая конца ветви, останавливается, ожидая, пока все остальные процессы в сегменте не достигнут конца сегмента. В конце сегмента все процессы "сливаются" в один. Параллельные ветви сегментов могут, в свою очередь, содержать сегменты. 129
В последовательно-параллельных языках программирования для выде- ления параллельных ветвей используются специальные программные при- митивы, такие как скобки параллельности parbegin... parend,cobegin ... ... coend или специальные операторы, отмечающие начало и конец парал- лельного сегмента. Примером могут служить операторы fork {а, Ь, с,...) и join (а, Ь, с, ...). Первый оператор открывает сегмент с параллельными ветвями, помеченными метками а, Ь, с,..., второй — замыкает сегмент с ветвями, помеченными метками а, Ь, с,____ На рис. 8.2,а показал пример последовательно-параллельной структуры, изображенной с помощью сети Петри. Переход интерпретируется как оператор fork (а, />), инициирую- щий две параллельные ветви, помеченные метками а и Ь, переход Г2 — как оператор fork (с, d), переход ts соответствует оператору join (с, <7), пере- ход tI0 - оператору join (а, Ь). Характерным свойством "чистой" последовательно-параллельной струк- туры управления является отсутствие ка.ких-либо взаимодействий между параллельными ветвями, переходов-скачков из одной ветви в другую. Такие структуры управления обладают существенным недостатком — ма- лой гибкостью управления. В реальных условиях существует необходи- мость организации взаимодействий параллельно протекающих процессов исполнения ветвей. Эти взаимодействия нужны для организации обменов между ветвями результатами промежуточных вычислений и для обеспе- чения раздельного доступа к общим ресурсам ветвей, таким как общие области рабочей памяти, общие внешние устройства и т.п. Для организации взаимодействий нужны дополнительные программные средства, обеспечивающие саму организацию взаимодействий и правиль- ность их реализации в процессе исполнения параллельных ветвей. В боль- шинстве случаев нужны средства, которые позволяли бы приостанавли- вать процесс исполнения некоторой ветви, пока не прибудут данные от 130
другой ветви или пока другие ветви не освободят общий ресурс. Тот отрезок ветви, на котором требуется "захват" общего ресурса, называют крити- ческим интервалом ветви. Дейкстра [32] предложил для этих целей механизм семафоров, включающий специальные переменные нового типа {семафоры} и две операции Р и V, аргументами которых могут быть только переменные типа семафоров. Область значений семафора - целые неотрицательные числа. Если область значений сужена до двух - 0,1, семафор называют бинарным. Операция V изменяет значение з семафора на з + 1. Действие операции Р определяется следующим образом: — если s =# 0, то Р уменьшает значение s на 1, — если з = 0, то Р не изменяет значение $ и не завершается до тех пор, пока некоторая другая ветвь не изменит значение $ с помощью операции V. Существенным является тот факт, что операции Р и V считаются "не- делимыми". По отношению к V это означает следующее. Операция V со- стоит из трех фраз: - считывание значения семафора из памяти, — увеличение значения семафора, — помещение нового значения в память. Неделимость У(з) заключается в том, что с самого начала выполнения этой операции до ее завершения доступ к переменной-семафору $ запрещен для всех других операций. Аналогично дело обстоит с операцией Р. Обыч- но Р предшествует критическому интервалу ветви, а V завершает его. В каждый момент времени, когда значение семафора з изменяется с 0 на 1, только одна из операций может завершиться и разрешить вход в критичес- кий интервал только одному процессу исполнения ветви. Ниже следует пример параллельной программы [32] на алголоподобном языке, дополненном скобками parbegin ... parend, выделяющими сегмент с двумя параллельными ветвями process 1 и process 2, разделенными за- пятой, и семафором mutex. Каждая из параллельных ветвей представляет собой последовательный цикл, содержащий критический интервал {critical section} и остальную часть цикла {remainder of cycle} : begin semafore mutex; mutex : = 1 ; parbegin process 1: begin L1: P {mutex}; critical section 1; V {mutex}; -emainder of cycle 1; goto L1 end , process 2: begin L2: P{mutex}; critical section 2; V{mutex}; remainder of cycle 2; goto L2 end parend end. 131
В этом примере решается задача взаимного исключения исполнения критических интервалов двух циклических процессов параллельных ветвей. Последовательно-параллельная структура управления, дополненная сема- форным механизмом, наглядно изображается с помощью сетей Петри. На рис.8.2, б показана сеть, моделирующая структуру программы с взаимно исключенными критическими интервалами двух циклических ветвей. Переход Р( соответствует операции Р в ветви 7 (7 “ 1, 2); переход Q - критическому интервалу ветви 7; Vt - операции V ветви 7 ,* Я,- - остатку цикла в ветви /' . Место ps соответствует семафору з. Механизм семафоров обеспечивает организацию сложных взаимодейст- вий между параллельными ветвями и сейчас широко используется в язы- ках программирования. Тем не менее при программировании сложных взаимодействий в параллельных программах число потенциальных ошибоч- ных ситуаций возрастает по сравнению с последовательными программами. Наряду с обычным зацикливанием выражений наиболее частыми ошиб- ками являются взаимные блокировки и отталкивания процессов испол- нения параллельных ветвей. Взаимная блокировка (deadlock) возникает, например, в следующей ситуации. Пусть две ветви А и В требуют при своей работе доступа к двум общим ресурсам. Типичная ошибочная ситуация, в которой может возник- нуть блокировка, показана с помощью сети Петри на рис. 8.3. Пусть процесс исполнения вети А (переходы fi, t2, после выполнения действия G за- хватил один из ресурсов, изображаемый фишкой в месте р?, после чего место pj имеет разметку О. Процесс исполнения ветви В (переходы ц, г5, г6) после выполнения действия г4 захватил другой ресурс (место р8 имеет разметку 0). Оба процесса остановились, А перед t2, В перед ts, так как для выполнения следующих действий каждому из них нужен второй ре- сурс, захваченный партнером. При этом ни один из процессов не мо- жет вернуть захваченный ресурс. Возникла блокировка,, показания на рис. 8.3. Характерной задачей, неправильное решение которой может привести как к блокировке, так и к отталкиванию, является задача о пяти обедаю- щих философах (33], рассматриваемая ниже в § 8.3. Рассмотренные выше структуры управления параллельных программ мы охарактеризовали как последовательно-параллельные: основу их сос- тавляют параллельно исполняемые последовательные ветви. Если из после- довательно-параллельной программы удалить дополнительные средства распараллеливания, то программа становится обычной последователь- Рис. 8.а 132
ной. Таким образом, можно считать отправной точкой такого способа орга- низации параллельных программ последовательно-алгоритмическую струк- туру управления. Противоположный подход состоит в том, что все операторы программы изначально считаются независимыми, параллельно исполняемыми, а форми- рование вычислительных процессов организуется с помощью ограничений, накладываемых на порядок исполнения действий. Метод параллельного программирования, в котором на независимые операторы накладываются ограничения на порядок их выполнения в форме явно указываемых или неявно подразумеваемых индивидуальных условий готовности, связанных с каждым оператором, получил название асинхрон- ного программирования. Условия готовности динамически проверяются и разрешают или не разрешают (но не предписывают) начать выполнение операторов, с которыми данные условия связаны. Условия готовности берут на себя всю организацию управления, так что в асинхронных про- граммах можно не разделять средства управления на средства, формирую- щие последовательности операторов и параллельные ветви, и на средства синхронизации. Если программа имеет иерархическую структуру, то каж- дый составной оператор может быть организован внутри по тому же асин- хронному принципу. Из сказанного следует, что асинхронный принцип организации вычис- лений является, в некотором смысле, дополнительным по отношению к последовательно-параллельному и оба принципа эквивалентны в том смыс- ле, что могут моделировать друг друга (при условии, что последовательно- параллельная программа содержит средства синхронизации параллельных ветвей). Относительные достоинства и недостатки этих дополняющих друг друга методов программирования зависят от внутренней структуры программируемых задач и от свойств, реализующих программы вычисли- тельных систем. Условия готовности операторов в асинхронных программах могут фор- мулироваться в разных терминах. В зависимости от этого можно выделить разные типы асинхронного управления. Событийное управление основано на том, что условия готовности форму- лируются. как логические функции от некоторых событий. Событием мо- жет быть инициирование или завершение какого-либо оператора програм- мы (программные события), прерывание в системе или сигнал- об освобож- дении некоторого ее ресурса (системные события). При потоковом управлении действие (оператор или операция) програм- мы может выполниться, если готовы все необходимые для него аргументы (операнды). Условие готовности в этом случае носит стандартный характер и не выписывается явно в программе, а неявно подразумевается. В обрат- ном потоковом управлении действие может выполняться, если его резуль- тат необходим в качестве аргумента для некоторого другого действия. В этом случае второе действие как бы вызывает первое в качестве проце- дуры. В динамическом управлении условие готовности является логическим выражением, зависящим от переменных той же памяти, над которой опре- делены операторы программы. Ниже мы рассмотрим более подробно особенности событийного и пото- кового асинхронного управления. Их семантика удобно и наглядно описы- вается в терминах асинхронных сетей — сетей Петри и их модификаций. При этом специфика определенного типа управления будет в основном отраже- на в интерпретации переходов, мест и фишек сетей. 133
В реальных программах события могут иметь различный характер. Мы ограничимся единственным типом событий — завершениями действий, а под действиями будем понимать исполнение операторов программы. В этом случае семантика событийного управления может быть представлена с помощью сети Петри, элементы которой интерпретируются следующим образом. Переходам сопоставлены операторы, места хранят информацию о событиях. Событие может не произойти, произойти, повториться. Соот- ветствующее место не имеет фишки, имеет одну фишку или несколько фишек. Условие срабатывания перехода трактуется как условие готовности соответствующего оператора. Срабатывание перехода изменяет разметку его входных мест, и тем самым формируется информация о происшедшем событии — исполнении соответствующего оператора. Механизм событийного управления, базирующийся на формализме сетей Петри, позволяет описывать более сложные управляющие ситуации, чем механизм последовательно-параллельного программирования с семафо- рами, и, следовательно, порождать более богатые множества эквивалент- ных вычислительных процессов. Так, на рис. 8.4 представлена с помощью сети Петри структура управления, которую не удается запрограммировать с помощью обычных семафоров без использования искусственно вве- денных условных операторов [68]. В этом примере каждый из трех опе- раторов г73, где 7=1, 2, 3, может выполниться только после того, как выполнятся операторы. Г/2 и tk2, где ]= 1, к = 2 для 7= 1,/ = 1, к = 3 для 7 = 2 и / = 2, к = 3 для 7 = 3. Причина, по которой с помощью семафоров нельзя запрограммировать такую структуру управления, состоит в том, что неделимая операция Р применяется только к одному семафору. Для того чтобы аппарат сетей Петри применять не только для описа- ния семантики событийного управления, но и непосредственно исполь- зовать в языке параллельного программирования, разработаны аналити- ческие методы представления сетей, которые позволяют задавать струк- туру асинхронного управления программы в виде управляющих выра- жений. Эти выражения трактуются как формулы алгебры регулярных и иерархических сетей, рассмотренной в главе 6. Управляющие выражения вос- принимаются управлением системы, ис- полняющей программу, и управление орга- низует вычислительный процесс, задавае- мый этим выражением. При интерпретации иерархических се- тей простым переходам сопоставляются простые, неделимые операторы, состав- ным переходам - составные операторы. Места интерпретируются как переменные события (управляющие переменные!, а ус- ловия срабатывания переходов — как усло- вия готовности операторов. Исполнение иерархически организованной асинхрон- ной программы с событийным управлени- ем можно представить как работу рекур- сивной процедуры исполнения составного оператора. При включении оператора гене- рируется локальная копия этой процедуры, работа которой сводится к проверке условий готовности пассивных внутрен- 134
них операторов. Каждая такая проверка инициируется некоторым событием, например, завершением оператора. Завершение оператора про- исходит по тем же правилам, что и завершение составного перехода в иерар- хической сети с ожиданием. § 8.2. Потоковые сети Если в событийном асинхронном управлении условия готовности при- вязаны к управляющим событиям, то в потоковом управлении они из- меняются исключительно под влиянием потоков данных, которыми об- мениваются операторы (или операции). Исполнение оператора может начаться, если для этого оператора готовы входные данные (аргументы). Для того чтобы обнаружить наличие или отсутствие данных для операто- ра, необходима память "более активная", чем обычная адресуемая память прямого доступа, в которой любая ячейка (пераменная) общедоступна (не резервирована для определенных операторов) и всегда содержит неко- торую "обезличенную" информацию без указания истории ее пЬлучения и каким операторам она предназначена. Поэтому в потоковых асинхрон- ных программах используется понятие распределенной памяти, состоя- щей из элементов специального типа — очередей {каналов]. Каждая оче- редь приписана некоторой группе операторов, и указывается, какие опе- раторы могут записывать в очередь и какие считывать из нее. Обычно ограничиваются одной парой операторов — записывающим и считывающим. Функционально очередь представляет собой элемент памяти ограниченной или неограниченной емкости, хранящий в каждый момент времени строго упорядоченную последовательность данных (возможно, пустую). В по- следовательности выделяется первый элемент (голова очереди) и послед- ний элемент (хвост очереди). Любая запись данного в очередь увеличи- вает ее длину на 1, и вновь записанный элемент становится последним (запись в хвост очереди). Любое считывание данного уменьшает длину очереди на 1, первый Элемент удаляется из очереди, а второй становится головой очереди. Считывание возможно, если очередь непуста. Запись возможна, если очередь имеет неограниченную емкость или число данных в очереди меньше ее емкости. Предполагается, что информация о состоя- нии очереди (пуста, непуста, переполнена) всегда доступна управлению. Введение распределенной памяти, состоящей из очередей, позволяет конкретизировать условия готовности операторов в потоковом управ- лении: оператор можно исполнять, если каждая его входная очередь (или определенная часть входных очередей) непуста. Иногда требуется, чтобы входные очереди содержали не менее некоторого, указанного для данно- го оператора, числа данных. Иногда добавляется дополнительное усло- вие, чтобы выходные очереди были пусты или не переполнены. В литературе рассматривались различные варианты программного пред- ставления потоковых асинхронных вычислений и архитектуры потоко- вых вычислительных машин [31 ]. Выше было показано, что механизм событийного асинхронного управ- ления описывается в терминах сетей Петри, а для того, чтобы запрограм- мировать его, можно использовать управляющие выражения, основанные на алгебре регулярных и иерархических сетей. Семантику потокового управления также можно описывать в терминах сетей Петри, более того, можно использовать модификацию алгебры регулярных сетей и с ее по- мощью программировать асинхронные потоковые программы. Назовем Потоковыми сетями интерпретированные регулярные сети, в которых 135
переходы интерпретируются как операции (функции), места — как очереди, а фишки — как данные. Дополнительно принимаются сле- дующие соглашения: переход с п входными местами (места упоря- дочены) может интерпретироваться только л-местной операцией; имеется неявный, скрытый механизм организации очереди данных-фишек в каждом месте. На рис. 8.5 показаны три потоковые сети, задаваемые следующими формулами и интерпретирующими функциями, которые сопоставляют каждому переходу некоторую операцию: а) 1 (Ui, tj); ?з, (tj, Гд); ts); *6• (ti) = a, /j (tj) = Ь, /| (tj) = +, /1 (Гд) = с, /j (ts) = X, /| (tg) — “. б) 1 ((t।, tj); tj, (Г4, ts); te); ti. /2 (tj ) = a, /3 (tj) = b, /j (tj) = +, /'j (1д) = c, /2 (ts) - d, /2 (tj) = +, /2 U? > = в) 1 (((tj, t2>;tj, ); ts, ts); tq. /3 !i U2) = d, /3 (tj) = +, /3 (14) = c, /3 Us') ~ +> G fte) = d, /3 (tv) = +. Здесь символы +, X, 4- обозначают бинарные операции сложения, умно- жения и деления нацело. Символы a, b, с, d обозначают одноместные кон- стантные операции, которые для любого значения аргумента вырабатыва- ют одно и то же значение, равное соответственно а, Ь, с или d (т.е. VA, а(Аг) = а и т.д.). В потоковых сетях операция, соответствующая переходу, может ис- полниться, если данные-фишки присутствуют во всех входных местах перехода. После исполнения операции результат вырабатывается в таком числе Экземпляров, каково число выходных мест-очередей у соответствую- щего перехода. 136
Если подставить вместо символов переходов в формуле потоковой сети символы интерпретирующих их операций или функций, то получится потоковое управляющее выражение, составленное из интерпретирующих операций и операций управления. Одна и та же интерпретирующая опера- ция может подставляться вместо разных переходов. Условимся отмечать дополнительными индексами вхождения одной и той же операции, со- поставленной разным переходам. Это позволит избежать слияния разных переходов в один при построении сети по потоковой формуле. Потоко- вые выражения, задающие сети на рис. 8.5, имеют следующий вид: (1) 1 ((а,Ь);+, (Ь,с);Х);-г, (2) 1((а, 0);+!, (с, d);+2);+3, (3) 1 (((а, 6);+1( с);+2, d);+3. Если удалить из этих потоковых выражений операции управления, скобки и дополнительные индексы, то они примут вид: (П аЬ + ЬсХ-г, (2) ab+cd + +, (3) ab + с + d +. Полученные выражения представляют собой обратную польскую за- пись выражений, которые в инфиксной скобочной нотации имеют вид: (1) (а+Ь)-i-(0 X с), (2) (а+ Ь) + (с+ </), (3) ((а + b) +с) + d}. Формулы, задающие потоковые сети на рис. 8.5, и соответствующие потоковые выражения не содержат операций исключения и итерации. Такие выражения и потоковые сети будем называть простыми. Процесс преобразования формул потоковых сетей в потоковые выражения, за- тем в обратную польскую запись и, наконец, в обычную инфиксную запись можно однозначно провести в обратном направлении. Таким образом, для однозначного указания структуры потокового управления в ариф- метических выражениях достаточно записать их в< польской или в ско- бочной нотации. Поэтому для программирования простых выражений в асинхронных потоковых программах не требуется специальных управля- ющих примитивов. Следовательно, и асинхронный потоковый язык высо- кого уровня может не содержать специальных программных механизмов распараллеливания выражений. Оставаясь в рамках простых потоковых выражений, можно обеспечить функциональную полноту потоковых программ, если использовать наря- ду с операциями-преобразователями "условные операции", и обеспечить конвейерное исполнение потоковых выражений за счет подходящей раз- метки мест-очередей. Например, для того чтобы запрограммировать условное выражение if а < bthen (а + c)el$e (а — с) можно использовать условную операцию В (х, у, г\, в которой первый аргумент имеет тип "логический": {у, если х = истина, г, еслих = ложь. 137
Потоковое выражение для рассматриваемого условного выражения имеет вид: 1 (((а, Ь); <, (а,с); +, (а,с); - в), где а,Ь,с— константные операции, бинарная операция- < вырабатывает логическое значение. Простая потоковая сеть, задаваемая этой формулой, показана на рис. 8.6, а польская запись формулы выглядит следующим образом: ab < ас + ас — В. Недостатком введенного представления условного выражения в пото- ковой сети является необходимость вычисления обеих его альтернатив. Другой способ обеспечения функциональной полноты потоковых про- грамм— использование регулярных сетей общего вида, т.е. использование управляющих операций исключения Q и итерации*. В этом случае к мно- жеству операций и функций, интерпретирующих переходы сети, добавля- ются специальный класс унарных операций, которые мы назовем фильтра- ми. Условия срабатывания интерпретированного фильтром перехода меня- ется: он может сработать, если его входное место содержит данное и одно- временно значение фильтра для этого данного истинно. Если переход- фильтр может сработать, то он, как обычно, забирает фишку-данное и посылает его без изменений во все свои выходные места. Рассмотренное выше условное выражение можно запрограммировать с применением фильтров < и > следующим образом: 1((а, Ь); (К; (а,с>;+) | О; (аг, с>; — ))». Соответствующая потоковая сеть показана на рис. 8.7. На этом приме- ре видно, что фильтры следует использовать в сочетании с операцией ис- ключения. § 83. Типы управления Для того чтобы в параллельных программах иметь возможность в удоб- ной форме задавать сложные структуры управления, все большее распрост- ранение получает идея выделения управляющих примитивов в отдельный подъязык управления, который встроен в язык параллельного програм- мирования. Этот подъязык управления должен позволять описывать слож- ные управляющие взаимодействия и в то же время он должен основы- ваться на относительно простом, формальном семантическом базисе, поз- воляющем достаточно строго и надежно задавать корректные структуры управления и/или верифицировать их автоматически. Так, в работе [60] предложена формальная методика описания структур управления с по- мощью управляющих выражений [25], семантика которых представля- 138
ется в терминах сетей Петри. Алгебра регулярных и иерархических сетей, рассмотренная в главе 6, предназначена, в частности, для аналогичных целей. На ее основе предложен подъязык управления, являющийся частью базового языка параллельного программирования [4]. Основной конструкцией подъязыка управления служит формула управ- ления, составленная из операторов (модулей) языка как аргументов и из операций управления. Оператору соответствует атомарная сеть, сос- тоящая из единственного перехода (простого в случае простого оператора и составного в случае составного оператора или модуля). Операции управ- ления - это операции над сетями, введенные в § 6.1. Таким образом, семан- тика структуры управления, заданной формулой управления, представи- ма регулярной или иерархической сетью. Формула управления задает некоторую конкретную структуру управ- ления. Однако, наряду с операциями в алгебре сетей (и структур управ- ления) , можно рассматривать и функции над множествами сетей (и струк- тур управления). Такие функции будем называть функциями управления или типами управления [7]. В контексте структур управления последний термин используется приблизительно в том же смысле, в котором исполь- зуется понятие "тип данных" так как функция управления задает класс структур управления, обладающих некоторым общим свойством, напри- мер, семейство последовательных структур, конвейерных структур и т.п. Тип управления может быть описан программистом, ему может быть присвоено имя (идентификатор), которое далее может использоваться в формулах управления. В данном параграфе мы обсудим принципиальную сторону использования типов управления и приведем примеры их описа- ния и применения для конструирования параллельных программ. Функция (тип) управления может быть описана обычным образом по следующей схеме: функция-управления: : = имя-функции-управления (список-формальных-параметров) = формула-управления. Формальный параметр — это параметр-идентификатор, который при использовании (вызове) функции управления заменяется фактическим оператором (именем оператора) или структурой из операторов (сетью). Если в описании функции управления используются только скалярные параметры, то эта функция задает жесткий тип управления, описывающий некоторую фиксированную абстрактную структуру управления, конкре- тизация которой может осуществляться только путем непосредственной замены формальных параметров конкретными операторами (их именами) и сетями из операторов. Например, можно описать взаимное исключение исполнения двух опе- раторов, введя тип управления mutex 2 с помощью следующего описания: mutex 2 (a, b) = 1 * (а Об) где а и b - формальные параметры. Для описания параллельного исполнения двух пар последовательных операторов можно ввести тип parseq 4 с помощью следующего описания: parseq 4 (а, b, с, d) = 1 ((а;6), (с;с/)). Семантика описанных типов управления изображается сетями на рис. 8.8, а и б. Наконец, можно описать еще один тип управления, используя ранее описанные типы управления: рагех 4 (a, b, с, d, - (parseq 4 (a, b, с, d), mutex 2 (а, с), mutex 2 (Ь, </)). 139
Сеть, иллюстрирующая послед- ний тип управления, показана на рис. 83,в. Заметим, что форму- ла управления в левой части пос- леднего описания — это не просто формула алгебры сетей, описан- ной в главе 6, а формула, в кото- рой использованы функции управления точно таким же обра- зом, как используются функции в арифметических выражениях. Символы а, Ь, с, d в левой части описания типа рагех 4 являются фактическими параметрами по Рис. 8.8. отношению к типам (функ- циям) , встречающимся в правой части. В качестве фактических параметров могут, таким образом, высту- пать формальные или конкретные операторы и структуры управления, в том числе задаваемые функциями управления. Везде далее мы будем применять термин "формула управления" в расширенном смысле, до- пуская использование как операций, так и функций управления. Введенные выше типы управления являются жесткими типами с фик- сированным числом операторов или модулей. В общем случае желатель- но иметь типы управления, описывающие семейство подобных структур с "похожей" топологией управляющих связей, но с разным числом опера- торов. Если ограничиться только жесткими типами, то пришлось бы описы- вать большой набор функций управления: например, взаимное исключение для 2, 3, 4 и т.д. операторов. Чтобы избежать такой ситуации, наряду со скалярными объектами алгебры управления (операторами, сетями из операторов) необходимо рассматривать составные объекты — векторы и матрицы операторов и сетей из операторов. Другими словами, следует обобщить алгебру сетей на случай векторов и матриц сетей. Операции алгебры регулярных и иерархических сетей, введенные в главе 6 для "скалярных" сетей, распространяются на векторы и матри- цы сетей следующим образом. Унарные операции (итерация и разметка) "просачиваются" при приме- нении их к векторам и матрицам из операторов и сетей до скалярных элементов. Например, формула * <(в, 6), (с, сО) = ((*а, *b), (»с, *d)) задает матрицу 2 X 2 из сетей вида »х, где х = а или Ь или с или d. Бинарные операции обобщаются на случай векторов сетей за счет ассо- циативности этих операций. При таком обобщении удобней исполь- зовать префиксную форму операций над сетями, поэтому изменим обозначения бинарных операций на более наглядные обозначения сле- дующим образом: символ ", " наложения заменим на символ Д, символ присоединения заменим насимволО, символ исключения заменим на символ 57. Тогда Д (а, Ь, с, d) = (a, b, с, d), <J (а, b, с, d) = {a;b;c;d), V (а, b, с, d} = (а 0 b I с I <У). 140
Бинарные операции распространяются на случай матриц по следующему правилу просачивания: матрица, к которой применена бинарная операция, транспонируется, после чего операция применяется к каждой из вектор- ных строк. Например, 57((а, Л), (с, d)) • (V(a, с). V (Ь, d). В данном случае результатом применения операции исключения к матри- це 2Х 2 из элементарных сетей является вектор из двух сетей, задаваемых формулами у (а, с) и y(Z>,d) (или (а 1с) и (b jd)). Для распространения функций управления на случай, когда формаль- ный параметр может заменяться составным значением, также использу- ются описанные выше правила просачивания. При этом возможность за- мены формального параметра составным значением дает возможность задавать "динамические" типы управления: mutex (vecx) = 1 » Ух, где vecx означает, что функция непосредственно применима к векто- ру операторов. Теперь можно использовать тип mutex в формуле управления mutex ((а, />)), в которой вектор (а,Ь) — фактический параметр (пара операторов). Эта формула эквивалентна формуле управления 1 •Па,й|, т.е. формуле, стоящей в правой части описания типа mutex 2. Аналогично формула mutex ((а, Ь, с)) эквивалентна формуле 1 • V (а, Ь, с). Если вместо формального параметра-вектора подставляется фактичес- кий параметр-матрица Y=(Zit. .., Z„), где2, - вектор, то функция mutex применима к нему, но только после предварительного унарного просачи- вания функции по следующему правилу: mutex (У) = mutex ((Zt,..., Z„)) = ( mutex (Z,),..., mutex (Z„)). Пусть динамический тип управления описан следующим образом: parex (vecx, vecy) = 1 ДНх,<ту, Д* У(х, у)). Формула parex ((a, b,c), (d, е, f)) задает следующую структуру: parex ((a, b, с), (d, в, f)) = = 1 Д (<1(а, b, c),<i(d, е, f), Д * у((а, b,c), Id. е, f))) = = 1 Д (<J(a, b, с), <(d, в. f), Д * (У(а, d), V (Ь, е), у (с, И|) = = 1 Д(<(а, b, c),<3(d, е, f), Д (*у (a, d), * у (Ь, е), * У (с,7))) = = 1 ((a;d;c), (d;e; Л, * (а | d), * (Ь Це), * (с, f)}. Рис? 8.9. 141
Соответствующая сеть показана на рис. 8.9. Для функции управления seqex (matrx) = 1<Vx, где matr указывает, что эта функция непосредствен- но применима к матрице операторов, структура управления, задаваемая формулой seqex ((a, b, с), (с/,е, f)) = К V((a, b, с), (cf, е, f)) = = 1<1 (V(a, d}, V(b, е), V(c, f)) = 1 (a [I d); (b II e); (c Ilf)), . показана на рис. 8.10, a. Структура управления, задаваемая другой формулой, которая исполь- зует тот же тип управления seqex, показана на рис. 8.10, б: seqex ((а, 6), (с, d), (е, f)) = 1<V ((a, b), (с, d), (е, f)) = = 1 O(V(a, с, а), V (b, d, f)) = 1 (а 0 с Be); (6 II d В f). Двумерная сеточная структура с переменным числом операторов по обоим измерениям может быть определена с помощью следующего типа управления: lattice (matrx) = 1 Д (Д<х, Д<тх). Для случая матрицы 3X3 структура управления показана на рис. 8.11: lattice ((в| 1, aj г, aj з ), (а21, а2 2 • аг з), (аз i • аз г > аз з)) = = 1 Д (Д<1((а| 1, в] 2, в]з), (а^ 1,вг2. агз), (вз j, 832, взз)), Д< ((в| I , в2 1, Эз I ), (в| 2,32 2 > а3 2 h (а1 3, а2 3, а33 ))) = = 1Д (Д (*3(811, а21, вз 1), «а (a j 2, аз 2, аз2), <1 (ai з, а2 з, аз з)), Д (^(а 1 |, в] 2,8| з ),<1 (в2 1, в2 2 » a32 ), •'З (вз 1,832,833))) = = 1 ((ai 1;а21;831), (aj2;а2 2 ;вз2), (в] з;аз з;взз), (ai 1 ;Э12 .’э1 з), <а21 ;э2 2 >’э2з ), (а3!;аз2 ;а33)). Программируемые типы управления дают возможность конструировать разнообразные структуры управления. В частности, техникой типов уп- равления удобно описываются многие известные управляющие конструк- ции последовательных и параллельных языков. После того как програм- мист описал набор "абстрактных" типов управления и проверил их пра- 142
& 5,5 Рис. 8.12. вильность, он может с их помощью конструировать конкретные структу- ры управления в программах. Рассмотрим в качестве примера, иллюстрирующего возможности про- граммирования с типами управления, каким образом можно специфици- ровать структуру управления параллельной программы, решающей из- вестную задачу о пяти философах [33]. Пять философов гуляют в саду и размышляют. Когда философ чувст- вует, что проголодался, он заходит в столовую, где стоит круглый стол с пятью стульями и миской спагетти посреди стола. На столе — пять вилок, по одной слева и справа от каждого стула. Философ садится за стол, берет вилки (если они на месте) и ест спагетти (для этого обязательно нужно две вилки). Утолив голод, философ кладет вилки на стол и выходит в сад размышлять, пока вновь не почувствует, что проголодался. Задача состо- ит в том, чтобы синхронизировать независимые действия философов и не допускать взаимной блокировки, когда все философы сидят за столом, каждый взял по одной вилке и никто из них не может начать есть спагет- ти. Решение задачи — не позволять всем пяти философам одновременно находиться в столовой. Пусть набор действий всех пяти философов представлен матрицей PH размерности 5 X 7, в которой 7-я строка РН{ i, ] соответствует действиям 7-го философа. Каждый из философов выполняет семь действий, обра- зующих следующий вектор операторов: PH[i,] = PH[i, 1] PH[i, 2] PH[i, 3] PH[i, 4] PH[i, 5] PH\i, 6] PH[i, 7] (философ i входит в столовую), (философ/ берет левую вилку), (философ 7 б§рет правую вилку), (философ/ ест спагетти), (философ 7 кладет левую вилку), (философ 7 кладет правую вилку), (философ 7 выходит из столовой). Для программирования задачи о пяти философах сконструируем сле- дующие типы управления: act (vec X) = 1 «<1 (Х( 1], Д (Х[2], Х[3]), Х[4], Д (Z[5], X[6], X[7]). 143
При замене формального параметра-вектора X строкой матрицы PH фор- мируется сеть, описывающая поведение одного философа. При замене пара- метра X матрицей PH функция act просачивается, так что результатом вы- ражения act (PH} является вектор из пяти сетей, описывающих поведение философов. Наконец, формула управления д act (PH} задает параллельную структуру управления (сеть), показанную на рис. 8.12. Эта структура описывает независимые параллельные действия философов. Для вектора длины 7 следующая функция (fork выделяет его "критиче- ский участок". Если вместо X подставить вектор РН[ 7], то этот участок включает последовательность действий философа 7, при которых он ис- пользует левую от него вилку: Ifork (vec %) = <1(X(2],Z[4],Z[5]). Аналогично функция rfork будет использована для выделения критиче- ского участка, связанного с использованием философом правой вилки: rfork (vecX) =<(Z[3],X(4).Z[6]). Вспомогательная функция shift осуществляет циклический сдвиг векто- ра длины 5: shift (vec X) = Y, где У(7] = Х[(7 + 1) mod 5], 7=1.5. Тип управления parmutex (vec X, vec Y} = Д(1 *V (X, У)) задает покомпонентное взаимное исключение элементов векторов X и Y. Тогда формула управления Рис. 8.13. Д parmutex (Ifork (PH}, sh ift (rfork (PH))) задает структуру управления, показан- ную на рис. 8.13. Эта структура указы- вает, что каждая вилка является общим ресурсом для сидящих рядом философов, и исключает возможность одновременного исполнения ими действий, для которых требуется вилка. Наконец, тип управления four (vec X} = (4 *Х} разрешает параллельное исполнение не более четырех операторов или сетей из вектора, подставляемого вместо X. Поэтому формула управ- ления Д four (act (PH}) указывает, что не более четырех фило- софов может одновременно находиться в столовой. Теперь остается методом последова- тельного наложения отдельных слоев записать результирующую формулу управления, задающую структуру уп- 144
Рис. 8.14. равления параллельной программы, которая решает задачу о пяти философах: (Даст (PH), Д parmutex ((fork (PH)), sh ift (rfork (PH)), Д four (act (PH))). Соответствующая сеть показана на рис. 8.14. § 8.4 Петри-машина Регулярные и иерархические сети, представленные формулами, можно "обрабатывать" с помощью ЭВМ. Такая обработка может включать преоб- разования сетей, их оптимизацию по заданным критериям, моделирование их функционирования. Конечной целью программного представления сетей является применение их как компонентов систем программирования, ориентированных на описание и моделирование параллельных структур. Примером программного имитатора иерархических сетей с ожиданием может служить так называемая Петри-машина [1], которая строит по за- данной формуле иерархическую сеть с ожиданием и имитирует ее функцио- нирование. Петри-машина является основой интерпретатора управления для асинхронных параллельных программ. Петри-машина состоит из четырех блоков: — блок операций реализует операции над сетями,
— блок развертки строит внутреннее представление сети в форме так называемой развернутой сети, — блок ввода осуществляет ввод формул и построение развернутой сети с помощью первых двух блоков, — блок имитации моделирует функционирование сети. Блок ввода представляет собой однопроходный транслятор с языка фор- мул во внутреннее представление развернутых сетей. Синтаксическая структура этого языка аналогична структуре простых арифметических выражений. Простой синтаксис входного языка позволил найти простое программное решение блока. Грамматика языка расширена до автоматной, реализован стековый метод трансляции. Блок операций представляет собой набор процедур и функций, реа- лизующих операции над сетями и некоторые вспомогательные действия. Для внутреннего представления сетей, которые могут иметь произвольный объем и структуру, использовалась имеющаяся в языке Паскаль возмож- ность динамического построения конечных графов с помощью списочных структур и процедур динамического размещения данных. Иерархическая сеть разбивается на уровни, имеющие одинаковую струк- туру. К высшему уровню относятся переходы, которые не являются внут- ренними для других переходов сети. Их вложенность считается равной еди- нице, так как вся сеть рассматривается как составной переход. Для каждо- го перехода его вложенность на единицу больше вложенности охваты- вающего перехода. Петри-машину можно представить как универсальную процедуру гене- рации независимых копий процедуры управления функционированием составного перехода. Каждая такая копия генерируется для данного со- ставного перехода, когда он становится активным. Она организует локаль- ное управление работой этого перехода в течение всего времени его актив- ности и исчезает после его завершения. В иерархической сети два и более составных перехода могут одновременно находиться в активном состоя- нии, и, следовательно, несколько копий управления работают параллельно. Если некоторые составные переходы сети,имеют общее стороннее место, то при ее функционировании может возникнуть конфликтная ситуация, когда локальные управления переходов обращаются к этому месту. Ло- кальное управление любого из этих составных переходов не может само- стоятельно разрешить конфликт, оно может решать только вопросы, связанные с функционированием внутренней сети своего составного модуля. Для разрешения конфликтов, связанных с общими сторонними места- ми, нужна специальная процедура, называемая арбитром. Ее копии порож- даются при активации составных модулей вместе с копиями основного управления. При работе арбитра используется сеть, построенная из задан- ной иерархической сети специальным образом (развернутая сеть). В ней наряду с переходами заданной сети имеются так называемые теневые пере- ходы, которые являются представителями конфликтующих переходов на тех уровнях сети, на которых разрешаются конфликты между данными переходами. Рассмотрим произвольную иерархическую сеть N с множеством перехо- дов ТТи множеством мест Р и введем следующие обозначения: J(t) = {t' GTT 11' — внутренний переход t}, Q(t) = {r* G TT | f' — объемлющий переход длят}. Tip} = р U рт.е. множество переходов, инцидентных месту р. 146
В Р выделяется множество конфликтных мест сети KN= U К (г), где г€ТТ КМ = {р ЕР | Tip} * ф ЛТ(р} \J(t} *ф }. Таким образом, конфликтные места для составного перехода t инци- дентны как внутренним переходам перехода t, так и внешним по отноше- нию к нему переходам. Пусть Pt — множество внутренних мест перехода t (напомним, что место р является внутренним для г, если Т (р) С Jit}), а Р it} = 7 Uf. Будем говорить, что t — переход типа 0, если Р (г) Г) К^ = ф, и типа 1 в противном случае. Для конфликтного места р е определим охватывающий переход д (р) такой, что (a) p£Pg(f>). (6) Vt ~-F д (р) из р G Рг следует, что s' (р) e Jit}. Границей конфликтов для перехода t назовем переход д (t) G О (Г) такой, что (а) Р (г) CPg(f),n (6) Vt' Фд (t) изР(Г) ePt, следует, что s (t) GJ(t'). Другими словами, граница конфликтов для перехода г — это "минималь- ный" объемлющий t переход, содержащий все входные и выходные места t в качестве внутренних. Граница конфликтов существует для любого пере- хода, так как мы условились, что заданная иерархическая сеть представ- ляет собой составной переход. Для каждого перехода t типа 1 сети /V в каждом переходе t' е Q (г) П И J (д (t)) вводим дополнительный теневой переход типа 1, соответст- вующий г. В переходе д (г) вводим в качестве внутреннего теневой переход $ (Г) типа 0. Значения функций инцидентности F меняем так, что для лю- бого t типа 1 и для любогоре КNГР (г) F'(p,s(t)) =F(p,t),F'(s(t),p) = F(t,p), F'(p,t} =0, F'(t,p) = 0. Для остальных теневых переходов значения функций F1 равны 0. Между переходами типа 1 и соответствующими теневыми переходами устанавливается двусторонняя связь для передачи информации о наличии Рис. 8.15. 147
фишек в конфликтных местах. Переход t связывается со своим теневым переходом в охватывающем переходе, тот — с теневым переходом в сле- дующем объемлющем переходе и т.д. до д (f). В результате таких преобразований исходной иерархической сети полу- чается развернутая сеть. На рис. 8.15, а показана иерархическая сеть, а на рис. 8.15, б — соответствующая развернутая сеть. Теневые переходы изо- бражены светлыми барьерами, связи между ними и переходами типа 1 — пунктирными стрелками. В процессе имитации сети для каждого составного перехода г генерирует- ся копия основного управления Ct и копия арбитра At. Управление Ct про- веряет локальные условия активации переходов, охватываемых переходом Г, и переводит их из состояния в состояние. Арбитр At ведает конфликтны- ми местами р такими, что д (р) = г. При определении функционирования сетей с ожиданием вводилось два состояния переходов — активный и пассивный, а изменения состояний рассматривались как мгновенные события. При моделировании сетями реальных систем такие события имеют длительность. Аналогично при про- граммном моделировании сетей проверки условий активации, условий завершения и т.п. также имеют длительность. Поэтому в Петри-машине с каждым переходом связано несколько состояний: он может быть пассив- ным, проверяемым, готовым, активным, ждущим, остановившимся. Проверка условий активации различна для переходов типа 0 и типа 1. Если для перехода типа 0 выполнено локальное условие активации, то он переводится в состояние "готов". Для перехода t типа 1 основное управле- ние охватывающего перехода проверяет локальные условия активации и, если дно выполнено, проверяемый переход переводится в состояние "ждущий". Соответствующему теневому переходу "наверх" посылается запрос на фишки из мест Р (г) П К,у. Обработку этого запроса и возмож- ную передачу запроса на верхние уровни осуществляет арбитр уровня перехода г, он же передает ответ назад о результате проверки. Если ответ положителен, то переход t переводится в состояние "готов", в противном случае — в состояние "пассивный". Арбитр некоторого уровня формирует запросы от некоторого перехода к верхним уровням только в том случае, если он удовлетворил запросы этого перехода на своем уровне. Переход, находящийся в состоянии "готов", может быть приведен основ- ным управлением в активное или пассивное состояние. Когда составной переход активирован, генерируется его локальное основное управление и локальный арбитр. Все внутренние переходы считаются пассивными. Составной переход завершается, если ни один из охватываемых им переходов не является активным или ждущим и локальное условие актива- ции всех этих переходов не выполнено. В процессе завершения происходит смена разметки сети. Основное управление, завершая переход типа 0, пере- дает фишки в его выходные места и переводит переход в пассивное состоя- ние. Если же переход имеет тип 1, то управление дополнительно сообщает соответствующему теневому переходу о завершении перехода. Арбитр, при- няв этот сигнал, посылает фишки в выходные места теневого переход^. Если теневой переход имеет тип 0, то на этом передача сообщения "вверх" обрывается, а в противном случае сообщение идет на верхние уровни.
ЗАКЛЮЧЕНИЕ Настоящая книга не охватывает всей проблематики теории сетей Петри и ее приложений к задачам моделирования дискретных систем. За рамками книги остались прежде всего различные обобщения и модификации сетей Петри, вводимые как проблемно-ориентированные средства высокого уровня для моделирования систем специального вида: радиоэлектронных устройств, сетевых протоколов, экономических систем и т.п. Кроме тогр, не освещены систематически результаты применения сетей Петри к задачам обнаружения типовых ситуаций в дискретных системах, таких, как, напри- мер, взаимные блокировки. Это связано в первую очередь с тем, что описанные в литературе результаты не образуют критическую массу, доста- точную для их монографического обобщения. Чтр касается общей теории сетей, то она, во-первых, еще находится в стадии становления и, во-вторых, образует внутренний, "технологический" уровень сетевой проблематики. Поэтому она требует более специального изложения и погружения в кон- текст современных математических основ обработки информации. Из су- ществующих по этому вопросу публикаций можно рекомендовать обзор [37] и книгу [79]. Приводимый ниже список литературы ни в коей мере не является биб- лиографией по сетям Петри. Он содержит только непосредственно упоми- наемые в тексте книги публикации и некоторые работы, тесно связанные с излагаемым материалом. Последнее замечание связано с терминологией. Базовая англоязычная (и немецкая) терминология сейчас устоялась, хотя и употребляются разные варианты именования одинаковых или близких понятий. Попытка провести ее дальнейшую унификацию сделана в работе [38]. Общепринятая совет- ская терминология в области сетей Петри практически не существует, и не предпринимались попытки ее создать. Поэтому автор взял на себя смелость использовать в книге те русские термины, которые в течение многих лет применялись в работе коллектива, ведущего исследования по сетям Петри и их приложениям в Вычислительном центре СО АН CCQP. Двуязычный предметный указатель в конце книги поможет сопоставить их с английски- ми эквивалентами.
ЛИТЕРАТУРА 1. Алексеев Г.И., Мыльников С.П. Программная реализация Петри-машины. — В кн.: Многопроцессорные вычислительные системы и их математическое обеспече- ние. Новосибирск: Изд-во ВЦ СО АН СССР, 1982, с. 94—103. 2. А ни шее П.А., Ачасова С.М., Бандман О.Л. и др. Методы паралпельного микро- программирования. — Новосибирск: Наука, 1981. 3. Астаповский А.Г., Варшавский В.И., Мараховский В.Б. и др. Апериодические автоматы. — М.: Наука, 1976. 4. Быстров А.В., Дудоров Н.Н., Котов В.Е. О базовом языке. — В кн.: Языки и сис- темы программирования. Новосибирск: Изд-во ВЦ СО АН СССР, 1979, с. 85—106. 5. Гинзбург С. Математическая теория контекстно-свободных языков. — М.: Мир, 1970. 6. Карп Р.М., Миллер Р.Е. Параллепьные схемы программ. — В кн.: Кибернетичес- кий сборник. Вып. 13 (новая серия). М.: Мир, 1976, с. 5—61. 7. Котов В.Е. Параллельное программирование с типами управления. — Кибернети- ка, 1979, №3, с. 1-13. 8. Котов В.Е. Алгебра регулярных сетей. — Кибернетика, 1980, № 5, с. 10—18. 9. Котов В.Е., Черкасова П.А. Структурированные сети. — Кибернетика, 1981, № 4, с. 33-41. 10. Котов,В.Е., Черкасова Л.А. Некоторые критерии структурированности в классе ациклических сетей. — В кн.: Многопроцессорные вычислительные системы и их мате- матическое обеспечение. Новосибирск: Изд-во ВЦ СО АН СССР, 1982, с. 71 —83. 11. Матиясевич Ю.В. Диофантов ость перечислимых множеств. — ДАН, 1970, 191, №2, с. 279 -282. 12. Минский М. Вычисления и автоматы. — М.: Мир, 1971. 13. Роджерс С. Теория рекурсивных функций и эффективная вычислимость. —М.: Мир, 1972,624 с. 14. Таль АЛ., Юдицкий С.А. Иерархия и параллелизм в сетях Петри. II. Сложные автоматные сети Петри с параллелизмом. — Автоматика и телемеханика, 1982, № 9, с. 83—88. 15. Черкасова ЛЛ. Об отношении параллельности и КА -плотности в ациклических сетях. — В кн.: Параллельные вычислительные и программные системы. Новосибирск: Изд-во ВЦ СО АН СССР, 1981, с. 13-28. 16. Agerwala Т. A complete model for representing the coordination of asynchronous pro- cesses. — In: Hopkins Computer Research. Report 32. Baltimore, 1974. 17. Agerwala T., Flynn M. Comments on capabilities, limitations and "correctness" of Petri nets — In: Proc, of First Annual Symposium on Computer Architecture. New York, 1973, p. 81-86. 18. Araki T., Kasami T. Some decision problem for Petri nets. — Theoretical Computer Science, 1976, 3, № 1, p 85-104. 19. Baer J.L. A survey of some theoretical aspectsof multiprocessing.—Computing Sur- veys, 1973, 5, № 1, p. 31-80. 20. Berthelot G., Roucairol G. Reduction of Petri nets. — In: Lecture Notes in Compu- ter Science. Berlin: Springer-Verlag, 1976, 45, p. 202—209. 21. Best E. A theorem on the characteristics of non-sequential processes. — Fundamenta Informaticae, 1980, 3, № 1, p. 77—94. 22. Bast E. The relative stregth of /(-density. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1980, 84, p. 261—276. 23. Best E„ Merceron A. Discretness, /(-density and О-continuity of occurrence nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1982, 145, p. 73—83. 24. Borger E., Kleine Buning H. The reachability problem for Petri nets and decision prob- lems for Skolem arithmetic. — Theoretical Computer Science, 1980,11, №2, p. 123—143. 25. Campbel R.H., Habermann A.N. The specification of process synchronization by path expressions. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag,. 1974, 16, 150
26. Cherkasova L.A.. Kotov V.E. Structured nets. — In: Lecture Notes in Computer Sci- ence. Berlin: Springer-Verlag, 1981,118, p. 242—251. 27. Commoner F. Deadlocks in Petri nets. — In: Massachusetts Computer Associates. Report CA-7206-2311.Wakefiled, 1972. 28. Commoner F., Holt A.W., Even S., Pnualli A. Marked directed graphs. — Journal of Computer and System Sciences, 1971,5, p. 511—523. 29. Crespi-Reghizzi S., Mendrioli D. A decidability theorem for a class ef vector addition systems. — Information Processing Letters, 1975, 3, №3, p. 78—80. 30. Crespi-Reghizzi S.. Mandrioli D. Petri nets and Szilard languages. — Information and Control, 1977, 33, N»2. p. 177-192. 31. Dennis J. Concurrency in software systems. — In: Lecture Notes in Computer Sci- ence. Berlin: Springer-Verlag, 1975, 30, p. 1.11—127. 32. Dijkstra E.W. Co-operating sequential processes. — In: Programming Languages. New York: Academic Press, 1968, p. 43—112. 33. Dijkstri E.W. Hierarchical ordering of sequential processes. — Acta Informatica 1971, 1, №2, p. 115-138. 34. Genrich H. Extended simple regular expressions. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1975,32, p. 231 —237. 35. Genrich H., Leutenbach K. Synchronisationsgraphen. — Acta Informatica, 1973, 2, №2, p. 143-161. 36. Genrich H., Lautenbach K. Facts in place-transitions nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978, 64, p. 213—231. 37. Genrich H., Lautenbach K„ Thiagarajan P.S. Elements of general net theory. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1979,84, p. 21—164. 38. Genrich HJ., Stankiewicz—Wiechno E. A dictionary of some basic notions of net theory. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1980, 84, p. 519-531. 39. Ginzburg A., Yoeli M. Petri net languages and their applications. — Report CS-78-45. University of Waterloo, 1978. 40. Grabowski J. The unsolvability of some Petri net language problems. — Information Processing Letters, 1979,9, №2, p. 60—63. 41. Hack M. Analysis of production schemata by Petri nets. — Project MAC TR-94. Cambridge, 1972. 42. Hack M. The recursive equivalence of the reachability problem and the liveness prob- lem for Petri nets and vector addition systems. - Project MAC Memo 107. Cambridge, 1974. 43. Hack M. Decision problems for Petri nets and vector addition systems. — Project MAC Memo 59. Cambridge, 1975. 44. Hack M. Petri net languages. — Project MAC Memo 127. Cambridge, 1975. 45. Hack M. Decidability questions for Petri nets. — Laboratory for Computer Science TR 161. Cambridge. 1976. 46. Heck M. Thu equality problem for vector addition systems is undecidable. Theore- tical Computer Science, 1976, 2, N» 1, p. 77-96. 47. Henhapl W. A transformation of markad graphs. — Information Processing Letters, 1973,2, №1,p. 26-29. 48. Holt A.W., Commoner F. Events and conditions. — Report of Project MAC Confe- rence-on Concurrent Systems and Parallel Computation, MIT, Cambridge, 1970, p. 3-52. 49. Janicki R. A characterization of concurrency-like relations. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1979,70, p. 109—122. 50. Janicki R. On atomic nets and concurrency relations. — In: Lecture Notes in Com- puter Science. Berlin: Springer-Verlag, 1980,88, p. 320—333. 51. Jantzen M. On the hierarchy of Petri net languages. — R.A.I.R.O. Informatique Theo- rique, 1979. N013, p. 19-30. 52. Jantzen M., Vaike R. Formal properties of place-transition nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1979,84, p. 165—211. 53. Jensen K. A method to compare the descriptive power of different types of Petri nets, — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1980,88, p. 348-361. 54. Keller R.M. Vector replacement systems: a formalism for modelling asynchronous systems. — Tech. Report, Princeton University, 117,1972. 55. Keller R.M. Generalized Petri nets as models for system verification. — Tech. Report, Princeton University, 1975,202. 56. Konig D. Theorie der endlichen und unendlichen Graphen. — Leipzig: Acad. Verlag, 1936. 57. Kosaraju S.R. Limitations of Dijkstra's semaphore, primitives and Petri nets. — Opera- ting Systems Review, 1973,7, №4, p. 122—136. 58. Kotov V.E. An algebra for parallelism based on Petri nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978, 64, p. 39—55. 151
59. Landweber L.H., Robertson E.L. Properties of conflict-free and persistent Petri nets. — Journal of the ACM. 1978,26. № 3, p. 352-364. 60. Lauer P.E., Campbell R.H. Formal semantics of a class of high-level primitives for co- ordinating concurrent processes. — Acta Informatica, 1975,5,№4, p. 297—332. 61. Lautenbach K., Schmid H.A. Use of Petri nets for proving correctness of concurrent process systems. — Proc, of IFIPCongress 74. North-Holland Publ. Co., 1974, p. 187—191. 62. Mayr E. Persistence of vector replacement systems is decidable. — Laboratory for Computer Science TH 189. Cambridge, 1981. 63. Mayr E. Reachability problem for Petri nets. — Symposium on theory of computing, 1981. 64. Moalla M., Pulon J., Sifakis J. Synchronized Petri nets: a model for the description of non-autonomous systems. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978, 64, p. 374-384. 65. Nielsen M., Plotkin G., Winskel G. Petri nets, event structures and domains. - In: Lec- ture Notes in Computer Science. Berlin: Springer-Verlag, 1979,70, p. 266—284. 66. Noe J.D. Nets in modelling and simulation. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1980,84, p. 347—368. 67. Parikh R. On context-free languages. — Journal of the ACM, 1966, 13, N“4, p. 570— 581. 68. Patil S. Limitations and capabilities of Dijkstra's semaphore primitives for coordina- tion among processes. — Project MAC Memo 57, MIT, Cambridge, 1971,18 p. 69. Peterson J. Computation sequence sets. — Journal of Computerand System Sciences, 1976, 13, №1,p. 1-24. 70. Peterson J. Petri nets. — Computing Surveys, 1977,9, №3, p. 223—252. 71. Peterson J. A note on colored Petri nets. — Information Processing Letters, 1980,11, № 1, p. 40—43. 72. Peterson J.L. Petri net theory and the modelling of systems. — New York, 1981. 73. Petri C.A. Kommunikation mit Automaten. — Technische Hochschule Darmstadt, 1962 74. Petri C.A. Non-sequential processes. — ISF-Report 77.05. Gesellschaft fur Mathematik und Datenverarbeitung, 1971. 75. Petri C.A. Concurrency as a basis for system thinking. — ISF-Report 78.06, Gesell- schaft fur Mathematik und Datenverarbeitung, 1978. 76. Petri C.A. Introduction of general net theory. — In: Lecture Notes in Computer Sci- ence. Berlin: Springer-Verlag, 1980,84, p. 1—26. 77. Petri C.A. Concurrency. — In: Lecture Notes in Computer Science. Berlin-: Springer- Verlag, 1980,84, p. 251-260. 78. Reisig W. Schemes for nonsequential processing systems — In: Lecture Notes in Com- puter Science. Berlin: Springer-Verlag, 1980, 88, p. 515—527. 79. Reisig W. Petrinetze. — Berlin: Springer-Verlag, 1982. 80. Sacerdote S., Tenney R. The decidability of the reachability problem for vector addi- tion systems. — COINS Tech. Report 77-3. University of Massachusetts, 1977. 81. Sifakis J. Structural properties of Petri nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978,64, p. 474—483. 82. Starke P.H. Free Petri net languages. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978, 64, p. 506—515. 83. Starke P.H. Petri-Netze. Grundlagen. Anwendungen. — Theorie. VEB Dautscher Ver- lag der Wissenschaften, Berlin, 1980. 84. Starke P.H. Processes in Petri nets. — Journal of Information Processing and Cyberne- tics, El К 17,1981,8/9, p. 389-416. 85. Valk R. On the computational power of extended Petri nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1978,64, p. 526—535. 86. Valk R. Self-modifying nets, a natural extension of Petri nets. — In: Lecture Notes in Computer Science. Berlin: Springer-Verlag. 1978, 62, p. 464—476. 87. Valk R., Vidal-Naquet G. Petri nets and regular languages. — Journal of Computer and System Sciences, 1981,23, p. 299—325. 88. Minkowski T. On algebraic characterization of the behavior of non-sequential sys- tems. — Information Processing Letters, 1977,6, №4, p. 105—109. 89. Zerros C.R., Irani K.B. Colorad Petri nets: their properties and applications. — Systems Engineering Laboratory TR 107, University of Michigan, 1977.
СЛОВАРЬ ТЕРМИНОВ Автомат - конечный — счетчиковый Активация составного перехода Алгебра регулярных сетей Алгоритм регуляризации Альтернатива Арбитр Асинхронное программирование Взаимная блокировка Г рамматика Граф достижимых разметок — конечного автомата — маркированный — связанный — синхронизационный Действие Дуга — ингибиторная Завершение составного перехода Замыкание — множества Изменение условия Конфликт Кратность -дуги Критический интервал Линия Ловушка — размеченная Макет сети Маркер Automaton — finite - counter Activation of compound transition Algebra of regular nets Algorithm of regularization Alternative Arbiter Asynchronous programming Deadlock Grammar Graph of reachable markings - of finite automata — marked — connected — syncnronization Action Arc — inhibitor Termination of compound trans it ion Closure - of set Condition change Conflict Multiplicity — arc Critical section Line Trap — marked Duplicate of net Marker 153
Машина Минского — Тьюринга Место — безопасное — внешнее входное — внешнее выходное — внутреннее - входное — выходное — головное — конфликтное — локальное входное — локальное выходное — неограниченное — ограниченное - стороннее — хвостовое Метка Множество — достижимых разметок — замкнутое — последовательностей срабатыва- ний — приоритетов Minsky machine Turing - Place — safe — external input - external output — local - input — output — head — conflict — local input — local output - unbounded — bounded — external — tail Label Set — of reachable markings — closed — of f iring sequences — of priorities Наименьшая верхняя грань Least upper bound Оператор - недетерминированного перехода - печати символа — прибавления единицы — старт — стоп — условного вычитания единицы Операция — исключения — итерации — присоединения — разметки - слияния мест — формирования сливаемых мест Operator — choice — print — increment — start - stop — test and decrement Operat ion — exclusion — iteration — join — marking - merging of places — formation of set of merged places Отношение — альтернативы - инцидентности — конкуренции — параллелизма Relation — alternative — incidence — compet it ion — concurrency 154
Отношение предшествования — следования Отображение Парика Relation precedence — succesion Parikh mapping Переход — верхнего уровня — внутренний — живой — мертвый — объемлющий — потенциально живой - потенциально мертвый — простой -сосед — составной — устойчивый Плотность Подсеть — максимальная Покрывающее дерево сети -----полное Постусловие Предусловие Приоритет Проблема — безопасности — включения графов полино- мов — включения языков - Гильберта — достижимости разметки — живости — конечности — ограниченности — потенциальной живости перехо- дов — принадлежности - пустоты — устойчивости — эквивалентности языков Программа автомата Продукция Процесс — параллельный — параллельно-альтернативный — параллельный с конкуренцией — последовательно-альтернативный — последовательный Transition — upper-level — internal — live -dead — enc'osure — potentially live — potentially dead — simple — neighbour — compound — persistent Dencity Subnet — maximal Coverability tree of net --------complete Post-condition Pre-condition Priority Problem — safeness - the polynomial graph inclusion — inclusion of langauges - Hibert's — reachability of marking — liveness — finiteness — boundness — potential liveness of transitions — membership — emptiness — persistence — eguivalence of languages Program of automaton Production Process -concurrent — concurrent-alternative - concurrent with completit ion — sequential-alternative — sequential 155
Путь — обратный — простой Path — reverse - simple Разметка — достижимая — заключительная — начальная - терминальная — тупиковая Разрез - альтернативный Реализация события — условия Marking — reachable — terminal - initial - terminal — dead Cut — alternative Event realization — condition Свойство монотонности Семафор Сеть Петри автоматная безопасная иерархическая ингибиторная консервативная неограниченная ограниченная ординарная плотная — помеченная примитивная раскрашенная регулярная конечноразмеченная самомодифицируемая свободная свободного выбора с ожиданием с приоритетами устойчивая элементарная Сеть-процесс ациклическая параллельная последовательно-альтернатив- ная правильная развернутая с конкуренцией Сечение Monoton ity property Semaphore Petri net state-machine safe hierarchical inhibitor conservative unbounded bounded ordinary — dense labelled primitive coloured regular with finite marking self-modified - - free free-choice with waiting with priorities persistent elementary Process net ; acyclic occurrence sequential-alternative correct unfold with competition Sect ion 154
Символ — начальный — нетерминальный - терминальный - пустой Синхрограф Слабая вычисляемость Событие Состояние — автомата - заключительное — начальное — составного перехода ---активное ---пассивное Срабатывание перехода Стандартная форма сети Структура управления ---последовательная ---последовательно-параллельная Счетчик Тупик - пустой — тривиальный Управление - потоковое - динамическое Условие Условнособытийная система Фильтр Фишка Формулахети ---примитивная ---расслоенная ---стандартно-расслоенная ---структурная Фрагмент сети базовый ---регулярный Функция инцидентности помечаю- щая Цепь Цикл — простой — пустой - регулярный Symbol - initial — nonterminal — terminal — empty Synchrograph Weak computation Event State — automata — terminal — initial - of compound transition ---- active ----passive Transition firing Standard form of net Control structure ----sequential ----sequential-parallel Counter Dead Io k, deadend - empty — trivial Control — flow -dynamic Condition Event-condition system Filter Token Net formula — — primitive ----stratified ----totally stratified ----structured Basic subnet regular - Incidence function labelling Chain Loop — simple — empty - regular
Циклический компонент Язык — контекстно-зависимый — контекстно-свободный — полный свободный иерархичес- кой сети — префиксный - регулярный - рекурсивно-перечислимый — свободный — терминальный Cyclic component Language — context-sens it ive — context-free — complete free - of hierarchical net — prefix — regular — г curs ive ly enumerable — free — terminal
Вадим Евгеньевич Котов СЕТИ ПЕТРИ Редактор А.А. Болотов Технический редактор В.В. Лебедева Корректоры Т.В. Обод, Т.А. Печко Набор осуществлен в издательстве на наборно-печатающих автоматах ИВ* 12498 Сдано в набор02.01.84. Подписано к-печати 14.03.84 Т-07918. Формат 60 X 90 1 /16. Бумага офсетная № 2 Гарнитура Универе. Печать офсетная Усл. печ. л.Ю.О.Усп. кр.-отт. 10,0. Уч.-изд.л. 12,41 Тираж 5800 зкз. Тип. зак.121 Цена 1 р. 80 к. Издательство "Наука” Главная редакция физико-математической литературы Москва, В-71, Ленинский проспект, 15