Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория вычислительных процессов. Лабораторный практикум. Учебное пособие
.pdf
31
i
K
2
1 1
b1
b2
b3
b4
b5 a b5
b1
b3
b5
b3 b b2
b4
b5
b2
b1
эквивалентных состояний оставим один столбец. Если класс
состоит
из заключительных состояний, то состояние bi — заключительное.
Начальным состоянием будет состояние, соответствующее классу эквивалентных состояний, содержащему начальное состояние исходного автомата. Получим таблицу автомата (табл. 4), в котором нет ни одной пары
эквивалентных состояний.
Таблица 4
Таблица автомата
Если в этом автомате нет состояний, недостижимых из начального
(это действительно так, легко проверяется выполнением алгоритма поиска в графе), то он минимальный. Иначе, для получения минимального
автомата нужно из таблицы исключить столбцы, соответствующие состояниям, недостижимым из начального.
Контрольные вопросы
1. Дайте определение одноленточного конечного автомата. Чем он
отличается от машины Тьюринга?
2. Назначение одноленточного автомата.
3. Дайте определение полностью и частично определенного однолен-
точного конечного автомата, детерминированного и недетерминированног одноленточного конечного автомата.
4. Постройте машину Тьюринга, функционально эквивалентную за-
данному одноленточному конечному автомату.
5. Докажите разрешимость проблемы пустоты одноленточного ко-
нечного автомата.
6. Докажите разрешимость проблемы эквивалентности одноленточ-
ных конечных автоматов.
7. Сведите проблему эквивалентности автоматов к проблеме эквива-
лентности состояний.
8. Докажите, что алгоритм определения эквивалентности состояний
всегда останавливается.
9. Докажите, что алгоритм нахождения классов эквивалентных состо-
яний всегда останавливается.
10. Предложите метод экспериментальной проверки эквивалентности
автоматов (Дано: два автомата с одинаковым алфавитом как «черные
ящики» и количество состояний каждого автомата).

32
Л а б о р а т о р н а я р а б о т а № 3
Автоматы Мили и Мура
Цель работы: изучить модель конечных автоматов Мили и Мура, уста-
новить связь между этими типами автоматов; исследовать
эквивалентность состояний и автоматов; научиться минимизировать автоматы.
З а д а н и е
1. Изучить назначение автоматов Мили и Мура, способы задания, ал-
горитм функционирования.
2. Изучить алгоритмы трансформации автоматов, проверки эквива-
лентности и минимизации.
3. Заданы автомат Мили S
и автомат Мура S2 (см. «Варианты
1
заданий»). Определить состояния an и am автоматов S1 и S2, которые
являются k – 1 эквивалентными и не являются k эквивалентными;
определить входные слова длины k, которые различают состояния an и am
и слова, которые не различают состояния an и am.
4. Определить состояния an и am автоматов S1 и S2, которые являются
эквивалентными; определить входные слова, которые переведут автомат
S1(S2) из состояний an и am в эквивалентные состояния, в одинаковые
состояния, в неэквивалентные состояния.
5. Получить автоматы S3 и S4 путем минимизации автоматов S1 и S2.
Определить входное слово, при обработке которого сработают все
переходы автомата S3 (S4).
6. Трансформировать автомат Мили S
в автомат Мура S5. Определить
1
реакции автоматов S1 и S5 на одинаковые входные слова.
7. Трансформировать автомат Мура S
в автомат Мили S6. Определить
2
реакции автоматов S2 и S6 на одинаковые входные слова.
8. Минимизировать автоматы S5 и S6 . Сделать выводы.
9. Написать программу, минимизирующую автоматы Мили и Мура.
Использовать ее при минимизации автоматов.

Автомат S
a1
a2
a3
a4
a5
a6
a7
z1
a7
a3
a1
a6
a1
a5
a2
z2
a4
a5
a5
a4
a3
a3
a4
a1
a2
a3
a4
a5
a6
a7
z1
w1
w2
w1
w1
w1
w2
w1
z2
w2
w2
w2
w2
w2
w2
w2
w1
w2
w1
w1
w1
w2 a1
a2
a3
a4
a5
a6
z1
a4
a5
a1
a2
a1
a5
z2
a4
a3
a5
a4
a3
a3
a1
a2
a3
a4
a5
a6
a7
z1
a3
a6
a4
a7
a4
a5
a1
z2
a5
a2
a5
a2
a3
a3
a2
a1
a2
a3
a4
a5
a6
a7
z1
w2
w1
w1
w1
w1
w2
w1
z2
w2
w2
w2
w2
w2
w2
w2
w1
w2
w1
w2
w1
a1
a2
a3
a4
a5
z1
a2
a2
a2
a2
a4
z2
a3
a5
a1
a3
a1
Автомат S
33
Варианты заданий
Вариант 1.
1
Таблица переходов
Таблица выходов
2
Таблица переходов и выходов
Вариант 2.
Автомат S
1
Таблица переходов
Таблица выходов
Автомат S
2
Таблица переходов и выходов

34
a1
a2
a3
a4
a5
a6
a7
z1
a2
a5
a6
a6
a1
a1
a5
z2
a6
a7
a4
a4
a3
a3
a4
a1
a2
a3
a4
a5
a6
a7
z1
w1
w2
w2
w1
w1
w1
w1
z2
w2
w2
w1
w2
w2
w2
w2
w1
w2
w1
w2
w1
w1 a1
a2
a3
a4
a5
a6
z1
a2
a3
a5
a6
a4
a1
z2
a4
a1
a1
a5
a2
a5
a1
a2
a3
a4
a5
z1
a2
a2
a2
a2
a4
z2
a3
a5
a1
a3
a1
a1
a2
a3
a4
a5
z1
w1
w2
w1
w2
w1
z2
w2
w1
w1
w1
w1
w1
w2
w1
w1
w1
w2
w1 a1
a2
a3
a4
a5
a6
a7
z1
a7
a3
a1
a6
a1
a5
a2
z2
a4
a5
a5
a4
a3
a3
a4
Вариант 3.
Автомат S
Автомат S
Автомат S
1
Таблица переходов
Таблица выходов
2
Таблица переходов и выходов
Вариант 4.
1
Таблица переходов
Таблица выходов
Автомат S
2
Таблица переходов и выходов

35
a1
a2
a3
a4
a5
a6
z1
a2
a1
a5
a3
a3
a1
z2
a4
a4
a6
a5
a2
a5
a1
a2
a3
a4
a5
a6
z1
w1
w2
w1
w2
w2
w1
z2
w2
w1
w2
w1
w1
w1
w1
w2
w2
w2
w2
w1 a1
a2
a3
a4
a5
a6
z1
a2
a2
a2
a2
a2
a5
z2
a6
a3
a1
a6
a4
a1
a1
a2
a3
a4
a5
a6
z1
a5
a5
a5
a5
a2
a2
z2
a3
a4
a6
a6
a1
a3
a1
a2
a3
a4
a5
a6
z1
w2
w2
w1
w2
w2
w1
z2
w1
w2
w1
w1
w2
w1
w1
w2
w2
w1
w2
w2
a1
a2
a3
a4
a5
a6
z1
a6
a1
a4
a5
a4
a1
z2
a3
a3
a6
a6
a2
a3
Вариант 5.
Автомат S
Автомат S
Автомат S
1
Таблица переходов
Таблица выходов
2
Таблица переходов и выходов
Вариант 6.
1
Таблица переходов
Таблица выходов
Автомат S
2
Таблица переходов и выходов

Автомат S
a1
a2
a3
a4
a5
a6
z1
a3
a1
a2
a5
a3
a1
z2
a2
a4
a5
a6
a2
a6
a1
a2
a3
a4
a5
a6
z1
w1
w2
w2
w2
w1
w2
z2
w2
w1
w2
w1
w2
w1
w1
w2
w2
w1
w2
w2 a1
a2
a3
a4
a5
a6
z1
a3
a4
a6
a6
a1
a3
z2
a5
a5
a5
a5
a2
a2
a1
a2
a3
a4
a5
a6
z1
a3
a3
a3
a6
a3
a2
z2
a2
a1
a5
a1
a4
a5
a1
a2
a3
a4
a5
a6
z1
w2
w1
w2
w1
w2
w2
z2
w1
w2
w1
w2
w1
w1
w1
w2
w1
w2
w1
w2 a1
a2
a3
a4
a5
a6
z1
a2
a4
a5
a6
a2
a6
z2
a3
a1
a2
a5
a3
a1
Автомат S
Автомат S
36
Вариант 7.
1
Таблица переходов
Таблица выходов
2
Таблица переходов и выходов
Вариант 8.
1
Таблица переходов
Таблица выходов
Автомат S
2
Таблица переходов и выходов

Автомат S
a1
a2
a3
a4
a5
a6
z1
a2
a2
a2
a1
a2
a2
z2
a5
a5
a6
a3
a4
a3
a1
a2
a3
a4
a5
a6
z1
w2
w2
w2
w1
w2
w1
z2
w1
w1
w1
w2
w1
w2
w1
w2
w1
w2
w1
w1 a1
a2
a3
a4
a5
a6
z1
a2
a1
a5
a1
a4
a5
z2
a3
a3
a3
a6
a3
a2
a1
a2
a3
a4
a5
a6
z1
a6
a6
a6
a1
a6
a6
z2
a3
a5
a4
a2
a2
a3
a1
a2
a3
a4
a5
a6
z1
w2
w2
w2
w1
w1
w2
z2
w1
w1
w1
w2
w2
w1
w1
w1
w1
w2
w1
w2 a1
a2
a3
a4
a5
a6
z1
a5
a5
a6
a3
a4
a3
z2
a2
a2
a2
a1
a2
a2
Автомат S
Автомат S
37
Вариант 9.
1
Таблица переходов
Таблица выходов
2
Таблица переходов и выходов
Вариант 10.
1
Таблица переходов
Таблица выходов
Автомат S
2
Таблица переходов и выходов

38
Т е о р е т и ч е с к и е с в е д е н и я
Автоматы Мили и Мура можно рассматривать как абстрактные машины, вычисляющие сохраняющие длину одноместные словарные функции.
Значением словарной функции f(), сохраняющей длину, является слово
, имеющее такую же длину, как аргумент .
Автомат Мили. Основные понятия
Конечный автомат Мили задается набором A = {Z, W, A, , , а1, #}
и правилом функционирования, общим для всех таких автоматов. В
наборе А
Z — входной алфавит, из которого формируются слова (аргументы
функции), считываемые автоматом;
W — выходной алфавит, из которого формируются слова (значения
функции), выдаваемые автоматом;
A — конечное множество состояний;
δ: A×Z → A — функция переходов автомата, которая паре (состояние,
символ входного алфавита) ставит в соответствие новое состояние (состояние перехода);
: A×Z → W — функция выходов автомата, которая паре (состояние,
символ входного алфавита) ставит в соответствие символ выходного алфавита;
а
— выделенное начальное состояние;
1
# — «пустой» символ.
Неформально автомат Мили можно рассматривать как машину, име-
ющую входную и выходную ленту. На входную ленту записывается
входное слово (аргумент функции), которое последовательно обрабатывается автоматом, а на выходной ленте в процессе работы автомата формируется выходное слово (значение функции). В начальный момент автомат находится в начальном состоянии a1 и считывает первый символ zf входного слова. В этот же момент в первую ячейку выходной
ленты записывается символ wg, определяемый функцией выходов wg
= (a1, zf) и автомат переходит в новое состояние ah, определяемое функцией переходов ah = δ(a1, zf), в котором он будет находиться в следующий
момент времени. На каждом шаге работы автомата головки перемещаются на одну ячейку вправо. Автомат останавливается, когда головка на
входной ленте прочитает «пустой» символ. После остановки автомата на
выходной ленте будет записано слово , являющееся значением словарной
функции.
Автомат Мили может быть задан табличным способом двумя табли-
цами — таблицей переходов и таблицей выходов. В этих таблицах строки
соответствуют символам входного алфавита, а столбцы — состояниям. В

39
a1
a2
a3
a4
a5
z1
a2
a2
a2
a2
a4
z2
a3
a5
a1
a3
a1
a1
a2
a3
a4
a5
z1
w1
w2
w1
w2
w1
z2
w2
w1
w1
w1
w1
Входное слово
z1
z1
z2
z1
z1 # Состояния
a1
a2
a2
a5
a4
a2
Выходное слово
w1
w2
w1
w1
w2
#
таблице переходов в клетке на пересечении строки zf и столбца as записывается состояние ah = δ(as, zf), а в таблице выходов в клетке на пересечении строки zf и столбца as записывается символ wg = (as, zf).
Пример автомата Мили представлен в таблице 5.
Таблица 5
Таблица переходов
Таблица выходов
Автомат Мили называется полностью определенным, если полностью
определенными являются функции переходов и выходов, т.е. если для
каждой пары (состояние, входной символ) определено состояние перехода и выходной символ. В противном случае автомат будет частичным. В
таблицах полностью определенного автомата заполнены все клетки. Полностью определенный автомат может обработать любое входное слово,
составленное из символов входного алфавита, т.е. он задает полностью
определенную словарную функцию.
Процесс обработки входного слова z1z1z2z1z1 автоматом (табл. 5) представлен в таблице 6.
Таблица 6
Процесс обработки входного слова
Выходное слово , получаемое автоматом в процессе обработки входного слова , будем называть реакцией автомата на входное слово .
Так, выходное слово w1w2w1w1w2 является реакцией автомата (табл. 5) на
входное слово z1z1z2z1z1.
Автомат Мили можно задать графом, в котором вершины соответствуют состояниям. Из вершины, соответствующей состоянию as идет
дуга в вершину, соответствующую состоянию ah, если ah = δ(as, zf). Начало дуги отмечается символом zf, а конец — символом wg, если wg =
(as, zf). Граф автомата (табл. 5) представлен на рис.8.

40
a1
a3
a5
a2
a4
z1
z2
w1
w2
z1
z1
z1
z1
z2
z2
z2
z2
w1
w1
w1
w1
w1
w2
w2
w1
Рис. 8. Граф автомата Мили
Автомат Мура. Основные понятия
Конечный автомат Мура задается набором A = {Z, W, A, , , а1, #} и
правилом функционирования, общим для всех таких автоматов. В наборе
А
Z — входной алфавит, из которого формируются слова (аргументы
функции), считываемые автоматом;
W — выходной алфавит, из которого формируются слова (значения
функции), выдаваемые автоматом;
A — конечное множество состояний;
δ: A×Z → A — функция переходов автомата, которая паре (состояние,
символ входного алфавита) ставит в соответствие новое состояние (состояние перехода);
: A → W — функция выходов автомата, которая состоянию ставит в
соответствие символ выходного алфавита;
а
— выделенное начальное состояние;
1
# — «пустой» символ.
Автомат Мура отличается от автомата Мили только функцией выходов. Как и автомат Мили, автомат Мура обрабатывает слово, записанное
на входной ленте и формирует слово на выходной ленте. В начальный
момент автомат находится в начальном состоянии a1 и записывает в
первую ячейку выходной ленты символ wg, определяемый функцией выходов wg =(a1). В этот же момент он считывает первый символ zf входного слова и переходит в новое состояние ah, определяемое функцией переходов ah = δ(a1, zf), в котором автомат будет находиться в следующий мо-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
