Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Алгоритм минимизации недетерминированного автомата

Поиск минимального недетерминированного автомата усложняется тем, что в таблицах переходов и выходов есть неопределенные позиции. Однако, анализ функций переходов 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.

текущее состояние qÎQ символы входного алфавита xÎX
x1 x2 x3 x4
q1 q2;0 * ; * q3;* q2;*
q2 q3;0 q5;1 q2;0 * ; *
q3 q3;0 q4;1 * ; * q5;0
q4 * ; * q1;1 q2;* * ; *
q5 * ; * * ; * q1;1 * ; *

 

Для изображения структуры абстрактного автомата следует представить таблицу соединений состояний автомата и его граф (см. таблицу 1.54 и рис.1.19).

 

Таблица 1.54.

текущее состояние qÎQ очередное состояние qÎQ
q1 q2 q3 q4 q5
q1 (x1/0Úx4/ *) x3/ *
q2 x3/0 x1/0 x2/1
q3 x1/0 x2/1 x4/0
q4 x2/1 x3/ *
q5 x3/1

 

Согласно алгоритма имеем множество неотличимых пар: (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.

неотличимые состояния (q;q) символы входного алфавита xÎX
x1 x2 x3 x4
(q1;q2) (q2;q3) * (q2;q3) *
(q1;q3) (q2;q3) * * (q2;q5)
(q1;q4) * * (q2;q3) *
(q1;q5) * * (q1;q3) *
(q2;q3) (q3;q3) (q4;q5) * *
(q2;q4) * (q1;q5) (q2;q2) *
(q3;q4) * (q1;q4) * *
(q3;q5) * * * *
(q4;q5) * * (q1;q2) *

 

Анализ таблицы 1.55 показывает, что для символа "x4" пара неотличимых состояний (q1;q3) переходит в пару отличимых состояний (q2;q5); следовательно, пара (q1;q3) не претендует на совместимость состояний q1 и q3, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.56.

 

Таблица 1.56.

неотличимые состояния (q;q) символы входного алфавита xÎX
x1 x2 x3 x4
(q1;q2) (q2;q3) * (q2;q3) *
(q1;q4) * * (q2;q3) *
(q1;q5) * * (q1;q3) *
(q2;q3) (q3;q3) (q4;q5) * *
(q2;q4) * (q1;q5) (q2;q2) *
(q3;q4) * (q1;q4) * *
(q3;q5) * * * *
(q4;q5) * * (q1;q2) *

 

Анализ таблицы 1.56 показывает, что для символа "x3" пара неотличимых состояний (q1;q5) переходит в удаленную пару (q1;q3); следовательно, пара (q1;q5) также не претендует на совместимость состояний q1 и q5, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.57.

 

Таблица 1.57.

неотличимые состояния (q;q) символы входного алфавита xÎX
x1 x2 x3 x4
(q1;q2) (q2;q3) * (q2;q3) *
(q1;q4) * * (q2;q3) *
(q2;q3) (q3;q3) (q4;q5) * *
(q2;q4) * (q1;q5) (q2;q2) *
(q3;q4) * (q1;q4) * *
(q3;q5) * * * *
(q4;q5) * * (q1;q2) *

 

Анализ таблицы 1.57 показывает, что для символа "x2" пара неотличимых состояний (q2;q4) переходит в удаленную пару (q1;q5); следовательно, пара (q2;q4) также не претендует на совместимость состояний q2 и q4, ее следует удалить из левого столбца и составить новую таблицу переходов - таблицу 1.58.

 

Таблица 1.58.

неотличимые состояния (q;q) символы входного алфавита xÎX
x1 x2 x3 x4
(q1;q2) (q2;q3) * (q2;q3) *
(q1;q4) * * (q2;q3) *
(q2;q3) (q3;q3) (q4;q5) * *
(q3;q4) * (q1;q4) * *
(q3;q5) * * * *
(q4;q5) * * (q1;q2) *

 

Анализ таблицы 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.

класс согласованных состояний Q'i символы входного алфавита xÎX
x1 x2 x3 x4
Q''1 Q''1;Q''4 * Q''1;Q''4 *
Q''4 * Q''1;Q''4 Q''1 *

 

 

Таблица 1.60.

класс согласованных состояний Q'i символы входного алфавита xÎX
x1 x2 x3 x4
Q''1 Q''1;Q''41 * Q''1;Q''41 *
Q''2 * * Q''1;Q''41 *
Q''41 * * * *

 

 

Таблица 1.61.

класс согласованных состояний Q'i символы входного алфавита xÎX
x1 x2 x3 x4
Q''1 Q''3 * Q''3 *
Q''3 Q''3 Q''42 * *
Q''42 * * Q''1 *

 

 

Таблица 1.62.

текущее состояние qÎQ символы входного алфавита xiÎ X
x1 x2 x3 x4
q'1 q'2;0 q'3;1 q'2;0 q'1;*
q'2 q'2;0 q'3;1 q'1;0 q'3;0
q'3 * ; * q'1;1 q'1;1 * ; *

 

Рис. 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.

текущее состояние qÎQ символы входного алфавита xiÎ X
x1 x2
q1 q2;0 * ; *
q2 q1;0 q6;*
q3 q4;1 * ; *
q4 q5;0 q3;0
q5 * ; * q6; *
q6 q4;0 * ; *

 

Соединения состояний автомата представлены таблицей 1.64, а граф - рис.1.21.

 

Таблица 1.64.

текущее состояние qÎQ очередное состояние qÎQ
q1 q2 q4 q4 q5 q6
q1 0/0
q2 0/0 1/*
q3 0/1
q4 1/0 0/0
q5 1/*
q6 0/0

 

Рис. 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.

неотличимые состояния (qi;qj) символы входного алфавита xÎX
(q1;q2) (q1;q2) *
(q1;q4) (q2;q5) *
(q1;q5) * *
(q1;q6) (q2;q4) *
(q2;q4) (q1;q5) (q3;q6)
(q2;q5) * (q6;q6)
(q2;q6) (q1;q4) *
(q3;q5) * *
(q4;q5) * (q3;q6)
(q4;q6) (q4;q5) *
(q5;q6) * *

 

 

Таблица 1.66.

неотличимые состояния (qi;qj) символы входного алфавита xÎX
(q1;q2) (q1;q2) *
(q1;q4) (q2;q5) *
(q1;q5) * *
(q1;q6) (q2;q4) *
(q2;q5) * (q6;q6)
(q2;q6) (q1;q4) *
(q3;q5) * *
(q4;q6) (q4;q5) *
(q5;q6) * *

 

 

Таблица 1.67.

неотличимые состояния (qi;qj) символы входного алфавита xÎX
(q1;q2) (q1;q2) *
(q1;q4) (q2;q5) *
(q1;q5) * *
(q2;q5) * (q6;q6)
(q2;q6) (q1;q4) *
(q3;q5) * *
(q5;q6) * *

 

 

Таблица 1.68.

класс согласованных состояний Q'i символы входного алфавита xÎX
Q''1 Q''1 Q''2
Q''2 Q''3 *
Q''3 Q''1 *
Q''4 * *

 

 

Таблица 1.69.

текущее состояние qÎQ символы входного алфавита xiÎ X
q'1 q'1;0 q'2; *
q'2 q'3;0 q'2; *
q'3 q'1;0 q'4;0
q'4 q'3;1 q'2; *

 

Рис.1.22 Граф минимального недетерминированного автомата

Для проверки одинаковости работы исходного и минимального автоматов подадим на вход каждого из них одинаковые последовательности символов:

 

 

а) пусть a= (010011), тогда

для исходного автомата: для минимального автомата:
вход: 0 - 1 - 0 - 0 - 1 - 1; вход: 0 - 1 - 0 - 0 - 1 - 1;
q: q1 - q2 - q6 - q4 - q5 - q6 - *; q: q'1 - q'1 - q'2 - q'3 - q'1 - q'2 - *;
выход: 0 - * - 0 - 0 - * - *; выход: 0 - * - 0 - 0 - * - *;
то есть b= (0*00**); то есть b= (0*00**);

 

b) пусть a= (010101), тогда

для исходного автомата: для минимального автомата:
вход: 0 - 1 - 0 - 1 - 0 - 1; вход: 0 - 1 - 0 - 1 - 0 - 1;
q: q1 - q2 - q6 - q4 - q3 - q4 - q3; q: q'1 - q'1 - q'2 - q'3 - q'4 - q'3 - q'4;
выход: 0 - * - 0 - 0 - 1 - 0; выход: 0 - * - 0 - 0 - 1 - 0;
то есть b= (0*0010); то есть b= (0*0010);

 

c) пусть a= (101001), тогда

для исходного автомата: для минимального автомата:
вход: 1 - 0 - 1 - 0 - 0 - 1; вход: 1 - 0 - 1 - 0 - 0 - 1;
q: q1 - * …; q: q'1 - q'2 - q'3 - q'4 - q'3 - q'2 - q'1;
выход: * …; выход: * - 0 - 0 - 1 - 0 - *;
то есть b= (*, …); то есть b= (*0010*);

 

Так показана одинаковость работы двух автоматов.

Контрольные вопросы и задачи.

1) Минимизировать число состояний автомата, заданного таблицей:

 

текущее состояние qÎQ символы входного алфавита xÎX
x1 x2
q0 q2;1 * ; *
q1 q3;1 q2;0
q2 q1;* q3; *
q3 * ;1 * ; *
q4 q0;* * ;1

 

Начертить графы исходного и минимизированного автоматов.

2) Минимизировать число состояний автомата, заданного таблицей:

 

текущее состояние qÎQ символы входного алфавита xÎX
x1 x2
q0 q1;0 * ; *
q1 q0;0 q5;0
q2 q3;1 * ; *
q3 q4;0 q2;0
q4 * ; * q5;1
q5 q3;0 * ; *

 

Начертить графы исходного и минимизированного автоматов.

4) Минимизировать число состояний автомата, заданного таблицей:

 

текущее состояние qÎQ символы входного алфавита xÎX
x1 x2 x3
q0 *;* q0;0 q1;1
q1 *;* q1;0 q0;0
q2 q2;0 q3;0 *;*
q3 q3;1 q4;0 *;*
q4 q4;2 q2;0 *;*
q5 q0;2 *;* q0;2
q6 q1;1 *;* q1;0

 

Начертить графы исходного и минимизированного автоматов.

 


<== предыдущая страница | следующая страница ==>
Эквивалентность состояний недетерминированного автомата | Глава 2. Структурный автомат

Дата добавления: 2015-07-26; просмотров: 254; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.019 сек.