Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория вычислительных процессов. Лабораторный практикум. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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), в котором автомат будет находиться в следующий мо-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]