Книга
Книга
ВВЕДЕНИЕ
Сети Петри — инструмент исследования систем. Теория сетей Петри делает возможным моделирование системы математическим представлением ее в виде сети Петри. Предполагается, что анализ сетей Петри поможет получить важную информацию о структуре и динамическом поведении моделируемой системы. Эта информация будет полезна для оценки моделируемой системы и выработки предложений по ее усовершенствованию и изменению. Таким образом, понятно, почему развитие сетей Петри основывалось на применении их к моделированию и проектированию систем.
Моделирование
Применяются сети Петри исключительно в моделировании. Во многих областях исследований явление изучается не непосредственно, а косвенно, через модель. Модель — это представление, как правило, в математических терминах того, что считается наиболее характерным в изучаемом объекте или системе. Ожидается, что, манипулируя представлением, можно получить новые знания о моделируемом явлении, избегая опасности, дороговизну или неудобства манипулирования самим реальным явлением. Моделирование применяется в астрономии (где модели рождения, смерти и взаимодействия звезд позволяют разрабатывать теории, имеющие дело с большими промежутками времени и огромными количествами материи и энергии), ядерной физике (где изучаемые радиоактивные атомы и элементарные частицы существуют в течение очень коротких периодов времени), социологии (где непосредственное воздействие на изучаемые группы людей связано с этическими проблемами), в биологии (где модели биологических систем требуют для развития меньшего пространства, времени и питательного вещества) и т. д.
Как правило, модели имеют математическую основу. Характеристики многих физических явлений можно описать числами, а связь этих характеристик — уравнениями или неравенствами. В частности, в естественных науках и технике уравнениями описываются такие характеристики, как масса, положение в пространстве, момент, ускорение и силы. Однако для успешного использования подхода моделирования необходимо знание как моделируемых явлений, так и свойств метода моделирования. Поэтому математика как наука развивалась частично благодаря использованию ее в моделировании явлений, изучаемых другими'науками. Так, напри-
мер, дифференциальное исчисление появилось в ответ на необходимость в средствах моделирования в физике таких непрерывно изменяющихся характеристик, как положение в пространстве, скорость и ускорение.
С разработкой быстродействующих ЭВМ использование и полезность моделирования значительно возросли. Представление системы математической моделью, преобразование этой модели в команды для ЭВМ и выполнение программы на ЭВМ сделали возможным моделирование больших и более сложных систем, чем ранее. Это привело в результате к «значительным исследованиям методов моделирования на ЭВМ и самих ЭВМ, поскольку они участвуют в моделировании в двух ролях: как вычислительные средства и как объект моделирования.
Природа систем
Вычислительные системы очень сложны, часто велики, включают множество взаимодействующих компонент. Каждая компонента также может быть очень сложной, поскольку взаимодействует с другими компонентами системы. Это справедливо и для многих других систем. Экономические системы, юридические системы, системы управления дорожным движением, химические системы состоят из многих отдельных компонент, взаимодействующих друг с другом сложным образом.
Итак, несмотря на разнообразие моделируемых систем, выделяется несколько общих черт, которые должны быть отражены в особенностях используемой модели этих систем. Основная идея заключается в том, что системы состоят из отдельных взаимодействующих компонент. Каждая компонента сама может быть системой, но ее поведение можно описать независимо от других компонент системы, за исключением точно определенных взаимодействий с другими компонентами. Каждая компонента имеет свое состояние. Состояние компоненты — это абстракция соответствующей информации, необходимой для описания ее (будущих) действий. Часто состояние компоненты зависит от предыстории этой компоненты, поэтому оно может со временем изменяться. Понятие «состояние» очень важно при моделировании компоненты. Например, в модели системы очередей банка могут присутствовать несколько кассиров и несколько клиентов. Кассиры могут быть свободны (ожидая клиента) или заняты (обслуживая клиента). Аналогично клиенты могут быть свободны (ожидая, когда кассир освободится для обслуживания их) или заняты (при обслуживании их кассиром). В клинической модели состояние пациента может быть критическим, серьезным, удовлетворительным, хорошим или превосходным.
Действиям компонент системы присущи совмещенность или параллелизм. Действия одной компоненты системы могут производиться одновременно с действиями других компонент. В вычисли-
тельной системе, например, под управлением ЭВМ могут параллельно действовать такие периферийные устройства, как устройства чтения с карт, построчно печатающие устройства и др. В экономической системе в одно и то же время производители поставляют одну продукцию, тогда как продавцы сбывают другую, а покупатели используют третью.
Совмещенная природа действий в системе создает некоторые трудности при моделировании. Поскольку компоненты системы взаимодействуют, необходимо установление синхронизации. Пересылка информации или материалов от одной компоненты к другой требует, чтобы действия включенных в обмен компонент были во время взаимодействия синхронизированы. Это может привести к тому, что одна компонента будет ждать другую компоненту. Согласование во времени действий различных компонент может быть очень сложным, а получающиеся в результате взаимодействия между компонентами трудны в описании.
Зарождение теории сетей Петри
Сети Петри разрабатывались специально для моделирования тех систем, которые содержат взаимодействующие параллельные компоненты. Впервые сети Петри предложил Карл Адам Петри [241]. В своей докторской диссертации «Kommunikation mit Auto- maten» («Связь автоматов») Петри сформулировал основные понятия теории связи асинхронных компонент вычислительной системы. В частности, он подробно рассмотрел описание причинных связей между событиями. Его диссертация посвящена главным образом теоретической разработке основных понятий, с которых начали развитие сети Петри.
Работа Петри привлекла внимание А. В. Хольта и сотрудников из Проекта Information System Theory (Теория информационных систем) фирмы Applied Data Research (ADR). Ими была развита большая часть начал теории, предложены обозначения и представления сетей Петри, опубликованные в окончательном отчете по этому проекту [128] и в отдельном отчете, имеющем название «Events and Conditions» («События и условия») [127]. В этой работе показано, как сети Петри можно применить к анализу и моделированию систем, включающих параллельные компоненты.
Работа Петри привлекла также внимание группы, работающей над Проектом МАС в Массачусетском технологическом институте (МТИ). Руководимая профессором Дж. Б. Деннисом группа вычислительных структур стала источником значительных исследований и публикаций по сетям Петри, были написаны несколько Диссертаций на степень доктора философии и множество отчетов и меморандумов (см. библиографию). Группой вычислительных структур были проведены две большие конференции по сетям Петри: Конференция Проекта МАС по параллельным системам и па-
раллельным вычислениям в 1970 г. в Вудс Холле [73] и Конференция по сетям Петри и связанным с ними методам в 1975 г. в МТИ. Обе эти конференции внесли вклад в распространение результатов и методов теории сетей Петри.
За последние несколько лет использование и изучение сетей Петри значительно расширились. В 1977 г. в Париже и в 1979 г. в Гамбурге на лекциях по общей теории сетей проводились заседания рабочей группы по сетям Петри. В ФРГ была образована группа интереса1) по сетям Петри. Исследования и применения сетей Петри расширяют сферу действия.
Применение теории сетей Петри
Возможно несколько путей практического применения сетей Петри при проектировании и анализе систем. В одном из подходов сети Петри рассматриваются как вспомогательный инструмент анализа. Здесь для построения системы используются общепринятые методы проектирования. Затем построенная система моделируется сетью Петри, и модель анализируется. Любые трудности, встречающиеся при анализе, указывают на изъяны в проекте. Для их исправления необходимо модифицировать проект. Модифицированный проект затем снова моделируется и анализируется. Этот цикл повторяется до тех пор, пока проводимый анализ не приведет к успеху. Такой подход иллюстрируется на рис. 1.1. Заметим, что его можно использовать и для анализа уже существующих действующих в настоящее время систем.
В этом общепринятом подходе использования сетей Петри в проектировании требуется постоянное преобразование проектируемой системы в модель в виде сети Петри. Можно предложить другой, более радикальный подход, в котором весь процесс проектирования и определения характеристик проводится в терминах сетей Петри. Методы анализа применяются только для создания проекта сети Петри, свободного от ошибок. Здесь задача заключается в преобразовании представления сети Петри в реальную рабочую систему.
Эти два подхода использования сетей Петри в процессе проектирования предлагают исследователю сетей Петри задачи разного типа. В первом случае необходима разработка методов моделирования систем сетями Петри, а во втором случае должны быть разработаны методы реализации сетей Петри системами. В обоих случаях необходимы методы анализа сетей Петри для определения свойств модели. Таким образом, первое, чего нам необходимо коснуться при рассмотрении теории сетей Петри, — это изучение свойств самих сетей Петри.
О Эта группа провела уже три заседания: в Страсбурге (Франция), 1980 г., в Бад-Хоннефе (ФРГ), 1981 г., в Вероне (Италия), 1982 г. — Прим, ред.
Рис. 1.1. Использование сетей Петри для моделирования и анализа систем. Сначала система моделируется сетью Петри, затем модель анализируется. Оценка системы, являющаяся результатом анализа, приведет, как ожидается, к лучшей системе. Необходимы исследования, направленные на разработку автоматических методов моделирования и анализа систем сетями Петри.
Прикладная и чистая теориисетей Петри
Развитие теории сетей Петри проводилось по двум направлениям. П рикладная теория сетей Петри связана главным образом с применением сетей Петри к моделированию систем, их анализу и получающимся в результате этого глубоким проникновением в моделируемые системы. Успешная работа в этом направлении требует хорошего знания области применения, сетей Петри и методов теории сетей Петри.
Чистая теория сетей Петри занимается разработкой основных средств, методов и понятий, необходимых для применения сетей Петри. Хотя мотивация исследований по сетям Петри связана с приложениями, для применения сетей Петри необходим прочный теоретический фундамент. Большая часть работ по сетям Петри к настоящему времени относится к фундаментальной теории сетей Петри, развивающей средства и методы, которые окажутся некогда полезными для применения сетей Петри к конкретным реальным задачам. В этой книге представлены обе области теории сетей Петри (чистая и прикладная), но внимание будет сконцентрировано главным образом на основах теории. Раскрываемые приложения предназначены в основном для демонстрации широты применения и силы теории сетей Петри и обоснования разработки методов анализа.
Мы не будем пытаться раскрыть глубоко весь диапазон тем теории сетей Петри, а скорее постараемся обеспечить прочную основу в терминах, понятиях, методах, результатах и истории сетей Петри для того, чтобы специалисты и аспиранты, специализирующиеся в вычислительной технике, могли разобраться во всевозрастающем потоке литературы по сетям Петри и были способны применить эту теорию к еще более широкому спектру приложений. Мы начинаем с нескольких формальных определений и примеров в гл. 2 и пока-
зываем далее в книге их силу и полезность. Заканчиваем аннотированной библиографией, охватывающей большинство публикаций по сетям Петри.
Замечания к литературе
Теория сетей Петри родилась в диссертации Петри [241], но большинство работ в США основано на окончательном отчете по Проекту теории информационных систем [128], в котором переведена на английский язык и значительно расширена диссертация Петри. Кроме того, среди первых публикаций важную роль играет работа Хольта и Коммонера «События и условия» [127]. Петри представил небольшую статью на конгресс ИФИП, которая опубликована в трудах конгресса [242]. Она основана на идеях, изложенных в диссертации.
Представленный в книге подход во многом основан на работе группы вычислительных структур МТИ и работах Денниса [72], Патила [231] и др., кончая работой Хэка [113]. На содержание книги также оказал влияние Келлер — своим отчетом по системам замещения векторов [150] и своей точкой зрения на моделирование [152].
Темы для дальнейшего изучения
Проследите истоки и направления важных идей теории сетей Петри. Очевидно, что исходная точка принадлежит Петри, но как и к кому направлялись идеи дальше, как они появились в Соединенных Штатах? Куда они направились оттуда? Для определения предшествования используйте даты и ссылки из опубликованных отчетов, статей, диссертаций и меморандумов. Возможно, вам захочется проинтервьюировать некоторых «ключевых» людей: Петри, Хольта, Денниса, Патила и др.
ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ
В этой главе мы дадим формальные определения основных понятий сетей Петри. Основные понятия используются на протяжении всей книги и являются необходимыми для правильного понимания.
Наш формализм основывается на теории комплектов, являющейся обобщением теории множеств. Если вы не знакомы близко с теорией комплектов, предлагаем вам прочитать приложение.
Определения, данные здесь, по стилю подобны определениям теории автоматов [130], т. е. определен новый класс машин — автоматная сеть Петри. Как мы увидим позднее (гл. 5—8), такая точка зрейия может привести к некоторым интересным результатам в теории формальных языков и теории автоматов.
Структура сети Петри
Сеть Петри состоит из четырех элементов: множество позиций Р, множество переходов Т, входная функция / и выходная функция О. Входная и выходная функции связаны с переходами и позициями. Входная функция / отображает переход t j в множество позиций I{t j), называемых входными позициями перехода. Выходная функция О отображает переход tj в множество позиций О(/Д называемых выходными позициями перехода.
Структура сети Петри определяется ее позициями, переходами, входной и выходной функциями.
Определение 2.1. Сеть Петри С является четверкой, С = (Р, Т, /, О). Р = {рь р^ ..., рпА — конечное множество позиций, п > 0. Т = {^ь t^ ..., /т} — конечное множество переходов, т > 0. Множество позиций и множество переходов не пересекаются, Р f] Т = = 0. I : Т-> Р°° является входной функцией — отображением из переходов в комплекты позиций. О: Т->Р°° есть выходная функция — отображение из переходов в комплекты позиций.
Мощность множества Р есть число п, а мощность множества Т есть число т. Произвольный элемент Р обозначается символом рь 1 = 1, ..., п, а произвольный элемент Т — символом th j = = 1,..., m.
Примеры сетей Петри даны на рис. 2.1—2.3.
Позиция рг является входной позицией перехода /7- в том случае, если pt £ I (/j); pt является выходной позицией, если pt £ О (t j). Входы и выходы переходов представляют собой комплекты позиций. Комплект является обобщением множества, в* которое вклю-
чены многократно повторяющиеся элементы — тиражированные элементы. В приложении содержится описание теории комплектов. Использование комплектов, а не множеств для входов и выходов перехода позволяет позиции быть кратным входом либо кратным выходом перехода. Кратность входной позиции pt для перехода tj есть число появлений позиции во входном комплекте перехода, #(pt, I (tj)). Аналогично кратность выходной позиции рг для перехода tj есть число появлений позиции в выходном комплекте перехода, #(pf, О (t3)). Если входная и выходная функции являются множествами (а не комплектами), то кратность каждой позиции есть либо 0, либо 1.
Входные и выходные функции используются для отображения позиций в комплекты переходов, а также их можно использовать для отображения переходов в комплекты позиций. Определим, что переход t3 является входом позиции рь если pt есть выход t3. Переход t3 есть выход позиции рь если pt есть вход tj.
Определение 2.2. Определим расширенную входную функцию I и выходную функцию
О: Р-^Т”О: Р-^Т”о» о (Pi)) = # (pt, i(tj)).о» о (Pi)) = # (pt, i(tj))./ : Р Т°, таким образом, что
О: Р-^Т”
О: Р-^Т”
о» о (Pi)) = # (pt, i(tj)).
о» о (Pi)) = # (pt, i(tj)).
Op HPi))=*(Pb O(tj)),
Для сети Петри на рис. 2.1 расширенными входной и выходной функциями являются:
НР1) = к }.I крг) ~ {^1» ^}> ^ (Рз) = Vi> ^)»1 (Pi) = {^з}»I ^Рь) = Vv М’НР1) = к }.I крг) ~ {^1» ^}> ^ (Рз) = Vi> ^)»1 (Pi) = {^з}»I ^Рь) = Vv М’о^) = № О (Ра) = {^}> О (рз) — {^2> ^зУ О (Р4) — {^4}» О (Ps) = {^2}-о^) = № О (Ра) = {^}> О (рз) — {^2> ^зУ О (Р4) — {^4}» О (Ps) = {^2}-
НР1) = к }.
I крг) ~ {^1» ^}> ^ (Рз) = Vi> ^)»
1 (Pi) = {^з}»
I ^Рь) = Vv М’
НР1) = к }.
I крг) ~ {^1» ^}> ^ (Рз) = Vi> ^)»
1 (Pi) = {^з}»
I ^Рь) = Vv М’
о^) = № О (Ра) = {^}> О (рз) — {^2> ^зУ О (Р4) — {^4}» О (Ps) = {^2}-
о^) = № О (Ра) = {^}> О (рз) — {^2> ^зУ О (Р4) — {^4}» О (Ps) = {^2}-
С = (Р, Т, I. О),
Р = (Р1, Ри Рз» Pi, Рь), Р={^1, ^2» ^31 ^4}»
I(tl) = (Pl),I (Q = {о2, Рз, р5), /(У = {РзЬ I(ti) = (pi),I(tl) = (Pl),I (Q = {о2, Рз, р5), /(У = {РзЬ I(ti) = (pi),0(/1) = {р2, Рз, Рз)О(^ = (Ръ),O(t3) = (p4), O(ii) = {Pn Рз).0(/1) = {р2, Рз, Рз)О(^ = (Ръ),O(t3) = (p4), O(ii) = {Pn Рз).
I(tl) = (Pl),
I (Q = {о2, Рз, р5), /(У = {РзЬ I(ti) = (pi),
I(tl) = (Pl),
I (Q = {о2, Рз, р5), /(У = {РзЬ I(ti) = (pi),
0(/1) = {р2, Рз, Рз)
О(^ = (Ръ),
O(t3) = (p4), O(ii) = {Pn Рз).
0(/1) = {р2, Рз, Рз)
О(^ = (Ръ),
O(t3) = (p4), O(ii) = {Pn Рз).
Рис. 2.1. Структура сети Петри представлена в виде четверки, которая состоит из множества позиций (Р), множества переходов (Т), входной функции /: Т->- Р°° и выходной функции (О: Т-^- Р°°).
С=(Р, 7, /, О), Р= <Р1. Рг, Рз, Р4, Рь, Рв), Т=01, <г, <3, <3, <4,
/(<1) = {Р1}.О (У = (Р2. Рз),
I Vt) ={р3},О (/2) = {р3, р5, р5},
I Vs) ={Р2. Рз},О (/3) = {р2, р4},
I (V =(Р4, Ps. Ps, Ps),О Vt) = {р4},
/Gs) ={p2}.O(Q = {p6}-
Рис. 2.2. Структура сети Петри.
С = (Р, 7, /, О),
Р = {Pi > Рг > Рз, Р4, Рб» Ре, Pit Р&> Рэ) > t=Vi, Ц, t3, t4) tbl /6},
/М = {Р1}. /(^{PsL 1 Vs) = <Р2» Ps}.
/ М = {Рз} .
1 Vs) = (Рб. Pl).
I Ve) = {P4. P«}$
OVi) = )Ps. Ps)» OVs) = {Pi. Pt}. OVs) = M. O(V = {P4}, OVs) = M, OVe) = (Psi Ps}-
Рис. 2.3. Структура сети Петри.
Упражнения.
Найдите расширенную входную и выходную функции сетей Петри (рис. 2.2 и 2.3).
Покажите, что входная и выходная функции одновременно не являются необходимыми и что сеть Петри может быть определена множествами позиций, переходов и расширенной входной (или выходной) функцией. Для этого покажите, как расширенная выходная функция может быть определена из расширенной входной функции и наоборот.
Графы сетей Петри
В значительной степени теоретическая работа по сетям Петри основана на формальном определении сетей Петри, изложенном выше. Тем не менее для иллюстрации понятий теории сетей Петри гораздо более удобно графическое представление сети Петри. Теоретико-графовым представлением сети Петри является двудольный ориентированный мультиграф.
Структура сети Петри представляет собой совокупность позиций и переходов. В соответствии с этим граф сети Петри обладает двумя типами узлов. Кружок О является позицией, а планка | — переходом.
Ориентированные дуги (стрелки) соединяют позиции и переходы, при этом некоторые дуги направлены от позиций к переходам, а другие — от переходов к позициям. Дуга, направленная от позиции pt к переходу tj, определяет позицию, которая является входом перехода. Кратные входы в переход указываются кратными дугами из входных позиций в переход. Выходная позиция указывается дугой от перехода к позиции. Кратные выходы также представлены кратными дугами.
Сеть Петри есть мультиграф, так как он допускает существование кратных дуг от одной вершины графа к другой. Следует добавить, что так как дуги являются направленными, то это ориентированный мультиграф. Мы знаем, что вершины графа можно разделить на два множества (позиции и переходы) таким образом, что каждая дуга будет направлена от элемента одного множества (позиций или переходов) к элементу другого множества (переходов или позиций); следовательно, такой граф является двудольным ориентированным мультиграфом. В дальнейшем для простоты будем называть его просто графом сети Петри.
Определение 2.3. Граф G сети Петри есть двудольный ориентированный мультиграф, U = (V, Л), где V= {иь и2, иД— множество вершин, а Л = {аь а2, ..., аД— комплект направленных дуг, at = (pj, vk), где i)j, vk £ V. Множество V может быть разбито на два непересекающихся подмножества Р и Т, таких, что V = Р U Т, Р П Т = 0, и для любой направленной дуги аг € Л, если at = (и,, vk), тогда либо Vj £Р и vk б Т, либо Ч/ ЕЛ а *ик^Р.
Графы сети Петри, изображенные на рис. 2.4 — 2.6, эквивалентны структурам сети Петри на рис. 2.1 — 2.3.
Для демонстрации эквивалентности этих двух представлений сети Петри — структуры сети Петри и графа сети Петри — покажем, каким образом можно преобразовать один в другой. Предположим, нам дана структура сети Петри С = (Р, Т, 7, О) с Р = = {Pi, Рг, •••, рЛ wT = {^, t2, ..., tm\ Тогда граф сети Петри можно определить следующим образом.
Определение 2.4. Определим V = Р U Т. Определим Л как комплект направленных дуг, такой, что для всех Pi^ Р и tj £Т
((Рр t3\ Л) = # (рр I ^^
Р^ A)=#(Ph О (Q).
G = (V, Л) есть граф сети Петри, эквивалентный структуре сети Петри С = (Р, Т, 7, О).
Обратное преобразование (от графа сети Петри к структуре) осуществляется подобным образом, и поэтому оставим более детальное описание такого преобразования читателю. Однако при перехо-
Рис. 2.4. Граф сети Петри, эквивалентный структуре, показанной на рис. 2.1.
Рис 2.5. Граф сети Петри, эквивалентный структуре, изображенной на рис. 2.2.
Рис. 2.6. Граф сети Петри, эквивалентный структуре, показанной на рис. 2.3.
де от графа сети Петри к структуре сети Петри возникает одна интересная задача: если множество вершин можно разделить на два подмножества S и R, то какое из этих подмножеств должно быть позициями, а какое — переходами? Оба возможных варианта позволяют определить сеть Петри, хотя в получающихся в результате структурах позиции и переходы меняются местами.
Двойственной к сети Петри С = (Р, Т, /, О) является сеть Петри С = (Т, Р, /, О), которая получается в результате перестановки позиций и переходов. Структура графа сохраняется, просто меняются местами кружки и планки (см. упражнение 6). На рис. 2.7
Рис. 2.7. Сеть, двойственная к сети Петри, показанной на рис. 2.4.
показана сеть, двойственная к сети Петри на рис. 2.4. Двойственность —' обычно полезный прием в теории графов и кажется интересным понятием для сетей Петри. Однако никакой пользы извлечь из понятия двойственной сети Петри в исследовании этих сетей не представляется возможным. Это объясняется в основном трудностью определения сети, двойственной к маркированной сети Петри. Маркированные сети Петри мы обсудим позднее.
Упражнения
Постройте графы сетей Петри, двойственные к сетям Петри, показанным на рис. 2.5 и 2.6.
Постройте граф сети Петри для следующей структуры сети Петри:
Р " {^ь Рз, рз, р^, Т = {/i, /г, /з, /4},
/(<1) = {},
O(M = {Pi}>
/(<2) = {Pl}.
0(/2) = {p2},
W = {p2- P4},
О^а) = {Pi, Рз)>
/M = { },
O(<4) = {Рз).
/(^)={Рз}»
0(M = {P4b
Изобразите граф сети Петри следующей структуры:
Р - {pi, р^ Т = fa, /2, /з},
=0^) = {р19 р2},
ЛУ = {PiLо^Ир^
iVMp^}.
Покажите, что двойственная к двойственной сети Петри С есть сама сеть С.
Определите класс сетей Петри, которые совпадают с двойственными к себе. Можете ли вы дать простую характеризацию этого класса сетей Петри? 6. Если сеть, двойственная к сети Петри С = (Р, Г, /, О), определена как С = (Г, Р, I, Оу входные и выходные функции должны быть расширены для отображения и Р, и Т. Почему? Если С = (Р, TJ, О) имеет нерасширенные входные и выходные функции, дайте определение С = (Г, Р, Г, О') с нерасширенными входными и выходными функциями.
Найдите структуру сети Петри, соответствующую графу сети Петри на рис. 2.8. Определите структуру сети Петри для графа на рис. 2.9.
Графы сети Петри являются мультиграфами, так как позиция может быть кратным входом или выходом перехода. В графе это показывается несколькими дугами между позицией и переходом. В то время как такой способ удовлетворителен для дуг с малой кратностью (не более трех), он неудобен для дуг очень большой кратности. Таким образом, в качестве альтернативного представления структур с большой кратностью используется пучок дуг. Пучок — это специальная дуга, которая рисуется жирной линией и помечается кратностью.
Рис. 2.10 иллюстрирует переход с входной кратностью 7 и выходной кратностью 11. Нарисуйте граф сети Петри для следующей структуры:
Р = {pi, р2, рз, Pi}, Г = {/i, /2, /з, /<},
w = { }./(У = {р2}.Ш = (Pi. Pi, Pi, Pi. Pl. Pi)./М = (Рз, Р4, Р4, Р2},w = { }./(У = {р2}.Ш = (Pi. Pi, Pi, Pi. Pl. Pi)./М = (Рз, Р4, Р4, Р2},0(<i) = {Pi, Pi, Pi, Pi, Р2}, О(У = {Pi. Pi. Pi. Pi»Pi. Pi. Рз) O(/3) = (P2. P2, P2, P2. P4. P4}. OM = { }.0(<i) = {Pi, Pi, Pi, Pi, Р2}, О(У = {Pi. Pi. Pi. Pi»Pi. Pi. Рз) O(/3) = (P2. P2, P2, P2. P4. P4}. OM = { }.
w = { }.
/(У = {р2}.
Ш = (Pi. Pi, Pi, Pi. Pl. Pi).
/М = (Рз, Р4, Р4, Р2},
w = { }.
/(У = {р2}.
Ш = (Pi. Pi, Pi, Pi. Pl. Pi).
/М = (Рз, Р4, Р4, Р2},
0(<i) = {Pi, Pi, Pi, Pi, Р2}, О(У = {Pi. Pi. Pi. Pi»Pi. Pi. Рз) O(/3) = (P2. P2, P2, P2. P4. P4}. OM = { }.
0(<i) = {Pi, Pi, Pi, Pi, Р2}, О(У = {Pi. Pi. Pi. Pi»Pi. Pi. Рз) O(/3) = (P2. P2, P2, P2. P4. P4}. OM = { }.
Рис. 2.9. Граф сети Петри.Рис. 2.9. Граф сети Петри.Рис. 2.10. Пучок дуг. Для графов с большой кратностью используется пучок дуг, помеченный числом кратности, а не изображение всех кратных дуг.Рис. 2.10. Пучок дуг. Для графов с большой кратностью используется пучок дуг, помеченный числом кратности, а не изображение всех кратных дуг.
Рис. 2.9. Граф сети Петри.
Рис. 2.9. Граф сети Петри.
Рис. 2.10. Пучок дуг. Для графов с большой кратностью используется пучок дуг, помеченный числом кратности, а не изображение всех кратных дуг.
Рис. 2.10. Пучок дуг. Для графов с большой кратностью используется пучок дуг, помеченный числом кратности, а не изображение всех кратных дуг.
Инверсная сеть Петри — С для сети Петри С = (Р, ТГР 0) определяется перестановкой входной и выходной функций — С = (Р, Т, 0, /). Как это повлияет на граф сети Петри? В чем отличие от двойственной сети Петри? Окажет ли влияние расширение входной и выходной функций? Изобразите инверсную сеть Петри для сети Петри, приведенной на рис. 2.7.
Маркировка сетей Петри
Маркировка р есть присвоение фишек позициям сети Петри. Фишка — это примитивное понятие сетей Петри (подобно позициям и переходам). Фишки присваиваются (можно считать, что они принадлежат) позициям. Количество и положение фишек при выполнении сети Петри могут изменяться. Фишки используются для определения выполнения сети Петри.
Определение 2.5. Маркировка р сети Петри С = (Р, 7, /, О) есть функция^ отображающая множество позиций Р в множество неотрицательных целых чисел N.
р : Р -> N.
Маркировка р может быть также определена как n-вектор р = = (Рь Р2> •••» Рп), где п = |Р | и каждое рг € N, i = 1, ..., п. Век-
Рис. 2.11. Маркированная сеть Петри. Структура сети Петри совпадает со структурами на рис. 2.1 и 2.4. Маркировка — (1, 2, 0, 0, 1).
Рис. 2.12. Маркированная сеть Петри. Структура аналогична структуре, изображенной на рис. 2.11, но маркировка отличается.
тор р определяет для каждой позиции pt сети Петри количество фишек в этой позиции. Количество фишек в позиции рг есть рь / = 1, ..., и. Связь между определениями маркировки как функции и как вектора очевидным образом устанавливается соотношением p(pf) = Hi- Обозначение ее в виде функции является несколько более общим и поэтому употребляется гораздо чаще.
Маркированная сеть Петри М = (С, р) есть совокупность структуры сети Петри С = (Р, 7\ /, О) и маркировки р и может быть записана в виде М = (Р, Т, /, О, р).
На графе сети Петри фишки изображаются маленькой точкой в кружке, который представляет позицию сети Петри. На рис. 2.11 и 2.12 приведены примеры графического представления маркированной сети Петри.
Так как количество фишек, которое может быть определено для каждой позиции, неограниченно, то в целом для сети Петри сущест-
вует бесконечно много маркировок. Множество всех маркировок сети Петри, обладающей п позициями, есть множество всех п-векто- ров, Nn. Это множество, хотя и бесконечно, является счетным.
Упражнения
Для маркированной сети Петри (рис. 2.12) представьте маркировку как функцию и как вектор.
Для структуры сети Петри (рис. 2.2) изобразите граф сети Петри и укажите на графе маркировку р, = (1, 0, 1, 1, 0, 0).
Количество фишек в сети Петри редко превышает 5 или 6. В этом случае их рисуют. Однако, когда маркировка имеет 10, 20 или сотни фишек, приписанных позиции, в кружках удобнее не рисовать фишки, а указывать их общее количество, как на рис. 2.13. Используя этот способ, изобразите маркировку р, = (137, 22, 2, 0, 14) для сети Петри на рис. 2.12.
Правила выполнения сетей Петри
Выполнением сети Петри управляют количество и распределение фишек в сети. Фишки находятся в кружках и управляют выполнением переходов сети. Сеть Петри выполняется посредством запусков переходов. Переход запускается удалением фишек из его входных позиций и образованием новых фишек, помещаемых в его выходные позиции.
Переход может запускаться только в том случае, когда он разрешен. Переход называется разрешенным, если каждая из его входных позиций имеет число фишек по крайней мере равное числу дуг из позиции в переход л Кратные фишки необходимы для кратных входных дуг. Фишки во входной позиции, которые разрешают переход, называются его разрешающими фишками. Например, если позиции pv и р2 служат входами для перехода /4, тогда t4 разрешен, если р^ и р2 имеют хотя бы по одной фишке. Для перехода /7 с входным комплектом {р6, р6, р^ позиция р6 должна обладать по крайней мере тремя фишками, для того чтобы t4 был разрешен.
Определение 2.6. Переход tj^T в маркированной сети Петри С = (Р, Т, I, О) с маркировкой ц разрешен, если для всех Pt^P
^(Рй > # (Рр I Vj)V
Переход запускается удалением всех разрешающих фишек из его входных позиций и последующим помещением в каждую из его выходных позиций по одной фишке для каждои_дуги_ Кратные фишки создаются для кратных выходных дуг. Переход /3 с /(^3) = ^р^ и О(/3) = {Р7, Pis} разрешен всякий раз, когда в р^ будет хотя бы одна фишка. Переход /3 запускается удалением одной фишки из позиции р2 и помещением одной фишки в позицию р7 и в р13 (его выходы). Дополнительные фишки в позиции р2 не влияют на запуск /3 (хотя они могут разрешать дополнительные запуски /3). Переход /2, в котором /(^2) = {р21, р23} и О(/2) = {р23, р25, р25}, запускается удалением одной фишки из р21 и одной фишки из р23, при этом одна фишка помещается в р23 и две в — р25 (так как р25 имеет кратность, равную двум).
Запуск перехода в целом заменяет маркировку у, сети Петри на новую маркировку у/. Заметим также, что так как можно запустить только разрешенный переход, то при запуске перехода количество фишек в каждой позиции всегда остается неотрицательным. Запуск перехода никогда не удалит фишку, отсутствующую во входной позиции. Если какая-либо входная позиция перехода не обладает достаточным количеством фишек, то переход не разрешен и не может быть запущен.
Определение 2.7. Переход t j в маркированной сети Петри с маркировкой у» может быть запущен всякий раз, когда он разрешен. В результате запуска разрешенного перехода tj образуется новая маркировка у/, определяемая следующим соотношением: у'(рг) = = и(Ро - ^(Рь щ^ + Шрь оо.
В качестве примера рассмотрим маркированную сеть Петри, изображенную на рис. 2.15. При такой маркировке разрешены только три перехода: t4, /3 и /4. Переход /2 не разрешен, так как ни позиция р2, ни позиция р3, являющиеся входами перехода /2, не содержат ни одной фишки. Так как переходы ^, /3 и t4 разрешены, любой из них может быть запущен. Если запущен переход t4, то происходит удаление фишки из каждого входа и помещение фишки в каждый выход. При этом одна фишка удаляется из р5, одна фишка помещается в р3, а количество фишек в р4 увеличивается с двух до трех. Новая маркировка, полученная в результате запуска перехода t4, показана на рис. 2.16.
В маркированной сети Петри, изображенной на рис. 2.16, разрешены только переходы t4 и /3. При запуске перехода t4 осуществляется удаление фишки из рх и помещение фишек в р2, р3 и р4 (в р4 — две фишки, так как эта позиция является кратным выходом перехода /4). Эта операция образует маркировку, приведенную на
Рис. 2.14. Иллюстрация того, как меняется маркировка позиций, когда запущен переход tj. Каждая позиция может или не может быть входом либо выходом перехода. Здесь показан случай для кратности 0 или 1.
Рис. 2.15. Маркированная сеть Петри для иллюстрации правил запуска.
Переходы /1, /3 и U разрешены.
Рис. 2.16. Маркировка, полученная в результате запуска перехода /4 в сети на рис. 2.15.
Рис. 2.17. Маркировка, полученная при запуске перехода к в сети на рис. 2.16.
Рис. 2.18. Маркировка, полученная при запуске перехода ts в сети на рис. 2.17.
рис. 2.17. В такой маркированной сети Петри переходы /2 и t3 разрешены. Запуск перехода t3 образует новую маркировку (рис. 2.18), где две фишки удалены из р4, а одна добавлена в р5.
Запуски могут осуществляться до тех пор, пока существует хотя бы один разрешенный переход. Когда не останется ни одного разрешенного перехода, выполнение прекращается.
Упражнения
Какие переходы разрешены в маркированной сети Петри на рис. 2.11, 2.12?
Какая маркировка получится при запуске перехода /1 (рис. 2.11)? Какая маркировка получится при запуске перехода t^ (рис. 2.12)? Какая маркировка получится в результате выполнения следующих операций: сначала — запуск /4, затем —запуск /2 (рис. 2.12)?
Какие переходы разрешены в сети Петри на рис. 2.13?
Какие маркировки образуются при запуске каждого из этих переходов?
Можно ли запустить переходы в сети Петри на рис. 2.19? Какие?
Пространство состояний сети Петри
Состояние сети Петри определяется ее маркировкой. Запуск перехода изменяет состояние сети Петри посредством изменения маркировки сети. Пространство состояний сети Петри, обладающей п позициями, есть множество всех маркировок, т. е. Nn. Изменение в состоянии, вызванное запуском перехода, определяется функцией изменения 6, которую мы назовем функцией следующего состояния. Когда эта функция применяется к маркировке р (состоянию) и переходу tb она образует новую маркировку (состояние), которая получается при запуске перехода t3 в маркировке р. Так как tj может быть запущен только в том случае, когда он разрешен, то функция 6(р, tj) нс определена, если tj не разрешен в марки-
ровке р. Если же tj разрешен, то 6(р, tj) = р/, где р' есть маркировка, полученная в результате удаления фишек из входов tj и добавления фишек в выходы tj.
Определение 2.8. Функция следующего состояния 6 : Nn X Т ^>- ->- Nn для сети Петри С = (Р, Т, I, О) с маркировкой р и переходом tj £ Т определена тогда и только тогда, когда р(рг) > #(Рг, I(tj)) для всех pi £ Р. Если 6(р, tj) определена, то 8(р, /,.) = р', где p'(Pi) = Н(Р/) — #(Рь Ktj)) + ^(рь O(tj)) для всех pt £ Р.
Пусть дана сеть Петри С = (Р, Т, /, О) с начальной маркировкой р°. Эта сеть может быть выполнена последовательными запусками переходов. Запуск разрешенного перехода t3 в начальной маркировке образует новую маркировку р1 = 8(р°, t3\ В этой новой маркировке можно запустить любой другой разрешенный переход, например /^, образующий новую маркировку р2 = 6(р1, IhY Этот процесс будет продолжаться до тех пор, пока в маркировке будет существовать хотя бы один разрешенный переход. Если же получена маркировка, в которой ни один переход не разрешен, то никакой переход не может быть запущен, функция следующего состояния не определена для всех переходов, и выполнение сети должно быть закончено.
При выполнении сети Петри получаются две последовательности: последовательность маркировок (р°, р1, р2, ...) и последовательность переходов* которые были запущены (/;о, tjb t3^ ...). Эти две последовательности связаны следующим соотношением: 8(р\ t^ = = p^+1 для к = 0, 1,2, ... . Имея последовательность переходов и р°, легко получить последовательность маркировок сети Петри, а имея последовательность маркировок, легко получить последовательность переходов, за исключением нескольких вырожденных случаев1). Таким образом, обе эти последовательности представляют описание выполнения сети Петри.
Пусть некоторый переход в маркировке р разрешен и, следовательно, может быть запущен. Результат запуска перехода в маркировке р есть новая маркировка р'. Говорят, что р' является непосредственно достижимой из маркировки р, иными словами, состояние р' непосредственно получается из состояния р.
Определение 2.9. Для сети Петри С = (Р, Т, I, О) с маркировкой р маркировка р' называется непосредственно достижимой из р, если существует переход 13 ^ Т, такой, что 6(р, tj^ = р'.
Можно распространить это понятие на определение множества достижимых маркировок данной маркированной сети Петри. Если р7 непосредственно достижима из р, а р" — из р', говорят, что р" достижима из р. Определим множество достижимости R^C, р)
) В оригинале вырожденные случаи ошибочно отнесены к первому утверждению. — Прим. ред.
сети Петри С с маркировкой р как множество всех маркировок, достижимых из р. Маркировка р' принадлежит R(C, р), если существует какая-либо последовательность запусков переходов, изменяющих р на р'. Отношение «достижимости»1) является рефлексивным, транзитивным замыканием отношения «непосредственной достижимости».
Определение 2.10. Множество достижимости R^C, р) для сети Петри С = (Р, Т, I, О) с маркировкой р есть наименьшее множество маркировок, определенных следующим образом:
р с R(C, р);
Если р' g R(C, р) и р" = б(р', /,) для некоторого tj £ Т, то р" £R(C, р).
Для сети Петри, изображенной на рис. 2.20, и маркировки р = = (1, 0, 0) непосредственно достижимыми являются две маркировки: (0, 1, 0) и (1, 0, 1). Из (0, 1, 0) нельзя достичь ни одной маркировки, так как ни один переход не разрешен. Из (1, 0, 1) можно получить (0, 1, 1) и (1, 0, 2). Пользуясь методами, разработанными в гл. 4, можно показать, что множество достижимости R(C, р) имеет следующий вид: {(1, 0, п), (0, 1, п)\п > 0}.
Рис. 2.20. Маркированная сеть Петри.
Удобно распространить функцию следующего состояния на отображение маркировки и последовательности переходов в новую маркировку. Для последовательности переходов (tjv t^, ..., //J и маркировки р маркировка р' = 6(р, tjv t*^, ..., t^ есть результат запусков: сначала — tjv затем — //2 и т. д. до tlk. (Такая операция, конечно, возможна только в том случае, если каждый переход к моменту его запуска разрешен.)
Определение 2.11. Расширенная функция следующего состояния определяется для маркировки р и последовательности переходов о € Т* следующими соотношениями: 6(р, tj, о) = 6(6(р, tj), о), б(н. Ч = и-
Обычно мы применяем эту расширенную функцию.
Упражнения
Определите последовательность маркировок для маркированной сети Петри (рис. 2.21) и последовательности переходов /1, /г, /з, /4, /5. Как выглядит соответствующая последовательность переходов для последовательности маркировок (1, 0, 0), (0, 0, 1), (0, 0, 0)?
Ранее упоминалось, что существует несколько вырожденных случаев, при которых последовательность маркировок не определяет единственную последовательность запусков переходов. Охарактеризуйте класс сетей Петри, для которых это возможно.
Покажите, что U^(C, р) = Nn.
нем”
Докажите, что если р' е R(C, р), то R(C, }t')^R(C, р).
Докажите,что р'£/?(С, р) тогда и только тогда, когда R(С, р') ^ 7?(С,р).
Выполняется ли равенство /?(С,р) = U6(р, /,•)?
tj^T
Выполняется ли равенство R(C, р) = U ^(C,$(pX*))?
tj^T
В некоторых публикациях по сетям Петри множество достижимости маркированной сети Петри называется ее классом маркировок. Более точно класс прямых маркировок сети Петри есть то, что мы определили как множество достижимости. Класс обратных маркировок есть множество достижимости инверсной сети Петри (см. упражнение 9 к разд. 2.2). Тогда класс маркировок маркированной сети Петри есть объединение прямых и обратных классов маркировок. Дайте формальное определение класса прямых маркировок, класса обратных маркировок и класса маркировок сети Петри с маркировкой Ц. Затем покажите, что классы маркировок сети Петри разбивают множество всех маркировок на непересекающиеся классы эквивалентности. Для этого требуется показать, что отношение «иметь равные классы маркировок» является рефлексным, симметричным и транзитивным.
Сети Петри со своими фишками и правилами запусков во многом напоминают игры, имеющие игровое поле: шашки, трик-тракО, ним, го и др. Можно
Нарды. — Прим. ред.
Рис. 2.22. Игровое поле.
придумать игру для одного—четырех человек, состоящую из игрового поля (в качестве такого поля используется сеть Петри) и набора пластиковых фишек. Фишки распределены по позициям сети Петри, и игроки по очереди выбирают разрешенные переходы и запускают их. Для разнообразия игра может быть сделана на двадцати различных сетях Петри. Используя эти идеи, придумайте правила, предусматривающие следующее:
Как определено начальное расположение фишек? (Каждый игрок начинает игру, имея одну фишку в «домике»; каждый игрок получает «п» фишек на всем поле по желанию и т. д.)
Какова цель игры? (Захватить фишки своего противника; получить наибольшее количество фишек; как можно скорее избавиться от своих фишек и т. д.)
Не нужно ли раскрасить фишки для разных игроков? (В соответствии с этим определите правила запуска.)
Не стоит ли присвоить очки различным переходам? Тогда очки игрока определятся суммой переходов, запущенных им.
Проанализируйте возникновение таких задач, как повторные запуски переходов, которые образуют новые фишки (выходов больше, чем входов); конечное число фишек, обеспечивающих конец игры.
После того как вы определили свою игру, попытайтесь сыграть в нее с кем- нибудь из своих друзей. В качестве игрового поля используйте сеть Петри, показанную на рис. 2.22.
Альтернативные формы определениясетей Петри
Теория сетей Петри разрабатывалась рядом авторов. У них были различные мотивы и предпосылки. Вследствие такого разнообразия многие фундаментальные понятия были определены по-разному. Дадим некоторые из этих альтернативных определений, чтобы показать, что между ними нет существенных различий, и чтобы подготовить читателя к тем разнообразным представлениям, которые могут встретиться в литературе.
Например, оригинальные сети Петри [241] не разрешают существование кратных дуг между позициями и переходами. Это эквивалентно определению входов и выходов переходов как множеств (а не как комплектов) позиций. Далее, правило запуска было ограничено следующим требованием: фишка есть в каждой входной позиции для перехода, и нет ни одной фишки в выходных позициях. Переход запускается путем удаления фишек из его входов (которые теперь становятся пустыми) и размещением фишек в (ранее пустых) выходах (которые теперь заполняются). Переход не может быть запущен, если фишка уже принадлежит выходной позиции. Таким образом, маркировка каждой позиции присваивает либо 0 фишек, либо 1 фишку, р : Р -> {0, 1}. Теперь становится очевидным тот факт, что сеть с п позициями имеет точно 2" возможных маркировок, т. е. конечное число состояний.
Ранние разработки Хольта по проекту теории информационных систем [128] использовали эти же определения, но по мере продвижения исследований была обнаружена ограниченность такой модели. В работе Хольта и Коммонера, представленной на конференции в Вудс Холле [127], класс маркировок и правила запуска распространены на произвольные маркировки, it. Р -> {0, 1, 2, ...}. Таким образом была создана базовая модель сетей Петри в том виде, в каком она определена сегодня (за исключением возможности кратных дуг).
Многие из первых исследователей не давали формального определения своих моделей, а описывали неформально относящиеся к их работе компоненты, такие, как позиции, переходы, фишки и правило запуска. Одно из первых формальных определений было дано Пати л ом [231] в его докторской диссертации, в которой сеть Петри определялась в виде четверки (Т, Р, Л, 6), где Т — множество переходов, А — множество дуг, Р — множество позиций и В — начальная маркировка. Дуги множества А соединяли либо позицию с переходом, либо переход с позицией. Таким образом, А г (Р х Т) U (Т х Р). Многие статьи по сетям Петри основывают- 2—562
ся на этом определении и определяют сеть Петри как тройку (7, 7, Л) с выделенной функцией маркировки.
Преобразование из формы (7, Т, Л) к определению с выделением входной и выходной функциями сравнительно просто. Множество' дуг А разбивается на множество входных дуг ^pb tj) | (рь t j) € Е Л} и выходных дуг {(/7-, р^ | (/;, р^ е Л}. Эта форма непосредственно приводит к обобщению, допускающему кратные входы и выходы. Необходимо только указывать кратность для каждой входной и выходной дуги.
Хэк [116] в конце концов остановился на определении сетей Петри в виде четверки (7, 7, 7, В), где, как обычно, Р — множество позиций, 7 — множество переходов, F и В — функции, ставящие в соответствие позициям и переходам количество фишек, необходимых для входа (7) или образованных для выхода (В). Следовательно, переход tj можно запустить только в том случае, если по крайней мере F(tj, pi) фишек находятся в каждой позиции рг^Р. Переход запускается путем удаления F(t ^ pt) фишек из каждой входной позиции и помещения В(/ ^ pt) фишек в каждую выходную позицию. Функции 7 и В могут быть представлены матрицами.
Питерсон в своей диссертации [236] попытался объединить переходы и их входы и выходы, определяя переход как упорядоченную пару комплектов позиций: 15 ^ Р°° х Р°°. Первая компонента пары — комплект входов перехода; вторая — комплект выходов перехода. Это сводит множество примитивных понятий теории к позициям и фишкам, так как переходы являются структурами, составленными из позиций. Такой подход особенно полезен для простого определения переходов при построении сети Петри.
Эти определения отличаются от представленных здесь только разницей в обозначениях. В большинстве работ по сетям Петри именно это имеет место: различие в определениях проявляется только в обозначениях. Однако в некоторых случаях определения могут ограничивать класс сетей Петри тем, что не допускаются кратные входные и выходные дуги или существует ограничение на форму переходов, т. е. требуется, чтобы переходы имели непустые множества входных и выходных позиций или входные и выходные позиции перехода не должны совпадать (без петель). Но, как мы покажем в гл. 5, даже эти различия не имеют большого значения.
Упражнения
Дайте эквивалентное станда тное определение через Р, Т, /, О) для сети- Петри, определенной как (Р, Т, F, В). Дайте определение через (Р, Т, F, Р) для сети Петри, заданной как (Р, Т, /, О).
Почему некоторые исследователи предпочитают определение через (Р, 7, Л), которое объединяет входные и выходные взаимосвязи в множестве дуг А, в то время как другие отдают предпочтение (Р, Г, I, О)? Покажите пре
имущество и недостатки каждого.
Замечания к литературе
Для дальнейшего знакомства с сетями Петри, вероятно, лучше всего начать с обзоров [20, 238] в Computing Surveys. Почти в любой работе несколько первых разделов посвящены основным определениям и обозначениям, поэтому, чтобы найти различия в определениях, достаточно бегло просмотреть начала некоторых из перечисленных в библиографии. Например: [128, 127, 111, 115, 116, 152, 201, 208, 290].
Темы для дальнейшего изучения
Разработайте теорию сетей Петри, разрешающую существование окрашенных фишек. Рассмотрите различия в определениях разрешенных переходов и запусков переходов. Существует по меньшей мере три разумных способа обобщения сетей Петри в случае окрашенных фишек. Укажите те, которые вы сможете предложить, и оцените степень их полезности.
Разработайте представление теории сети Петри для научных работников, не связанных с вычислительной техникой. Сравните ваше представление с представлением Хольта [123] и Мельдмана [184, 185].
Постройте систему моделирования на ЭВМ для выполнения сети Петри. Для удобного интерфейса пользователя с программой используйте стирающий графический дисплей (с электронно-лучевой трубкой или плазменный) для изображения запусков переходов и последовательного передвижения фишек. Это потребует решения множества вспомогательных задач.
Определить язык, имеющий средства вариантов задания для задания сети Петри, ее маркировок.
Разработать внутреннее представление сети Петри, ее маркировки и необходимые алгоритмы для моделирования.
Обеспечить графическую выдачу. Главная проблема здесь в достижении планарного представления сети (до разумной степени). Следует также подумать о представлении динамических свойств сети (движение фишек).
СЕТИ ПЕТРИДЛЯ МОДЕЛИРОВАНИЯ
Сети Петри были разработаны и используются в основном для моделирования. С их помощью могут быть промоделированы многие системы, в особенности системы с независимыми компонентами, например аппаратное и программное обеспечение ЭВМ, физические системы, социальные и др. Сети Петри применяются для моделирования возникновения различных событий в системе. В частности, сети Петри могут моделировать поток информации или другие ресурсы системы. • 1
В этой главе мы приведем примеры систем, моделируемых при помощи сетей Петри. Эти примеры дадут представление о большом классе систем, которые можно моделировать сетями Петри, об использующемся методе моделирования и о свойствах, которыми должны обладать моделируемые системы.
События и условия
Простое представление системы сетью Петри основано на двух основополагающих понятиях: событиях и условиях. События — это действия, имеющие место в системе. Возникновением событий управляет состояние системы Состояние, системы может быть описано множеством условий^ Условие — есть предикат или логическое описание состояния системы. Условие может принимать либо значение «истина», либо значение «ложь».
Так как события являются действиями, то они могут происходить. Для того чтобы событие произошло, необходимо выполнение соответствующих условий. Эти условия называются предусловиями события. Возникновение события может вызвать нарушение предусловий и может привести к выполнению других условий, постусловий.
В качестве примера рассмотрим задачу моделирования простого автомата-продавца. Автомат-продавец находится в состоянии ожидания до тех пор, пока не появится заказ, который он выполняет и посылает на доставку. Условиями для такой системы являются: а) автомат-продавец ждет; б) заказ прибыл и ждет; в) автомат- продавец выполняет заказ; г) заказ выполнен.
Событиями будут: 1. Заказ поступил. 2. Автомат-продавец начинает выполнение заказа. 3. Автомат-продавец* заканчивает выполнение заказа. 4. Заказ посылается на доставку.
Предусловия события 2 (автомат-продавец начинает выполнение заказа) очевидны: (а) автомат-продавец ждет; (б) заказ прибыл и ждет. Постусловие для события 2: (в) автомат-продавец выполняет заказ. Аналогично мы можем определить предусловия и постусло-
вия для других событий и составить следующую таблицу событий и их пред- и постусловий:
Событие
Пред условия
Постусловия
1
нет
б
2
а, б
в
3
в
г, а
4
г
нет
Такое представление системы легко моделировать сетью Петри. В сети Петри условия моделируются позициями, события — переходами. При этом входы перехода являются предусловиями соответствующего события; выходы — постусловиями. Возникновение события равносильно запуску соответствующего перехода. Выполнение условия представляется фишкой в позиции, соответствующей этому условию. Запуск перехода удаляет разрешающие фишки, представляющие выполнение предусловий и образует новые фишки, которые представляют выполнение постуловий.
Сеть Петри на рис. 3.1 иллюстрирует модель приведенного выше автомата-продавца. Мы указали каждому переходу и позиции соответствующие событие и условие.
Можно моделировать и более сложную систему. Система автомат-продавец состоит из трех различных автоматов MY , М2 и М3 и двух операторов F^ и F2. Оператор Fx воздействует на автоматы Mt и М2, а оператор F2 — на Mt и М3. Заказы требуют двух стадий обработки. Сначала они должны быть обработаны автоматом М^ затем либо автоматом М2, либо М3. Эта более сложная система будет иметь следующие условия:
заказ прибыл и ждет обработки автоматом Мх\
заказ обработан автоматом Мх и ждет обработки либо автоматом М2, либо Л43;
Начало Завершение
Рис. 3.1. Сеть Петри для простого автомата-продавца.
Рис. 3.2. Сеть Петри для сложного автомата-продавца.
заказ выполнен;
автомат М^ незанят;
автомат М2 незанят;
автомат М3 незанят;
оператор F\ незанят;
оператор Fo незанят;
автомат Mt находится под воздействием оператора Ff,
автоматMvнаходитсяподвоздействиемоператораF^;
автоматтИ2находитсяподвоздействиемоператораFv,
м)автоматМ3находитсяподвоздействиемоператораF^.
При этом могут происходить следующие события:
Поступление заказа.
ОператорF^начинаетвыполнениезаказанаавтомате М^
ОператорFiзакончилвыполнениезаказанаавтомате М1е
ОператорF^начинаетвыполнениезаказанаавтомате Mv.
ОператорF^закончилвыполнениезаказанаавтомате /Ир
ОператорFiначинаетвыполнение заказана М2.
ОператорFYзакончилвыполнение заказана М2.
ОператорF2начинаетвыполнение заказана Л43.
ОператорF2закончилвыполнение заказана М3.
. Заказ посылается на доставку.
Задание ждетЗадание ждетНачалоВыполнениязаданияНачалоВыполнениязаданияЗавершение Выполнения заданияЗадание ожидает выводаЗавершение Выполнения заданияЗадание ожидает выводаРис. 3.3. Моделирование простой вычислительной системы.Рис. 3.3. Моделирование простой вычислительной системы.._ Задание помещается I Во входную очередь._ Задание помещается I Во входную очередьобр а ба ты баетсяобр а ба ты баетсяЗаданиеВыводитсяЗаданиеВыводится
Задание ждет
Задание ждет
НачалоВыполнениязадания
НачалоВыполнениязадания
Завершение Выполнения задания
Задание ожидает вывода
Завершение Выполнения задания
Задание ожидает вывода
Рис. 3.3. Моделирование простой вычислительной системы.
Рис. 3.3. Моделирование простой вычислительной системы.
._ Задание помещается I Во входную очередь
._ Задание помещается I Во входную очередь
обр а ба ты бается
обр а ба ты бается
ЗаданиеВыводится
ЗаданиеВыводится
Пред- и постусловия каждого события:
События
Предусловия
Постусловия
нет
а
2
а, ж, г
и
3
и
ж, г, б
4
а, з, г
к
5
к
б, 3, г
6
б, ж, д
л
7
л
В, ж, д
8
б, е, з
м
9
м
в, е, з
10
в
нет
Сеть Петри этой системы показана на рис. 3.2.
Аналогичный пример можно привести для вычислительной системы, которая обрабатывает задания, поступающие с устройства ввода, и выводит результаты на устройство вывода. Задания поступают на устройство ввода. Когда процессор свободен и в устройстве ввода есть задание, процессор начинает обработку задания. Когда задание выполнено, оно посылается в устройство вывода; процессор же либо продолжает обрабатывать другое задание, если оно имеется, либо ждет прихода задания, если устройство ввада еще не получило такового. Эта система может быть промоделирована сетью Петри, показанной на рис. 3.3.
Одновременность и конфликт
Приведенные примеры иллюстрируют некоторые особенности сетей Петри и систем, моделируемых с их помощью. Одной из особенностей является свойственный сетям и их моделям параллелизм, или одновременность. В модели сети Петри два разрешенных невзаимодействующих события могут происходить независимо друг от друга. Синхронизировать события, пока это не потребуется моделируемой системе, нет нужды. Но, когда синхронизация необходима, моделировать ее легко. Таким образом, сети Петри представляются идеальными для моделирования систем с распределенным управлением, в которых несколько процессов выполняются одновременно.
Другая важная особенность сетей Петри — это их асинхронная природа. В сети Петри отсутствует измерение времени или течение времени. Это отражает философский подход к понятию времени, утверждающий, что одно из важнейших свойств времейи, с логической точки зрения, — это определение частичного упорядочения событий. В реальной жизни различные события укладываются в различные интервалы времени, и это отражено в модели сети Петри независимостью от времени управления последовательностью событий. Структура сети Петри такова, что содержит в себе всю необходимую информацию для определения возможных последовательностей событий. Таким образом, на рис. 3.3 событие «завершение выполнения задания» должно следовать за соответствующим событием «начало выполнения задания». Однако нет и не требуется никакой информации, связанной с количеством времени, необходимым на выполнение задания.
Выполнение сети Петри (или поведение моделируемой системы) рассматривается здесь как последовательность дискретных событий. Порядок появления событий является одним из возможных, допускаемых основной структурой. Это приводит к явной недетерми* нированности в выполнении сети Петри. Если в какой-то момент времени разрешено более одного перехода, то любой из нескольких возможных переходов может стать «следующим» запускаемым. Выбор запускаемого перехода осуществляется недетерминированным образом, т. е. случайно, Эта особенность сети Петри отражает тот факт, что в реальной жизненной ситуации, где несколько действий происходит одновременно, возникающий порядок появления событий — не однозначен; скорее может возникнуть любая из множества последовательностей событий. Однако частичный порядок появления события — единственен.
Проблемы, включающие в себя эти понятия, имеют философский характер. В своей точке зрения на Вселенную я, в частности, склонен к детерминизму: все действия предопределены состоянием Вселенной, и никакого беспорядка не существует. Кажущийся беспорядок — просто результат недостатка знаний о состоянии Все-
ленной и ее переходов из состояния в состояние. В этом смысле выбор для запуска одного из разрешенных переходов в моделируемой системе детерминирован, но не в модели, просто потому что модель не дает полной информации о системе.
Обратимся к теории относительности. Одним из ее основных положений является утверждение, что передача чего-либо не может быть мгновенной. Даже информация о возникновении события распространяется в пространстве со скоростью, ограниченной скоростью света с. Это означает, что если два события и произойдут
х. Непримитибное хсобытие происходит
Начало непримитиб- Конец непримитиб^ног о события но го события
Рис. 3.4. Моделирование непримитивного события.
одновременно (т. е. они не имеют причинной взаимосвязи), то порядок возникновения этих событий для двух разных наблюдателей может оказаться различным. Для двух событий Л и В, происходящих в одно и то же время, наблюдатель, расположенный в непосредственной близости от события Л, получит информацию, связанную с событием Л, прежде, чем информацию, связанную с событием В. Таким образом, наблюдатель может сделать вывод, что событие Л произошло до события В. С другой стороны, наблюдатель, расположенный в непосредственной близости от события В, отметит прямо противоположную последовательность возникновения событий.
Такое представление, хотя и является необходимым для полноты рассмотрения происходящего, однако влечет за собой значительные трудности при описании и анализе динамического поведения сети Петри, когда определяется последовательность запусков переходов. Для простоты обычно вводят следующее огра ничение. Запуск перехода (и соответствующего события) рассматривается как мгновенное событие, занимающее нулевое время, и возникновение двух событий одновременно невозможно. Моделируемое таким образом событие называется примитивным; примитивные события мгновенны и неодновременны. (Иногда это обосновывается тем, что время — это непрерывная действительная переменная. Следовательно, если мы присвоим каждому событию время возникновения, то вероятность того, что любые две произвольно выбранные непрерывные действительные переменные совпадают, равна нулю, и, следовательно, события неодновременны.)
Непримитивними называются такие события, длительность которых отлична от нуля. Они не являются неодновременными и, следовательно, могут пересекаться во времени. Так как осуществление большинства событий в реальном мире занимает некоторое время, то они являются непримитивными событиями и поэтому не могут должным образом моделироваться переходами в сети Петри. Однако это не приводит к возникновению проблем при моделировании систем. Непримитивное событие может быть представлено в виде двух примитивных событий: «начало непримитивного события», «конец непримитивного события» и условия «непримитивное событие происходит». Эта ситуация может быть промоделирована с помощью сети, показанной на рис. 3.4.
ВходыВходыВыходыВыходыРис. 3.5. Представление непримитивного события прямоугольником.Рис. 3.5. Представление непримитивного события прямоугольником.
Входы
Входы
Выходы
Выходы
Рис. 3.5. Представление непримитивного события прямоугольником.
Рис. 3.5. Представление непримитивного события прямоугольником.
Петри и другие предложили представлять непримитивные события в сети Петри в виде прямоугольника [244], как показано на рис. 3.5, а примитивные события — планками, как мы делали это раньше. Это упростит некоторые сети Петри, например, такую, как на рис. 3.6, которая эквивалентна сети Петри, изображенной на рис. 3.3. Но так как в принципе предложенное понятие выражено в терминах более примитивных конструкций, мы не будем использовать обозначение в виде прямоугольника. Прямоугольник может иметь существенное значение при моделировании сложных систем на нескольких иерархических уровнях, так как он позволяет выделить в отдельный элемент сети целые подсети. Это в некотором смысле подобно понятиям подпрограммы или макроса в языках программирования.
Недетерминированность и неодновременность запусков переходов в моделировании параллельной системы показываются двумя способами. Один из них представлен на рис. 3.7. В этой ситуации два разрешенных перехода в любом случае не влияют друг на друга, и в число возможных последовательностей событий входит последовательность, в которой первым срабатывает один переход, и последовательность, в которой первым будет запущен другой переход. Это называется одновременностью.
Другая ситуация, в которой одновременное выполнение затруднено и которая характеризуется невозможностью одновременного
Рис. 3.6. Моделирование вычислительной системы с использованием неприми* тивного перехода»
Рис. 3.7. Одновременность. Эти два перехода могут быть запущены в любом порядке.
Рис. 3.8. Конфликт. Переходы tj и tk находятся в конфликте, т. е. запуск одного из них удаляет фишку из Pi и тем самым запрещает другой.
возникновения событий, показана на рис. 3.8. Здесь два разрешенных перехода находятся в конфликте. Может быть запущен только один переход, так как при запуске он удаляет фишку из общего входа и запрещает другой переход.
Рассмотренные ситуации требуют внимательного изучения моделируемых сетями -Петри систем для правильного отображения их поведения. К сожалению, многие работы посетим Петри исследовали только свойства данной сети или класса сетей. Разработке же методов моделирования специально для сетей Петри внимания уделялось мало. Однако существуют определенные области, в которых сети Петри представляются идеальным инструментом для моделирования: это те области, в которых события происходят асинхронно и независимо. Для того чтобы дать представление о моделировании сетями Петри, в этой главе мы проиллюстрируем использование сетей Петри для моделирования аппаратного и программного обеспечения ЭВМ и других систем.
Аппаратное обеспечение ЭВМ
Аппаратное обеспечение ЭВМ можно рассматривать на нескольких уровнях, и сети Петри могут моделировать каждый из этих уровней. На одном уровне ЭВМ построены из простых устройств памяти и вентилей; на более высоком уровне в качестве основных компонент системы используются функциональные блоки и регистры. На еще более высоком уровне целые вычислительные системы могут быть компонентами сети ЭВМ. Одним из сильных свойств сетей Петри является их способность моделировать каждый из этих уровней. Обсудим эту способность и приведем некоторые примеры.
Конечные автоматы
На низком уровне вычислительные системы могут быть описаны автоматами. Автомат — это пятерка (Q, 2, А, 6, Г), где
Q — конечное множество состояний {^, ^2, ..., qkV
— конечный входной алфавит;
А — конечный выходной алфавит;
Q X 2 -> Q — функция следующего состояния, отображающая текущее состояние и текущий вход в следующее состояние; Г : Q X X 2 -> А — функция выхода, отображающая текущее состояние и текущий вход в выходной символ.
Автоматы часто представляют в виде графов переходов, как, например, на рис. 3.9. В графе переходов состояния представляются кружками, являющимися вершинами. Дуга из состояния qt в q j, помеченная alb, означает, что, находясь в состоянии qls автомат при входе а перейдет в состояние q j, выдавая при этом символ Ь. Формально следовало бы записать b(qb а) = qj и Г ^qb а) = Ь.
Входной алфавит определяет входы автомата из внешнего мира, а выходной алфавит — выходы автомата во внешний мир.
Рис. 3.9. Граф переходов для конечного автомата, вычисляющего дополнение до двух двоичного числа.Рис. 3.9. Граф переходов для конечного автомата, вычисляющего дополнение до двух двоичного числа.В качестве примера рассмотрим автомат, изображенный на рис. 3.9. Этот автомат преобразует двоичное число, представленное последовательностью бит, начиная с младшего, в дополнение до двух. В данном случае входной и выходной алфавит состоит из трех символов: 0, 1 и R. Автомат начинает работать в состоянии qv Символ сброса (R) означает конец (или начало) числа и возвращает автомат в исходное состояние. Выход автомата для символа сброса является просто его повторением.
Рис. 3.9. Граф переходов для конечного автомата, вычисляющего дополнение до двух двоичного числа.
Рис. 3.9. Граф переходов для конечного автомата, вычисляющего дополнение до двух двоичного числа.
Рис. 3.10. Конечный автомат для определения четности входного двоичного числа.
Аналогичный автомат показан на рис. 3.10. При тех же самых входах этот автомат вычисляет четность входного числа. Он начинает работу в состоянии qv. Выход копирует вход до тех пор, пока входным символом не окажется символ сброса. Выходом для символа сброса будет 0 в случае нечетного числа и 1 — в случае четного числа.
При представлении конечного автомата сетью Петри следует обратить внимание на связь между сетью Петри и внешним миром, которая ранее не учитывалась. Моделирование взаимодействия с внешним миром можно реализовать многими способами. В нашей задаче мы моделируем это взаимодействие с помощью специального множества позиций. Позициями будут представлены каждый входной и выходной символы. Мы допускаем, что из внешнего мира помещается фишка в позицию, соответствующую входному символу, а затем фишка, появившаяся в позиции, соответствующей выходному символу, удаляется оттуда. Эта последовательность действий будет повторяться необходимое число раз. Общая схема проиллюстрирована на рис. 3.11.
Заметим, что здесь не исключена возможность путаницы в понятиях, так как позиции, соответствующие входным и выходным символам, могут быть обоснованно названы входными и выходными позициями сети. Однако их не следует путать с входными или вы-
ВыходыВыходыВходыВходыконечногоконечногоавтоматаавтоматаПредставлениесетью ПетриПредставлениесетью ПетриРис. 3.11. Общий подход к моделированию связи между сетью Петри и внешним миром.
Выходы
Выходы
Входы
Входы
конечного
конечного
автомата
автомата
Представлениесетью Петри
Представлениесетью Петри
ходными позициями переходов. Несмотря на возможную путаницу, эти термины наиболее естественны для обоих понятий.
В качестве альтернативного подхода к моделированию входов и выходов сети могут быть использованы переходы. Для определения следующего входного символа из внешнего мира следует выбирать входной переходи запускать его. Сеть Петри ответит (в конце концов) запуском соответствующего перехода из множества выходных переходов, связанного с соответствующим выходом. Затем из внешнего- мира будет запущен новый входной переход и т. д. Этот подход проиллюстрирован на рис. 3.12. Нетрудно показать, что оба этих подхода эквивалентны, поэтому будем использовать первый из них, в котором входные и выходные символы моделируются позициями.
Задав представление позиций, соответствующих символам входа и выхода, мы можем завершить построение модели системы конечных состояний. Представим каждое состояние автомата позицией в сети Петри. Текущее состояние отмечается фишкой; все остальные позиции пусты. Теперь для определения переходов из состояния в состояние можно ввести переходы-сети следующим образом. Для каждой пары (состояние и входной символ) мы определяем переход, входными позициями которого являются позиции, соответствующие состоянию и входному символу, а выходными позициями — позиции, соответствующие следующему состоянию и выходу.
Рис. 3.12. Альтернативный подход представления связи между сетью Петри и внешним миром, где вместо позиций используются переходы.
Рис. 3.13. Сеть Петри, эквивалентная" автомату на рис. 3.9.
Для конечного автомата (Q, 2, А, 6, Г) мы определили сеть Петри (Р, Т, I, О) таким образом:
P = QU2UA,
T = Vq, = \ q€Q и о£2}>(^. а) = {?, а},
О^ч» а) = VHq> о), T(q, о)}.
Эта сеть Петри является моделью конечного автомата.
На рис. 3.13 изображена сеть Петри, соответствующая автомату с рис. 3.9. На рис. 3.14— сеть Петри, соответствующая автомату с рис. 3.10.
При сравнении сетей Петри на рис. 3.13, 3.14 с эквивалентными автоматами на рис. 3.9, 3.10 возникают некоторые вопросы. Прежде всего: почему модель сети Петри предпочтительнее описания конечным автоматом? Описание автоматом более понятно, чем описание сетью Петри, в которой 6 переходов, 24 дуги и 7 или 8 позиций. Это верно. Однако мы показали, что сети Петри могут представлять любую систему, представимую автоматом, и это свидетельствует о больших возможностях сетей Петри.
Кроме того, следует отметить, что модель сети Петри имеет определенное преимущество при композиции автоматов. Например,
Рис. 3.14. Сеть Петри, эквивалентная автомату на рис. 3.10.
заметим, что выходной алфавит автомата с рис. 3.9 идентичен входному алфавиту автомата с рис. 3.10. Передавая выход автомата с рис. 3.9 на вход автомата с рис. 3.10, можно построить композицию автоматов, вычисляющую дополнение до двух и проверяю
Рис. 3.15. Составной автомат, представляющий последовательную композицию автоматов, изображенных на рис. 3.9, 3.10.
щую четность. Такая композиция является автоматом с составными состояниями, компоненты которых — это состояния, обоих подавтоматов. В сетях Петри такая композиция есть просто совмещение выходных позиций первой сети с входными позициями второй. На рис. 3.15 показана композиция автоматов, а на рис. 3.16 — составная сеть Петри.
Другое преимущество представления сети Петри связано с иными формами композиции. Например, параллельная композиция позволяет компонентам композиции автоматов работать одновременно. В этом случае вновь получаем автомат с составными состояниями, в то время как для сети Петри — это просто дублирование фишек во входах, соответствующих входным символам, и использование их во всех компонентах сети Петри. Наконец, на выходе мы просто выбираем соответствующие позиции выхода. Например, если мы хотим соединить параллельно две сети Петри (рис. 3.13 и 3.14), то в результате получим сеть Петри, подобную изображенной на рис. 3.17, которая вычисляет дополнение числа до двух и его четность. Если на входе появляется символ сброса, то выходом является четность.
Упражнения
. Покажите, что оба подхода к моделированию взаимодействия между сетью Петри и ее окружением (с использованием переходов или позиций) эквивалентны.
ЭВМ с конвейерной обработкой
Возможность моделировать параллелизм и довольно простого объединения подсистем, представленных сетями Петри, делают сети Петри весьма полезным инструментом моделирования сложной аппаратуры вычислительных систем. Вычислительные системы состоят из многих компонент. Это делает сеть Петри наиболее подходящим средством для их представления.
На протяжении ряда лет было предпринято много попыток увеличения производительности вычислительных систем путем параллельного выполнения нескольких функций. Примером такого подхода к построению высокопроизводительной ЭВМ является использование конвейерной обработки [52]. Этот метод обработки подобен функционированию сборочного конвейера и особенно удобен для работы с векторами и массивами. Конвейер состоит из набора операций, которые могут выполняться одновременно. Когда операция к завершается, она передает свой результат операции (k + 1) и ожидает от операции (к — 1) нового задания. Если каждая операция занимает t единиц времени и всего существует п операций, то завершение обработки одного операнда потребует nt единиц времени. Однако, если на конвейерную обработку продолжают поступать новые операнды, результаты могут выдаваться со скоростью один каждые t единиц времени.
Рис. 3.16. Составная сеть Петри, являющаяся последовательной композицией сетей Петри на рис. 3.13, 3.14.
Глава 3
Рис. 3.17. Параллельная композиция сетей Петри с рис. 3.13, 3.14. Необходимо обеспечивать дублирование входов для обеих компонент с помощью специальной подсети.
В качестве примера рассмотрим сложение двух чисел с плавающей точкой. Основные шаги этой операции предполагают:
Выделить экспоненты обоих чисел.
Сравнить экспоненты и изменить, если необходимо, должным образом порядок большей и меньшей экспонент.
Сдвинуть точку в числе с меньшей экспонентой для их уравнения.
Сложить дроби.
Нормализовать результат.
Проверить экспоненту на переполнение и сформировать экспоненту и дробь результата.
Каждый из этих шагов может быть выполнен отдельным вычислительным блоком, где каждый отдельный операнд передается от блока к блоку для выполнения операции сложения. Это позволит выполнять до шести сложений одновременно.
Координацию различных блоков можно осуществлять несколькими способами. Обычно управление конвейерной обработкой является синхронным; время, отпущенное на выполнение каждого шага конвейера /, постоянно и фиксированно. Каждые t единиц времени результат каждого блока перемещается по конвейеру, чтобы стать входом для следующего блока. Однако при синхронном подходе обработка может быть приостановлена без необходимости, так как требуемое время может изменяться от блока к блоку, а также внутри данного блока для различных входов. Например, для выполнения шага нормализации результата при сложении чисел с плавающей точкой может потребоваться различное количество времени в зависимости от того, на сколько разрядов необходимо произвести нормализующий сдвиг и в какую сторону: вправо или влево. В этом случае, поскольку время t должно быть выбрано максимальным, необходимым для самого медленного блока конвейера, может оказаться так, что большую часть времени все единицы будут пребывать незагруженными, ожидая окончания /единицвремени.
В асинхронном конвейере в среднем процесс обработки может быть ускорен сигнализацией о завершении каждого шага конвейерной обработки и готовности передать свой операнд и получить новый. Результат шага к конвейерной обработки может быть послан на шаг (& + 1), как только шаг к выполнен, а блок (& + 1) свободен. Рассмотрим произвольный шаг конвейерной обработки. Очевидно, нужно иметь место, куда можно поместить входы и выходы в то время, как они используются или производятся. Обычно это предполагает наличие регистров: блок использует значение своего входного (буферного) регистра для вычисления значения выходного (буферного) регистра. После этого необходимо ждать, пока (1) — выходной регистр блока не будет очищен путем пересылки содержимого во входной регистр следующего блока и (2) — новое входное значение не появится в его входном регистре. Таким образом, для управления блоком к конвейера необходимо знать, когда выполняются следующие условия:
входной регистр заполнен;
входной регистр пуст;
выходной регистр заполнен;
выходной регистр пуст;
блок занят;
блок свободен;
пересылка осуществлена.
На рис. 3.18 и 3.19 показано, как можно промоделировать асинхронный конвейер такого типа. На рис. 3.18 приведена блок-схема конвейера, моделируемого сетью Петри на рис. 3.19.
Отметим, что в этой модели мы промоделировали реальную работу блоков конвейера как непримитивных событий. Это позволяет нам игнорировать на этом уровне конкретные детали того, что делают блоки, и сосредоточиться на их правильном взаимодействии. Каждая операция также может быть промоделирована сетью Петри. Затем сети Петри для каждого блока можно внести в сеть Петри на рис. 3.19, получив более детальную сеть. Такая возможность моделирования системы на нескольких различных уровнях абстракции, т. е. иерархическим образом, может быть весьма полезна.
Блок к-1Блок к-1Выходной регистр блока к-1Входной регистр блока кВыходной регистр блока к-1Входной регистр блока кБлок кБлок к
Блок к-1
Блок к-1
Выходной регистр блока к-1
Входной регистр блока к
Выходной регистр блока к-1
Входной регистр блока к
Блок к
Блок к
Выходной регистр блока кВыходной регистр блока кВходной регистр блока к+1Входной регистр блока к+1
Выходной регистр блока к
Выходной регистр блока к
Входной регистр блока к+1
Входной регистр блока к+1
Рис. 3.18. Блок-схема устройства управления асинхронной ЭВМ с конвейерной обработкой.
Пересылка из к 6 k*1Пересылка из к 6 k*1Пересылка из k-1 6 кПересылка из k-1 6 кВыходной регистр к-1 .пустВыходной регистр к-1 .пустРис. 3.19. Модель сети Петри устройства управления асинхронной ЭВМ с конвейерной обработкой.Рис. 3.19. Модель сети Петри устройства управления асинхронной ЭВМ с конвейерной обработкой.Выходной регистр к заполненВыходной регистр к заполненВыходной регистр к-1 заполненВыходной регистр к-1 заполненВходной регистр к пустВходной регистр к пустВходной регистр к+1 заполненВходной регистр к+1 заполненВходной регистр к+1 пустВходной регистр к+1 пустБлок кБлок кзанятзанятБлок к - /Блок к - /занятзанятВходной регистр * к заполнен
Пересылка из к 6 k*1
Пересылка из к 6 k*1
Пересылка из k-1 6 к
Пересылка из k-1 6 к
Выходной регистр к-1 .пуст
Выходной регистр к-1 .пуст
Рис. 3.19. Модель сети Петри устройства управления асинхронной ЭВМ с конвейерной обработкой.
Рис. 3.19. Модель сети Петри устройства управления асинхронной ЭВМ с конвейерной обработкой.
Выходной регистр к заполнен
Выходной регистр к заполнен
Выходной регистр к-1 заполнен
Выходной регистр к-1 заполнен
Входной регистр к пуст
Входной регистр к пуст
Входной регистр к+1 заполнен
Входной регистр к+1 заполнен
Входной регистр к+1 пуст
Входной регистр к+1 пуст
Блок к
Блок к
занят
занят
Блок к - /
Блок к - /
занят
занят
Выходной регистр к пустВыходной регистр к пустКратные функциональные блоки
Выходной регистр к пуст
Выходной регистр к пуст
Конвейерная структура управления, рассмотренная в предыдущем разделе, — это один из подходов к построению очень больших быстродействующих вычислительных систем. Другой подход, использованный, например, в CDC 6600 [291] и IBM 360/91 [10], использует краткие функциональные блоки. В CDC 6600 имеется 10 функциональных блоков: блок ветвления (для условных переходов); булев блок (для булевых операций); блок сдвига; блок сложения с плавающей точкой; блок сложения с фиксированной точкой; 2 блока умножения; блок деления и 2 блока приращения (для индексирования). Кроме того, имеется несколько регистров, для хранения входных и выходных значений функциональных блоков. Устройство управления ЭВМ организует одновременное функционирование нескольких независимых блоков.
В качестве примера рассмотрим следующую последовательность инструкций для вычислительной системы CDC 6600: 1. Умножить XI на XI, результат поместить в Х0.
Умножить ХЗ на XI, результат поместить в ХЗ.
Сложить Х2 с Х4, результат поместить в Х4.
Сложить ХО с ХЗ, результат поместить в ХЗ.
Разделить ХО на Х4, результат поместить в Х6.
Для выполнения инструкций устройство управления выдает первую инструкцию в блок умножения. Поскольку существуют два блока умножения, можно выдать также вторую инструкцию. При этом обоим блокам доступно содержимое XI. Инструкция 3 может быть выдана блоку сложения. Теперь, для того, чтобы выдать инструкцию 4, мы должны ждать, пока инструкции 1, 2 и 3 не будут завершены, так как инструкция 4 использует блок сложения (занятый выполнением инструкции 3), ХО (вычисляемый инструкцией 1) и ХЗ (вычисляемый инструкцией 2). Инструкция 5 должна ждать выполнения инструкции 1 (вычисление ХО) и инструкции 3 (вычисление Х4).
Организация параллелизма этого типа (выполнение нескольких инструкций программы одновременно) должна быть такой, чтобы результат выполнения программы с использованием параллелизма и без него был бы одинаков. Некоторые инструкции в программе требуют результата предыдущей инструкции до выполнения последующей. Система, которая организует параллелизм в последовательной программе таким способом для получения правильных результатов, обладает свойством детерминированности. Условия поддержания детерминированности были рассмотрены Бернстайном [28]. Вот они: для двух операций а и Ь, таких, что а предшествует b на линейном участке программы, b может начать выполняться прежде, чем выполнена а, тогда и только тогда, когда входные .данные b не требуют результата а и результаты b не изменят ни входных данных, ни результатов а.
Один из методов применения таких ограничений для построения устройства управления, выдающего инструкции отдельным функциональным блокам, основан на таблице резервирования. Инструкция для функционального блока и, использующая регистры I, j и к, выдается только в том случае, если ни одна из четырех компонент не зарезервирована; при выдаче инструкции все эти компоненты становятся зарезервированными. Если же из-за того, что либо функциональный блок, либо один из регистров уже используются, инструкция не может быть выдана, то устройство управления перед переходом к следующей инструкции ожидает выполнения условий для выдачи этой инструкции.
Схему такого типа можно промоделировать сетью Петри. Каждому функциональному блоку и каждому регистру поставим в соответствие позицию: если блок или регистр свободен — в позицию будет помещена фишка, если нет — фишки в позиции не будет. Кратные идентичные функциональные блоки показываются соответствующим числом фишек в позициях. На рис. 3.20 изображена часть сети Петри, которая может быть использована для моделирования выполнения инструкции, использующей блок и и регист-
Инструкция использует блок ц регистры ij,k
Блок и сВободенБлок и сВободенБлок и работает 1 с регистрамиБлок и работает 1 с регистрамиВыдача инструкцииВыдача инструкцииГотовность декодировать следующую инструкциюГотовность декодировать следующую инструкциюИнструкция завершенаИнструкция завершенаРегистр к сВододенРегистр к сВододенРегистр I свободенРегистр j сВододенРегистр I свободенРегистр j сВододенРис. 3.20. Часть сети Петри, моделирующая устройство управления для ЭВМ^ с кратными регистрами и кратными функциональными блоками.Рис. 3.20. Часть сети Петри, моделирующая устройство управления для ЭВМ^ с кратными регистрами и кратными функциональными блоками.ры i, j и к. Моделирование всего устройства управления, конечно же, потребует гораздо большей сети Петри.
Блок и сВободен
Блок и сВободен
Блок и работает 1 с регистрами
Блок и работает 1 с регистрами
Выдача инструкции
Выдача инструкции
Готовность декодировать следующую инструкцию
Готовность декодировать следующую инструкцию
Инструкция завершена
Инструкция завершена
Регистр к сВододен
Регистр к сВододен
Регистр I свободен
Регистр j сВододен
Регистр I свободен
Регистр j сВододен
Рис. 3.20. Часть сети Петри, моделирующая устройство управления для ЭВМ^ с кратными регистрами и кратными функциональными блоками.
Рис. 3.20. Часть сети Петри, моделирующая устройство управления для ЭВМ^ с кратными регистрами и кратными функциональными блоками.
Схема, описанная выше, представляет собой очень простой способ введения параллелизма и не рассматривает, например, тот факт, что кратные функциональные блоки могут использовать одновременно одинаковые входные регистры. Таким образом, максимальный параллелизм в этой схеме может быть не получен [153]. Однако существуют другие схемы, с помощью которых это достигается. Такие более сложные схемы также моделируются (более сложными) сетями Петри. Эти сети могут быть очень велики. CDC 6600, например, имеет 24 различных регистра и 64 различных инструкции. Если для каждой инструкции и тройки регистров требуется позиция, соответствующая условию «блок и оперирует регистрами г, / и к», то необходимо более полумиллиона позиций и переходов. Главная трудность заключается в представлении того факта, что содержимое внутренних регистров может определять, какие регистры и блоки будут и с пол ьз оваться (и ндекси р овани е).
(Однако никакая программа не использует все возможные комбинации регистров и блоков. Это позволило [274] промоделировать вычислительную систему CDC 6600 с помощью сетей Петри. Эта модель сети Петри была затем использована для оптимальной генерации кода компилятором с Фортрана, что мы увидим в разд. 3.5.)
Программное обеспечение ЭВМ
В дополнение к аппаратному обеспечению ЭВМ сетями Петри можно моделировать и программное обеспечение. Чаще всего сети Петри используются именно для этого, и здесь они имеют наиболь-
шие возможности для практического применения. В течение длительного времени разрабатывались системы для описания и моделирования аппаратного обеспечения ЭВМ, но только в последние годы такие попытки предприняты для формального моделирования программного обеспечения ЭВМ. Большинство этих усилий связано с анализом, спецификацией и описанием последовательных программ; системы параллельных процессов до сих пор остаются важной исследовательской проблемой. В этом разделе мы покажем, как сети Петри могут моделировать различные системы параллельных взаимодействующих процессов.
Блок-схемы
Вырожденным случаем параллельной системы обработки является система с одним процессом. Сначала рассмотрим, как сетью Петри может быть представлен отдельный процесс, а затем путем комбинации сетей Петри, представляющих несколько процессов, получим систему параллельных процессов.
Отдельный процесс описывается программой. Эта программа может быть написана на многих языках, но для удобства примем общецелевой язык, такой, как Алгол, Фортран, PL/1, Кобол, Паскаль, Бэйсик или даже язык ассемблера. Программа представляет два различных аспекта процесса: вычисление и управление. Вычисление связано с текущими арифметическими и логическими операциями, вводом и выводом, обычными манипуляциями над участками памяти и их содержимым. Управление же связано не со значениями или выполняемыми вычислениями, а только с порядком их выполнения.
Сети Петри удачно представляют структуру управления программ. Сети Петри предназначены для моделирования упорядочения инструкций и потока информации, но не для действительного вычисления самих значений. Модель системы по своей природе является абстракцией моделируемой системы. Поэтому она игнорирует все возможные специфические детали. Если бы моделировались все детали, тогда модель была бы дубликатом моделируемой системы, а нс абстракцией.
Стандартный способ представления структуры управления программ — это блок-схемы. Блок-схема представляет поток управления в программе. Например, программа на рис. 3.21 представляется блок-схемой на рис. 3.22. Заметим, что блок-схема на рис. 3.22 не указывает конкретные вычисления, которые надо произвести, а только определяет структуру программы. Такая блок-схема является абстрактной. Рис. 3.23 показывает, как можно проинтерпретировать блок-схему (рис. 3.22) программы, представленной на рис. 3.21. Каждая последовательная программа может быть представлена в виде блок-схемы. Таким образом, показывая, как
begin
Input( у']);
Input( j2^
Уз : = 1; while у [ > о do begin if odd ( J’,) then begin
Уз := Уз * УУ Л := Ji - 1; end;
Уз ;= Уз * yf
Л -=У\ - 2; end;
Output ( y3); end;
Рис. 3.21. Простая программа. Эта программа представлена блок-схемой на рис. 3.22 и сетью Петри на рис. 3.25.
блок-схема может быть представлена сетью Петри, мы дадим представление сетью Петри программы.
Оказывается блок-схема во многом подобна сети Петри: блок- схема представима в виде узлов двух типов (принятия решения, показанные ромбами, и вычисления, показанные прямоугольниками) и дуг между ними. Удобный способ выполнения блок-схемы — введение фишки, которая представляет текущую инструкцию. По мере выполнения инструкций фишка передвигается по блок-схеме. Из сходства между графическими представлениями программы и сети Петри может показаться, что для получения эквивалентной сети Петри можно заменить узлы блок-схемы на позиции, а дуги — на переходы. Такой подход использовался для превращения конечного автомата в сеть Петри (разд. 3.3.1).
Однако заметим, что в сети Петри действия моделируются переходами, тогда как в блок-схеме действия моделируются узлами. Кроме того, если движение нашей фишки текущей инструкции в блок- схеме нужно приостановить, это делается между узлами, на дугах, а не внутри блока. Таким образом, правильный перевод блок-схемы в сеть Петри заменяет узлы блок-схемы на переходы сети Петри, а дуги блок-схемы — на позиции сети Петри. Каждая дуга блок- схемы соответствует точно одной позиции в сети Петри. Узлы блок- схемы представляются по-разному в зависимости от типа узла: вычисления или принятия решения. На рис. 3.24 иллюстрируются
Рис. 3.22. Блок-схема программы, изображенной на рис. 3.21.
Действие Интерпретация
aInput^,);Input (у}); Уз := 1;
bУ1 > О?
сoddlj'j) ?
dУз-= Уз* Уъ У1 •- У1 - 1;
?У 2 := У2 * Уъ 71 := 71 / 2;
/Output (.У3);
Рис. 3.23. Интер претация действий блок-схемы на рис. 3.22, представляющей программу с рис. 3.21.
Вычисление гВычисление гРис. 3.24. Перевод узлов вычисления и принятия решения в блок-схеме в переходы в сети Петри.Рис. 3.24. Перевод узлов вычисления и принятия решения в блок-схеме в переходы в сети Петри.
Вычисление г
Вычисление г
Рис. 3.24. Перевод узлов вычисления и принятия решения в блок-схеме в переходы в сети Петри.
Рис. 3.24. Перевод узлов вычисления и принятия решения в блок-схеме в переходы в сети Петри.
оба способа перевода. На рис. 3.25 показан перевод блок-схемы на рис. 3.22 в эквивалентную сеть Петри..
Необходимо сделать замечания относительно того, что означают компоненты сети Петри на рис. 3.25. Что означают позиции? Для ответа рассмотрим интерпретацию фишек блок-схемы счетчиком команд. Фишка, находящаяся в позиции, означает, что счетчик команд установлен на готовность выполнения следующей инструкции. Каждая позиция имеет единственный выходной переход, за исключением позиции, которая предшествует принятию решения; такие позиции имеют по два выходных перехода, соответствующих # истинному и ложному значению предиката.
Переходы, очевидно, связываются с действиями программы: вычислениями и принятиями решений. Для интерпретации сети Петри необходимо интерпретировать каждый переход. Следует также отметить, что переходы для вычислений имеют один вход и один выход; переход, представляющий вычисления, не может находиться в конфликте, поскольку его входная позиция не является входной для какого-либо другого перехода. Действие же, связанное с принятием решения, вводит в сеть конфликт. Выбор способа разрешения конфликта либо недетерминирован, либо им можно управлять извне (предсказателем, вычисляющим истинность или лож- * ность предиката и вынуждающим запуск нужного перехода). Различие между этими двумя способами разрешения конфликта — методологический вопрос.
Рис. 3.25. Представление сетью Петри программы на рис. 3.21, полученное из блок-схемы на рис. 3.22.
Параллелизм
Параллелизм (или одновременность) может быть введен несколькими способами. Рассмотрим случай двух параллельных процессов, каждый из которых может быть представлен сетью Петри. Таким образом, составная сеть Петри, являющаяся просто объединением сетей Петри для каждого из двух процессов, может представлять одновременное выполнение двух процессов. Начальная маркировка составной сети Петри имеет две фишки, по одной в каждой сети, представляя первоначальный счетчик команд процесса. Это вводит параллелизм, который, однако, не является еще полезным.
Обычный подход основан на введении параллелизма в процесс в вычислительной системе. Здесь имело место несколько предложений. Одно из них использует операции FORK и JOIN, впервые предложенные Деннисом и Ван Хорном [76]. Операция FORK /, выпол-
Рис. 3.26. Моделирование операций FORK и JOIN сетью Петри.
<2 — FORK (выполняемая на участке I создает два новых процесса на участках / и ку, б— JOIN (соединяет два процесса, которые заканчиваются на участках i и /, в один «процесс, продолжающийся на участке ку
Рис. 3.27. Моделирование структуры parbegin, Si; S2; ...; Sn parend, в сети Петри. Каждый квадрат есть представление сетью Петри утверждений Si, S2 и т. д. Здесь иллюстрируется также иерархическая природа моделирования сетями Петри.
няемая в предложении i, приводит к одновременному выполнению текущего процесса, начиная с предложения (/ + 1), и вновь созданного процесса — с предложения /. Операция JOIN соединяет два процесса в один или, что равнозначно, уничтожает один из них. Эти операции моделируются в сети Петри, как показано на рис. 3.26.
Другое предложение по введению параллелизма основано на операциях parbegin и parend, [79]. Структура управления была предложена Дейкстрой и имеет вид parbegin Si; S2; ...; Sn parend, где St — предложение. Смысл структуры parbegin!parend заключается в параллельном выполнении каждого из предложений Si, S2, ... ..., Sn. Эта конструкция может быть представлена сетью Петри, показанной на рис. 3.27.
Синхронизация
Введение параллелизма полезно только в том случае, когда компоненты процессов могут взаимодействовать при получении решения задачи. Такое взаимодействие требует распределения ресурсов между процессами. Для гарантии правильности работы системы в целом распределением необходимо управлять. Проблемы синхронизации, возникающие при взаимодействии процессов, иллюстрируются многочисленными примерами, приведенными в литературе. Среди задач синхронизации: задача о взаимном исключении [78], производителе/потребителе [79], обедающих мудрецах [79], чте- нии/записи [58] и др.
Эти задачи стали классическими в области синхронизации; каждое новое предлржение по механизму синхронизации должно решать их. И хотя сети Петри представляют собой схему моделирования, а не механизм синхронизации, они определенно способны моделировать механизмы синхронизации. Мы представляем здесь некоторые решения в виде сетей Петри. Такое представление основано частично на работе [56].
Задача о взаимном исключении
Предположим, что несколько процессов разделяют общую переменную, запись, файл или другой элемент данных. Этот разделяемый элемент данных может использоваться процессами различными способами, упрощенно их можно классифицировать как чтение значения элемента данных или запись нового значения. Эти две операции являются часто единственными примитивными операциями. Это означает, что для обновления разделяемого элемента данных процесс должен сначала считать старое значение, затем вычислить новое и, наконец, записать его на то же место. Если два процесса в одно и то же время пытаются выполнить такую последовательность действий, то могут возникнуть трудности. Возможна следующая последовательность:
Первый процесс считывает значение х из разделяемого объекта;, 2. Второй процесс считывает значение х из разделяемого объекта;
Первый процесс вычисляет новое значение х = /(х);
Второй процесс вычисляет новое значение х = g(x);
Первый процесс записывает х’ в разделяемый объект;
Второй процесс записывает х" в разделяемый объект, уничтожая значение х .
Результат вычисления первого процесса потерян, так как теперь значением разделяемого объекта является g"(x), в то время как им должно быть либо g(f(x)), либо f(g(x)). (Представьте себе, что§-(х) — «снять со счета х 1000 долл.», Дх) — «поместить на счет х 1000 долл.», а процессы 1 и 2 — банковские операции.)
Рис. 3.28. Взаимное исключение. Управление доступом к критическим секциям двух процессов осуществляется таким образом, что оба процесса не могут одновременно выполнять свои критические секции.
Для предотвращения проблем такого рода необходимо обеспечить механизм взаимного исключения. Взаимное исключение — это метод создания таких программ, что одновременно не более чем один процесс имеет доступ к разделяемому объекту данных. Участок кода, в котором осуществляется доступ к разделяемому объекту и который требует защиты от вмешательства других процессов, называется критической секцией. Идея состоит в том, что когда процесс готов выполнить свою критическую секцию, он сначала ждет, пока другой процесс не выполнит свою собственную критическую секцию. Затем он «блокирует» доступ к критической секции, не давая возможности никакому другому процессу войти в свою критическую секцию. Он входит в критическую секцию, выполняет ее и, выйдя из нее, освобождает ее для доступа со стороны других процессов.
Эта задача может быть решена сетью Петри, как показано на рис. 3.28. Позиция т представляет собой разрешение для входа в критическую секцию. Для того чтобы какой-либо процесс вошел в критическую секцию, он должен иметь фишку в рх или в р^ соответственно, свидетельствующую о желании попасть в критическую
секцию, а также должна существовать фишка в т, дающая разрешение на вход. Если оба процесса пытаются войти в критическую секцию одновременно, то переходы tv и /2 вступят в конфликт, и только один из них сможет запуститься. Запуск tt запретит переход /2, вынуждая процесс 2 ждать, пока первый процесс выйдет из своей критической секции и возвратит фишку обратно в позицию т.
Задача о производителе/потребителе
В задаче о производителе/потребителе также присутствует совместно используемый объект, но в этом случае разделяемый объект точно определен и является буфером. Процесс-производитель создает объекты, которые помещаются в буфер. Потребитель ждет, пока объект не будет помещен в буфер, удаляет его оттуда и использует. Такая ситуация может быть промоделирована сетью Петри так, как показано на рис. 3.29. Позиция В представляет собой буфер, каждая фишка соответствует элементу данных, который произведен, но еще не использован.
Один из вариантов этой задачи — это задача о нескольких про- изводителях/нескольких потребителях. В этом случае несколько производителей порождают элементы данных, помещаемые в общий буфер, для нескольких потребителей. На рис. 3.30 представлено решение этой задачи в виде сети Петри. Эта сеть совпадает с сетью на рис. 3.29, за исключением того, что для представления s произ-
Рис. 3.29. Задача о производителе/потребителе, моделируемая сетью Петри. 3—562
Рис. 3.30. Задача о нескольких производителях/нескольких потребителях ($ производителей и t потребителей для фиксированных s и /).
Рис. 3.31. Задача о производителе/потребителе с ограниченным буфером. Буфер, представленный позициями В и В', ограничен п ячейками.
водителей и t потребителей мы начали выполнение сети с s фишками в начальной позиции процесса-производителя и / фишками в начальной позиции процесса-потребителя. Таким образом мы представляем s производителей и / потребителей, реализуемых реентерабельными совместно используемыми программами. Альтернативой было бы дублирование программного кода для процессов производителя и потребителя, однако результатом этого при том же самом поведении была бы гораздо большая сеть.
В другом варианте задачи о производителе/потребителе используется буфер ограниченного размера. При такой постановке задачи буфер между производителем и потребителем ограничен, т. е. имеет только п ячеек для элементов данных. Следовательно, производитель не может постоянно работать с той скоростью, которая ему нужна, а вынужден ждать, если потребитель работает медленно и буфер заполнен. На рис. 3.31 показано решение этой проблемы. Ограниченному буферу сопоставляются две позиции: В представляет количество элементов данных, которые произведены, но еще не использованы (число заполненных ячеек), В' — количество пустых ячеек в буфере. Первоначально В' имеет п фишек, а В фишек не имеет. Если буфер заполнен, то В' фишек не имеет, а В имеет п фишек. Если теперь производитель попытается поместить еще один элемент данных в буфер, то он будет остановлен, так как в В' нет фишки, делающей этот переход разрешенным.
Задача об обедающих мудрецах
Задача об обедающих мудрецах была предложена Дейкстрой в [79] и связана с пятью мудрецами, которые попеременно то думали, то ели. Мудрецы сидят за большим круглым столом, на котором много блюд китайской кухни. Между соседями лежит одна палочка для еды. Однако для приема китайской пищи необходимо две палочки, следовательно, каждый мудрец должен взять палочку слева и палочку справа: проблема, конечно, заключается в том, что если все мудрецы возьмут палочки слева и затем будут ждать, когда освободятся палочки с правой стороны, то они будут ждать вечно и умрут от голода (состояние тупика).
На рис. 3.32 показано решение этой задачи с помощью сети Петри. Позиции Сь ..., С5 представляют палочки для еды, и так как каждая из них первоначально свободна, то в начальной маркировке в каждой из этих позиций имеется фишка. Каждый мудрец представлен двумя позициями М^ и Et для состояний размышления и принятия пищи соответственно. Для того чтобы мудрец перешел из состояния размышления в состояние принятия пищи, обе палочки (слева и справа) должны быть свободны. Это легко моделируется сетью Петри.
Рис. 3.32. Задача об обедающих мудрецах. Каждый мудрец представлен двумя позициями: размышление (М^, принятие пищи (Е^.
Задача о чтении/записи
Существует несколько вариантов задачи о чтении/записи [58], однако основная структура их остается неизменной. Имеются процессы двух типов: процессы чтения и процессы записи. Все процессы совместно используют общий файл или переменную или элемент данных. Процессы чтения не изменяют объект в отличие от процессов записи. Таким образом, процессы записи должны взаимно исключать все другие процессы чтения и записи, в то время как несколько процессов чтения могут иметь доступ к разделяемым данным одновременно. Задача состоит в определении структуры управления, которая не приведет к тупику и не допустит нарушения критерия взаимного исключения.
На рис. 3.33 иллюстрируется решение задачи в том случае, когда количество процессов чтения ограничено величиной п. Если в системе количество процессов чтения не ограничено, то только п процессов могут выполняться в одно и то же время.
Проблема возникает в том случае, если количество процессов чтения не ограничено и мы хотим предоставить возможность не-
Рис. 3.33. Задача о чтении/записи в случае, когда число процессов чтения ограничено величиной п. Первоначально имеются $ процессов чтения и t процессов записи.
ограниченному количеству процессов читать одновременно. В этом случае можно утверждать, что возникает необходимость хранения количества читающих процессов. При инициализации каждого процесса чтения в счетчик добавляется единица, а по окончании процесса единица вычитается. Это легко моделируется позицией, в которой количество фишек равно количеству процессов чтения. Однако, для того, чтобы предоставить процессу записи возможность приступить к записи, необходимо, чтобы счетчик был нулевым, т. е. соответствующая позиция была бы пустой. В сетях Петри нет механизма, который бы осуществлял проверку на нуль неограниченной позиции^. Таким образом, оказывается, что задача о чтении/записи с неограниченным числом процессов чтения не может быть решена с помощью сетей Петри. Это первый случай, когда мы столкнулись с тем, что сети Петри не способны моделировать все системы. Этот вопрос заслуживает дальнейшего изучения (гл. 7).
Р- и V-системы
Большинство задач синхронизации не могут быть решены непосредственно сетями Петри, но разрешимы скорее на основе известных механизмов синхронизации. В частности, одним из самых популярных механизмов синхронизации являются Р- и V-операции над семафорами, впервые определенные Дейкстрой [79]. Семафор — это элемент данных, который может принимать только неотрицательные целые значения. V-операция увеличивает значение на I, а Р
Определения ограниченной и неограниченной позиций даны в гл. 4.— Прим. ред.
операция уменьшает его на 1. P-операцию можно применять только в том случае, когда значение семафора останется в результате неотрицательным; если же значение семафора равно 0, то Р-операция должна ждать, пока какой-нибудь другой процесс не выполнит V-операцию. Р- и V-операции определены как примитивные, т. е. никакая другая операция не может изменять значение семафора одновременно с ними.
Рис. 3.34. Моделирование Ри V-операций над семафором S.
Такие операции легко моделируются сетью Петри, как показано на рис. 3.34. Каждый семафор моделируется позицией, количество фишек в позиции показывает значение семафора. Р-операция использует позицию семафора в качестве входа, V-операция — в качестве выхода.
Преимущество этого заключается в том, что многие системы проектируются и описываются с помощью Р - и V-операций. Например, в операционной системе Venus [179] Р- и V-операции являются основным механизмом связи между процессами. Такие системы, следовательно, можно промоделировать сетями Петри.
Другие системы
Описанные до сих пор системы относятся к самому очевидному типу систем, моделируемых сетями Петри: аппаратному и программному обеспечению ЭВМ. Но в большей части эта «очевидность» является результатом того, что сети Петри были определены и разработаны главным образом для этой цели. Но они также применимы для моделирования большого числа других систем, совершенно отличных от вычислительных систем. В этом разделе мы бегло ознакомимся с некоторыми из них.
PERT-диаграмма давно используется для планирования больших проектов. PERT-диаграмма является графическим представле-
нием взаимосвязей между различными этапами, составляющими проект. Проект представляет собой совокупность большого числа этапов, при этом некоторые этапы должны завершиться прежде, чем начнут выполняться другие. Кроме того, на выполнение каждого этапа требуется определенное количество времени (иногда каждому этапу соответствует три времени, соответствующие худшему, среднему и лучшему случаям). Этапы графически представлены узлами; дуги используются для отображения причинно-следственных связей между ними.
PERT-диаграмма и сеть Петри взаимосвязаны: PERT-диаграмма легко преобразуется в сеть Петри. Каждый этап PERT-диаграммы представляется позицией, причинно-следственные связи — переходами. Диаграмма на рис. 3.35 может быть преобразована в эквивалентную сеть Петри, изображенную на рис. 3.36.
Сеть Петри является превосходным средством для представления параллелизма и причинно-следственных связей PERT-диаграммы, но PERT-диаграмма предоставляет также информацию о времени, используемую для определения минимального времени, необходимого для выполнения проекта, —«время позднего начала» и т. д. Сеть Петри не содержит такой информации. Добавление информации о времени может придать сети новое мощное свойство, но это несовместимо с основными концепциями сетей Петри. Для такого расширения сетей Петри требуются дополнительные исследования [277, 117].
Конвейерная обработка, описанная в разд. 3.3.2, является частным случаем производственной системы [107]. Сборочная линия — другой пример производственной системы. Производственные системы и сборочные линии могут быть промоделированы сетями Петри.
Одно из первых применений сетей Петри — применение в качестве средства генерации оптимального кода для компилятора с Фортрана CDC 6600. Подход к решению этой задачи, предложенный в [274], заключался в моделировании программы на Фортране сетью Петри способом, подобным моделированию блок-схемы (разд. 3.4.1). Затем отдельные операторы программы рассматривались с целью определения минимального набора причинно-следственных связей между операторами, позволяя исключать из сети Петри некоторые из искусственно введенных ограничений на последовательность операторов программы. Эти искусственные ограничения введены из-за необходимости для программиста представлять программу на Фортране в виде последовательности, задающей полный порядок на множестве операторов, даже если требуется только частичное упорядочение. В качестве примера рассмотрим следующие три оператора:
Юх = х + 1,
20 г/ = у + 1»
30 г = х + у.
Начало
Идентификация
Котлован
ЪЛ
Фундамент
Водопровод
ал
е, 6
L 2
Р,2
q. 1
к. 10
п, 2
Покраска
s, 2
Окончание
Окончательные электроработы
Окончательная обшивк крьпиа
Водо- отводные канавы
Нивелирование
благоустройство территории
Кирпичная кладка
Окончательные слесарноводопроводные работы
Спецификация работы
Начальные слесарно- Водоп^оводные работы
Продолжительность выполнения работы
Кухонное
Отоп-
ение
Окончательный
настил полов
Водосточные
желоба
перекры
тия
Лакирование
полов
Рис. 3.35. PERT-диаграмма строительства дома. (Ф. Леви, Г. Томпсон, Дж. Уист «Введение в метод критических путей», в Industrial Scheduling, edited by John F., Muth and Gerald L. Thompson, copyright 1963, p. 335. С разрешения Prentice-Hall, Inc., Englewood Cliffs, New Jersey.)
Деревянный каркас
Примерная прокладка
электро-роводов
Окончательная
отделка
деревом
Между- тажные
Штукатурные работы
Рис. 3.36. Представление PERT-диаграммы на рис. 3.35 сетью Петри. Обратите внимание на то, что введены дополнительные узлы. Они необходимы для адекватного отображения ограничения предшествования и точного представления ситуаций с ожиданием.
Рис. 3.37. Сеть Петри, представляющая несколько последовательностей выполнения инструкции.
Они написаны таким образом, что оператор 10 предшествует оператору 20, но такая последовательность вовсе необязательна. Порядок, в котором будут выполнены операторы 10 и 20 (или они будут выполнены одновременно), не имеет значения для программы. Однако оператор 30 должен следовать только после операторов 10 и 20. После изменения упорядочения операторов необходимо рассмотреть и поток управления. Этот анализ заключается в применении условий Бернстайна для обеспечения детерминированности.
Результатом такого анализа является сеть Петри, представляющая программу с минимальными ограничениями на последовательность операторов, т. е. допускающую максимальный параллелизм. Т?перь задача состоит в компиляции такой программы. Это требует отображения переменных в регистры и упорядочения инструкций для получения полностью упорядоченной последовательности инструкций машинного языка*. CDC 6600 — это ЭВМ с несколькими регистрами и кратными функциональными блоками (разд. 3.3.3). Так как функциональные блоки могут выполнять различные инструкции параллельно, то очень важно порождать инструкции в порядке, максимально увеличивающем параллелизм при работе функциональных блоков. На это также влияет распределение переменных по регистрам. Сеть Петри, моделирующая программу и представляющая ограничения, налагаемые программой, объединяется с сетью Петри, моделирующей устройство управления CDC 6600 и представляющей ограничения, налагаемые аппаратным обеспечением. Такая объединенная сеть представляет все возможные последовательности инструкций, которые могут выполняться аппаратурой и реализовать алгоритм данной программы. Эта сеть затем выполняется для получения всех таких последовательностей инструкций. Две (или более) последовательности образуются вся-
кий раз, когда два (или более) перехода одновременно разрешены. Запуск одного перехода будет порождать одну последовательность; запуск другого перехода — другую. Например, сеть Петри на рис. 3.37 представляет последовательности abcdef, bacdef, abcedf, bacedf. После того как последовательности получены, вычисляются необходимые затраты времени на их выполнение, и наиболее быстрая последовательность генерируется компилятором для действительного выполнения.
Рис. 3.38. Сеть Петри, представляющая окислительно-восстановительную реакцию между щавелевой кислотой и пероксидом водорода, в результате которой получаются вода и диоксид углерода.
Химические системы — другой пример систем, которые могут быть промоделированы сетями Петри. Химические уравнения моделируются переходами; вещества, участвующие в реакции, — позициями. Количество фишек в позиции указывает на количество данного вещества в системе. Например, сеть Петри на рис. 3.38 представляет два химических уравнения:
Н2С2О4 -> 2СО2 + 2Н+ + 2е"
2е-+^2Н++;Н2О2 -> 2Н2О.
Можно представить и реакции катализа. Соединение водорода и этилена образует этан (Н2 + С2Н4->- С2Н6) только в присутствии платины. Эго отражено на рис. 3.39.
Мельдман и Хольт [186] выдвинули предположение, что и юридические системы могут быть промоделированы сетями Петри. В этих системах несколько действующих лиц (судьи, адвокаты, обвиняемые, клерки и др.) могут одновременно выполнять действия, относящиеся к конкретному д^лу. Действия и их взаимосвязи могут быть представлены сетью Петри. Например, сеть Петри на рис. 3.40 является моделью начальных стадий гражданского процесса.
Другое предложение заключается в использовании сетей Петри для моделирования и анализа протоколов связи [194]. В сетях ЭВМ и системах распределенных процессов необходима возможность передачи информации между ЭВМ. В этой задаче существенно присутствует параллелизм, и поэтому она попадает в класс задач, для которых определены сети Петри. Фарбер и его ученики [193 , 250, 195 , 251] разработали методологию для спецификации, проектирования и анализа простых протоколов связи, используя сети Петри и подобные модели.
Рис. 3.39. Процесс получения этана из водорода и этилена при катализации платиной.
Другие системы, которые могли быть промоделированы сетями Петри, включают в себя системы очередей (где очереди были бы представлены позициями, а работы — фишками); модели мозга (запуски нейронов могли бы моделироваться запусками переходов); исчисление высказываний [88, 91] (позиции представляют буквы, а переходы объединяют их для определения предложений в конъюнктивной нормальной форме) и многие другие системы. Этот список ограничен в основном временем и воображением человека, но не свойствами сетей Петри.
Однако мы видели по крайней мере один пример (задача о чте- нии/записи), который нельзя промоделировать с помощью сети Петри. И хотя моделирование с помощью сетей Петри может быть полезным при описании системы, необходимо разработать средства анализа, которые бы позволили исследовать сеть Петри и определить ее свойства. Обратимся к этому в следующей главе, в которой представлены методы анализа сетей Петри.
Упражнения}
Промоделируйте вычислительную систему с тремя процессами и четырьмя ресурсами: устройство чтения с карт, построчно печатающее устройство, диск и два раздела памяти. Любой процесс может попасть в любой раздел. Использование ресурсов тремя процессами состоит в следующем:
процесс 1 запрашивает устройство чтения с карт и построчно печатающее устройство, а затем освобождает оба эти ресурса;
Клерк Выписывает Вызов в су В
Рис. 3.40. Сеть Петри, представляющая начальные стадии гражданского процесса. (Из [186], авторское право Американской ассоциации юристов, отделение науки и технологии. Перепечатывается с разрешения.)
процесс 2 запрашивает устройство чтения с карт и диск, а затем освобождает устройство чтения с карт, запрашивает построчно печатающее устройство и в конце концов освобождает и построчно печатающее устройство, и диск;
процесс 3 требует все три ресурса одновременно, и затем все их освобождает.
Замечания к литературе
Большинство исследований по сетям Петри связано с анализом, а не с моделированием. Обзоры применений сетей Петри к моделированию появились в работах [238, 6]. Моделирование аппаратного обеспечения рассматривалось в [72, 132]. В работе [274] для реализации компилятора объединено моделирование аппаратного и программного обеспечения. Заметки [56] связаны с моделированием программных систем сетями Петри. В диссертационной работе Хэка [107] рассматривается моделирование производственных процессов, которые включают системы типа сборочных линий.
Баер и Эллис [22] использовали сети Петри для моделирования компилятора, а Ное [214] и Бест [36, 37] — для моделирования операционных систем. Ное и Кель [223] промоделировали аппаратное обеспечение вычислительной системы, Азема и др. [16, 17], Фу и Масгрэйв [83] предложили использовать сети Петри для автоматизации проектирования.
Исследования Ное и Натта главным образом направлены на моделирование систем для определения производительности. Их работы [214, 226, 227, 224] в конце концов привели к разработке модели Е-сетей, которая связана с сетями Петри.
Темы для дальнейшего изучения
Примените моделирование сети Петри для описания взаимодействия субатомных частиц в физике высоких энергий.
PERT-диаграммы обычно содержат информацию о времени событий. Исследуйте, каким образом можно добавить информацию о времени в сеть Петри. Как повлияет это на правила запуска? Предложите алгоритм для вычисления минимального (максимального) времени, требующегося для окончания процесса.
Выберите любую из следующих тем и исследуйте применение сетей Петри для моделирования по темам:
системы операций;
моделирование мозга;
химические реакции;
военный конфликт;
политические системы;
экономика (в особенности макроэкономические события);
транспортные потоки на дорогах и шоссе;
биологические популяции;
семантические сети для представления естественного языка.
АНАЛИЗ СЕТЕЙ ПЕТРИ
В предыдущей главе была продемонстрирована моделирующая мощность сетей Петри. С помощью сетей Петри можно моделировать широкий класс систем, представляя должным образом взаимодействие различных процессов, которые могут возникнуть. Наиболее сильны сети Петри при моделировании систем, включающих параллельные действия, причем параллельность моделируется естественным и удобным образом. Сети Петри можно использовать для представления и сообщения о проекте параллельной системы.
Однако само моделирование малополезно. Необходимо провести анализ моделируемой системы. Этот анализ, можно надеяться, приведет к глубокому проникновению в поведение моделируемой системы. Таким образом, мы подошли к необходимости рассмотрения методов анализа сетей Петри. Несколько методов анализа уже разработано, однако в области анализа сетей Петри существует еще много проблем. Для того чтобы лучше оценить разработанные методы анализа, рассмотрим прежде всего типы задач, которые требуют решения. Цель анализа сети Петри — получение ответа на вопрос о конкретной сети Петри. Какие же вопросы о сети Петри можно задать?
Задачи анализа сетей Петри
В публикациях по сетям Петри рассмотрены следующие свойства и вопросы. (Здесь мы определим и проиллюстрируем эти свойства, а во второй части главы приведем соответствующие методы анализа.)
Безопасность
Одно из важнейших свойств сети Петри, которая должна моделировать реальное устройство, — безопасность. Позиция сети Петри является безопасной, если число фишек в ней никогда не превышает 1. Сеть Петри безопасна, если безопасны все позиции сети.
Определение 4.1. Позиция Di^P сети Петри С= (Р, Т, I, О) с начальной маркировкой р является безопасной, если р'(Р <) ^ 1 для любой р' £ Р(С, р). Сеть Петри безопасна, если безопасна каждая ее позиция.
Безопасность — очень важное свойство для устройств аппаратного обеспечения. Если позиция безопасна, то число фишек в ней равно 0 или 1. Следовательно, позицию можно реализовать одним триггером.
В первоначальном определении сети Петри были безопасны, поскольку переход не мог быть запущен, если не все из выходных
позиций были пусты (а кратные дуги не были разрешены). Это объяснялось интерпретацией позиции как условия. Условие, будучи логическим высказыванием, либо истинно (представляется фишкой в позиции), либо ложно (представляется отсутствием фишки); кратные фишки не имеют никакой интерпретации. Таким образом, если интерпретировать сети как условия и события, маркировка каждой позиции должна быть безопасной.
Если позиция не является кратной входной или кратной выходной для перехода, ее можно сделать безопасной. К позиции рь которую необходимо сделать безопасной, добавляется новая позиция р'£. Переходы, в которых рг используется в качестве входной или выходной, модифицируются следующим образом:
Если pitl ^tj) и pi ^0(tj), тогда добавить p't к О(tj).
Если Pt tO kt з^ и PitHtj), тогда добавить p'. к Ц^\
Цель введения этой новой позиции р( — представить условие «pi пуста». Следовательно, pta pi дополнительны; pi имеет фишку, только если р\ не имеет фишки и наоборот. Любой переход, удаля-
Рис. 4.2. Безопасная сеть Петри, эквивалентная сети, приведенной на рис. 4.1.
ющий фишку из рь должен помещать фишку в р;, а всякий переход, удаляющий фишку из р^ должен помещать фишку в pt. Начальная маркировка также должна быть модифицирована для обеспечения того, чтобы точно одна фишка была либо в рь либо в р'.. (Мы допускаем, что начальная маркировка безопасна.) Заметим, что такая принудительная безопасность возможна только для позиций, которые в начальной маркировке являются безопасными и входная и выходная кратность которых равна 0 или 1 для всех переходов. Позиция, имеющая для некоторого перехода выходную кратность 2, будет получать при его запуске две фишки и, следовательно, не может быть безопасной. Простая сеть Петри на рис. 4.1 преобразована в безопасную, как показано на рис. 4.2.
Ограниченность
Безопасность — это частный случай более общего свойства ограниченности. Некоторые соображения относительно реального ограничения на аппаратную реализацию позиций позволяют прийти к заключению, что безопасность — необязательное требование. Безопасность позволяет реализовать позицию триггером, но в более общем случае можно использовать счетчик. Однако любой аппаратно-реализованный счетчик ограничен по максимальному числу, которое он может представить. Позиция является к-безопас- ной или ^ограниченной, если количество фишек в ней нс может превышать целое число к.
Определение 4.2. Позиция pt^P сети Петри С = (Р, Т, I, О) с начальной маркировкой р является к-безопасной, если ^'(р^ < к для всех р' ^ Р(С, р).
1-безопасная позиция называется просто безопасной. Заметим, что граница к' по числу фишек, которые могут находиться в позиции, может быть функцией от позиции (например, позиция р^ может быть 3-безопасной, тогда как позиция р^— 8-безопасной). Однако, если позиция pt ^-безопасна, то она также и //-безопасна для всех к' >- к. Поскольку число позиций конечно, можно выбрать к, равное максимуму из границ каждой позиции, и определить сеть Петри ^-безопасной, если каждая позиция сети ^-безопасна.
Иногда нас будет интересовать только то, является число фишек в позиции ограниченным или нет, а нс конкретное значение границы. Позиция называется ограниченной, если она /^-безопасна для некоторого к; сеть Петри ограниченна, если все ее позиции ограниченны. Ограниченную сеть Петри можно реализовать аппаратно, тогда как сеть Петри с неограниченными позициями в общем случае реализовать аппаратно нельзя. (Вспомним, что эти определения не зависят от интерпретации. В реализации позиция может представлять некоторый объект, являющийся ограниченным, хотя сама структура сети не отражает этот факт.)
Сохранение
Сети Петри можно использовать для моделирования систем распределения ресурсов. Например, сеть Петри может моделировать запросы, распределения и освобождения устройств ввода/вы- вода в вычислительной системе. В этих системах некоторые фишки могут представлять ресурсы. Группа из трех построчно печатающих устройств представляется позицией, имеющей в начальной маркировке три фишки. Запрос построчно-печатающего устройства — это переход, для которого данная позиция является входной; затем устройство освобождается переходом, для которого позиция построчно печатающих устройств является выходной.
Для сетей Петри такого типа помимо прочих важным свойством является сохранение. Нам бы хотелось показать, что фишки, представляющие ресурсы, никогда не создаются и не уничтожаются. Простейший способ сделать это — потребовать, чтобы общее число фишек в сети оставалось постоянным.
Определение 4.3. Сеть Петри С = (Р, Т, I, О) с начальной маркировкой р называется строго сохраняющей, если для всех 1>ЧК(С, р)
5 ^(а)= 5 (/?,).
Р;6Р Р^Р
Строгое сохранение — это очень сильное ограничение. Например, из него немедленно следует, что число входов в каждый переход должно равняться числу выходов, |/(t,)| = |О(О)1- Если бы это было не так, запуск перехода изменил бы число фишек в сети.
Однако для более общего представления о свойстве сохранения рассмотрим рис. 4.3. Изображенная на нем сеть Петри не является строго сохраняющей, поскольку запуск перехода t^ или ^2 уменьшит число фишек на 1, а запуск перехода ^или^ добавит фишку к маркировке. Мы можем тем не менее преобразовать эту сеть Петри в сеть на рис. 4.4, являющуюся строго сохраняющей.
Сеть Петри должна сохранять ресурсы, которые она моделирует. Однако взаимно однозначного соответствия между фишками и ресурсами нет. Фишка может представлять и один программный счетчик или какой-нибудь другой элемент и может представлять несколько ресурсов сразу. Во втором случае фишка позже используется для создания кратных фишек (по одной на ресурс) путем запуска перехода с большим числом выходов, чем входов. В общем следует определить взвешивание фишек. Взвешенная сумма для всех достижимых маркировок должна быть постоянной. Фишкам, не являющимся важными, можно присвоить вес 0; другим фишкам можно присвоить веса 1, 2, 3 или любое другое целое. (Допустимы рациональные веса, поскольку для определения целого взвешивания такое взвешивание можно умножить на общее кратное. Иррациональные веса не представляются необходимыми.)
Рис. 4.3. Сеть Петри, не являющаяся строго сохраняющей.
Рис. 4.4. Строго сохраняющая сеть Петри, эквивалентная сети, изображенной на рис. 4.3.
Фишка определяется ее позицией в сети, все фишки в позиции неразличимы. Следовательно, веса связываются с каждой позицией сети. Вектор взвешивания w = (шь ш2, ..., шп) определяет вес wt для каждой позиции pt^P.
Определение 4.4. Сеть Петри С = (Р, Т, I, О) с начальной маркировкой р называется сохраняющей по отношению к вектору взвешивания w, w — (tyb w2, ..., w^, п = |Р|, wt > О, если для всех р/ £ Р(С, р)
2 • р' ^ = 2 та, • р <piVi i
Строго сохраняющая сеть Петри является сохраняющей по отношению к вектору взвешивания (1, 1, ..., 1). Все сети Петри являются сохраняющими по отношению к вектору взвешивания (О, 0, ..., 0). Этот факт вносит в теорию некоторую нестройность, поскольку нам бы хотелось определить сеть Петри как сохраняющую, если она является сохраняющей по отношению к некоторому вектору взвешивания. Однако, так как всякая сеть Петри является сохраняющей по отношению к нулевому вектору, такое определение не является удовлетворительным. Таким образом, сеть Петри называется сохраняющей, если она сохраняющая по отношению к некоторому положительному ненулевому вектору взвешивания w > 0 (с положительными ненулевыми весами, wt > 0).
Сеть Петри с рис. 4.3 является поэтому сохраняющей, поскольку она сохраняющая по отношению к (1, 1, 2, 2, 1). Сеть Петри с рис. 4.5 не является сохраняющей.
Рис. 4.5. Несохраняющая сеть Петри.
Рис. 4.6. Распределение ресурсов для случая двух процессов (а и Ь) и двух ресурсов (7 (моделируется р^ и г (моделируется р5^.
Активность
Причиной рассмотрения сохранения в сети Петри было распределение ресурсов в операционной системе ЭВМ. Другая задача, которая может возникнуть при распределении ресурсов вычислительной системы — тупики. Тупики служат предметом многих исследований в области вычислительной техники [119]. Лучше всего иллюстрирует задачу простой пример. Рассмотрим систему, включающую два различных ресурса q и г и два процесса а и Ь. Если оба процесса нуждаются в обоих ресурсах, им необходимо будет совместно использовать ресурсы. Для выполнения этого потребуем, чтобы каждый процесс запрашивал ресурс, а затем освобождал его. Теперь предположим, что процесс а сначала запрашивает ресурс q, затем ресурс г и, наконец, освобождает и q, и г. Процесс сработает аналогично, но сначала запрашивает г, а затем q. Сеть Петри на рис. 4.6 иллюстрирует два процесса и распределение ресурсов между ними.
Начальная маркировка помечает ресурсы qtp^ и г(р5) доступными и указывает на готовность процессов а и Ь. Одним выполнением этой сети является t^t^t^t^t^t^ другим — Ш6Цг13. Ни одно из этих выполнений не приводит к тупику. Однако рассмотрим последовательность, которая начинается переходами /ь /4: процесс а обладает ресурсом q и хочет получить г, процесс b обладает г и хочет получить q. Система заблокирована; никакой процесс продолжаться не может.
Тупик в сети Петри — это переход (или множество переходов), которые не могут быть запущены. В сети Петри на рис. 4.6. тупик возникает, если нельзя запустить переходы /2 и ^5- Переход называется активным, если он не заблокирован (нетупиковый). Это не означает, что переход разрешен, скорее он может быть разрешенным. Переход t j сети Петри С называется потенциально допустимым в маркировке р, если существует маркировка р' g R^C, р), в которой t j разрешен. Переход активен в маркировке р, если потенциально запустим во всякой маркировке из ^(С, р). Следовательно, если переход активен, то всегда возможно перевести сеть Петри из ее текущей маркировки в маркировку, в которой запуск перехода станет разрешенным.
Существуют другие, связанные с активностью понятия, которые рассматривались при изучении тупиков [53]. Их можно разбить на категории по уровню активности и определить для сети Петри С с маркировкой р следующим образом:
Уровень 0: Переход t j обладает активностью уровня 0, если он никогда не может быть запущен.
Уровень 1:- Переход / у обладает активностью уровня 1, если он потенциально запустим, т. е. если существует такая р' £ R^C, у), что t3 разрешен в р'.
Уровень 2: Переход t j обладает активностью уровня 2, если для всякого целого п существует последовательность запусков, в которой tj присутствует по крайней мере п раз.
Уровень 3: Переход t j обладает активностью уровня 3, если существует бесконечная последовательность запусков, в которой tj присутствует неограниченно часто.
Уровень 4: Переход tj обладает активностью уровня 4, если для всякой р/ ё R(C, р) существует такая последовательность запусков о, что t j разрешен в 6(р', о).
Переход, обладающий активностью уровня 0, называется пассивным. Переход, обладающий активностью уровня 4, называется активным. Сеть Петри обладает активностью уровня i, если каждый ее переход обладает активностью уровня I.
В качестве примера, иллюстрирующего уровни активности, рассмотрим сеть Петри на рис. 4.7. Переход t0 не может быть запущен никогда; он пассивен. Переход t^ можно запустить точно один раз; он обладает активностью уровня 1. Переход /2 может быть запущен произвольное число раз, но это число зависит от числа
запусков перехода ^3. Если мы хотим запустить /2 пять раз, мы запускаем пять раз /3, затем t4 и после этого пять раз /2. Однако, как только запустится ^ (^ должен быть запущен до того, как будет запущен t^, число возможных запусков /2 станет фиксированным. Следовательно, /2 обладает активностью уровня 2, но не уровня 3. С другой стороны, переход /3 можно запускать бесконечное число раз, и поэтому он обладает активностью уровня 3, но не уровня 4, поскольку, как только запустится tt, t3 больше запустить будет нельзя.
Рис. 4.7. Сеть Петри, иллюстрирующая различные уровни активности.
Достижимость и покрываемость
Большинство задач, к которым мы до сих пор обращались, касаются достижимых маркировок. Задача достижимости является, по-видимому, наиболее простой (для формулировки).
Определение 4.5. Задача достижимости. Для данной сети Петри С с маркировкой р и маркировки (*' определить: р' £ R(C, р)?
Задача достижимости, быть может, основная задача анализа сетей Петри; многие другие задачи анализа можно сформулировать в терминах задачи достижимости. Например, для сети Петри с рис. 4.6 тупик может возникнуть, если достижимым является состояние (О, 1, 0, 0, 0, 0, 1, 0).
На рис. 4.8 показана сеть Петри, цель которой заключается в решении задачи о взаимном исключении, — предполагается, что позиции р4 и р9 будут взаимно исключающими. Мы хотим знать, является ли какое-либо состояние с р(р4) > 1 и р(р9) > 1 достижимым. Эта задача аналогична достижимости, но несколько отличается; она называется задачей покрываемости. Маркировка р" покрывает маркировку р/, если р" > р'.
Рис. 4.8. Представление сетью Петри «решения» Химана задачи о взаимном исключении [134]. Вследствие постоянного использования позиций к^, к\> Ь\ и ЬО они для удобства продублированы в графе, представляющей сеть. Все позиции, помеченные кО, являются одной позицией.
Определение 4.6. Задача покрываемосгши Для данной сети Петри С с начальной маркировкой р и маркировки у/ определить, существует ли такая достижимая маркировка р" С R(C, р), чтор" > р'.
В других возможных задачах типа достижимости могло бы игнорироваться содержимое некоторых позиций и приниматься во внимание сравнение или покрытие содержимого нескольких важных позиций. Например, в сети Петри на рис. 4.8 наш интерес ограничен позициями р4 и р9 — маркировка остальных позиций не важна. Таким образом, мы можем рассматривать достижимость и покрываемость «по модулю» множества позиций. Эти задачи называются задачами достижимости подмаркировки и покрываемости под маркировки.
Их можно еще более усложнить требованием, определить достижимость и покрываемость для множества маркировок, придя к задачам достижимости множества и покрываемости множества. Однако, если множество конечно, задачи можно решить обычно многократным решением задач достижимости и покрываемости для одной маркировки.
Последовательности запусков
Другой, предложенный к анализу подход основан не на позициях, а на последовательностях запусков переходов, т. е. связан с активностью, поскольку уместен вопрос: может ли переход быть запущен (иначе, не является ли он пассивным)? В более общем случае можно потребовать определить, возможна ли заданная последовательность запусков переходов или возможна ли какая-либо последовательность из множества последовательностей запусков. В сети Петри на рис. 4.8, например, взаимное исключение было бы нарушенным, если бы могла осуществиться последовательность /3/9 или /4/10, или, более общо, если бы могла возникнуть последовательность /3о/9, где о — произвольная последовательность запусков, не включающая /4. Эти вопросы анализа приводят к понятию языков сетей Петри и будут исследованы более детально в гл. 6.
Задачи эквивалентности и подмножества
Последний класс задач порожден соображениями оптимизации. Пусть сети Петри присуще некоторое поведение, определяемое ее множеством последовательностей запусков переходов или ее множеством достижимости. Можно ли изменить (оптимизировать) сеть Петри, не изменяя ее поведения? Изменение означает удаление пассивных переходов (которые никогда нельзя запустить), или пассивных позиций (которые никогда не могут быть маркированы), или переопределение некоторых переходов. Можно ли показать,
что две различные маркированные сети Петри с одинаковым числом переходов (но с различным числом позиций) будут порождать одинаковые последовательности запусков переходов или что две различные маркированные сети Петри с одинаковым числом позиций (но с различным числом переходов) будут порождать одно множество достижимости? Это позволило бы нам модифицировать сети Петри для увеличения параллелизма, уменьшения стоимости реализации или улучшения других оптимизируемых функционалов. <
В этих случаях мы затрагиваем проблему определения того, являются ли две сети Петри эквивалентными или является^ли одна из них подмножеством другой. Для точного определения понятия эквивалентности или включения необходимо быть особенно внимательным. Если мы определим эквивалентность как равенство множеств достижимости, тогда нельзя будет изменять число позиций, если потребуем равенства множеств последовательностей — нельзя будет изменять переходы. Поэтому определение задачи, которое мы дадим, исключительно важно.
Методы анализа
Задачи, которые были представлены здесь, являются наиболее общими, тем не менее существует множество других задач, решение которых может потребоваться для сетей Петри. Можно ли разработать методы анализа сетей Петри для решения этих задач? Причем нас интересуют особенно те методы, которые легко реализовались бы на ЭВМ, что важно для осуществления автоматического анализа моделируемых систем.
В этом разделе мы представим два основных метода анализа сетей Петри, которые описывают механизмы решения некоторых из уже перечисленных задач. Первый метод анализа, используемый для сетей Петри, — это дерево достижимости, второй метод связан с матричными уравнениями. Обсудим каждый из них.
Дерево достижимости
Дерево достижимости представляет множество достижимости сети Петри. Рассмотрим, например, маркированную сеть Петри на рис. 4.9. Начальная маркировка ее— (1, 0, 0). В этой начальной маркировке разрешены два перехода: tt и /2. Поскольку мы хотим рассмотреть все множества достижимости, определим новые вершины в дереве достижимости1' для (достижимых) маркировок, получающихся в результате запуска каждого из этих двух переходов. Дуга, помеченная запускаемым переходом, приводит из начальной маркировки к каждой из новых маркировок (рис. 4.10).
О Корневой (начальной) является вершина, соответствующая начальной маркировке. — Прим, перев.
Рис. 4.9. Маркированная сеть Петри, для которой строится дерево достижимости.Рис. 4.9. Маркированная сеть Петри, для которой строится дерево достижимости.дерева достижимости.дерева достижимости.(1.2,0)(1.2,0)Рис. 4.11. Второй шаг построения дерева достижимости.Рис. 4.11. Второй шаг построения дерева достижимости.
Рис. 4.9. Маркированная сеть Петри, для которой строится дерево достижимости.
Рис. 4.9. Маркированная сеть Петри, для которой строится дерево достижимости.
дерева достижимости.
дерева достижимости.
(1.2,0)
(1.2,0)
Рис. 4.11. Второй шаг построения дерева достижимости.
Рис. 4.11. Второй шаг построения дерева достижимости.
Это (частичное) дерево показывает все маркировки, непосредственно достижимые из начальной маркировки.
Теперь необходимо рассмотреть все маркировки, достижимые из новых маркировок. Из маркировки (1, 1,0) можно снова запустить tv (получая 1, 2, 0) и /2 (получая (0, 2, 1)); из (0, 1, 1) можно запустить /3 (получая (0, 0, 1)). Это порождает дерево, изображенное на рис. 4.11. Начиная с трех новых маркировок, необходимо повторить этот процесс, порождая новые маркировки, которые нужно
Рис. 4.10. Первый шаг построения
ввести в дерево, как показано на рис. 4.12. Заметим, что маркировка (0, 0, 1) пассивная; никакой переход в ней не является разрешенным, поэтому никакие новые маркировки из этой пассивной маркировки в дереве порождаться не будут. Кроме того, необходимо отметить, что маркировка (0, 1, 1), порождаемая запуском t3 в (0, 2, 1), была уже порождена непосредственно из начальной
маркировки запуском t2.
Если эту процедуру повторять снова и снова, каждая достижимая маркировка окажется порожденной. Однако получившееся
Рис. 4.12. Третий шагРис. 4.12. Третий шагпостроения дерева достижимости.построения дерева достижимости.
Рис. 4.12. Третий шаг
Рис. 4.12. Третий шаг
построения дерева достижимости.
построения дерева достижимости.
дерево достижимости может оказаться бесконечным. Будет порождена каждая маркировка из множества достижимости, поэтому для любой сети Петри с бесконечным множеством достижимости соответствующее дерево также должно быть бесконечным. Даже сеть Петри с конечным множеством достижимости может иметь бесконечное дерево (рис. 4.13). Дерево представляет все возможные последовательности запусков переходов. Всякий путь в дереве, начинающийся в корне, соответствует допустимой последовательности переходов. Для превращения дерева в полезный инструмент анализа необходимо найти средства ограничения его до конечного размера. (Заметим, что если какое-то представление бесконечного множества конечно, то бесконечное множество маркировок должно отображаться в такое представление. В общем случае это приведет к потере информации и, возможно, к тому, что некоторые свойства сетей Петри определить будет нельзя, но все зависит от того, как представление было получено.)
Приведение к конечному представлению осуществляется несколькими способами. Нам необходимо найти те средства, которые ограничивают введение новых маркировок (называемых граничными вершинами) на каждом шаге. Здесь могут помочь пассивные маркировки — маркировки, в которых нет разрешенных переходов. Эти пассивные маркировки называются терминальными вершинами. Другой класс маркировок — это маркировки, ранее
встречавшиеся в дереве. Такие дублирующие маркировки называются дублирующими вершинами; никакие последующие маркировки рассматривать нет нужды — все они будут порождены из места первого появления дублирующей маркировки в дереве. Таким образом, в дереве на рис. 4.12 маркировка (0, 1, 1), получившаяся
(1,0)
I-
(0, I) I-- (1,0)
I-
(0, 1)
I-
(1,0)
I-
Рис. 4.13. Простая сеть Петри с бесконечным деревом достижимости.
в результате выполнения последовательности t^t^t^ не будет порождать какие-либо новые вершины в дереве, поскольку она ранее встречалась в дереве в результате выполнения последовательности 4 из начальной маркировки.
Для сведения дерева достижимости к конечному представлению используется еще одно средство. Рассмотрим последовательность запусков переходов о, начинающуюся в начальной маркировке р и кончающуюся в маркировке р', р' > р. Маркировка р/ совпадает с маркировкой р, за исключением того, что имеет некоторые «дополнительные» фишки в некоторых позициях, т. е. р' = р + (р' — — р) и (р' — ф)>0. Теперь, поскольку на запуски переходов лишние фишки не влияют, последовательность о можно запустить снова, начиная в р', приходя к маркировке р". Так как действие последовательности переходов о добавило р' — р фишек к маркировке р, она добавит также р' — р фишек и к маркировке р', поэтому р" = р' + (р' — р) или р" = р + 2(р' — р). В общем можно запустить последовательность о п раз, получив в результате маркировку р + п(р' — р). Следовательно, для тех позиций, которые увеличивают число фишек последовательностью о, можно создать произвольно большое число фишек, просто повторяя последовательность о столько, сколько это нужно. В сети Петри на
рис. 4.9, например, можно запустить переход ^ столько раз, сколько необходимо для того, чтобы получить произвольное число фишек в /?2.
Представим бесконечное число маркировок, получающихся из циклов такого типа, с помощью специального символа со, который обозначает «бесконечность». Для любого постоянного а определим о) 4" а = о),а<о),
о) — а — О), СО ^ О).
Для построения дерева достижимости необходимы только эти операции над (о.
Теперь можно точно сформулировать действительный алгоритм построения дерева достижимости. Каждая вершина / дерева связывается с расширенной маркировкой цШ; в расширенной маркировке число фишек в позиции может быть либо неотрицательным целым, либо со. Каждая вершина классифицируется или как граничная вершина, терминальная вершина, дублирующая вершина, или как внутренняя вершина. Граничными являются вершины, которые еще не обработаны алгоритмом; алгоритм превратит их в терминальные, дублирующие или внутренние вершины.
Алгоритм начинает с определения начальной маркировки корнем дерева, т. е. граничной вершиной. До тех пор пока имеются граничные вершины, они обрабатываются алгоритмом.
Пусть х — граничная вершина, которую необходимо обработать.
Если в дереве имеется другая вершина у, нс являющаяся граничной, и с ней связана та же маркировка, р(х] = р[у], то вершина х — дублирующая.
Если для маркировки р(х] ни один из переходов не разрешен (т. е. 6(р[х], t j) не определено для всех t j С Т), то х — терминальная вершина.
Для всякого перехода t j g Т, разрешенного в ц [х] (т. е. 6(р,[х], tj) определено), создать новую вершину z дерева достижимости. Маркировка p[z], связанная с этой вершиной, определяется для каждой позиции pt следующим образом:
Если p[x]f = со, то p[z]f = to.
Если на пути от корневой вершины к х существует вершина у с р[у] < 6 (р[х], t^ и p[y]f< 6 (р,[х], 1^, то p,[z]f = со.
В противном случае pJzh = ё(р[х], t ^г.
Дуга, помеченная /,, направлена от вершины х к вершине г. Вершина х переопределяется как внутренняя, вершина г становится граничной.
Когда все вершины дерева — терминальные, дублирующие или внутренние, алгоритм останавливается.
На рис. 4.14 представлено дерево достижимости для сети Петри на рис. 4.9. Дерево достижимости сети Петри с рис. 4.15 изображено на рис. 4.16.
Рис. 4.14. Дерево достижимости сети Петри, приведенной из рис. 4.9.
Рис. 4.15. Сеть Петри, для которой строится дерево достижимости.
Очень важным свойством алгоритма построения дерева достижимости является то, что он заканчивает работу. Для доказательства этого мы должны показать, что алгоритм не может создавать новые граничные вершины бесконечно. Доказательство основано на трех леммах.
Лемма 4.1. В любом бесконечном направленном дереве, в котором всякая вершина имеет только конечное число непосредственно
(1,0,1,0)
г.з
(1,0,0,1)
Г2
^2
(Lg>,L0)'
Рис. 4.16. Дерево достижимости сети Петри, изображенной на рис. 4.15.
последующих вершин, существует бесконечный путь, исходящий из корня.
Доказательство. Начнем с корня в вершине х0. Поскольку имеется только конечное число непосредственно следующих за х0 вершин, но общее число вершин в дереве бесконечно, по крайней мере одна из непосредственно следующих за х0 вершин должна быть корнем бесконечного поддерева. (Если бы все поддеревья с корнями, непосредственно следующими за х0, были конечными, то и дерево с корнем х0 было бы конечным.) Выберем вершину хь непосредственно следующую за х0 и являющуюся корнем бесконечного поддерева. Теперь одна из непосредственно следующих за ней вершин также является корнем бесконечного поддерева, выберем в качестве такой вершины х2. Продолжая таким же образом, получим бесконечный путь в дереве х0, хь х2, ... . □
Лемма 4.2. Всякая бесконечная последовательность неотрицательных целых содержит бесконечную неубывающую подпоследовательность.
Доказательство. Возможны два случая:
Если какой-либо элемент последовательности встречается бесконечно часто, то пусть х0 является таким элементом. Бесконечная подпоследовательность х0, х0, х0, ... является бесконечной неубывающей подпоследовательностью.
Если никакой элемент не встречается бесконечно часто, тогда всякий элемент встречается только конечное число раз. Пусть х0 — произвольный элемент последовательности. Существует самое большее х0 целых, неотрицательных и меньших, чем х0 (О,..., х0—1), причем каждый из них присутствует в последовательности только конечное число раз. Следовательно, продвигаясь достаточно долго по последовательности, мы должны встретить элемент хь %1 > х0. Аналогично должен существовать в последовательности х2, *2 > *ь и т- Д- Это определяет бесконечную неубывающую подпоследовательность х0, хь х2... •
В обоих случаях бесконечная неубывающая последовательность существует. □
Лемма 4.3. Всякая бесконечная последовательность п-векторов над расширенными неотрицательными целыми (неотрицательные целые плюс символ со) содержит бесконечную неубывающую под- п ос л едовател ьн ость.
Доказательство. Доказываем индукцией по п, где п — размерность векторного пространства.
Базовый случай (n = 1). Если в последовательности имеется бесконечное число векторов (со), то они образуют бесконечную неубывающую последовательность. В противном случае бесконечная последовательность, образованная удалением конечного числа векторов (со), имеет по лемме 4.2 бесконечную неубывающую подпоследовательность.
Индуктивное предположение. (Допустим, что лемма верна для п, докажем ее справедливость для n+ 1.) Рассмотрим первую координату. Если существует бесконечно много векторов, имеющих в качестве первой координаты со, тогда выберем эту бесконечную подпоследовательность, которая не убывает (постоянна) по первой координате. Если только конечное число векторов имеют со в качестве первой координаты, то рассмотрим бесконечную последовательность целых, являющихся значениями первых координат. По лемме 4.2 эта последовательность имеет бесконечную неубывающую подпоследовательность. Она определяет бесконечную подпоследовательность векторов, которые не убывают по своей первой координате.
В любом случае мы имеем последовательность векторов, неубывающих по первой координате. Применим индуктивное предположение к последовательности n-векторов, которая получается в результате отбрасывания первой компоненты п + 1-векторов. Полученная таким образом бесконечная подпоследовательность является неубывающей по каждой координате. □
Докажем следующую теорему.
Теорема 4.1. Дерево достижимости сети Петри конечно.
Доказательство. Доказательство проводим от противного. Допустим, что существует бесконечное дерево достижимости. Тогда 4-562
по лемме 4.1 в нем имеется бесконечный путь х0, хь х2, ..., исходящий из корня х0. (Число вершин, следующих за каждой вершиной в дереве, ограничено числом переходов т.) Тогда р[х0], и[х1Ъ иЫ?---— бесконечная последовательность n-векторов над N U {со}, а по лемме 4.3 она имеет бесконечную неубывающую подпоследовательность p[xtJ ^ ^[^J ^ |^[^J... . Но по построению мы не можем иметь p[xj = и[%Л, поскольку тогда одна из вершин была бы дублирующей и не имела следующих за собой вершин. Следовательно, мы имеем бесконечную строго убывающую последовательность ц[х^]< ц[^1]< ••• • Но по построению, так как p[xj< < ц[х7], нам следовало бы заменить по крайней мере одну компоненту р[хг], не являющуюся со, на со в ц[х7]. Таким образом, p[xzj имеет по крайней мере одну компоненту, являющуюся со, p[xtJ имеет по крайней мере две со-компоненты, а [Дх^] имеет по крайней мере п со-компонент. Поскольку маркировки n-мерные, р[х^] имеет во всех компонентах со. Но тогда ц[х£/г+1] не может быть больше l1^]- Пришли к противоречию, что доказывает, что наше допущение относительно существования бесконечного дерева достижимости неверно. □
Построение дерева достижимости было впервые описано Карпом и Миллером [148]. Используемый здесь вариант алгоритма был предложен Келлером [150]. Доказательство конечности, данное здесь, взято у Хэка [111], который принял за основу доказательство Карпа и Миллера [148].
Дерево достижимости — очень полезный инструмент анализа сетей Петри. В последующих разделах мы покажем, как его можно использовать для решения некоторых задач, представленных в разд. 4.1.
Безопасность и ограниченность
Сеть Петри безопасна, если число фишек в каждой позиции не может превысить 1; сеть Петри ограниченна, если существует такое целое к, что число фишек в любой позиции не может превысить к. Оба этих свойства можно проверить с помощью дерева достижимости. Сеть Петри ограниченна тогда и только тогда, когда символ со отсутствует в ее дереве достижимости. Присутствие символа со в дереве достижимости означает, что число фишек потенциально не ограничено; существует последовательность запусков переходов, которую можно повторить произвольное число раз, увеличивая количество фишек до произвольно большого числа. Таким образом, если имеется символ со, сеть неограниченна. Кроме того, положение символа со показывает, какие позиции неограниченны.
Обратное утверждение также является верным, если сеть Петри неограниченна, то число достижимых маркировок бесконечно. По-
(1,0, 0, 0)(1,0, 0, 0)(О, 1,0,0)(О, 1,0,0)(0,0, 1,0)(0,0, 1,0)(О, 1, 1,0)(О, 1, 1,0)(О, 0, 1,0)(О, 0, 1,0)
(1,0, 0, 0)
(1,0, 0, 0)
(О, 1,0,0)
(О, 1,0,0)
(0,0, 1,0)
(0,0, 1,0)
(О, 1, 1,0)
(О, 1, 1,0)
(О, 0, 1,0)
(О, 0, 1,0)
(О, 0, 2, 0)
(О, 0,0, 1)
(1,0, 0, 0)
Рис. 4.17. Определение ограниченности для сети Петри с помощью дерева достижимости.
скольку дерево достижимости конечно, бесконечное число достижимых маркировок отражает присутствие символа со.
Если сеть Петри ограниченна и символ со отсутствует в дереве достижимости, то сеть Петри представляет систему конечных состояний. Дерево достижимости, по существу, является графом состояний и будет содержать вершину, соответствующую всякой достижимой маркировке. Это позволяет решить вопросы анализа простым перебором и проверкой конечного множества всех достижимых маркировок. Например, чтобы определить границу для заданной позиции, нужно построить дерево достижимости и найти наибольшее значение компоненты маркировки, соответствующей этой позиции.
4*
Найденное значение является границей числа фишек для заданной позиции. Если граница для всех позиций равна 1!), сеть безопасна.
На рис. 4.17 демонстрируется использование дерева достижимости для определения ограниченности.
Отметим, что по дереву достижимости даже для сетей Петри, не являющихся ограниченными (вследствие неограниченности некоторой позиции), можно определить границы для тех позиций, которые являются ограниченными. Таким образом, дерево достижимости позволяет эффективно решить задачи анализа сетей Петри по определению ограниченности и безопасности для отдельных позиций и целых сетей.
Сохранение
Сеть Петри является сохраняющей, если она не теряет и не порождает фишки, а просто передвигает их. Поскольку две фишки можно закодировать как одну фишку, которая позже вызовет запуск перехода, создающего две фишки, значение фишки в каждой позиции определяет вектор взвешивания, веса неотрицательны. Сеть Петри является сохраняющей по отношению к вектору взвешивания, если взвешенная сумма фишек постоянна для всех достижимых маркировок. .
Свойство сохранения эффективно проверяется с помощью дерева достижимости. Так как дерево достижимости конечно, для каждой маркировки можно вычислить взвешенную сумму. Если сумма одинакова для каждой достижимой маркировки, сеть — сохраняющая по отношению к данному весу. Если суммы не равны, сеть — несохраняющая.
При оценке сохранения необходимо быть внимательным с символом со. Если маркировка имеет со в качестве маркировки позиции pt, тогда для того, чтобы сеть была сохраняющей, вес этой позиции должен быть равным 0. Напомним, что символ со представляет бесконечное множество значений. Так как все веса неотрицательны, вес должен равняться либо нулю (тем самым означая, что число фишек в данной позиции не важно), либо быть положительным. Если вес положителен, то сумма будет разной для двух маркировок, различающихся в своей со-компоненте. Следовательно, если какая-либо маркировка с ненулевым весом равна со, сеть — несохраняющая.
Эти рассуждения относятся к сохранению по отношению к определенному взвешиванию. Сеть Петри является сохраняющей, если она сохраняющая по отношению к некоторому вектору w, Wt > 0. Дерево достижимости можно использовать для определения того, является сеть сохраняющей или нет, путем нахождения вектора весов w (если он существует). Заметим прежде всего, что для того,
О Точнее, не превышает 1. — Прим, перев.
чтобы сеть Петри была сохраняющей по отношению к положительному вектору весов, она должна быть ограниченной. Как было указано выше, неограниченная позиция должна иметь нулевой вес, что недопустимо в сети с положительным вектором весов. (Если мы хотим допустить нулевые компоненты, нужно просто установить веса всех неограниченных позиций равными нулю и рассматривать после этого только оставшиеся компоненты.) Теперь, если сеть сохраняющая, существуют взвешенная сумма, обозначим ее s, и вектор весов w = (^, w^ ..., wKY Для каждой маркировки р[х] дерева достижимости имеем
Wi * И № + ^2 * И Иг + — + Wn • р [x]n = S.
Это равенство определяет для к вершин дерева достижимости совокупность из к линейных уравнений с п + 1 неизвестными. Добавим к ним ограничения: Wi > 0, i = 1, ..., п, в результате чего определим ограничения для вектора весов.
Решение этой системы линейных уравнений — хорошо известная задача, имеющая множество алгоритмов решения. Можно рассматривать ее как задачу линейного программирования или просто как систему линейных уравнений. В любом случае, если решение существует, оно будет вычислено. (Решения, получаемые этими методами, будут, как правило, рациональными, не целыми, но веса можно умножить на общее кратное для получения целого решения.)
Если ограничения, накладываемые на веса, являются чрезмерно жесткими и, следовательно, вектора взвешиваний не существует, это будет определено. В любом случае можно определить, является или нет сеть Петри сохраняющей, и если это так, получить вектор весов.
Покрываемость
Последняя задача, которую можно решить с помощью дерева достижимости, — задача покрываемое™. В задаче покрываемос- ти мы хотим для данной маркировки р/ определить, достижима ли маркировка р" > р'. Данная задача решается проверкой дерева достижимости. Строим для начальной маркировки р, дерево достижимости. Затем ищем любую вершину х с р[х] > р\ Если такой вершины не существует, маркировка р' не покрывается никакой достижимой маркировкой; если она найдена, р[х] дает достижимую маркировку, покрывающую р'.
Путь от корня к покрывающей маркировке определяет последовательность переходов, которые приводят из начальной маркировки к покрывающей маркировке, а маркировка, связанная с этой вершиной, определяет покрывающую маркировку. Символ со вновь должен рассматриваться как обозначение бесконечного множества значений. Если компонента покрывающей маркировки — со, то в пути от корня к покрывающей маркировке имеется «цикл». Для
увеличения соответствующей компоненты с тем, чтобы она была не меньше, чем в данной маркировке, необходимо достаточное число раз повторить этот цикл.
Заметим, что, если несколько компонент покрывающей маркировки равны со, между изменениями маркировки, получающимися в результате прохождения циклов, возможна взаимосвязь. Рассмотрим сеть Петри на рис. 4.18 и се дерево достижимости, показанное на рис. 4.19. Согласно проведенному анализу, маркировка (0, 14, 1, 7) покрывается в множестве достижимости. Путь, порождающий покрывающую маркировку, состоит из некоторого числа переходов /ь за которыми следует переход /2, после которого уже следует некоторое число переходов t^. Задача заключается в определении того, сколько раз нужно запустить переходы t^ и /3. Так как мы хотим иметь в позиции р2 14 фишек, а ^ помещает в р2 одну фишку, попытаемся
(1, 0,0,0)(1, 0,0,0)( 1, GJ, 0, 0)( 1, GJ, 0, 0)(1, со, 0, 0)(1, со, 0, 0)(0, 0, 1, 0)(0, 0, 1, 0)(0, со, 1,0)(0, со, 1,0)
(1, 0,0,0)
(1, 0,0,0)
( 1, GJ, 0, 0)
( 1, GJ, 0, 0)
(1, со, 0, 0)
(1, со, 0, 0)
(0, 0, 1, 0)
(0, 0, 1, 0)
(0, со, 1,0)
(0, со, 1,0)
(0, со, L са)
гз
(0, со, 1, со)
Рис. 4.19. Дерево достижимости для сети Петри, приведенной на рис. 4.18.
выполнить 14 tv Однако нам необходимо выполнить 7/3, а каждый запуск /3 удаляет из р^ фишку, поэтому в действительности необходимо выполнить не менее 21/ь затем /2 и после этого не менее 7/3 (выполнить /3 такое число раз, чтобы в позиции р^ осталось не менее 14 фишек). Карп и Миллер [148] предложили алгоритм, определяющий минимальное число запусков переходов, необходимых для покрытия данной маркировки.
Ограниченность дерева достижимости
Как видим, дерево достижимости можно использовать для решения задач безопасности, ограниченности, сохранения и покры- ваемости. К сожалению, в общем случае его нельзя использовать
Рис. 4.20. Сеть Петри, дерево достижимости которой представлено на рис. 4.22.
Рис. 4.21. Вторая сеть Петри, дерево достижимости которой представлено на рис. 4.22. Сеть Петри, изображенная на рис. 4.20, имеет в позиции pi только четное число фишек, тогда как эта сеть Петри допускает для pi произвольную маркировку.
для решения задач достижимости и активности, а также для определения возможной последовательности запусков. Решение этих задач ограничено существованием символа со. Символ со означает потерю информации; конкретные количества фишек отбрасываются, учитывается только существование их большого числа.
(1,0, 1,0) h(1,0. О, 1)(1,0, 1,0) h(1,0. О, 1)
(1,0, 1,0) h
(1,0. О, 1)
(1,0, 1,0) h
(1,0. О, 1)
(L со, 1,0)(L со, 1,0)Рис. 4.22. Дерево достижимости для сетей Петри, приведенных на рис. 4.20 и 4.21.
(L со, 1,0)
(L со, 1,0)
Рассмотрим, например, сети Петри на рис. 4.20 и 4.21, дерево достижимости которых изображено на рис. 4.22. Одно-дерево достижимости представляет эти две схожие (но различные) сети Петри. Множества же достижимости их нс совпадают. В сети Петри на рис. 4.20 число фишек в позиции р^ всегда четно (пока нс будет запущен переход /J, тогда как в сети Петри на рис. 4.21 оно может быть произвольным целым. Символ со не позволяет обнаруживать информацию такого рода, препятствуя использованию дерева достижимости для решения задачи достижимости.
Аналогичная трудность существует и для задачи активности. На рис. 4.23 и 4.24 приведены две сети Петри, дерево достижимости которых изображено на рис. 4.25. Однако сеть на рис. 4.23 может иметь тупик (например, в результате последовательности 1^1^ а сеть Петри с рис. 4.24 — нет. Дерево достижимости же вновь не может передать различие этих двух случаев.
Заметим, что хотя дерево достижимости нс обязательно содержит достаточную информацию для решения задач достижимости и активности, тем нс менее в некоторых случаях это бывает возможно. Сеть, дерево достижимости которой содержит терминальную вершину (вершину, не имеющую исходящих дуг), нс активна (поскольку некоторая достижимая маркировка не имеет последующих маркировок). Аналогично маркировка р/ в задаче достижимости может встретиться в дереве достижимости, и если это так, то она достижима. Кроме того, если маркировка не покрывается некоторой вершиной дерева достижимости, то она недостижима.
Рис. 4.24. Сеть Петри, в которой тупик невозможен. Эта сеть активна, хотя ее дерево достижимости (рис. 4.25) идентично дереву достижимости неактивной сети Петри, приведенной на рис. 4.23.
Рис. 4.25. Дерево достижимости сетей Петри, изображенных на рис. 4.23 и 4.24.
Эти условия достаточны для решения некоторых задач достижимости и активности, но они не решают эти задачи в общем. Следовательно, для решения этих двух задач необходимы другие подходы.
Упражнения
Постройте деревья достижимости для маркированных сетей, представленных на рис. 4.1 и 4.2.
Напишите программу для ЭВМ, осуществляющую построение дерева достижимости по описанию сети Петри и начальной маркировке.
Большинство формулировок алгоритма построения дерева достижимости позволяет классифицировать вершину как дублирующую только в том случае, если идентичная вершина встретилась на пути от корня к этой вершине. Следовательно, подобные вершины, принадлежащие разным поддеревьям и представляющие одну маркировку, будут продолжать обрабатываться алгоритмом. Эта модификация!) увеличивает размер поддерева, но алгоритм закончит работу, даже если дублирующие маркировки находятся в том же поддереве, что и первая маркировка. Докажите, что разрешение дублирующим маркировкам быть в разных поддеревьях не вызовет в дереве потерю какой- либо маркировки.
Матричные уравнения
Второй подход к анализу сетей Петри основан на матричном представлении сетей Петри. Альтернативным по отношению к определению сети Петри в виде (Р, Т, /, О) является определение двух матриц D" и D\ представляющих входную и выходную функции. (Они эквивалентны функциям F и В определения Хэка сетей Петри, см. разд. 2.6.) Каждая матрица имеет иг строк (по одной на переход) и п столбцов (по одному на позицию). Определим D"\j, /] = = #(Pf, /(G)), а D^ [/, t] = #<Рь ° V^Y D" определяет входы в переходы, D+ — выходы.
Матричная форма определения сети Петри (Р, Т, D”, /)+) эквивалентна стандартной форме, используемой нами, но позволяет дать определения в терминах векторов и матриц. Пусть е[/] — /n-вектор, содержащий нули везде, за исключением /-й компоненты. Переход tj представляется /n-вектором ф*].
Теперь переход tj в маркировке ц разрешен, если ц > ^[/] • D", а результат запуска перехода t j в маркировке ц записывается как
8(^1, /,-) = 'ц — е [/] • ГУ + е [/] • D* =
= Р + <?[/] • (— ТУ + ГУ) = ^ + е [/] • D, где D=D^—D* — составная матрица изменений.
Тогда для последовательности запусков переходов о tjttja ...
L имеем
JR
8(и, а) = 8(ц, tu,=
= ^ + ^[/11 • D -У е [/2] • D + • • • + 6 [/д] • D =
= И + (е ГЛ] + е [/2] + • • • + е [/J) • D = ц + /(а) • D.
Вектор /(о) = ef/t] + ^[/2] + ••• + Ф*ь] называется вектором запусков последовательности ^///2...^,. *-й элемент вектора /(а), f(o)t — эт0 число запусков перехода ti в последовательности tj^j^... ... t^. Вектор запусков, следовательно, является вектором с неотрицательными целыми компонентами. (Вектор /(а) — это отображение Париха последовательности [229].)
Для того чтобы показать полезность такого матричного подхода к сетям Петри, рассмотрим, например, задачу сохранения: является ли данная маркированная сеть Петри сохраняющей? Для того чтобы показать сохранение, необходимо найти (ненулевой) вектор взвешивания, для которого взвешенная сумма по всем достижимым маркировкам постоянна. Пусть w— п X 1 — вектор-столбец. Тогда, если р — начальная маркировка, ар' — произвольная достижимая маркировка, необходимо, чтобы р • w = р' • w. Теперь, поскольку р' достижима, существует последовательность запусков переходов о, которая переводит сеть из р в р'. Поэтому
р' = 8 (р, о) = р + /(о) • D.
Следовательно, р • w = р' • w = (р + До) • D) • w = р- w + + /(о) • D • w, поэтому /(or) • D • w = 0.
Поскольку это должно быть верно для всех /(о), имеем
D • w = 0.
Таким образом, сеть Петри является сохраняющей тогда и только тогда, когда существует такой положительный вектор о/, что D • w = 0. Это обеспечивает простой алгоритм проверки сохранения, а также позволяет получать вектор взвешивания w.
Развитая матричная теория сетей Петри является инструментом для решения проблемы достижимости. Предположим, что маркировка р' достижима из маркировки р. Тогда существует последовательность (возможно, пустая) запусков переходов о, которая приводит из р к р'. Это означает, что /(о) является неотрицательным целым решением следующего матричного уравнения для х:
р' = р + х • D.(4-1)
Следовательно, если р' достижима из р, тогда уравнение* (4-1) имеет решение в неотрицательных целых; если уравнение (4-1) не имеет решения, тогда р' недостижима из р.
Матрицы D" и D* имеют вид:
[1 1 10"
D- = 0 0 0 1 ,
0 0 1 о] ’
"1 0 0 0"
О+= 0 2 1 0 ,
[0 0 0 1]
а матрица D;
[0 —1 —10"
D = 0 +2 +1 —1 .
00—1+1
В начальной маркировке р = (1, 0, 1, 0) переход /3 разрешен и
приводит к маркировке р', где
Рассмотрим, например, маркированную сеть Петри на рис. 4.26.
ГО —1 —101
+ 1
О +2О ОО +2О О—1+ 1—1+ 1p'=(L 0, 1, 0) + (0, О, 1).p'=(L 0, 1, 0) + (0, О, 1).—1—1= (1, О, 1, 0) + (О, 0,-1, + 1) =(1, О, 0, 1).
О +2
О О
О +2
О О
—1
+ 1
—1
+ 1
p'=(L 0, 1, 0) + (0, О, 1).
p'=(L 0, 1, 0) + (0, О, 1).
—1
—1
= (1, О,= (1, О,1, 0)+(1,2, 2).1, 0)+(1,2, 2).ГОГООООО— 1—1 О"+ 2 +1 -10—1 + 1— 1—1 О"+ 2 +1 -10—1 + 1Последовательность а = t3t2t3t2ti представляется вектором запусков /(о) = (1, 2, 2) и получает маркировку р':
= (1, О,
= (1, О,
1, 0)+(1,2, 2).
1, 0)+(1,2, 2).
ГО
ГО
О
О
О
О
— 1—1 О"
+ 2 +1 -1
0—1 + 1
— 1—1 О"
+ 2 +1 -1
0—1 + 1
= (1, 0, 1, 0) + (0, 3, — 1, 0) = (1, 3, 0, 0).
Рис. 4.26. Сеть Петри, иллюстрирующая метод анализа, основанный на матричных уравнениях.Рис. 4.26. Сеть Петри, иллюстрирующая метод анализа, основанный на матричных уравнениях.
Рис. 4.26. Сеть Петри, иллюстрирующая метод анализа, основанный на матричных уравнениях.
Рис. 4.26. Сеть Петри, иллюстрирующая метод анализа, основанный на матричных уравнениях.
Для определения того, является ли маркировка (1, 8, 0, 1) достижимой из маркировки (1, 0, 1, 0), имеем уравнение
(1, 8, 0, 1) = (1, 0, 1, 0) + х •(1, 8, 0, 1) = (1, 0, 1, 0) + х •ГО — 1ГО — 1
(1, 8, 0, 1) = (1, 0, 1, 0) + х •
(1, 8, 0, 1) = (1, 0, 1, 0) + х •
ГО — 1
ГО — 1
(0, 8, — 1, 1) = х-(0, 8, — 1, 1) = х-0—1—1 о 0 +2 + 1 —1 О 0—1+10—1—1 о 0 +2 + 1 —1 О 0—1+1
(0, 8, — 1, 1) = х-
(0, 8, — 1, 1) = х-
0—1—1 о 0 +2 + 1 —1 О 0—1+1
0—1—1 о 0 +2 + 1 —1 О 0—1+1
которое имеет решение х = (0, 4, 5). Это соответствует последовательности О —■ ^з ^2^3 ^2^3 ^2^3 ^2^3*
Далее мы можем показать, что маркировка (1, 7, 0, 1) недостижима из маркировки (1, 0, 1, 0), поскольку матричное уравнение
не имеет решения.
Матричный подход к анализу сетей Петри очень перспективен, но имеет и некоторые трудности. Заметим прежде всего, что матрица D сама по себе не полностью отражает структуру сети Петри. Переходы, имеющие как входы, так и выходы из одной позиции (петли), представляются соответствующими элементами матриц D~ и D, но затем взаимно уничтожаются в матрице D = D+ — D". Это отражено в предыдущем примере позицией pv и переходом tv
Другая проблема — это отсутствие информации о последовательности в векторе запуска. Рассмотрим сеть Петри на рис. 4.27. Предположим, мы хотим определить, является ли маркировка (0, 0, 0, 0, 1) достижимой из (1, 0, 0, 0, 0). Тогда имеем уравнение
1
0
2
0
1
0
0
0
0"
0
0
0
1
0
0
(0, 0, 0, 0, 1)=(Ь 0, 0, 0, 0) + х-
0
— 1
0
1
0
0
2
0
0
— 1
0
0
— 1
— 2
1
Это уравнение не имеет однозначного решения, но сводится к множеству решений (о|/(о) = (1, х^ х6— 1, 2х6, хй— 1, х6)}. Оно
Рис. 4.27. Другая сеть Петри, служащая для иллюстрации матричного анализа.
определяет взаимосвязь между запусками переходов. Если положим х6 = 1 и х2 = 1, то /(а) = (1, 1, 0, 2, О, 1), но этому вектору запуска соответствуют как последовательность /1/2/4/4/6, так и последовательность /1/4/2/4/6. Следовательно, хотя и известно число запусков переходов, порядок их запуска неизвестен.
Еще одна трудность заключается в том, что решение уравнения (4-1) является необходимым для достижимости, но недостаточным. Рассмотрим простую сеть Петри, приведенную на рис. 4.28. Если мы хотим определить, является ли (0, 0, 0, 1) достижимым из (1, 0, 0, 0), необходимо решить уравнение
Г—1 +1 —1 01 (0,0,0, 1)=(1, о, о, 0) + н<7). п
Рис. 4.28. Сеть Петри, показывающая, что решение матричного уравнения— необходимое, но недостаточное условие для решения задачи достижимости.
Это уравнение имеет решение /(о) = (1, 1), соответствующее двум последовательностям: t^ и t4 v Но ни одна из этих двух последовательностей переходов невозможна, поскольку в (1,0, 0, 0) ни /ь ни /2 не разрешены. Таким образом, решения уравнения (4-1) недостаточно для доказательства достижимости.
Возможность недействительных решений уравнения (4-1) (решений, которые нс соответствуют возможным последовательностям переходов) стала причиной только ограниченного исследования матричного представления сетей Петри. Лучшее исследование этого подхода проведено Муратой [206, 208, 209].
Замечания к литературе
В публикациях Хольта и др. [128] и Хольта и Коммонера [127] определены некоторые из первых задач анализа сетей Петри — активность и безопасность, которые продолжают считаться основными задачами анализа. Активность изучалась Коммонером [53], Лаутенбахом [167] и Льсном [173]. Келлер [150] вместе с другими задачами рассматривал также и активность. Льсн [173] определил задачу сохранения.
Карп и Миллер [128] впервые описали построение дерева достижимости и доказали его конечность. Задачи покрываемое™ и достижимости были определены ими как если бы это были задачи эквивалентности и включения. Последние задачи явились предметом изучения в [26]. В [213] дана краткая формулировка задачи достижимости. Хэк [111] рассмотрел большинство этих задач вместе и показал, как дерево достижимости можно использовать для решения некоторых из них.
Матричный подход рассматривался Питерсоном [236], но, как оказалось, возможности его ограничены. Мурата, имеющий большую квалификацию в линейной алгебре, достиг чуть большего в этом подходе в [210, 206, 212, 208, 209].
Темы для дальнейшего изучения
Рассмотрите построение нс дерева, а графа достижимости. Если вершина х порождает последующую вершину г с p[z] = p[z/] для некоторой нсграничной вершины у, просто введите помеченную соответствующим образом дугу из х и у. Заметим, что путь из корня в вершину перестает быть единственным. Опишите алгоритм построения графа достижимости, покажите, что он сходится, и исследуйте его свойства, сравнивая с алгоритмом построения дерева достижимости.
Дерево достижимости нельзя использовать для решения проблемы достижимости вследствие потери информации, порождаемой символом со. Он вводится, когда мы приходим к маркировке р/ и на пути от корня к ц' имеется такая маркировка р,, что р/ > р,. В этом
случае можно получить все маркировки вида р + и(р' — р). Ис* следуйте возможность использования выражения а + b • пг вместо со, для того чтобы представить значения компонент. Если вы сможете определить дерево достижимости, в котором все векторы маркировок представляются выражениями, тогда решение задачи достижимости определяется просто решением системы уравнений.
Обобщите определение сохранения, разрешая отрицательные веса. Что можно было бы считать разумной интерпретацией отрицательного веса? Является ли разрешимой задача определения сохранения сети Петри, если разрешены отрицательные веса?
Разработайте с помощью матричного подхода к анализу алгоритм определения ограниченности сети Петри [61].
Основная проблема матричного анализа—отсутствие информации о последовательности и существование недействительных решений. Однако задача достижимости является самой существенной для сетей Петри, поэтому важно показать, что она разрешима, даже если решения вычислительно дороги. Если задача разрешима, можно будет искать более эффективные методы решения, но сначала необходимо показать, что метод решения существует.
Для обоснования этого обозначим через 2у сумму вектора запуска / по всем компонентам. Иначе говоря, если / = (Д> /2» /т)» то 5у = fi + /2 + ... + fm. Далее, если существует последовательность о, переводящая сеть Петри из маркировки р в маркировку р', тогда уравнение (4-1) имеет решение, являющееся вектором запуска /(о) для о. Последовательность о можно определить из вектора запуска /(а) простым перебором всех возможных последовательностей длины 2 ;(а), стараясь, чтобы каждая из них 1) была действительной и 2) приводила от р к р'. Для сети Петри с т переходами возможно самое большое ms/ последовательностей длины Sy. На самом деле это число можно сократить. Поскольку нам известно, сколько раз запускается переход tv (j^, сколько раз запускается /2(/2) и т- Д-, то необходимо проверять нс более чем 2у! возможных упорядочений из Д запусков перехода tb ^ запусков перехода /2 и т- Д-
Это, казалось бы, обеспечивает процедуру решения задачи определения, является ли р' достижимой из р. Сначала решаем матричное уравнение р' = р + / • D. Если решения нс существует, р' недостижима из р. Если решение / существует, проверяем все 2у! возможных упорядочений переходов. Если какая-нибудь из этих последовательностей действительна, то р' достижима из р, и мы имеем последовательность переходов, переводящую из р в р'.
Имеется только одно препятствие. Решение / может быть не однозначным, а (бесконечным) множеством векторов запусков, представленным множеством выражений (как показано выше для примера анализа сети Петри на рис. 4.27). Для определения возможности доказательства достижимости в этом случае необходимы исследования. В простейшем случае может оказаться, что или все решения
представляются выражением вектора запуска, соответствующим действительным решениям, или ни одно. В этом случае мы просто выбираем любое решение и выполняем описанную процедуру проверки всех возможных упорядочений. Более вероятно, однако, что некоторые решения будут работать, тогда как другие — нет. Так как мы не можем испытать все решения (из, возможно, бесконечного множества их), необходимы исследования, для того чтобы можно было определить, какие решения необходимо проверять.
СЛОЖНОСТЬ И РАЗРЕШИМОСТЬ
В четвертой главе было представлено множество задач теории сетей Петри. Эти задачи касаются различных свойств структуры и поведения сетей Петри.
Были представлены и два метода решения: подход дерева достижимости и подход матричных уравнений. Эти методы позволяют определить свойства безопасности, ограниченности, сохранения и покрываемости для сетей Петри. Кроме того, установлены необходимые условия для достижимости. Однако эти методы анализа недостаточны для решения некоторых других задач, в частности активности, достижимости и эквивалентности. В этой главе мы изучим эти задачи с целью или найти их решения, или по крайней мере узнать больше о свойствах сетей Петри.
Сводимость задач анализа
Мы будем использовать фундаментальное понятие сводимости [146]. Решение задачи подразумевает сведение ее к другой задаче, способ решения которой уже известен. В предыдущей главе, например, задача определения того, является ли сеть Петри сохраняющей, сводилась к решению системы линейных уравнений. Задача решения системы линейных уравнений в свою очередь сводится к определенной последовательности арифметических операций (сложение, вычитание, умножение, деление и сравнение). Таким образом, поскольку арифметические операции выполнить можно, сохранение может быть определено.
Другой пример связан с задачей равенства и задачей подмножества для множеств достижимости.
Определение 5.1. Задача равенства. Выполняется ли для двух данных маркированных сетей Петри Ci = (Рь 7Ь /ь Oi) с маркировкой р! и С2 = (Р2, 72, /2, О2) с маркировкой р2 равенство R^C^ Pl) — R(C2, р2)?
Определение 5.2. Задача подмножества. Выполняется ли для двух данных маркированных сетей Петри Ci = (Pi, 7Ь /ь OJ с маркировкой р! и С2 — (Р^ Т^, /2, О2) с маркировкой р2 соотношение R^C^ ^Р(С2, р2)?
Эти задачи могут оказаться очень важными для определения, является ли сеть Петри оптимизируемой или сравнимы ли сети двух систем. Заметим, что если можно найти решение задачи, подмножества, то задача равенства также решается. Если необходимо
определить, выполняется ли R(Cb p-i) = R(C2, Н2), мы сначала применим алгоритм решения задачи подмножества для определения, выполняется ли R(Ctl p-Js R(C2, р2), а затем применим тот же алгоритм для определения, выполняется ли R(C2l р2)г R(Cb Pi). R(Cb pi) = R(C2, p2) тогда и только тогда, когда R(Cb Pi) £ R(C2, p2) и R(C2, p2)— R(Cb Pi)- Таким образом, задачу равенства можно свести к задаче подмножества.
При рассмотрении задач анализа и сводимости важно принимать во внимание следующие два соображения. Во-первых, пытаясь найти решение, необходимо учитывать возможность того, что задача нс имеет метода решения, т. с. неразрешима. Во-вторых, если метод решения существует, мы должны оценить его стоимость: как много времени и памяти требуется для решения? Для того чтобы применение сетей Петри расширялось, задачи анализа должны решаться, а алгоритмы, осуществляющие решение, должны быть не слишком дороги в смысле времени и памяти ЭВМ.
Сводимость играет большую роль для обеих из указанных проблем. Сводимость задач обычно используется для того, чтобы показать, разрешима ли задача или неразрешима. Наш подход к теории разрешимости [69, 200] основан главным образом на работах Тьюринга и его модели вычислений — машине Тьюринга. Значение машины Тьюринга состоит в том, что она служит разумным представлением вычислительной машины, и можно показать1), что не существует алгоритма, который бы решал определенные проблемы машины Тьюринга, в частности проблему остановки. На основе этого был найден ряд неразрешимых задач. И важность этой теории— в том, что невозможно создать программу для ЭВМ, которая бы решала эти задачи. Следовательно, для целей практического анализа необходимо избежать этих неразрешимых задач, иначе вопросы анализа не получат ответа.
(Здесь важно подчеркнуть, что неразрешимые задачи порождают вопросы, на которые нс просто нет ответа, но его и не может бить. Вопросы, на которые нет ответа, еще могут его получить; это значит, что ответ еще никто не нашел, но он существует. Известным примером является большая теорема Ферма: имеет ли решение уравнение хп + уп = zn для п > 2 в классе целых чисел х, у, г? Этот вопрос не получил ответа,но он его имеет. Ответом служит либо"да", либо "нет". Одним способом получения ответа на вопрос является поиск чисел х, у, хип, удовлетворяющих условиям теоремы. Другим будет доказательство (логический вывод) того, что таких х, у, х и п нс существует. Никто еще не сделал этого.
Однако предположим, что задача неразрешима. Тогда невозможно было бы определить, существуют ли х.у.х и п, решающие уравнение. Это означало бы, что мы не могли логически вывести их несуществование из аксиом математики и не могли получить х^у,
О Для некоторых задач, разумеется. — Прим, перев.
2 и п, которые были бы решением уравнения. Но если мы не можем получить х, у, z и п, тогда они не должны существовать. Если же они существуют, мы можем найти их с помощью ЭВМ. Но если х, у, г и п не существуют, ответом на вопрос будет «нет», и, следовательно, мы разрешили его. Это противоречит нашему предположению о том, что вопрос неразрешим, следовательно, он разрешим.)
Теперь допустим, что задача А сводима к задаче В: конкретную задачу А можно перевести в конкретную задачу В. Если задача В разрешима, то разрешима и задача Л, а алгоритм решения задачи В можно применить к решению задачи А. Конкретную задачу А можно решить, преобразуя ее в конкретную задачу В и применяя к ней алгоритм решения задачи В. Таким образом, если задача А сводится к задаче В и задача В разрешима, то разрешима и задача А.
Обратное также верно: если задача А сводится к задаче В и задача А неразрешима, то неразрешима и задача В; если бы задача В была разрешима,то описанная выше процедура была бы методом решения задачи А, что противоречит ее неразрешимости. Эти два факта положены в основу большинства методов определения разрешимости. Для того чтобы показать, что задача разрешима, сводят ее к задаче, известной как разрешимая; а для того чтобы показать, что задача неразрешима, сводят к ней задачу, которая известна как неразрешимая.
Мы также будем широко использовать этот подход для сокращения объема работы, которую нам необходимо выполнить. Например, вследствие того, что задача равенства для множеств достижимости сводится к задаче подмножества, мы хотим найти либо 1) процедуру решения задачи подмножества, либо 2) доказательство того, что задача равенства неразрешима. Если мы сможем выполнить 1), то будем иметь метод решения обеих задач, если выполним 2), будем знать, что обе задачи неразрешимы.
В некоторых случаях мы сможем достичь даже большего. Две задачи называются эквивалентными, если они взаимно сводимы. Другими словами, задача А эквивалентна задаче В, если задача А сводится к задаче В, а задача В сводится к задаче А. В этом случае или обе задачи разрешимы, или обе неразрешимы, и мы можем рассматривать любую из них. (Заметим, что в общем случае это1) неверно. Например, если бы мы показали, что задача подмножества для множеств достижимости неразрешима, это не сказало бы нам ничего о разрешимости или неразрешимости задачи равенства.)
Второе соображение по исследованию задач анализа заключается в том, что если метод решения существует, то он должен быть разумно эффективным. Это означает, что количества времени и памяти, требуемые алгоритмом для решения конкретной задачи, не должны быть чрезмерными. Исследование стоимости выполнения алгоритма — это часть теории сложности. Теория сложности имеет дело
О То есть то, что можно работать с любой задачей. — Прим, персе.
с количествами времени и памяти, необходимыми для решения задачи. Очевидно, что количества времени и памяти не постоянны, а изменяются в зависимости от размерности решаемой задачи. Для сетей Петри временные и емкостные затраты будут, по-видимому, функцией от числа позиций и переходов. Другими факторами, влияющими на время и память, будут число фишек в начальной маркировке и число входов и выходов для каждого перехода и позиции (число дуг в графе).
Требуемые время и память будут изменяться от одной задачи к другой. Поэтому оценки сложности алгоритма могут быть даны для наилучшего случая (нижняя граница) или наихудшего случая (верхняя граница). Поскольку не известно, относится данный пример задачи к наилучшему или наихудшему случаю, обычно принимается наихудший случай, и сложность алгоритма — это временные и емкостные затраты в худшем случае как функция от размерности задачи.
Анализ сложности касается главным образом сложности задачи, а не конкретных деталей реализации какого-либо частного алгоритма. Поэтому в теории сложности игнорируются константы. Сложность задачи размерности п определяют порядком п2 или 2\ или п log п, допуская меньшие члены и постоянные сомножители. Особенно важны два общих класса алгоритмов: имеющих полиномиальную сложность (п, п?, п log п, п8 и т. д.) и имеющих неполиномиальную сложность (в частности, экспоненциальную, 2^, и факториальную, nV).
Анализ сложности обычно применяют к конкретным алгоритмам, но его можно применить также и к общим задачам. В этом случае определяется нижняя оценка сложности из всех алгоритмов, решающих задачу. Это обеспечивает значение сложности, не зависящее от алгоритма, и, кроме того, может оказаться полезным в доказательстве того, что данный алгоритм оптимален (с точностью до константы), и в определении случаев, когда дальнейшая работа может привести к лучшему алгоритму решения задачи. Например, хорошо известно, что сортировка п чисел имеет сложность п log п. Следовательно, алгоритмы сложности п log п нельзя значительно улучшить (в асимптотически худшем случае).
При определении сложности может быть полезно сведение одной задачи к другой. Если задачу А можно свести к задаче В и В имеет сложность fB(n), то сложность А —это, самое большее, сложность В плюс стоимость преобразования из А в В (помня, что в результате перевода размерность задачи может измениться.) Сложность преобразования является, как правило, константой или линейной функцией и поэтому часто игнорируется. Следовательно, сведение задачи А к задаче В дает или верхнюю границу сложности А (если известна сложность В), или нижнюю границу сложности В (если известна сложность А). Используя снова в качестве примера задачи равенства и подмножества, получаем, что объем вычисле-
ний, необходимый для решения задачи равенства, не больше чем удвоенный объем вычислений для задачи подмножества. Поскольку здесь участвует постоянный сомножитель, сложность задачи подмножества должна совпадать со сложностью задачи равенства.
Эти два свойства задач анализа сетей Петри — разрешимость и сложность — имеют первостепенную важность для использования сетей Петри. В этой главе представляются некоторые известные результаты. Один из используемых методов — сведение одной задачи анализа Петри к другой.
Задачи достижимости
Задача достижимости — одна из самых важных задач анализа сетей Петри. Она до сих пор еще не решена для различных вариаций се определения. Были поставлены следующие четыре задачи достижимости для сети Петри С = (Р, Т, /, О) с начальной маркировкой р.
Определение 5.3. Задача достижимости. Выполняется ли для данной р': р' g R (С, р)?
Определение 5.4. Задача достижимости подмаркировки. Для подмножества Р' ^ Р и маркировки р' существует ли р" 6 R^C, р), такая, что р"(Рг) = р' (Рд Для всех Pt Q Р'?
Определение 5.5. Задача достижимости нуля. Выполняется ли р' С R(C, р), где р'(рО = 0 для всех рг £ Р? (О £ Р^С. р)?).
Определение 5.6. Задача достижимости нуля в одной позиции. Для данной позиции pt £ Р существует ли р' g R(C, р) с р'^О = О?
Задача достижимости подмаркировки ограничивает задачу достижимости до рассмотрения только подмножества позиций, не принимая во внимание маркировки других позиций. Задача достижимости нуля выясняет, является ли достижимой частная маркировка с нулем фишек во всех позициях. Задача достижимости нуля в одной позиции выясняет, возможно ли удалить все фишки из данной позиции.
Хотя эти четыре задачи различны, все они эквивалентны. Определенные взаимосвязи очевидны сразу. Задача достижимости нуля сводится к задаче достижимости; просто в задаче достижимости устанавливается р' = 0. Аналогично задача достижимости сводится к задаче достижимости подмаркировки путем установки Р' = Р. Задача достижимости нуля в одной позиции сводится к задаче достижимости подмаркировки установкой Р' = ^РА и р' = 0. Сложнее показать, что задача достижимости подмаркировки сводится к задаче достижимости нуля и что задача достижимости нуля
сводится к задаче достижимости нуля в одной позиции. Все множество взаимосвязей представлено на рис. 5.1.
Сначала покажем, что задача достижимости подмаркировки сводится к задаче достижимости нуля. Пусть даны сеть Петри Cv = = (^ь Ть 1^ Oi) с начальной маркировкой рь подмножество Р' ^ е ?! и маркировка р/. Мы хотим узнать, существует ли р" G R(Cb pi) с p'(P?) = иЧрО для всех pt^P'. Наш подход
- Задача достижимости
Рис. 5.1. Сводимость задач достижимости. Дуга от одной задачи к другой означает, что первая сводится ко второй.
заключается в построении новой сети Петри С2 = кР^ Т^ /2, 02) с начальной маркировкой р2, такой, что маркировка р" £ R(C^ pi) с р'(Рг) = рЧрО для всех pt £ Р' существует тогда и только тогда, когда 0gP(C2, р2).
Построение С2 из Ci осуществляется исключительно просто. Начнем с С2, совпадающей с Ср Для того чтобы позволить всякой позиции pt вне Р' стать пустой, введем переход ti с входом {/?,} и пустым выходом. Этот переход можно запускать всякий раз, когда в pt имеются фишки, чтобы изъять их, что позволяет достичь нулевой маркировки и тем самым игнорировать такие позиции.
Относительно pt в Р' необходимо иметь уверенность, что в pt ТОЧНО р'(Рг) фишек. Для ЭТОГО построим новые ПОЗИЦИИ Pi для каждой Pi^P' с начальной маркировкой рЧ^О фишек и переход ti с входом ^Pi, pt} и пустым выходом. Если в Pi точно p'(Pi) фишек, то этот переход можно запустить точно р'(Рг) раз, сокращая маркировки рг и р^ до нуля. Если число фишек в рг отлично от p4pt), т0 переход t\ можно запустить только минимальное из двух маркировок число раз, и поэтому либо в рг, либо в pt останутся фишки, препятствующие достижению нулевой маркировки.
Рис. 5.2. Сеть Петри, служащая для доказательства сводимости задачи достижимости подмаркировки к задаче достижимости нуля. Подмножество позиций Р' будет иметь маркировку р/ в первоначальной сети тогда и только тогда, когда в модифицированной показанным здесь способом сети будет достижима нулевая маркировка.
Два типа вводимых переходов иллюстрируются на рис. 5.2. Формально определим С2 следующим образом:
^2 = -PiU!A|Pi€^'},
г2 = Ли{<р^Р1},
= Л Vj) Для tj Tvдля PtiP'’
= (Pi, Р'Д для Pi ЕР',O^t^O^ для ^ETvО2(<)={ )для/?гёР1,с начальной маркировкой:
Р2 (Pi) = Hl (Pi)> PiEPV
р2(^) = р'(Рд, PtEP'-
Теорема 5.1. Задача достижимости подмаркировки сводится к задаче достижимости нуля.
Доказательство. Покажем, что для сети Петри С2, построенной из Ci вышеописанным способом, О С R(C2l р2) тогда и только тогда, когда р" £ Р(СЬ pf) с р"(рг) = p'(Pt) Для всех Pt € Р'•
Для того чтобы показать, что 0 6 Rt^, р2) тогда и только тогда, когда существует р" е 7?(СЬ рО с р"(А) = Р-Ч/^г) Для Pt € Р\ допустим сначала, что р" присутствует в R(Ci, р4). Тогда в С2 также можно достичь маркировки р" в позициях Pi € Pt запуском только переходов из Tt. Сейчас для каждой позиции Pi^P' можно запустить it точно р'(Рг) раз, сокращая маркировку и pi, и р/ до нуля. Затем можно запустить // для каждой р, 8 Р' столько раз, сколько необходимо для приведения маркировки этих позиций к нулю, поэтому О С R(C2, р2).
Теперь предположим, что 0 g R(C4, р2); тогда существует последовательность запусков переходов а, переводящая р2 в 0. Эта последовательность будет содержать точно р'(рг) запусков f г для Pi ё Р' (для удаления фишек из pt') и некоторое число запусков tt для р, i Р*. Заметим, что запуски этих переходов только удаляют фишки из Ci, и поскольку 6(р', /у) определено там, где определено б(р, t j) для р' > р (лишние фишки не могут повредить запуску переходов), последовательность а после удаления из нее всех запусков tt останется действительной и будет приводить к маркировке р" с точно р'(рг) фишками в р{ для pt ё Р'. Таким образом, если 0 ё R(C2, р2), то р" £ R(Ct, pt) с р"(рг) = р'(рг) Для Pi^P'. □
Наша следующая задача — показать, что задача достижимости нуля сводится к задаче достижимости нуля в одной позиции. Доказательство этого утверждения также основано на вспомогательном построении. Пусть дана сеть Петри Ct = (Рь Т^ It, OJ с начальной маркировкой рь мы хотим определить, выполняется ли 0 £ ё R(Ct, pi). Построим из Ct новую сеть Петри С2 с дополнительной позицией s(P2 = Pt U {s}), такой, что маркировка р' g R(C2, р2) с p'(s) = 0 существует тогда и только тогда, когда 0 £ R(Cb pj.
Построение С2 определяет s так, что всякий раз число фишек в s равно сумме числа фишек в позициях С^ Следовательно, если p'(s) = 0, то в позициях Ct нет фишек, и наоборот. Определим начальную маркировку р2 следующим образом:
Нг(Рд = MPi) Для Pt ^Pv
Hz(s) = 5 Pi(A-)-
р^р1
Далее для каждого перехода t, g Tt в С2 будет тот же переход, но с добавленными дугами к позиции s. Определим
dj = 2 (# (А, О tf^ - # ^,1 VjW-
P^Pt
Тогда dj — это разность числа фишек после запуска перехода tj и числа фишек до запуска tj. Теперь, если dj>0, то d j фишек должно быть добавлено в позицию s, поэтому введем dj дуг из 13 в s, если d j< 0, то удалим —dj фишек из s введением —dj дуг из s в tj.
Если dj> 0, то #(s, /(G)) = 0, #($, O(tj)) = dj.
Если dj< 0, то #(s, 7(G)) = — dj, #(s, ОО = 0.
Если dj = 0, то #(s, /(/J) - 0, #(s, OO = 0.
При таком построении любая последовательность запусков переходов, приводящая Ci к маркировке 0, приведет С2 к маркировке р/ с p'(s) = 0 (а также ^(Рг) = 0), и наоборот.
Теорема 5.2. Задача достижимости нуля сводится к задаче достижимости нуля в одной позиции.
Доказательство. Формальное доказательство, основанное на описанной конструкции, оставляем читателю. □
На основе этих двух теорем и очевидных выводов можно заключить следующее:
Теорема 5.3. Следующие задачи достижимости эквивалентны: 1. Задача достижимости.
Задача достижимости нуля.
Задача достижимости подмаркировки.
Задача достижимости нуля в одной позиции.
Эти теоремы и их доказательства принадлежат главным образом Хэку [116].
Сети Петри с ограничениями
В первых работах по сетям Петри, а также в некоторых современных работах сети Петри определяются в несколько более ограниченной форме, чем в определении, данном в гл. 2. В частности, иногда принимаются следующие два ограничения:
Ограничение 5.1. Кратность любой позиции равна 0 или 1. Иначе говоря, #(рь /(G)) ^ I и ЖРь 0(h)) ^ 1 Для всех Pi ^ ^ и tj € € Т. Это ограничивает входные и выходные комплекты до множеств.
Ограничение 5.2. Никакая позиция не может быть одновременно входом и выходом одного и того же перехода. /(G) П 0(G) = 0. Это часто формулируется как #(рг-, /(G)) • #(Рь O(t J) = 0 для всех pt и tj.
Сети Петри, удовлетворяющие ограничению 5.1, называются ординарными. Сети Петри, удовлетворяющие ограничению 5.2, называются сетями Петри без петель, или нерефлексивными сетями. Сети Петри, удовлетворяющие обоим ограничениям, назы-
ваются простыми сетями Петри^. Эти классы сетей Петри соотг носятся так, как показано на рис. 5.3.
Подклассы модели обычных сетей Петри рассматривались по нескольким причинам. Основная причина заключается в том, что введение понятий сетей Петри в начале развития теории было неформальным. Необходимость в кратных дугах и петлях при моделировании тогда отсутствовала. Кроме того, вероятно, казалось,
Обычные сети Петри
Ординарные сети Петри(без кратных дуг)Ординарные сети Петри(без кратных дуг)Сети Петри без петельСети Петри без петельПростые сети Петри(без кратных дуг и петель)Простые сети Петри(без кратных дуг и петель)
Ординарные сети Петри(без кратных дуг)
Ординарные сети Петри(без кратных дуг)
Сети Петри без петель
Сети Петри без петель
Простые сети Петри(без кратных дуг и петель)
Простые сети Петри(без кратных дуг и петель)
Рис. 5.3. Взаимосвязи между классами сетей Петри. Дуга означает включение; дуги сводимости будут ориентированы в противоположном направлении.
что теория без этих усложнений будет проще. По мере развития теории стало ясно, что работать с более общими определениями не труднее. Использование моделей с этими ограничениями в современных работах объясняется стремлением исследователя к более простому и лаконичному изложению.
Однако эти ограничения не добавляют ничего к способности анализировать сети Петри. Рассмотрим для этих классов сетей задачу достижимости. Для того чтобы показать эквивалентность всех четырех классов сетей Петри, докажем следующее:
Теорема 5.4. Задача достижимости эквивалентна для следующих классов сетей Петри:
Обычные сети Петри.
Ординарные сети Петри.
Сети Петри без петель.
Простые сети Петри.
Доказательство. Из определений очевидны следующие сведения: 1. Задача достижимости для ординарных сетей Петри сводится к задаче достижимости для обычных сетей Петри.
Задача достижимости для сетей Петри без петель сводится к задаче достижимости для обычных сетей Петри.
О По аналогии с подобным понятием в теории графов. — Прим. ред.
Задача достижимости для простых сетей Петри сводится и к задаче достижимости для ординарных сетей Петри, и к задаче достижимости для сетей Петри без петель.
Покажем, что обычные сети Петри можно преобразовать в простые сети Петри таким образом, чтобы свести задачу достижимости для обычных сетей Петри к задаче достижимости для простых сетей Петри. Это покажет, что все четыре задачи достижимости эквивалентны.
Для преобразования обычной сети Петри в простую сеть Петри используем следующий подход. Каждая позиция в обычной сети Петри заменяется кольцом позиций в простой сети Петри. На рис. 5.4 показан общий вид кольца позиций. Заметим, что набор фишек, помещенных в кольцо, может свободно двигаться по кольцу к любой позиции в любой момент времени; все они могут сгруппироваться в позиции р1Л или равномерно распределиться, покрывая все kt позиций кольца. Поэтому переход, для запуска которого необходимы три фишки из позиции рь может выбрать вместо всех трех из pt по одной из р^ р^ и р^. Аналогично переход, использующий pi в качестве входа и в качестве выхода (петля), может иметь вход в р1Л, а выход в pt^ тем самым устраняя петлю.
Формально для обычной сети Петри Сх = (Рь Л, Л, 0^ с маркировкой р! определим простую сеть Петри С2 = \Р^ Т^ 1^ 0^ с маркировкой р2 следующим образом. Сначала для каждой позиции Pi^Pi определим целое к г
kt = max (# VPt> I (G)) + # (p., 0(1^.
Сеть Петри с ограничениями С2 определяется
^2 ~ Vpi> h | Pi C Pp I ^ h ^ kiY
^2 = ^iU V^u APi, h €^2}-
Входная и выходная функции для «нормальных» переходов определяются так, что
(Р/, к9 ^2((;)) — { о,(Р/, к9 ^2((;)) — { о,если I ^ h ^ # kPv Ц (/,)),если I ^ h ^ # kPv Ц (/,)),в противном случае;в противном случае;
(Р/, к9 ^2((;)) — { о,
(Р/, к9 ^2((;)) — { о,
если I ^ h ^ # kPv Ц (/,)),
если I ^ h ^ # kPv Ц (/,)),
в противном случае;
в противном случае;
# ( PiA* ^ ^^ —# ( PiA* ^ ^^ —О, в противном случае;О, в противном случае;1, если # (р^ I1(tj))<h^ #(ph Л(/>)) + + #(Л, 01
# ( PiA* ^ ^^ —
# ( PiA* ^ ^^ —
О, в противном случае;
О, в противном случае;
а для «кольцевых» переходов
^2 ( А — I Pi, А 9
O^t.^ = \Pi,An = 1 + (A(mod^))}-
Маркировка р2 определяется следующим образом: ^(Pi. I.) = Ма) для Pt £рр
Нг (Р(, А) = 0 для А > 1.
Рис. 5.4. Кольцо позиций, используемое в простой сети Петри для представления позиции обычной сети Петри. Число к^ позиций, представляющих позицию р^ определяется максимумом сумм кратностей позиции.
Для любой маркировки р, достижимой в С^ по построению существует такая маркировка р' в С2, что
TiV^Pi, h) = v-(Pi') для всех pt ^Pv h
в частности, в любой момент времени в С2 можно переместить все фишки из pi^ в pi)X. Следовательно, можно определить маркировку р' следующим образом:
^(^i. 1) = И (а) для Pi^Pp
P4Pi.h) = О ДЛЯ А> 1,
и р' становится достижимой в простой сети Петри С2 тогда и только тогда, когда р достижима в Cv □
Таким образом, с точки зрения анализа обычные сети Петри и три ограниченных класса обычных сетей Петри — ординарные сети Петри, сети Петри без петель и простые сети Петри — эквивалентны, всякую сеть можно преобразовать в подобную сеть другого класса, сводя задачу достижимости для одной сети к задаче достижимости для другой. Использованные в этом разделе конструкции принадлежат Хэку [111].
Рис. 5.5. Сводимость задачи достижимости среди классов сетей Петри с различными типами ограничений.
Активность и достижимость
Достижимость — важная задача сетей Петри. Другой задачей, получившей много внимания в публикациях по сетям Петри, является активность. Как отмечено в разд. 4.1.4, активность связана с тупиками. Мы коснемся здесь двух задач, связанных с активностью сети Петри С = (Р, 7, /, О) с начальной маркировкой р. Сеть Петри активна, если активен всякий ее переход. Переход tj активен в маркировке р, если для всякой маркировки р' £ Р(С, р) существует последовательность о, такая, что tj разрешен в б(р', о). Переход t j пассивен в маркировке р, если не существует достижимой маркировки, в которой бы он мог быть запущен.
Определение 5. 7. Задача активности. Активны ли все переходы
Определение 5. 8. Задача активности одного перехода. Активен ли данный переход t, ^Т?
Очевидно, что задача активности сводится к задаче активности одного перехода. Для нахождения решения задачи активности мы просто решим задачу активности одного перехода для каждого t j С € 7; если |7| = т, то мы должны решить т задач активности одного перехода.
Задачу достижимости можно также свести к задаче активности. Поскольку варианты задачи достижимости эквивалентны, мы рассмотрим задачу достижимости нуля в одной позиции. Если перед нами стоят какие-либо другие задачи достижимости, их можно свести, как показано в разд. 5.2, к задаче достижимости нуля в одной позиции. Теперь, если мы хотим определить, может ли быть позиция рг нулевой в какой-либо достижимой маркировке для сети Петри С, = (Рр Тр /ь OJ с начальной маркировкой рь то построим сеть Петри С2 = (Р2, ^2, Л, О2) с начальной маркировкой р2, которая будет активна тогда и только тогда, когда нулевая маркировка не будет достижима из рР
Сеть Петри С2 строится из Ci введением двух позиций t\ и г2 и трех переходов sb s2 и s3. Сначала модифицируем все переходы Ть включая гх в качестве входа и выхода. Начальная маркировка р2 будет включать фишку в rv Позиция rv — это позиция «действия», пока фишка остается в гь переходы Тх могут запускаться. Следовательно, любая маркировка, достижимая в Ср достижима также и в позициях Рх в С2. Определим переход Sj так, что его входом будет гь а выход пуст. Это позволяет удалить фишку из г^ запрещая запуск всех переходов в Т{ и «замораживая» маркировку Pv (Заметим, что все переходы Тх находятся в конфликте и не только по определению, но и по построению могут запускаться каждый раз не более чем по одному.)
Позиция гх и переход St позволяют сети Ci достичь любой достижимой маркировки, затем запуском Si заморозить сеть в этой маркировке. Далее необходимо проверить, является ли позиция pi нулевой. Введем новые позицию г2 и переход s2, имеющий в качестве входа pi, а в качестве выхода г2. Если pt может когда-либо стать нулевой, то этот переход не является активным. В действительности вся сеть будет пассивной, если в этой маркировке сработает переход sP Следовательно, если pt может быть пустой, сеть не является активной. Если pt не может быть пустой, тогда s2 всегда может быть запущен, помещая фишку в г2. В этом случае мы должны будем вернуть фишку в г{ и гарантировать, что все переходы в С2 активны. Необходима уверенность в том, что С2 активна, даже если Ci не является активной. Это обеспечивается переходом s3, который «наполняет» сеть С2 фишками, гарантируя тем самым, что, если фишка помещена в г2, каждый переход активен. Переход s3 в качестве входа имеет г2, а в качестве выхода все позиции С2 (все pt в Ср Гх и г^. Эта конструкция иллюстрируется рис. 5.6.
Далее, если маркировка р с р(рг) = 0 достижима в 7?(Ср pi), тогда С2 также может достичь этой маркировки в позициях Pv путем выполнения той же самой последовательности запусков переходов. Затем можно запустить $р замораживая подмножество Ср Поскольку р(р/) = 0, s2 запустить нельзя и С2 пассивна. Таким образом, если рг может стать нулевой — С2 неактивна.
Справедливо обратное, если С2 неактивна, тогда должна быть
Рис. 5.6. Конструкция, переводящая задачу достижимости нуля в одной позиции (достижима ли маркировка с р(р^) = 0?) в задачу активности (является ли сеть активной?).
достижима маркировка р с р(г2) = 0, из которой недостижимо состояние с фишкой в г2. (Если в г2 есть фишка, то s3 разрешен, а повторно запуская s3 достаточное число раз, можно разрешить любой (или все) переход, т. е. сеть активна.) Если г2 не имеет фишек и не может их получить, тогда маркировка рг также должна быть нулевой. Таким образом, если С2 неактивна, тогда достижима маркировка, в которой маркировка pt нулевая.
На основе этой конструкции мы доказали следующую теорему.
Теорема 5.5. Задача достижимости сводится к задаче активности.
Для доказательства основного утверждения раздела покажем следующее.
Теорема 5.6. Задача активности одного перехода сводится к задаче достижимости.
Доказательство того, что задача активности одного перехода сводима к задаче достижимости, опирается на проверку достижимости любой из конечного множества максимальных пассивных для t j подмаркировок. Сеть Петри не активна для перехода t j тогда и только тогда, когда достижима некоторая маркировка, в которой переход t j не запускаем и не может стать запускаемым. Маркировка такого вида называется пассивной для t j. Для любой маркировки р можно проверить, является ли она пассивной для /; построением дерева достижимости с корнем р и проверкой, можно ли
Рис. 5.7. Сеть Петри, иллюстрирующая пассивные маркировки для tj.
где-либо в дереве запустить переход tj. Если нельзя, то р массивна для tj. Проверка активности tj в таком случае требует проверки достижимости какой-либо пассивной для tj маркировки.
В общем случае, однако, может существовать бесконечное число пассивных для tj маркировок и бесконечное множество маркировок, в котором находятся пассивные для tj маркировки. Заметив два свойства, сведем множество маркировок, которые необходимо проверить для достижимости, к конечному числу. Во-первых, если маркировка р пассивна для t j, то и любая маркировка р' ^ р пассивна для tj. (Любая последовательность запусков, возможная из р', возможна также из р, поэтому если р' может привести к запуску tj, то это может и р.) Во-вторых, маркировки некоторых позиций не будут влиять на пассивность для t j данной маркировки, поэтому маркировки этих позиций являются «несущественными», они могут быть произвольными. Заимствуя прием из построения дерева достижимости, заменим «несущественные» компоненты на со, показывая, что в этих позициях может быть произвольно большое число фишек, не влияющих на пассивность маркировки для t j. Теперь, поскольку любая р' С р пассивна для t j, если р пассивна для t j, нам не нужно рассматривать позиции pt с p(/7z) = со. Это означает, что мы применяем задачу достижимости подмаркировки с Р' = {pdp(pO Ф ю}.
Рассмотрим в качестве примера сеть Петри на рис. 5.7. Маркировки (2, 0), (I, 0), (0, 0), (0, 1), (0, 2), (0, 3),... являются пассивными для Л, но их можно представить конечным образом множеством {(2, 0), (1, 0), (0, Ю)}.
Хэк [113, 116] показал, что для сети Петри С существует такое конечное множество Dt маркировок (расширенных, т. е. включаю- 5—562
щих со), что С активна тогда и только тогда, когда никакая маркировка из Dt недостижима. Если маркировка из Dt содержит со, тогда подразумевается достижимость подмаркировки.
Более того, Dt можно эффективно вычислять. Поскольку Dt конечно, не-со-компоненты имеют верхнюю границу Ь. Граница b определяется как такое наименьшее число, что если пассивна для tj любая маркировка р, такая, что р(рг-) ^ b + 1 для всех рь то является пассивной для tj и подмаркировка р', такая, что р'^г) = Н(рО, если Н(Рг) ^ Ь, и р'(рО = <0, если p(pf) = + I. При таком определении b можно построить Dt следующим образом.
Вычислить Ь. Начать с b = 0, увеличивать b до тех пор, пока не окажется, что b удовлетворяет описанному определению границы. Проверка каждого b требует проверки всех (Ь + 2)" маркировок с компонентами, меньшими или равными b + 1.
Вычислить Dt проверкой всех маркировок и подмаркировок с компонентами, не превышающими b или равными со. Dt — это множество пассивных для t j маркировок из множества (b 4- 2)" маркировок.
Построив Do можно рассматривать задачу достижимости подмаркировки для каждого элемента Dt. Если какой-либо элемент Dt достижим из начальной маркировки, сеть Петри неактивна, если же никакой элемент Dt недостижим — сеть Петри активна.
Из доказанных теорем мы получаем следующую.
Теорема 5.7. Следующие задачи эквивалентны:
Задача достижимости.
Задача активности.
Задача активности одного перехода.
Более формальные доказательства сводимости активности к достижимости можно найти в [113, 116].
Неразрешимые задачи
В предыдущем разделе мы показали, что многие задачи достижимости и активности эквивалентны, но никакого результата относительно разрешимости этих задач еще не получили. Для того чтобы показать разрешимость, необходимо свести задачу для сетей Петри к задаче с известным решением, а для того, чтобы показать неразрешимость, нужно свести задачу, которая известна как неразрешимая, к задаче для сетей Петри. Первый важный результат такого рода был получен Рабином [26]. Он показал неразрешимость задачи: выполняется ли R(Ct, Р1)^Я(С2, р2) Для Двух сетей Петри — Ci с маркировкой щ и С2 с маркировкой р2? Позднее Хэк [114] показал, что неразрешимой является и задача: выполняется ли R(Cb pi) = R(C2, р2)? Доказательство этих утверждений основано на десятой проблеме Гильберта. (Д. Гильберт на конференции математиков в 1900 г. поставил 23 проблемы, и та, на которую опирался Хэк, была десятой в списке.)
Определение 5.9. Дан полином Р от п переменных с целыми коэффициентами; существует ли такой вектор целых (хь х2, ..., хп), что Р(хь х2, ..., хп) = 0? Уравнение Р(хь х2, ..., хп) = О называется диофантовом.
В общем оно представляет собой сумму членов:
Р (xi> х.р... > хп) 2 Rt ^Хр Хр ... > хп),
Ri ^V ^2> ••• > ^п) ~ ^i * Х^ * -^ * ... * Xs^ .
Десятая проблема Гильберта
Задача включенияграгроб полиномов
Задача подмножества для множествдостижимости сетей Петри
Задача равенства множествдостижимости сетей Петри
Рис. 5.8. Сведения, показывающие, что задача равенства (и подмножества) для^ множеств достижимости сетей Петри неразрешима.
Диофантовыми уравнениями являются хх = 0; 3xt • х2 + 6х3 = = 0 и т. д.
В 1970 г. Матиясевич^ доказал, что десятая проблема Гильберта неразрешима [70, 711: не существует общего алгоритма, определяющего, имеет ли произвольное диофантово уравнение корень (набор значений, для которых полином равен нулю). Этот результат служит основой доказательства того, что задача равенства множеств достижимости сетей Петри неразрешима. Стратегия его заключается в построении для диофантова полинома сети Петри, которая (в определенном смысле) вычисляет все значения полинома.
Задача включения графов полиномов
Доказательство неразрешимости задачи равенства состоит из трех частей (рис. 5.8). Сначала десятая проблема Гильберта сводится к задаче включения графов полиномов. Затем задача включения
О Советский математик. — Прим, перев.
графов полиномов сводится к задаче подмножества для множеств достижимости сетей Петри. Наконец, задача подмножества для множеств достижимости сетей Петри сводится к задаче равенства множеств достижимости сетей Петри. Это показывает, что десятая проблема Гильберта, известная как неразрешимая, сводится к задаче равенства, которая поэтому также должна быть неразрешимой.
Определение 5.10. Граф G(P) диофантова полинома P(%i, ...» хп) с неотрицательными коэффициентами — это множество
ОД = {(Хр хп, у)| у < Р(хр .... Х„) И 0 ^ Хр ..., хп, у}.
Определение 5.11. Задача включения графов полиномов заключается в определении для двух диофантовых полиномов А и В, выполняется ли С(Л) £ G(B).
Покажем сначала, что десятая проблема Гильберта сводится к задаче включения графов полиномов.
Теорема 5.8. Задача включения графов полиномов неразрешима.
Доказательство;
Ограничим наше доказательство задачами с неотрицательными решениями. Если (хь ..., х„)— решение для Р(хь ..., хп) = = 0 с хг < 0, то (хь ..., —хг, ..., хп) решение для Р(хь ..., —хг,..„ хп) = 0. Следовательно, для определения того, является ли (хр ..., хп) решением произвольного полинома), необходимо только проверить каждый из 2” полиномов, получающихся в результате изменения знака у некоторого подмножества переменных для неотрицательного решения.
Аналогично, поскольку Р\хь ..., х^ = 0 тогда и только тогда, когда Р(хр ..., хп) = 0, необходимо рассматривать только полиномы, значения которых неотрицательны.
Сейчас можно разбить любой полином P(xt, х2, ..., х„) на два полинома, Qi(xlt ..., хп) и Q^Xi, ..., хп), такие, что Р(хь ..., хл) = — Qi(Xi, ..., хп) ■—Q2(xp .... хп), помещая все члены с положительными коэффициентами в Qp а все члены с отрицательными коэффициентами в Q2. Далее, поскольку Р^х^, ..., х„) > 0 (по п. 2), имеем, что Qf(xp ..., xn) > Q2(xp ..., х„) и Р(хь ..., хп) = 0 тогда и только тогда, когда Qi(xb ..., xn) = Q2(xp •••, х„).
Рассмотрим два графа полиномов:
G (Qj) = {(хр ..., хп, у) | У ^ Qi (xv..., хп)},
G(Q2 + Ч = {Ui- -, хп, у) | у < 1 + Q2 (хр ..., хп)}.
Теперь G(Q2 + D^GtQJ тогда и только тогда, когда для ’ всех неотрицательных хь ..., хп и у из у < 1 + Q2(^i> *п) следует, что y^Qi(xb xKY Это справедливо тогда и только тогда,^когда не существует хь ..., хп и у, таких, что
Q1 (^1’ ••• ’ ^п) У ^ 1 |"Г ^2 (-^Р ••• > ^nY
Но из п. 3 следует, что Q, > Q2, поэтому
Qi(хр..., хп) <_у ^ 1 -г Q2 (^р ? х^ ^ 1 4- Qi (хр • ••» хп), а поскольку все величины целые,
у = 1 4-Q2Uv^ ^) = 1 +QiUp xnY
что справедливо тогда и только тогда,когда Qi = Q2. Таким образом, мы убедились в том, что G(Q2 4-1)^ G(QJ тогда и только тогда, когда не существует таких хь ..., хп,для которых Р(хь ...,хп) = - 0.
Итак, для определения того, что уравнение Р(х^ х2, ..., х^ = = 0 имеет решение, необходимо показать только, что не выполняется G(Q2 4- 1)^ G(Qi). □
Слабое вычисление
Теперь нам необходимо показать, что сети Петри могут (в определенном смысле) вычислять значение полинома Q(xb х2, ..., хп\ Мы осмотрительно ограничили полином Q до неотрицательных значений полинома, неотрицательных коэффициентов и неотрицательных значений переменных. Это позволяет нам представить значения переменных и значение полинома числом фишек в позициях сети Петри. Общая схема показана на рис. 5.9. Входные значения х^ ..., хп представляются хг фишками в pt для i = 1, ..., п. Первоначально фишка помещается также в позицию «действия». Выполнение сети будет закончено помещением фишки в позицию останова. В это время «выходная» позиция будет иметь у фишек, где у
Q(Xj, ..., хп).
Эта сеть Петри слабо вычисляет значение Q(x1? ...., хк\ Слабое вычисление означает, что вычисленное значение не будет превышать Q(%4, ..., xnY но может быть любым (неотрицательным) значением, меньшим Q^xy, ..., хк\ Слабое вычисление обязательно для сетей Петри вследствие разрешающей природы запусков переходов: сеть Петри нельзя заставить остановиться. При определении графа полинома G(Q) это особенно учитывалось.
Сейчас мы хотим показать, что можно построить подсеть, слабо вычисляющую функцию умножения (двух чисел). На ее основе мы можем построить составную сеть, которая слабо вычисляет значение каждого члена полинома путем последовательной композиции подсетей умножения. Выход подсети для каждого члена будет
помещаться в выходную позицию для полинома. Таким образом, число фишек в выходной позиции будет суммой выходов для каждого члена.
Подсеть умножения показана на рис. 5.10. Эта сеть слабо вычисляет произведение чисел х и у, представимых фишками в ее входных позициях, помещая множество фишек в свой выход. Действует сеть совсем просто. Для вычисления произведения х и у
Рис. 5.9. Базовая структура сети Петри, слабо вычисляющей значение полинома Q(xi, а>, ..., xKY
сначала запускается переход /ь перемещая одну фишку из рх в /?2. Эта фишка разрешает запуск перехода /3, который может теперь копировать у фишек из позиции ру) помещая их в ц3 и вкладывая в выходную позицию рх у у фишек. Теперь можно запустить 1^ возвращая фишку из р2 в pv Это разрешает запуск /4, который копирует у фишек из р3 обратно в ру. Весь этот процесс можно повторить точно х раз, помещая каждый раз в рх.у у фишек. После этого маркировка рх становится нулевой и сеть останавливается. Общее число фишек в позиции рх.у равно произведению х и у.
Мы описали наилучший случай в том смысле, что число выходных фишек в точности равно х • у. Однако фишка в р^ разрешает и переход /3, и переход /2, а переход /2 можно запустить до того, как все у фишек будут скопированы из ру в р3 и добавлены в рх.у, В этом случае число фишек, помещенных в рх.у, будет меньше, чем х • у. Поскольку /3 можно запустить нс более у раз для каждого запуска /ь a tx можно запустить нс более х раз, мы можем гарантировать, что число фишек в рх.у никогда нс превысит х • у, но вследствие разрешающей природы запусков переходов мы не можем гаранти-
Выход
Рис. 5.10. Подсеть умножителя. Эта подсеть слабо вычисляет произведение х и у.
ровать, что число фишек в рх.у будет в точности равно х • у ; оно может быть меньше. Следовательно, эта сеть Петри слабо вычисляет произведение х и у. Теперь для того, чтобы слабо вычислить член Rt, являющийся произведением at • xS1 * xS2 • ... • xs , построим сеть Петри показанного на рис. 5.11 вида. Поскольку^ каждая подсеть слабо вычисляет произведение двух членов, вся подсеть слабо вычисляет значение члена Rt.
Далее на рис. 5.12 показано, как можно слабо вычислять полином Р = R{ -|- R2 + ... + Rh- Каждая подсеть имеет вид, изображенный на рис. 5.11, и слабо вычисляет значение одного члена полинома. Выходы к подсетей для отдельных членов объединяются вместе, давая общее значение суммы.
Теперь для создания конкретных необходимых множеств достижимости вводится несколько управляющих переходов и позиций. Сначала необходимо обеспечить получение произвольного значения для каждой из переменных (%!, ..., хп) и запись этого значения в
Рис. 5.11. Сеть Петри, слабо вычисляющая член диофантова уравнения.
Каждый блок в сети имеет вид, изображенный на рис. 5.10.
позиции pYs рп. Для каждой pt создается переход it с пустым входом и выходами в рг и всякую позицию, являющуюся входом, соответствующим xt в члене R j, использующем хг. Следовательно, в полиноме %! + ^1^2 мы должны иметь переход ^ с выходами в pt и во входы xt в двух членах: xt и xtx2, использующих хг 12 будет иметь выходы в р2 и во вход х2 в члене х^2.
Эти переходы могут запускаться произвольное число раз, создавая любые значения в рь ..., рп. Следовательно, для всякого у < ^ Р^, ..., хп) достижима маркировка р с pG^) = хь ..., р(рп) = = хп и р(выход) = у. Значение у = Р(хь ..., хп) может быть достигнуто сначала запуском xt раз перехода ^, помещая xt фишек в р^ затем запуском х2 раз перехода t2 и т. д., пока не будет запущен хп раз переход tK. Далее можно выполнить подсеть для каждого члена Rt полинома, в результате чего значение полинома поместится в выходную позицию.
Рис. 5.12. Сеть Петри, слабо вычисляющая P(xi, х2, ..., хп путем использования набора подсетей вида, изображенного на рис. 5.11.
Для сведения задачи включения графов полиномов к задаче подмножества выполним следующие шаги. Пусть мы хотим определить для полиномов Л и В, выполняется ли С(Д)е G(S).
Построим сеть Петой Сл, слабо вычисляющую А^хъ ..., х^, и сеть Петри Св, слабо вычисляющую В(х^ ..., хр\
Если число позиций в этих сетях нс равно, добавим позиции в ту сеть, где их меньше с тем, чтобы уравнять число позиций. Эти позиции не имеют начальной маркировки и не связаны с какими- либо переходами в сети.
Теперь мы должны устранить влияние всех внутренних позиций на множества достижимости. И в Сл, и в Св различимо множество из п + 1 позиций — п позиций, соответствующих значениям хп хп, и (п + 1)-я позиция, соответствующая выходу каждой сети. Все другие позиции являются внутренними, маркировка их
неважна. Однако может оказаться, что для внутренней позиции Pt в СА и соответствующей позиции р, в Св существуют неравные маркировки р в R(,CA, рА) и р' в R(Cb, Рв), поскольку p(pf) Ф
\<\р^ для всех р" в R(Cb, \1ву
Для того чтобы обойти это препятствие, введем по две новые позиции: q и г в СА (получая Сд) и q' и г' в Св (получая Св). В Сд позиции q и г не связаны с переходами и первоначально г пуста, a q имеет одну фишку. Позиция rf в Св служит позицией «действия». Она получает начальную маркировку1), а каждый переход модифицируется с тем, чтобы включать г в качестве входа и в качестве выхода. Следовательно, пока фишка остается в г\ сеть Св может функционировать, как и прежде. Введем в Св новый переход, переводящий разрешающую фишку из г' в д', запрещая все переходы Св и «замораживая» маркировку. Теперь для каждой внутренней позиции2) введем по два новых перехода.
Один из этих переходов, вводимых для каждой внутренней позиции pt, маркировка которой неважна, имеет в качестве входов позиции qr и pt, а в качестве выхода — только q’ (уменьшая при запуске на 1 маркировку в р^, другой переход в качестве входа имеет q', а в качестве выхода и qr, и pt (увеличивая при запуске на 1 маркировку в pt). Эти переходы благодаря соответствующей последовательности прибавляющих или убавляющих запусков обеспечивают каждой внутренней позиции возможность иметь произвольную маркировку.
Описанная конструкция показана на рис. 5.13. Для двух сетей Петри Сд и Св с начальной маркировкой рд и р5 соответственно, 6(Л)^ 6(5) тогда и только тогда, когда R(Ca, pA)^ R(CB, рв).
Сд и Св имеют следующие множества достижимости:
С А-
Р1 •
• • Рп
Выход
г
£
Внутренние позиции
*1 .
УСЛ(Х!, . . .Хп)
0
1
Некоторая произвольная маркировка
с в-
Pl ’
• *Рп
Выход
Г
Внутренние позиции
*1 .
• .Хп
у<В(х1, . . . ,хп)
1
0
Некоторая произвольная маркировка
. . Хп
УСЙ^, . . . ,ХП)
0
1
Произвольная маркировка
В Одну фишку. — Прим, персе.
2) г' и q' не считаются внутренними. — Прим, иерее.
Рис. 5.13. Сеть Петри, построенная для проверки включения графов полиномов.
Следовательно, если С(Л)е G(B), то R^Ca, ^А)г R^Cb, Рв)\ и, обратно, если R(Ca, Ра^ — R(Cb, рв), то, С(Л)е G(B).
Таким образом, мы показали справедливость следующего.
Теорема 5.9. Задача включения графов полиномов сводима к задаче подмножества для множеств достижимости сетей Петри. Доказательство взято из [114, 1161.
Задача равенства
Теперь нам осталось только показать, что задача подмножества для множеств достижимости сетей Петри сводится к задаче равенства.
Предположим, что имеются две сети Петри Л и В, и мьГхотим определить, выполняется ли 7?(Л, рл)^ R(B, рв) (задача подмножества). Покажем сейчас, что можно определить такие две сети Петри D и Е, что R(A, p^) — R(B, рв) тогда и только тогда, когда R(D, рд) = R(E, рв). Основой построения доказательства служит тот факт, что R(A, p^) — R(B, рв) тогда и только тогда, когда R(B, рв) = R(A, рА) UR(B, рв).
D и Е строятся из общей подсети С. Сеть С представляет множества достижимости Л и В для получения их объединения. Кон-
Рис. 5.14. Построен немеете й Петри С, D и Е из А и В, используемое^для доказательства сводимости задачи подмножества для множеств достижимости к задаче равенства.
струкция иллюстрируется рис. 5.14. Позиции pt) ..., рп действуют или как позиции сети Л, или как позиции сети В. Первоначально они не имеют маркировки. Вводятся две новые позиции гА и гв, служащие позициями действия для сети Л и сети В соответственно. Все переходы сети Л модифицируются с тем, чтобы включать в качестве входа и выхода гА, а все переходы сети В модифицируются с тем, чтобы включать в качестве входа и выхода гв.
Далее вводятся еще одна позиция s, и два новых перехода, tA и 1В. Начальная маркировка всей сети (включая Л и В как подсети с общими позициями; позиции гА, гв и s; переходы tA и tB) определяется одной фишкой в s и нулем в остальных. Переход tA имеет в качестве входа s, а выход его порождает начальную маркировку сети Л плюс фишку в гА; переход tB в качестве входа также имеет s, а выход его создает начальную маркировку сети В плюс фишку в гв. Следовательно, если запустится /А, то подсеть Л приобретает
свою начальную маркировку, и все ее переходы могут запускаться, как обычно, поскольку в гА имеется фишка. Подсеть В, однако, полностью запрещена, поскольку фишки в гв нет. Если первым запустится 1В, то сможет действовать подсеть В, а подсеть А будет запрещена. Тогда множество последовательностей для С — это любая последовательность вида
/л, {любая последовательность запусков в Д)
или любая последовательность вида
tB> {любая последовательность запусков в В^
Сеть D получается из С введением одного нового перехода qB. Он имеет в качестве входа позицию гв, выход его пуст. Заметим, что qB может запуститься, только если первым был запущен переход /в, если же первым запустится переход tAl то гв будет пустой и qB не сможет запуститься.
Сеть Е строится из D добавлением нового перехода qA. Он в качестве входа имеет позицию гА, выхода не имеет. Переход может запуститься, только если первым был запущен tA. Подчеркнем, что сеть Е строится из D, а не (непосредственно) из С. Поэтому Е имеет и переход qA, и переход qB.
Рассмотрим теперь множества достижимости сетей Петри С, D и Е. Множество достижимости С — это все маркировки вида:
S
ГА
гв
PiРп
1
0
0
0, . . ., 0
0
1
0
Любая маркировка р. £ R(A , р. л) (если запустится tA^
0
0
1
Любая маркировка р £R (В, р,в) (если запустится tB^
Сеть Петри D добавляет к этому множеству один новый класс маркировок:
S
ГА
г в
Р1» • • • , Рп
1
0
0
0 , . . ., 0
0
1
0
Любая маркировка ^ (- R(A, р. л) (если запустится /л)
0
0
1
Любая маркировка р. ^R^B,^^ (если запустится t в)
0
0
0
Любая маркировка у. £ R(B , р в) (если запустится q р)
Сеть Петри Е добавляет еще один класс:
S
ГА
г в
Р1 > • ♦ • > Рп
1
0
0
0, . . ., 0
0
1
0
Любая маркировка v-^R И>М) (если запустится t ^)
0
0
1
Любая маркировка р £ R^B ,pBj (если запустится tB)
0
0
0
Любая маркировка y-^R^B ^^ (если запустится qB)
0
0
0
Любая маркировка р ER(A,y-A) (если запустится q?Q
Теперь, если 7? (Л, рА) = R(B, рв), то последний класс в R(E, рв) (маркировки вида (0, 0, 0, р), где р € R(A, Ра)) включен в последний класс R(D, ро) (маркировки вида (0, 0, 0, р), где р € R(B, рв)). Поскольку все другие маркировки совпадают, то R(D, р0) = = R(E, ре), если R(A, pA)s R(B, рв). Аналогично, если R(D, pD) = R(E, ре), то /?(Л, uA)s R(B, рв), так как для всякой маркировки (0, 0, 0, р), где р € R(A, рл), в R(E, ps) должна существовать такая же маркировка в R(D, рд). Но все маркировки с p(s, гА, гв) = (0, 0, 0) имеют вид (0, 0, 0, р), где р 6 R(.B, рв), поэтому /?(Л, pA)s R(B, рв).
Таким образом, на основе этой конструкции доказано следующее.
Теорема 5.10. Задача подмножества для множеств достижимости сетей Петри сводима к задаче равенства для множеств достижимости сетей Петри.
Последние три теоремыТприводят к следующему результату.
Теорема 5.11. Следующие задачи неразрешимы:
Задача включения графов полиномов.
Задача подмножества для множеств достижимости сетей Петри. 3. Задача равенства для множеств достижимости сетей Петри.
Эти теоремы и их доказательства принадлежат Хэку [114, 116].
Сложность задачи достижимости
Поскольку задачи подмножества и равенства для множеств достижимости сетей Петри неразрешимы, то возможно, что неразрешима также и сама задача достижимости. Однако в настоящее
время вопрос, разрешима ли (или неразрешима) задача достижимости, открыт. На сегодняшний день нс существует ни алгоритма, решающего задачу достижимости, ни доказательства того, что такого алгоритма не может быть.
В 1977 г. на Симпозиуме АСМ1} по теории вычислений было представлено «доказательство» разрешимости задачи достижимости [264]. Однако это «доказательство» имело несколько серьезных огрехов, а попытки устранить их, чтобы получить корректное доказательство, не дали положительных результатов. И все же превалирует ощущение, что задача достижимости разрешима, что алгоритм се решения существует, и со временем он будет найден.
Если предположить, что алгоритм решения задачи достижимости существует, то можно утверждать, что он очень сложный. Уместен вопрос: какова сложность алгоритма решения задачи достижимости? Некоторые оценки его сложности можно получить, не ссылаясь на конкретный алгоритм.
Липтон [П6] показал, что любой алгоритм, решающий задачу достижимости, потребует по крайней мере экспоненциального (2"г) объема памяти и экспоненциального времени решения. Экспонента от п — это мера размерности задачи, и случай Липтона отражает число позиций и их взаимосвязи с переходами.
Необходимость в экспоненциальном объеме Липтон доказал, показав, что можно построить сеть Петри, в которой позиция действует как счетчик чисел 0, 1, ..., 22/г. При таком представлении алгоритм решения задачи достижимости потребует loga^2^) = 24 бит. При этом в его конструкции используется не более h • п позиций (для некоторой константы /г).
Доказательство Липтона основано на возможности построения сети, пересчитывающей до 22Аг фишек только в h • п позициях. Для проверки позиции на нуль необходимо наложить на сеть некоторые ограничения. Можно предложить, разумеется, сети Петри, для которых непосредственная проверка нуля невозможна. Тем не менее для осуществления возможности проверки нуля используется общий метод, заключающийся в использовании таких двух позиций р и р’, что |л(/?) + ц(//) является константой. Если мы знаем, что р(р) + ц(п') “ к, тогда можно проверить, является ли и(р) нулем, проверяя, имеет ли |л(^') к фишек; если н^') имеет к фишек, то р(/7) имеет нуль фишек, и наоборот. То, что маркировка позиции не нулевая, можно проверить с помощью петли. Заметим,что для поддержания способности проверки позиции на нуль необходимо поддерживать свойство постоянности р(р) + р(р'), т. е. сеть должна быть сохраняющей по крайней мере по отношению к этим двум позициям.
Для небольших чисел /г можно проверить, равна ли маркировка позиции числу к, делая позицию входом перехода к раз (рис. 5.15). Однако эти дуги увеличивают размерность задачи, поэтому в общем случае так поступать нельзя. Липтон показал, что если постоянная сумма двух позиций (рк, рк) равна к и к является произведением двух целых сомножителей к = k{ • k2i которые являются постоянными суммами двух других пар позиций (рк1) pkl и ркг1 рк^, и мы можем проверить, выполняется ли p(^J = 0 и р(/?/г2) = О, то можно проверить, выполняется ли р ^Р^ = 0- Это позволило Липтону строить подсети так, как показано на рис. 5.16. Такие сети затем использовались для контроля сетей умножения, подобных сетям, используемым для слабого вычисления графов полиномов (см. рис. 5.10). Проверка на нуль подсети позволяет сети Петри вычислять точное произведение (а не слабое произведение, которое только ограничено сверху действительным произведением).
Эти простые сети позволили Липтону построить сеть, которая для данного п может порождать точно 22" фишек в позиции (р) с нулем фишек в / и в которой можно проверить ^р^ на равенство нулю. Число используемых позиций равно произведению константы на п. Существование сети Петри, подобной этой, показывает, что задача достижимости требует по крайней мере экспоненциальных времени и памяти, и, следовательно, затраты на вычисление ее решения слишком велики.
Рис. 5.15. Проверка маркировки ограниченной позиции на совпадение с 0, 1 или 2. Все переходы должны поддерживать сумму маркировки.
Конструкция сети Петри, которая можез пересчитывать числа до 22'S имеет еще и важное следствие. Построенная таким образом сеть Петри ограниченна, поскольку число фишек в любой позиции не может превысить 22/г- Это означает, что любой алгоритм определения ограниченности сети Петри также должен требовать экспоненциальных времени и памяти. Следовательно, даже простые задачи для сетей Петри, хотя и являются разрешимыми, могут требовать для поиска решения больших затрат времени и памяти.
Проверяемаяпозиция рПроверяемаяпозиция р
Проверяемаяпозиция р
Проверяемаяпозиция р
Рис. 5.16. Вид сетей Петри, используемых Липтоном для построения больших сетей, допускающих проверку боль ше- го счетчика на нуль.
Необходимо напомнить, что описанные границы являются нижними для наихудшего случая поведения алгоритма. Но может оказаться, что многие интересные задачи решаются для большинства сетей Петри сравнительно эффективно. Оценка сложности показывает, что, даже если для большинства сетей алгоритм требует малых затрат памяти и времени, существует сеть Петри, которая для анализа потребует гораздо больше времени и объема памяти.
Хотя оценки сложности получены для наихудшего случая (это означает, что в среднем они намного лучше), они являются, кроме того, нижней границей. Мы знаем, что задача достижимости требует экспоненциального объема памяти, не менее. Возможно, что сложность определения достижимости даже не экспоненциальная. Ра- кофф [253] предложил алгоритм определения ограниченности за экспоненциальное время, поэтому задача ограниченности известна теперь как имеющая экспоненциальную сложность. Задача достижимости известна как по крайней мере экспоненциально сложная (и, возможно, даже неразрешимая).
Последний результат Мэйра [183] показал, что задачи подмножества и равенства для множеств достижимости ограниченных сетей Петри имеют сложность непримитивной рекурсии. Это означает, что некоторые задачи для сетей Петри, несмотря на разрешимость, требуют на вычисление значительных затрат.
Упражнения
Покажите, что задача достижимости для ординарных сетей Петри эквивалентна задаче достижимости нуля в одной позиции для сетей Петри без петель.
Пусть для сети Петри Ci = (Pi, Ti, Л, Oi) определена новая сеть Петри С2 = (Р2, т2, /2, О2) с
^ = ^1и{р)|Ь-€7'1} ,тй=тг,и = Л.
О2 М = Ot уй и {pj}.
Такое определение вводит по одной дополнительной позиции в качестве выхода каждого перехода.
Каков смысл числа фишек в каждой из этих позиций? Какова граница на маркировку этих позиций для активной сети Петри?
Допустим, мы ввели в сеть один дополнительный переход, имеющий в качестве входа каждую позицию Ру и не имеющий выхода. Покажите, что сеть активна тогда и только тогда, когда активен этот новый переход.
Замечания к литературе
Теория вычислимости — начало теории вычислений — была развита из работ Тьюринга, Клини, Гёделя и Чёрча. Девис [691 и Минский [200] предлагают хорошие введения в нее. Карп [146] показал, как сводимость можно использовать для получения результатов по разрешимости и сложности.
Задача достижимости впервые поставлена в [148], как исследовательский вопрос она ставилась в [213]. Предварительные результаты сообщены в [299, 129], но они не обобщены.
Большинство результатов, изложенных в этой главе, взяты из работ Хэка [111, 113, 114, 116]. Хэк — один из основных исследователей по задачам разрешимости в сетях Петри. В числе других работ по свойствам разрешимости [13, 183]. Результаты по сложности получены Липтоном [ 176L Ракоффом [233] и Джоунсом и др. [144]. Некоторые работы [47, 48] косвенно связаны с сетями Петри.
Темы для дальнейшего изучения
Сеть Петри называется обратимой, если для каждого перехода tj^T найдется переход tk^T, такой, что
Шй) = Ш О№
# (Pt, I V^Y
Иными словами, для каждого перехода существует другой переход с обратными входами и выходами. Это позволяет «уничтожать выполненное» последовательностью переходов путем запуска в об-
ратном порядке их дополнительных переходов. Установлено [129], что для обратимых сетей Петри задачи достижимости и покрывае- мости разрешимы. Этот результат основан на работах по коммутативным полугруппам [47]. Установите на основе взаимосвязи между обратимыми сетями Петри и коммутативными полугруппами разрешимость достижимости и эквивалентности для обратимых сетей Петри. Для развития теории обратимых сетей Петри рассмотрите также задачу активности, вопросы сложности и языки обратимых сетей Петри.
Представляется весьма полезной связь сетей Петри с арифметикой Пресбюргера. Арифметика Пресбюргера — это арифметическая теория, использующая сложение и вычитание целых чисел. Показано, что можно установить истинность или ложность всех высказываний, образованных из кванторов первого порядка, равенства, операций сложения и вычитания и целых чисел. Первоначальное доказательство было представлено в [252] и использовалось в качестве основы для автоматического доказательства теорем [68, 55]. Связь арифметики Пресбюргера с полулинейными множествами упоминалась в [99, 101], а взаимосвязь полулинейных множеств с достижимостью — в [299, 61, 161, 129, 137]. Предположительно арифметику Пресбюргера можно использовать для решения задач анализа сетей Петри. Исследуйте этот вопрос.
ЯЗЫКИ СЕТЕЙ ПЕТРИ
Материал гл. 4, 5 касался в основном вопросов, связанных с задачей достижимости, т. е. с достижимыми маркировками. Родственный, но совершенно отличный подход заключается в рассмотрении нс того, какие маркировки достижимы, а того, как их можно достичь. Поэтому главным объектом внимания являются переходы и, в частности, последовательности переходов, переводящих одну маркировку сети Петри в другую.
Последовательность переходов — это строка, а множество строк — язык. Таким образом, в этой главе мы займемся языками, определяемыми сетями Петри, и их свойствами.
Мотивы изучения языков сетей Петри
Развитие теории сетей Петри обусловливают две основные причины: 1) описание предлагаемых и существующих систем и 2) анализ систем, моделируемых сетями Петри. Цель анализа сети Петри — определение свойств сети и моделируемой системы. Одно из самых важных свойств системы — это множество действий, которые могут произойти. Множество всех возможных последовательностей действий характеризует систему.
Действия моделируются в сети Петри переходами, осуществление действия — запуском перехода. Последовательности действий моделируются последовательностями переходов. Следовательно, множество разрешаемых последовательностей переходов характеризует сеть Петри и (со степенью корректности моделирования системы сетью Петри) моделирующую систему.
Эти последовательности переходов могут быть крайне важны при использовании сетей Петри. Предположим, что для замены существующей системы спроектирована новая. Поведение новой системы должно быть идентично поведению старой системы (но новая система может оказаться более дешевой, более быстродействующей, более простой для исправлений или иметь другие улучшенные характеристики). Если обе системы моделируются сетями Петри, то поведение этих двух систем должно быть идентичным, и, следовательно, языки их равны. Две сет и Петри называются эквивалентными, если равны их языки. Это образует формальную основу для установления эквивалентности двух систем.
Эквивалентность важна, в частности, при оптимизации. Оптимизация сети Петри подразумевает создание новой сети Петри, являющейся эквивалентной (языки равны), но которая лучше, чем старая (в смысле некоторого функционала качества). Например,
если сеть Петри должна непосредственно реализоваться в аппаратуре, то построение сети Петри с меньшим числом позиций, переходов и дуг будет менее дорого, поскольку она имеет меньшее число компонент. Следовательно, одной из оптимизационных задач может быть сокращение |Р|+ ITI без изменения поведения сети.
В целях оптимизации может оказаться полезным множество преобразований, сохраняющих язык. Если преобразование, примененное к сети Петри, порождает новую сеть Петри с тем же языком, то оно является сохраняющим язык. Оптимальную сеть Петри можно получить путем применения сохраняющих язык преобразований к неоптимальной сети Петри. Для практического использования моделирования и анализа систем на оснсве сетей Петри требуется набор преобразований, сохраняющих язык.
Языки сетей Петри могут быть полезны также для анализа сетей Петри. В гл. 4 были разработаны методы определения частных свойств сетей Петри: безопасности, ограниченности, сохранения, активности, достижимости и покрываемости. Хотя установление этих свойств важно (и трудно), они не единственные, которые анализируются в сети Петри. Возможно, окажется необходимым установить корректность моделируемой системы, показав, что ей присущи специфичные свойства. Таким образом, либо для каждого нового свойства нужно разрабатывать новые методы, либо необходимы общие методы анализа сетей Петри.
Исходя из последовательностей действий, возможных в системе, можно поставить множество вопросов. Если определить множество возможных последовательностей действий как язык системы, то система будет анализироваться путем анализа языка. Теперь задачи решаются путем рассмотрения вопроса существования (переведет ли какая-нибудь последовательность действий систему из одного состояния в другое?) или вопроса принадлежности (возможна ли последовательность действий данного вида?). Благодаря этому можно получить общий метод анализа произвольных систем с целью проверки на обладание свойствами, специфичными для них. Риддл [258] занимался исследованиями анализа на основе языка моделируемой системы.
Другое применение языков сетей Петри лежит в области задания и автоматического синтеза сетей Петри. Если задать языком требуемое поведение, то можно будет автоматически синтезировать сеть Петри, обладающую данным языком. Полученную сеть Петри можно использовать в качестве контроллера, гарантирующего, что возможны только указанные последовательности и никакие другие. Для определения разрешаемых последовательностей действий были предложены Е-выражения [163]. На их основе разработаны методы автоматического построения сетей Петри.
Еще одна причина изучения языков сетей Петри — желание получить информацию о разрешимости ряда задач для сетей Петри. Например,нам не известно,разрешимы ли задачи об обладании сетями
Петри определенными свойствами. В настоящее воемя ведутся исследования разрешимости таких основных задач, как достижимость. В частности, одна из областей, в которых рассматриваются вопросы разрешимости, — это теория формальных языков. Используя языки сетей Петри, можно перенести понятия и методы теории формальных языков на задачи для сетей Петри. Возможно, это позволит получить некоторые результаты в задачах разрешимости для сетей Петри. И обратно, методы сетей Петри могут оказаться весьма полезными для получения новых сведений о формальных языках.
Некоторые понятия теорииформальных языков
Развитая к настоящему моменту теория языков сетей Петри подобна другим частям теории формальных языков. Классическая теория формальных языков представлена в нескольких монографиях [130, 265, 99]. Многие из основных понятий теории языков сетей Петри заимствованы из классической теории формальных языков.
Алфавит — это конечное множество символов. Строка — любая последовательность конечной длины из символов алфавита. Пустая стаока X— это строка, не имеющая символов, т. е. нулевой длины. Если 5 — алфавит, то 2* — множество всех строк из символов 5, включая пустую строку. 2 + является множеством всех непустых строк над алфавитом 5. 5* = 2 + и {X}.
Языком называется множество строк над алфавитом. В общем случае языки могут быть бесконечными, следовательно, одной из проблем является представление языка. Для представления языков было предложено два подхода. Один заключается в определении машины, которая порождает строку из языка, и любая строка из языка порождается ею. Другой подход подразумевает определение грамматики, которое указывает, как последовательным применением се правил порождения получаются строки языка.
Ограничения, накладываемые на вид машин или грамматик, порождающих языки, определяют классы языков. Традиционными классами языков являются: регулярный, контекстно-свободный, контекстно-связанный и языки типа 0, соответствующие конечным автоматам, магазинным автоматам, линейно-ограниченным автоматам и машинам Тьюринга. Каждый из классов языков порождается соответствующим классом автоматов. Это даст прекрасные средства для установления связи теории сетей Петри с теорией формальных языков: мы определяем класс языков сетей Петри как класс языков, порождаемых сетями Петри. Детали этого определения аналогичны деталям определения любого другого класса языков.
Рассмотрим в качестве примера конечные автоматы и регулярные выражения. Конечный автомат С есть пятерка (Q, б, 2, s, FY где Q — конечное множество состояний, 2 — алфавит символов, б: Q х 2 -> Q — функция переходов, s^Q — начальное состоя-
ние, F с Q — конечное множество заключительных состояний^. Функция переходов 6 естественным образом обобщается на случай отображения из Q х 5* в Q. Язык ЦС), порождаемый конечным автоматом,—это множество строк над 5, определяемое следующим образом:
L(C)^№* | 8(s, а^.
Всякому конечному автомату соответствует язык, а класс всех языков, порождаемых конечными автоматами, называется классом регулярных языков. Конечный автомат определяется своим языком. Если два конечных автомата имеют одинаковые языки, они эквивалентны.
Определения языков сетей Петри
Основные понятия, используемые для получения регулярного языка по конечному автомату, применимы и к сетям Петри для образования теории языков сетей Петри. В дополнение к сети Петри, определяемой множеством позиций и переходов (которые приблизительно соответствуют множеству состояний и функции переходов автомата), необходимо определить начальное состояние, алфавит и множество заключительных состояний. Задание этого для сети Петри может привести к различным классам языков сетей Петри. Рассмотрим их по порядку.
Начальное состояние
Начальное состояние сети Петри можно определить различными способами. Наиболее общепринятое определение — считать начальным состоянием произвольную маркировку р. Однако это определение имеет несколько модификаций. Одним из разумных ограничений в определении начального состояния является рассмотрение только маркировок с одной фишкой в начальной позиции и нулем фишек в остальных [237]. Другое, более общее определение допускает множество начальных маркировок вместо одной маркировки.
Эти три определения, по существу, одинаковы. Разумеется, определение начальной позиции является частным случаем определения начальной маркировки, а оно — частным случаем определения множества начальных маркировок. Однако если при определении начальной позиции будет необходимо множество начальных маркировок М = {рь р2, ..., р&}, то можно просто ввести в сеть Петри дополнительную позицию /?0 и множество переходов {Л, ...,4}. Переход t; будет брать фишку из р^ и порождать маркировку р?-. Таким образом, поведение расширенной сети будет идентично no
il Как в оригинале, будем использовать термин «конечный автомат» для обозначения управляющего автомата (разд. 3.3.1) и распознающего автомата (гл. 6). — Прим. ред.
ведению сети Петри с множеством начальных маркировок, за исключением того, что каждой последовательности переходов будет предшествовать /у, если до начала выполнения будет использоваться маркировка ру.
Мы видим теперь, что эти три определения начальных состояний сети Петри в принципе эквивалентны. Отходя от традиции, определим язык сети Петри как начинающийся с отдельной маркировки р.
Помечение сетей Петри
Как и в случае с начальным состоянием, возможно несколько определений помечения сети Петри. Мы должны определить и алфавит сети Петри, и то, как он связан с сетью Петри. Уже отмечалось, что символы алфавита связываются с переходами, поэтому последовательность запусков переходов порождает строку символов языка. Связь символов с переходами осуществляется функцией помечения о: Т ->^. Вариации в определении языка следуют из различных ограничений, накладываемых на функцию помечения.
Свободно помеченная сеть Петри — это помеченная сеть Петри, в которой все переходы помечены по-разному (т. е. если 0(1^ = — о(1 jY то ^ = tj\ Класс языков свободных сетей Петри является подмножеством класса языков сетей Петри с более общей функцией помечения, в которой не требуются различные метки. Рассматривалась еще более общая функция помечения, допускающая помечение переходов пустым символом, о(/у) = X. ^-помеченные переходы не появляются в предложениях языка сети Петри, и, следовательно, их запуск при выполнении сети Петри не фиксируется. Три класса функций помечения (свободные, без X- и с Х-перех одами) определяют три класса языков сети Петри.
Без дальнейшего исследования нельзя сказать, какое из этих трех определений помечения наиболее приемлемо. Возможно, каждое из них является наиболее удачным для некоторого применения. Поэтому мы вынуждены рассмотреть языки, получающиеся при каждом возможном определении функции помечения.
Заключительные состояния сети Петри
Определение заключительных состояний сети Петри оказывает наибольшее влияние на язык сети Петри. Были предложены четыре основных определения множества заключительных состояний сети Петри. Каждое из них образует свой язык сети Петри.
Одно из определений взято по аналогии с соответствующим понятием для автоматов — множество заключительных состояний F определяется как конечное множество заключительных маркировок. Этим определением мы вводим класс языков сетей Петри L- типа.
Определение 6.1. Язык L является язиком сети Петри L-muna, если существует сеть Петри (Р, Т, I, О), помечение переходов о: Т ->1, начальная маркировка р и конечное множество заключительных маркировок F, такое, что L = (о(р) € 2 * |Р (F и Ж Р) егу „
Класс языков сети Петри P-типа является мощным, но свойственное ему требование, что для порождения предложения необходимо прийти точно к заключительному состоянию, противоречит основам подхода сетей Петри. Это замечание основано на том, что если для маркировки р и перехода tj определено 6(р, ^-), то для любого р' > р определено 6(р', tj). Из этого вытекает определение нового класса языков — языков сети Петри G-типа.
Определение 6.2. Язык L является языком сети Петри G-типа, если существует сеть Петри (Р, Т, /, О), помечение о: Т 2, начальная маркировка р и конечное множество заключительных маркировок F такое, что L = {о(р) £ 2* |р g Т*, и существует pf g F такое, что 6(р, Р) > рД-
Третьим классом языков сетей Петри является класс языков сетей Петри 7-типа. Эти языки определяются множеством заключительных состояний, используемым в определении языков Р-типа, и множеством (не обязательно конечным) терминальных состояний. Состояние pz является терминальным, если 3(pz, tj) не определено для всех t j € Т. Таким образом, класс языков сетей Петри 7-типа задается следующим образом.
Определение 6.3. Язык L является языком сети Петри 7-типа, если существует сеть Петри (Р, 7, /, О), помечение о: 7 2 и начальная маркировка р, такая, что L = {o(P)g 5 * |р£ 7* и 6(р, Р) определено, но для любого t j ^Т, 8 (6(р, р), t;) не определено}.
Четвертый класс образован языками сетей Петри Р-типа, множества заключительных состояний которых включают все достижимые состояния. Эти языки являются префиксными, так как если cc^S* является элементом языка P-типа, то для всех префиксов р элемента а (т. е. а = Р% для некоторого х£ 2*) Р является элементом того же языка.
Определение 6.4. Язык L является языком сети Петри P-типа, если существует сеть Петри (Р, 7, /, О), помечение о: 7 -> 2 и начальная маркировка р, такая, что L = {о(Р)С 2* |Р£ 7* и определено 6(р, р)}.
Классы языков сетей Петри
В дополнение к четырем классам языков сети Петри, основанным на различных заданиях множества заключительных состояний, имеются вариации языков, порожденные различными определениями функции помечения. На рис. 6.1 приведены 12 классов
языков, получающихся в результате комбинаций четырех типов определений заключительных состояний и трех типов функций помечения. Каждая клетка таблицы содержит обозначение соответствующего класса языков сетей Петри.
СВобоЗные без Х-лереходоВ С Л-переходами
L- тип
и
L
Lx
G-тип
Gf
G
Gk
Г-тип
и
T
P-тип
р!
P
Pk
Рис. 6.1. 12 классов языков сетей Петри.
Для задания конкретного языка сети Петри должны быть определены четыре элемента: сеть Петри С = (Р, 7, /, О); функция помечения о: Т -> 2; начальная маркировка ц: Р -^ N; множество заключительных маркировок F (для языков L- и G-типа). Назовем у = (С, о, р, F) помеченной сетью Петри для сети Петри С, помечения о, начальной маркировки р и множества заключительных состояний F. Для данной помеченной сети Петри у можно определить 12 языков: Ц^, G(y), Р(у), 7(у), U^, СДу), 7Ду), РДу),
(Т), Тх (у),(т).
Различные определения языков сетей Петри связывают с данной сетью Петри различные языки. Рассмотрим, например, сеть Петри на рис. 6.2. На сети задана начальная маркировка (1, О, О, 0) и каждый переход tj помечен оДj). Если мы определим F = = {(0, 0, 1, 0)} (одна фишка в позиции р^, языком L-типа будет {ancbn \п ^ 0}, языком G-типа — \amcbn\rn > п >0}, языком 7-типа — \amcbnd\m > п > 0), а языком Р-типа — ^ат\т > 0} U ^атсЬп \т > п > 0} U {awcW|m > п > 0}. Языки всех четырех типов для этого примера различны. Данная функция помечения является свободным помечением, но при использовании других функций помечения можно получить и другие языки.
Несмотря на различия в определениях, классы языков сетей Петри тесно связаны. Например, множество свободных помечений включено в множество не-Х-помечений, которое является подмножеством множества Z-помечений. Таким образом,
UclLclL1-,Pcjcf,
G^Gc Gx,PfcPcPx.
Кроме того, всякий язык P-типа является языком G-типа с F = — {(О, 0,0)}. Поэтому
P# СОЛ Pc G, Рх с Gx.
Можно показать также, что всякий язык типа G или G^ является языком типа L или 1? соответственно. Пусть L — язык G-типа для сети Петри (Р, Т, I, О), начальной маркировки ц и множества заключительных состояний F. Построим новую помеченную сеть Петри с теми же позициями, но с дополнительными переходами, определенными следующим образом:
Рис. 6.2. Сеть Петри, иллюстрирующая различные классы языков. Каждый переход помечается меткой.
Пусть для каждого t^ ТВ, означает множество всех собственных подкомплектов O^tjY Всякий подкомплект из Bj используется для определения нового перехода, помеченного так же и имеющего те же входы, что и t j, но имеющего в качестве выхода этот подкомплект. Эти новые переходы добавляются к первоначальному множеству переходов.
Например, если рассмотреть переход а в сети Петри на рис. 6.2, то его входным комплектом является {рД, а выходным комплектом VPi» Р^У Подкомплектами1) {/?i, р-^ являются {рД, {р2} и {} 0). Этот переход влечет введение в сеть трех новых переходов. Все эти новые переходы будут помечены а и иметь входной комплект {/?)}, но выходными комплектами будут три указанных выше подкомплекта (по переходу на каждый подкомплект). Для переходов Ь, с, d также будут введены новые переходы, которые будут иметь те же входы, но пустые выходы (поскольку в имеющейся сети выходы образованы одноэлементными комплектами, следовательно, единственным подкомплектом будет 0). Новая сеть Петри показана на рис. 6.3.
Эта новая сеть модифицируется таким образом, что лишние фишки, превышающие заключительное состояние из F, не обязательно будут воспроизведены, если выбирается новый переход,
О Точнее, собственными подкомплектами. — Прим, персе.
имеющий меньше выходов. Таким образом, язык Л-типа новой сети совпадает с языком G-типа старой сети.
В описанной конструкции требуется создание новых переходов с теми же метками, что и прежние, поэтому никакого вывода относительно соотношения Gz и U из этой конструкции сделать нельзя.
G^L, G'^L".
Рассмотренную конструкцию можно также незначительно модифицировать для того, чтобы показать, что обобщение определения
Рис. 6.3. Сеть" Петри, язык L-типа которой совпадает с языком G-типа сети Петри, приведенной на рис. 6.2.
языка L-типа (допускающее неполное задание заключительных маркировок) не изменяет классов L и Lx . Пусть заключительная маркировка сети Петри с п позициями является n-вектором над N U {со}. Если со является компонентой заключительной маркировки, то это означает, что мы не должны заботиться о вхождении значения этой компоненты в заключительное состояние. Состояние s является заключительным, если существует такая заключительная маркировка Д что для всех Д 1 < t < п, из Д ^ со следует Si = ft. Это определение более общее, чем данное ранее определение языков L-типа.
Рассмотрим сейчас язык, определяемый сетью Петри и не полностью заданной заключительной маркировкой f. Пусть т—множество всех позиций, для которых ft = со. Пусть для каждого t j ^Т, удовлетворяющего 0(1^ П т ^ 0, ру = О(/у) Пт и фу = = 0(tj) — р у. Комплект ру включает все позиции, маркировка которых не принимается во внимание, тогда как комплект фу, включает все позиции, маркировка которых должна быть задана точно так же, как в заключительной маркировке f. Введем в сеть новые переходы, их метки и входные комплекты совпадают с метками и входными комплектами t j, а выходные комплекты образованы фу + £, где ^ — любой подкомплект ру. Эта конструкция действительно не меняет поведения позиций, не входящих в т, но позволяет позициям, непринимаемым во внимание, иметь произвольное число фишек, меньшее или равное числу фишек, которые должны
быть в первоначальной сети. Таким образом, для каждого предложения обобщенного языка первоначальной сети можно выбрать соответствующие переходы для запуска их в то время, когда сеть достигает такого состояния s, что St = ft для /z- =# co, S; = 0 для ft = со. Следовательно, язык 7-типа для построенной сети Петри с заключительной маркировкой f' (где все ю в не полностью заданной маркировке f заменяются на 0) совпадает с обобщенным языком первоначальной сети (т. е. определенным не полностью заданной заключительной маркировкой f).
В случае языков, определяемых множеством не полностью заданных заключительных маркировок (в отличие от единственной такой маркировки, как в только что рассмотренном случае) на основе того, что языки типа L (и Р ) являются замкнутыми по отношению к операции объединения (см. разд. 6.5.2), можно показать, что данные языки остаются еще языками типа L (или Lx).
Вводя не полностью заданные заключительные маркировки, можно показать, что языки 7-типа являются также языками 7-типа (за исключением, быть может, свободных языков 7-типа).
Заключительным состоянием р для языка 7-типа является такое состояние, что никакой из переходов tj нельзя запустить (т. е. р > Ц1 для всех tj^TY Таким образом, условие, задающее заключительное состояние для языка 7-типа, в точности противоположно условию, задающему заключительное состояние для языка (7-типа. (Можно назвать язык 7-типа обращением языка G- типа.) Нетрудно видеть, что такое множество маркировок может быть описано конечным множеством не полностью заданных маркировок (как это сделано в разд. 5.4). Например, условие (р > (2, 0) и р > (1, 1)) эквивалентно (р = (0, со) или р = (1, 0)). Язык 7-типа (или в более общем случае обращение языка G-типа) можно поэтому представить обобщенным (т. с. не полностью заданным) языком 7-типа и, следовательно, языком 7-типа. Таким образом, Т L и 7х Iх.
Как известно, [И5] всякий язык 7х-типа можно построить по’ сети Петри, в которой каждый переход имеет входную позицию, и по единственной заключительной маркировке, являющейся нулевой, т. е. такой, при которой нельзя запустить никакой переход. Если к каждой позиции добавить Х-переход с одним входом и одним выходом, совпадающим с входом (т. е. петлю),' то язык не изменится, а нулевая маркировка станет единственной терминальной маркировкой. Следовательно, 7х г 7х , но из предыдущих рассуждений 7х 7х , поэтому классы языков эквивалентны, 7х = 7х .
На рис. 6.4 графически представлены соотношения рассмотренных классов языков сетей Петри. Дуга между классами означает включение одним классом языков сетей Петри другого.
Произвольное помечениеПроизвольное помечениеLLpfpfЛ-с8ободное Свободноепомечениепомечение
Произвольное помечение
Произвольное помечение
L
L
pf
pf
Рис. 6.4. Известные соотношения между классами языков сетей Петри. Дуга из класса А в класс В означает, что класс А включает класс В.
Свойства языков сетей Петри
Исследование языков сетей Петри только начинается, и в настоящий момент сведения о свойствах этих недавно определенных классов языков ограниченны. Сила сетей Петри отражается в разнообразии классов языков сетей Петри. Новизна исследований объясняет нашу неспособность показать все взаимосвязи между этими языками или обосновать важность только некоторых из классов. Это приводит к широте области исследований, необходимости определения свойств 12 различных классов языков.
Очевидно, что все 12 классов языков исследовать в этой книге невозможно, поэтому мы ограничимся рассмотрением здесь только одного класса языков сетей Петри, а именно языков P-типа. Основными причинами такого решения являются ограниченность объема монографии и то, что этот язык уже исследовался в литературе [236, 115]. Некоторые результаты были получены Хэком [115] и для префиксных языков (т. е. P-типа) и будут представлены в нашем заключении. Языки G- и 7-типа были определены, но никакой работы по их развитию нс проводилось. Напомним, что класс языков 7-типа включает классы языков 7-, G- и P-типа. Таким образом, языки 7-типа в некотором смысле образуют наибольший класс языков сетей Петри, и поэтому понятно, почему они исследовались первыми.
При изучении свойств языков сетей Петри 7-типа обратимся к двум аспектам. Сначала представим свойства замкнутости сетей Петри!) по отношению к некоторым обычным операциям: конкате-
О Точнее, языков сетей Петри. — Прим, персе.
нации, объединению, параллельной композиции, пересечению, обращению, дополнению, бесконечной конкатенации и подстановке. Затем рассмотрим взаимосвязь между языками сетей Петри и классическими формальными языками: регулярными, контекстно-свободными, контекстно-связанными и типа 0. Это позволит оценить силу и ограниченность языков сетей Петри (Л-типа), а также покажет, как можно исследовать другие классы языков сетей Петри.
Хотя нас интересует весь класс языков сетей Петри L-типа, ограничимся рассмотрением только множества сетей Петри стандартного вида. Это ограничение вводится для того, чтобы облегчить доказательства и конструкции; оно не ограничивает класс языков сетей Петри. Всякий язык сетей Петри может порождаться множеством сетей; выберем для работы только сети, обладающие определенными свойствами. Для доказательства того, что это не сокращает множество языков, покажем, что для всякого языка сети Петри L-типа существует сеть Петри стандартного вида, порождающая его.
Определение 6.5. Помеченная сеть Петри у = (С, о, p, F) с языком Цч), имеющая стандартный вид, удовлетворяет следующим условиям:
Начальная маркировка р состоит точно из одной фишки в начальной позиции ps и не имеет фишек в других позициях. р8 4
4 O(t j) для всех t j^T.
Существует позиция pf g Р, такая, что
F = {pf} (если X £ Цу)) и F = ^Рр Ps} (если ^ €Цу)1};
Pf 4 Htj) для всех t j е Т;
6(p',Z J нс определено для всех i j g Т и р' g 7?(С,р), имеющих в pf фишку (т. е. y/(pf) > 0).
Выполнение сети Петри стандартного вида начинается с одной фишки в начальной позиции. Первый запускаемый переход удаляет эту фишку из начальной позиции, после чего начальная позиция остается уже до конца выполнения пустой. Сеть Петри останавливается, если фишка помещается в заключительную позицию.
Эту фишку нельзя удалить из заключительной позиции потому, что, во-первых, никакой переход не имеет заключительной позиции в качестве входной, а, во-вторых, все переходы не разрешены. Таким образом, выполнение сети Петри стандартного вида достаточно просто. Это очень полезно при построении композиций из сетей Петри. Для того чтобы показать, что сети стандартного вида не менее мощны, чем обычные сети Петри, докажем следующую теорему.
Теорема 6.1. Всякая сеть Петри эквивалентна сети Петри стандартного вида.
Доказательство. Доказательство проведем с помощью вспомо-
О F состоит из маркировки, содержащей фишку в pf (если k4L^> а также маркировки, содержащей фишку в ps (если X 6 Цу))* — Прим, перев»
Рис. 6.5. Приведение сети Петри к стандартному виду. Выполнение этой сети совпадает с выполнением первоначальной сети.
гательного построения. Пусть у = (С, о, р, F) — помеченная сеть Петри с С = (Р, Т, /, О). Покажем, как построить эквивалентную сеть у' = (О', о', р', F') с С' = (Р', Т, Г, О') стандартного вида (рис. 6.5).
Прежде всего введем три новые позиции pr, pf и р8, которых не было в Р. Позиция р8 является начальной, pt — заключительной, а рг — позиция «действия»; для того чтобы запуск любого перехода в Т был разрешен, в позиции рт должна быть фишка. В начальной маркировке С' будет только одна фишка в р8; заключительная маркировка будет содержать одну фишку в р8 (если X £ Цу)) или в р^ (если X 6 Ц^))-
Теперь необходимо гарантировать, что всякая последовательность переходов в С, приводящая из начальной маркировки в заключительную, повторима в С'. Рассмотрим для этого три типа строк в Цч)- Во-первых, пустая строка учитывается определением F'. Принадлежность X языку L(^) определяется проверкой того, является ли начальная маркировка р заключительной, р e F. Во-вторых, для всех строк длины 1 в Цч) введем в С' специальный переход из р8 в pf следующим образом: для а О, такого, что а Е Цу), определим к ^Т' с I^k ) = {/?s}, 0(4 ) = f^}. Меткой 4 будет а. Установить принадлежность а языку Цч) можно, рассматривая все переходы 15 ^Т с o(t j) = а и проверяя, нс принадлежит ли б(р, tj) F.
Наконец, рассмотрим все строки длины больше 1. Эти строки получаются в результате запуска последовательности t jYt j jt переходов T. Нам бы хотелось определить последовательность at.^ tj^-tj. b с новыми переходами а и Ь. Переход а будет брать фишку из ps и порождать начальную маркировку р сети С плюс фишку в рг. Каждый переход tj в Т идентичен переходу t j в Т, за исключением того, что рт является для него входной и выходной. Это позволит нам запретить все переходы в Т путем удаления фишки из рт. Переход b будет удалять фишку из рГ) уничтожать заключительную маркировку С и помещать фишку в р^. При таком построении фишка будет перемещаться из начальной позиции в заключительную только в результате последовательности ahi * * * hi ^’ соответствующей последовательности ^ ... tj., которая переводит р в заключительную маркировку в С.
К сожалению, поскольку в С', но не в С будут присутствовать лишние символы, соответствующие переходам а и Ь, полученная последовательность окажется длиннее. Выходом из такого положения явилось бы пустое помечение а и Ь, но в языках Л-типа оно неразрешено. Для обхода этой трудности мы вынуждены «слить» переходы а и ^ в один переход tj^ а переходы b и tjt — в переход tj.. Переход в Т для всякого tj^T определяется следующим образом:
Вводим в Г h с /(//) = /(/у) и ^Рт^ И О(//) = O^tj) и ^PtY
Если /(/;)— Н0 (т- е- входы в tj образуют подмножество) начальной маркировки, вследствие чего t j может быть первым запускаемым в С переходом), вводим в Т переход t, с I^t^ — {/7S} и о^ = ц—/(/;) + 0(G) и {рц
Если 0(tj^ р' для некоторой р' £ F (т. е. tj может быть последним переходом, запуск которого приводит к заключительной маркировке), вводим переход t"j с /(/у) = р/ — O(tj) + /(/у) U и <рд и 0^) = {ру}.
Помечение о' определяется следующим образом:
Любая строка а g Цу) порождается по определению последовательностью tj^t^,..., tjb такой, что оЦ,,//,,..., /Ц = а. По построению
а = о'(Г( t'..t' t’"),X 1 1 12 / j /
Рис. 6.6. Сеть Петри нестандартного вида. Позиция pi является и начальной, и заключительной.
Рис. 6.7. Сеть Петри стандартного вида, эквивалентная сети Петри, приведенной на рис. 6.6. (
поэтому а L(y). Следовательно, Л (у) = L(Y) и сети у и у' эквивалентны. Сеть у' имеет по построению стандартный вид.Г]
На рис. 6.6 приведена простая сеть Петри, не имеющая стандартного вида. Применение к этой сети Петри конструкции из доказательства приводит к сети Петри, показанной на рис. 6.7.
Свойства замкнутости
Перейдем к изучению свойств замкнутости языков сетей Петри по отношению к некоторым видам композиции (объединению, пересечению, конкатенации, параллельной композиции, и подстановке) и по отношению к некоторым операциям (обращению, дополнению и бесконечной конкатенации). Изучение этих свойств интересно по двум причинам. Во-первых, оно увеличивает наши знания о свойствах и ограничениях языков сетей Петри как языков. Во-вторых, многие из перечисленных типов композиции отражают процесс композиционного проектирования и конструирования больших систем из малых, поэтому данное исследование может оказаться полезным для разработки методов синтеза.
Большинство из свойств замкнутости касаются композиций языков сетей Петри. Рассмотрим два языка сетей Петри, Lx и L2. Мы знаем, что каждый из них порождается некоторой сетью Петри стандартного вида. Поэтому можно рассматривать две помеченные сети Петри стандартного вида, yi = (Сь аь pi, Fx) и у2 (С2, а2, Н2, ^2), cL! = Ц^Й и L2 — L^- Поскольку сети стандартного вида, Yt имеет начальную позицию pS1 Е Р^ а у2 — Psa Е €Л- Кроме того, Ft = ^Р$И РтЛ или {PhL a F2 = Vps2, Pt Л ИЛИ {р/2}.
Покажем, как из этих двух помеченных сетей строится новая помеченная сеть Петри у' = (С', o', р', F') с языком ЦУ), который является композицией Lx и L2 требуемого типа. Описываемые конструкции будем иллюстрировать примерами сетей Петри.
Начнем рассмотрение свойств композиции языков сетей Петри с конкатенации, объединения, пересечения и параллельной композиции. Затем исследуем обращение и дополнение языка сети Петри и, наконец, подстановку.
Конкатенация
Многие системы представляют собой последовательную композицию двух подсистем. Каждую из подсистем можно представить сетью Петри со своим языком. При последовательной комбинации двух систем соответствующее выполнение является конкатенацией выполнения из первого языка сети Петри и выполнения из второго. Конкатенация двух языков формально определяется как
^1^2 ^ {^1^2 | ^1 ^.Цв -^2 6^2}*
Теорема 6.2. Если Lx и L2 — языки сетей Петри, то L^ — язык сети Петри.
Доказательство. Определим у' таким образом, чтобы заключительная позиция Yj совместилась с начальной позицией у2. Тогда переход, помещающий фишку в pft1 будет свидетельствовать о конце выполнения уь а также о начале выполнения у2. Любая строка конкатенации Lx и L^ является тогда путем из pS1 в р^х = р§2 и затем в р^2 в у и, следовательно, элементом L^y). Аналогично, если строка порождена сетью С', она является конкатенацией строки, порожденной уь и строки, порожденной у2.
Формальное определение У учитывает пустую строку и поэтому более сложно, у' можно определить как объединение yt и у2 со следующими дополнительными переходами. Для всякого tj^T2 с Ц1Й = {pS2} вводим новый переход Ц с /'(//) = VPtA и ОЦЦ) = = O^tj). Если pS1 Е Fx, то вводим также ty с ГЦ У) = {pS1} и О'^Л = o^t3Y
Помечение определяем, как о'^/) = ааЦй и а'Ц/') = ^^Цй- Новое заключительное множество г = Fx U F2, если pS2 Е Ц, в противном случае F = F2. □
a,bЪ
L(c')= (а+Ь)+ апЪп^п^У)
Рис. 6.8. Конкатенация двух языков сетей Петри. (Каждый переход в Сг фактически является парой параллельных конфликтующих переходов, помеченных а и b соответственно. — Прим, ред.)
Из этой теоремы следует, что класс языков сетей Петри замкнут по отношению к конкатенации. На рис. 6.8 показывается описанная конструкция для LY = (а + ЬУ" и Ц = апЬп.
Объединение
Другой общепринятый метод композиции систем — объедине-ние. В композиции такого вида будет выполняться любая, но толькоодна из подсистем. Эта обычная композиция языков аналогична
объединению множеств и определяется следующим образом:
Lr (J L2 = {х | х С ^i или х € ЦУ
Теорема 6.3. Если Lx и L2— языки сетей Петри, то Li U L2 — язык сети Петри.
Доказательство. Доказательство аналогично доказательству предыдущей теоремы.
Определим новую сеть Петри у', такую, что L(y') = Li и L2. В новой сети Петри две начальные позиции объединены в одну новую начальную позицию. Первый запускаемый переход удаляет фишку из начальной позиции, после чего либо сеть Петри yj (если переход был из Тху либо сеть Петри у2 (если переход был из Т2) будет действовать в точности так же, как до объединения.
Формально мы определяем новую начальную позицию ps и новый переход t$t для каждого t^^Ti с /(//J = ^ps3 и Ц для каждого t^ £ Тг с I^j) = VpszV г^н) = VpsY I\t^ = = {X} И O\tb\ = O^tjy O'<tj^ = O^tjy Функция помече- ния: о'^л) = «Л^а) и о'(//2) = o^Z/J. Новая начальная маркировка содержит одну фишку в ру новое множество заключительных маркировок F' — Fi U F^. Если pS1 £ Fi или pS2 £ F^ to, кроме того, ps^F'. □
На рис. 6.9 показана описанная конструкция для Lv = а(а + + b^b и L2 = ambn(m > п ^ 1).
Параллельная композиция
Еще один способ композиции двух сетей Петри заключается в разрешении одновременного выполнения двух* систем. Он допускает все возможные «перемешивания» выполнений одной сети Петри с выполнениями другой. Для представления такой параллельной композиции Риддл [258] ввел оператор ||, который определяется для а, Ь С S, и хь х2 Е 2* следующим образом:
ах^ || Ьх2 = а (хх || &х2) + b (ахг || х2),
а || X = X || а = а.
Параллельной композицией двух языков является
Ц II Ц = Vх! II х2 I Х1 6 Ц* х2 С ЦУ
В качестве простого примера рассмотрим языки Li = ^ab^ и L2 = {с}, язык Lt 11 L2 — это ^bc, acb, cab).
Легко показать, что регулярные, контекстно-связанные языки и языки типа 0 замкнуты по отношению к параллельной композиции, поскольку параллельная композиция двух конечных автоматов, линейно-ограниченных автоматов или машин Тьюринга
UCVa<a-¥b>b*ambn (т>п>\)
Рис. 6.9. Объединение двух языков сетей Петри.
являются конечным автоматом, линейно-ограниченным автоматом и машиной Тьюринга соответственно. Вследствие того что параллельную композицию двух автоматов с магазинной памятью нельзя преобразовать в другой автомат с магазинной памятью, контекстно- свободные языки не замкнуты по отношению к параллельной композиции. Для языков сетей Петри докажем следующую теорему.
Теорема 6.4. Если Lt и L2 — языки сетей Петри, то Ц | |L2 — язык сети Петри.
Доказательство. Сеть Петри, порождающая параллельную композицию Lj и L^ строится из сетей Петри, порождающих эти языки; в ней в качестве начальной маркировки фишки помещаются в начальные позиции у! и у2, новое множество заключительных маркировок определяется всеми маркировками, принадлежащими Ft (в позициях Р^ и F2 (в позициях Р^. □
Эта конструкция показана на рис. 6.10 для L^ = а(а + &)+ и L2 = са^пс№пс.
Пересечение
Как и в случае объединения, операция пересечения подобна теоретико-множественному определению пересечения и определяется для языков сетей Петри следующим образом:
Li f| L2 = {х | х С Lx и х £L2y
Теорема 6.5. Если /^ и L2 — языки сетей Петри, то L^ A L2 — язык сети Петри.
Конструкция сети Петри, порождающей пересечение двух языков сетей Петри, несколько сложнее рассмотренных ранее. Всякий раз при порождении строки, когда запускается переход в одной сети Петри, должен запуститься также переход в другой сети Петри с идентичной меткой. Если в каждой сети Петри существует более одного перехода с одной меткой, необходимо рассмотреть все возможные пары переходов двух сетей Петри. Для каждой такой пары мы вводим новый переход, который запускается тогда и только тогда, когда запускаются оба перехода в старых сетях Петри. Это достигается взятием в качестве входного (выходного) комплекта нового перехода суммы комплектов (см. приложение) входных (выходных) комплектов пар переходов старых сетей Петри. Следовательно, если /; £ Т^ и th £ Т^ такие, что о(/ J = о(/ь), то вводится переход tiik (Г с F^i^ = TiUj) + kM и O\tj^ = = Oi(/y) + O^thY Некоторые из таких переходов будут иметь в качестве входов начальную позицию. Если для перехода tjik^ Т, определенного описанным способом, F(tjtk) = Vpst, ps2V то заменяем этот переход на другой t$ik с Fktj^ = {Ps}- Эта конструкция, по существу, включает две первоначальные сети Петри
ЦС^ = ca3ncbInc A ca^cb^c
Рис. 6.11. Пересечение двух языков сетей Петри.
в синхронный режим выполнения. Такая составная сеть порождает пересечение L^ и L2. Описанная конструкция иллюстрируется на рис. 6.11.
Обращение
В отличие от рассмотренных до сих пор операций обращение, по-видимому, представляет только теоретический интерес. Обращение предложения xR—это предложение х, символы которого расположены в противоположном порядке. Мы определяем эту операцию рекурсивно:
aR = a, (ах^ = xRa
для agS,xgS*. Обращение языка определяется следующим образом:
LR^\xR\x^L\e
Теорема 6.6. Если L — язык сети Петри, то и LR — язык сети Петри.
Конструкция в этом случае тривиальна. Начальная и заключительная маркировки меняются местом, меняются местом также входные и выходные комплекты каждого перехода. Следовательно, L(y') = L^)R. Построенная сеть просто выполняет первоначальную сеть Петри в обратном порядке и обращает все порождаемые ею строки.
Дополнение
Дополнение L языка L над алфавитом 5 — это множество всех строк 5*, отсутствующих в L. Его можно представить как
L = 2* — L или L = {х 2* | х ( Ц.
Эта операция над языком сети Петри может быть полезной при анализе сетей Петри, так как проверка существования запрещенных состояний или запрещенных последовательностей в дополнении может оказаться легче, чем проверка их несуществования в языке сети Петри.
Замкнутость языков сетей Петри L-типа по отношению к дополнению — задача, которая ждет своего решения. Однако в [64] показано, что некоторые языки сетей Петри не замкнуты по отношению к дополнению, т. е. существуют языки сетей Петри, дополнения которых не являются языками сетей Петри.
Повторная композиция
Мы рассмотрели операции объединения, пересечения, конкатенации, параллельной композиции, обращения и дополнения. Для всех операций, кроме последней, мы описали конструкции, показывающие, что языки сетей Петри замкнуты по отношению к ним. Результаты позволяют сделать следующий вывод.
Следствие 6.1. Языки сетей Петри замкнуты по отношению к любому конечному числу выполнений операций объединения, пересечения, обращения, параллельной композиции и конкатенации, осуществляемых в любом порядке.
Доказательство следует из приведенных выше теорем.
Устраняя ограничение на конечность числа разрешенных операций, можно определить новую операцию. Бесконечная конкатенация (звезда Клини) языка — это множество всех конкатенаций
(произвольной длины) элементов языка. Она обозначается через L* и определяется как
L* = LULL\JLLL\J... .
Эта операция может оказаться полезной на практике. Бесконечная конкатенация подобна моделированию цикла. Кроме того, известно, что регулярные, контекстно-свободные, контекстно-связанные языки и языки типа 0 замкнуты по отношению к бесконечной конкатенации [130]. К сожалению, и весьма неожиданно оказалось, что языки сетей Петри не замкнуты по отношению к бесконечной конкатенации.
Это объясняется конечностью сетей Петри (конечное число позиций и переходов) и разрешающей природой изменения состояний (переходы запускать разрешается, но потребовать их запуска нельзя). Для построения сети Петри, порождающей бесконечную конкатенацию языка сети Петри, потребовалось бы в общем случае повторно использовать некоторую часть сети Петри, что позволяет фишкам появляться и оставаться в некоторых из повторно используемых позиций сети Петри. При последующем повторе эти фишки могут разрешить переходы, которые не должны запускаться.
Доказательство того, что сети Петри не замкнуты по отношению к бесконечной конкатенации, оказалось очень сложным. Идею, положенную в основу доказательства, можно продемонстрировать, рассмотрев пример. Ранее показано, что апЬп(п > 1)° — язык сети Петри. Мы утверждаем, что (апЬп)* не является языком сети Петри. Любая сеть Петри, порождающая ^апЬпУ, должна иметь некоторую позицию или множество позиций, кодирующих число п для каждой части строки. Эти фишки управляют порождением символов Ь. Сеть Петри, порождающая ^апЬпУ, должна использовать эти фишки более одного раза. Но, поскольку природа сети разрешающая, нельзя гарантировать, что эти позиции станут пустыми перед повторным использованием. Следовательно, для любой сети Петри, пытающейся породить ^апЬпУ\ существуют такие i, j, k, что сеть Петри порождает также некоторую строку следующего вида:
an%bnV.. ant bni... anj bnt ... an^bn^,
где nt >» n j. Основу формального доказательства того, что языки сетей Петри не замкнуты по отношению к бесконечной конкатенации, дал Косараю [159].
Читатель, знакомый с лингвистической теорией абстрактных семейств языков [100], легко докажет, что языки сетей Петри не замкнуты по отношению к бесконечной конкатенации. Хорошо известно, что наименьшие полные абстрактные семейства языков замкнуты по отношению к пересечению, а содержащие {я”^} содержат и всякое рекурсивно перечислимое множество. Таким об-
0 Рисунок 6.8 для п > 1. — Прим, перев.
разом, поскольку языки сетей Петри замкнуты по отношению к пересечению и {ап^} — язык сети Петри, то, если бы они были замкнуты по отношению к бесконечной конкатенации, они образовали бы абстрактное семейство языков. Однако нам известно, что ^wwR^ не является языком сети Петри (см. разд. 6.6.2), поэтому языки сетей Петри не замкнуты по отношению к бесконечной конкатенации. Эта аргументация принадлежит Мандриоли.
Тем не менее существует подкласс языков сетей Петри, замкнутый по отношению к бесконечной конкатенации,—это класс языков вполне оканчивающихся сетей Петри. Это понятие введено в [104] для моделей вычисления, основанных на сложных билогических графах. Мы заимствуем его определение и переводим в термины сетей Петри.
Определение 6.6. Сеть Петри является вполне оканчивающейся, если всякий раз, когда ее выполнение заканчивается, 1) в сети остается только одна фишка, находящаяся в заключительной позиции; 2) число фишек, находившихся в сети Петри, конечно.
Заметим сначала, что вторая часть определения не обязательна, поскольку если сеть Петри оканчивает выполнение, то делает это за конечное число шагов и, следовательно, порождает только конечное число фишек. Первая же часть определения обязательна. Сеть Петри можно рассматривать как машину, порождающую строки символов. Мы помещаем фишку на вход машины, и на ленте для нас печатается строка символов. В конце концов обнаружится, что машина остановилась (т. е. не существует разрешенных переходов). В обычном подходе, когда не имеется отпечатанного выхода, необходимо анализировать текущее состояние машины и проверять, достигнута ли заключительная маркировка. Если она еще не достигнута, мы не принимаем выданную строку и снова пускаем машину. Если же сеть Петри вполне оканчивающаяся, то нет необходимости анализировать текущее состояние машины, поскольку гарантируется, что заключительная маркировка будет достигнута.
Теперь легко видеть, как можно использовать вполне оканчивающуюся сеть Петри для построения сети Петри, порождающей бесконечную конкатенацию ее языка. Мы просто соединяем заключительную и начальную позиции. Поскольку всякий раз, когда фишка появляется *в заключительной позиции, сеть Петри, как мы знаем, бывает пуста, то при повторном использовании сети не будет запущен никакой нежелательный переход.
Этот подкласс сетей Петри не представляет большого интереса, поскольку можно показать, что между вполне оканчивающимися сетями Петри и конечными автоматами существует взаимно однозначное соответствие. Следовательно, языки вполне оканчивающихся сетей Петри являются регулярными, и, как уже известно, этот класс языков замкнут по отношению к бесконечной конкатенации. Таким образом, мы убедились, что изучение свойств систем,
моделируемых языками сетей Петри, ограничено конечными повторениями подсистем и бесконечными повторениями конечных подсистем.
Подстановка
Мы уже говорили, что системы можно проектировать и моделировать с помощью сетей Петри иерархическим образом. Это подразумевает сначала спецификацию схемы работы системы на уровне подсистем и затем последовательное уточнение этой схемы путем замены операций на их определения в терминах других операций. В случае применения сетей Петри уточнение может принимать форму подстановки целой сети Петри вместо перехода или позиции. Последнее не вызывает никаких трудностей, в связи с этим мы ограничим наше рассмотрение задачей подстановки подсети вместо перехода (операции) сети Петри.
Подстановку сети Петри вместо операции в другой сети Петри можно рассматривать как композицию языков двух сетей Петри. Поскольку операция представляется символом из 2, подстановка языка сети Петри L^ вместо символа а в другом языке сети Петри Lt определяется как замена всех появлений а в L на множество строк L2. Языки сетей Петри замкнуты по отношению к подстановке, если результат подстановки языка сети Петри есть также язык сети Петри. Вариациями подстановки являются конечная подстановка, при которой L2 — конечное множество строк, и гомоморфизм, при котором L2 — одна строка.
К сожалению, вновь результат отрицателен: языки сетей Петри не замкнуты по отношению к обычной подстановке. Это следует из примера подстановки L2 = anbn вместо с в Li — с*. Причиной опять является возможность повторного запуска сети Петри. В случае же конечной подстановки или гомоморфизма L2 является регулярным языком, следовательно, можно построить вполне оканчивающуюся сеть Петри, порождающую его, из чего вытекают следующие теорема и следствие.
Теорема 6.7. Если L2 — регулярный язык, a Li — язык сети Петри, то результат подстановки L2 вместо любого символа Li — язык сети Петри.
Следствие 6.2. Языки сетей Петри замкнуты по отношению к конечной подстановке и гомоморфизму.
Языки сетей Петри и другиеклассы языков
Рассмотрев свойства языков сетей Петри как класса языков, мы обращаемся теперь к исследованию взаимосвязи между языками сетей Петри и другими классами языков. Рассмотрим, в частности,
классы регулярных, контекстно-свободных, контекстно-связанных языков и языков типа 0.
Регулярные языки
Одним из простейших и наиболее изученных классов формальных языков является класс регулярных языков. Эти языки порождаются регулярными грамматиками и конечными автоматами и характеризуются регулярными выражениями. Задачи эквивалентности
ЦС)={апЬл1л>1}
Рис. 6.12. Контекстно-свободный язык сети Петри, не являющийся регулярным.
и включения для двух регулярных языков разрешимы, известны алгоритмы их решения [130]. Такой набор желательных свойств языка сделал справедливым следующее утверждение.
Теорема 6.8. Всякий регулярный язык — это язык сети Петри.
Доказательство этой теоремы основано на том, что всякий регулярный язык порождается некоторым конечным автоматом, а мы показали (см. разд. 3.3.1), что всякий конечный автомат можно преобразовать в эквивалентную сеть Петри).
Обратная теорема не верна. На рис. 6.12 изображена сеть Петри, порождающая контекстно-свободный язык {алЬл|п > 1}, который не является регулярным. Таким образом, не все языки сетей Петри являются регулярными.
Контекстно-свободные языки
Сеть на рис. 6.12 свидетельствует о том, что не все сети Петри являются регулярными, прскольку язык показанной сети Петри является контекстно-свобдйным, но не регулярным. Не все языки сетей Петри являются и контекстно-свободными, о чем свидетель-
ствует сеть, показанная на рис. 6.13, имеющая контекстно-связанный, но не контекстно-свободный язык. В отличие от случая с регулярными языками существуют также контекстно-свободные языки, не являющиеся языками сетей Петри. Примером такого языка служит контекстно-свободный язык {^^It^g 2*}. На основе этого доказывается следующее утверждение.
Рис. 6.13. Контекстно-связанный язык сети Петри, не являющийся контекстно-свободным.
Теорема 6.9. Существуют контекстно-свободные языки, не являющиеся языками сетей Петри.
Доказательство. Допустим, что существует сеть Петри с п позициями и т переходами, порождающая язык wwR. Пусть к — число символов в 2, &> 1. Пусть для входной строки xxR г равно |х|, т. е. длине строки х. Поскольку возможно кг входных строк х, сеть Петри должна иметь кг различных достижимых состояний, получающихся после запуска г переходов, для того, чтобы запомнить строку х. Если состояний меньше, то для некоторых строк Х] и х2 6(ц, xj = 6(р, х2), Xi Ф х2. Тогда очевидно, что 6(р, х^) = = 6(6(p,xi),xf) = 6(6(р,х2),Х2) = 6(р,х2х^) £ F, и сеть Петри будет порождать строку х^х^ которую не должна порождать.
В разд. 4.2.2 мы показали, что для каждого перехода существует вектор Vj~ ^[/] • D, такой, что если 6(9, t j) определено, то оно принимает значение q + уу-. Следовательно, после подачи г входных символов, т. е. запуска последовательности переходов tixti4...tin получим состояние qr:
i 1
Сумму в выражении можно представить другим способом:
Яг = И 5
i
где fj — число запусков перехода tj в последовательности А,А, •••ti (f = (A. А, •••> fm) — вектор запуска). Кроме того, известно, что г
Sfj = r.
i
В лучшем случае векторы иь и2, .... ит будут линейно независимы, и каждый вектор запуска (А, А. •••> Ап) будет представлять единственное состояние qr. Так как сумма коэффициентов А равна г, вектор (А, А. •••■> fm) образует разбиение целого г на т частей. Как показал Кнут [156], число разбиений целого г на т частей равно
/г + т — 1 \
\ т — 1 / '
Теперь, поскольку
то в множестве достижимости после запуска последовательности переходов длины г имеется строго меньше, чем (г + т)т, достижимых состояний. Тогда для достаточно большого г имеем
/г+ т —1\ ( m_\ )<(r + m)m<fer,
и, следовательно, невозможно иметь кг различных состояний для всякой из кг возможных входных строк. Таким образом, никакая сеть Петри не может порождать язык wwR. □
Доказательство этого факта проливает некоторый свет на ограниченность сетей Петри как машин, порождающих языки, и, следовательно, на природу языков сетей Петри. В сетях Петри нет возможности запомнить произвольно длинную последовательность произвольных символов. Из доказательства становится очевидно, что в сетях Петри можно запомнить последовательности ограниченной длины (но это возможно и в конечных автоматах). Другой особенностью сетей Петри является способность запоминать число появлений символа, как, например, в языке апЬпс\ в пределах, не доступных для систем, порождающих регулярные и контекстно- свободные языки. Однако сети Петрине обладают «объемом магазинной памяти», необходимым для порождения контекстно-свободных языков. Скорость роста пространства достижимых состояний с ростом длины входной строки для сетей Петри комбинаторна1), но не экспоненциальна, т. е. «объема магазинной памяти» недостаточно.
О То есть порядка числа сочетаний из т по п для некоторых тип. — Прим, перев.
Причина того, что сети Петри способны порождать языки, которые не могут порождаться автоматами с магазинной памятью, несмотря на меньший размер пространства состояний, заключается в более гибких взаимосвязях между состояниями сети Петри по сравнению с ограниченными путями между состояниями в автомате с магазинной памятью. Это объясняется ограничениями в автомате с магазинной памятью на доступ только к верхнему элементу магазина, тогда как в сетях Петри возможно обращение к любому ее счетчику в любой момент времени.
Теперь, когда мы показали, что не все контекстно-свободные языки являются языками сетей Петри и не все языки сетей Петри являются контекстно-свободными, естественно возникает вопрос: что из себя представляет класс языков, являющихся одновременно контекстно-свободными и языками сетей Петри? В настоящее время мы не в состоянии дать полный ответ на этот вопрос, но известна некоторая информация о языках, входящих в пересечение упомянутых классов. Одним подмножеством класса контекстно-свободных языков сетей Петри является класс регулярных языков. Другим — множество ограниченных контекстно-свободных языков, которые исследовались Гинзбургом [99].
Ограниченные контекстно-свободные языки
Контекстно-свободный язык L называется ограниченным контекстно-свободным, если в 2* имеются такие слова (строки) wb w^ ..., wm, что
L с w\w*2... ^.
Термин «ограниченный» относится к конечному числу слов w^ ау3,... ..... wm. Гинзбург разработал детально описанную процедуру проверки свойств ограниченных контекстно-свободных языков. Он заметил, что в то время не было сведений о неразрешимых задачах, касающихся ограниченных контекстно-свободных языков.
Ограниченные контекстно-свободные языки характеризуются следующей теоремой, предложенной Гинзбургом [99, теорема 5.4].
Теорема 6.10. Семейство ограниченных контекстно-свободных языков является наименьшим семейством множеств, определяемых следующим образом:
Если W — конечное подмножество 2*, то Ц7— ограниченный контекстно-свободный язык.
Если Fj и F2 — ограниченные контекстно-свободные языки, то Ц7, и И72 и WiW3 — ограниченные контекстно-свободные языки.
Если IT — ограниченный контекстно-свободный язык и х, у £ 2*, то {^Wy^i >0} — ограниченный контекстно-свободный язык.
Мы уже показали (разд. 3.3.1), что всякий конечный автомат^, а также всякий регулярный язык и всякое конечное подмножество 2* являются языками сетей Петри. В разд. 6.5.1 и 6.5.2 показано, что языки сетей Петри замкнуты по отношению к конкатенации и объединению. Следовательно, необходимо показать только, что п. 3 также выполняется для языков сетей Петри. С этой целью построим сеть Петри у' — (С', 2, р/, F'), порождающую язык {х^у\1 > 0} по данным сетям Петри стандартного вида ут =
(Сх) ^» Их» ^х)> Yy ^у» ^» Ну» ^у) и Y^ (^uz > ^, Ни?» ЛД порождающим х, у и W соответственно, у' объединяет сети Петри Тх» Yy» Yu? и новую позицию р таким образом, что всякий раз после выполнения ух в р помещается фишка. Позиция р служит счетчиком числа выполнений сети ух. После выполнения необходимого числа раз сети ух выполнится ^w и, наконец, выполняется повторно уу, удаляя каждый раз одну фишку из р. Поскольку входная строка порождается корректно, только если сеть Петри пуста (за исключением F\ определенного, как FyY мы уверены, что число выполнений ух и ^у равно.
Эта конструкция, иллюстрируемая на рис. 6.14 для х = ab, у = Ь(а + Ь) и W = Ь^а, показывает, что {x^z/^z > 0} — язык сети Петри. Таким образом, любой ограниченный контекстно-свободный язык — это язык сети Петри.
Существуют ли контекстно-свободные языки, являющиеся языками сетей Петри, но не являющиеся ограниченными? К сожалению, ответ положителен. Гинзбург показал, что регулярное выражение (а + by не является ограниченным контекстно-свободным языком. Так как этот язык — контекстно-свободный язык сети Петри, очевидно, что ограниченные контекстно-свободные языки являются лишь собственным подмножеством семейства контекстносвободных языков сетей Петри. Кроме того, язык {(а + by апЬп\п> > 1}, являющийся контекстно-свободным, не ограничен и не регулярен. Для полной характеризации множества контекстно-свободных языков сетей Петри необходимы дальнейшие исследования.
Существование и регулярных множеств, и ограниченных контекстно-свободных языков в качестве подмножеств класса языков сетей Петри оказывается полезным, поскольку оба класса языков имеют желательные свойства и некоторые благоприятные для анализа характеристики.
Контекстно-связанные языки
Мы исследовали взаимосвязь языков сетей Петри с регулярными языками и с контекстно-свободными языками. Обратимся теперь к контекстно-связанным языкам. На рис. 6.13 показан язык сети Петри, являющийся контекстно-связанным; мы докажем что все
Рис. 6.14. Сеть Петри, порождающая язык ^xlWyl\i > 0}. Эта конструкция показывает, что все ограниченные контекстно-свободные языки являются также языками сетей Петри.
языки сетей Петри — контекстно-связанные. Поскольку известно, что все контекстно-свободные языки являются контекстно-связанными и существуют контекстно-свободные языки, не являющиеся языками сетей Петри, приходим к выводу, что существуют контекстно-связанные языки, не являющиеся языками сетей Петри. Следовательно, включение — собственное.
Теорема 6.11. Все языки сетей Петри являются контекстно-связанными.
Доказательство того, что все языки сетей Петри являются контекстно-связанными, довольно сложно. Существуют два способа показать, что язык контекстно-связанный: построить контекстносвязанную грамматику, порождающую его, или определить недетерминированный линейно-ограниченный автомат, порождающий этот язык. Питерсон [236] показал, как определяется контекстно-связанная грамматика, порождающая язык сети Петри. Здесь мы показываем как линейно-ограниченный автомат может породить язык сети Петри.
Линейно-ограниченный автомат подобен машине Тьюринга. Он имеет конечное множество состояний, головку чтения/записи и (бесконечную в обе стороны) ленту. Ограничением, отличающим его от машины Тьюринга, служит то, что длина участка ленты, который можно использовать, ограничивается линейной функцией от длины входной строки. В этом смысле он подобен автомату с магазинной памятью, порождающему контекстно-свободный язык (поскольку максимальный размер магазина ограничен линейной функцией от входной строки), за исключением того, что линейноограниченный автомат имеет произвольный доступ к своей памяти, тогда как магазинный автомат имеет доступ к памяти только с одного конца.
Для порождения языка сети Петри ее можно промоделировать, запоминая после каждого входного символа число фишек в каждой позиции. Какова скорость роста числа фишек как функции от длины входной строки? Рассмотрим число фишек, полученное после г запусков переходов. Это число, обозначаемое с, для последовательности переходов tixtir..tir равно
= - 1 +2( I О(^.)|^|/(^)1)
Так как числа ^(.рь, (0(17)) и #(рь /(^)) и, следовательно, |/(/у) | и |О(/7) | (мощности входного и выходного комплектов) фиксированы для данной сети Петри, то существует максимальное значение разности /:
/ = max ( | О (^) | — | / Vj) | ).
Таким образом, с = 1 + 2 ( | О С/.) I — I ^ (^.) | )< 1 + г • /.
/ 1 i
Языки типа 0 (7-0)
Рис. 6.15. Взаимосвязь языков сетей Петри с традиционными классами языков.
Число фишек, а следовательно, и объем памяти, необходимый для запоминания их, ограничены линейной функцией от длины входной строки. Поэтому языки сетей Петри могут порождаться линейноограниченными автоматами.
Этим доказательством мы показали, что все языки сетей Петри контекстно-связанные. Результаты нашего исследования взаимосвязи класса языков сетей Петри с другими классами языков сведены на рис. 6.15 и показаны там в виде графа и диаграммы Венна.
На рис. 6.16 приведены свойства языков сетей Петри [237, 115].
Дополнительные сведения
Большинство представленных здесь результатов приведены и в [237] и в [115]. Кроме того, Хэк исследовал множество задач разрешимости для языков сетей Петри. Задача принадлежности (яв-
Замкнутость по отношению к
Lx
L
Iх
pi
р
рх
Объединению
Нет
Да
Да
?
Да
Да
Пересечению
Да
Да
Да
Да
Да
Да
Конкатенации
?
Да
Да
?
Да
Да
Параллельной композиции
?
Да
Да
?
Да
Да
Регулярной подстановке
Нет
Х-сво- бодные
Да
?
Префиксные
Префиксные
Обратному гомоморфизму
Да
Да
Да
Да
Да
Да
Звезде Клини (итерации)
?
Нет
Her
?
?
?
Дополнению
Нет
?
Нет
Нет
?
Нет
Содержит регулярные языки
Нет
Да
Да
Нет
Префиксные
Префиксные
Симметрическая разность с контекстно-свободными языками (не пуста)
Да
Да
Да
Да
Да
Да
Контекстно-связанный?
Да
Да
?
Да
Да
?
Рис. 6.16. Свойства некоторых
языков
сетей
Петри
(взято из [237, 115])»
Разрешимость задачи
Z?
L
Lx
Pf
Р
Рх
Принадлежности
Р
Р
?
Р
Р
Р
Пустоты
?
?
?
Р
Р
Р
Конечности
?
?
?
Р
Р
Р
Эквивалентности и включения
?
Н
н
?
Н
Н
Рис. 6.17. Свойства разрешимости языков сетей Петри L- и P-типа (Р — разрешима, Н — неразрешима).
ляется строка а элементом языка А(у)?) разрешима, тогда как задача пустоты (является язык Цч) пустым?), как легко видеть, эквивалентна задача достижимости. Неразрешимы задача равенства двух языков сетей Петри и задача их включения.
Эти результаты сведены на рис. 6.17.
Другой подход к изучению сетей Петри с использованием теории формальных языков рассматривался в [61]. Они заметили сходство между запуском переходов и применением правил порождения в выводе, понимая позиции как нетерминальные символы,, а фишки — как отдельные экземпляры нетерминальных символов. Основное отличие заключается в отсутствии в сетях Петри информации об упорядочении, которая содержится в выводе в виде предложений. Оно привело к определению коммутативных грамматик
изоморфных сетям Петри. Кроме того, в [61] рассматривалась взаимосвязь сетей Петри с матричными [1], контекстно-рассеянными, нетерминально-ограниченными языками; языками, ограниченными по выводу; равноматричными языками и языками Сциларда. Нетрудно видеть, например, что класс U совпадает с множеством языков Сциларда матричных контекстно-свободных языков [64, 131].
Замечания к литературе
Имеются три хороших исследования языков сетей Петри: работы [237, 238], вероятно, менее труднодоступные, чем [115] (последнее исследование более строгое и полное); [61] — очень труднодоступная, но прекрасная работа, хорошо продуманная и изложенная.
Темы для дальнейшего изучения
Хотя в исследовании свойств языков сетей Петри сделано уже немало, многое еще предстоит сделать. Из всех определенных классов языков изучены только два — Р- и L-типа, и они только для обычных сетей. Было определено несколько подмножеств множества обычных сетей Петри: маркированные графы, бесконфликтные сети, простые сети, сети со свободным выбором (гл. 7). Каждый из этих классов сетей Петри, по-видимому, имеет свой класс языков с присущими им отличительными особенностями. Некоторые исследования этих классов уже проведены. Известно [115], что классы L, Lx , G, Gx , Р и Рх для простых сетей Петри (без петель и кратных дуг, все комплекты — множества, и для каждого tj I(t^ Л 0(/j) = 0) идентичны соответствующим классам для обычных сетей Петри. Нетрудно видеть также, что классы Lx , Gx и Рх не изменятся при ограничении сетей до сетей со свободным выбором (см. разд. 7.4.3). Остаются не изученными еще многие интересные случаи. В частности, языки, порождаемые маркированными графами или в общем случае бесконфликтными сетями, как оказалось, имеют структуру, напоминающую структуру детерминированных контекстно-свободных языков, их исследование многообещающе.
Еще одна важная открытая задача касается отличия между X- свободными языками (L, Р, ...) и неограниченными языками (Iх , Рх . ...). Например, не известно, выполняется ли L = Lx или нет.
Выберите класс языков сетей Петри, отличный от языков L-типа, и разработайте его теорию.
Определите все множество взаимосвязей между 12 классами языков сетей Петри, в частности для каждой пары классов языков сетей Петри, или покажите, что один класс содержится в другом, или найдите язык, находящийся в одном классе и не присутствующий в другом.
Рассмотрите возможность присвоения меток позициям сети Петри, а не переходам. Этот подход использовался в [104]. Определите осуществимость такого подхода и, если он возможен, разработайте новую теорию языков позиций сетей Петри.
Разработайте теорию языков сетей Петри, в которой сети Петри рассматриваются не как порождающие язык, а как распознающие его.
РАСШИРЕННЫЕИ ОГРАНИЧЕННЫЕ МОДЕЛИСЕТЕЙ ПЕТРИ
В гл. 3 мы показали, что сети Петри могут быть использованы для моделирования самых различных систем: аппаратного и программного обеспечения вычислительных машин, химических, социальных систем и т. д. Однако это разнообразие примеров лишь показывает, что сети Петри могут адекватно моделировать некоторые системы, но могут существовать системы, которые нельзя должным образом моделировать сетями Петри, т. е. мощность моделирования сетей Петри имеет пределы.
Кроме того, в гл. 5 показано, что не все вопросы анализа сетей Петри разрешимы. Так, неразрешимы задачи эквивалентности и включения для множеств достижимости сетей Петри и языков сетей Петри, хотя эти задачи могут оказаться очень важными для получения оптимальных сетей Петри. Даже те вопросы анализа, которые разрешимы, очень трудны, имеется в виду то, что они требуют большого объема вычислений.
В этой главе мы исследуем предложения, которые были сделаны для преодоления двух ограничений сетей Петри: ограничений на мощность моделирования сетей Петри и ограничений на мощность разрешения сетей Петри. Во- первых, рассмотрим некоторые предложения по расширению модели сети Петри. Расширение модели сети Петри должно увеличивать мощность моделирования сетей Петри, но при этом оно может уменьшать их мощность разрешения. Влияние любого расширения на мощность разрешения расширенной модели требует тщательного изучения.
Отметив, что расширение модели сети Петри может приводить к уменьшению мощности разрешения, мы рассмотрим также, как мощность разрешения может быть увеличена посредством ограничения модели сети Петри. Уже предложены различные подклассы моделей сети Петри, которые обусловлены ограничениями на структуру сети Петри. Необходимо исследовать влияние этих ограничений как на мощность моделирования, так и на мощность разрешения.
Такое исследование покажет, как взаимосвязаны мощность моделирования и мощность разрешения, а также укажет границы обеих для модели сети Петри.
Границы возможностей моделированияс помощью сетей Петри
Исследователи, использовавшие сети Петри для моделирования систем, обнаружили, что возможности моделирования сетями Петри реальных систем ограниченны. Этим объясняется появление тенденции к расширению модели. Имеется несколько типов расширений.
Патил [231] предложил расширить сети Петри путем введения понятия области ограничения. Область ограничения — это множество позиций. Правило запуска модифицируется таким образом, что переход может быть запущен тогда и только тогда, когда в результирующей маркировке не все позиции, входящие в область
ограничения, одновременно имеют фишки (не пусты). Например, если {рь р4^ есть область ограничения, то в любой момент времени либо рь либо р4 должны быть пусты. Если рх нс пуста, то фишка не может быть помещена в р4 до тех пор, пока все фишки из рх нс будут удалены, и наоборот.
Рис. 7.1. Переход исключающее ИЛИ. Переход tj может быть запущен, если одна из позиций р^ и р^ имеет фишку.
Ное в своей модели операционной системы CDC 6400 [214] ввел другое расширение: переход исключающее ИЛИ (рис. 7.1). В обычных сетях Петри переход запускается, когда все его входы имеют фишки. Такое правило называется логикой И, поскольку мы должны иметь фишки и в первом входе, и во втором входе, и в третьем входе и т. д. Переход исключающее ИЛИ может запускаться тогда и только тогда, когда точно один из его входов имеет фишки, а все другие фишек не имеют. Следовательно, разрешающее правило состоит в том, чтобы имел фишку или первый, или второй вход (но не оба одновременно). Когда переход запускается, он удаляет фишку только из входа с фишками.
Подобное расширение было использовано Баером в его модели компилятора [23]. Баер ввел понятие переключателя (рис. 7.2). Переключатель — это специальный переход со специальным входом, называемым переключающим, и точно двумя выходами (один помечен символом е для пустого переключающего входа, а другой помечен символом / — для непустого переключающего входа). Переключаемый переход запускается, когда он разрешен (независимо от состояния специального переключающего входа). Когда он запускается, фишка помещается в выход, помеченный символом е, если переключающий вход пуст, или в выход, помеченный символом /, если переключающий вход не пуст. Таким образом, в зависимости от состояния переключателя запуск переключаемого перехода приведет к одной из двух возможных маркировок. Фишка удаляется из переключающего входа, если он имел ее, поэтому после того, как переключаемый переход запустится, переключающий вход будет пуст.
Рассмотренные расширения сетей Петри были предложены для решения определенных задач, с которыми встретились исследователи
Рис. 7.2. Запуск переключателя. Позиция переключающего входа изображена в виде пятиугольника.
а — пустой переключатель; б — полный переключатель.
при попытках моделировать реальные системы. Однако акцент в этих работах сделан на моделирование, а нс на теоретическую мощность сети Петри, поэтому в них не рассматривается, были ли эти расширения необходимыми или достаточными для решения общих проблем моделирования. Фактически во всех случаях рассматриваемые сети были безопасными и, следовательно, множество достижимости — конечным, т. с. эти сети представляются конечными автоматами, которые в свою очередь (разд. 3.3.1) легко представляются ординарными сетями Петри. Очевидно, что в описанных случаях были введены не расширения, а некоторые удобства. В разд. 5.3 также показано, что многие расширения ограниченной модели сети Петри, например, допускающие кратные дуги и петли, в действительности являются нс расширениями, а средствами, облегчающими моделирование.
Из сказанного выше не становится ясным, что является ограничением (если оно существует) сетей Петри. Ответ на этот вопрос был найден после получения ответа на подобный вопрос о Р- и V- операциях Дейкстры над семафорами.
Дейкстра определил свои Р- и V-операции над семафорами для обеспечения синхронизации и связи в системах взаимодействующих процессов [78]. Семафор может рассматриваться как целочисленная
переменная, которая принимает только неотрицательные значения. V-операция над семафором S увеличивает значение семафора на единицу: S = S + 1. P-операция, наоборот, уменьшает S на единицу до тех пор, пока результат не становится равным нулю; при S = О процесс, прежде чем продолжать свою работу, должен ждать момента, когда S можно будет уменьшить. Связь между семафорами и сетями Петри была выявлена в разд. 3.4.8.
Поскольку Р- и V-операции были предложены как механизм для решения всех задач синхронизации программ, то естественно возникает вопрос о полноте, т. с. об их способности к решению всех задач координации. Патил в 1971 г. [233] предложил доказательство того, что Р- и V-операции недостаточно мощное средство для решения всех задач координации. Его подход был весьма прост: он сформулировал задачу синхронизации, которая не может быть решена с помощью Р- и V-операций, — это задача о курильщиках сигарет.
Задача о курильщиках сигарет включает (по меньшей мере) четыре процесса, которые моделируют агента и трех курильщиков. Каждый курильщик непрерывно изготавливает сигарету и курит ее. Чтобы сделать сигарету, необходимы три составные части: табак, бумага и спички. Один из курильщиков всегда имеет бумагу, другой — табак, а третий — спички. Агент обладает бесконечными запасами всех трех составных частей. Агент кладет две составные части на стол. Курильщик, имеющий третий недостающий ингра- диент, может сделать и закурить сигарету, сигнализируя об этом агенту. Тогда агент помещает другие два из трех инградиентов, и цикл повторяется.
Если семафор поставить в соответствие каждой составной части, задача о курильщиках формулируется в терминах семафоров. Семафоры первоначально равны нулю. Агент увеличит два из трех семафоров с помощью V-операций, а затем ждет семафора «сделано». Соответствующий процесс курильщика уменьшает два семафора (с помощью P-операций), а затем, произведя действия «сделать сигарету» и «закурить сигарету», увеличивает семафор, указывая «сделано». Задача заключается в том, чтобы разработать программу процессов курильщиков для того, чтобы определить, какой из трех процессов должен действовать в очередной момент. Действия агента фиксированны и не могут быть изменены.
Рис. 7.3 иллюстрирует очевидное «решение». Предположим, агент кладет табак и бумагу (V(0, V(p)]. Тогда курильщик с бумагой может взять табак [Р(/)1, а курильщик с табаком может взять бумагу [Р(р)], что в результате приводит к тупику.
Патил доказал, что никакая последовательность Р- и V-операций не может корректно решить эту задачу. Это было показано с помощью доказательства того, что все Р- и V-«peшeния» могут быть промоделированы сетями Петри определенного вида (каждый переход имеет не более двух входов), но что решением является сеть Пет-
I V(O
V(,)
voo
I V (m)
V (m)
Агент объединяет три процесса
Рис. 7.3. Задача о курильщиках сигарет.
ри другого вида, и нет способа преобразовать сеть одного вида в сеть другого вида, не допуская возможности возникновения тупика.
Существовали некоторые сомнения, связанные с решением Па- тила, — особенно в том, что касается массивов семафоров [230], но тем не менее идея решения верна. В [159, 7], следуя работе Па- тила, получена задача, которая нс может быть решена Р- и V-one- рациями или сетями Петри. То же ограничение мощности моделирования было ранее определено Келлером [150].
Задача, сформулированная в [159, 7], вполне реальна. Предположим, что мы имеем два процесса производителя и два процесса потребителя. Первый процесс: производитель Р^ создаст элементы данных для первого процесса потребителя Сь а другой производитель Р2 — для второго потребителя С2. Элементы данных, которые произведены, но еще не использованы, помещаются в буфер: буфер 61 для пары (Рь Ci) и 62 для (Р2, С2). Передача данных из буферов к потребителям происходит через общий канал. Канал может передавать только по одному элементу за сеанс, причем из любого буфера любому потребителю. Производители просто помещают данные в буфера. Потребители должны координировать свои действия по использованию канала. Управляющий потребитель приказывает каналу передать данные из соответствующего буфера. Все это схематично изображено на рис. 7.4.
Рис. 7.4. Процессы производителя/потребителя с буферизацией и совместно используемым каналом.
Главная проблема, связанная с этой системой, состоит в распределении канала. Пара производитель/потребитель (Рь CJ должна иметь приоритет по отношению к (Р2, С2) на использование канала. А именно, канал никогда нс должен передавать элементы данных из буфера S2 потребителю С2 до тех пор, пока буфер Bi не пуст. Это правило приоритета не позволяет системе быть моделируемой сетью Петри.
Идея доказательства относительно проста. Предположим, что мы находимся в состоянии, когда имеется р элементов в двух буферах By и В2. Если сейчас производитель Py делает перерыв, то все элементы из буфера By будут в конце концов переданы производителю Сь и буфер BY будет пуст. Это позволит переместить элементы из буфера В2 потребителю С2. Таким образом, существует путь из состояния р в состояние р', в котором потребитель С2 может использовать канал. Если сейчас в действительности производитель Py произведет дополнительно к элементов данных, то мы будем в состоянии р + к, а нс в состоянии р. Но из-за нечувствительности условий запусков переходов сетей Петри к числу фишек в позиции последовательность запусков, которая переводила нас из р в р', будет все еще допустимой и переведет нас из состояния р + к в состояние р' + к. И поскольку потребитель С2 мог использовать канал в р', а сеть Петри является нс чувствительной к числу фишек
в позиции, то потребитель С2 может использовать канал, несмотря на присутствие к элементов в буфере Bv Таким образом, нечувствительность условий запусков переходов сети Петри к числу фишек в позиции нс позволяет корректно моделировать эту приоритетную систему.
Болес конкретно ограничение на моделирование с помощью сетей Петри состоит в неспособности проверить на наличие точно определенной маркировки в некоторой неограниченной позиции и осуществить действие в зависимости от результатов проверки. Это ограничение общеизвестно как неспособность к проверке на нулевую маркировку в некоторой позиции, и поэтому это свойство известно как проверка на нуль [150]. Сети Петри не могут проверить неограниченную позицию на нуль. [Если позиция ограниченна, то нуль может быть выявлен. Для ограниченной позиции pt с границей к мы можем создать дополнительную позицию рг — такую, что сумма р(р^) + н(р/) является константой, равной к для всех достижимых маркировок. Это позволяет нам проверить, равняется ли р/р,) нулю, проверяя, равно ли ^Pt) к (см- разд. 5.6).]
Упражнения
Изобразите модель сети Петри для «решения» задачи о курильщиках сигарет с рис. 7.3. Покажите, что эта сеть не является активной. Предложите сеть Петри, которая может решить задачу о курильщиках сигарет. В чем эта вторая сеть отличается от первой?
Расширения
Как указанное ограничение мощности моделирования сети Петри соотносится с предложенными расширениями сетей Петри? Все предложенные расширения направлены на создание в сетях Петри возможности проверки на нуль. Самым простым расширением сетей Петри, которое допускает проверку на нуль, являются сдерживающие дуги. Сдерживающая дуга показана на рис. 7.5. Сдерживающая дуга из позиции pt в переход tj имеет маленький кружок, а не стрелку у конца дуги, присоединенного к переходу. Это обозначение перешло из теории переключательных функций, где маленький кружок означает «не»^. Правило запуска изменяется следующим образом: переход является разрешенным, когда фишки присутствуют во всех его (обычных) входах и отсутствуют в сдерживающих входах. Переход запускается удалением фишек из всех его (обычных) входов.
Таким образом, в расширенной сети Петри с рис. 7.5 переход с^ может быть запущен, только если фишки присутствуют в позициях Ь2 и р4 и отсутствуют в bv Эта сеть является решением для за-
1) Отрицание. — Прим, перев.
дачи о приоритетном совместном использовании канала, которая сформулирована в [159], чтобы показать ограниченность сетей Петри.
Сети Петри со сдерживающими дугами являются интуитивно самым прямым подходом к увеличению мощности моделирования с помощью сетей Петри. К тому же верно, что все другие предло
женные расширения сетей Петри либо на самом деле не являются расширением (то есть они фактически эквивалентны обычным сетям Петри), либо являются эквивалентными сетями Петри со сдерживающими дугами. Ниже обсудим несколько предложенных расширений для того, чтобы проиллюстрировать эту точку зрения.
Области ограничения
Области ограничения были предложены Патилом [231] для увеличения мощности моделирования сетей Петри. В контексте Патила области ограничения были только средством для того, чтобы сделать процесс моделирования проще, а не для того, чтобы увеличить мощность моделирования, поскольку все позиции в работе Патила были ограниченны. Однако определение областей ограничения не исчерпывается ограниченными сетями Петри, а для более общего класса сетей Петри верно, что они эквивалентны сетям Петри со сдерживающими дугами.
Чтобы показать эквивалентность областей ограничения и сдерживающих дуг, предположим, что мы имеем сеть Петри С = (Р, Т, /, О) с областью ограничения Qs Р. Мы должны гарантировать, что в любой достижимой маркировке не все позиции в Q имеют фишки. Это может случиться только тогда, когда переход t ь будучи запущенным, помещает фишки в те позиции области ограничения, ко-
Рис. 7.6. Сеть Петри с областью ограничения {рз, р7}> которая означает, что в произвольной достижимой маркировке фишки могут быть либо в рз, либо в Р7, но не в обеих одновременно.
Рис. 7.7. Сеть Петри со сдерживающими дугами, соответствующая сети Петри с ограничениями (рис. 7.6). Сдерживающие дуги гарантируют невозможность одновременного появления фишек в позициях рз и р7.
V27—562
торые не содержали фишек до того, как переход был запущен. Таким образом, для каждого перехода t j, выходные позиции которого являются членами области ограничения, мы должны гарантировать, что по меньшей мере один из членов области ограничения не будет маркирован после запуска этого перехода. Для обеспечения этого мы создадим для каждой позиции рк из области ограничения Q, не вошедшей в 0(/;), новый переход tj)k. Этот переход 11 lk идентичен tj, за исключением того, что он имеет сдерживающую
Рис. 7.8. Преобразование перехода в переход-НАЧАЛО и переход-КОНЕЦ с позицией, представляющей запуск перехода.
дугу из рк к tpk. Действие, производимое запуском tpk, совпадает с действием, производимым запуском tj, и, если tj может быть запущен без нарушения накладываемого областью ограничения, то по меньшей мере один из tj,k также может быть запущен.
В качестве примера такого построения рассмотрим сеть Петри на рис. 7.6. Если мы введем область ограничения {р3, р^ (то есть при любой маркировке позиции р^ и рч не должны одновременно иметь фишки), то эквивалентной сетью Петри со сдерживающими дугами будет сеть с рис. 7.7.
Преобразование сдерживающих дуг в области ограничения является более сложным. Мы не можем просто потребовать, чтобы выход перехода не был бы маркирован в одно время со сдерживающим входом, поскольку фишки могут быть помещены в выходные позиции другими переходами. Мы должны сосредоточить свое внимание на переходе t j. Потребуем расщепления каждого перехода tj на два перехода, t/ и t", и позицию р/. Мы определим 1^/) = I(tj) (без сдерживающих дуг) и О(//') = O^tj). Позиция р/ представляет запуск tj, поэтому О(//) = Vp/^ — K^D* Это показано на рис. 7.8. Теперь определим область ограничения
Рис. 7.10. Преобразование переключателей в сети Петри со сдерживающими дугами.Рис. 7.10. Преобразование переключателей в сети Петри со сдерживающими дугами.Рис. 7.9. Интерпретация перехода исключающее ИЛИ с помощью сдерживающих дуг. ,
Рис. 7.10. Преобразование переключателей в сети Петри со сдерживающими дугами.
Рис. 7.10. Преобразование переключателей в сети Петри со сдерживающими дугами.
^Рь Pj) Для каждой позиции рь которая является сдерживающим входом для tj. Это обеспечит то, что переход не может быть запущен, если маркировка pt ненулевая.
Переходы исключающее ИЛИ и переключатели
Переход исключающее ИЛИ tj с входом I(tj) требует, чтобы один и только один из его входов был не пустым, для того чтобы этот переход был разрешенным. Эта конструкция эквивалентна множеству переходов по одному для каждого элемента в Ц15). Каждый переход имеет один (обычный) вход, а остальные входы являются сдерживающими дугами. На рис. 7.9 представлен пример. Переключатели также могут быть легко преобразованы в сдерживающие дуги. Это показано на рис. 7.10.
Способ преобразования сдерживающих дуг в переключатели или в переходы исключающее ИЛИ не ясен, но такой способ определенно существует.
Другие расширения
Имеются еще два других важных расширения сети Петри. Переходам могут быть поставлены в соответствие приоритеты так, что если ti и 1Н оба допустимы, то переход с высшим приоритетом бу- V27**
дет запущен первым [115]. Во временных сетях Петри [194] каждому переходу t} сопоставляются два момента времени т,./ и Тг,/. Переход tj может быть запущен, только если он был разрешен к моменту времени Tj,/. Если он является разрешенным, то должен быть запущен до наступления момента времени Тг,/. Оба этих расширения могут использоваться для проверки на нуль.
Рис. 7.11. Использование приоритетов для проверки позиций р на нуль. Переход h имеет по сравнению с /2 более высокий приоритет.
В случае приоритетов легко проверить, есть ли фишка в позиции pt (рис. 7.11). Если мы помещаем фишку в позицию «pt О?» и назначаем переходу tx более высокий приоритет, чем переходу /2, то в результате в одной из двух позиций справа появится фишка. Выбор позиции зависит от маркировки позиции pt. Справедливость этого определяется тем фактом, что переход tv может быть запущен, только если он разрешен, а он является разрешенным, только если позиция Pt имеет фишку. Если tt не может быть запущен из-за того, что pi пуста, то тогда и только тогда будет запущен переход /2.
Хэк показал способ преобразования сетей Петри с приоритетами в сети Петри со сдерживающими дугами, и наоборот [115]. Временные сети Петри также могут осуществлять проверку позиции на нуль, моделируя приоритеты. Если мы имеем два перехода tj и th и устанавливаем т2,/< Tj^, то переход tj имеет приоритет над переходом tKl поскольку tj должен запускаться (если он разрешен) до того, как tk мог бы быть разрешен для запуска.
Расширенные сети Петрии регистровые машины
Мы показали, что все предложенные расширения модели сетей Петри допускают возможность проверки позиции на нуль. Насколько это важно по отношению к мощности разрешения сетей Петри? Влияет ли это на возможность анализа сетей Петри?
Проверка на нуль уменьшает мощность разрешения сети Петри. Агервала [4], Хэк [115], Томас [290] и др. показали, что появление способности проверки на нуль у модели сетей Петри позволяет се-
тям Петри моделировать машину Тьюринга. Таким образом, сети Петри с проверкой на нуль дают схему моделирования, с помощью которой можно моделировать любую систему. Однако почти все вопросы анализа сетей Петри становятся неразрешимыми, поскольку они неразрешимы для машин Тьюринга.
Доказательство эквивалентности расширенных сетей Петри и машин Тьюринга относительно просто. Легче всего его представить в терминах регистровых машин Шепардсона и Стургиса [276] или программных машин Минского [200].
Регистровая машина есть абстрактная модель ЭВМ с несколькими регистрами, которые используются для хранения произвольно больших чисел. Для манипулирования этими регистрами пишется программа. Программа есть последовательность инструкций вида «увеличить регистр п на 1», «уменьшить регистр п на 1 (только если регистр п нс равен 0)», «перейти к предложению s, если регистр п не равен нулю», и т. д. Ниже представлена программа сложения содержимого регистра 2 с регистром 1.
Если регистр 2 равен нулю, то идти к инструкции 5.
Вычесть 1 из регистра 2.
Прибавить 1 к регистру 1.
Идти к инструкции 1.
Стоп.
Шепардсон и Стургис показали, что регистровая машина со следующими инструкциями эквивалентна машине Тьюринга.
Р(п): увеличить регистр п на 1.
Щн): уменьшить регистр п на 1 (регистр п нс равен нулю).
7 (zz) [si: перейти к предложению s, если регистр п равен нулю.
Таким образом, если регистровая машина может быть преобразована в эквивалентную сеть Петри, то тем самым будет показано, что расширенные сели Петри эквивалентны регистровым машинам. Это преобразование относительно просто.
Для представления регистровой машины расширенной сетью Петри представим п регистров, используемых в программе, п позициями р\, р?, ..., рп. Мы также используем s+ 1 позицию для представления положения счетчика инструкций либо перед предложением 1 (начальная маркировка), либо после предложения I для / = 1, ..., s в программе из s предложений. Каждая инструкция в программе представляется переходом. На рис. 7.12 показано, как каждая из трех вышеприведенных инструкций представляется переходом в расширенной сети Петри. Из этого видно, что регистровая машина может быть преобразована в расширенную сеть Петри, и, следовательно, расширенная сеть Петри эквивалентна машине Тьюринга. Эта эквивалентность машине Тьюринга разрушает все надежды на возможность анализа расширенных сетей Петри. Однако это же доказывает, что расширенные сети Петри могут моделировать любую систему (или по крайней мере любую вычислимую систему). Таким образом, мы видим, что увеличение мощности
Рис. 7.12. Преобразование инструкции (номер г) регистровой машины в переход расширенной сети Петри со сдерживающими дугами.
а — PVnY увеличить содержимое регистра п на 1;
б — D(ny. уменьшить содержимое регистра п на 1 (содержимое регистра п должно быть положительным); в — J(n)[sj: переход к инструкции s в случае нулевого значения регистра п.
моделирования в этом случае приводит к определенному уменьшению мощности разрешения.
Отметим также, что ключевым моментом в доказательстве эквивалентности сетей Петри, регистровых машин и машин Тьюринга является способность к проверке одной позиции на нуль. Таким образом, все предложенные расширения — области ограничения, переходы исключающее ИЛИ, переключатели, приоритеты, интервалы времени и сдерживающие дуги — расширяют модели сетей Петри до уровня машин Тьюринга.
Существуют другие предложения по расширению, которые не поднимают сети Петри до уровня машин Тьюринга. Первыми в качестве расширений были предложены петли и кратные входные и выходные дуги. Но как это было показано в разд. 5.3, такие сети Петри фактически эквивалентны простым сетям Петри. Аналогично добавление входов ИЛИ, выходов ИЛИ, выходов исключающее ИЛИ не увеличило бы мощность моделирования сетями Петри.
Вообще, кажется, что любое расширение, которое не позволяет проверку на нуль, в действительности не увеличивает мощность моделирования (или не уменьшает мощность разрешения) сетей Петри, но приводит просто к другой эквивалентной формулировке модели сети Петри (может возрасти удобство моделирования). В то же самое время любое расширение, которое разрешает проверку на нуль, увеличивает мощность моделирования до уровня машин Тьюринга и сводит мощность разрешения к нулю.
Подклассы сетей Петри
Цель расширения сетей Петри состоит в увеличении их мощности моделирования. К несчастью, побочным эффектом такого расширения является значительное уменьшение мощности разрешения расширенных сетей Петри. Мощность разрешения обычных сетей Петри также сомнительна из-за их сложности и обширности (вспомните результаты разд. 5.8 по сложности задач достижимости и ограниченности). Это привело к появлению некоторых исследований подклассов сетей Петри. Цель этих исследований состоит в определении разумных структурных ограничений, налагаемых на сети Петри, которые увеличивают мощность разрешения ограниченных моделей сетей Петри, не ограничивая существенно мощность моделирования.
Многие задачи, связанные с подклассами сетей Петри, могут быть решены. И цель этой части исследований сетей Петри достаточно проста: определить подкласс сетей Петри, который может моделировать большой класс систем (все или почти все интересующие нас системы), но для которого еще существуют простые процедуры анализа (по крайней мере для интересующих нас проблем). Необходимо также, чтобы существовал простой способ для определения, является ли какая-либо сеть Петри членом определенного подкласса. Все определенные подклассы являются синтаксическими или структурными подклассами, и можно легко проанализировать структуру сети Петри для выяснения, является ли эта сеть Петри членом определенного подкласса. В этом их отличие от подклассов, которые можно определить в соответствии с динамическими свойствами, такими, как устойчивые сети Петри [161] или ограниченные сети Петри. Такие подклассы могут иметь очень хорошие свойства, но для них очень трудно определить, является ли произвольная данная сеть Петри устойчивой или ограниченной.
Достаточно полно изучены только два главных подкласса модели сетей Петри: автоматные сети Петри и маркированные графы. Кроме того, Хэк [107] изучил подкласс, названный сетями Петри со свободным выбором, и сформулировал предположения, что другой подкласс, правильные сети Петри могут иметь хорошие свойства с точки зрения разрешимости. Мы представим каждый из этих классов и укажем их основные свойства, достоинства и недостатки.
Автоматные сети Петри
Автоматная сеть Петри — это сеть Петри, в которой каждый переход может иметь точно один выход и один вход.
Определение 7.1. Автоматная сеть Петри — это сеть Петри С= (Р, Т, I, О) — такая, что для всех tj £ Т, [/((/) | = 1 и |O(G')I — = 1.
Некоторые свойства автоматных сетей Петри очевидны. Прежде всего автоматные сети Петри — строго сохраняющие. Это означает, что число фишек в такой сети никогда не изменяется, и мы получаем таким образом конечную систему. Отсюда следует, что дерево достижимости для автоматной сети Петри является конечным, и, следовательно, все вопросы анализа для автоматных сетей Петри разрешимы. Фактически автоматные сети Петри эквивалентны автоматам, как они определяются в теории автоматов и формальных языков (см. разд. 3.3.1). Таким образом, эти модели имеют ограниченный интерес, несмотря на их мощность разрешения, из-за ограниченной мощности моделирования конечных автоматов.
Маркированные графы
Другим, часто упоминаемым в литературе подклассом сетей Петри является класс маркированных графов. Маркированный граф есть сеть Петри, в которой каждая позиция является входом для точно одного перехода и выходом точно одного перехода. Иначе говоря, мы можем сказать, что каждая позиция имеет точно один вход и один выход.
Определение 7.2. Маркированный граф есть сеть Петри С = (Р, Г, /, О), такая, что для каждой рг g Р:
I W I = UG IM^O I =1 и | о^ | =
= 1{'Л^№)}| = 1-
Маркированные графы двойственны автоматным сетям Петри в теоретико-графовом смысле, поскольку в автоматных сетях Петри переходы имеют один вход и один выход, в то время как в маркированных графах один вход и один выход имеют позиции. Они являются двойственными также и с точки зрения моделирования. В автоматных сетях Петри легко представить конфликтные ситуации с помощью позиции с несколькими выходами, но нельзя моделировать создание и уничтожение фишек, необходимых для моделирования параллельности, или ожидания, свойственные задачам синхронизации. С другой стороны, маркированные графы могут моделировать параллельность и синхронизацию, но не могут моделировать конфликты или принятие решений, зависящие от данных.
Изучены такие свойства маркированных графов, как активность, безопасность и достижимость. Наиболее интересными структурными компонентами маркированного графа при изучении указанных свойств являются его циклы. Цикл в маркированном графе — это последовательность переходов tjv tj^ tjy ..., tjh—такая, что для каждой пары переходов t jp и t jp^ из этой последовательности существует позиция р1р — такая, что pip £ (Xtjp) и р ip^ I(t;r+1).
Рис. 7.13. Маркированный граф.
Таким образом, цикл есть замкнутый путь из какого-либо перехода обратно в этот же переход.
Например, в маркированном графе на рис. 7.13 последовательность Ц/2Ц является циклом, как и последовательности t4t3t4 и
Важность циклов в маркированных графах вытекает из следующей теоремы.
Теорема 7.1. Число фишек в цикле маркированного графа нс изменяется в результате запусков переходов.
Используя эту теорему, легко показать следующее.
Теорема 7.2. Маркировка является активной тогда и только тогда, когда в каждом цикле маркированного графа присутствует по меньшей мере одна фишка.
Теорема 7.3. Активная маркировка является безопасной тогда и только тогда, когда каждая позиция маркированного графа находится в цикле с числом фишек, равным единице.
Эти теоремы предоставляют простой и легкий путь исследования структуры маркированного графа и определения из его структуры 8—562
и начальной маркировки, является ли маркированный граф активным или безопасным. Можно также показать, что задача достижимости маркировок для маркированных графов разрешима. Например, отметим следующее.
Теорема 7.4. Маркировка р/ достижима из активной маркировки р. в сильно связном маркированном графе тогда и только тогда, когда общее число фишек в каждом цикле маркированного графа совпадает для маркировок р, и р/.
Большая мощность разрешения маркированных графов очевидна из следующих теорем и работ по маркированным графам [127, 54, 91, 136, 209]. Однако существует связь между мощностью разрешения и мощностью моделирования, и высокая мощность разрешения маркированных графов частично проистекает из низкой мощности моделирования. Поэтому исследователи пытались выделить другие подклассы сетей Петри, которые оставляли бы высокой мощность разрешения маркированных графов и увеличивали их мощность моделирования.
Сети Петри со свободным выбором
Хэк в своей диссертации на степень магистра в МТИ [107] определил и исследовал один такой подкласс сетей Петри — сети Петри со свободным выбором. Этот подкласс допускает и конфликты автоматных сетей Петри, и параллельность маркированных графов, но в более ограниченном виде, чем в ^обычных сетях Петри.
Определение 7.3. Сеть Петри со свободным выбором есть сеть Петри С = (Р, Т, I, О) — такая, что для всех tj £ Т и pt Е /(О) либа ЛО) = {pi}, либо О^р^ = ViV
Важность этого определения заключается в том способе, которым оно допускает управляемые конфликты. Конфликт появляется только тогда, когда одна позиция является входом нескольких переходов. По определению сетей Петри со свободным выбором, если позиция является входом для нескольких переходов (потенциальный конфликт), то она является единственным входом всех этих переходов. Следовательно, либо все эти конфликтующие переходы одновременно являются разрешенными, либо ни один из них. Это позволяет свободно осуществлять выбор (разрешение конфликта) запускаемого перехода, присутствие фишек в других позициях не влияет на выбор запускаемого перехода.
Эта ограниченная форма конфликтов была допущена Хэком [1071 для доказательства необходимого и достаточного условия того, чтобы маркированная сеть Петри со свободным выбором являлась активной или безопасной. Условие активности связано с маркировками ловушек и тупиков в сети. Ловушка — это такое множество позиций, что каждый переход, входом для которого является одна
Разрешены Не разрешены
Рис. 7.14. Диаграмма осуществимости некоторых структурных конфигураций в различных сетях Петри.
из позиций множества, имеет выходом другую позицию того же множества. Это означает, что если в какой-либо позиции ловушки имеется фишка, то она будет в одной из позиций ловушки всегда. Запуск перехода может перемещать фишку между позициями, но удалить фишку из ловушки он не может. Тупик есть такое множество позиций, что каждый переход, который имеет в качестве выхода одну из позиций тупика, использует какую-либо позицию тупика в качестве входа. Это означает, что если все позиции тупика в какой-то момент станут пустыми, то все это множество позиций останется пустым всегда. Ни один переход не может поместить фишку в тупик потому, что в тупике нет фишек, которые сделали бы разрешенным переход, выходом которого служит позиция из тупика.
Хэк доказал, что необходимым и достаточным условием активности маркированной сети Петри со свободным выбором является требование того, чтобы каждый тупик содержал ловушку с фишкой.
В*
Эта теорема основывается на работе Коммонера [53, 107]. Для определения необходимого и достаточного условия безопасности нужно показать, что сеть Петри со свободным выбором покрывается объединением автоматных сетей Петри. Детали этого представления содержатся в работе [107].
К сожалению, дальнейшего развития работы по сетям Петри со свободным выбором нс получили, и поэтому свойства сетей Петри со свободным выбором, связанные с достижимостью, эквивалентностью, включением, языками и т. д., рассмотрены не были.
Правильные сети Петри
Хэком также был определен другой подкласс сетей Петри, названный правильными сетями Петри [1071. В правильных сетях требуется, чтобы каждый переход имел не более одной входной позиции, которая совместно используется с другим переходом и поэтому служит для ограничения возможностей возникновения конфликтов. Исследования свойств этого подкласса сетей Петри до сих пор не проводились.
Замечания к литературе
Доказательство Патила [233] того факта, что P/V-системы не могут решить всех задач синхронизации, и контр доказательство Парнаса [230] весьма кратки и интересны. Они привели к доказательству в [159, 7] того, что сети Петри не могут моделировать все без исключения параллельные системы. Эти результаты привели Агервалу к исследованию вопроса о том, что должно присутствовать в модели, которая может описывать все системы [4, 5].
Главной работой по ограниченным моделям сетей Петри является ранняя работа [128] и работа [54], а также более поздняя [107]. В некоторых работах продолжено изучение маркированных графов [136, 209], но очень мало было сделано по другим моделям. Некоторые обнадеживающие результаты для сетей Петри со свободным выбором, в которых |О(р;)| = 1, получены в работах [62 и 161]. Задачи достижимости и активности разрешимы для сетей, свободных от конфликтов.
Темы для дальнейшего изучения
Одно из предложений по расширению состоит в сопоставлении фишкам информации. Это сопоставление может быть представлено как сеть Петри с окрашенными фишками. Определите модель сети Петри с окрашенными фишками. Используйте эту расширенную модель для проверки гипотез: (а) они эквивалентны обычным сетям Петри, (б) они эквивалентны машинам Тьюринга (допуская про-
верку на нуль). Основной задачей будет определение действий перехода с окрашенными фишками.
Продолжите исследование свойств «правильных» сетей Петри, сетей Петри, свободных от конфликтов, и сетей Петри со свободным выбором.
Охарактеризуйте класс сетей Петри, которые являются и маркированными графами, и автоматными сетями Петри.
Каковы свойства класса сетей Петри, переходы которых имеют либо непересекающиеся входы [/(G) n /(G) = 0], либо идентичные [/(/J = /(G)]? Этот класс сетей Петри строго включает сети Петри со свободным выбором, и мы склонны ожидать, что свойства этого нового класса будут очень похожи на свойства сетей со свободным выбором.
МОДЕЛИ ПАРАЛЛЕЛЬНЫХВЫЧИСЛЕНИЙ
Сети Петри определены как модели систем с параллельными действиями. И, как мы видели, сети Петри имеют хорошие возможности моделирования, с их помощью можно моделировать большое число систем. Однако сети Петри — не единственная модель параллельных вычислений. Предложено, исследуется и используется множество других моделей. В этой главе мы представим некоторые из этих моделей и исследуем их взаимосвязь с сетями Петри. Целью этой главы является определение моделей, которые могут использоваться в системах моделирования, и их сравнительной мощности моделирования.
Основной задачей, проистекающей из намерения соотнести различные модели друг с другом, является задача установления соответствующего метода сравнения моделей параллельных вычислений. Мы хотели бы иметь возможность доказывать, что модель А является «менее мощной», чем модель В, или что модель А «эквивалентна» модели В. Понятия эквивалентности и включения имеют в данном случае особую важность.
Некоторые исследования по соотнесению различных моделей уже проведены. Обзоры [20, 41, 197] помогли собрать воедино описания нескольких моделей. В частности, в [41] дано общее определение управляющей структуры, которое позволяет определять единым образом различные модели. Это привело к работам [236, 240], в которых сравниваются различные модели для получения иерархии моделей, соотнесенных по их мощности моделирования. Независимый результат получен в [5], где сравнивается большое число моделей и строится другая иерархия с подобной структурой.
Оба результата — ив [240] и в [5] — получены с помощью использования языков моделей для их сравнения. Класс моделей А определяет класс языков ЦАУ Два класса моделей, А и В, будут эквивалентны по определению, если L^Ay^ Ь^ВУ Это^означает, что для любого определенного экземпляра а класса моделей А с языком Ца) должен существовать экземпляр b класса В с идентичным языком Ца) = ЦЬ). Если языки правильно характеризуют эти модели, то они являются искомым средством для сравнения двух классов моделей.
Однако, как мы видели, не вполне ясно, как определить язык для моделей параллельных вычислений. Исследования в области определения языков сетей Петри привели к по меньшей мере 12 различным определениям языков, большинство из них, очевидно, различны. Различия в этих языках могут привести к различиям в соотношениях эквивалентности и включения между моделями. С другой стороны, если различия между моделями действительно существенны, то они могут быть не чувствительны к (незначительным) изменениям в определениях эквивалентности исключения. Таким образом, подоб- ность результатов, полученных'^ [5] и [240], весьма важна из-за того, что в этих работах использовались различные определения эквивалентности и включения.
Однако нельзя утверждать, что эти результаты бесспорны. Авторы [178] также сравнили большое число моделей параллельных вычислений и пришли к другим выводам. Их Сравнение основывается на очень детальном анализе структуры и пространства состояний отдельных представителей классов моделей. Этим объясняется значительное отличие результатов [178] от результатов [5] и [240].
Итак, установлено, что существуют различия в мнениях исследователей по вопросам о том, какие модели должны сравниваться, как их сравнивать? Сравнение, проводимое в этой главе, основано как на структурных характеристиках, так и на характеристиках поведения. Мы будем говорить, что класс моделей А является меньшим или равным по мощности моделирования (включается в) классу В, если для любого данного экземпляра а класса А существует алгоритм построения экземпляра b класса В, для которого верно, что:’
КаждаяТструкт урная компонента модели а представляется (небольшим) различимым множеством компонент модели Ь. Размер модели b (число элементов) отличается в худшем случае на мультипликативную константу от размера модели а, причем константа определяется классами моделей А и В, а неконкретными экземплярами а и Ь.
Любая писледова ельность действий в а может быть промоделирована последовательностью в Ь, с длиной последовательности в 6, отличающейся не более чем на мультипликативную константу от длины последовательности в а.
Модель b заходит в тупик только тогда, когда заходит в тупик модель аж Модель заходит в тупик, если все ее действия становятся невозможными.
Цели введения этих ограничений очевидны. Первое ограничение устанавливает структурное подобие двух моделей; второе ограничение гарантирует, что две модели ведут себя одинаково. Однако мы не требуем абсолютного соответствия между двумя моделями. Мы допускаем представление действия в одной модели (короткой) последовательностью действий в другой модели или представление компоненты (подобной позиции или переходу) набором (небольшим) компонент. Следовательно, действие в одной модели может моделироваться последовательностью из двух действий в другой модели. Последнее ограничение требует, чтобы более мощная модель не совершала ошибок, когда их не совершает менее мощная. Это исключает возможность построения модели, которая недетерминированно выбирает одно из нескольких^действий и останавливается, если оказывается, что был сделан неверный выбор.
Две модели эквивалентны, если они включают друг друга. Это предполагает, что любой экземпляр какой-либо модели преобразуется в экземпляр Другой.
С учетом сказанного выше, рассмотрим соотношения между следующими моделями параллельных вычислений:
Конечные автоматы [42, 97, 129].
Маркированные графы [54].
Графы вычислений [147].
P/V-системы [46, 79].
Системы с сообщениями [258].
Графы UCLA [49, 50, 51, 104].
Системы сложения векторов [148].
Системы замещения векторов [150].
Расширенные сети Петри (гл. 7).
Для каждого класса моделей вначале определим модель и приведем пример. Затем обсудим связь ее с другими моделями параллельных вычислений.
Конечные автоматы
В разд. 3.3.1 и 7.4.1 показано, что конечные автоматы легко преобразуются в сети Петри. Конечные автоматы использовались несколькими исследователями в качестве модели параллельных вычислений. Бредт [42] определил модель, основанную на концепциях, вложенных в аппаратуру ЭВМ. Каждый процессор модели-
руется конечным автоматом с входными и выходными каналами, которые связывают один процессор с другим. Состоянием каждого входного и выходного канала является либо 0, либо 1. Поскольку каждый выходной канал одного процессора является входным каналом другого процессора, и существует конечное число процессоров и конечное число каналов, каждый с конечным числом состояний, то и вся система имеет конечное число состояний.
Гильберт и Чандлер [97] использовали модель с общей памятью, а не каналы связи. Это означает, что их модель в большей степени, чем модель аппаратуры Бредта, направлена на моделирование программных процессов с совместно используемой памятью, но все же является не чем иным, как моделью с конечным числом состояний, и, следовательно, включена в модель сети Петри.
Маркированные графы
Маркированные графы были рассмотрены в разд. 7.4.2. Как подкласс сетей Петри маркированные графы, очевидно, обладают более ограниченной мощностью моделирования. Маркированные графы непосредственно не сопоставимы с конечными автоматами, но, по-видимому, являются двойственными к ним. Таким образом, мы получаем изображенное на рис. 8.1 соотношение между сетями Петри, конечными автоматами и маркированными графами.
Маркированные Конечные ' графы автоматыМаркированные Конечные ' графы автоматыРис. 8.1. Соотношение между сетями Петри, маркированными графами и конечными автоматами.Рис. 8.1. Соотношение между сетями Петри, маркированными графами и конечными автоматами.Сети Петри
Маркированные Конечные ' графы автоматы
Маркированные Конечные ' графы автоматы
Рис. 8.1. Соотношение между сетями Петри, маркированными графами и конечными автоматами.
Рис. 8.1. Соотношение между сетями Петри, маркированными графами и конечными автоматами.
Графы вычислений
Одной из наиболее ранних моделей параллельных вычислений была модель графов вычислений [147]. Ее предложили главным образом для представления параллельного выполнения программ, вычисляющих арифметические выражения.
Граф вычислений G определяется как ориентированный граф G = (V, Л), где V = {vb ^n} — множество узлов; А = = {аь аъ ат} — множество дуг.
Каждая дуга at Е Л есть упорядоченная пара узлов (о ь ику представляющая дугу из о j к ок. Каждой дуге at = (оj, vk) сопоставлена четверка (//.&, Vjik, Wjk, Tj,^. Каждая дуга представляет очередь элементов данных, полученных процессором в узле Uj и используемых процессором в узле хзк. I jtk есть число элементов данных, находящихся первоначально в очереди, соответствующей дуге из о j к ик. Узел ок подготовлен, если на каждой дуге, направ-
ленной к узлу ок из каждого узла Uj, присутствует не менее TIik элементов данных. Т;,к называется пороговым значением. При выполнении операции, соответствующей узлу ик1 удаляется Wj,k (Wj,k < ТЬк) элементов данных из очереди, соответствующей дуге, направленной к ик. Когда операция, соответствующая ик, завершается, то она помещает Ук>г элементов данных в очереди, соответствующие каждой дуге ^ок, oTY направленной из узла vh к узлу ит.
На рис. 8.2 изображен пример графа вычислений. В начальном состоянии узел и4 подготовлен, поскольку имеет один вход, и в очереди этого входа присутствуют три элемента данных. При выполнении ^! он удаляет один элемент данных из этой очереди и по завершении операции помещает один элемент данных на дугу из Vj к у2, один — на дугу из ut к и8. В этом новом состоянии может выполняться либо ць либо и2, так как оба имеют достаточно элементов данных во входных очередях для удовлетворения пороговых условий.
Граф вычислений легко моделируется сетью Петри. Каждая дуга представляется позицией, а каждый узел графа вычислений становится переходом. Переход, соответствующий узлу ик, имеет Т/,к входных дуг из позиции, представляющей дугу из v j к ик. Это га-
Рис. 8.3. Сеть Петри, эквивалентная графу вычислений, изображенному на рис. 8.2.
рантирует то, что переход будет подготовленным только тогда, когда пороговое условие выполнено. Однако, когда переход запущен, он может удалить только Wj,k фишек, поэтому Т^ь — Wj^ дуг направляются обратно от перехода ик к позиции, представляющей дугу из и5 к ик. Кроме того, Vk,r меток помещаются в позицию, представляющую дугу из Vj к иг. Начальная маркировка определяется значениями Ij>k.
На рис. 8.3 изображена сеть Петри, построенная описанным выше способом для графа вычислений на рис. 8.2.
Легко показывается, что маркированные графы могут быть промоделированы графами вычислений, для которых Т^и = Wj,k для всех узлов d j и vk. Однако графы вычислений являются более мощным средством, чем маркированные графы, благодаря возможности моделировать ситуации с Tj,k> ьк-
С другой стороны, графы вычислений и конечные автоматы не сопоставимы, как маркированные графы и конечные автоматы. Графы вычислений не могут моделировать принятие решений или условное выполнение — это ограничение справедливо и для маркированных графов. Таким образом, наша иерархия моделей принимает вид, показанный на рис. 8.4.
Карп и Миллер [147] подробно исследовали графы вычислений, особенно проблемы активности и безопасности. В действительности
их интересовало обеспечение и определение условий завершенности графа вычислений (т. е. условия неактивности). Так как дуги (позиции) представляют очереди данных, то исследования ограниченности, проводимые Карпом и Миллером, были направлены на определение максимальной длины очереди. Эти различия в обозначениях и целях, а также отличия в определении моделей между графами вычислений и маркированными графами послужили причиной того, что никто не попытался соотнести результаты и алгоритмы Карпа и Миллера [147] по графам вычислений с работой [54] по маркированным графам.
Сети Петри
ГрафыВычисленийГрафыВычисленийКонечныеавтоматыКонечныеавтоматыМаркированныеграфыМаркированныеграфы
ГрафыВычислений
ГрафыВычислений
Конечныеавтоматы
Конечныеавтоматы
Маркированныеграфы
Маркированныеграфы
Рис. 8.4. Добавление графов вычислений к иер архии моделей.
P/V-системы
Р- и V-операции над семафорами впервые введены Дейкстрой [79] для решения проблем синхронизации в системах параллельных процессов. Как таковые они могут использоваться для моделирования синхронизации и связи таким же образом, как и сети Петри. Патил использовал этот подход, когда определяет задачу о курильщиках сигарет, чтобы показать ограниченность систем, которые могут использовать только Р- и V-операции между процессами. P/V-системы тем не менее популярны, и поэтому имеется много литературы по вычислительной технике, в которой обсуждаются или применяются эти операции, например, [44, 179]. $ $
В разд. 3.4.8 показано, что Р- и V-операции можно промоделировать с помощью сетей Петри. Доказательство Патила [2331 свидетельствует о том, что это включение собственное: существуют задачи (например, задача о курильщиках сигарет), которые можно решить в сетях Петри, но нельзя с использованием только Р- и V- операций. Однако P/V-системы являются достаточно мощным средством, чтобы включать модели графов вычислений [177] и модели конечных автоматов.
Чтобы преобразовать конечный автомат в P/V-систему, мы используем для моделирования каждого состояния автомата отдель-
ный процесс. Каждому состоянию сопоставим семафор. Пусть Q = = {71» 72» •••» 7п} — множество состояний, а 6: Q X 2 -> Q — функция переходов с множеством действий 2. Сопоставим состоянию дг семафор Х^ и процесс. В начале процесс выполняет P(St). В общем случае он будет ждать до тех пор, пока автомат не перейдет в состояние 7/. После выполнения P(St) процесс выбирает произвольное о €2, для которого определена функция 6(gz, о), и выполняет V(S j), где qз = 6(дь о). После чего этот процесс возвращается по
Рис. 8.5. Конечный автомат.
петле к своему Р (S^. Рис. 8.6 иллюстрирует преобразование конечного автомата, изображенного на рис. 8.5. Семафоры первоначально равны нулю, кроме семафора начального состояния, который инициализируется единицей.
Для преобразования графа вычислений в P/V-систему каждой дуге (и з, и^ графа ставим в соответствие семафор Sy, к. Значением семафора будет число элементов данных, ожидающих в очереди для этой дуги. Таким образом, первоначально значением семафора Sj,k будет I Ьк. Для каждого узла в графе вычислений создается процесс. Процесс узла ик сначала выполняет Т j,k P-операций над семафорами Sjik для всех дуг (и у, ик^ направленных в ик. Этим обеспечивается то, что каждая очередь будет содержать не менее Т;,к элементов данных. Затем, поскольку каждая P-операция уменьшает семафор, а правильным результатом является только уменьшение Siik на Wj.k, то мы выполняем Т,,к — W j,k V-операций над Sy,^, чтобы восстановить правильное значение Sj,k. Мы завершаем процесс узла ик, выполняя Vk,r V-операций над семафором Skir для каждой дуги (vk, vr), направленной из узла ик.
Это преобразование проиллюстрировано на рис. 8.7 для узлов и3 и и4 графа вычислений, приведенного на рис. 8.2.
Отметим, что граф вычислений может проверять и осуществлять ввод из нескольких источников за один шаг, тогда как P/V-системы
Процесс Р2Процесс Р2Рис. 8.6. P/V-система для конечного автомата на рис. 8.5.Рис. 8.6. P/V-система для конечного автомата на рис. 8.5.Процесс Р4Процесс Р4
Процесс Р2
Процесс Р2
Рис. 8.6. P/V-система для конечного автомата на рис. 8.5.
Рис. 8.6. P/V-система для конечного автомата на рис. 8.5.
Процесс Р4
Процесс Р4
могут проверять и осуществлять ввод из нескольких источников только с помощью последовательности проверок и вводов из отдельных источников. Неспособность к проверке и вводу из нескольких источников одновременно является ключевым моментом доказательства Патила ограниченности P/V-систем. Проблема состоит в том, что пока вы захватываете один ресурс, другой процесс может захватить второй ресурс, что приводит к тупику. Такой проблемы для графов вычислений не существует, так как источники не используются совместно процессами — не может быть двух узлов, разделяющих входные дуги. Это замечание существенно для построения P/V-системы, которая не попадала бы в тупик (завершалась) до тех пор, пока соответствующий граф вычислений не завершится.
Добавление P/V-систем к нашей иерархии моделей приводит ее к виду, изображенному на рис. 8.8.
Системы передачи сообщений
Использование Р- и V-операций для организации взаимодействий процессов в системе может осуществляться до тех пор, пока нет лучшего механизма связи. Одним из предложений по улучшению
Рис. 8.7. P/V-система процессов для двух узлов графавычислений на рис. 8.2.
Сета Петри
Р/У-системыР/У-системыГрафы вычисленийГрафы вычислений
Р/У-системы
Р/У-системы
Графы вычислений
Графы вычислений
Конечныеавтоматы
МаркированныеграфыМаркированныеграфыРис. 8.8. Добавление P/V-сис- тем в иерархию моделей.
Маркированныеграфы
Маркированныеграфы
этого механизма является предложение использовать сообщения. Система с сообщениями — это набор процессов, которые взаимодействуют с помощью сообщений. Над сообщениями возможны две операции: послать и получить. Передача сообщения подобна V-операции, а прием сообщения подобен P-операции. Если при выполнении операции получить нет ни одного сообщения, то получатель ждет до тех пор, пока сообщение не будет послано.
На этом механизме основана схема моделирования, предложенная Риддлом [258]. Эта модель кажется наиболее подходящей для моделирования протоколов в сетях ЭВМ. Риддл рассматривает (конечное) множество процессов, которые взаимодействуют с помощью сообщений. Сообщения посылаются и запрашиваются специальными процессами, называемыми канальными процессами (почтовые ящики). Канальные процессы предоставляют, что существенно, комплект сообщений, которые посланы, но еще не приняты, или комплект запросов на сообщения от приемников, которые выданы, но еще не удовлетворены. Другие процессы системы называются программными процессами и описываются на языке моделирования программных процессов (ЯМПП).
Пример системы из трех процессов приведен на рис. 8.9. Как видно из примера, описание процессов на ЯМПП является, по существу, схемой. Интерес представляет только деятельность по передаче сообщений в системе. Сообщения являются абстрактными элементами, единственной характеристикой которых является тип. Число типов сообщений в системе может быть только конечным. Сообщения посылаются из или принимаются в буфер сообщений в каждом из процессов. Существует только по одному буферу на процесс. Предложениями ЯМПП являются:
set t: Поместить сообщение типа t в буфер сообщений.
send I: Послать сообщение в буфер сообщений канального процесса I. receive I: Запросить сообщение из канального процесса /. Ждать (если необходимо) до тех пор, пока не будет получено сообщение. Сообщение помещается в буфер сообщений.
unless t s: Проверить тип сообщения в буфере сообщений и перейти к предложению s, если сообщение имеет тип, отличный от t. if-internal-test s: Моделировать внутреннюю, зависящую от данных, проверку. Либо продолжать обработку, выполняя следующее предложение, либо перейти к предложению с меткой s.
go-to s*. Передать управление предложению s. end*. Завершить процесс.
Система с ЯМПП моделирует множество параллельных процессов. Каждый процесс стартует в начале своей программы и выполняет свою программу до тех пор, пока ему не встретится предложение end. Риддл показывает, как построить выражение передачи сообщений, которое представляет возможные потоки сообщений в системе и использует это выражение для исследования структуры системы и организации правильного функционирования. Это выражение передачи сообщений используется для тех же целей, что и язык сети Петри. Поэтому мы показываем, как описание системы процессов на ЯМПП может быть преобразовано в такую сеть Петри, что ее язык совпадает с выражением передачи сообщений из анализа Риддла. Это преобразование игнорирует выполнение отдельных предложений описания на ЯМПП, хотя с помощью незначительной модификации и они могли бы быть представлены в языке сети Петри.
Для моделирования процесса сетью Петри используем по одной фишке на процесс в качестве программного счетчика. Присутствие сообщения в канальном процессе также представляется фишкой. Поскольку сообщения идентифицируются типом, то необходимо моделировать каждый тип сообщений в канальном процессе отдельной позицией. Очень важным свойством систем с ЯМПП является то, что число сообщений конечно. Каждый программный процесс также конечен. Только очередь сообщений занимает потенциально неограниченный объем памяти. Таким образом, способность моделировать канальные процессы и правильно представлять предложения send и receive являются наиболее важными аспектами преобразования описания на ЯМПП в сеть Петри. Моделируя каналь-
ПрограммаReceive LI;Al: Set READ;Send L3;Receive L2;Unless INPUT A2;Set OUTPUTSend L5:ПрограммаReceive LI;Al: Set READ;Send L3;Receive L2;Unless INPUT A2;Set OUTPUTSend L5:Go-to Al;Go-to Al;A2: Send L4;A2: Send L4;End;End;УстройствоВводаAl: Receive L3;If-internal-test A2;Set INPUT;Go-to A3;A2: Set EOF;A3: SendL2;Go-to Al;End;УстройствовыводаAl: Receive L5;Go-to Al;End;УстройствоВводаAl: Receive L3;If-internal-test A2;Set INPUT;Go-to A3;A2: Set EOF;A3: SendL2;Go-to Al;End;УстройствовыводаAl: Receive L5;Go-to Al;End;
Программа
Receive LI;
Al: Set READ;
Send L3;
Receive L2;
Unless INPUT A2;
Set OUTPUT
Send L5:
Программа
Receive LI;
Al: Set READ;
Send L3;
Receive L2;
Unless INPUT A2;
Set OUTPUT
Send L5:
Go-to Al;
Go-to Al;
A2: Send L4;
A2: Send L4;
End;
End;
Устройство
Ввода
Al: Receive L3;
If-internal-test A2;
Set INPUT;
Go-to A3;
A2: Set EOF;
A3: SendL2;
Go-to Al;
End;
Устройствовывода
Al: Receive L5;
Go-to Al;
End;
Устройство
Ввода
Al: Receive L3;
If-internal-test A2;
Set INPUT;
Go-to A3;
A2: Set EOF;
A3: SendL2;
Go-to Al;
End;
Устройствовывода
Al: Receive L5;
Go-to Al;
End;
Рис. 8.9. Система процессов, описанных на языке моделирования программных процессов.
ные процессы множествами позиций (по одной на каждый тип сообщений), мы можем представить предложение send переходом, который помещает фишку в позицию, представляющую соответствующие канальный процесс и тип сообщений. Предложение receive просто удаляет фишку из любой позиции канального процесса. Конкретная позиция, которая поставляет фишку, определяет тип получаемого сообщения. Эта информация может использоваться в любом последующем предложении unless.
Единственным символом в выражении передачи сообщений является тип сообщений для тех сообщений, которые посылаются к или принимаются от канального процесса. Поскольку каждый переход в сети Петри приводит к появлению символа в языке сети Петри для этой сети Петри, то только предложения send и receive в системе с ЯМПП могут быть промоделированы. Таким образом, существуют два вида позиций в сети Петри. Один вид позиций, помеченных Р[.т., действует как счетчик числа сообщений типа т , в канальном процессе /г-. Другой вид позиций представляет предложения send и receive программы ЯМПП. Пусть эти предложения однозначно помечены sb ..., sr. Мы пометим позицию, представляющую предложение st с сообщением типа т j в буфере сообщений, символом Psbm-* Фишка в позиции, ассоциированной с предложением st, означает, что предложение st уже выполнено. Рис. 8.10 иллюстрирует, как предложения sk: send и sk: receive должны моделироваться сетью Петри. На рис. 8.10 позиция pSlitn представляет позицию, ассоциированную с каким-либо предложением, которое предшествует предложению sk.
Теперь осталось показать, что существует возможность определения предложения, предшествующего другим предложениям в программе на ЯМПП. Отметим, что каждое предложение можно рассматривать как пару, состоящую из типа сообщения и номера предложения, поскольку одно и то же предложение с различными типами сообщений в буфере сообщений будет моделироваться сетью Петри различным образом. Наиболее очевидный способ определения предшественников предложения состоит в запуске в начале каждой программы на ЯМПП специального стартового предложения (которое становится стартовой позицией) и в порождении согласно описанию программ всех возможных последующих предложений send и receive с соответствующим им содержимым буфера сообщений. Этот процесс повторяется для всех появляющихся предложений до тех пор, пока все предложения send и receive не будут порождены, а их последователи не будут идентифицированы. Поскольку число предложений в описании на ЯМПП и число типов сообщений конечно, то порождается только конечное число пар предложение! (тип, сообщение. Эта процедура подобна характеристическим уравнениям, используемым Риддлом [258] для построения выражения передачи сообщений. На рис. 8.11 перечисляются предложения
Рис. 8.10. Преобразование'предложений send и receive в переходы сети Петри. вверху — модель предложения sk:send с сообщением типа т в буфере сообщений. Канальный процесс — 1р внизу— модель предложения sk:receive из канального процесса 1^. Возможные типы сообщений в lj — тх, т2, . . . , mv
и их возможные последователи для системы с ЯМПП, изображенной на рис. 8.9.
После того как последователи предложения определены, мы можем, используя эту информацию, идентифицировать возможные предшественники предложения и, следовательно, построить сеть Петри, эквивалентную системе с ЯМПП, используя переходы, подобные приведенным на рис. 8.10. Специальная стартовая позиция является предшественником первого предложения каждого процесса системы. На рис. 8.12 система с ЯМПП, изображенная на рис. 8.9, преобразована в эквивалентную сеть Петри.
Краткое описание преобразования систем передачи сообщений в сети Петри показывает, что эта модель включается по мощности моделирования в сети Петри. Оно показывает также, что множество выражений передачи сообщений, рассматриваемое как класс языков, является подмножеством класса языков сети Петри.
Поскольку P/V-системы можно моделировать системами передачи сообщений с сообщениями только одного типа, то P/V-системы
(Send L3, READ) (Receive L2, INPUT) (Receive L2, EOF) (Send L5, OUTPUT) (Send L4, EOF) (Send L3, READ) ( )(Send L3, READ) (Receive L2, INPUT) (Receive L2, EOF) (Send L5, OUTPUT) (Send L4, EOF) (Send L3, READ) ( )(Send L2, INPUT)(Send L2, EOF) (Receive L3, READ) (Receive L3, READ)(Send L2, INPUT)(Send L2, EOF) (Receive L3, READ) (Receive L3, READ)
(Send L3, READ) (Receive L2, INPUT) (Receive L2, EOF) (Send L5, OUTPUT) (Send L4, EOF) (Send L3, READ) ( )
(Send L3, READ) (Receive L2, INPUT) (Receive L2, EOF) (Send L5, OUTPUT) (Send L4, EOF) (Send L3, READ) ( )
(Send L2, INPUT)
(Send L2, EOF) (Receive L3, READ) (Receive L3, READ)
(Send L2, INPUT)
(Send L2, EOF) (Receive L3, READ) (Receive L3, READ)
Программа
рг : (Receive LL -)
Р2 : (Send L3, READ)
p^ : (Receive L2, INPUT) p^ : (Receive L2, EOF) p5 ; (Send L5, OUTPUT) p^ : (Send L4, EOF)
Устройство ввода
Р2 : (Receive L3, READ)
ря : (Send L2, INPUT)
p9 : (Send L2, EOF)
Устройство вывода
p10 : (Receive L5, OUTPUT) ► (Receive L5, OUTPUT)
Рис. 8.11. Предложения и последователи для системы с ЯМПП, изображен* ной на рис. 8.9.
включаются в системы передачи сообщений. Легко построить систему с сообщениями для решения задачи о курильщиках сигарет, поэтому включение P/V-систем в системы с сообщениями является собственным. С другой стороны, системы с сообщениями не способны воспринимать входные сообщения от нескольких источников одновременно и поэтому не эквивалентны сетям Петри.
При попытке моделирования перехода с несколькими входами может возникнуть один из следующих двух случаев:
Процесс будет пытаться получить фишки (сообщения) из всех своих входов, но будет недопустимым, и поэтому будет блокирован, задерживая при этом фишки, которые нужны для того, чтобы позволить продолжать работу другим переходам. Это приведет к тупикам в системе с сообщениями, которые не соответствуют тупикам в сети Петри, что нарушает третье ограничение.
Процесс будет уклоняться от создания лишних тупиков, определяя, что оставшиеся нужные фишки отсутствуют, и возвращая
Рис. 8.12. Сеть Петри, эквивалентная системе с ЯМПП, изображенной на рис. 8.9.Рис. 8.12. Сеть Петри, эквивалентная системе с ЯМПП, изображенной на рис. 8.9.220Глава 8220Глава 8
Рис. 8.12. Сеть Петри, эквивалентная системе с ЯМПП, изображенной на рис. 8.9.
Рис. 8.12. Сеть Петри, эквивалентная системе с ЯМПП, изображенной на рис. 8.9.
220Глава 8
220Глава 8
фишки в позиции (канальные процессы), из которых они были получены. Такие действия могут выполняться произвольно часто, а это означает, что не существует ограничения на длину последовательности действий в системе с сообщениями, соответствующей ограниченной последовательности запусков переходов в сети Петри. Таким образом, при этом нарушается наше второе ограничение.
Сети Петри
Системы с сообщениями
P/V-системы
• Конечныеавтоматы
Маркированныеграфы
Рис. 8.13. Добавление систем с сообщениями к иерархии моделей.
Риддл [259] представил преобразование, которое подпадает под случай 1 и приводит к лишним тупикам. В любом случае мы видим, что системы с сообщениями не могут моделировать произвольные сети Петри (при сформулированных нами ограничениях). Поэтому в результате мы получаем иерархию, приведенную на рис. 8.13.
Графы UCLA
Сеть Петри^является графовой моделью параллельных вычислений. Другая графовая модель разработана в Калифорнийском университете в Лос-Анджелесе под руководством профессора Эстрина. Эта модель является сложной билогической графовой моделью вычислений (или графовой моделью UCLA) [19, 23, 302, 105, 49]. В этой модели системы представляются графом со сложными ориентированными дугами. Сложная дуга — это дуга с (потенциально) многими источниками и назначениями).
Комбинационная логика управляет последовательностью операций в вершинах. Если входной логикой вершины является ло-
Рис. 8.14. Сложный билогический граф (граф UCLA).
гика И (*), то для того, чтобы разрешить действия, фишки должны присутствовать на каждой входной дуге. При логике ИЛИ UM фишки необходимы только на какой-либо одной входной дуге Выполнение вершины удаляет разрешающие фишки на входных дугах и помещает фишки на выходные дуги в соответствии с выходной логикой. При выходной логике И фишки помещаются на все выходные дуги, тогда как при логике ИЛИ фишки помещаются на
Рис. 8.15. Представление основных элементов графа UCLA в сети Петри.
какую-либо одну выходную дугу. Число фишек, задействованных в данной паре вершина-дуга, называется степенью (или кратностью) этой пары и может быть любым целым неотрицательным числом.
На рис. 8.14 приведен пример графа UCLA. Заметим, что некоторые дуги имеют несколько источников (окончаний) и назначений (начал). Кроме того, отметим, что логика каждой пары дуга- вершина помечена в графе либо* для логики И, либо + для логики ИЛИ. Степень дуги указывается числом там, где дуга соединяется с вершиной. Степень опускается, если она равна единице, так же, как и обозначение логики, когда только одна дуга является входом в вершину. В приведенном примере вершина а может быть запущена, как только дуга S имеет фишки. Когда вершина а запускается, она удаляет фишку из дуги S и помещает фишки на дугу А и дугу В (логика И). Вершина g, с другой стороны, будет помещать фишки либо на дугу К, либо на дугу G (логика ИЛИ). Вершина i является разрешенной, когда присутствуют две фишки на дуге J или одна фишка на дуге К.
Определение 8.1. Граф UCLA есть шестерка С = (И, A, L, Q, S, F), где V — {Уь у2, •••» Уг} — множество вершин; А = {аь а2, ..., as} — множество дуг; L = ^L", L+): V ^- {*, +} — входное (L-) и выходное (L+) отображения логики на вершины графа; Q = (Q~,fQ+): V X А -> N — входная (Q") и выходная (Q+) степень каждой пары
дуга-вершина; S ^ А — начальная дуга; F С А — конечная дуга.
Дуги графа определяются как упорядоченные пары множеств вершин. Первая компонента пары есть множество входных вершин, а вторая компонента — множество выходных вершин. Начальная дуга имеет пустое множество входных вершин, а конечная дуга — пустое множество выходных вершин.
Преобразование графа UCLA в сеть Петри достаточно просто из-за подобности этих систем. Каждая дуга в графе UCLA представляется позицией в сети Петри. Кроме того, представим вершину и позицией ри и двумя переходами ty и /у. Первый переход tn представляет инициирование операции, связанной с вершиной и.
СетиГрафы
Петри= UCLA
Системы с сообщениями
P/У- системыP/У- системыГрафы ВычисленийГрафы ВычисленийКонечные автоматыКонечные автоматы
P/У- системы
P/У- системы
Графы Вычислений
Графы Вычислений
Конечные автоматы
Конечные автоматы
Маркированныеграфы
Рис. 8.18. Добавление графов UCLA к иерархии моделей.
а второй переход представляет завершение этой операции. Это схематично изображено на рис. 8.15 (моделирование вершин графа UCLA переходами инициирования и завершения не строго обязательно, но удобно). На рис. 8.16 показано как входная и выходная логики графов UCLA представляются эквивалентными сетями Петри. Степень больше единицы моделируется несколькими дугами между позициями и переходами в сети Петри.
На рис. 8.17 граф UCLA с рис. 8.14 преобразован в эквивалентную сеть Петри. Это преобразование показывает, что мощность моделирования графов UCLA вкладывается в мощность моделирования сетей Петри. Очевидно, что сеть Петри может быть преобразована в эквивалентный граф UCLA посредством представления позиций дугами графа UCLA, а переходов — вершинами с входной и выходной логикой И. Таким образом, эти две модели эквивалентны по своей мощности моделирования. На рис. 8.18 показана модифицированная иерархия моделей.
Системы замещения и сложениявекторов
Если вы бегло просмотрите библиографию, то заметите, что в названиях большинства ссылок упоминаются не сети Петри, а система сложения векторов. Системы сложения векторов были введены Карпом и Миллером [148] как математическое средство анализа систем параллельных процессов. Благодаря их простому математическому определению системы сложения векторов обычно используются для формального доказательства свойств сетей Петри или подобных систем.
Определение 8.2. Система сложения векторов V есть пара V = = (В, s), где В = {Ьъ Ь^ ..., Ьт^ — множество из т векторов, называемых базисными векторами или векторами смещения. Вектор s есть начальный вектор. Все векторы состоят из п целых величин. Элементы s неотрицательны.
Множество достижимости системы сложения векторов V обозначается R(V) и может быть определено рекурсивно с помощью следующего определения:
Определение 8.3. Множество достижимости R(y) для системы сложения векторов V = (В, s) есть наименьшее множество, для которого верно, что:
s£R(V);
Если х б R(V) и (х + b j) > 0, то (х + b j) б R(V), либо посредством следующего определения:
Определение 8.4. х € R(V), если существует такая последовательность 6^ , bt^, ..., bik базисных векторов, что
к
х = s + 2 Ьг. и
'/=1 3
г
s + 2 bt. > 0 для всех г: 0 ^ г < к.
/=1 3
Из этих определений легко видеть, что системы сложения векторов и сети Петри эквивалентны. По данной сети Петри мы можем построить систему сложения векторов, начальным вектором которой является начальная маркировка, а базисные векторы взаимно однозначно соответствуют переходам. N компонент векторов системы сложения векторов соответствуют маркировкам п позиций сети Петри или (в случае базисных векторов) изменениям, происходящим из-за запуска соответствующего перехода.
Аналогично система сложения векторов может быть преобразована в эквивалентную сеть Петри использованием позиций для компонент векторов и переходов для представления базисных век-
торов. На рис. 8.19 иллюстрируется эквивалентность этих двух моделей.
Фактически система сложения векторов эквивалентна сетям Петри без петель. Напомним, что в присутствии петель изменение может быть нулевым, а число фишек в позиции из петли должно быть ненулевым. Это не уменьшает мощность системы сложения векторов.
Ь3 = (0, 1,-1, 1) ь4 = (0,-1, 1, 1)
Рис. 8.19. Сеть Петри и эквивалентная ей система сложения векторов.
поскольку мы видели (в разд. 5.3), что сети Петри без петель эквивалентны обычным сетям Петри. Однако для более непосредственного моделирования сетей Петри с петлями в модели, подобной системе сложения векторов, Келлер определил системы, замещения векторов [150].
Определение 8.5. Система замещения векторов состоит из начального вектора s > 0 и т пар векторов ([/z-, V;), таких, что U t < Vi.
Векторы Ut называются векторами проверки. Множество достижимости переопределяется так, что s принадлежит множеству достижимости, и если х входит в негой х -f- Щ > 0, то х + Vt также входит в множество достижимости.
В модели системы замещения векторов явно определяется проверка на разрешение перехода от действия по запуску перехода. Эквивалентность систем замещения векторов сетями Петри (общего вида) очевидна.
Добавляя системы сложения векторов и системы замещения векторов в нашу иерархию, получаем иерархию, изображенную на рис. 8.20. Важность систем сложения векторов и систем замещения векторов заключается в их простом математическом определении и полезности этого определения для доказательства математических свойств систем.
ра(ры ^CLAра(ры ^CLAСистемыСистемыСети
ра(ры ^CLA
ра(ры ^CLA
замещения —сложения—Петри
Сектороввекторов
Системы с сообщениями
P/V-системыP/V-системыМаркированные графыМаркированные графыРис. 8.20. Добавление систем сложения векторов и систем замещения векторов к иерархии моделей.Рис. 8.20. Добавление систем сложения векторов и систем замещения векторов к иерархии моделей.
P/V-системы
P/V-системы
Маркированные графы
Маркированные графы
Рис. 8.20. Добавление систем сложения векторов и систем замещения векторов к иерархии моделей.
Рис. 8.20. Добавление систем сложения векторов и систем замещения векторов к иерархии моделей.
Расширенные сети ПетриРасширенные сети Петри
Расширенные сети Петри
Расширенные сети Петри
Системы Системы замещения = сложения векторов ВекторовСистемы Системы замещения = сложения векторов ВекторовСети Графы= Петри ее UCLAСети Графы= Петри ее UCLA
Системы Системы замещения = сложения векторов Векторов
Системы Системы замещения = сложения векторов Векторов
Сети Графы
= Петри ее UCLA
Сети Графы
= Петри ее UCLA
Системы с сообщениямиСистемы с сообщениями
Системы с сообщениями
Системы с сообщениями
Р^У - системыР^У - системыГрафы вычисленийГрафы вычисленийКонечные автоматыКонечные автоматы
Р^У - системы
Р^У - системы
Графы вычислений
Графы вычислений
Конечные автоматы
Конечные автоматы
Мар к up овинныеграфы
Рис. 8.21. Полная иерархия моделей параллельных вычислений.
Расширенные модели сетей Петри
В качестве последнего дополнения к нашей иерархии вспомним о моделях расширенных сетей Петри, изученных в гл. 7: сети Петри с областями ограничений, переходами исключающее ИЛИ, переключателями, сдерживающими дугами, приоритетами или временными ограничениями. Мы видели, что все эти модели эквивалентны машинам Тьюринга. Таким образом, эти модели строго включают модели сетей Петри. Окончательная иерархия моделей изображена на рис. 8.21.
Замечания к литературе
Исследования [240, 5, 178] должны быть прочитаны в первую очередь, поскольку наиболее тесно связаны с тематикой главы. Следует также прочесть обзоры [41, 20] и работы [197, 198]. В этих статьях имеются ссылки на оригинальные работы по отдельным моделям.
Модель Риддла [258] кажется наиболее предпочтительной для моделирования больших программных систем и заслуживает детального изучения.
Темы для дальнейшего изучения
Расширьте иерархию, приведенную на рис. 8.21, включив в нее ограниченные модели сетей Петри, обсужденные в гл. 7: сети Петри со свободным выбором и правильные сети Петри.
Исследуйте свойства языков, определенных классами моделей, рассмотренных в этой главе, и соотнесите их с регулярными, контекстно-свободными и контекстно-связанными языками.
Определите разрешимость задачи достижимости для каждого из классов моделей, обсужденных в этой главе.
Расширьте работу, проделанную в этой главе, и включите модели, описанные в [2, 3, 180, 260, 271, 284].
ОБЗОР ТЕОРИИ КОМПЛЕКТОВ
Теория множеств используется в математике и вычислительной технике длительное время. Теория комплектов является естественным расширением теории множеств. Комплект, подобно множеству, есть набор элементов из некоторой области. Однако в отличие от множества комплекты допускают присутствие нескольких экземпляров одного и того же элемента. В теории множеств элемент есть либо элемент множества, либо не элемент множества. В теории комплектов элемент может входить в комплект нуль раз (не входить в комплект) или один, два, три или любое заданное число раз.
Теория комплектов была разработана в [50, 237].
В качестве примера рассмотрим следующие комплекты над областью {а, Ь, с, d}: Bt = {а, b, с), Вг = {а), В3 = {a, b, с, с), Bt = = {a, a, a), Bs = {b, с, Ь, с}, Bs = {с, с, Ь, Ь}, Вт = {а, а, а, а, а, Ь, Ь, с, d, d, d, d, d, d, dY Некоторые комплекты являются множествами (например, В^ и B3Y Так же как и в множествах, порядок элементов в комплекте не важен. Поэтому В3 и В6 являются одним и тем же комплектом (упорядоченные комплекты являются последовательн остями).
В теории множеств основным понятием является отношение включения. Это отношение связывает элементы и множества и определяет, какие элементы являются членами каких множеств. Основным понятием теории комплектов является функция числа экземпляров. Эта функция определяет число экземпляров элемента в комплекте. Обозначим число экземпляров элемента х в комплекте В через #(х, В) (читается «число х в В»).
Исходя из этого понятия, можем определить основы теории комплектов. Большинство понятий и обозначений заимствованы из теории множеств. Если мы ограничим число элементов в комплекте так, что 0 < #(х, В) < 1, то получим теорию множеств.
А.1. Членство
Функция #(х, В) определяет число экземпляров элемента х в комплекте В. Отсюда следует, что #(х, В) :> 0 для всех х и В. Мы различаем нулевой и ненулевой случаи. Элемент х является членом комплекта В, если 4ф(х, В) > 0. Это мы будем обозначать через х Q, € В. Аналогично, если #(х, В) = 0, то х $ В.
Определим пустой комплект 0, не имеющий членов (для всех х: # (х, 0) = 0).
А.2. Мощность
Мощность |В| комплекта В есть общее число экземпляров элементов в комплекте
I в । = 2 # (х, ву
КЗ. Включение и равенство комплектов
Комплект А есть подкомплект комплекта В (обозначается Л = s Ву если каждый элемент А является элементом В по меньшей мере не большее число раз: А е В тогда и только тогда, когда 4ф(х, Л) < #(х, В) для всех х. Два комплекта равны (А = ВУ если #(х, Л) = #(х, В) для всех х.
Из этих определений мы можем непосредственно показать, что А = В тогда и только тогда, когда АгВиВгА.0гВ для любого комплекта В; из А = В следует |Л | = |В|; из А е В следует |Л|< |В|.
Комплект А строго включен в комплект В^А с: ВУ если Аг В и А =У В. Отметим, что #(х, А) < #(х, В) не следует из Л с В, хотя и |Л | < |В|.
А.4. Операции
Над комплектами определяются четыре операции. Для двух комплектов Л и В мы определим:
объединение комплектов Л (J В: #(х, A (J В)=тах (#(х, А), #(х, В)); пересечение комплектов А П В : # (х, А П B)=min (# (х, Л), #(х, В)); сумму комплектов АуВ : # (х, А + В) = # (х, Л) + # (х, В);
разность комплектов Л —В; # (х, Л —В)= # (х, Л) — #(х, А П В).
Эти операции обладают большинством ожидаемых свойств. Объединение, пересечение и сумма коммутативны и ассоциативны, кроме того, справедливы ожидаемые включения:
А ПВсЛсЛиВ;
А —В с А с А + В.
Различие между объединением и суммой очевидно:
Л1)Я| I л I + |S| ;
Л + 5 | - | Л | + | 5 | .
К сожалению, различия между Л Л В и Л—В нельзя так же легко проиллюстрировать, что объясняется невозможностью для операции разности удаления элементов из комплекта, которые не входят в него.
А.5. Пространство комплектов
Определим область D как множество элементов, из которых составляются комплекты. Пространство комплектов Dn есть множество всех таких комплектов, что элементы их принадлежат D и ни один элемент не входит в комплект более п раз. Иначе говоря, для любого В Е Dn:
Из х ^В следует х Е D.
Для любого х #(х, В) < п.
Множество D°° есть множество всех комплектов над областью D без какого-либо ограничения на число экземпляров элемента в комплекте.
А.6. Отображения Париха
Для конечной области D = {db d^ ..., dn^ существует естественное соответствие между каждым комплектом В над D и и-векто- ром / = (Д, /2, ..., /п), определяемым соотношением ft = #(^ь В). Этот вектор известен как отображение Париха [229].
А.7. Примеры
Пусть D = {а, Ь, с, d} — область. Тогда для следующих комплектов А = {a, by В = {а, a, b, с}, С = {а, а, а, с, с} имеем:
| Л | = 2, | С | = 5;
A U В = ^а, а, Ь, с) = В, A (J С = {а, а, а, Ь, с, с} = В{] С;
А П С = {а}. В 0 С = {а, а, с};
А + В = ^а, а, а, Ь, Ь, с\, А —В = 0 ;
С — А = {а, а, с, с}, С — В = {а, с\
АННОТИРОВАННАЯ БИБЛИОГРАФИЯ
Эта аннотированная библиография дополняет наше изложение теории сетей Петри. Как и следовало ожидать, представить все существующие работы по сетям Петри оказалось невозможно. Более полную информацию вы сможете почерпнуть из другой научной литературы.
К сожалению, многие исследования по сетям Петри доступны только в качестве технических отчетов тех институтов, где они были выполнены, а в журналах появляется только их конспективное изложение. Очевидно, что поиск этих работ сопряжен с определенными трудностями.
Всего имеются три основных типа источников работ по сетям Петри: журналы, отчеты и материалы конференций. Теоретические журналы по вычислительной технике являются наиболее доступным источником. В число таких журналов следует включить: Theoretical Computer Science, Journal of Computer and, System Sciences, Information and Control and Journal of the ACM^.
Статьи, опубликованные в журналах,как правило, впервые появлялись в качестве технических отчетов, которые можно получить только в организации, выпустившей тот или иной отчет, обычно это факультет университета. Многие факультеты оформляют диссертации на соискание степени доктора философии, как технические отчеты. Отчеты доступны также в качестве микрофильмов в Анн-Арбор, штат Мичиган.
Основным источником по сетям Петри были работы, выполненные в Массачусетском технологическом институте (МТИ). Первоначально эти отчеты были выпущены Проектом МАС. Проект МАС изменил свое название и теперь именуется Лабораторией вычислительной техники. Другим важным источником научно-исследовательских отчетов является Институт исследований информационных систем при Обществе математики и обработки данных в Бонне, ФРГ.
Наконец, источником результатов исследований по теории сетей Петри являются материалы конференций. Однако интересующие нас работы рассеяны по многим конференциям, а число тех, которые представляют действительно новое, небольшое. Сообщения, связанные с сетями Петри, можно встретить на ежегодном^симпозиуме.
Библиография
Abraham S., On Matrix Grammars, Technical Report 3, Department of Computer Sciences, Technion — Israel Institute of Technology, Haifa, Israel, April 1970, pp. 12.
Adams D., A Computational Model with Data Flow Sequencing, Ph. D. dissertation, Computer Science Department, Stanford University, Stanford, California, December 1968, pp. 134; Technical Report 117, Computer Science Department, Stanford University, Stanford, California, December 1968, pp. 130.
О Среди советских журналов следует отметить: Автоматика и телемеханика, Автоматика и вычислительная техника, Кибернетика, Известия АН СССР. Техническая кибернетика. — Прим. ред.
Adams D., A Model for Parallel Computations, Parallel Processor Systems, Technologies and Applications, New York; Spartan Books, 1970, p. 311 — 334.
Agerwala T., A Complete Model for Representing the Coordination of Asynchronous Processes, Hopkins Computer Research Report No. 32, Computer Science Program, Johns Hopkins University, Baltimore, Maryland, July 1974, pp. 58.
Определяется расширенная модель сети Петри, которая допускает сдерживающие дуги. Показано, что эта расширенная модель эквивалентна машине Тьюринга. Поскольку машина Тьюринга может моделировать любую алгоритмическую схему управления процессов, она называется полной. Расширенная модель сети Петри также полна.
Agerwala Т., An Analysis of Controlling Agents for Asynchronous Processes, Hopkins Computer Research Report No. 35, Computer Science Program, Johns Hopkins University, Baltimore, Maryland, August 1974, pp. 85.
Для получения иерархии моделей, подобной иерархии из гл. 8, анализируются и сравниваются восемнадцать моделей параллельных вычислений, а также девять вариантов сети Петри. Эти результаты, хотя и согласуются с результатами работы [240], но они более категоричны и выведены независимо.
Agerwala Т., Some Applications of Petri Nets, Proceedings of the 1978 National Electronics Conference, 23, October 1978, p. 149—154; Putting Petri Nets to Work, Computer, 12, No. 12, 1979, p. 85—94.
Прекрасная, хотя и краткая работа о том, как сети Петри могут использоваться для моделирования систем с параллельными действиями. Это изложение является разумной альтернативой гл. 3. В работе представлены разнообразные приложения, включая аппаратное и программное обеспечение вычислительных систем, асинхронные схемы, языки проектирования и некоторые новые приложения.
Agerwala Т., Flynn М., Comments on Capabilities, Limitations and ’Correctness’ of Petri Nets, Hopkins Computer Research Report No. 26, Computer Science Program, Johns Hopkins University, Baltimore, Maryland, July 1973, pp. 58; Proceedings of the First Annual Symposium on Computer Architecture, New York: ACM, 1973, p. 81—86.
Agerwala T., Flynn M., On the Completeness of Representation Schemes for Concurrent Systems, Unpublished, 1976, pp. 16.
Agerwala T., Flynn M., Modeling with Extended Petri Nets, Unpublished, 1976, pp. 18.
Anderson D., Sparacio F., Tomasulo R., The IBM System/360 Model 91: Machine Philosophy and Instruction Handling, IBM Journal of Research and Development, 11, No. 1, 1967, pp. 8—24.
В ЭВМ IBM 360/91 для получения высокой производительности используется параллелизм. Поэтому если сети Петри являются хорошим средством моделирования параллельно действующей аппаратуры, то с их помощью можно моделировать устройство управления. Эта статья описывает основные действия устройства управления модели IBM 360/91.
Andre С., Diaz М., Girault С., Sifakis J., Survey of French Researches and Applications Based on Petri Nets, Advanced Course on General Net Theory of Processes and Systems, Hamburg, 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag (1980).
Anshel M., Decision Problems for HNN Groups and Vector Addition Systems, Mathematics of Computation, 30, No. 133, 1976, p. 154—156.
Araki T., Kasami T., Some Decision Problems Related to the Reachability Problem for Petri Nets, Theoretical Computer Science, 3, No. 1, 1976, p. 85—104.
Araki T., Kasami T., Decidable Problems on the Strong Connectivity of Petri Net Reachabilitv Sets, Theoretical Computer Science, 4, No. 1, 1977. p. 99—119.
Ayache J., Diaz M., Valette R., A Methodology for Specifying Contrcl
in Electronic Switching Systeme, Proceedings of the I nternational Switching Symposium, Paris, May 1979, p. 1049—1056.
Azema P., Diaz M., Doucet J., Multilevel Description Using Petri Nets, Proceedings of the 1975 International Symposium on Computer Hardware Description Languages and Their Applications, New York: IEEE, September 1975, p. 188—190.
Azema P., Valette R., Diaz M., Petri Nets as a Common Tool for Design Verification and Hardware Simulation, Proceedings 13th Design Automation Conference, New York: IEEE, June 1976, p. 109—116.
Azema P., Valette R., Renalier M., Programme de Simulation et d’Analyse des Schemas a Reseaux de Petri, en Langage APL, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 73—88.
Baer J., Graph Models of Computations in Computer Systems, Ph. D- dissertation, Department of Electrical Engineering, University of California, Los Angeles, California, 1968, pp. 223.
Baer J., A Survey of Some Theoretical Aspects of Multiprocessing, Computing Surveys, 5, No. 1, 1973, p. 31—80.
Обзор некоторых теоретических результатов, полученных для параллельных вычислений. Сначала рассматривается задача представления параллелизма в программе, или автоматического определения скрытого параллелизма, в случае, когда язык программирования не допускает явного представления параллелизма. Затем описывается несколько моделей параллельных вычислений, включая сети Петри, графы UCLA и схемы параллельных программ. Наконец описываются некоторые методы предсказания производительности мультипроцессорных систем. В приложении приведены различные типы аппаратного обеспечения мультипроцессорных систем.
Baer J., Modeling for Parallel Computation: A Case Study, Proceedings of the 1973 Sagamore Computer Conference on Parallel Processing, New York, IEEE, August 1973, p. 13—22.
Здесь представлен отчет по ранним работам, посвященным моделированию компиляторов с помощью расширенных сетей Петри. В работе рассматривается только моделирование. Модель сети Петри расширяется добавлением дизъюнктивной (ИЛИ) логики, переключателей и поглощателей фишек. Затем эта модель используется для описания фазы лексического анализа компилятора. Как оказалось впоследствии, эта работа привела к результатам, изложенным в [22].
Baer J., Ellis С., Model, Design and Evaluation of a Compiler for a Parallel Processing Environment, IEEE Transactions on Software Engineering, Volume SE-3, No. 6, 1977, p. 394—405.
Эта работа является продолжением работы [21]. Компилятор XPL моделируется сетью Петри. Моделирование подсказало структуру компилятора, которая была изменена так, что компиляция в ней выполняется в три этапа, что удобно для трехпроцессорного конвейерного компилятора, позволяющего увеличить скорость компиляции в два раза.
Baer J., Bovet D., Estrin G., Legality and Other Properties of Graph Models of Computations, Journal of the ACM, 17, No. 3, 1970, p. 543—554.
Baker H., Jr., Petri Nets and Languages, Computation Structures Group Memo 68, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1972, pp. 6.
Короткая заметка, описывающая основную идею сопоставления языка сети Петри и использования этого языка для описания поведения сети Петри.
Baker Н., Jr., Equivalence Problems of Petri Nets, Master’s thesis, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1973, pp. 53.
Название этих тезисов несколько обманчиво. Хотя некоторые задачи эквивалентности и упоминаются, но особое внимание уделяется важным, ранее выдвинутым идеям Бэйкера по языкам сети Петри. Это одна из первых работ, рассматривающих сети Петри в контексте теории формальных языков.
Бэйкер работал с префиксными языками сетей Петри и определил каноническую форму префиксных языков маркированных графов.
Baker Н., Jr., Rabin’s Proof of the Undecidability of the Reachability Set Inclusion Problem of Vector Addition Systems, Computation Structures Group Memo 79, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, July 1973, pp. 18.
Рабин был неверно упомянут в [148] как доказавший, что задача эквивалентности для множеств*достижимости является неразрешимой, тогда как фактически он показал только, что задача включения неразрешима. Это доказательство не было опубликовано, но в 1972 году на совещании в МТИ было представлено новое доказательство. Оно приведено в данной работе, чтобы показать, что задача включения неразрешима. В нем используется десятая проблема Гильберта, которая сводится к недетерминированным регистровым машинам, которые в свою очередь эквивалентны сетям Петри. Это доказательство является основой доказательства|неразрешимости задач эквивалентности и подмножества для множеств достижимости сети Петри, приведенных в гл. 5.
Berlin F., Time-Extended Petri Nets, Master’s Thesis, Department of Computer Sciences, University of Texas, Austin, Texas, August 1979, pp. 152.
Bernstein A., Program Analysis for Parallel Processing, IEEE Transactions on Electronic Computers, EC-15, No. 5, 1966, p. 757—762.
Ранняя работа по автоматическому выявлению параллелизма в программе. Эта работа содержит определение условий Бернстайна: два действия могут выполняться параллельно, если выход каждого действия не является ни входом, ни выходом другого действия.
Bernstein A., Description Problems in the Modeling of Asynchronous Computer Systems, Technical Report 48, Department of Computer Science, University of Toronto, Toronto, Ontario, January 1973, pp. 116,
В этом отчете упоминаются сети Петри как модель параллельных вычислений.
Bernstein Р., Tsichritzis D., Models for Description of Computer Systems, Proceedings of the Eighth Annual Princeton Conference on Information Sciences and Systems, Princeton University, Princeton, New Jersey, March 1974, p. 340—343.
Berthelot G., Checking Liveness of Petri-Nets, Parallel Computers — Parallel Mathematics, Amsterdam: North-Holland, March 1977, p. 217— 220.
Berthelot G., Une Methode de Verification des Reseaux de Petri, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 33—54 (In French).
Berthelot G., Verification de Reseaux de Petri. These Doctorat Troisie- me Cycle, University Rierre et Marie Curie, Paris, France, January 1978, pp. 220 (In French).
Berthelot G., Roucairol G., Reduction of Petri Nets, Proceedings of the Fifth Symposium on Mathematical Foundations of Computer Science, Lecture Notes in Computer Science 45, Berlin: Springer-Verlag, September 1976, p. 202—209.
Rest E., Beitraege zur Petrinetz-Theorie, Thesis for diploma, Institut fur Informatik, Universitat Karlsruhe, Karlsruhe, West Germany, September 1974 (In German).
Best E., On the Liveness Problem of Petri Net Theory, ASM/6, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, June 1976.
Best E., The SOLO Operating System Described by Petri Nets, ASM/8, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, August 1976.
Best E., Path Programs, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Best E., Aspects' of Occurrence Nets, Advanced Course on General
Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Best E., Schmid H., Systems of Open Paths in Petri Nets, Proceedings of the Fourth Symposium on Mathematical Foundations of Computer Science, Lecture Notes in Computer Science, 32, Berlin: Springer-Verlag, September 1975, p. 186—193.
Bredt T., A Survey of Models for Parallel Computing, Technical Report 8, Digital Systems Laboratory, Stanford University, Stanford, California, August 1970, pp. 58; Technical Report STAN-CS-70-171, Computer Science Department, Stanford University, Stanford, California, August 1970, pp. 58.
Bredt T., Analysis of Parallel Systems, Technical Report 7, Digital Systems Laboratory, Stanford University, Stanford, California, August 1970, pp. 59; IEEE Transactions on Computers, C-203No. 11, 1971, p. 1403—1407.
Bredt 6., McCluskey E., A Model for Parallel Computer Systems, Technical Report 5, Digital Systems Laboratory, Stanford University, Stanford, California, April 1970, pp. 62; Technical Report STAN-CS-70-160, Department of Computer Sciences, Stanford University, Stanford, California, April 1970, pp. 62.
Brinch Hansen P., Concurrent Programming Concepts, Computing Surveys, 5, No. 4, December 1973, p. 223—245.
Brinsfield W., Miller R., On the Composition of Parallel Program Schemata, Conference Record 1971 12th Annual Symposium on Switching and Automata Theory, New York: IEEE, October 1971, p. 20—23.
Bruno J., Coffman E., Hosken W., Consistency of Synchronization Nets Uning P and V Operations, Technical Report 117, Computer Science Department, Pennsylvania State University, University Park, Pennsylvania, June 1972; Proceedings of the 13th Annual Symposium on Switching and Automata Theory, New York: IEEE, October 1972, p. 71—77.
Cardoza E., Computational Complexity of the Word Problem for Commutative Semigroups, Master’s thesis, Department of Electrical Engineering and Computer Science, Massachusetts Instituted Technology, Cambridge, Massachusetts, August 1975, pp. 67; Technical Memorandum 67, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, October 1975, pp. 67.
Комментируется тесная связь коммутативных полугрупп с системами сложения векторов и сетями Петри.
Cardoza Е., Lipton R., Meyer A., Exponential Space Complete Problems for Petri Nets and Commutative Subgroups, Proceedings of the Eighth Annual ACM Symposium on Theory of Computing, New York: ACM, May 1976, p. 50—54.
CerfV., Multiprocessors, Semaphores, and a Graph Model of Computation, Ph. D. dissertation, Computer Science Department, University of California, Los Angeles, California, April 1972, pp. 337.
Один из серии отчетов и диссертаций, разрабатывающих модель вычислений в виде графов UCLA.
Cerf V., Fernandez Е., Gostelow К., Volansky S., Formal Control Flow Properties of a Model of Computation, Report ENG-7178, Computer Science Department, University of California, Los Angeles, California, December 1971, pp. 81.
Cerf V., Gostelow K., Estrin G., Volansky S., Proper Termination of Flow of Control in Programs Involving Concurrent Processes, SIGPLAN Notices, 7, No. 11, 1972, p. 15—27; Proceedings of the ACM National Conference, kCM, New York, August 1972, p. 742—754.
Chen T., Overlap and Pipeline Processing, in H. Stone (Editor), Introduction to Computer Architecture, Chicago: Science Research Associates, 1975, p. 375—431.
Эта статья является хорошим введением архитектуры конвейерных ЭВМ, которые могут моделироваться сетями Петри, как это указано в гл. 3.
Commoner F., Deadlocks in Petri Nets, Report CA-7206-2311, Massachusetts Computer Associates, Wakefield, Massachusetts, June 1972, pp. 50.
Тупик — это ситуация, в которой каждое из двух действий, прежде чем начать выполнение, ожидает окончания выполнения другого. Активность является (в некотором смысле) противоположностью тупику. Коммонер изучает различные уровни тупиков или активности и получает достаточные условия активности.
Commoner F., Holt A., Even S., Pnueli A., Marked Directed Graphs, Juornal of Computer and, System Sciences, 5, No. 5, 1971, October 1971, p. 511 — 523.
Маркированные графы — это подкласс сетей Петри, в которых проявляется параллелизм, но отсутствуют конфликты. Эта работа является основным источником определения маркированных графов и результатов по этому вопросу. В ней разбираются алгоритмы решения задач безопасности, активности и достижимости и другие вопросы.
Cooper D., Programs for Mechanical Program Verification, in B. Meltzer and D. Michie (Editors), Machine intelligence 6, New York: Halstead Press, 1971, p. 43—59.
Ha c. 44—47 описывается алгоритм для арифметики Пресбюргера, который используется для доказательства простых теорем об алгебраических формулах.
Cooprider L., Petri Nets and the Representation of Standard Synchronizations, Department of Computer Science, Carnegie-Mellon University, Pittsburgh, Pennsylvania, January 1976, pp. 30.
Некоторый материал гл. 3 по использованию сетей Петри для моделирования программного обеспечения ЭВМ основан на этом наброске. Этот материал является несколько скучноватым, но в нем представляются и анализируются классические задачи синхронизации процессов.
Cotronis J., Lauer Р., Verification of Concurrent Systems of Processes, Technical Report 97, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, January 1977, pp. 11; Proceedings of the International Computing Symposium 1977, Amsterdam: North-Holland, April 1977, p. 197—207.
Courtois P., Heymans F., Parnas D., Concurrent Control with ’Readers’ and ’Writers’, Communications of the ACM, 14, No. 10, 1971, p. 667—668.
Courvoisier M., Une Architecture Parallele Asynchrone pour les Sys- temes de Commande, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 56—72 (In French).
Cox L., Jr., Predicting Concurrent Computer System Performance Using Petri Net Models, Proceedings of the 1978 ACM National Conference, New York: ACM, December 1978, p. 901—913.
Crespi-Reghizzi S., Mandrioli D., Petri Nets and Commutative Grammars, Internal Report 74-5, Laboratorio die Cacolatori, Institute di Electtro- tecnica ed Elektronica del Politecnico di Milano, Italy, March 1974, pp. 80.
Предпринимается попытка охарактеризовать сети Петри. Сначала исследуется алгебраическая характеризация, основанная на матричном представлении сетей Петри. Затем используется языковый подход для характеризации сетей Петри последовательностями запусков переходов. Показывается, что сети Петри эквивалентны коммутативным грамматикам непосредственных составляющих, т. е. грамматикам, в которых упорядочение символов несущественно. Отчет является хорошим изложением основных свойств сетей Петри.
Crespi-Reghizzi S., Mandrioli D., A Decidability Theorem for a Class of Vector Addition Systems, Information Processing Letters, 3, No. 3, January 1975, p. 78—80.
Показывается, что задача достижимости для сетей Петри без конфликтов является разрешимой, приводится краткое описание алгоритма для определения последовательности запусков, ведущих от одной маркировки к другой (если эта маркировка достижима).
Crespi-Reghizzi S., Mandrioli D., Some Algebraic Properties of Petri Nets, Alta Frequenza, 45, No. 2, February 1976, p. 130—13 7.
Crespi-Reghizzi S., Mandrioli D., Petri Nets and Szilard Languages, Information and Control, Votume 33, No. 2, 1977, p. 177—192.
Crespi-Reghizzi S., Schreiber F., Le Reti di Petri: Un Modello per la Descrizione dei Sistemi Asincroni, Rivista di I nformatica, 3, 1972, p. 3—20 (In Italian).
Crowley C., Noe J., Interactive Graphical Simulation Using Modified Petri Nets, Proceedings of Symposium on Simulation of Computer Systems, New York: ACM, August 1975, p. 177—184.
Dadda L., The Synthesis of Petri Nets for Controlling Purposes and the Reduction of their Complexity, Proceedings of the Second Euromicro Symposium on Microprocessing and Microprogramming, Amsterdam: North-Holl and, October 1976, p. 251—259.
Davis M., A Program for Presburger’s Algorithm, Summer Institute for Symbolic Logic, Cornell University, Ithaca, New York, 1957, p. 215—233.
Описывается программа на машинном языке для компьютера Института перспективных исследований. Программа определяет верность формулы в рамках арифметики Пресбюргера (длина формулы до 96 символов). Значение этой работы состоит в пояснении алгоритма Пресбюргера перед программой.
Davis М., Computability and Unsolvability, New York: McGraw- Hill, 1958, pp. 210.
Классическая работа по теории вычислимости.
Davis М., Hilbert’s Tenth Problem is Unsolvable, The American Mathematical Monthly, 80, No. 3, 1973, p. 233—269.
Дэвис приводит полное доказательство Матиясевича неразрешимости десятой проблемы ,Гильберта.
Davis М., Hersch R., Hilbert’s 10th Ptoblem, Scientific American, 229, No. 5, Novembre 1973, p. 84—91.
Популярное объяснение доказательства того, что десятая проблема Гильберта неразрешима.
Dennis J., Modular, Asynchronous Control Structures for a High Performance Processor, Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, New York: ACM, June 1970, p. 55—80.
Приведены примеры использования сетей Петри для описания механизмов управления сложными ЭВМ. Конечной целью должна являться разработка автоматических механизмов реализации сети Петри как цифровой системы.
Dennis J. (Editor), Record of the'Project MAC Conference on Concurrent Systems and Parallel Computation, New York: ACM, June 1970, pp. 199.
Конференция в Вудс-Холле собрала на несколько дней вместе 27 исследователей по параллельным вычислениям и в конце концов привела к выпуску этих материалов. Работы, касающиеся сетей Петри, включают [70, 127, 232], а также превосходную библиографию.
Dennis J., Concurrency in Software Systems, Computation Structures Group Memo 65-1, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1972, pp. 18; Advanced Course in Software Engineering, Berlin: Springer-Verlag, 1973, p. 111—127; Lecture Notes in Computer Science, 30, Berlin: Springer-Verlag, 1975, p. Ill—127.
Сети Петри используются в качестве модели параллельных вычислений для иллюстрации задач детерминированности и связи между процессами.
Dennis J., Patil S., Speed Independent Asynchronous Circuits, Computation Structures Group’Memo 54, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, January 1971, pp. 5; Proceedings Fourth Hawaii International Conference on Systems Sciences, University of Hawaii, Honolulu, Hawaii, January 1971, p. 55—58.
Dennis J., Van Horn E., Programming Semantics for Multiprogrammed Computations, Communications of the ACM, 9, No. 3, 1966, p. 143—155.
DeVillers R., Louchard G., Realization of Petri Nets Without Conditional Statements, Information Processing Letters, 2, No. 4, October 1973, p. 105—107.
Dijkstra E., Solution of a Problem in Concurrent Program Control, Communications of the ACM, 8, No. 9, 1965, pp. 569.
Dijkstra E., Cooperating Sequential Processes, in F. Genuys (Editor), Programming Languages. New York: Academic Press, 1968, p. 43—112.
Это классическая работа, в которой впервые введены Р- и V-операции над семафорами.
Ellis С., Consistency and Correctness of Duplicate Database Systems, Xerox Systems Science Laboratory, Palo Alto Research Center, Palo Alto, California, 1977, pp. 28.
Fernandez C., Net Topology I, Internal Report 75-9, Institut fur Informationssystemforschung Gesellschaft fur Mathematik und Datenverarbei- tung, Bonn, West Germany, 1975.
Fernandez C., Net Topology II, Internal Report 76-2, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverar- beitung, Bonn, West Germany, 1976.
Co времени появления первой работы, которая привела к модели сетей Петри, общая теория сетей разрабатывалась Петри и другими исследователями. Эти два отчета «Топология Сети I» и «Топология сети II» связаны с исследованием алгебраических (математических) свойств сетей в рамках общей теории сетей. В отчетах много определений, теорем и доказательств и не содержится интуитивных рассуждений.
Foo S., Musgrave G., Comparison of Graph Models for Parallel Computation and Their Extension, Proceedings of the 1975 International Symposium on Computer Hardware Description Languages and Their Applications, New York: IEEE, September 1975, p. 16—21.
Furtek F., Modular Implementation of Petri Nets, Master’s thesis, Department of Electrical Engineering, Massachusetts Institute of Technology Cambridge, Massachusetts, 1971, pp. 136.
Furtek F., A New Approach to Petri Nets, Computation Structures Group Memo 123, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1975, p. 26.
Furtek F., The Logic of Systems, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1976, pp. 176; Technical Report 170, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1976, pp. 176.
Genrich H., Einfache nicht-sequentielle Prozesse (Simple Nonsequential Processes), Report 37, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, 1971 (in German).
Упоминается в работе [127] как являющаяся полнымгисследованием маркированных графов.
Genrich Н., Extended Simple Regular Expressions, Lecture Notes in Computer Science, 32, Berlin: Springer-Verlag, 1975, p. 231—237.
Genrich H., The Petri Net Represantation of Mathematical Knowledge, Internal Report 76-5, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, May 1976, pp. 30.
Используются сети Петри для представления теорем, аксиом, лемм и других соотношений.
Genrich Н., Lautenbach К., Synchronisationsgraphen, Acta Information, 2, No. 2, 1973, p. 143—161 (In German). . .
Genrich H., Lautenbach K., Facts in Place/Transition-Nets, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, September 1978, p. 213—231. .
Genrich H., Stankiewicz-Wiechno E., A Dictionary of Some Basic
Notions of Net Theory, Adwanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Genrich H., Thieler-Mevissen G., The Calculus of Facts, Proceedings of the Fifth Symposium on the Mathematical Foundations of Computer Scinece, Lecture Notes in Computer Science, 45, Berlin: Springer-Verlag, September 1976, p. 588—595.
Дается описание исчисления предикатов первого порядка как сети Петри.
Genrich Н., Lautenbach К., Thiagarajan Р., An Overview of Net Theory, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: SpringerVerlag, 1980.
Ghosh S., Some Comments on Timed Petri Nets, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 213—226.
Ghosh S., Structured Petri Nets, Report 49/77, Lehrstuhl Informatik, Universitat Dortmund, West Germany, August 1977, pp. 27.-
Определяется подкласс сетей Петри, иерархически объединяющихся для создания больших сетей, активность которых гарантируется.
Gilbert Р., Chandler W., Interference Between Communicating Processes, Communications of the ACM, 15, No. 3, 1972, p. 171 —176.
Конечно-автоматная модель параллельных вычислений, использующих для связи общую память.
Gill A., Introduction to the Theory of Finite State Machines, New York: McGraw-Hill, 1962, pp. 207.
Ginsburg S., The Mathematical Theory of Context Free Languages, New York: McGraw-Hill, 1966, pp. 232.
Математическое изложение части теории формальных языков. Работы по ограниченным языкам, теореме Париха и полулинейным множествам соотносятся с работой по языкам сетей Петри.
Ginsburg S., Algebraic and Automata-Theoretic Properties of Formal Languages, Amsterdam: North-Holland, 1975, pp. 313.
Ginsburg S., Spanier E., Semigroups, Presburger Formulas, and Languages, Pacific Journal of Mathematics, 16, No. 2, 1966, p. 285—296.
Показывается связь между контексно-свободными языками, полулинейностью и арифметикой Пресбюргера.
Girault С., Reseaux de Petri et Synchronisation de Processus, Technical Report 78.02, Institut de Programmation, University Pierre et Marie Curie, Paris, France, 1978, pp. 19 (In French).
Godbersen H., Meyer B., Function Nets as a Tool for the Simulations of Information Systems, Proceedings of the Summer Computer Simulation Conference, July 1978, p. 46—53.
Gostelow K*, Flow of Control, Resource Allocation and the Proper Termination of Programs, Ph. D. dissertation, Computer Science Department University of California, Los Angeles, California, December 1971, pp. 301.
Одна работа из серии отчетов и диссертаций, в которых разрабатывается модель вычислений в виде графа UCLA. В этой дессертации определяется свойство завершения и разрабатывается алгоритм определения возможности полного завершения. В приложении показывается, что сети Петри и графы UCLA почти эквивалентны, но позиции сети Петри ошибочно ставятся в соответствие вершинам графа UCLA, а не дугам графа при правильном сопоставлении, поэтому результаты ошибочны.
Gostelow К., Computation Modules and Petri Nets, Proceedings of the Third IE EE-ACM Milwaukee Symposium on Automatic Computation and Control, New York: IEEE, April 1975, p. 345—353.
Определяется и обсуждается свойство полного завершения сети Петри. Вполне оканчивающаяся сеть Петри может быть помещена вместо перехода в другую сеть без образования тупиков.
Grabowski J., The Unsolvability of Some Petri Net Language Problems, Information Processing Letters, 9, No. 2, August 1979, p. 60—63.
Hack M., Analysis of Production Schemata by Petri Nets, Master’s thesis, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, Febriary 1972, pp. 119; Technical Report 94, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, February 1972, pp. 119; Errata: Corrections to Analysis of Production Schemata by Petri Nets, Computation Structures Group Note 17, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1974, pp. 11.
В этой диссертации вводятся сети Петри со свободным выбором и исследуются их свойства. Главными результатами являются необходимые и достаточные условия для активности и безопасности. Проведена также работа по декомпозиции сетей со свободным выбором и более простые подсети.
Hack М., The Godelization of Petri Nets and Vector Addition Systems, Unpublished, May 1973, pp. 9.
Hack M., Extended State-Machine Allocatable Nets (ESMA), an Extension of Free Choice Petri Net Results, Computation Structures Group Memo 78, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1973, pp. 33; revised as Memo 78—1, June 1974, pp. 38.
Hack M., A Petri Net Version of Rabin’s Undecidability Proof for Vector Addition Systems, Computation Structures Group Memo 94, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, December, 1973, pp. 12.
Представляется доказательство неразрешимости задачи о подмножестве для множеств достижимости в сетях Петри. Первоначальное доказательство Рабина,как это сообщалось в [26], было дано для систем векторного сложения. Это доказательство имеется также [116] и представлено здесь в гл. 5.
Hack М., Decision Problems for Petri Nets and Vector Addition Systems, Computation Structures Group Memo 95, Project MAC. Massachusetts Institute of Technology, Cambridge, Messachusetts, March 1974, pp. 79. revised as Memo 95-1, August 1974; Technical Memo 59, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, March 1975, pp. 7.
В этом отчете собраны три основных результата: (1) эквивалентность обобщенных сетей Петри сетям Петри с ограничениями (без петель и с кратностью, равной нулю или единице); (2) неразрешимость задачи о подмножестве для множеств достижимости в сетях Петри (см. также [НО]) и (3) эквивалентность задач активности и достижимости (см. также [113]).
Hack М., Petri Nets and Commutative Semigroups, Unpublished, July 1974, pp. 5.
Hack M. The Recursive Equivalence of the Reachability Problem an the Liveness Problem for Petri Nets and Vector Addition Systems, Computation Structures Group Memo 107, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, August 1974, pp. 9; Proceedings of the 15th Annual Symposium on Switching and Automata Theory, NewYork: IEEE, October 1974, p. 156—164.
Показано, что задача достижимости и задача активности взаимно сводимы.
Hack М., The Equality Problem for Vector Addition Systems is Undecidable, Computation Structures Group Memo 121, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, April 1975, pp. 32; Theoretical Computer Science, 2, No. 1, June 1976, p. 77—96.
Показано, что задача о подмножестве для множеств достижимости сводима к задаче о равенстве. Таким образом, поскольку задача о подмножестве неразрешима (см. [26, НО] или [111]), то задача о равенстве также неразрешима. Это доказательство дано здесь в гл. 5.
115. Hack М., Petri Net Languages, Computation Structures Group Memo 124, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1975, pp. 128; Technical Report 159, Laboratory for Computer
Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, March 1976, pp. 128.
Следуя предположениям Бэйкера [24], Хэк тщательно исследовал языки сетей Петри. Выделяются два основных класса языков: префиксные языки всех последовательностей, которые ведут к достижимой маркировке, и языки последовательностей, ведущих к-определенной заключательной маркировке. Кроме того/Хэк рассматривает языки, которые получаются в результате принятия решения о разрешении или запрещении переходов, помеченных X, пустой строкой. Для каждого из этих четырех классов определены простые свойства замкнутости и даны характеристики. Кроме того, эти языки связаны с другими классами языков, включая регулярные языки. Показано, что задачи принадлежности, пустоты и конечности разрешимы для некоторых языков, но эквивалентны задаче достижимости для других. Прекрасное исследование в новой области.
Hack М., Decidability Questions for Petri Nets, Ph. D. dissertation, Department of Electrical Engeneering, Massachusetts Institute of Technology, Cambridge, Massachusetts, December 1975, pp. 194; Technical Report 161, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1976, pp. 194.
В этой диссертации собраны вместе многие из работ Хэка. Диссертация является прекрасной работой по сетям Петри, включающей как основные определения и свойства, так и новейшие исследования. Каждая тема тщательно определена и разработана. Основные главы включают: разрешимость ограниченности и покрываемости (используя дерево достижимости): задачи достижимости; активность и живучесть; неразрешимость задач подмножества и равенства для множеств достижимости в сетях Петри (как это впервые представлено в [НО, 114]); языки сетей Петри [115]. Диссертация завершается некоторыми открытыми вопросами и предположениями.
Han Y., Performance Evaluation of a Digital System Using a Petri Net-like Approach, Proceedings of the National Electronics Conference, 23, 1978, p. 166—172. '
Han Y., Kinney L., Petri Net Reduction and Verification, Honeywell, Minneapolis, Minnesota, 1977, pp. 52.
Hebalkar P., Deadlock-free Sharing of Resources in Asynchronous Systems, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, ^Cambridge, Massachusetts, September 1970, pp. 185; Technical Report 75, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, September, 1970, pp. 185.
Heimerdinger W., A Petri Net Approach to System Level Fault Tolerance Analysis, Proceedings of the National Electronics Conference, 23, October 1978, p. 161 — 165.
Henhapl W., A Transformation of Marked Graphs, I nformation Processing Letters, 2, No. 1, March 1973, p. 26—29.
Herzog O., Automatic Deadlock Analysis of Parallel Programs, Proceedings of the International Computing Symposium 1977, Amsterdam: North-Holland, April 1977, p. 209—216.
Holt A., Introduction to Occurence Systems, Associative Information Techniques, New York: American Elsevier, 1971, p. 175—203.
Хорошо изложенный обзор результатов Проекта теории информационных систем. Справочное пособие по системам событий с примерами и прекрасным обсуждением параллелизма и конфликтов в терминах систем событий и, следовательно, безопасных сетей Петри.
Holt A., Role/Activity Models and Petri Nets, Second Semi-Annual Technical Report, Report CADD-7503-1411, Massachusetts Computer Associates, Wakefield, Massachusetts, 1975, p. 5—26.
Holt A., Definitions Pertaining to Petri Nets, States and Events and Behavior, Second Semi-Annual Technical Report, Report CADD-7503-1411, Massachusetts Computer Associates, Wakefield, Massachusetts, 1975, p. 58—69.
Holt A., Communication Mechanics, Second, Semi-Annual Technical Report, Report CADD-7503-1411, Massachusetts Computer Associates, Wakefield, Massachusetts, 1975, p. 143—168.
Holt A., Commoner F., Events and Conditions (in three parths), Applied Data Research, New York, 1970; Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, New York: ACM, 1970, p. 1—52.
Работа Хольта по развитию науки об информации и системах называется систематикой. В данной статье имеется превосходное изложение основ этой работы и начал теории сетей Петри. Сети Петри определяются и иллюстрируются. На протяжении всей работы рассматриваются маркированные графы и автоматы.
В одном из примеров статьи отражено ограничение безопасности и, таким образом, посажено зерно современных определений. Статья очень интересна и хорошо читается.
Holt A., Saint Н., Shapiro R., Warshall S., Final Report of the Information System Theory Project, Technical Report RADC-TR-68-305, Rome Air Development Center, Griffiss Air Force Base, New York, 1968, pp. 352.
Этот объемный отчет представляет результаты Проекта теории информационных систем, которые касаются определения необходимых описательных средств для моделирования, оценки и реализации систем. Сети Петри занимают основную часть этой работы и представлены здесь детально. Понятие сети Петри само по себе является еще безопасной сетью. Это привело к большому объему работ по графам событий и системам событий, подходу к представлению и анализу последовательностей запусков, которые применимы к безопасным сетям. После работы [127] интерес к системам событий уменьшился.
Большинство работ по сетям Петри ссылается на этот отчет, хотя он представляет сейчас главным образом исторический интерес. Раздел V пересмотрен [274].
Hopcroft J., Pansiot J., On the Reachability Problem for 5-Dimensional Vector Addition Systems, Technical Report 76-280, Department of Computer Science, Cornell University, Ithaca, New York, 1976, pp. 42.
Изучается задача достижимости для систем сложения векторов с размерностью не большей пяти (сети Петри с числом позиций не больше пяти). Показано, что множества достижимости являются эффективно полулинейными, это дает алгоритм для их решения. Задачи эквивалентности и включения в общем случае неразрешимые разрешимы для этих систем. К сожалению, этот подход не пригоден для сетей с числом позиций большим пяти и имеет поэтому ограниченную практическую пользу.
Hopcroft J., Ullman J., Formal Languages and Their Relation to Automata, Reading, Massachusetts: Addison-Wesley, 1969, pp. 242.
Эта книга является классической в данной области. Она является кратким, но понятным изложением теории формальных языков (регулярных, контекстно-свободных, контекстно-зависимых и языков типа 0) и теории автоматов (автоматы с магазинной памятью, линейные ограниченные автоматы и машины Тьюринга). Хорошо представлены вопросы разрешимости и вопросы временной и емкостной сложности. Наиболее читаемый и постоянно упоминаемый источник для работ в любой из этих областей.
Hopner М., Opp М., Renaming and Erasing in Szilard Languages, Technical Report 35, Institut fur Informatik, University of Hamburg, May 1977, pp. 37; Automata, Languages and Programming, Lecture Notes in Computer Science, 52, Berlin: Springer-Verlag, 1977, p. 244—257.
Huen W., Siewiorek D., Intermodule Protocol for Register Transfer Level Modules: Representation and Analytic Tools, Proceedings of the Second Annual Symposium on Computer Architecture, New York: ACM, 1975, p. 56—26
Сети Петри, графы UCLA и системы сложения векторов рассматриваются как модели взаимосвязи аппаратных модулей. При анализе используется
дерево достижимости, а затем показываются некоторые проблемы, связанные с этими модулями.
Hughes С., The Equivalence of Vector Addition Systems to a Subclass of Post Canonical Systems, Technical Report CS-77-22, Computer Science Department, University of Tennessee, Knoxville, Tennessee, August 1977, pp. 6; Information Processing Letters, 7, No. 4, 1978, p. 201—204.
Human H., Comments on a Problem in Concurrent Programming Control, Communications of the ACM, 9, No. 1, 1966, pp. 45.
lazeolla G., Modelli per Elaborazione Parallela, Technical Report 73-03, Instituto di Automatica, Universita di Roma, Rome, Italy, 1973, pp. 54‘(in Italian).
Izbicki H., Report on Marked Graphs, Technical Report 25-136, IBM Vienna Laboratories, Vienna, Austria, 1973, pp. 37.
Это окончательный отчет по исследованиям в Венской лаборатории фирмы IBM по маркированным графам. В нем собраны вместе работы Ижбики, Хенхапля, Хансаля и Шваба. Изложение очень формальное, наполненное таинственными обозначениями и теоремами и связано с маркированными графами. Полученные результаты минимальны.
Jaffe J., Semilinear Sets and Applications, Master’s thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1977, pp. 79; Technical Report 183, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1975, pp. 79.
Jantzen M., On the Hierarchy of Petri Net Languages, R. A. A. R. O. Theoretical Informatics, 13, No. 1, 1979, p. 19—30.
Jantzen M., Structured Representation of Knowledge by Petri Nets as an Aid for Teaching and Research, Advanced Course on General Net Theory of Processes and Systems, Hamburg, 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Jantzen M., Valk R., Formal Properties of Place Transition Nets, Advanced Course on General Net Theory of Processes and Systems, Hamburg, 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Jensen K*, Extended and Hyper Petri Nets, Technical Report DAIMI TR-5, Computer Science Department, Aarhus University, Aarhus, Denmark, 1978.
Jensen K., Coloured Petri Nets and the Invariant Method, Technical Report DAIMI PB-104, Computer Science Department, Aarthus University, Aarhus, Denmark, 1979, pp. 27.
Johnson R., Needed: A Measure for Measure, Datamation, 16, No. 12, 1970, p. 22—70.
Jones N., Landweber L., Lien Y., Complexity of Some Problems in Petri Nets, Technical Report 276, Computer Science Department, University of Wisconsin, Madison, Wisconsin, 1976, pp. 43; Theoretical Computer Science, 4, No. 3, 1977, p. 277—299.
В этой работе теория сложности применяется к сетям Петри. Для нескольких задач в сетях Петри, включая достижимость, активность и безопасность, даны границы времени и объема памяти. Показано, что живучесть сводима к достижимости. Результаты по сложности даны как для сетей Петри, так и для автоматов, маркированных графов и сетей Петри со свободным выбором.
Jump J., Thiagarajan Р., On the Equivalence of Asynchronous Control Structures, Proceedings of the 13th Annual Symposium on Switching and Automata Theory, New York: IEEE, 1972, p. 212—223.
Karp R., Reducibility Among Combinatorial Problems, in R. Miller and J. Thatcher (Editors), Complexity of Computer Computations, New York: Plenum Press, 1972, p. 85—103.
Karp R., Miller R., Properties of a Model for Parallel Computation: Determinacy, Termination and Queueing, SIAM Journal of Applied Math, 14, No. 6, 1966, p. 1390—1411.
Определяются и исследуются свойства модели вычислений в виде графа вычислений. Эта модель оказала влияние на многие более поздние модели, такие, как схемы параллельных программ [148].
Karp R., Miller R., Parallel Program Schemata, RC-2053, IBM T. J. Watson Research Center, Yorktown Heights, New York, 1968, pp. 54; Journal of Computer and System Science, 3, No. 4, 1969, p. 167—195; preliminary draft, IEEE Conference Record of the 1967 Eighth Annual Symposium on Switching and Automata Theory, New York: IEEE, 1967, p. 55—61.
Многие ранние работы по моделированию параллелизма в вычислительных системах основаны на модели вычислительной системы с памятью и несколькими процессорами. Процессоры выполняли программы, которые моделируются в большей или меньшей степени блок-схемами. Данная работа Карпа и Миллера является высшей точкой этого подхода. В ней представляются модели схем параллельных программ, а затем определяются различные вопросы, связанные с этой моделью, такие, как эквивалентность, детерминированность и ограниченность. Особый интерес представляет разд. V, в котором вводятся системы сложения векторов и деревья достижимости для решения задач ограниченности и покрываемости.
Kasami Т., Vector Addition Systems and Synchronization Problems of Concurrent Processes, Technical Report ARO-23, University of Hawaii, Honolulu, Hawaii, 1974.
Keller R., Vector Replacement Systems: A Formalism for Modeling Asynchronous Systems, Technical Report 117, Computer Science Laboratory, Princeton University, Princeton, New Jersey, December 1972, pp. 38; revised January 1974, pp. 57.
Важная работа, на которую часто ссылаются. Келлер определяет «Системы переходов» как общую модель параллельных вычислений, а затем сужает ее до систем замещения векторов. Системы замещения векторов являются естественным обобщением систем сложения векторов и формализмом, эквивалентным сетям Петри. Исследуется главным образом задача активности.
Keller R., A Fundamental Theorem of Asynchronous Parallel Computation, Proceedings of the Sagamore Computer Conference, Lecture Notes in Computer Science, 24, Berlin: Springer-Verlag, August 1974, p. 102—112.
Keller R., Generalized Petri Nets as Models for System Verification, Technical Report 202, Department of Electrical Engineering, Princeton University, Princeton, New Jersey, August 1975, pp. 50.
В данном случае Келлер заинтересован в определении мощности моделирования (системы, которые могут быть промоделированы) и мощности разрешения (вопросы, которые разрешимы) сетей Петри . Мощность моделирования характеризуется аддитивными монотонными системами. Обсуждаемые здесь вопросы разрешимости концентрируются на использовании дерева достижимости для доказательства корректности.
Keller R., Look-Ahead Processors, Computing Surveys, 7, No. 4, 1975, p. 177—196.
Keller R., Formal Verification of Parallel Programs, Communications of the ACM, 19, No. 7, 1976, p. 371—384.
Модель, используемая здесь, является более мощной, чем сети Петри, но разработана на основе работы Келлера по системам замещения векторов и сетям Петри.
Kinney L., Han Y., Reduction of Petri Nets, Proceedings of the IMh Allerton Conference on Circuits and Systems Theory, September 1976.
Knuth D., The Art of Computer Programming, 3, Sorting and Searching, Reading, Massachusetts: Addison-Wesley, 1973, pp. 772.
Knuth E., Petri Nets and Regular Trace Languages, Report ASM/47, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, April 1978.
Knuth E.,Cycles of Partial Orders., Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, September 197 8, p. 315—325
Kosaraju S., Limitations of Dijkstra’s Semaphore Primitives and Petri Nets, Technical Report 25, Computer Science Program, Johns Hopkins University, Beltimore, Maryland, May 1973, pp. 20; Operating Systems Review, 7, No. 4, 1973, p. 122—126.
Это первая работа по определению задачи синхронизации, которую нельзя промоделировать с помощью сетей Петри. Поскольку в сетях Петри можно моделировать Р- и V-операции над семафорами, то они также являются неполными. Проблема заключается в кодировании состояний с одной, двумя или тремя фишками в позиции. Поскольку сети Петри являются разрешающими, то невозможно препятствовать запуску перехода, предназначенного для запуска с одной или двумя фишками в позиции, когда в ней имеется три фишки.
Kotov V., An Algebra for Parallelism Based on Petri Nets, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, September 1978, p. 39—55.
Landweber L., Robertson E., Properties of Conflict-free and Persistent Petri Nets, Technical Report 264, Computer Sciences Department, University of Wisconsin, Madison, Wisconsin, December 1975, pp. 30; Journal of the ACM, 25, No. 3, 1978, p. 352—364.
Сети Петри, свободные от конфликтов, допускают разделяемые входные позиции, только если они не входят в петли. Живучие сети Петри не могут сделать переход неразрешенным иным способом, отличным от его запуска. Множество достижимости обоих типов сетей Петри характеризуется как полулинейное. Основными темами этой работы являются сложность и разрешимость.
Lauer Р., Path Expressions as Petri Nets, or Petri Nets with Fewer Tears, MRM 70, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, January 1974, pp. 61.
Очень неформальный конспект исследований связи между Е-выраже- ниями и сетями Петри. Он послужил отправной точкой для написания работы [163].
Lauer Р., Campbell R., A Description of Path Expressions by Petri Nets, Technical Report 64, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, May 1974, pp. 39; Proceedings of the Second ACM Symposium on Principles of Programming Languages, New York: ACM, January, 1975, p. 95—105.
В работе принят конструктивный подход к доказательству того, что Е- выражения могут быть представлены сетями Петри. Е-выражения являются средством описания последовательности допустимых взаимодействий между параллельными процессами.
Lauer Р., Campbell R., Formal Semantics of a Class of High-Level Primitives for Coordinating Concurrent Processes, Acta Informatica, 5, No. 4, 1975, p. 297—332;
Lauer P., Shields M., Abstract Specification of Resource Accessing Disciplines: Adequacy, Starvation, Priority and Interrupts, Technical Report 117, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, December 1977, pp. 40.
Lauer P., Best E., Shields M., On the Problem of Achieving Adequacy of Concurrent Programs, Technical Report 113, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, June 1977, pp. 36.
Lautenbach K., Liveness in Petri Nets, Internal Report ISF-75- 02.1, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, July 1975, pp. 33.
Обзор состояния вопроса об активности и тупиках в сетях Петри. В этой работе собрано вместе большинство результатов.
Lautenbach К., Schmid Н., Use of Petri Nets for Proving Correctness of Concurrent Process Systems, Information Processing 74, Proceedings
of the 1974 IFIP Congress, Amsterdam: North-Holland, August 1974, p. 187— 191.
Системы параллельных процессов с большим трудом поддаются анализу и доказательству корректности, чем последовательные программы. Сети Петри могут использоваться для моделирования таких систем и доказательства свойств моделируемых систем. В этой работе рассматриваются семафоры, ограниченные буфера и задача об обедающих мудрецах, чтобы вновь получить в терминах сетей Петри результаты, найденные ранее независимо.
Lautenbach К. Thiagarajan Р., Analysis of a Resource Allocation Problem Using Petri Nets, Internal Report ISF-78-05, Institut fur Informati- onssystemforschung, Gesellschaft fur Mathematik und Datenverarbei tung, Bonn, West Germany, June 1978, pp. 17; Proceedings of the First European Conference on Parallel and Distributed Processing, February 1979.
Leung K., MichelC., Le Beux P., Logical Systems Design Using PLAs and Petri Nets — Programmable Hardwired Systems, Information Processing 77, Proceedings of the 1977 IFIP Congress, Amsterdam: North-Holland, August 1977, p. 607—611.
Lien Y., A Study of the Theoretical and Practical Aspects of Transition Systems, Ph. D. dissertation, Department of Computer Sciences, University of California, Berkeley, California, September 1972.
Lien Y., Termination and Finiteness Properties of Transition Systems, Technical Report 74-4, Department of Computer Science, University of Kansas, Lawrence, Kansas, September 1974, pp. 32.
Lien Y., Termination Properties of Generalized Petri Nets, SIAM Journal of Computing, 5, No. 2, 1976, p. 251—265.
Под свойствами завершаемости здесь понимаются свойства активности или образования тупика. Поскольку эта задача для обычных сетей Петри является еще не решенной, то Льен исследовал эту задачу для сетей Петри, которые являются свободными от конфликтов и не содержащими параллельных действий. При этом использовались как некоторые понятия из теории графов, такие, как сильная связность, так и понятия теории сетей Петри, такие, как сохранение.
Lien Y., A Note on Transition Systems, Information Sciences, 10, No. 4, 1976, p. 347—362.
Lien Y., Margrave AL, Transition Systems — A Model for Concurrent Activities, Technical Report 74-5, Department of Computer Science, University of Kansas, Lawrence, Kansas, October 1974, p.43.
Справочное пособие, содержащее основные понятия сетей Петри и связанных с ними моделей систем переходов. Указываются приложения методов моделирования к транспортным, генетическим системам и вычислениям.
Lipton R., The Reachability Problem Requires Exponential Space, Research Report 62, Department of Computer Science, Yale University, New Haven, Connecticut, January 1976, pp. 15.
Результаты этой работы впервые были представлены на Конференции по сетям Петри и связанным с ними методам в июле 1975 г. Эта работа содержит наиболее известный результат по сложности сетей Петри. Для доказательства того, что задача достижимости для сетей Петри и эквивалентных моделей, таких, как системы сложения векторов, требует не менее <1сп ячеек памяти, используется 5 лемм. Результат основан на конструкции, показывающей, что возможно построить счетчик, который может эффективно ^считать от 0 до 22^, с числом переходов, пропорциональным h. Над счетчиком возможны операции сложения, вычитания и проверки на нуль. (Именно проверка на нуль оказывается сложной.) Доказательство строится в рамках языка параллельных программ, который, как легко показать, эквивалентен сетям Петри. Приведенное здесь достаточно сложное доказательство требует, чтобы его прочли несколько раз.
Lipton R., Snyder L., PV Simulation of Computation Graphs, Unpublished, 1974, pp. 8.
Показано, что графы вычислений можно моделировать множествами процессов, используя Р- и V-операции.
R. Lipton., Snyder L., Zalcstein Y., A Comparative Study of Models of Parallel Computation, Proceedings of the 15th Annual Symposium on Switching and Automata Theory, New York: IEEE, October 1974, p. 145—155.
Липтон, Снайдер и Зальстейн сравнили основные модели параллельных вычислений, проделав работу, подобную выполненной в [5] и [240], но их результаты существенно отличны. Отличия проистекают из определения эквивалентности и включения. Это исследование более формально и более трудно для его развития, чем [5] или [240], но одинаково справедливо и интересно.
Liskov В,. The Design of the Venus Operating System, Communications of the ACM, 15, No. 3, 1972, p. 144—149.
Luconi F., Asynchronous Computational Structures, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, January 1968, pp. 139; Technical Report 49, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, February 1968, pp. 139.
Mandrioli D., A Note on Petri Net Languages, Internal Report 76-5, Laboratori di Calcolatori, Instituto di Electtrotecnica ed Elettronica del Politecnico di Milano, Milan, Italy, 1976; Information and Control, 34, No. 2, 1977, p. 169—171.
Показано, что языки сетей Петри, которые допускают Х-переходы, не замкнуты по дополнению.
Marin J., Andre С., Boeri F., Conception de Systemes Sequentiels Totalement Autotestables a partir des Reseaux de Petri,Revue Francaise d'Auto- matique, Informatique et Recherche Operationnelle: Automatique^ 10, No. 11, 1976, p. 5—22 (In French).
Mayr E., The Complexity of the Finite Containment Problem for Petri Nets, Master's thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1977, pp. 65; Technical Report 181, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1977, pp. 65.
Meldman J., A New Technique for Modeling the Behavior of Man- Machine Information Systems, Sloan Management Review, 18, No. 3, 1977, p. 29—46.
Meldman J., A Petri-Net Representation of Civil Procedure, IDEA — The Journal of Law and Technology, 19, No. 2, 1978, p. 123—148.
Meldman J., Holt A., Petri Nets and Legal Systems, Jurimetrics Journal, 12, No. 2, 1971, p. 65—75.
Любопытное изложение сетей Петри для юристов. Юридические системы —это социальные системы, включающие адвокатов, судей, истцов, ответчиков, клерков ит. д. Взаимодействие между этими участниками процедуры описывается в такой книге, как «Федеральный гражданский процессуальный кодекс». Это изложение показывает, что по меньшей мере некоторые из правил, регламентирующих процедуру, могут быть представлены интерпретирующими их сетями Петри. Предполагается, что моделирование юридических систем сетями Петри могло бы привести к лучшему пониманию их, а анализ модели мог бы привести к улучшению юридической системы.
Memmi G., Applications de la Notion de Semi-Flots aux Reseaux de Petri, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 207—212 (In French).
Memmi G., Applications of the Semiflow Notion to the Boundedness and Liveness Problems in Petri Net Theory, Proceedings of the 1978 Conference on I nformation Sciences and Systems, Johns Hopkins University, Baltimore, Maryland, March 1978, p. 505—509; Technical Report 78-3, Institut de Programmation, Universite Pierre et Marie Curie, Paris, France, March 1978, pp. 5.
Memmi G., Fuites dans les Reseaux de Petri, R. A. I. R. O. Informa- tiquel Theoretical Computer Science, 12, No. 2, 1978, p. 125—144 (In French.)
Memmi G., Fuites et Semi-Flots dans les Reseaux de Petri, These de Docteur Ingenieur, Universite Pierre et Marie Curie, Paris, France, December 1978, pp. 117 (In French).
Memmi G., Notion de Dualite dans les Reseaux de Petri, International Symposium on the Semantics of Concurrent Computation, Lecture Notes in Computer Science, Berlin: Springer-Verlag, July 1979 (In French).
Memmi G., Roucairol G., Linear Algebra in Net Theory, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Merlin P., A Study of the Recoverability of Computing Systems, Ph. D. dissertation, Department of Information and Computer Science, University of California, Irvine, California, 1974, pp. 181; Technical Report 58, Department of Information and Computer Science, University of California, Irvine, California, 1974, pp. 181.
Эта диссертация является странной комбинацией многих тем. Модель системы строится с помощью сетей Петри. Затем в нее вносятся ошибки (добавляются или удаляются фишки безотносительно к запуску переходов). В этой ситуации рассматривается поведение системы. «Хорошие» сети Петри в конце концов возвращались к приемлемым маркировкам, тогда как «плохие» — либо заходили в тупик, либо приходили к новым маркировкам, которые появляться не должны. На эту работу сильное влияние оказала работа по модели UCLA и концепция машины фишек, существующая в ее рамках.
Кроме того, в диссертации представляется модель временных сетей Петри, в которых переходы должны ждать определенное время после того, как они становятся разрешенными (но до того, как они будут запущены), а затем должны быть запущены в определенный интервал времени. Такие модели могут представлять большее число систем, поскольку они эквивалентны машинам Тьюринга. Однако в работе Мерлина рассмотрены в основном конечные системы, и поэтому никаких проблем не возникает.
Merlin Р., A Methodology for the Design and Implementation of Communication Protocols, Report RC-5541, IBM T. J. Watson Research Center, Yorktown Heights, New York, June 1975; IEEE Transactions on Communications, COM-24, No. 6, 1976, p. 614—621.
Временные сети Петри используются для моделирования протоколов связи. Представлен пример разработки и моделирования протокола временной сетью Петри с последующей проверкой протокола и указанием, как этот протокол мог бы затем быть реализован табличным микропрограммным интерпретатором сети Петри. Конечно, временные сети Петри взяты из диссертации Мерлина.
Merlin Р., Farber D., Recoverability of Communication Protocols — Implications of a Theoretical Study, IEEE Transactions on Communications, COM-24, No. 9, 1976, p. 1036—1043.
Merlin P., Randell B., Consistent State Restoration in Distributed Systems, Technical Report 113, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, October 1977, pp. 41.
Miller R., A Comparison of Some Theoretical Models of Parallel Computation, Report RC-4230, IBM T. J. Watson Research Center, Yorktown Heights, New York; IEEE Transactions on Computers, C-22, No. 8, 1973, p. 710—717.
Сравниваются сети Петри, графы вычислений, схемы параллельных программ и маркированные графы.
Miller R., Some Relationships Between Various Models of Parallelism and Synchronization, Report-RC-5074, IBM T. J. Watson Research Center, Yorktown Heights, New York, October 1974, pp. 43. *
Рассматривается сводимость между сетями Петри, графами вычислений, семафорными системами, системами сложения векторов и системами замещения векторов.
Miller R.Theoretical Studies of Asynchronous and Parallel Processing, Proceedings of the 1977 Conference on Information Sciences and System, Johns
Hopkins University, Baltimore, Maryland, March 1977, p. 333—339.
Minsky M., Computation’. Finite and. Infinite Machines, Englewood Cliffs, New Jersey: Prentice-Hall, 1967, pp. 317.
Учебник, в чем-то ведущий свое начало от работ по сетям Мак-Калока — Питтса, который все еще остается прекрасной работой по теории вычислимости. Наиболее интересна для нас гл. 11 по регистровым машинам, но и главы по машинам Тьюринга также имеют отношение к рассматриваемой теме.
Misunas D., Petri Nets and Speed Independent Design, Communications of the ACM, 16, No. 8, 1973, p. 474—481.
Moalla M., Pulou J., Sifakis J., Reseaux de Petri Synchronises, R. A. I. R. 0. A utomatiquel Systems Analysis and Control, 12, No. 2, 1978, p. 103—130 (In French).
Moalla M., Pulou J., Sifakis J., Synchronized Petri Nets: A Model for the Description of Non-Autonomous Systems, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, 1978, p. 374—384.
Moalla M., Sifakis J., Silva M., A la Recherche d’une Methodologie de Conception sure des Automatismes Logiques Basee sur 1’Utilisation des Reseaux de Petri, Technical Report 138, Institute of Applied Mathematics and Computer Science, Grenoble, France, October 1978, pp. 43 (In French).
Morcrette M., Validation d’Algorithmes Paralleles, Application a Г Analyse Syntaxique, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Peris, France, March 1977, p. 13—32 (In French).
Murata T., State Equations, Controllability and Maximal Matchings of Petri Nets, Research Report MDC 1.1.10, Department of Information Engineering, University of Illionis, Chicago, Illinois, December 1975; IEEE Transactions on Automatic Control AC-22, No. 3, 1977, p. 412—416.
Являясь введением в сети Петри для систем в рамках теории управления, эта работа посвящена в основном вопросам представления и анализа сетей Петри как систем с дискретным временем. Управляемость и достижимость исследуются в терминах матричного представления сетей Петри и максимальных парасочетаний. Работа является первым шагом к взаимному обмену между теорией сетей Петри и теорией оптимального управления.
Murata Т., A Method for Synthesizing Marked Graphs from Given Markings, Proceedings of the Tenth Annual Asilomar Conference on Circuits, Systems and Computers, November, 1976, p. 202—206.
Murata T., Petri Nets, Marked Graphs, and Circuit-System Theory, IEEE Circuits and Systems Society Newsletter, 11, No. 3, 1977, p. 2—12.
Очень хорошее введение в сети Петри и маркированные графы, изложенное с уклоном в теорию переключательных схем. В работе используется матричный подход к представлению сетей Петри и рассматриваются такие понятия, как управляемость в теоретико-системном смысле. Изложение носит учебный характер и является прекрасным примером того, как сети Петри могут широко использоваться в других областях исследований. Неформальное изложение в этой работе является интересной противоположностью с изложением в работе [209].
Murata Т., Circuit Theoretic Analysis and Synthesis of Marked Graphs, IEEE Transactions on Circuits and Systems, CAS-24, No. 7, 1977, p. 400—405.
Murata T., Church R., Analysis of Marked Graphs and Petri Nets by Matrix Equations, Research Report MDC 1.1.8, Department of Information Engineering, University of Illinois, Chicago, Illinois, November 1975.
Матричное представление сетей Петри помогает получить некоторые полезные методы анализа. Этот подход разрабатывается в данном отчете, главным образом для маркированных графов, но в некоторой степени и для сетей Петри. Работа является наиболее полным исследованием по сетям Петри и матричным уравнениям.
Murata Т., Shah Т., On Liveness, Deadlock, and Reachability of E-Nets, Proceedings of the 14th Annual Allerton Conference on Circuits and Systems Theory, September 1976, p. 597—605.
Используется матрица инциденций Е-сетей для изучения свойств активности, достижимости и существования тупиков.
Murata Т., Church R., Amin A., Matrix Equations for Petri Nets and Marked Graphs, Proceedings of the Ninth Annual Asilomar Conference on Circuits, Systems, and Computers, November, 1975, p. 36—41.
Nash B., Reachability Problems in Vector Addition Systems, The American Mathematical Monthly, 80, No. 3, 1973, p. 292—295.
Задача достижимости для систем сложения векторов определяется как исследовательская задача. Показывается, что она эквивалентна задаче достижимости нуля и задаче достижимости из нуля.
Noe J., A Petri Net Model of the CDC 6400, Technical Report 71- Ю4-03ЛDepartment of Computer Science, University of Washington, Seattle, Washington, April 1971, pp. 16; Proceedings ACM SIGOPS Workshop on System Performance Evaluation, New York: ACM, April 1971, p. 362— 378.
Заголовок несколько обманчив, поскольку моделируется не CDC 6400, а операционная система SCOPE 3.2. Кроме того, используются не сети Петри, а сети Петри, расширенные для включения логики включающего и исключающего ИЛИ, причем не ясно, необходимо ли это. Работа может служить главным образом примером, показывающим, что сети Петри могут моделировать реальные системы (даже если детали не вполне согласуются). Она также послужила началом работы, приведшей к разработке Е-сетей (см. [226] и [224]).
Noe J., Pro-Nets: For Modeling Processes and Processors, Technical Report 74-07-15, Department of Computer Science, University of Washington, Seattle, Washington, July 1975.
Noe J., Machine Aided Modeling Using Modified Petri Nets, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 89—114.
Noe J., Abstraction and Refinement with Modified Petri Nets, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 157—160.
Noe J., Abstraction Levels with Pro-Nets: An Algorithm and Examples, Technical Report 77-03-01, Department of Computer Science, University of Washington, Seattle, Washington, June 1977, pp. 16.
Noe J., Hierarchical Modeling with Pro-Nets, Proceedings of the National Electronics Conference, 23, October 1978, p. 155—160.
Noe J., Nets in Modeling and Simulation, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Noe J., Abstraction of Net Models, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Noe J., Applications of Net-Based Models, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980. •
Noe J., Kehl T., A Petri Net Model of a Modular Microprogrammable Computer (LM2), Technical Report 75-09-01, Computer Science Department, University of Washington, Seattle, Washington, September 1975, pp. 23.
Noe J., Nutt G., Macro E-Nets for Representation of Parallel Systems, IEEE Transactions on Computers, C-22, No. 8, 1973, p. 718—727.
Е-сети (сети оценок) являются расширенной интерпретацией модели параллельных вычислений (полученной из сетей Петри) для измерения производительности, оценки и моделирования. Е-сети представляют собой один из подходов к введению информации о времени в сеть Петри.
Noe J., Crowley С., Anderson Т., The Design of a Interactive Graphical Net Editor, Technical Report 74-07-30, Department of Computer Science, University of Washington, Seattle, Washington, July 1974, pp. 31; Proceedings CI PS-ACM Pacific Regional Conference, May 1974, p. 386—402.
Nutt G., The Formulation and Application of Evaluation Nets, Ph. D. dissertation, Computer Science Group, University of Washington, Seattle, Washington, July 1972, pp. 181; Technical Report 72-07-02, Computer Science Group, University of Washington, Seattle, Washington, July 1972, pp. 170.
Законченная работа по Е-сетям, расширению сетей Петри для моделирования и оценки производительности.
Nutt G., Evaluation Nets for Computer Systems Performance Analysis, Technical Report 72-04-03, Computer Science Group, University of Washington, Seattle, Washington, April 1972; Proceedings of the 1972 Fall Joint Computer Conference, Montvale, New Jersey: AFIPS Press, December 1972, p. 279—286.
Oberquelle H., Nets as a Tool in Teaching and in Terminology Work, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Parikh R., On Context-Free Languages, Journal of the ACM, 13, No. 4, October 1966, p. 570—581.
Определяется отображение строки в вектор, i-я компонента которого есть число появлений в строке Lro символа. Показано, что это отображение (отображение Париха), будучи примененным к контекстно-свободному языку, приводит к полулинейному множеству.
Parnas D., On a Solution to the Cigarette Smokers’ Problem (Without Conditional Statements), Department of Computer Science, Carnegie-Mellon University, Pittsburgh, Pennsylvania, July 1972, pp. 11; Communications of the ACM, 18, No. 3, 1975, p. 181 — 183.
Представляется решение задачи о курильщиках сигарет, сформулированной Патилом [333]. Решение использует массивы семафоров и глобальные переменные, которые не допускались Патилом.
Patil S., Coordination of Asynchronous Events, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1970 pp. 234; Technical Report 72, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1970, pp. 234.
Одна из ранних работ по сетям Петри. В ней содержится разумное введение в задачи управления параллельными процессами и в сети Петри. Затем автор переходит к расширенной модели, называемой сетью координации, и ее свойствам. В частности, Патил рассмотрел, как его сети координации могут быть реализованы аппаратно. Это показывается и в его более поздней работе.
Patil S., Closure Properties of Interconnections of Determinate Systems, Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, New York: ACM, June 1970, p. 107—116.
Система является детерминированной, если она имеет один и тот же выход для одних и тех же входов, что не выполняется в случае, если параллельные операции появляются в произвольном порядке и порядок влияет на выход. Когда параллельные системы были впервые определены, детерминированность создавала определенные трудности. Сейчас этот термин широко не используется. В своей статье Патил рассматривает задачу связи нескольких детерминированных систем для образования большей детерминированной системы. ,
Patil S., Limitations and Capabilities of Dijkstra’s Semaphore Primitives for Coordination Among Processes, Computation Structures Group Memo 57, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, February 1971, pp. 18.
В короткой заметке определяется задача о курильщиках сигарет и показывается, что она не может быть решена с помощью семафоров. Для моделирования задачи используются сети Петри, Показано, что любое решение приводит к сети Петри определенной формы, которая не соответствует никакому
набору Р- и V-операций. Это исследование привело к работам [159, 7], но обратите также вимание на заметку [230].
Patil S., Circuit Implementation of Petri Nets, Computation Structures Group Memo 73, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, December 1972, pp. 14.
Представляется аппаратная реализация сети Петри на уровне переключательных схем. Эти схемы отличаются от предложенных в [231] большей детализацией (до уровня ключей) и предположением об известных границах задержек передачи.
Patil S., Dennis J., The Description and Realization of Digital Systems, Computation Sctruktures Group Memo 71, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, October 1972, pp. 4; COM POON 72; Sixth Annual IEEE Computer Society International Conference Digest of Papers, New York: IEEE, September 1972, p. 223—226.
Краткое изложение работы по описанию цифровых систем с помощью сетей Петри и последующей реализацией их как независящих от частоты (асинхронных) схем.
Peterson J., Modeling of Parallel Systems, Ph. D. dissertation, Department of Electrical Engineering, Stanford University, Stanford, California, December 1973, pp. 255; Technical Report 46, Digital Systems Laboratory, Stanford University, Stanford, California, February 1974, pp. 241; Technical Report STAN-CS-74-410, Computer Science Department, Stanford University, Stanford, California, February 1974, pp. 241.
Двумя основными результатами этой диссертации являются сравнение моделей, позднее обобщенное в [240], и теория языков сетей Петри, опубликованная в [237].
Peterson J., Computation Sequence Sets, Journal of Computer and System Sciences, 13, No. 1, August 1976, p. 1—24.
Опубликована пересмотренная гл. 4 из [236]. Определяется и исследуется особый класс языков сетей Петри — языки, которые определяются выполнениями из начального состояния в заключительное. Главным образом рассматриваются свойства замкнутости и место этих языков в иерархии языков (регулярные, контекстно-свободные, контекстно-связанные, языки типа 0).
Peterson J., Petri Nets, Computing Surveys, 9, No. 3, 1977, p. 223— 252.
Это первый широко распространенный обзор и учебный материал по сетям Петри. В нем кратко затрагиваются вопросы моделирования сетями Петри, основные определения, задачи и методы анализа, языки сетей Петри и связанные с ними модели вычислений. Хорошее введение, которое должен понять любой технически мыслящий студент или аспирант.
Peterson J., An Introduction to Petri Nets, Proceedings of the National Electronics Conference, 32, 1978, p. 144—148.
Peterson J., Bredt T., A Comparison of Models of Parallel Computation, Information Processing 74, Proceedings of the 1974 IFIP Congress, Amsterdam: North-Holland, August 1974, p. 466—470.
Описываются и сравниваются структуры управления нескольких моделей параллельных вычислений. Эти модели включают конечные автоматы, сети Петри, графы UCLA, системы сообщений, графы вычислений, схемы параллельных программ, маркированные графы и сети координации. Смотрите также аналогичные работы [5, 178, 193].
Petri С., Kommunikation mit Automaten, Ph. D. dissertation, University of Bonn, Bonn, West Germany, 1962 (In German); M. I. T. Memorandum MAC-M-212, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts; Clifford F. Greene, Jr. (translator), Communication with Automata, Supplement 1 to Technical Report RADC-TR-65-377, 1, Rome Air Development Center, Griffiss Air Force Base, New York, January 1966^ po. 89.
Эта диссертация является отправной точкой развития сетей Петри. Петри начал с рассмотрения конечных: азтомегоз и пттп, езытязь на работы
Дэвиса, Тьюринга и других, что регулярные автоматы не могут распознавать контекстно-свободные и контекстно-связанные грамматики. Затем Петри объявил, что если бы эти автоматы были не конечны, а неограниченны, то времена задержки сигнала также были бы неограниченны, и поэтому возникает задача синхронизации. “
После чего Петри переходит к построению сети для моделирования ленты машины Тьюринга. Эта сеть является целиком асинхронной и строится из идентичных ячеек, которые передают информацию своим соседям (левым или правым) по мере необходимости. Поскольку лента бесконечна, то необходимо бесконечное число ячеек. Однако важность этой работы заключается в акцентировании асинхронной природы взаимодействий.
В современных терминах все сети в диссертации Петри являются безопасными по определению. Сегодня диссертация Петри представляет только исторический интерес.
Petri С., Fundamentals of a Theory of Asynchronous Information Flow, Information Processing 62, Proceedings of the 1962 Congress, Amsterdam*. North-Holland, August 1962, p. 386—390.
Petri C., Concepts of Net Theory, Proceedings of the Symposium and, Summer School on Mathematical Foundations of Computer Sciences, High Tat- ras, Mathematics Institute of the Slovak Academy of Science, September 1973, p. 137—146.
Развитие общей теории сетей, связанной с общей теорией систем и топологией .
Petri С., Interpretations of Net Theory, Internal Report 75-07, Insti- tut fur Informationssystemforschung, Gesellschaft fur Mathematik und Daten- verarbeitung, Bonn, West Germany, July 1975, pp. 34; revised December 1976.
Дальнейшее развитие теории сетей.
Petri С., General Net Theory, Proceedings of the Joint IBMlUniversi- ty of Newcastle upon Tyne Seminar on Computing System Design, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, September 1976, p. 131 —169.
Petri C., Concurrency as a Basis of Systems Thinking, Internal Report ISF-78-06, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, September 1978, pp. 20.
Petri C., Introduction to General Net Theory, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Petri C., Concurrency, Advanced Course on Deneral Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Aerlag, 1980.
Pless E., Plunnecke H., A Bibliography of New Theory, Internal Report ISF-78-08, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, November 1978, pp. 57.
Перечень большинства из известных работ по сетям Петри.
Postel J., A Graph Model Analysis of Computer Communications Protocols, Ph. D. dissertation, Computer Science Department, University of California, Los Angeles, California, 1974, pp. 191.
Postel J., Farber D., Graph Modeling of Computer Communications Protocols, Proceedings of the Fifth Texas Conference on Computing Systems, University of Texas, Austin, Texas, October 1976, p. 67—77.
Эта работа использует для моделирования протоколов связи модели графов UCLA, а не сети Петри (они эквивалентны). По содержанию работа подобна работе [194].
Presburger М., Uber die Vollstandigkeit eines gewissen Systems der Arithmetic ganzer Zahlen, in Welchem die Addition als einzige Operation her- vortritt, Proceedings of the First Congress of Slavic Mathematicians, Warsaw, 1929, p. 91 — 101, 395 (In German).
Приводится алгоритм определения выполнимости предложений, которые используют только сложение целых чисел с кванторами и логическими связками (арифметика Персбюргера).
Rackoff С., The Covering and Boundedness Problems for Vector Addition Systems, Technical Report Number 97, Department of Computer Science, University of Toronto, Toronto, Ontario, 1976, pp. 14; Theoretical Computer Science, 6, No. 2, April 1978, p. 223—231.
Представляются новые алгоритмы для решения задач покрытия и ограниченности. Эти результаты представлены для систем сложения векторов, но, конечно, они равным образом применимы к сетям Петри. Эти алгоритмы требуют 2е'л log/z ячеек памяти и поэтому являются близкими к оптимальным. Нижняя граница Липтона равна <2с'п. Главное внимание в этой работе уделено результатам по сложности вычислений.
Ramchandani С., Analysis of Asynchronous Concurrent Systems by Petri Nets, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, July 1973, pp. 219; Technical Report 120, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, February 1974, pp. 219.
Эта диссертация посвящена анализу модели сети Петри для определения ее производительности. Модели сетей Петри расширены с целью сопоставления времени каждому переходу. Анализ некоторых подклассов этих временных сетей Петри привел к вычислению пропускных способностей этих систем.
Ramming F., Petri-Net Based Description, Analysis and Simulation of Concurrent Processes, Proceedings 14th Design Automation Conference, New York: IEEE, June 1977.
Reddi S., A Modular Computer with Petri Net Array Control, Proceedings of the 1978 ACM National Conference, New York: ACM, December 1978, p. 79—85.
Reif J., Analysis of Communicating Processes, Technical Report 30, Computer Science Department, University of Rochester, Rochester, New York, May 1978, pp. 45.
Используется сводимость к задаче достижимости сетей Петри для того, чтобы показать трудности анализа программ в распределенной среде.
Riddle Ш., The Modeling and Analysis of Supervisory Systems, Ph. D. dissertation, Computer Science Department, Stanford University, Stanford, California, March 1972, pp. 181; Technical Report STAN-CS-72-271, Computer Science Department, Stanford University, Stanford, California, March 1972, pp. 174.
В диссертации Риддла определена модель параллельных вычислений, которая предполагает, что система состоит из независимых асинхронно работающих последовательных процессов. Связь между процессами осуществляется с помощью сообщений. Целью работы является разработка метода анализа вычислительных систем. В модели Риддла каждый процесс описывается псевдопрограммой. Они используются для получения выражений передачи сообщений (которые являются языками), а затем эти выражения "передачи сообщений используются для анализа. Вопросы разрешимости основных задач были оставлены открытыми, но несколько примеров показывают возможность и пользу этого подхода. Питерсон показал, что эти системы можно преобразовать в сети Петри [236], а Риддл доказал обратное [259], показав, что эти две схемы моделирования эквивалентны.
Riddle W., The Equivalence of Petri Nets and Message Transmission Models, SRM/97, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, Eng and, August 1974, pp. 11.
В работах [236, 240], показано, что системы с сообщениями являются собственным подмножеством сетей Петри. Риддл показал, что если при рассмотрении эквивалентности не учитываются фальшивые тупики, то это не верно: эти модели эквивалентны. В доказательстве показано, как построить систему
сообщений с тем же поведением (не содержащим тупиков), что и сеть Пет ри. Эквивалентность этих двух моделей является желательной, поскольку системы с сообщениями много проще использовать для моделирования систем параллельных процессов.
Rodriguez J., A Graph Model for Parallel Computations, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, September 1967, pp. 130; Technical Report 64, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, September 1969, pp. 121.
Roucairol G., Une Transformation de Programmes Sequentiels en Programmes Paralleles, Programming Symposium*. Proceedings, Lecture Notes in Computer Science, 19, Berlin: Springer-Verlag, 1974, p. 327—349 (In French).
Сеть Петри используется для преобразования последовательных программ в параллельные путем моделирования отношения предшествования, которое присутствует в алгоритме и отлично от введенного при написании программы на линейном языке программирования.
Roucairol G., Contribution а 1’Etude des Equivalences Syntaxiques et Transformations de Programmes Paralleles, These Doctorat d’Etat es Sciences, Universite Pierre et Marie Curie, Paris, France, November, 1978, pp. 228 (In Crench).
Roucairol G., Valk R., Reductions of Nets and Parallel Programs, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
Sacerdote S., Tenney R., The Decidability of the Reachability Problem for Vector Addition Systems, COINS Technical Report 77-3, Computer and Information Sciences Department, University of Massachusetts, Amherst, Massachusetts, 1977, pp. 38; Proceedings of the Ninth Annual ACM Symposium on Theory of Computing, New York: ACM, May 1977, p. 61—76.
Дополненный реферат этой статьи был представлен в ноябре 1976 г. В ней дается конструктивное «доказательство» разрешимости задачи достижимости для систем сложения векторов и сетей Петри. К сожалению, это «доказательство» ошибочно. В предисловии к материалам Десятого симпозиума говорится, что «...в данной работе (Сасердот и Тенни, 1977) отмечен ряд неточностей. В настоящее время готовится к публикации новая, более простая и более точная версия».
Salomaa A., Formal Languages, New York: Academic Press, 1973, pp. 322.
Всеобъемлющее рассмотрение большей части вопросов современной теории формальных языков. Эта монография особенно полезна благодаря представлению матричных грамматик и систем Линденмейера. Оба этих класса языков связаны с языками сетей Петри.
Schiffers М., Uledde Н., Analyzing Program Solutions of Coordination Problems by СР-Nets, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, 1978, p. 462—473.
Schmid H., An Approach to the Communication and Synchronization of Processes, Proceedings of the International Computing Symposium 1973, Amsterdam: North-Holland, September 1973, p. 163—171.
Schmid H., Best E., Towards a Constructive Solution of the Liveness Problem in Petri Nets, Technical Report 4/76, Institut fur Informatik, Uni- versitat Stuttgart, West Germany, April 1976, pp. 56.
. Этот отчет объединяет работы [52, 167], связанные с задачей активности.
. Schmid Н., Best Е., A Step Towards a Solution of the Liveness Problem in Petri Nets, Technical Report 114, Computing Laboratory, University of Newcastle upon Tyne, Newcastle upon Tyne, England, February 1978, pp. 40.
Seitz C., Asynchronous Machines Exhibiting Concurrency, Record
of the Project MAC Conference on Concurrent Systems and. Parallel Computation, New York: ACM, June 1970, ,p. 93—106.
В этой работе на примере показывается экспериментальная методология построения асинхронных машин по сети Петри.
Seitz С., Graph Representations for Logical Machines, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, January 1971, pp. 136.
Shapiro R., System, Modeling with Net Structures, Second SemiAnnual Technical Report, Report CADD-7503-1411, Massachusetts Computer Associates, Wakefield, Massachusetts, March 1975, p. 87—135.
Shapiro R., The Application of General Net Theory — A Personal History, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: SpringerVerlag, 1980.
Shapiro R., Saint H., A New Approach to Optimization of Sequencing Decisions, Annual Review in Automatic Programming, 6, Part 5, 1970, p. 257— 288.
Сети Петри применяются для компиляции программ на языке Фортран для ЭВМ CDC 6600. Программа на языке Фортран преобразуется в сеть Петри. При этом выявляются ограничения предшествования между операциями. Эта сеть сливается с сетью Петри, представляющей процессор CDC 6600. Переходам сети ставится в соответствие информация о времени выполнения, и для определения последовательности операций и сопоставления регистров, которые минимизируют время выполнения, используется полный перебор.
Эта работа является пересмотренным разд. V работы [128].
Shapiro R., Thiagarajan Р., On the Maintenance of Distributed Copies of a Data Base, Report ISF-78-04, Institut fur Informationssystemforschung, Gesellschaft fur Mathematik und Datenverarbeitung, Bonn, West Germany, July 1978, pp. 14.
Shepardson J., Sturgis H., Computability of Recursive Functions, Journal of the ACM, 10, No. 2, April 1963, p. 217—255.
В этой работе разрабатывается модель регистровой машины и показывается ее эквивалентность машинам Тьюринга. Модель вычислений, основанная на регистровой машине, легко моделирует расширенную модель сети Петри, показывая тем самым эквивалентность модели сети Петри и машины Тьюринга.
Sifakis J., Comportement Permanent des Reseaux de Petri Temporises, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 227—247 (In French).
Sifakis J., Use of Petri Nets for Performance Evaluation, Measuring, Modeling and Evaluation of Computer Systems: Proceedings of the Third International Workshop on Modeling and Performance Evaluation of Computer Systems, Amsterdam: North-Holland, 1977, p. 75—93.
Sifakis J., Homomorphisms of Petri Nets: Application to the Realization of Fault-Tolerant Systems, Technical Report 90, Institute of Applied Mathematics and Computer Science, Gtenoble, France, November 1977.
Sifakis J., Realization of Fault-Tolerant Systems by Coding Petri Nets, Proceedings of the Eighth Annual International Conference on Fault- Tolerant Computing New York: IEEE, June 1978, pp. 205; (revised) Journal of Design Automation and Fault-Tolerant Computing, 3, No. 2, 1979.
Sifakis J., Structural Properties of Petri Nets, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer-Science, 64, Berlin: Springer-Verlag, September 1978, p. 474—483.
Sifakis J., Le Controle des Systemes Asynchrones: Concepts, Proprie- tes, Analyse Statique, These de Docteur es Science, University of Grenoble, Grenoble, France, June 1979, pp. 233 (In French).
Sifakis J., Use of Petri Nets for Performance Evaluation, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October
1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980»
Slutz D., The Flow Graph Schemata Model of Parallel Computation, Ph. D. dissertation, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Massachusetts, August 1968, pp. 256; Technical Report 53, Project MAC, Massachusetts Institute of Technology, Cambridge, Massachusetts, September 1968, pp. 254.
Starke P., Free Petri Net Languages, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, September 1978, p. 506— 515.
Stucki M., An Approach for Synthesizing Transition Logic Circuits, Proceedings of the 11th Annual Allerton Conference on Circuit and System Theory, October 1973, p. 418—425.
Stucki M., Synthesis of Level Sequential Circuits: Further Development of a Procedure Based on a Petri-Net Type of Behavioral Description, Proceedings of the 13th Annual Allerton Conference on Circuit and System Theory, October 1975, p. 896—904.
Symons F., Modelling and Analysis of Communications Protocols Using Petri-Nets, Technical Report 140, Department of Electrical Engineering Science, University of Essex, September 1976.
Thieler-Mevissen G., The Petri Net Calculus of Predicate Logic, Internal Report ISF-76-09, Institut fur Informationssystemforschung, Gesellschaft fur Ma thematik und Datenverarbeitung, Bonn, West Germany, December 1976, pp. 60.
Thomas P., The Petri Net: A Modeling Tool for the Coordination of Asynchronous Processes, Master’s thesis, University of Tennessee, Knoxville, Tennessee, June 1976, pp. 118.
Исследуется сеть Петри как модель вычислений. Сравниваются модель сети Петри и другие модели (так же, как и в [5] или в [240]). Описывается программа, моделирующая сеть Петри, с множеством выходов, отражающих выполнение сети Петри.
Thornton J., Design of a Computer; The Control Data 6600, Scott, Foresman and Company, Glenview, Illinois, 1970, pp. 181.
Tsichritzis D., Modular System Description, Technical Report 33, Department of Computer Science, University of Toronto, Toronto, Ontario, October 1971, pp. 20.
Введение в использование сетей Петри для моделирования некоторых простых задач, возникающих в операционных системах (взаимное исключение, производитель/потребитель), с некоторыми рассуждениями о том, как сети Петри могли бы использоваться для облегчения конструирования, оценки и реализации операционных систем.
Valk R., Self-Modifying Nets, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 161 — 198; Technical Report 34, Institut fur Informatik, University of Hamburg, July 1977, pp. 36.
Valk R., Self-Modifying Nets — A Natural Extension of Petri Nets, Automata, Languages and Programming, Lecture Notes in Computer Science, 62, Berlin: Springer-Verlag, July 1978, p. 464—476.
Valk R., On the Computational Power of Extended Petri Nets, Proceedings of the Seventh Symposium on Mathematical Foundations of Computer Science 1978, Lecture Notes in Computer Science, 64, Berlin: Springer-Verlag, September 1978, p. 526—535.
Valk R., Vidal-Naquet G., On the Relationality of Petri Net Languages, Proceedings of the Third G1 Conference on Theoretical Computer Science, Lecture Notes in Computer Science, 48, Berlin: Springer-Verlag, March 1977, p. 319—328.
Valette R., Description et Verification des Systemes Paralleles, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 1 —12 (In French).
Valette R., Analysis of Petri Nets by Stepwise Refinements, Journal of Computer and System Sciences, 18, No. 1, February 1979, p. 35—46.
Van Leeuwen J., A Partial Solution to the Reachability Problem for Vector Addition Systems, Proceedings of the Sixth Annual ACM Symposiumon Theory of Computing, New York: ACM, April 1974, p. 303—309.
Показывается разрешимость задачи достижимости Для размерностей один, два или три.
Vaudene D., Vignat J., Semantique d’Enonces de Synchronisation en Termes de Reseaux de Petri, AFCET Journees sur les Reseaux de Petri AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 137—156 (In French).
Vidal-Naquet G., Methods pour les Problemes d’Indecidabilite et de Complexite sur les Reseaux de Petri, AFCET Journees sur les Reseaux de Petri (AFCET Workshop on Petri Nets), Paris, France, March 1977, p. 199—206 (In French).
Volansky S., Graph Model Analysis and Implementation of Computational Seouences, Ph. D. dissertation, Computer Science Department, University of California, Los Angeles, California, June 1970, pp. 187.
Winkowski J., Formal Theories of Petri Nets and Net Simulation, CC PAS Report 242, Computation Centre, Polish Academy of Sciences, Warsaw, Poland, 1976, pp. 23.
Рассматривается абстрактная модель сетей с аксиомами. Примеры этих аксиом образуют модели теории. Как и в [243], затрагиваются понятия теории сетей.
Yamamoto R., An Approach to Detecting Synchronization Errors in Concurrently Executable Programs, Proceedings of the Ninth Asilomar Conference on Cirovits, Systems, and Computers, November 1975, p. 154—158.
Yoeli M., Petri Nets and Asynchronous Control Networks, Technical Report CS-73-07. Department of Applied Analysis and Computer Science, University of Waterloo, Waterloo, Ontario, April 1973, pp. 22.
Yoeli M., Barsilai Z. On Behavioral Descriptions of Communications Switching Systems, Technical Report 99, Technion — Israel Institute of Technology, Haifa Israel, June. 1977, pp. 24; Digital Processes, 3, 1977 p. 307—320.
Yu S., Murata T., PT-marked Graphs: A Reduced Model of Petri Nets, Proceedings of the \Sth Allerton Conference on Communication, Control and Computing, October 1978.
Zervos C., Colored Petri Nets: Their Properties and Applications, Technical Report 107, Systems Engineering Laboratory, University of Michigan, Ann Arbor, Michigan, January 1977, pp. 317.
Zuse K., Petri-Nets from the Engineer’s Viewpoint, Advanced Course on General Net Theory of Processes and Systems, Hamburg, October 1979; Lecture Notes in Computer Science, Berlin: Springer-Verlag, 1980.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Автомат 44—49, 207, 208
Активность 85
Алфавит 150
Арифметика Пресбюргера 147
Асинхронность 40
Безопасность 79, 98—100
Блок-схема 57
— абстрактная 57
Блок функциональный кратный 54
Вектор проверки 228
Вершина граничная 92
— дублирующая 93
— терминальная 92
Взвешивание 82
V-операция 69-70, 211-213
Выполнение сети Петри 24—28
Вычисление слабое 133—139
Гомоморфизм 173
Грамматика коммутативная 182
Граф вычислений 208—211
— маркированный 200, 239, 241
— полиномов 132
— сети Петри 18
— UCLA 223, 242
Дерево достижимости 90—106 Детерминированность 55 Дополнение 170 Достижимость 87—89
Дуга сдерживающая 191
Е-выражение 149, 248
Е-сети 253, 254
Задача достижимости 87—89, 118
нуля 118
в одной позиции 118
подмаркировки 118
— неразрешимая 115
— о включении графов полиномов 132
—.— курильщиках сигарет 188
производителе/потребителе 65—67
чтении/записи 68, 69
— об активности 126
одного перехода 126
— об исключении взаимном 63—65
обедающих мудрецах 67, 68
— подмножества 114
— покрываемости 87—89
— равенства 114
— эквивалентности 116
Замкнутости свойство 158, 162—173
Запуск перехода 24, 25
Звезда Клини 170
Значение пороговое 209
Исключение взаимное 64
Класс маркировок 31
— обратных маркировок 31
— прямых маркировок 31
Кольцо позиций 124
Комплект позиций 15, 16
Композиция параллельная 51, 165
— повторная 170—173
Компонент 10
Конкатенация 163. 164
— бесконечная 170
Конфликт 43, 44
Кратность позиций 16
Кружок 17
Ловушка 202
Логика И 186
Маркировка 202
— достижимая 29
— непосредственно достижимая 29
Машина регистровая 197
Множество достижимости 29, 30
для системы сложения векторов 227
Моделирование 9
Модель 9
— эквивалентная 207
Мощность комплекта 232
— моделирования 185
— разрешения 185
Д4ультиграф 18, 21
Область 233
— ограничения 185
Обработка конвейерная 49—54
Обращение 169, 170
Объединение 164
Ограниченность 81
Одновременность 40—44, 61, 62
Оптимизация 148—149
Отображение Париха 107, 233
Параллелизм 10, 40—44, 61—62
P/V-системы 69, 211—213
Переключатель 186
Пересечение 167—169
Переход 15
— активный 86
— исключающего ИЛИ 186
— пассивный 86
— потенциально запустимый 86
— разрешенный 24
Планка 17
Подклассы сетей Петри 199—20’4
Подкомплект 232
Подстановка 173
— конечная 173
Позиция 15
— безопасная 79
— входная 15
— выходная 15
— достижимая 29
— ^-безопасная 81
— ^-ограниченная 81
— начальная 151
— ограниченная 81
Покрываемость 87—89
Полнота 188
Помечение 152
Р-операция 69, 70, 211—213
Последовательность запусков 89
— маркировок 29
— переходов 29
Постусловие 36
Предусловие 36
Приоритет 190
Проблема Гильберта десятая 130, 240
Проверка на нулевую маркировку, 191
Пространство состояний моделей парал
лельных вычислений 206
сетей Петри 28—33
Процесс программный 214
— канальный 214
Пучок дуг 21, 22
Сводимость 114—118
Секция критическая 64
Сеть Петри 15
автоматная 200, 205
безопасная 79
без петель 122
вполне оканчивающаяся 172
двойственная 20
инверсная 22
маркированная 23
нерефлексивная 122
обратимая 146
ординарная 122
помеченная 154
правильная 204
простая 122, 123
расширенная 197
с ограничениями 122—126
свободно-помеченная 152
со свободным выбором 202
сохраняющая 82
строго сохраняющая 82
эквивалентная 148
Синхронизация 11, 63
Система замещения векторов 228
— передачи сообщений 213—221, 257
— сложения векторов 227
Сложность алгоритма 117
Событие 36
— мгновенное 41
— неодновременное 41
— непримитивное 42
— примитивное 41
Совмещенность 10
Сообщение 214 Состояние 10, 28 — начальное 151 — тупика 67 Степень 223 Строка 150 — пустая 150
Сумма взвешенная 82
Таблица резервирования 55
Теория разрешимости 115
— сетей Петри прикладная 13
чистая 13
— формальных языков 150
Тупик 203, 208
Уравнение диофантово 131 — матричное 106—111 Уровень активности 86
Условие 36
Фишка 22
— окрашенная 35, 204, 205
— разрешающая 24
Формы определения сетей Петри альтернативные 33
Функция входная 15
расширенная 16
— выходная 15
расширенная 16
— следующего состояния 28, 29
расширенная 30
Цикл 201
Член комплекта 231
Язык моделирования программных процессов 214
— контекстно-свободный 174—177
ограниченный 177, 178
— контекстно-связанный 178—181
—регулярный174
—сетиПетриL-типа 152, 153
G-типа152,153
Р-типа152,153
Т-типа152,153
ОГЛАВЛЕНИЕ
Предисловие к русскомуизданию 5
Предисловие 7
Глава 1. Введение 9
Глава 2. Основные определения 15
Глава 3. Сети Петри для моделирования 36
Глава 4. Анализ сетей Петри 79
Глава 5. Сложность и разрешимость 114
Глава 6. Языки сетей Петри 148
Глава 7. Расширенные и ограниченные модели сетей Петри . . .185
Глава 8. Модели параллельных вычислений 206
Обзор теории комплектов 231
Аннотированная библиография 234
Предметный указатель 262
Джеймс Питерсон
ТЕОРИЯ СЕТЕЙ ПЕТРИИ МОДЕЛИРОВАНИЕ СИСТЕМ
Научный редактор Т. Н. Шестакова
Мл. научные редакторы Ю. Л. Евдокимова, Н. И. Сивилева
Художник Г. А. Шипов
Художественный редактор В. Б. ПрищепаТехнический редактор А. Г. РезоуховаКорректор Н. В. Андреева
ИБ № 3763
Сдано в набор 15.08.83. Подписано к печати 16.05.84.
Формат 60X90716. Бумага типографская № 2.
Гарнитура литературная. Печать высокая. Объем 8,25 бум. л.
Усл. печ. л. 16,50. Усл. кр.-отт. 16,62. Уч.-изд. л. 16,59.Изд. № 20/2754. Тираж 8400 экз. Зак. 562. Цена 1 р. 70 к.
ИЗДАТЕЛЬСТВО «МИР»
Москва, 1-й Рижский пер., 2.
Ярославский полиграфкомбинат Союзполиграфпромапри Государственном комитете СССРпо делам издательств, полиграфии и книжной торговли.
150014, Ярославль, ул. Свободы, 97.
О Автор имеет в виду бинарное отношение на множестве маркировок, такое, что (р, р') принадлежит ему тогда и только тогда, когда р' 6 R(C, р).— Прим, ред.
1) По отношению к описанному в^этом разделе алгоритму. — Прим,, персе.
О Ассоциация по вычислительной технике (США). — Прим. ред.
1) Здесь p рассматривается как комплект, содержащий р(р^) позиций Pt для каждого i соответственно, отношение включения рассматривается как отношение над комплектом, а операции — как операции над комплектами.— Прим, перев.
JAMES L. PETERSON
The Universityof Texas at Austin
PETRI
NET THEORY
AND THE MODELINGOF SYSTEMS
PRENTICE-HALL, INC., ENGLEWOOD CLIFFS, N. J.1981
дж. питерсон
теориясетей петрии моаелировлниесистем
Перевод с английского
М. В. Горбатовой, канд. техн, наук В. Л. Торхова,канд. техн, наук В. Н. Четверикова
под редакцией
д-ра техн, наук В. А. Горбатова
МОСКВА ◄МИР^ 1984
ББК 32.816
ТЗЗ
УДК 519.95
Питерсон Дж.
ТЗЗ Теория сетей Петри и моделирование систем: Пер. с англ. — М.: Мир, 1984. — 264 с., ил.
В книге американского ученого изложены основные понятия и результаты теории сетей Петри, касающиеся различных аспектов вычислительной техники и особенно систем распределенной обработки информации.
Для научных работников, аспирантов и студентов старших курсов втузов.
ББК 32.816 6Ф0.1ББК 32.816 6Ф0.12405000000-227 П 163-84, ч. 1
ББК 32.816 6Ф0.1
ББК 32.816 6Ф0.1
041(01)-84
Редакция литературы по новой технике
© Prentice-Hall, Inc., Englewood Cliffs, 1981 © Перевод на русский язык, «Мир», 1984
В последние годы развитие вычислительной техники характеризуется не столько увеличением числа элементов, участвующих в обработке данных (будь то число функциональных блоков в процессоре или процессоров в вычислительной системе), сколько усложнением структуры их взаимосвязи, управления взаимодействием. Качественно новый характер взаимодействия в современных вычислительных системах послужил причиной появления новых задач, связанных с анализом, моделированием и представлением причинно-следственных связей в сложных системах параллельно действующих объектов. Мощным средством решения этих задач являются сети Петри — предмет данной книги. Родившись при описании взаимодействующих автоматов, моделирующих системы аппаратного обеспечения, они оказались очень удобными для анализа и моделирования программного обеспечения, что предопределило большой интерес к ним и быстрый прогресс в их исследовании.
Предлагаемая книга является первой переводной монографией, посвященной сетям Петри. В ней последовательно излагаются основные понятия теории сетей Петри, задачи, связанные с сетями Петри, методы их анализа. На протяжении всей книги внимание читателя акцентируется на прикладных аспектах теории сетей Петри. Автор определяет место сетей Петри в ряду формальных систем, направленных на моделирование параллельных процессов.
Книга написана просто и доходчиво, все излагаемые понятия подробно обсуждаются. В ней содержится большое число примеров, иллюстраций, упражнений и тем для серьезных исследований. Изложение ведется на должном уровне математической строгости.
Автор монографии известен как специалист в области сетей Петри, его интересы в исследовании этой области весьма многосторонни. Ему принадлежат работы как обзорного плана, так и посвященные вопросам анализа языков сетей Петри, построения иерархии моделей описания параллельных процессов и др.
Работая над переводом книги, коллектив переводчиков осознавал ответственность, которую налагает на них издание первой переводной монографии. Перевод не доставил особых трудностей. Однако над системой соответствующих русских тер-
минов, отвечающей требованиям концептуального единства всей терминологии, пришлось немало потрудиться.
Предлагаемая книга будет полезна студентам и аспирантам, специализирующимся в вычислительной технике, а также специалистам, занимающимся вопросами распределенной обработки данных.
Перевод монографии выполнен М. В. Горбатовой (гл. 1—3), канд. техн, наук В. Л. Торховым (предисловие, гл. 4—6), канд. техн, наук В. Н. Четвериковым (гл. 7, 8, аннотированная библиография, предметный указатель).
В. А. Горбатов
Теория сетей Петри значительно развилась со времени ее рождения в диссертации д-ра Петри в 1962 г. Однако многие из публикаций по сетям Петри труднодоступны, поскольку оформлены, как правило, в виде отчетов и диссертаций и рассеяны по многим источникам. И тем не менее, несмотря на трудность изучения сетей Петри, использование их постоянно возрастает. Мы приходим к выводу, что, по-видимому, каждый специалист в области вычислительной техники должен знать азы теории сетей Петри.
Эта книга собрала основные результаты теории сетей Петри, представив их в последовательном и согласованном виде. Представление и организация материала удобны и для индивидуального изучения специалистом-практиком, и для организованного изучения аспирантами, специализирующимися в области вычислительной техники. Теорию сетей Петри можно применить в безмерно большом множестве<областей (как показано в гл. 3), знание основ теории сетей Петри становится обязательным для специалистов по вычислительной технике, системному анализу и др.
Для студентов и специалистов, желающих немедленно найти практическое применение сетям Петри, трудно переоценить гл. 1—4 и 7. Они вполне приемлемы для самостоятельного изучения и обеспечивают достаточный фундамент для того, чтобы сделать возможным немедленное использование сетей Петри в самых различных областях.
Книгу можно использовать также как учебное пособие для проведения семинаров по сетям Петри для аспирантов, и если определения и приложения из первых четырех глав изучаются легко, то оставшиеся главы подводят обучающихся к переднему краю исследований. Каждая глава содержит упражнения, которые дают возможность как практической работы с понятиями, так и закрепления основ теории. Наконец, «Темы для дальнейшего изучения» указывают новые направления исследований. Многие из этих тем можно легко развить в диссертационную работу.
Основные понятия теории сетей Петри доступны человеку с минимальной подготовкой. Однако сети Петри даже в большей степени, чем множество других исследовательских тем, касаются различных аспектов вычислительной техники и математики. Полная оценка и понимание современной теории сетей Петри требуют хорошей подготовки в области формальных языков и автоматов,
операционных систем, архитектуры ЭВМ и линейной алгебры. Студент последнего года обучения, специализирующийся в вычислительной технике, или специалист, работающий год в этой области, должны иметь квалификацию, необходимую для проведения исследований с помощью сетей Петри.
Очевидно, что результатов по сетям Петри получено больше, чем мы смогли здесь представить. Мы приветствуем дальнейшее изучение и предлагаем библиографию, для полноты которой была рассмотрена почти вся существующая литература.
Сообщим, что д-р Петри продолжает свои исследования. То, что мы называем здесь теорией сетей Петри, в его терминологии называется специальной теорией сетей, являющейся только частью его общей теории сетей [243—245, 247].
Благодарности
Своим появлением эта книга обязана многим людям. Тилак Агервала, Мишель Хэк, Тай-Ян Хоу, К. Маттиас Лохт, Дино Мандриоли, Джерри Ное, Гэри Натт и Вильям Риддл помогли в изложении специальных вопросов. Дж. К. Браун, К. Мани Чэнди, Джим Дэниел, Нэнси Итмен и Р. Т. Йе, а также кафедры вычислительной техники и математики Университета в Остине, шт. Техас, и Лаборатория вычислительной техники Массачусетского технологического института оказали техническую поддержку, позволившую мне найти время и средства для того, чтобы подготовить монографию.
В период написания, редактирования и корректуры источником любви и поддержки была моя жена Жанни.
Редактирование и набор с использованием ЭВМ породили при создании этой книги новые и уникальные трудности. Я признателен издательству за поддержку, терпение и разрешение всех вопросов, и особенно моему редактору, Карену Клемментсу, за мудрость и профессионализм.
Дж. Л. Питерсон
Остин, Техас