- •Введение
- •Глава 1.Абстрактный автомат.
- •1.1.Модель абстрактного автомата
- •1.2.Типы конечных автоматов
- •1.3.Описание автомата
- •Контрольные вопросы и задачи
- •1.4.Эквивалентность автоматов.
- •1.5.Эквивалентность состояний детерминированного автомата.
- •1.6.Алгоритм минимизации детерминированного автомата.
- •1.7.Эквивалентность состояний недетерминированного автомата.
- •1.8.Алгоритм минимизации недетерминированного автомата.
- •Глава 2.Структурный автомат.
- •2.1.Произведение автоматов.
- •2.1.1.Последовательное соединение двух автоматов
- •2.1.2.Параллельное соединение двух автоматов
- •2.1.3.Обратная связь двух автоматов
- •2.2.Сумма автоматов
- •2.3.Автоматное моделирование алгоритмов.
- •2.3.1.Автомат Мили - модель управляющего автомата.
- •2.3.2. Автомат Мура - модель управляющего автомата.
- •2.4.Микропрограммный автомат.
- •2.5.Магазинный автомат.
- •Глава 3.Логическое проектирование автоматов
- •3.1.Логическое проектирование структурного автомата.
- •3.2.Кодирование алфавитов.
- •3.3.Выбор комбинационных автоматов.
- •3.4.Выбор элементов памяти - двоичной задержки.
- •3.5.Формирование функции выхода.
- •3.6.Формирование функции переходов.
- •3.7.Логическая схема автомата.
- •Индивидуальные задания
- •Предметный указатель
- •Литература
- •Глава 1. Абстрактный автомат. 4
- •1.1. Модель абстрактного автомата 4
- •1.2. Типы конечных автоматов 8
- •1.3. Описание автомата 12
- •Глава 2. Структурный автомат. 72
- •2.2. Сумма автоматов 86
- •2.3. Автоматное моделирование алгоритмов. 90
- •Глава 3. Логическое проектирование автоматов 116
- •3.7. Логическая схема автомата. 126
1.8.Алгоритм минимизации недетерминированного автомата.
Поиск минимального недетерминированного автомата усложняется тем, что в таблицах переходов и выходов есть неопределенные позиции. Однако, анализ функций переходов :QX)Q и выходов QX)Y позволяет находить неотличимые и совместимые состояния даже при наличии неопределенных позиций, а последующее согласование совместимых классов - находить эквивалентные состояния. Пусть функции выходов и переходов недетерминированного автомата заданы таблицами 1.47 и 1.48.
Алгоритм минимизации числа состояний автомата:
шаг 1: выделить в таблице выходов множества неотличимых и отличимых пар состояний автомата:
"а) если среди множества пар состояний автомата (qi;qj)(QQ) можно найти такие qi и qj, для которых значения функций выходов (qi;xk) и (qj;xk) определены для xkX и они совпадают, то есть (qi;xk)(qj;xk), или значение одной из функций для xkX покрывает безразличную позицию другой, или значения обеих функций не определены для xkX, то пару (qi;qj) считать парой неотличимых состояний;
b) если среди множества пар (qi;qj)(QQ) можно найти такие qi и qj, для которых значения функции выходов (qi;xk) и (qj;xk) различны хотя бы для одного xkX, т. е. (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'1Q'2Q'3=Q, Q'1Q'2=, Q'1Q'3=,но Q'2Q'3;
шаг 3: составить таблицу переходов для пар неотличимых состояний:
"левый столбец таблицы представить парами неотличимых состояний, которые сгруппированы по классам неотличимости; позиции таблицы заполнить для каждой неотличимой пары (qi;qj) и для каждого символа xkX по таблице переходов парами значений ((qi;xk);(qj;xk)); если хотя бы одно из значений функции переходов (qi;xk) или (qj;xk) имеет значение "*", то паре ((qi;xk);(qj;xk)) присвоить также значение "*""; (смотри таблицу 1.49);
шаг 4: на множестве пар неотличимых состояний по таблице переходов определить пары совместимых состояний:
"если для пары неотличимых состояний (qi;qj) значения функции переходов ((qi;xk);(qj;xk)) для xkX принадлежат также множеству пар неотличимых состояний (левому столбцу таблицы), то состояния 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'2Q'4Q'5) = {qp;qr;qs;qt;qu;qv}.
шаг 7: на множестве классов совместимых состояний, выбранных на шаге 6, найти согласованные состояния:
"если для любого класса наименьшего множества совместимых состояний и любых его элементов qi и qj значения функций переходов (qi;xk) и (qj;xk) принадлежат одному совместимому классу для всех символов xkX, то такие классы являются согласованными и следует перейти к шагу 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.
текущее состояние qQ |
символы входного алфавита xX |
|||||||
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.
текущее состояние qQ |
очередное состояние qQ |
|||||||||
q1 |
q2 |
q3 |
q4 |
q5 |
||||||
q1 |
— |
(x1/0x4/ *) |
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) |
символы входного алфавита xX |
|||
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) |
символы входного алфавита xX |
|||
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) |
символы входного алфавита xX |
|||
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) |
символы входного алфавита xX |
|||
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 |
символы входного алфавита xX |
|||
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 |
символы входного алфавита xX |
|||
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 |
символы входного алфавита xX |
|||
x1 |
x2 |
x3 |
x4 |
|
Q''1 |
Q''3 |
* |
Q''3 |
* |
Q''3 |
Q''3 |
Q''42 |
* |
* |
Q''42 |
* |
* |
Q''1 |
* |
Таблица 1.62.
текущее состояние qQ |
символы входного алфавита xiX |
|||
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.
текущее состояние qQ |
символы входного алфавита xiX |
|
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.
текущее состояние qQ |
очередное состояние qQ |
|||||
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'1Q'2=Q, Q'1Q'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) |
символы входного алфавита xX |
|
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) |
символы входного алфавита xX |
|
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) |
символы входного алфавита xX |
|
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 |
символы входного алфавита xX |
|
0 |
1 |
|
Q''1 |
Q''1 |
Q''2 |
Q''2 |
Q''3 |
* |
Q''3 |
Q''1 |
* |
Q''4 |
* |
* |
Таблица 1.69.
текущее состояние qQ |
символы входного алфавита xiX |
|
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) Минимизировать число состояний автомата, заданного таблицей:
текущее состояние qQ |
символы входного алфавита xX |
|
x1 |
x2 |
|
q0 |
q2;1 |
* ; * |
q1 |
q3;1 |
q2;0 |
q2 |
q1;* |
q3; * |
q3 |
* ;1 |
* ; * |
q4 |
q0;* |
* ;1 |
Начертить графы исходного и минимизированного автоматов.
2) Минимизировать число состояний автомата, заданного таблицей:
текущее состояние qQ |
символы входного алфавита xX |
|
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) Минимизировать число состояний автомата, заданного таблицей:
текущее состояние qQ |
символы входного алфавита xX |
||
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 |
Начертить графы исходного и минимизированного автоматов.
