УДК 519.7
В. Н. Дубинин, Х.-М. Ханиш, Д. Миссал
ИНТЕРПРЕТАЦИЯ РЕВЕРСИВНЫХ ЧАСТИЧНО МАРКИРОВАННЫХ SNCES-СЕТЕЙ
В данной работе предлагаются методы интерпретации реверсивных частично маркированных безопасных NCES-сетей (RsNCES-сетей), основанные на представлении сетевых моделей в виде булевых функций и их последующей минимизации. Приведен алгоритм построения графа достижимости для RsNCES-сетей.
Введение
Первоначально NCES-сети (Net Condition/Event Systems) были определены в работе [1]. Они представляют расширенные сети Петри [2], ориентированные на моделирование дискретных событийных систем, в которых взаимодействие основано на обмене сигналами. В NCES-сетях возможно моделирование сигналов как в виде импульса, так и в виде потенциала. Наиболее важным расширением в NCES-сетях являются событийные дуги, участвующие в определении множеств переходов, называемых шагами, в которых переходы срабатывают одновременно. Таким образом, в отличие от классических сетей Петри, в NCES-сетях допускается как асинхронное, так и синхронное срабатывание переходов.
В работе [3] было предложено обратное срабатывание шагов в NCES-сетях для синтеза контроллеров, ряд проблем в этой области также исследовался в [4]. В работе [5] неформально рассмотрены некоторые вопросы обратного срабатывания шагов в безопасных NCES-сетях (sNCES-сетях). Дальнейшее развитие принцип обратного срабатывания в sNCES-сетях получил в работе [6], в которой формально были определены реверсивные частично маркированные sNCES-сети (RsNCES-сети). В отличие от прежних работ [3-5], в которых отдельно рассматриваются NCES-сети и обратный поиск в них, в данной работе соответствующие сетевые модели выделены в особый класс, имеющий собственные правила функционирования. Основные методы исследования NCES-сетей изложены в работе [7]. В ней проработаны вопросы структурного анализа, поиска P- и Г-инвариантов, а также построения графа достижимости.
Настоящая работа выполнена в рамках разработки методов исследования RsNCES-сетей. В ней предлагаются методы интерпретации RsNCES-сетей класса A2B2 (как наиболее общего класса), которые могут использоваться, например, для построения графа достижимости. Под интерпретацией RsNCES-сетей в данной работе понимается имитация их функционирования (обычно на каком-либо вычислительном устройстве). Основной задачей в процессе интерпретации является вычисление маркировок и шагов. Как показано в данной статье, интерпретация RsNCES-сетей во многом основывается на представлении сетевых моделей в виде булевых функций и их последующей минимизации.
1. Вычисление минимального покрывающего множества маркировок
Нахождение минимальных покрывающих множеств является одной из важных задач при интерпретации RsNCES-сетей. При этом используется два
вида этой задачи: 1) нахождение минимального покрывающего множества переходов (при вычислении усеченных допустимых шагов); 2) нахождение минимального покрывающего множества маркировок (МПММ) (при вычислении минимальных запрещающих контекстных маркировок (ЗКМ), а также множества достижимых маркировок). В данном разделе рассматривается второй тип задачи как наиболее общий.
Пусть задано множество маркировок БЫ = {т1, т2, ..., тч}, описывающее некоторую ситуацию. Необходимо найти МПММ для множества БЫ. Сведем задачу нахождения МПММ для множества БЫ к задаче минимизации соответствующей булевой функции. Для этого представим множество маркировок БЫ в виде ДНФ булевой функции. Имеется два близких подхода для представления некоторой маркировки (в общем случае - частичной) в виде булевой функции. Согласно первому подходу каждая определенно маркированная позиция р{ представляет булеву переменную, а согласно второму - высказывание вида ZPi = [т(р) = 1] [5]. Маркировка
т(рО = 0 позиции р{ соответствует высказыванию с отрицанием (ZPІ или
ТР^), а ш(рг) = 1 - без отрицания (ZPІ или Zp•1). Неопределенно маркированные позиции (т.е. позиции с маркировкой, равной *) при построении булевой функции не учитываются.
Каждая маркировка ш, представляется в виде конъюнкта вида
ХЫ: = ZP^1 & ZP^г & ...& ХР^п , где п - число определенно маркированных
■> к1 к2 кп
позиций в маркировке Ш], ое {0,1}, • = 1, 2, ..., п.
Для представления всех маркировок из множества БЫ используется булева функция ZБЫ = ZЫl V ZЫ2 V... V ZЫq. Истинность этой функции
интерпретируется как факт нахождения системы в ситуации, описанной множеством маркировок БЫ. Иными словами, если функция ZБЫ истинна, то соответствующая маркировка Л&^СЕБ-сети принадлежит множеству маркировок БЫ.
Полученную булеву функцию ZБЫ можно минимизировать одним из известных методов [8, 9]. Результирующая функция в виде ДНФ будет представлять МПММ. Это утверждение довольно очевидно и не требует доказательств. Каждый конъюнкт в данной минимальной ДНФ будет представлять отдельную минимальную покрывающую маркировку. Следует заметить, что множество минимально конкретизированных маркировок и МПММ, соответствующие некоторому множеству маркировок, в общем случае не совпадают.
2. Вычисление допустимых шагов для триггерного перехода
Нахождение конфигураций допустимых шагов при заданной маркировке предполагает решение следующих двух задач: 1) нахождение всех усеченных допустимых шагов (УДШ); 2) нахождение всех минимальных запрещающих контекстных маркировок (ЗКМ) для заданного шага. Предлагается трехэтапное построение всех УДШ для триггерного перехода. На первом этапе строятся все полные допустимые шаги (ПДШ), на втором этапе из полученных полных шагов удаляются граничные несущественные переходы и, таким образом, строятся не полностью усеченные допустимые шаги (НПУДШ), на третьем этапе строятся собственно УДШ.
2.1 Вычисление полных и не полностью усеченных допустимых шагов
Основная идея метода построения всех ПДШ для триггерного перехода заключается в последовательном расширении некоторого начального ПДШ.
Переход г может быть добавлен в новый допустимый шаг р', если он обладает следующими свойствами: 1) если он является допустимым в шаге р'; 2) не принадлежит предыдущему шагу р; 3) не является конфликтным и/или взаимоисключающим с переходами предыдущего шага р; 4) если это Л^^-переход, то все его входные переходы должны принадлежать предыдущему шагу р . Если это ОЛ-переход, то хотя бы один из его входных переходов должен принадлежать предыдущему шагу р ; 5) если он не принадлежит множеству безусловно допустимых переходов (при маркировке ш), за которыми следуют недействительные переходы.
На рисунке 1,а представлен пример перехода г1, который не может быть включен в допустимый шаг, поскольку переход г2 является недействительным. В то же время переход г1 на рисунке 1,б может быть включен в допустимый шаг, т.к. переход г2 не относится к классу недействительных переходов из-за того, что его входная позиция является граничной.
а)
' 0
Рис. 1 Допустимый шаг р не может (а) и может (б) быть расширен переходом г1
Важным условием для того, чтобы полученный шаг оказался допустимым, является наличие среди переходов шага хотя бы одного безусловно допустимого перехода.
Для определения НПУДШ среди ПДШ, вычисленных на предыдущем этапе, используется следующая процедура:
Л2 = 0; УреЛ1: ЕСЛИ У^Ер^ [регт1Иеё2(0], ТО Л2 = Л2 и {р},
где Л1 - множество ПДШ; Л2 - множество НПУДШ.
НПУДШ определяются путем анализа множества р^ ср, представляющего граничные переходы допустимого шага р, все выходные событийные дуги которых ведут за пределы шага. Если все переходы г этого множества являются безусловно допустимыми (регт1Иеё2(г)), то рассматриваемый шаг добавляется к множеству Л2.
В качестве примера рассмотрим построение ПДШ для ЯзИСЕБ-сети, приведенной на рисунке 2. В представленной сетевой модели переход ^ является триггерным. Переход £4 имеет ИЛИ-логику. Все возможные ПДШ представлены ниже: р1 = {^}; Ц2 = {^1,^2}; Ц3 = {£ь£2,£4}; Ц4 = {*ь£2,£4,£5};
Ц5 = {£ь£2,£4,£5,£б}; Цб = {^1,£2,£4,£б}; Ц7 = {£1,^3}; Ц8 = {^1,£з,^4}; Ц9 = {£1,£з,^4,£б}; Ц10 = {£1,£3,£4,£9} и р11 = {£1,£3,£9}. Из них НПУДШ являются р1, р4, р5, рб и р9.
Рис. 2 Пример ЯзИСЕБ-сети для построения допустимых шагов
Граф достижимых шагов изображен на рисунке 3. Вершины данного графа представляют достижимые ПДШ, а дуги представляют отношение непосредственной достижимости шагов. Дуги помечены переходами. Если дуга (Ць р) помечена переходом 4, то это означает, что шаг р получается из шага р путем добавления к нему перехода 4. Граф достижимых шагов является ациклическим. Путь из начального (пустого) шага Ц0 до искомого определяет искомый шаг единственным образом. Объединение переходов, помечиваю-щих дуги пути графа, образует собственно шаг. Например, путь в графе из вершины р0 до вершины р4 определяет шаг {£ь£2,£4,£5}. НПУДШ в графе отмечены двойными окружностями.
Ц4
Рис. 3 Граф достижимых шагов для ЯзИСЕБ-сети, представленной на рисунке 2
После выполнения двух первых этапов построения допустимые шаги могут содержать внутренние несущественные переходы. Например, переход г2 на рисунке 4 является внутренним несущественным и может быть без ущерба удален из допустимого шага {£ь£2,£3,£4}, поскольку он не влияет на срабатывание остальных переходов этого шага.
Рис. 4 Внутренний несущественный переход ^2 может быть удален из шага {£ь£2,£3,£4}
2.2 Вычисление усеченных допустимых шагов
Ниже предлагается метод построения УДШ на основе НПУДШ. Суть метода заключается в построении минимального покрывающего множества для неопределенных переходов НПУДШ.
Пусть выделено множество неопределенных переходов допустимого
шага ц. Покрывающим множеством для данного множества Тц называется такое его подмножество, которое образует некоторый допустимый шаг со всеми безусловно допустимыми переходами шага ц. Минимальным покрывающим множеством для данного множества ТЦЦ называется такое покрывающее множество, что удаление его любого элемента выводит это множество из класса покрывающих множеств.
Данный метод реализуется на основе представления событийного графа для НПУДШ в виде соответствующей булевой функции с последующей ее минимизацией. Ниже представлена методика построения УДШ.
Шаг 1. Построить событийный граф для НПУДШ. В него войдут только переходы этого шага и событийные дуги между этими переходами. Формальное определение событийного графа можно найти в работе [10]. На рисунке 5,б приведен событийный граф для вычисления УДШ на основе НПУДШ {£ъ£2,£3,£4,£5} в ЯзМСББ, представленной на рисунке 5,а.
Шаг 2. Представить каждый неопределенный переход в виде булевой функции, причем входные переходы перехода принимаются как булевы аргументы без отрицания. К каждой функции добавляется один логический аргумент хь определяющий признак вхождения перехода II в искомое решение. Выполняемая логическая операция соответствует типу перехода (V или &) (рис. 6).
Каждый безусловно допустимый переход представляется аналогичным образом, но дополнительный аргумент х1 не используется. Для триггерного перехода булева функция не составляется.
Рис. 5 Событийный граф (б) для вычисления УДШ на основе НУПДШ {^,^,^,^,^1 в RsNCES-сети (а)
Рис. 6 Представление неопределенного перехода (а) в виде логического элемента и булевой функции (б)
Для событийного графа, соответствующего сетевой модели на рисунке 5,б, набор булевых функций будет следующим: г2 = х2г1\ г3 = ^; Ч = х4^; г5 = г2уг4.
Шаг 3. Ввести целевую функцию г, представляющую конъюнкцию всех безусловно допустимых переходов, входящих в шаг. Эти переходы должны войти в шаг в обязательном порядке. Для примера на рисунке 5,б это будет функция г = tз & ^. Истинность данной функции свидетельствует о том, что все задействованные безусловно допустимые переходы при заданных условиях действительно образуют шаг в соответствии с определением.
Шаг 4. По набору булевых функций, полученному на шагах 1-3, путем подстановок аргументов построить развернутую целевую функцию. Для примера на рисунке 5,б это будет функция г = ^&(х2&^х4&^) = ^&(х2&^х4&^).
Произвести упрощение полученной формулы с использованием законов алгебры логики.
Шаг 5. Произвести минимизацию развернутой целевой функции и представить ее в виде ДНФ. Для примера на рисунке 5,б это будет функция z = x2&t1vx4&t1. Следует отметить, что в данном конкретном случае целевая функция не минимизируется.
Шаг 6. По полученной минимизированной целевой функции в виде ДНФ произвести построение усеченного допустимого шага (шагов) в соответствии со следующими правилами. Каждый конъюнкт в целевой функции представляется в виде ttxkixk2...xkn, где tt - это триггерный переход -источник сигнала. Данный конъюнкт определяет, что неопределенные переходы tk1, tk2, ..., tkn должны быть включены в шаг. Наличие нескольких конъюнктов говорит о том, что имеется несколько вариантов построения шага. Таким образом, исходный шаг может распадаться на несколько усеченных шагов. В отношении нашего примера исходный НПУДШ {tbt2,t3,t4,t5} порождает два УДШ Ц1 = {ti,t2,t3,t5} и |12 = {ti,t3,t4,t5} (рис. 7).
Рис. 7 УДШ, полученные на основе НПУДШ, представленного на рисунке 5,а
Наличие в конъюнкте перехода, отличного от триггерного перехода и, свидетельствует о некорректности построения шага. В этом случае необходимо проверить результаты вычислений предыдущих шагов. Следует отметить, что после проведения последней (третьей) фазы построения УДШ, возможно, потребуется проведение нормализации полученного множества шагов путем удаления дублирующих множеств.
3. Вычисление минимальных запрещающих контекстных маркировок
Ниже предлагается метод построения минимальных ЗКМ на основе представления условия запрета недействительных переходов максимального разрешенного дополнения (МРД) шага в виде некоторой булевой функции с последующей ее минимизацией. Это прямой путь вычисления минимальных ЗКМ, поэтому он является наиболее эффективным. Эффективность метода определяется в основном лежащим в его основе методом минимизации булевых функ-
ций. Методы минимизации булевых функций теоретически хорошо обоснованы и изучены. В настоящее время разработано несколько эффективных методов минимизации булевых функций, среди которых метод Закревского для карт Карно [9], методы Квайна, Квайна-Мак-Класки, а также другие методы [8].
Ниже описывается методика вычисления минимальных ЗКМ на основе предлагаемого подхода. Методика иллюстрируется на примере, приведенном на рисунке 8.
Рис. 8 Допустимый шаг ц и его максимальное разрешенное дополнение
Шаг 1. Построить МРД заданного шага ц.
МРД может быть построено на основе понятия событийных графов сети зИСЕБ [10]. Методика построения МРД на основе концепции событийных графов сводится к построению цепочки графов на основе их последовательных преобразований:
G1—— О2—— О3 = ОБо—— ОЛо—— ОВ1—— (ЗА.!—— ОБ2——• • •—— ОАп-1—— ОБп = 04.
Начальным графом цепочки является событийный граф триггерного перехода, определяемый как
О1 = (гг,Т1,Е1),
где гге Т - триггерный переход, являющийся источником сигнала; Т1 = |г'\(гг, гг)е ЕУ + } и|гг} - множество переходов, достижимых из перехода
гг по событийным связям; ЕУ+ - транзитивное замыкание отношения ЕУ; Е1сТ1хТ1 п ЕУ - множество дуг графа.
Конечным графом является О4 - событийный граф разрешенного дополнения шага. Графы ОЛ1 и ОБ( (I = 1, ..., п-1) являются промежуточными. Преобразования совершаются, пока ОЛ1 ф ОБI. Пример шага и его МРД приведен на рисунке 8.
Шаг 2. Представить каждый переход МРД в виде элементарной булевой функции, причем внутренние входные позиции с неопределенной маркировкой выступают в роли булевых аргументов без отрицания, внутренние выходные позиции с неопределенной маркировкой рассматриваются как булевы аргументы с отрицанием, входные переходы принимаются за булевы аргументы без отрицания. Позиции с определенной маркировкой (0 или 1), а также граничные позиции переходов МРД не рассматриваются. Между группой аргументов-позиций и группой аргументов-переходов выполняется операция конъюнкция, а между аргументами-переходами в группе выполняемая операция соответствует типу перехода (V или &). Истинность логической функции для перехода говорит о разрешенности данного перехода как со стороны его входных и выходных позиций, так и со стороны входных переходов (событийных дуг).
Пример представления перехода в виде элементарной булевой функции и логического элемента приведен на рисунке 9. Для примера, представленного на рисунке 8, набор элементарных булевых функций будет следующим (знак конъюнкции для упрощения опущен):
Х1 = Р1 рп; г2 = р2р3X3 = р4*1*9; X4 = р502 Vгз);
І 5 — Рі; І 6 — р 9 І5 Ід ; І 7 — р9 І 5 ; *8 — ?6 V /7 ; Ід — р 8 .
Рис. 9 Представление перехода (а) в виде логического элемента и булевой функции (б)
Шаг 3. Найти недействительные переходы в МРД.
Определение недействительных переходов в ЯзМСББ приведено в [6]. Для примера, представленного на рисунке 8, недействительными переходами будут переходы г4 и г8.
Шаг 4. Построить целевую булеву функцию, определяющую срабатывание одного из недействительных переходов. Если в МРД имеется несколько недействительных переходов, которые необходимо запретить, то вводится новая функция дизъюнкции, аргументами которой будут недействительные переходы. Для примера на рисунке 8 это будет функция г = г4 V Х8.
Шаг 5. По набору булевых функций, полученному на шагах 2 и 4, путем подстановок аргументов построить развернутую целевую функцию. Для примера на рисунке 8 это будет функция
г = р р2 р3 р5 р12 V рр4 р5 р8 р12 V р р8 р9 V р1 р9 .
Истинность этой функции означает, что при заданных условиях хотя бы один недействительный переход сработает.
Шаг 6. Получить отрицание развернутой целевой функции г и минимизировать его. Результат представляется в виде ДНФ. Для примера на рисунке 8 это будет функция
г = рх V р2 р8 р9 V рз р8 р9 V р5 р8 р9 V р8 р9 рХ2 .
Истинность этой функции означает, что при заданных условиях ни один из недействительных переходов не сможет сработать.
Шаг 7. По полученной на предыдущем шаге ДНФ построить минимальные ЗКМ. Каждой конъюнкции в ДНФ соответствует одна минимальная ЗКМ. Причем, если аргумент-позиция стоит без отрицания, то ей соответствует маркировка, равная 1, если с отрицанием, то 0. Маркировка позиций, отсутствующих в конъюнкции, остается неопределенной. Например, конъюнкту р8 р9 р12 соответствует (частичная) маркировка {т(р8) = 1, т(р9) = 0, т(р12) = 0}. Эта маркировка является запрещающей, поскольку соответствующий конъюнкт р8 р9 р12 и, следовательно, вся функция г являются
истинными. Это означает, что все недействительные переходы заблокированы. Данная маркировка является минимальной, поскольку соответствующий конъюнкт входит в минимальную ДНФ и из него не может быть вычеркнута ни одна позиция.
Для примера на рисунке 8 по булевой функции, полученной на шаге 7, можно построить пять ЗКМ: юХ = {т(рх)=0}; ю2 = {т(р2) = 0, т(р8) = 1, т(р9) = 0}; юз = {т(рз) = 1, т(р8) = 1, т(р9) = 0}; Ю4 = {т(р5) = 1, т(р8) = 1, т(р9) = 0}; Ю5 = {т(р8) = 1, т(р9) = 0, т(р^) = 0}.
На рисунке 10 представлены маркировки МРД, выводимые при срабатывании конфигураций (I = 1, ..., 5) допустимого шага ц в Я8МСЕБ-сети, представленной на рисунке 8, ЗКМ входят в них как составные части.
\|/1-(ц,соО От|=(0****10**10*)
/7?0=(***** 10**10*) -
\|Ь=(Ц,С£>2)
т- 27 т2=(*0***10101 О*)
уз=(ц,а>з)
----------к т3=(**1**101010*)
\|/4=(й,С04)
-—-—► да4=(****1101010*
\|/5=(ц,ссц)
——-—+ ли5=(*****1010100)
Рис. 10 Маркировки МРД, выводимые из начальной, при срабатывании допустимого шага ц в КяМСЕ8, представленной на рисунке 8
4. Алгоритм построения графа достижимости
Ниже представлен алгоритм построения графа достижимости с учетом отношения покрываемости между маркировками. В представленном алгоритме используются следующие обозначения: ЯМ - текущее множество достигнутых маркировок; ЯА - текущее множество дуг графа достижимости; т - текущая
' г-т
маркировка; т - новая маркировка; а - множество всех допустимых шагов 32
при маркировке т; т - множество ЗКМ для допустимого шага ц при маркировке т; '¥т - множество всех конфигураций допустимых шагов, возможных при маркировке т; 0т = ((цЛ, ю^1), (ц^, ю2ц1), (ц2т, ю^2), (Ц2т, ю2ц2),
.(Цп™, Ю1цк), (Цпт, Ю2цк), • ••) - кортеж, составленный их всех конфигураций из
х^т
Алгоритм:
Ш = 0; ЯЛ = 0;
Вычислить 0т0.
Втолкнуть в стек (т0, 0т0)
Пока стек не пуст Делать
m
’ ' «-»
> m - получить новую маркировку m из текущей при
срабатывании самой левой конфигурации допустимого шага в 0m 0m = 0m — j^M-i, ®Mi U - удалить конфигурацию |м;, юм j из 0m .
Если m не покрывается никакой другой маркировкой из RM, то
Делать
RM = RM и {m }.
/
Вычислить 0m
(/ \
mr, 0m j.
Конец
RA = RA и {(m, m )}
Если 0m =0 , то Вытолкнуть |m, 0m j из стека Конец
Заключение
В данной работе рассмотрены методы интерпретации RsNCES-сетей, предложенных в работе [6]. Использование булевых функций при интерпретации сетевых моделей данного класса позволяет легко выполнить аппаратную поддержку их реализации. Направлением дальнейших исследований является применение RsNCES-сетей в синтезе супервизорного управления для дискретно-событийных систем.
Список литературы
1. Ilanisch, H.-M. Netz-Condition/Event Systeme. 4. Fachtagung Entwurf komplexer Automatisierungssysteme (EKA’95) / H.-M. Hanisch, M. Rausch. - Braunschweig : Ta-gungsband. - 1995. - Mai. - S. 55-71.
2. Котов, В. Е. Сети Петри / В. Е. Котов. - М. : Наука, 1984. - 160 с.
3. Hanisch, H.-M. A modular plant modeling technique and related controller synthesis problems / H.-M. Hanisch, A. Luder, J. Thieme // IEEE Int. Conf. On Systems, Man, and Cybernetics .- 1998. - October. - V. 1. - P. 686-691.
4. Luder, A. Formaler Steuerungsentwurf mit modularen diskreten Verhaltensmodellen : PhD thesis / A. Luder. - Halle-Wittenberg : Martin-Luther-Universitaet, 2000.
5. Missal, D. Synthesis of distributed controllers by means of a monolithic approach / D. Missal, H. M. Hanisch // Proceedings of the 11th IEEE Int. Conf. on Emerging Technologies and Factory Automation (ETFA’2006). - Prague, 2006. - P. 356-363.
зз
6. Дубинин, В. Н. Реверсивные частично-маркированные sNCES-сети / В. Н. Дубинин, Х.-М. Ханиш, Д. Миссал // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 2. - С. 22-31.
7. Starke, P. H. Analysing Signal-Net Systems, Informatik-Bericht 162 / P. H. Starke,
S. Roch // Humboldt-Universitaet zu Berlin, Institut fuer Informatik, September, 2002. -136 p.
8. Яблонский, С. В. Введение в дискретную математику / С. В. Яблонский. - М. : Высшая школа, 2003. - 384 с.
9. Райцин, М. А. Программный комплекс «Карно» для минимизации булевых функций методом Закревского [Электронный ресурс] / М. А. Райцин, П. С. Сухо-тюк. - Режим доступа: http://miraj.net.ru/cgi-bin/download.cgi?id=30
10. Dubinin, V. Event graph-based approach to interpretation of NCES models / V. Dubinin, H.-M. Hanisch, D. Missal // Новые информационные технологии и системы (НИТиС, 2006) : труды VII Международной научно-технической конференции. - Пенза, 2006. - 1 ч. - С. 172-186.