Конечные автоматы: преобразователи и распознаватели
[25/100%]Конечный преобразователь определён так: , а программа задана таблицей на рис. 23.
Найти результат работы преобразователя на слове 010100?
На каком входе выдаст результат APAPAT?
Конечный преобразователь задан следующим образом: , а программа задана таблицей на рис. 23. Этот преобразователь вычитает из входного числа в двоичной записи некоторую константу , то есть выдаёт при выходное число в двоичной записи. Чему равна эта константа ? Разряды в двоичной записи чисел идут от младших к старшим, то есть число десять выглядит так: 0101.
Автомат по размену монет имеет щель для приёма монет и накопитель для их выдачи. Автомат принимает монеты достоинством в 1,2 и 10 рублей и разменивает их монетами по 5 рублей. При этом на табло отображается уже внесённая сумма, а как только сумма оказывается достаточной, автомат сразу же выдаёт пятирублёвые монеты в нужном количестве.
Построить конечный преобразователь, моделирующий работу этого автомата. Определить входной и выходной алфавиты и построить его программу.
Торговый автомат по продаже кофе имеет щель для получения монет, кнопку, нажатие которой после уплаты достаточной суммы приводит к получению кофе, и накопитель, через который он выдаёт сдачу покупателю. Автомат принимает монеты достоинством в 1, 2 и 5 рублей. Чашка кофе стоит 8 рублей. Пока полученная сумма недостаточна, горит красная лампочка. Если сумма, полученная автоматом, становится больше или равна 8 рублям, то зажигается зелёная лампочка и после нажатия кнопки автомат наливает кофе и, если требуется, выдаёт сдачу наименьшим количеством монет. Если автомат получает монету, когда горит зелёная лампочка, то он немедленно её возвращает.
Построить конечный преобразователь, моделирующий работу этого автомата. Определить входной и выходной алфавиты и построить его программу.
Электронные часы имеют табло с указанием часов, минут и секунд, а также — две управляющие кнопки. Первая кнопка переводит часы из нормального режима в режим настройки времени — сначала в настройку часов, затем — минут, затем — секунд, а затем возвращает в нормальный режим. Вторая кнопка в нормальном режиме ничего не меняет, а в режиме настройки её нажатие увеличивает на единицу число настраиваемых часов, минут или секунд соответственно.
Построить конечный преобразователь, который моделирует работу часов. На вход он принимает сигналы нажатия от двух кнопок, а на выходе выдаёт сигналы изменения режима и увеличения соответствующего числа. Изобразить диаграмму преобразователя.
Рис. 24: Программы автоматов из задач 439, 440 и 441.
Построить конечный преобразователь, умножающий число в двоичной записи на 3. Цифры записаны в порядке возрастания разрядов (как в задаче 432 на стр. 129).
Построить конечный преобразователь, нацело делящий число в десятичной записи на 3. Цифры записаны в порядке убывания разрядов (в «обычном» порядке).
Определить, какие языки могут распознавать детерминированные конечные автоматы с алфавитом и множеством состояний .
Пусть и функция переходов конечного автомата задана таблицей, представленной на рис. 24. Определить, какие из следующих трёх слов распознаются автоматом ,
Язык состоит из всех слов, которые начинаются с буквы и содержат количество букв , кратное трём. Определить, какие из следующих трёх детерминированных конечных автоматов распознают язык , программы заданы таблицей, изображённой на рис. 24.
Составляющие конечного автомата равны , а программа задаётся таблицей на рис. 24. Доказать, что автомат распознаёт язык, состоя-
щий в точности из тех слов в алфавите , которые заканчиваются фрагментом .
Доказать, что приведённый на рис. 25 автомат, распознаёт язык, состоящий из всех слов, заканчивающихся на и не содержащих при этом .
Рис. 25: Автомат из задачи 442.
Индукцией по длине слова доказать следующее утверждение: тогда и только тогда, когда в есть путь из в , несущий .
Построить детерминированные конечные автоматы, которые распознают следующие языки в алфавите :
;
;
;
.
Построить детерминированный конечный автомат, который проверяет правильность сложения. На вход поступают «трёхэтажные» символы, в которых на верхнем этаже записан разряд первого слагаемого, на среднем — второго, на нижнем — предполагаемой суммы. Автомат должен принять слово, если записанный на нижнем этаже результат сложения верен. Цифры всех чисел записаны в порядке возрастания разрядов.
Построить детерминированные конечные автоматы, распознающие следующие языки в алфавите :
— все слова, в которых на четвёртом с конца месте стоит 1 ;
— все слова, содержащие подслова 111 и 010 и не содержащие подслово 001;
— все слова, заканчивающиеся на 10,11 или 01.
Построить детерминированный конечный автомат с алфавитом , который принимает только те слова, которые являются истинными ДНФ.
Даны два языка в алфавите :
Построить детерминированные конечные автоматы и , распознающие языки и , соответственно.
Построить произведение этих автоматов и определить множества его допускающих состояний и , для распознавания языков , соответственно.
Дан — недетерминированный конечный автомат, где .
Определить, какие из следующих трёх детерминированных автоматов эквивалентны :
.
, .
.
Используя процедуру детерминизации, построить детерминированные автоматы, эквивалентные следующим недетерминированным конечным автоматам с алфавитом :
с программой
с программой .
Пусть — это недетерминированный конечный автомат, в котором , .
Определить, какие из следующих слов распознаются автоматом .
Детерминизировать .
Определить, какой язык распознаёт .
Построить более простой вариант детерминированного автомата для распознавания того же языка.
Дан — недетерминированный конечный автомат, где , а определена в таблице на рис. 26 на противоположной странице (означает отсутствие соответствующих переходов).
Определить, какие из следующих слов распознаются автоматом .
| 0 | 1 | ||
|---|---|---|---|
| - | - | ||
| - | - | ||
| - | |||
| - | |||
| - | |||
| - | - | - | |
| : Рис. 26: Программа автомата из задачи 452. |
Доказать, что автомат распознаёт следующий язык
Построить детерминированный конечный автомат, эквивалентный .
Применить процедуру детерминизации и построить детерминированный автомат эквивалентный недетерминированному конечному автомату, изображённому на рис. 27.
Рис. 27: Автомат из задачи 453.
Язык в алфавите состоит из всех слов, в которых отсутствует хотя бы одна буква алфавита .
Построить недетерминированный автомат с состоянием, распознающий .
Доказать, что никакой детерминированный автомат с менее чем состояниями не может распознавать .
Недетерминированный конечный автомат для алфавита с состояниями и множеством принимающих состояний изображён на рис. 28.
Рис. 28: Автомат из задачи 455.
Пусть — это автомат, полученный из при помощи процедуры детерминизации. Доказать, что
для любого состояния автомата существует слово , которое переводит начальное состояние в ;
для любых состояний , автомата существует слово , которое переводит одно из состояний или в некоторое принимающее состояние, а другое — в непринимающее;
не существует детерминированного конечного автомата, который был бы эквивалентен и имел бы меньше чем состояний.