Опубликован: 17.02.2011 | Уровень: специалист | Доступ: платный
Лекция 2:

Синтез экспериментов методами динамического программирования

< Лекция 1 || Лекция 2: 12 || Лекция 3 >

Синтез установочной последовательности

Решение задачи синтеза УП, минимальной по весу, будет состоять из двух этапов, первый из которых заключается в построении по таблице переходов-выходов автомата графа, называемого графом установки автомата (ГУА), а второй - в поиске на нем минимальной УП.

ГУА - это ориентированный граф, каждая вершина которого отмечается A -группой \sigma -множеств. Отметка вершины используется в качестве ее имени. Если A -группа, которой отмечена некоторая вершина S_1 ГУА, под воздействием входного сигнала x \in X переходит в A -группу, которой отмечена вершина S_2, то в ГУА из S_1 в S_2 проводится дуга, на которой ставится входной сигнал x. Правила преобразования одной A -группы в другую под воздействием входного сигнала x остаются такими же, как они определены выше.

Построение ГУА осуществляется рекурсивно и по существу совпадает с процессом построения установочного дерева из [18].

Вначале в число вершин графа включается вершина S_0, где S_0 - множество допустимых начальных состояний. Вершину S_0 поместим на вертикальную прямую и назовем ее линией 1-го уровня. Далее строим все A -группы, в которые переходит A -группа S_0 под воздействием всех символов входного алфавита X, включаем их в число вершин ГУА и помещаем на линию уровня с номером 2. Из вершины S_0 в вершины второго уровня проводим по упомянутому правилу дуги, помеченные соответствующими входными символами. Процесс построения ГУА продолжается далее аналогичным образом (как и в случае установочного дерева). При этом если на очередном шаге построения появилась вершина, соответствующая однородной A -группе, то такая вершина считается листом, т. е. при продолжении процесса построения ГУА из нее не будет больше исходить никаких дуг.

У каждой вершины S_i ГУА установим флажок (на рисунке он, как и ранее, изображается в виде квадрата); в него записывается число, равное сумме весов входных символов последовательности, которая ведет из S_0 в S_i. Теперь введем некоторые дополнительные правила, используемые при построении ГУА:

  • если на очередной линии уровня появилась вершина S^*, а на одной из линий уровня с меньшим номером имеется вершина \tilde {S^*}, помеченная такой же A -группой, что и S^* , причем число во флажке у вершины S^* больше, чем во флажке у вершины \tilde {S^*}, то вершина S^* становится листом, а если она является непосредственным преемником вершины с такой же A -группой, то она удаляется из ГУА;
  • если значение флажка у некоторой вершины S, появившейся на очередном шаге построения ГУА, больше, чем у какой-либо вершины, помеченной однородной A -группой, находящейся на предыдущих уровнях, то вершина S удаляется из ГУА.

Понятно, что описанный процесс построения ГУА всегда завершается за конечное число шагов. Проиллюстрируем построение ГУА для автомата, заданного табл. 1.1, считая, что S_0=\{1,2,3,4,5\}, w(\alpha )=1, w(\beta)=2, w(\gamma)=3. Обратимся к рис.2.2, на котором изображен соответствующий ГУА. На третьем шаге построения ГУА, как это видно из рисунка, возникло 9 вершин, среди которых вершины \{1,2,3,2,3\}, \{1,4,2,2,4\}, \{4,5,4,4,4\}, \{5,5,4,2,4,5\} не являются однородными, а остальные - однородные. Последние именно по этой причине становятся листьями. Заметим, что вершина \{1,1,3,3,5\} среди однородных имеет минимальное значение флажка, равное 3. Теперь перейдем к четвертому шагу. Так, самая верхняя вершина 3-го уровня \{1,2,3,2,3\} под воздействием сигнала \alpha переходит в вершину, помеченную такой же A -группой. Поскольку она является непосредственным преемником вершины с такой же A -группой, по правилу 1 она удаляется из ГУА. Аналогичная ситуация имеет место для вершины \{5,5,4,4,5\} (самая нижняя на 3-м уровне) при построении вершины 4-го уровня, в которую она переходит под воздействием входного символа \gamma.

Легко убедиться, что при построении остальных вершин 4-го уровня в их флажках будут стоять числа, большие 3, но тогда по правилу 2 они все должны быть удалены из ГУА. Таким образом, граф ГУА содержит только три уровня.

Из самого способа построения ГУА вытекает, что последовательность входных символов, соответствующая пути по ГУА из вершины S_0 в одну из однородных вершин, будет являться УП для заданного автомата.

Покажем теперь, что задача синтеза минимальной по весу УП всегда может быть сведена к задаче выбора наискорейшего пути, как это было и в случае СП.

Роль опорных прямых здесь выполняют линии уровня, а сам ГУА можно интерпретировать как сеть дорог, удовлетворяющую необходимым требованиям для упомянутой задачи, поскольку в нем, во-первых, отсутствуют петли, а, во-вторых, все дуги направлены от вершин i -го уровня к вершинам (i+1) -го уровня, т. е. отсутствуют "обратные" дуги.

Понятно, что если положить время движения по дуге равным весу входного символа, которым она помечена, то задача синтеза УП минимального веса сводится к задаче о выборе наискорейшего пути из вершины S_0 в однородные вершины ГУА. Отсюда вытекает, что для решения рассматриваемой нами задачи можно применить метод динамического программирования.

Вместе с тем заметим, что ГУА представляет собой дерево, а в дереве, как известно, если между некоторой парой его вершин путь существует, то он единственен. Следовательно, применительно к ГУА задача поиска пути из вершины S_0 в некоторую однородную вершину превращается в тривиальную задачу. Более того, для каждой однородной вершины в ее флажке записано число, равное времени, затрачиваемому на путь в нее из S_0.


Рис. 2.2.

Таким образом, располагая этими данными для нахождения оптимального пути, достаточно найти ту из однородных вершин, у которой число во флажке минимально. Очевидно, что искомой УП минимального веса будет входная последовательность, соответствующая пути по ГУА из вершины S_0 в однородную вершину с минимальным числом во флажке.

Так, в ГУА на рис.2.2 имеется 5 однородных вершин, среди которых минимальное число во флажке, равное 3, имеет вершина \{1,1,5,3,3\}. Поскольку пути по ГУА из вершины S_0 в нее соответствует входная последовательность \beta , \alpha , то она и является минимальной по весу УП.

Синтез диагностической последовательности

Решение задачи синтеза ДП, минимальной по весу, по аналогии с изложенным выше, будет состоять из двух этапов. На первом из них по таблице переходов-выходов заданного автомата строится граф, называемый графом диагностики автомата (ГДА), а на втором - производится поиск на построенном графе минимальной ДП.

ГДА представляет собой ориентированный граф, множество вершин которого и способ проведения дуг между ними полностью совпадает с тем, как это было определено для ГУА. По аналогии с предыдущим разделом у каждой вершины ГДА устанавливается флажок, значение которого определяется точно так же, как и в случае ГУА.

Вершины ГДА, которые отмечены A -группами, содержащими кратные (только простые) \sigma -множества, будем называть кратными (простыми).

Построение ГДА аналогично построению диагностического дерева автомата, описанному в [18], но при этом вводятся несколько иные, чем в [18], правила, по которым вершина S (по терминологии [18] - ветвь) k -го уровня становится листом.

Вершина S k -го уровня ГДА становится листом, если:

  • S является простой вершиной;
  • S является кратной вершиной;
  • в уровнях ГДА, предшествующих k -му, имеется вершина S^*, помеченная такой же A -группой, что и вершина S, но у вершины S значение флажка больше, чем у S^* ;
  • в уровнях, предшествующих k -му, имеется простая вершина, значение флажка которой меньше, чем значение флажка вершины S.

Легко показать, что введенные правила обрыва ветвей гарантируют построение ГДА за конечное число шагов.

Проиллюстрируем предложенный способ построения ГДА на примере автомата, таблица переходов-выходов которого отличается от табл. 1.1 только содержимым левой верхней клетки: под воздействием сигнала \alpha автомат из состояния 1 переходит опять в состояние 1, но при этом его выходной сигнал равен 1, а не 0, как в табл. 1.1. Предполагается, что множество допустимых начальных состояний есть S_0=\{1,2,3,4,5\}, а w(\alpha)=1, w(\beta)=20, w(\gamma)=30.


Рис. 2.3.

На рис.2.3 изображен ГДА для этого автомата. Проиллюстрируем теперь, как работают введенные правила завершения. Так, на третьем шаге построения ГДА появляется вершина \{4,5,4,5\} со значением флажка, равным 60, в которую ведет дуга, помеченная входным символом \gamma, из вершины \{4,5,4,5\} второго уровня со значением флажка, равным 30. Тогда, в силу пункта 3 правил завершения, вершина \{4,5,4,5\} 3-го уровня удаляется. Далее: среди вершин 4-го уровня, появившихся в процессе построения ГДА, имеется простая вершина \{1,2,4,2\} со значением флажка, равным 22. Легко убедиться, что на 5-м шаге построения ГДА у всех появляющихся вершин значения флажков будут больше 22, но тогда в силу пункта 4 правил завершения все эти вершины должны быть удалены из ГДА. Таким образом, ГДА для нашего примера будет содержать только четыре уровня. Отметим также, что вершина \{1,1,2,2\} второго уровня является оконечной в силу пункта 2 правил завершения, вершины \{1,1,2,2\}, \{3,5,3,5\} второго уровня и вершина \{1,2,4,2\} третьего уровня становятся оконечными в силу пункта 1 правил завершения.

Из способа построения ГДА вытекает, что последовательность входных символов, соответствующая пути по ГДА из вершины S_0 в одну из простых вершин, будет являться ДП для заданного автомата.

Отметим, что поиск упомянутых путей представляет собой тривиальную задачу, поскольку ГДА является деревом, и потому каждый такой путь единственен. Понятно, что построение ДП с минимальным весом сводится к следующему. Среди всех простых вершин ГДА отыскивается вершина S с минимальным значением флажка. Затем в этом графе находится единственный путь из S_0 в S, которому соответствует определенная последовательность входных символов. Построенная таким образом входная последовательность и является искомой ДП, минимальной по весу.

Так, в ГДА на рис.2.3имеется 3 простых вершины, из которых у вершины \{1,2,4,2\} четвертого уровня значение флажка минимально и равно 22. Поскольку пути по ГДА из вершины S_0 в эту вершину соответствует входная последовательность \alpha , \alpha, \beta, то она и является минимальной по весу ДП. Заметим, кстати, что минимальной ДП в классическом смысле для этого примера будет являться входная последовательность \gamma, \beta , соответствующая пути по ГДА из вершины S_0 в вершину \{1,2,1,2\} третьего уровня.

Вопросы и упражнения

  1. Сформулируйте метод построения графа синхронизации (установки, диагностики) автомата.
  2. Сформулируйте процедуру построения минимальной по весу СП с использованием ГСА.
  3. Какие линии в ГСА выступают в роли опорных прямых при построении искомой СП методом динамического программирования?
  4. Для автомата из упражнения 9 к лекции 1 построить ГСА и по этому графу методом динамического программирования найти минимальную по весу СП в предположении, что w(\alpha)=10, w(\beta)=1 и S_0=\{1,2,3,4\}.
  5. Для того же автомата построить ГУА и по этому графу методом динамического программирования найти минимальную по весу УП в предположении, что w(\alpha)=10, w(\beta)=20 и S_0=\{1, 2, 3\}.
  6. Для автомата из предыдущего упражнения при тех же предположениях о весах входных символов и множестве S_0 начальных состояний построить ГДА и по этому графу найти минимальную по весу ДП.
< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Юрий Фролов
Юрий Фролов
Украина