Конечные автоматы
[12/100%]Торговый автомат по продаже кофе имеет щель для получения монет, кнопку, нажатие которой после уплаты достаточной суммы приводит к получению кофе, и накопитель, через который он выдаёт сдачу покупателю. Автомат принимает монеты достоинством в 1,2 и 5 рублей. Чашка кофе стоит 8 рублей. Пока полученная сумма недостаточна, горит красная лампочка. Если сумма, полученная автоматом, становится больше или равна 8 рублям, то зажигается зелёная лампочка и после нажатия кнопки автомат наливает кофе и, если требуется, выдаёт сдачу наименьшим количеством монет. Если автомат получает монету, когда горит зелёная лампочка, то он немедленно её возвращает.
Построить конечный преобразователь, моделирующий работу этого автомата. Определить входной и выходной алфавиты и построить его программу.
Электронные часы имеют табло с указанием часов, минут и секунд, а также две управляющие кнопки. Первая кнопка переводит часы из нормального режима в режим настройки времени — сначала в настройку часов, затем — минут, затем секунд, а затем возвращает в нормальный режим. Вторая кнопка в нормальном режиме ничего не меняет, а в режиме настройки её нажатие увеличивает на единицу число настраиваемых часов, минут или секунд соответственно.
Построить конечный преобразователь, который моделирует работу часов. На вход он принимает сигналы нажатия от двух кнопок, а на выходе выдаёт сигналы изменения режима и увеличения соответствующего числа. Изобразить диаграмму преобразователя.
Построить конечный преобразователь, умножающий число в двоичной записи на 3. Разряды в двоичной записи чисел идут от младших к старшим, то есть число десять выглядит так: 0101.
Построить конечный преобразователь, нацело делящий число в десятичной записи на 3. Цифры записаны в порядке убывания разрядов (в «обычном» порядке).
Доказать предложение 93 на стр. 286.
Предложение 93: для конечного преобразователя , его конфигурации и натурального числа существует не более одной конфигурации такой, что .
Доказать, что приведённый на рис. 83 на стр. 307 автомат распознаёт язык, состоящий из всех слов, заканчивающихся на «aba».
Рис. 83. Диаграмма автомата из примера 73; начальное состояние — , единственное принимающее состояние — .
Индукцией по длине слова доказать такое утверждение: тогда и только тогда, когда в есть путь из в , несущий . Вывести из него лемму 96 на стр. 293.
Лемма 96: автомат принимает слово тогда и только тогда, когда в диаграмме есть несущий путь из начального состояния в некоторое принимающее состояние , то есть переводит в принимающее состояние .
Построить детерминированные конечные автоматы, которые распознают следующие языки в алфавите :
;
;
;
.
Выше в примере 68 на стр. 288 был построен преобразователь, выполняющий сложение двух двоичных чисел. Построить детерминированный конечный автомат, который проверяет правильность сложения. На вход поступают «трёхэтажные» символы, в которых на верхнем этаже записан разряд первого слагаемого, на среднем — второго, на нижнем — предполагаемой суммы. Автомат должен принять слово, если записанный на нижнем этаже результат сложения верен. Цифры всех чисел записаны в порядке возрастания разрядов.
Доказать лемму 97 на стр. 297.
Определение 126 (Произведение автоматов). Пусть даны два конечных автомата и с общим входным алфавитом . Произведением автоматов и называется всякий автомат следующего вида: , в котором программа содержит команду , если и . (На множество принимающих состояний автомата никаких условий не накладывается, поэтому произведение не является однозначно определённой операцией — в зависимости от получаются разные автоматы.)
Лемма 97: если — произведение и , то для любых двух состояний и автомата и любого входного слова выполнено следующее: переводит в в автомате в том и только том случае, когда одновременно переводит в в автомате и в в автомате .
Используя процедуру детерминизации, построить детерминированные автоматы, эквивалентные следующим недетерминированным конечным автоматам с алфавитом :
с программой ;
с программой .
Недетерминированный конечный автомат для алфавита с состояниями и множеством принимающих состояний изображён на рис. 85 на следующей странице. Пусть — это автомат, полученный из при помощи процедуры детерминизации. Доказать, что
Рис. 85. Автомат из задачи 246.
для любого состояния автомата существует слово , которое переводит начальное состояние в ;
для любых состояний , автомата существует слово , которое переводит одно из состояний или в некоторое принимающее состояние, а другое — в непринимающее;
не существует детерминированного конечного автомата, который был бы эквивалентен и имел бы меньше чем состояний.