ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ
УДК 681.326; 681.32
Н. П. Вашкевич
ПАРАЛЛЕЛЬНАЯ ДЕКОМПОЗИЦИЯ УПРАВЛЯЮЩИХ АЛГОРИТМОВ С УЧЕТОМ ИХ НЕОПРЕДЕЛЕННОСТИ1
Аннотация. Рассматривается методика эквивалентных преобразований управляющих алгоритмов с целью их разбиения на параллельные ветви. Особенностью данных алгоритмов является их неполная определенность.
Ключевые слова: управляющий алгоритм, параллельная декомпозиция, неполностью определенный алгоритм, матрица совместимости и включения.
Abstract. Technique of équivalent transformations of control algorithms with a view to divide them into parallel branches is considered. The peculiarity of the algorithms is their incomplete definition.
Keywords: control algorithm, parallel decomposition, incompletely defined algorithm, compatibility and inclusion matrix.
Введение
Для многих практических управляющих алгоритмов функции переходов не всегда полностью определены, т.к. некоторые комбинации входных сигналов на таких переходах никогда не возникают. В связи с этим для таких входных сигналов состояние перехода автомата может быть определено произвольно. Это обстоятельство может быть использовано для разбиения управляющего алгоритма на параллельные ветви при условии, что не надо учитывать функции выходов автомата как не влияющих на функциональную связность элементов памяти управляющего устройства, реализующего исходный алгоритм.
Вопросам параллельной декомпозиции управляющих алгоритмов посвящен ряд работ, которые базируются в основном на использовании методов теории графов [1-3] и отличаются довольно значительной сложностью. Данная работа базируется на использовании методики, рассмотренной в работах автора [4, 5], в которых вопросы разбиения событий управляющего алгоритма на группы несовместимых событий решаются путем использования алгоритмического пошагового построения специальной матрицы включения.
Разбиение событий (состояний) на подмножества в рассматриваемой работе, как будет показано в дальнейшем, приводит фактически к кодированию событий (состояний) исходного алгоритма управления. Причем такие коды будут состоять из нескольких частей, каждая из которых представляет
1 Работа выполнена в рамках аналитической целевой программы «Развитие научного потенциала высшей школы (2009-2010), номер гос. регистрации НИР 2.1.2/4257.
код состояния одного из подавтоматов. Задача заключается в том, чтобы обеспечить однозначность кодирования, в соответствии с которым в каждый момент времени работы алгоритма управления имеет место единственное событие (состояние) этого алгоритма, образуемое совокупностью (конъюнкцией) состояний, параллельно работающих подавтоматов, истинных в этот же момент времени.
1 Методика разбиения событий (состояний) управляющего алгоритма на группы совместимых событий для каждого из параллельно-работающих подавтоматов
Если исходный управляющий алгоритм представлен, например, в виде неполностью определенной таблицы переходов, то, выполняя попарное сравнение столбцов таблицы, можно определить события (состояния) автомата, которые могут быть объединены. Это возможно тогда, когда для каждого входного сигнала события (состояния) перехода либо одинаковые, либо одно из них или оба вместе неопределенны. По результатам такого сравнения строится вспомогательная матрица совместимости таких событий (состояний), которая будет иметь вид (рис. 1), где та р = 0 , если события (состояния)
5а и несовместимы; тар = 1, если Ба и совместимы. Такая матрица
используется для построения основной матрицы включения событий (состояний) в группы совместимых событий, каждое из которых образует состояние одного из подавтоматов. Число таких групп, равное числу состояний подавтомата, должно быть не менее максимального числа событий (состояний), которые могут входить в отдельные группы совместимых событий (состояний) исходного алгоритма.
51
5 2
5п
51 5 2
5 а
5п
0 Х1,2 Т1,Р ^1, п
Х2,1 0 Т2,Р ^2,п
^а,1 Та,2 Та,р ^а,п
Тп,1 ^п,2 Тп,р 0
Рис. 1 Вспомогательная матрица совместимости событий (состояний) исходного управляющего алгоритма
При решении задачи распределения событий (состояний) исходного алгоритма по группам совместимых событий для каждого из подавтоматов необходимо руководствоваться следующими условиями:
т1 п т] = 0; 7 Ф у; 7, у = 1,Н; т и«2 и...итп = п ,
(1)
(2)
где т^ - подмножество событий (состояний) исходного алгоритма, входящих в 7-ю группу совместимых событий, формирующих состояние одного из подавтоматов.
Первое условие обеспечивает требование несовместимости событий (состояний), входящих в любые пары из H групп. Второе условие обеспечивает обязательное включение каждого из всех n событий (состояний) в какую-либо группу из H групп, определяющих общее число состояний подавтоматов.
В матрице включения (рис. 2) после завершения ее построения каждая /-я строка будет содержать подмножество mi событий (состояний), размещаемых в одной из групп, а каждый столбец матрицы должен включать только одно событие (состояние). Это следует из условий (1), где Piß = 1, если
Sß с mi; р/ ß = 0, если Sß £ mt.
Si S 2 Sß Sn
mi m2
mi
тн
Рис. 2 Матрица включения событий (состояний) в группы совместимых событий (состояний) для одного из параллельно работающих подавтоматов
Матрица включения строится постепенно, по шагам, число которых равно числу всех событий (состояний) исходного алгоритма. При этом для облегчения решения задачи на каждом шаге используется вспомогательная матрица совместимости событий (состояний) (рис. 1).
На каждом шаге построения матрицы включения для очередного события (состояния) Sa отыскивается такое подмножество ту, для которого рассматриваемое событие (состояние) 5а с ним совместимо. Это условие может быть представлено таким образом:
5« П ту Ф0 , когда ту с 5а , (3)
где под 5а понимается строка вспомогательной матрицы совместимости, отмеченная буквой 5а . Если условие (3) выполняется, то 5а может войти в ту. В противном случае, когда условие (3) не выполняется, образуется новое подмножество тг+1, в которое 5а включается в качестве первого элемента.
Для первого шага построения матрицы включения для 51 имеем пустое подмножество т1, поэтому для 51 назначают подмножество
т1 = [51,0,.., 0].
Для второго шага для 52 определяют результат операции пересечения т1 со второй строкой вспомогательной матрицы совместимости событий
Р1,1 Р1,2 Р1,Э Р1, п
Р 2,1 Р 2,2 2, Р Р 2,n
Рі,1 Рі,2 Р*,э Рі,п
Рн ,1 РН ,2 Рн ,ß Рн ,п
(состояний), обозначенной буквой 52. Если т1 П 52 ^0, то 52 войдет в т1, в противном случае образуется новое подмножество
т2 =[0,52,0, .,0].
Для третьего шага для 53 определяет результат операции пересечения т1 и т2 с третьей строкой вспомогательной матрицы совместимости. Если т1 П 5з ^0 или т2 П 5з ^0, то 5з войдет в одно из подмножеств: т1 или в т2 соответственно. Если результаты операции пересечения в обоих случаях равны 0 , то образуется новое подмножество тз .
Последним шагом для Бп завершится построение матрицы включения для одного из подавтоматов, и может быть выполнена коррекция (перераспределение) состава подмножеств событий (состояний), если в процессе построения матрицы включения выявилась возможность отнести очередное событие (состояние) 5а в одно из нескольких подмножеств ту .
Коррекция состава подмножеств ту позволит в дальнейшем при структурном синтезе полнее использовать кодовые группы для событий (состояний), входящих в подмножество ту с учетом того, что с точки зрения минимизации оборудования наиболее выгодно иметь равные числа событий в каждом из подмножеств ту.
Коррекция состава построенных подмножеств ту одного из подавтоматов может потребоваться и при построении матриц включения других параллельно работающих подавтоматов, реализующих исходный алгоритм управления. В частности, если исходный алгоритм управления реализуется двумя подавтоматами, то для выполнения однозначности и полноты переходов в реализуемом исходном алгоритме необходимо выполнение следующих условий:
т1 Пт2 = 5а, (Уа)(а = 1,п), (4)
где т1 - у-е условие подмножества, формирующее у-е состояние первого подавтомата; т2 - у-е подмножество, формирующее у-е состояние второго подавтомата; 5а - событие (состояние) исходного управляющего алгоритма.
Из выражения (4) следует, что результат пересечения подмножеств событий (состояний), принадлежащих разным подавтоматам, должен быть равен только одному из событий (состояний) исходного управляющего алгоритма, а общее число таких пересечений должно быть равно числу событий (состояний) исходного управляющего алгоритма. Соблюдение этих условий гарантирует полноту и однозначность реализации исходного управляющего алгоритма.
2 Пример параллельной декомпозиции неполностью определенного управляющего алгоритма
Пусть исходный неполностью определенный управляющий алгоритм задан следующей таблицей переходов (рис. 3). В данной работе в качестве
примера, иллюстрирующего предлагаемую методику, взята таблица переходов неполностью определенного автомата из [1].
Входные сигналы ¿1 ¿2 ¿3 ¿4 ¿5 ¿6 ¿7
хо ¿1 - ¿5 ¿1 - ¿5 -
Х1 - ¿7 ¿6 ¿7 - - -
х2 - - - ¿3 ¿7 ¿6 ¿3
х3 ¿2 ¿4 - - - ¿7 -
Рис. 3 Таблица переходов неполностью определенного автомата
Вспомогательная матрица совместимости событий (состояний) в соответствии с таблицей переходов исходного автомата будет иметь вид (рис. 4).
¿1 ¿2 ¿3 ¿4 ¿5 ¿6 ¿7
¿1 0 0 0 1 1 0 1
¿2 0 0 0 1 1 0 1
¿3 0 0 0 0 1 1 1
¿4 1 1 0 0 0 0 1
¿5 1 1 1 0 0 0 1
¿6 0 0 1 0 0 0 0
¿7 1 1 1 1 1 0 0
Рис. 4 Вспомогательная матрица совместимости событий (состояний)
Исходя из заданного управляющего алгоритма (рис. 3), максимально возможное число совместимых событий, входящих в одну группу, равно 3. К числу таких групп относятся: (51, 54, £7), (£3, £5, £7), (52, £5, £7), поэтому
минимально возможное число состояний в подавтоматах должно быть не менее трех. Всего различных комбинаций подмножеств событий (состояний), входящих в разные подавтоматы, должно быть не менее п = 7. Для их реализации в соответствии с условием (4) необходимо два параллельно работающих подавтомата.
Рассмотрим вариант построения матрицы включения для первого подавтомата, которое будет содержать следующие шаги:
1. Для события (состояния) «1 подмножество совместимых событий
пусто, поэтому для «1 назначается первое подмножество т\, включающее пока один элемент:
т{ = 1000000.
2. Поскольку «2 П т} = 0 , то 52 не включается в т\, а образуется новое подмножество т2, в которое войдет «2 в качестве первого элемента:
т1 = 1000000, т2 = 0100000.
3. Поскольку т| П £3 =0 и т2 П £3 =0 , то £3 не включается ни в т|,
ни в т2, а образуется новое подмножество т3 , в которое войдет £3 в качестве первого элемента:
т1 = 1000000, т2 = 0100000, т3 = 0010000.
4. Поскольку т{ П £4 ^0, т2 П £4 ^0, т3 П £4 =0 , то £4 может войти в т11 или т12 , а в т13 не войдет. Поэтому поместим £4 в т11 , имея при этом ввиду вариант возможного перераспределения переменной £4 в этих подмножествах. Тогда состав подмножеств ту на данном шаге будет следующим:
т1 = 1001000, т2 = 0100000, т3 = 0010000.
5. Поскольку т{ П £5 ^0, т2 П £5 ^0, тд П £5 ^0, то £5 может войти в любое из трех подмножеств т\, т2 или . Учитывая равномерность распределения переменных £а в подмножествах т1, поместим £5 в подмножество т12 , имея ввиду вариант возможного перераспределения переменной £5 в этих подмножествах. Тогда состав подмножеств ту на данном шаге будет иметь вид
т1 = 1001000, т2 = 0100100, т3 = 0010000.
6. Поскольку т! П £б =0, т2 П £б =0, т3 П £б ^0 , то £5 может войти только в т3 . Тогда состав подмножеств ту на данном шаге будет иметь вид
т1 = 1001000, т2 = 0100100, т1 = 0010010.
7. Поскольку т| П £7 ^0, т2 П £7 ^0, т3 П £7 ^0, то £7 может войти в любое из подмножеств т11 , т12 , т13 . Поместим £7 в подмножество т11 , учитывая при этом возможность перераспределения переменной £7 в этих подмножествах. Тогда получим состав подмножеств ту, соответствующих последнему шагу построения матрицы включения для первого подавтомата:
т1 = 1001001, т2 = 0100100, т3 = 0010010. (5)
Рассмотрим теперь вариант построения матрицы включения для второго подавтомата. При ее построении необходимо учитывать также и выполнение условий (4):
1. Очевидно, что первые три шага построения матрицы включения для второго подавтомата будут совпадать с тремя шагами построения матрицы включения для первого подавтомата. Тогда имеем
т12 = 1000000, т2 = 0100000, т| = 0010000.
2 2 2
2. Поскольку т1 П £4 ^0, т2 П £4 ^0, т3 П £4 =0 , то £4 нельзя по-
2
местить в подмножество т3 . В то же время £4 нельзя также поместить и 8
22 в подмножество т1 , т.к. при помещении £4 в т1 условие (4) не будет соблюдаться, что следует из результата операции пересечения т2 П т} = £1£4 . Тогда получим следующий состав подмножеств на данном шаге:
т12 = 1000000, т| = 0101000, т2 = 0010000.
3. Поскольку т1 П £5 ^0, т^ П £5 = 0, т3 П £5 ^0, то £5 нельзя по-
2
местить в т2 из-за того, что не выполнялось бы условие (4), т.к. имело бы
1 2
место соотношение т2 о т2 = £2£5, что нарушает однозначность переходов.
22
В то же время £5 можно поместить или в т1 , или в т3 . Выбираем произвольно первый вариант, учитывая при этом возможность перераспределения переменной £5 в эти подмножества. В результате получим следующий состав подмножеств на данном шаге:
т12 = 1000100, т| = 0101000, т2 = 0010000.
4. Поскольку т1 П £б = 0, т2 П £б =0, т3 П £б ^0 , то £5 нельзя поместить ни в одно из подмножеств, в том числе и в т2 . Это объясняется тем,
что если бы £6 вошло в подмножество т32 , то не выполнялось бы условие
1 2
(4), т.к. т3 П т3 = £3£б, что вызвало бы неоднозначность переходов. В связи
с этим образуется новое подмножество т2 , в которое вводится £5 . Учитывая это обстоятельство, получим следующий состав подмножеств:
т12 = 1000100, т2 = 0101000, т| = 0010000, т| = 0000010.
5. Для последнего шага для £7 имеем следующие соотношения:
т2 П £7 ^0, т| П £7 ^0, т2 П £7 ^0, т2 П £7 =0 . Откуда следует, что £7
2 2 2 можно поместить только в подмножество т3 , а в подмножества т1 или т2 -
нельзя из-за невыполнения условия (4), т.к. имели бы место соотношения т2 П т} = £1£7 и т| П т} = £4£7 , что нарушило бы однозначность переходов. Тогда окончательный вариант размещения событий (состояний) по подмножествам для второго подавтомата будет иметь следующий вид:
т2 = 1000100, т| = 0101000, т2 = 0010001, т2 = 0000010. (6)
3 Представление алгоритмов функционирования параллельно работающих подавтоматов по результатам декомпозиции исходного управляющего алгоритма
По результатам построения матриц включения (5), (6), определяющих разбиение исходного управляющего алгоритма на параллельно работающие подавтоматы, получим коды всех событий (состояний) исходного управляющего алгоритма. Эти коды удовлетворяют требованию условий (4), обеспечивающих однозначность и полноту переходов алгоритма. Для нашего примера такие коды событий (состояний) имеют следующий вид:
12 12 12 12
£1 = тт , ^2 = т2т2 , ^3 = т3т3 , ^4 = т1т2 ,
о 1 2 о 1 2 о 1 2 /п\
£5 = т2т1 , Л6 = «з«4 , Л7 = «1«з , (7)
где тг- и т2 - коды внутренних состояний первого и второго подавтоматов
соответственно, 1 = [1, 2, 3], у = [1, 2, 3, 4].
Подставляя коды событий (состояний) исходного автомата (7) в таблицу переходов (рис. 3), можно построить кодированную таблицу переходов исходного управляющего автомата, которая будет иметь вид (рис. 5).
1 2 да!»)! 1 2 т2т2 1 2 т3т3 1 2 Ш1Ш2 1 2 т2 т1 1 2 т^т4 1 2 т1т3
Х 0 1 2 т1т1 - 1 2 т2 т1 1 2 Ш1Ш1 - 1 2 т2 т1 -
Х1 - 1 2 т1 1 2 т^Ш4 1 2 Ш1Ш3 - - -
Х2 - - - 1 2 т3т3 1 2 т1т3 1 2 т^т4 1 2 т3т3
Х 3 1 2 т2 т2 1 2 т1 т2 - - - 1 2 т1 т1 -
Рис. 5 Кодированная таблица переходов исходного управляющего автомата
По кодированной таблице переходов (рис. 5) нетрудно построить системы канонических уравнений (СКУ), формализующих алгоритмы функционирования отдельных подавтоматов. Введем обозначения для подмножеств внутренних состояний первого и второго подавтоматов, имеющих вид:
- для первого подавтомата:
а1 = т|, а2 = т2,03 = ;
- для второго подавтомата:
2 2 2 2 _ ь = т1 , Ь2 = т2, Ь3 = т3 , Ь4 = т4 ;
искомые СКУ будут представлены следующим образом:
- для первого подавтомата:
а1 ( +1) = а1 (х0 V Х1) V 02 (х1 V Х2 V Х3) V 03Х3,
02 ( +1) = 01X3 V 03х0, 03 ( +1) = 01X2 V 03 (х1 V Х2); (8)
- для второго подавтомата:
Ь1 ( + 1) = (Ь1 V Ь2 V Ь3 V Ь4 ) V Ь4Х3, Ь2 ( + 1) = (Ь1 V Ь2 )х3,
Ь3 ( + 1) = (¿1 V Ь2 V Ь3 ) V Ь2Х1, Ь4 ( + 1) = Ь3Х1 V Ь4Х2 . (9)
По полученным СКУ (8) и (9), имеющим стандартный вид, можно построить структурные схемы подавтоматов с использованием методов аппаратной или микропрограммной реализации.
Заключение
В заключение отметим некоторые особенности рассмотренного метода реализации параллельной декомпозиции управляющего алгоритма и его автоматной интерпретации:
1) при построении матриц включения было обращено внимание на то, что для некоторых шагов построения таких матриц имелась возможность поместить очередное событие (состояние) в одно из нескольких подмножеств. Это обстоятельство может быть использовано при формировании состава внутренних состояний отдельных подавтоматов, когда необходимо учитывать оценку равномерной сложности структуры отдельных подавтоматов и зависимость по ресурсам отдельных событий, реализуемых системой;
2) автоматное представление параллельной композиции системы логического управления отличается большой компактностью и удобством моделирования системы особенно при весьма большом числе состояний системы управления, т.к. максимальное число состояний системы может быть представлено как произведение числа состояний параллельно работающих подавтоматов.
При этом любое свойство системы управления при ее верификации может быть проверено на основе моделирования СКУ отдельных подавтоматов, общее число состояний которых во много раз меньше числа состояний системы управления. При полной верификации системы управления выделяется начальное состояние системы в виде совокупности начальных состояний параллельно работающих подавтоматов и может быть использован алгоритм детерминизации, рассмотренный в работах [4, 5].
Список литературы
1. Горбатов, В. А. Регулярные структуры автоматного управления / В. А. Горбатов, Б. Л. Останков, С. А. Фролов. - М. : Машиностроение, 1980. - 216 с.
2. Горбатов, В. А. Логическое управление распределенными системами / В. А. Горбатов, М. И. Смирнов, И. С. Хлытчиев. - М. : Энергоатомиздат, 1991. -284 с.
3. Мелихов, А. Н. Ориентированные графы и конечные автоматы / А. Н. Мелихов. - М. : Наука, 1971. - 416 с.
4. Вашкевич, Н. П. Недетерминированные автоматы и их использование для синтеза систем управления / Н. П. Вашкевич, С. Н. Вашкевич. - Пенза : Изд-во Пенз. гос. ун-та, 1996. - 88 с.
5. Вашкевич, Н. П. Недетерминированные автоматы в проектировании систем параллельной обработки / Н. П. Вашкевич. - Пенза : Изд-во Пенз. гос. ун-та, 2004. - 280 с.
Вашкевич Николай Петрович
доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет
Vashkevich Nikolay Petrovich Doctor of engineering sciences, professor, sub-department of computer science, Penza State University
E-mail: [email protected]
УДК 681.326; 681.32 Вашкевич, Н. П.
Параллельная декомпозиция управляющих алгоритмов с учетом их неопределенности / Н. П. Вашкевич // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2009. - № 3 (11). - С. 3-11.