Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов (текст)1.doc
Скачиваний:
15
Добавлен:
01.04.2025
Размер:
4 Мб
Скачать
☆

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

Поиск минимального недетерминированного автомата усложняется тем, что в таблицах переходов и выходов есть неопределенные позиции. Однако, анализ функций переходов :QX)Q и выходов QX)Y позволяет находить неотличимые и совместимые состояния даже при наличии неопределенных позиций, а последующее согласование совместимых классов - находить эквивалентные состояния. Пусть функции выходов и переходов недетерминированного автомата заданы таблицами 1.47 и 1.48.

Алгоритм минимизации числа состояний автомата:

шаг 1: выделить в таблице выходов множества неотличимых и отличимых пар состояний автомата:

"а) если среди множества пар состояний автомата (qi;qj)(QQ) можно найти такие qi и qj, для которых значения функций выходов (qi;xk) и (qj;xk) определены для xkX и они совпадают, то есть (qi;xk)(qj;xk), или значение одной из функций для xkX покрывает безразличную позицию другой, или значения обеих функций не определены для xkX, то пару (qi;qj) считать парой неотличимых состояний;

b) если среди множества пар (qi;qj)(QQ) можно найти такие qi и qj, для которых значения функции выходов (qi;xk) и (qj;xk) различны хотя бы для одного xkX, т. е. (qi;xk)(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 по таблице переходов парами значений ((qi;xk);(qj;xk)); если хотя бы одно из значений функции переходов (qi;xk) или (qj;xk) имеет значение "*", то паре ((qi;xk);(qj;xk)) присвоить также значение "*""; (смотри таблицу 1.49);

шаг 4: на множестве пар неотличимых состояний по таблице переходов определить пары совместимых состояний:

"если для пары неотличимых состояний (qi;qj) значения функции переходов ((qi;xk);(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 значения функций переходов (qi;xk) и (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;, гдеX={x1;x2;x3;x4}, Y={0;1}, Q={q1;q2;q3;q4;q5}, функции и заданы таблицей поведения (см. таблицу 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.

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

а) пусть = (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 - *;

то есть (011*); то есть (011*);

b) пусть =(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 - *;

то есть (*01*); то есть (*01*);

c) пусть =(x1x2x1x2), тогда

для исходного автомата: для минимального автомата:

вход: x1 - x2 - x1 - x2; вход: x1 - x2 - x1 - x2;

q: q1 - q2 - q5 - *; q: q'1 - q'2 - q'3 - *;

выход: 0 - 1 - *; выход: 0 - 1 - *;

то есть (01*); то есть (01*);

Так подтверждается эквивалентность исходного и минимального недетерминированных автоматов.

Пример 1.10. Для недетерминированного автомата M=X;Y;Q;, гдеX={0;1}, Y={0;1}, Q={q1;q2;q3;q4;q5;q6}, функции и заданы таблицей 1.63. Найти минимальный автомат.

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

а)пусть = (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 - *;

то есть (011*); то есть (011*);

b)пусть =(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 - *;

то есть (*01*); то есть (*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

0

1

(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

0

1

(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

0

1

(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

0

1

Q''1

Q''1

Q''2

Q''2

Q''3

*

Q''3

Q''1

*

Q''4

*

*

Таблица 1.69.

текущее состояние qQ

символы входного алфавита xiX

0

1

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 Граф минимального недетерминированного автомата

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

а) пусть = (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 - * - *;

то есть (0*00**);

то есть (0*00**);

b) пусть = (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;

то есть (0*0010);

то есть (0*0010);

c) пусть = (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 - *;

то есть (*, …);

то есть (*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

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