![](/user_photo/2706_HbeT2.jpg)
- •Оглавление
- •Глава 1. Алгебраические системы 17
- •Глава 2. Элементы комбинаторики 88
- •Глава 3. Основы теории графов 101
- •Глава 4. Основы математической логики 169
- •4.1.1.4. Эквивалентные преобразования формул 179
- •4.1.4. Выполнить подстановку: 247
- •Глава 5. Основы теории алгоритмов 252
- •Глава 6. Конечные автоматы 289
- •Введение
- •Глава 1. Алгебраические системы
- •1.1 Множества
- •1.1.1. Четкие множества
- •1.1.2. Нечеткие множества
- •1.2. Соответствия, отображения и функции
- •1.2.1. Четкие отображения и функции
- •1.2.2. Нечеткие отображения
- •1.3. Отношение
- •1.3.1. Четкие отношения
- •1.3.2. Нечеткое отношение
- •1.4. Элементы общей алгебры
- •1.5. Булева алгебра
- •1.5.1. Булевы операции
- •1.5.2. Законы булевой алгебры
- •1.5.3. Формула булевой функции
- •1.5.4. Описание булевой функции
- •1.5.5. Суперпозиция булевых функций
- •1.5.6. Свойства булевых функций
- •1.5.6.1. Самодвойственные булевы функции
- •1.5.6.2. Монотонные булевы функции
- •1.5.6.3. Линейные булевы функции
- •1.5.6.4. Функции, сохраняющие “0”
- •1.5.6.5. Функции, сохраняющие “1”
- •1.5.6.6. Функционально полные системы
- •1.5.7. Разложение булевых функции
- •1.5.7.1. Днф булевой функции
- •1.5.7.2. Кнф булевой функции
- •Алгоритм преобразования формулы к скнф:
- •1.5.8. Минимизация булевых функций.
- •1.5.8.1.Минимизация днф булевой функции
- •1.5.8.2. Минимизация кнф булевой функции
- •1.6. Алгебра четких множеств
- •1.6.1. Операции над множествами
- •1.6.2. Законы алгебры множеств
- •1.6.3. Эквивалентные преобразования формул
- •1.6.4. Композиция отображений и отношений
- •1.6.5. Поиск неизвестного множества
- •1.7. Алгебра нечетких множеств
- •1.7.1. Операции над нечеткими множествами
- •1.7.2. Композиция нечетких отображений
- •1.7.3. Композиция нечетких отношений
- •1.7.4. Свойства нечетких отношений
- •Вопросы и задачи
- •Глава 2. Элементы комбинаторики
- •2.1. Размещение из n элементов по k
- •2.2. Перестановка элементов
- •2.3 Сочетание из n элементов по k
- •2.4. Разбиение множества
- •2. 5 Правила комбинаторики
- •Вопросы и задачи
- •Глава 3. Основы теории графов
- •3.1. Граф и его характеристики
- •3.2. Описание графа
- •3. 3. Числа графа
- •3.4. Операции над графами
- •3.4.1. Унарные операции
- •3.4.1.1 Поиск дополнительного графа
- •3.4.1.2. Введение и удаление вершин графа
- •3.4.1.3. Стягивание вершин графа
- •3.4.1.4. Введение и удаление ребер графа
- •3.4.1.5. Поиск плотности и неплотности графа
- •3.4.1.6. Поиск числа компонент связности графа
- •3.4.1.7. Поиск устойчивости графа
- •3.4.1.8. Поиск цикломатического числа графа
- •3.4.1.9. Поиск хроматического числа графа
- •3.4.2. Бинарные операции
- •3.4.2.1. Объединение графов
- •3.4.2.2. Пересечение графов
- •3.4.2.3. Композиция графов
- •3.4.2.4. Соединение графов
- •3.4.2.5. Прямое произведение графов
- •3.4.2.6. Изоморфизм графов
- •3.5. Некоторые алгоритмы на графах
- •3.5.1. Построение покрывающего остова
- •3.5.2. Построение остова минимального веса
- •3.5.3. Поиск кратчайших путей в сети.
- •3.5.4. Поиск максимального потока в сети
- •3.5.5. Метод критического пути в управлении
- •3.6. Нечеткие графы
- •Вопросы и задачи
- •Глава 4. Основы математической логики
- •4.1. Логика высказываний
- •4.1.1. Алгебра высказываний
- •4.1.1.1. Логические операции
- •4.1.1.2. Правила записи сложных формул.
- •4.1.1.3. Законы алгебры высказываний
- •4.1.1.4. Эквивалентные преобразования формул
- •4.1.1.5. Нормальные формы формул
- •4.1.2. Исчисление высказываний
- •4.1.2.1. Интерпретация формул
- •4.1.2.2. Аксиомы и правила введения и удаления логических связок
- •4.1.2.3. Метод дедуктивного вывода
- •4.1.2.4. Принцип резолюции
- •4. 2. Логика предикатов
- •4.2.1. Алгебра предикатов
- •4.2.1.1. Законы алгебры предикатов
- •4.2.1.2. Предваренная нормальная форма формулы
- •4.2.1.3 Сколемовская стандартная форма формулы
- •4. 2. 2. Исчисление предикатов
- •4.2.2.1. Правила подстановки
- •4.2.2.2. Правила введения и удаления кванторов
- •4.2.2.3. Правила заключения
- •4.2.2.4. Метод дедуктивного вывода
- •4.2.2.5. Принцип резолюции
- •4.2.2.6. Логическое программирование
- •4.3. Логика реляционная
- •4.3.1 Реляционная алгебра
- •4.3.1.1. Унарные операции
- •4.3.1.2. Бинарные операции
- •4.3.1.3. Правила реляционной алгебры
- •4.3.2. Реляционное исчисление
- •4.3.3. Языки реляционной логики
- •4.4. Нечеткая логика
- •4.4.1. Нечеткое исчисление
- •4.4.2. Экспертные системы
- •Вопросы и задачи
- •Глава 5. Основы теории алгоритмов
- •5.1. Рекурсивные функции
- •5.1.1. Базовые функции
- •5.1.2. Элементарные операции
- •5.2. Машина Тьюринга
- •5.2.1. Описание машины Тьюринга
- •5.2.2. Примеры машин Тьюринга
- •5.2.3. Композиция машин Тьюринга
- •5.3. Нормальные алгоритмы Маркова
- •5.4 Сложность вычислений
- •Вопросы и задачи
- •Глава 6. Конечные автоматы
- •6.1. Абстрактный автомат
- •6.1.1. Типы конечных автоматов
- •6.1.2. Описание автоматов
- •6.1.3. Автоматное моделирование алгоритмов
- •6.1.3.1. Автомат Мили - модель управляющего автомата
- •6.1.3.2. Автомат Мура - модель управляющего автомата
- •6.1.3.3. Микропрограммный автомат
- •6.1.4. Эквивалентность автоматов
- •6.1.5. Эквивалентность внутренних состояний автомата
- •6.1.5.1. Детерминированный автомат
- •6.1.5.2. Недетерминированный автомат
- •6.2. Структурный автомат
- •6.2.1. Произведение автоматов
- •6.2.1.1. Последовательное соединение автоматов
- •6.2.1.2. Параллельное соединение автоматов
- •Обратная связь автоматов
- •6.2.3. Сумма автоматов
- •6.2.4. Структурный автомат и кодирование
- •6.3. Логическое проектирование автоматов
- •6.3.1. Кодирование алфавитов автомата
- •6.3.2. Автоматы без “памяти”.
- •6.3.2.1. Формирование оператора
- •6.3.2.2. Формирование системы операторов
- •Логическая схема комбинационного автомата
- •6.3.3. Автоматы с “памятью”
- •6.3.3.1. Формирование оператора
- •6.3.3.2. Формирование оператора
- •.3.3.3. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
6.1.1. Типы конечных автоматов
По способу формирования функций выхода выделяют автоматы Мили и Мура.
В автомате Мили функция выходов определяет значение выходного символа по классической схеме абстрактного автомата. Математическая модель, схема рекуррентных соотношений и функциональная схема автомата Мили не отличаются от одноименных модели, соотношений и схемы абстрактного автомата, т.е.
В автомате Мура функция определяет значение выходного символа только по одному аргументу - состоянию автомата. Символ y[] в выходном канале существует пока автомат находится в состоянии q[].
Математическая модель, схема рекуррентных соотношений и функциональная схема автомата Мура имеют вид:
Объединение автоматов Мили и Мура представляет С-автомат:
Математические модели, опирающиеся только на два носителя алгебры, представляют особые классы автоматов.
Если X=, то математическая модель и система рекуррентных соотношений абстрактного автомата имеют вид:
Особенностью такого автомата является генерация последовательности символов выходного слова только в зависимости от одного аргумента - состояний автомата. Такие автоматы называют порождающими или автономными. С помощью такого автомата генерируется последовательность управляющих команд.
Если Y=, то математическая модель и система рекуррентных соотношений имеют вид:
q[+1] =(q[];x[]);
Особенностью такого автомата является распознавание в последовательности изменений аргументов функции переходов
(qi[]; xi[]) и перевод автомата в заключительное состояние qk.
С помощью такого автомата обнаруживают возмущения со стороны внешней среды или распознают последовательность входных символов. Поэтому такие автоматы называют распознающими.
Если Q=, то математическая модель и система рекуррентных соотношений имеют вид:
y[] = (x[]).
Особенностью функционирования такого автомата является отсутствие "памяти", т.е. на каждый символ входного алфавита автомат генерирует символ выходного алфавита без учета состояния автомата. Такие автоматы чаще всего называют комбинационными автоматами.
6.1.2. Описание автоматов
Автоматы удобно описывать таблицами, отражающими функции:
: (QX)Q (см. таблицу 6.1),
: (QX)Y (см. таблицу 6.2).
. таблица 6.1 таблица 6.2
Детерминированный автомат : (QX)Q |
|
Детерминированный автомат : (QX)Y |
||||||||||
qiQ |
xiX |
|
qiQ |
xiX |
||||||||
x1 |
x2 |
… |
xn |
|
|
x1 |
x2 |
… |
xn |
|||
q1 |
q |
q |
|
|
|
q1 |
y |
y |
… |
y |
||
q2 |
q |
q |
|
|
|
q2 |
y |
y |
… |
y |
||
… |
… |
… |
|
|
|
… |
… |
… |
… |
… |
||
qm |
q |
q |
… |
q |
|
qm |
y |
y |
… |
y |
Обычно эти таблицы совмещают в одну, которая раскрывает оператор поведения : (QX)(QY). В позициях таблицы 6.3 записывают пары (q[+1]; y[]) для автомата Мили, а позициях таблицы 6.4 только символы состояния.для каждого входного символа
Таблица 6.3. |
|
Таблица 6.4. |
|
|||||||||||
Детерминированный автомат , (QX)(QY) |
|
Детерминированный автомат : (QX)Q |
||||||||||||
qQ |
xiX |
|
qQ |
xiX |
yY |
|||||||||
x1 |
x2 |
… |
xn |
|
|
x1 |
x2 |
… |
xn |
|
||||
q1 |
q; y |
q; y |
… |
q; y |
|
q1 |
q |
q |
… |
q |
y1 |
|||
q2 |
q; y |
q; y |
… |
q; y |
|
q2 |
q |
q |
… |
q |
y2 |
|||
… |
… |
… |
… |
… |
|
… |
… |
… |
… |
… |
… |
|||
qm |
q; y |
q; y |
… |
q; y |
|
qm |
q |
q |
… |
q |
ym |
Таблицы абстрактного автомата совпадают с таблицами автомата Мили. Поэтому таблица 6.3 описывает поведение автомата Мили. Таблица автомата Мура (см. таблицу 6.4) несколько отличается от таблицы автомата Мили, так как : QY. Значение выходного символа приписывают, как метку, состоянию автомата.
Описание С-автомата есть объединение таблиц 6.3 и 6.4. Так как в таблицах 6.3 и 6.4 определены все позиции, то такими таблицами дано описание детерминированных автоматов.
В практике часто функции переходов и/или выходов не определены для некоторых символов входного алфавита. В этом случае говорят, что автомат недетерминированный или частично определенный. При описании таких автоматов неопределенные позиции таблиц помечаются символом "". Например, в таблицах 6.5, 6.6, 6.7 и 6.8 приведено описание недетерминированных автоматов.
Таблица 6.5. |
|
Таблица 6.6. |
|
||||||||||
Недетерминированный автомат : (QX)Q |
|
Недетерминированный автомат : (QX)Y |
|||||||||||
qiQ |
xiX |
|
qiQ |
xiX |
|||||||||
x1 |
x2 |
… |
xn |
|
|
x1 |
x2 |
… |
xn |
||||
q1 |
q |
* |
… |
q |
|
q1 |
y |
* |
… |
y |
|||
q2 |
q |
q |
… |
* |
|
q2 |
* |
y |
… |
y |
|||
… |
… |
… |
… |
… |
|
… |
… |
… |
… |
… |
|||
qm |
* |
q |
… |
q |
|
qm |
* |
y |
… |
* |
Таблица 6.7. |
|
Таблица 6.8. |
|||||||||||||
Недетерминированный автомат Мили , : (QX) (QY) |
|
Недетерминированный автомат Мура : (QX)Q; : QY |
|
||||||||||||
qiQ |
x iX |
|
qiQ |
x iX |
yiY |
|
|||||||||
x1 |
x2 |
… |
xn |
|
|
x1 |
x2 |
… |
xn |
|
|
||||
q1 |
q; y |
*; * |
… |
q; y |
|
q1 |
q |
* |
… |
q |
y1 |
|
|||
q2 |
q; * |
q; y |
… |
*; y |
|
q2 |
q |
q |
… |
* |
* |
|
|||
… |
… |
… |
… |
… |
|
… |
… |
… |
… |
… |
… |
|
|||
qm |
*; * |
q; y |
… |
q; * |
|
qm |
* |
q |
… |
q |
ym |
|
Поведение автомата удобно анализировать с помощью графов, вершинами которого являются элементы множества qQ. Тогда любая вершина-исток есть образ текущего состояния q[], а любая вершина-сток - образ очередного состояния q[+1]. Дуги отображают переход автомата из одного состояния в другое (q[];q[+1]) под воздействием x[]X. Для описания автомата с помощью графов удобно воспользоваться таблицами соединений состояний автомата. Строки и столбцы такой таблицы представляют символы qQ. Следовательно, число строк и столбцов таблицы равно m. Строки этой таблицы характеризуют текущее состояние, т.е. q[], а столбцы - очередное, т.е. q[+1].
Позиции таблицы заполняют значениями пары (x[]/y[]) для соответствующего перехода автомата из текущего состояния в очередное.
Таблицей 6.9 дано описание соединений состояний автомата Мили, а таблицей 6.10 - автомата Мура. Для автомата Мили на дугах графа указывают пару (входной символ / выходной символ). Для автомата Мура - только входной символ, так как выходной символ y, приписывают к вершине графа.
Таблица 6.9. |
|
Таблица 6.10. |
||||||||||
Соединение состояний автомата Мили : (QX) QY) |
|
Соединение состояний автомата Мура (QX) Q; QY |
||||||||||
qQ |
очередное состояние qQ |
|
qQ |
очередное qQ |
выход yY |
|||||||
q1 |
q2 |
… |
qm |
|
q1 |
q2 |
… |
qm |
|
|||
q1 |
x/y |
x/y |
… |
x/y |
|
q1 |
x |
x |
… |
x |
y1 |
|
q2 |
x/y |
x/y |
… |
x/y |
|
q2 |
x |
x |
… |
x |
y2 |
|
… |
… |
… |
… |
… |
|
… |
… |
… |
… |
… |
… |
|
qm |
x/y |
x/y |
… |
x/y |
|
qm |
x |
x |
… |
x |
ym |
При начертании графа детерминированного автомата следует соблюдать следующие условия:
для каждого символа xX есть дуга, исходящая из qQ;
каждый символ xX у каждой вершины-истока принадлежит только одной дуге;
если между двумя вершинами существует несколько дуг, что возможно при различных символах на входе, то есть xi xj, то эти дуги могут быть заменены одной дугой с указанием дизъюнктивной связи этих переходов (например, если yuyv, то на дуге следует указать (xi /yuxj /yv);.если yu=yv=y, то - (xixj) /y).
Пример: дана таблица поведения детерминированного автомата Мили.
Составить таблицу соединения состояний автомата и начертить граф. Найти генерируемые автоматом слова для различных начальных состояний, если на входе автомата задано слово =(x1x2x3x4x4x3x2x1).
, : (QX) (QY) |
||||
qQ |
xX |
|||
x1 |
x2 |
x3 |
x4 |
|
q1 |
q2; y1 |
q3; y1 |
q4; y1 |
q1; y3 |
q2 |
q3; y3 |
q4; y1 |
q1; y2 |
q2; y2 |
q3 |
q2; y1 |
q3; y2 |
q1; y1 |
q2; y3 |
q4 |
q4; y2 |
q1; y1 |
q2; y2 |
q1; y1 |
Таблица соединений автомата Мили |
||||
qQ |
очередное состояние qQ |
|||
q1 |
q2 |
q3 |
q4 |
|
q1 |
x4/ y3 |
x1/ y1 |
x2/ y1 |
x3/ y1 |
q2 |
x3/ y2 |
x4/ y2 |
x1/ y3 |
x2/ y1 |
q3 |
x3/y1 |
(x1/y1)(x4/y3) |
x2/y2 |
— |
q4 |
(x2x4)/y1 |
x3/y2 |
— |
x1/y2 |
В позициях таблицы значения (x/y), соответствуют переходу из состояния q[] в состояние q[+1].
Граф детерминированного автомата Мили.
Следует обратить внимание, что переход из состояния q3 в q2 обусловлен двумя входными символами x1 и x4, а для каждой пары (q3; x1) и (q3; x4) автомат генерирует в выходном канале соответствующий символ y1 или y3. Поэтому на дуге (q3; q2) следует указать (x1/y1x4/y3). Переход из состояния q4 в q1 обусловлен также двумя входными символами x2 и x4, но автомат генерирует только один символ y1. Поэтому на дуге (q4;q1) следует указать (x2x4) /y1.
Для поиска слов при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата:
пусть q1=q0, тогда
[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]
q[1]: q1[1] q2[2] q4[3] q2[4] q2[5] q2[6] q1[7] q3[8] q2[9]
[]: y1[1] y1[2] y2[3] y2[4] y2[5] y2[6] y1[7] y1[8],
то есть =(y1y1y2y2y2y2y1y1);
пусть q2=q0, тогда
[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]
q[1]: q2[1] q3[2] q3[3] q1[4] q1[5] q1[6] q4[7] q1[8] q2[9]
[]: y3[1] y2[2] y1[3] y3[4] y3[5] y1[6] y1[7] y1[8],
то есть =(y3y2y1y3y3y1y1y1);
Таким образом при различных начальных состояниях реакция автомата на одинаковые слова различна. Это подтверждает необходимость указания начального состояния qi=q0.
Пример: дана таблица поведения детерминированного автомата Мура. Составить таблицу соединения состояний автомата и начертить граф. Найти генерируемые автоматом слова для различных начальных состояний, если на входе автомата задано слово =(x1x2x3x4x4x3x2x1).
: (QX)Q; QY |
|||||
qQ |
xX |
выход yY |
|||
x1 |
x2 |
x3 |
x4 |
||
q1 |
q2 |
q3 |
q4 |
q1 |
y1 |
q2 |
q3 |
q4 |
q1 |
q2 |
y3 |
q3 |
q2 |
q3 |
q1 |
q2 |
y2 |
q4 |
q4 |
q1 |
q2 |
q1 |
y1 |
Переход из состояния q3 в q2 обусловлен двумя входными символами x1 и x4. Поэтому на дуге (q3;q2) указать (x1x4). Переход из состояния q4 в q1 также обусловлен двумя символами x2 и x4. Поэтому на дуге (q4;q1) указать (x2x4).
Таблица соединений автомата Мура
qQ |
очередное состояние qQ |
выход yY |
|||
q1 |
q2 |
q3 |
q4 |
||
q1 |
x4 |
x1 |
x2 |
x3 |
y1 |
q2 |
x3 |
x4 |
x1 |
x2 |
y3 |
q3 |
x3 |
(x1x4) |
x2 |
— |
y2 |
q4 |
(x2x4) |
x3 |
— |
x1 |
y1 |
Для поиска слов при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата для каждого очередного символа слова :
пусть q1=q0, тогда
[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]
q[1]: q1[1] q2[2] q4[3] q2[4] q2[5] q2[6] q1[7] q3[8] q2[9]
[]: y1[1] y3[2] y1[3] y3[4] y3[5] y3[6] y1[7] y2[8],
то есть (y1y3y1y3y3y3y1y2);
пусть q2=q0, тогда
[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]
q[1]: q2[1] q3[2] q3[3] q1[4] q1[5] q1[6] q4[7] q1[8] q2[9]
[]: y3[1] y2[2] y2[3] y1[4] y1[5] y1[6] y1[7] y1[8],
то есть (y3y2y2y1y1y1y1y1).
Этот пример также подтверждает необходимость указания начального состояния q=q0.
Граф детерминированного автомата Мура.
Пример: дана таблица поведения недетерминированного автомата Мили. Составить таблицу соединений автомата и начертить граф. Найти генерируемые автоматом слова для различных начальных состояний.
, : (QX) (QY) |
|
||||
qQ |
xX |
||||
x1 |
x2 |
x3 |
x4 |
||
q1 |
q2; y1 |
q3; * |
q4; y1 |
q1; y3 |
|
q2 |
*; y3 |
q4; y1 |
q1; y2 |
q2; * |
|
q3 |
q2; y1 |
*; * |
q1; y1 |
q2; y3 |
|
q4 |
q4; y2 |
q1; y1 |
q2; y2 |
*; y1 |
Таблица cоединений недетерминированного автомата Мили
qQ |
очередное состояние qQ |
|||
q1 |
q2 |
q3 |
q4 |
|
q1 |
x4/y3 |
x1/y1 |
x2/* |
x3/y1 |
q2 |
x3/y2 |
x4/* |
— |
x2/y1 |
q3 |
x3/y1 |
(x1/y1)(x4/y3) |
— |
— |
q4 |
x2/y1 |
x3/y2 |
— |
x1/y2 |
Граф недетерминированного автомата Мили.
Не определены переходы из состояния q2 для символа x1, из состояния q3 для x2 и из состояния q4 для x4 и значения символов на выходе для (q1, x2), для (q2, x4) и для (q3, x2).
Для поиска слов , генерируемых недетерминированным автоматом Мура также необходимо проследить последовательность изменения состояний автомата для каждого очередного символа слова.
пусть q1=q0 и = (x1x2x3x3x3x2x4x4), тогда
[]: x1[1] x2[2] x3[3] x3[4] x3[5] x2[6] x4[7] x4[8]
q[1]: q1[1] q2[2] q4[3] q2[4] q1[5] q4[6] q1[7] q1[8] q1[9]
[]: y1[1] y1[2] y2[3] y2[4] y1[5] y1[6] y3[7] y3[8],
то есть =(y1y1y2y2y1y1y3y3);
пусть q1=q0 и = (x2x2x3x4x4x3x2x1), тогда
[]: x2[1] x2[2] x3[3] …
q[1]: q1[1] q3[2] * …
[]: *[1] *[2] …,
то есть =(* * … и автомат "зависает" на третьем символе слова ;
пусть q1=q0 и = (x1x4x3x2x3x2x4x4), тогда
[]: x1[1] x4[2] x3[3] x2[4] x3[5] x2[6] x4[7] x4[8]
q[1]: q1[1] q2[2] q2[3] q1[4] q3[5] q1[6] q3[7] q2[8] q2[9]
[]: y1[1] *[2] y2[3] * [4] y1[5] * [6] y3[7] * [8],
то есть =(y1*y2*y1*y3*) содержит четыре символа "*";
Пример: дана таблица поведения недетерминированного автомата Мура. Составить таблицу соединений автомата и начертить граф. Найти генерируемые автоматом слова для различных начальных состояний.
: (QX)Q; QY |
|||||
qQ |
xX |
yY |
|||
x1 |
x2 |
x3 |
xn |
||
q1 |
q2 |
q3 |
q4 |
q1 |
y1 |
q2 |
* |
q4 |
q1 |
q2 |
* |
q3 |
q2 |
* |
q1 |
q2 |
y2 |
qm |
q4 |
q1 |
q2 |
* |
y1 |
-
Таблица соединений автомата
qQ
qQ
yY
q1
q2
q3
q4
q1
x4
x1
x2
x3
y1
q2
x3
x4
*
x2
*
q3
x3
(x1x4)
*
—
y2
q4
x2
x3
—
x1
y1
Следует отметить, что не определены переходы из состояния q2 для входного символа x1, из состояния q3 для входного символа x2 и из состояния q4 для входного символа x4. Не определено также значение символа на выходе для состояния q2.
Для поиска слов при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата для каждого очередного символа слова :
пусть q1=q0 и =(x2x3x2x3x3x1x2x4), тогда
[]: x2[1] x3[2] x2[3] x3[4] x3[5] x1[6] x2[7] x4[8]
q[1]: q1[1] q3[2] q1[3] q3[4] q1[5] q4[6] q4[7] q1[8] q1[9]
[]: y1[1] y2[2] y1[3] y2[4] y1[5] y1[6] y1[7] y1[8],
то есть =(y1y2y1y2y1y1y1y1);
пусть q2=q0 и =(x2x3x1x4x4x3x2x1), тогда
[]: x2[1] x3[2] x1[3] x4[4] …
q[1]: q2[1] q4[2] q2[3] [4] …
[]: 1] y1[2] [3] …,
то есть =( y1 …) и автомат "зависает" на четвертом символе.
Граф недетерминированного автомата Мура