Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Алгоритм минимизации недетерминированного автомата
Поиск минимального недетерминированного автомата усложняется тем, что в таблицах переходов и выходов есть неопределенные позиции. Однако, анализ функций переходов y:(QÄX)®Q и выходов j:(QÄX)®Y позволяет находить неотличимые и совместимые состояния даже при наличии неопределенных позиций, а последующее согласование совместимых классов - находить эквивалентные состояния. Пусть функции выходов и переходов недетерминированного автомата заданы таблицами 1.47 и 1.48. Алгоритм минимизации числа состояний автомата: шаг 1: выделить в таблице выходов множества неотличимых и отличимых пар состояний автомата: "а) если среди множества пар состояний автомата (qi;qj)Î(QÄQ) можно найти такие qi и qj, для которых значения функций выходов j(qi;xk) и j(qj;xk) определены для xkÎX и они совпадают, то есть j(qi;xk)=j(qj;xk), или значение одной из функций для xkÎX покрывает безразличную позицию другой, или значения обеих функций не определены для xkÎX, то пару (qi;qj) считать парой неотличимых состояний; b) если среди множества пар (qi;qj)Î(QÄQ) можно найти такие qi и qj, для которых значения функции выходов j(qi;xk) и j(qj;xk) различны хотя бы для одного xkÎX, т. е. j(qi;xk)¹j(qj;xk), то пару (qi;qj) считать парой отличимых состояний"; в результате анализа таблицы 1.47 парами неотличимых состояний являются (qp;qt), (qp;qv), (qr;qu), (qr;qs), (qs;qu), а парами отличимых состояний - (qp;qr), (qp;qs), (qp;qu), (qr;qt), (qr;qv), (qs;qt), (qs;qv), (qt;qu) и (qt;qv). шаг 2: на множестве пар неотличимых состояний определить классы неотличимых состояний: "а) если среди множества пар неотличимых состояний существуют пары (qi;qj), (qj;qk) и (qi;qk), то множество {qi;qj;qk} формирует класс неотличимых состояний Q'i ={qi;qj;qk} ( условие транзитивности); b) если среди множества пар неотличимых состояний существуют пары (qi;qj), (qj;qk) и не существует пара (qi;qk), то пары (qi;qj) и (qj;qk) формируют два класса неотличимых состояний Q'l={qi;qj} и Q'k={qj;qk} (состояние qj принадлежит двум классам)"; в результате анализа множества неотличимых пар сформированы классы неотличимых состояний Q'1={qr;qs;qu}, Q'2={qp;qt} и Q'3={qp;qv}; при этом Q'1ÈQ'2ÈQ'3=Q, Q'1ÇQ'2=Æ, Q'1ÇQ'3=Æ,но Q'2ÇQ'3¹Æ; шаг 3: составить таблицу переходов для пар неотличимых состояний: "левый столбец таблицы представить парами неотличимых состояний, которые сгруппированы по классам неотличимости; позиции таблицы заполнить для каждой неотличимой пары (qi;qj) и для каждого символа xkÎX по таблице переходов парами значений (y(qi;xk);y(qj;xk)); если хотя бы одно из значений функции переходов y(qi;xk) или y(qj;xk) имеет значение "*", то паре (y(qi;xk);y(qj;xk)) присвоить также значение "*""; (смотри таблицу 1.49); шаг 4: на множестве пар неотличимых состояний по таблице переходов определить пары совместимых состояний: "если для пары неотличимых состояний (qi;qj) значения функции переходов (y(qi;xk);y(qj;xk)) для xkÎX принадлежат также множеству пар неотличимых состояний (левому столбцу таблицы), то состояния qi и qj совместимы, иначе пару (qi;qj) удалить из множества пар неотличимых состояний ( из левого столбца таблицы)"; в результате анализа можно установить, что совместимыми парами являются (qp;qv), (qr;qs), (qs;qu), (qp;qt) и (qr;qu). шаг 5: на множестве пар совместимых состояний найти классы совместимых состояний: "а) если множеству совместимых пар принадлежат пары (qi;qj), (qj;qk) и (qi;qk), т.е. выполняется условие транзитивности, то состояния qi, qj и qk формируют класс совместимых состояний Q'i={qi;qj;qk;...}; b) если множеству совместимых пар принадлежат (qi;qj), (qj;qk) и не принадлежит (qi;qk), т.е. не выполняется условие транзитивности, то состояния qi,qj и qk формируют два класса совместимых состояний Q'i= {qi;qj;...} и Q'j={qj;qk;...}"; в результате анализа множества совместимых пар выявлены классы совместимости Q'2={qp;qt}, Q'3={qp;qv}, Q'4={qu;qv},Q'5={qr;qs} и Q'6=(qs;qu} шаг 6: найти наименьшее множество совместимых классов, покрывающих все исходные состояния автомата: (Q'2ÈQ'4ÈQ'5) = {qp;qr;qs;qt;qu;qv}. шаг 7: на множестве классов совместимых состояний, выбранных на шаге 6, найти согласованные состояния: "если для любого класса наименьшего множества совместимых состояний и любых его элементов qi и qj значения функций переходов y(qi;xk) и y(qj;xk) принадлежат одному совместимому классу для всех символов xkÎX, то такие классы являются согласованными и следует перейти к шагу 8, иначе перейти к шагу 6 и найти другое наименьшее множество классов совместимых состояний, покрывающее все исходные состояния автомата"; в результате анализа таблицы 1.49 установлено, что все состояния согласованы в минимальном наборе классов совместимых состояний Q'2, Q'4, Q'5; шаг 8: состояния каждого класса согласованных состояний "склеить" и заместить эквивалентным состоянием; отличимые и несовместимые состояния сохраняют свое значение в описании минимального автомат; для состояний каждого класса наименьшего набора согласованных состояний ввести эквивалентные состояния: q'1«{qp;qt}, q'2«{qp;qv}, q'3«{qu;qv}, q'4«{qr;qs} и q'5«{qs;qu} и составить таблицы переходов и выходов. Пример 1.9. Для недетерминированного автомата M = áX;Y;Q;y;jñ, где X={x1;x2;x3;x4}, Y={0;1}, Q={q1;q2;q3;q4;q5}, функции y и j заданы таблицей поведения (см. таблицу 1.53) . Найти минимальный автомат.
Таблица 1.53.
Для изображения структуры абстрактного автомата следует представить таблицу соединений состояний автомата и его граф (см. таблицу 1.54 и рис.1.19).
Таблица 1.54.
Согласно алгоритма имеем множество неотличимых пар: (q1;q2), (q1;q3), (q1;q4), (q1;q5), (q2;q3), (q2;q4), (q3;q4), (q3;q5), (q4;q5) и отличимую пару - (q2;q5); классы неотличимых состояний: Q'1={q1;q2;q3;q4} и Q'2={q1;q3;q4;q5} и таблицу переходов пар неотличимых состояний (см. таблицу 1.55).
Рис. 19. Граф недетерминированного автомата. Таблица 1.55.
Анализ таблицы 1.55 показывает, что для символа "x4" пара неотличимых состояний (q1;q3) переходит в пару отличимых состояний (q2;q5); следовательно, пара (q1;q3) не претендует на совместимость состояний q1 и q3, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.56.
Таблица 1.56.
Анализ таблицы 1.56 показывает, что для символа "x3" пара неотличимых состояний (q1;q5) переходит в удаленную пару (q1;q3); следовательно, пара (q1;q5) также не претендует на совместимость состояний q1 и q5, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.57.
Таблица 1.57.
Анализ таблицы 1.57 показывает, что для символа "x2" пара неотличимых состояний (q2;q4) переходит в удаленную пару (q1;q5); следовательно, пара (q2;q4) также не претендует на совместимость состояний q2 и q4, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.58.
Таблица 1.58.
Анализ таблицы 1.58 показывает, что для символа "x1" пары неотличимых состояний переходят также в пары неотличимых состояний; следовательно, в левом столбце таблицы остались только пары совместимых состояний; Согласно алгоритма найдены классы совместимых состояний: Q''1={q1;q2}, Q''2={q1;q4}, Q''3={q2;q3} и Q''4={q3;q4;q5}. Так как q3 и q4 входят в разные класса совместимых состояний, то следует выделить в Q”4 подклассы для определения согласованных классов: а) Q''4={q3;q5}Èq4, где {q3;q5}=Q''41; b) Q''4={q4;q5}Èq3, где {q4;q5}=Q''42. Для согласования рассмотрим различные наборы классов совместимых состояний, покрывающих все множество исходных состояний автомата: а) пусть Q''1={q1;q2} и Q''4={q3;q4;q5}; анализ таблицы 1.59 показывает, что выбранные классы не согласованы, так как для символов x1 и x3 класс совместимых состояний Q''1 переходит в различные классы Q''1 и Q''4; b) пусть Q''1={q1;q2}, Q''2={q1;q4} и Q''41={q3;q5}; анализ таблицы 1.60 показывает, что выбранные классы не согласованы, так как для символов x1 и x3 класс совместимых состояний Q''1 переходит в различные классы Q''1 и Q''41; c) пусть Q''1={q1;q2}, Q''3={q2;q3} и Q''42={q4;q5}; анализ таблицы 1.61 показывает, что выбранные классы согласованы, так как для любого символа все классы совместимых состояний переходят в один класс совместимых состояний; Введем обозначения для состояний, замещающих согласованные классы: q'1«{q1;q2}, q'2«{q2;q3}, q'3«{q4;q5}. Таблица 1.62 отображает поведение минимального автомата, а рис. 20 - граф автомата.
Таблица 1.59.
Таблица 1.60.
Таблица 1.61.
Таблица 1.62.
Рис. 1.20. Граф минимального недетерминированного автомата. Следует обратить внимание, что в результате минимизации автомата сохранились неопределенными переходы для состояния q'3. Для проверки одинаковости работы исходного и минимального автоматов подадим на вход каждого из них одинаковые последовательности символов: а) пусть a= (x1x2x3x4), тогда для исходного автомата: для минимального автомата: вход: x1 - x2 - x3 - x4; вход: x1 - x2 - x3 - x4; q: q1 - q2 - q5 - q1 - q2; q: q'1 - q'2 - q'3 - q'1 - q'1; выход: 0 - 1 - 1 - *; выход: 0 - 1 - 1 - *; то есть b=(011*); то есть b=(011*); b) пусть a=(x4x3x2x1), тогда для исходного автомата: для минимального автомата: вход: x4 - x3 - x2 - x1; вход: x4 - x3 - x2 - x1; q: q1 - q2 - q2 - q5 - *; q: q'1 - q'1 - q'2 - q'3 - *; выход: * - 0 - 1 - *; выход: * - 0 - 1 - *; то есть b=(*01*); то есть b=(*01*); c) пусть a=(x1x2x1x2), тогда для исходного автомата: для минимального автомата: вход: x1 - x2 - x1 - x2; вход: x1 - x2 - x1 - x2; q: q1 - q2 - q5 - *; q: q'1 - q'2 - q'3 - *; выход: 0 - 1 - *; выход: 0 - 1 - *; то есть b=(01*); то есть b=(01*); Так подтверждается эквивалентность исходного и минимального недетерминированных автоматов.
Пример 1.10. Для недетерминированного автомата M=áX;Y;Q;y;jñ, где X={0;1}, Y={0;1}, Q={q1;q2;q3;q4;q5;q6}, функции y и j заданы таблицей 1.63. Найти минимальный автомат.
Для проверки одинаковости работы исходного и минимального автоматов подадим на вход каждого из них одинаковые последовательности символов: а)пусть a= (x1x2x3x4), тогда для исходного автомата: для минимального автомата: вход: x1 - x2 - x3 - x4; вход: x1 - x2 - x3 - x4; q: q1 - q2 - q5 - q1 - q2; q: q'1 - q'2 - q'3 - q'1 - q'1; выход: 0 - 1 - 1 - *; выход: 0 - 1 - 1 - *; то есть b=(011*); то есть b=(011*); b)пусть a=(x4x3x2x1), тогда для исходного автомата: для минимального автомата: вход: x4 - x3 - x2 - x1; вход: x4 - x3 - x2 - x1; q: q1 - q2 - q2 - q5 - *; q: q'1 - q'1 - q'2 - q'3 - *; выход: * - 0 - 1 - *; выход: * - 0 - 1 - *; то есть b=(*01*); то есть b=(*01*);
Таблица 1.63.
Соединения состояний автомата представлены таблицей 1.64, а граф - рис.1.21.
Таблица 1.64.
Рис. 1.21. Граф недетерминированного автомата. шаг 1: множество неотличимых пар: (q1;q2), (q1;q4), (q1;q5), (q1;q6), (q2;q4), (q2;q5), (q2;q6), (q3;q5), (q4;q5), (q4;q6), (q5;q6); множество отличимых пар: (q1;q3), (q2;q3), (q3;q4), (q3;q6); шаг 2: классы неотличимых состояний: Q'1={q1;q2;q4;q5;q6} и Q'2={q3;q5}; при этом Q'1ÈQ'2=Q, Q'1ÇQ'2¹Æ; шаг 3: таблицу 1.65 - таблица переходов пар неотличимых состояний: шаг 4: поиск совместимых состояний по таблицам 1.65 и 1.66: Анализ таблицы 1.65 показывает, что для символа "1" пары неотличимых состояний (q2;q4) и (q4;q5) переходят в пару отличимых состояний (q3;q6); следовательно, эти пары не претендуют на совместимость, их следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.66; анализ таблицы 1.66 показывает, что для символа "0" пара неотличимых состояний (q1;q6) переходит в удаленную пару (q2;q4), а пара (q4;q6) - в удаленную пару (q4;q5); следовательно, пары (q1;q6) и (q4;q6) также не претендуют на совместимость, их следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.67. В левом столбце таблицы 1.67 остались только пары совместимых состояний; шаг 5: классы совместимых состояний: Q''1={q1;q2;q5}, Q''2={q2;q5;q6}, Q''3={q1;q4} и Q''4={q3;q5}; шаг 6: наименьшее число совместимых классов, покрывающее все совместимые пары состояний: Q''1={q1;q2;q5}, Q''2={q2;q5;q6}, Q''3={q1;q4} и Q''4={q3;q5}; шаг 7: таблица переходов совместимых классов – таблица 1.68. шаг 8: состояния, замещающие состояния согласованных классов: q'1«{q1;q2;q5}, q'2«{q2;q5;q6}, q'3«{q1;q4} и q'4={q3;q5}; таблица 1.69 отображает поведение минимального автомата, а рис. 1.22 - граф автомата. Следует обратить внимание, что в результате минимизации автомата сохранились только безразличные выходные символы.
Таблица 1.65.
Таблица 1.66.
Таблица 1.67.
Таблица 1.68.
Таблица 1.69.
Рис.1.22 Граф минимального недетерминированного автомата Для проверки одинаковости работы исходного и минимального автоматов подадим на вход каждого из них одинаковые последовательности символов:
а) пусть a= (010011), тогда
b) пусть a= (010101), тогда
c) пусть a= (101001), тогда
Так показана одинаковость работы двух автоматов. Контрольные вопросы и задачи. 1) Минимизировать число состояний автомата, заданного таблицей:
Начертить графы исходного и минимизированного автоматов. 2) Минимизировать число состояний автомата, заданного таблицей:
Начертить графы исходного и минимизированного автоматов. 4) Минимизировать число состояний автомата, заданного таблицей:
Начертить графы исходного и минимизированного автоматов.
Дата добавления: 2015-07-26; просмотров: 254; Нарушение авторских прав Мы поможем в написании ваших работ! |