Глава 15

Конечные автоматы

[12/100%]
Показать
LaTeX
Задача 235

Торговый автомат по продаже кофе имеет щель для получения монет, кнопку, нажатие которой после уплаты достаточной суммы приводит к получению кофе, и накопитель, через который он выдаёт сдачу покупателю. Автомат принимает монеты достоинством в 1,2 и 5 рублей. Чашка кофе стоит 8 рублей. Пока полученная сумма недостаточна, горит красная лампочка. Если сумма, полученная автоматом, становится больше или равна 8 рублям, то зажигается зелёная лампочка и после нажатия кнопки автомат наливает кофе и, если требуется, выдаёт сдачу наименьшим количеством монет. Если автомат получает монету, когда горит зелёная лампочка, то он немедленно её возвращает.

Построить конечный преобразователь, моделирующий работу этого автомата. Определить входной и выходной алфавиты и построить его программу.

?
Задача 236

Электронные часы имеют табло с указанием часов, минут и секунд, а также две управляющие кнопки. Первая кнопка переводит часы из нормального режима в режим настройки времени — сначала в настройку часов, затем — минут, затем секунд, а затем возвращает в нормальный режим. Вторая кнопка в нормальном режиме ничего не меняет, а в режиме настройки её нажатие увеличивает на единицу число настраиваемых часов, минут или секунд соответственно.

Построить конечный преобразователь, который моделирует работу часов. На вход он принимает сигналы нажатия от двух кнопок, а на выходе выдаёт сигналы изменения режима и увеличения соответствующего числа. Изобразить диаграмму преобразователя.

?
Задача 237

Построить конечный преобразователь, умножающий число в двоичной записи на 3. Разряды в двоичной записи чисел идут от младших к старшим, то есть число десять выглядит так: 0101.

?
Задача 238

Построить конечный преобразователь, нацело делящий число в десятичной записи на 3. Цифры записаны в порядке убывания разрядов (в «обычном» порядке).

?
Задача 239

Доказать предложение 93 на стр. 286.

Предложение 93: для конечного преобразователя M\mathfrak {M}, его конфигурации σ\sigma и натурального числа kk существует не более одной конфигурации τ\tau такой, что σMkτ\sigma \vdash_{\mathfrak {M}}^{k} \tau.

?
Задача 240

Доказать, что приведённый на рис. 83 на стр. 307 автомат M\mathfrak {M} распознаёт язык, состоящий из всех слов, заканчивающихся на «aba».

?
Примечание.
?

Рис. 83. Диаграмма автомата M\mathfrak {M} из примера 73; начальное состояние — q0q_{0}, единственное принимающее состояние — {q0,q1,q3}\left\{ q_{0}, q_{1}, q_{3}\right\}.

Задача 241

Индукцией по длине слова ww доказать такое утверждение: (q,wx)M(p,x)(q, w x) \vdash_{\mathfrak {M}}^{*}(p, x) тогда и только тогда, когда в DM\mathfrak {D}_{\mathfrak {M}} есть путь из qq в pp, несущий ww. Вывести из него лемму 96 на стр. 293.

Лемма 96: автомат M\mathfrak {M} принимает слово ww тогда и только тогда, когда в диаграмме DM\mathfrak {D}_{\mathfrak {M}} есть несущий ww путь из начального состояния q0q_{0} в некоторое принимающее состояние qFq \in F, то есть ww переводит q0q_{0} в принимающее состояние qq.

?
Задача 242

Построить детерминированные конечные автоматы, которые распознают следующие языки в алфавите Σ={a,b}\Sigma =\left\{ a, b\right\} :

?
(а)

L={w: длина w делится на 5}L=\left\{ w:\text{ длина }w\text{ делится на 5}\right\};

(б)

L={w:w не содержит подслов «aab» и «bba»}L=\left\{ w: w\text{ не содержит подслов «aab» и «bba»}\right\};

(в)

L={w:w содержит чётное количество букв a и нечётное количество букв b}L=\left\{ w: w\text{ содержит чётное количество букв }a\text{ и нечётное количество букв }b\right\};

(г)

L={w: количество букв a в слове w делится на 3, а количество букв b — на 2}L=\left\{ w:\text{ количество букв }a\text{ в слове }w\text{ делится на 3, а количество букв }b\text{ — на 2}\right\}.

Задача 243

Выше в примере 68 на стр. 288 был построен преобразователь, выполняющий сложение двух двоичных чисел. Построить детерминированный конечный автомат, который проверяет правильность сложения. На вход поступают «трёхэтажные» символы, в которых на верхнем этаже записан разряд первого слагаемого, на среднем — второго, на нижнем — предполагаемой суммы. Автомат должен принять слово, если записанный на нижнем этаже результат сложения верен. Цифры всех чисел записаны в порядке возрастания разрядов.

?
Задача 244

Доказать лемму 97 на стр. 297.

Определение 126 (Произведение автоматов). Пусть даны два конечных автомата M1=(Q1,Σ,P1,q01,F1)\mathfrak {M}_{1}=(Q_{1}, \Sigma , P_{1}, q_{0}^{1}, F_{1}) и M2=(Q2,Σ,P2,q02,F2)\mathfrak {M}_{2}=(Q_{2}, \Sigma , P_{2}, q_{0}^{2}, F_{2}) с общим входным алфавитом Σ\Sigma. Произведением автоматов M1\mathfrak {M}_{1} и M2\mathfrak {M}_{2} называется всякий автомат N\mathfrak {N} следующего вида: N=(Q1×Q2,Σ,P,(q01,q02),F)\mathfrak {N}=(Q_{1} \times Q_{2}, \Sigma , P, (q_{0}^{1}, q_{0}^{2}), F), в котором программа PP содержит команду (q1,q2),a(p1,p2)(q_{1}, q_{2}), a \rightarrow (p_{1}, p_{2}), если q1,ap1P1q_{1}, a \rightarrow p_{1} \in P_{1} и q2,ap2P2q_{2}, a \rightarrow p_{2} \in P_{2}. (На множество принимающих состояний FF автомата N\mathfrak {N} никаких условий не накладывается, поэтому произведение не является однозначно определённой операцией — в зависимости от FF получаются разные автоматы.)

Лемма 97: если N\mathfrak {N} — произведение M1\mathfrak {M}_{1} и M2\mathfrak {M}_{2}, то для любых двух состояний (q1,q2)(q_{1}, q_{2}) и (p1,p2)(p_{1}, p_{2}) автомата N\mathfrak {N} и любого входного слова ww выполнено следующее: ww переводит (q1,q2)(q_{1}, q_{2}) в (p1,p2)(p_{1}, p_{2}) в автомате N\mathfrak {N} в том и только том случае, когда ww одновременно переводит q1q_{1} в p1p_{1} в автомате M1\mathfrak {M}_{1} и q2q_{2} в p2p_{2} в автомате M2\mathfrak {M}_{2}.

?
Задача 245

Используя процедуру детерминизации, построить детерминированные автоматы, эквивалентные следующим недетерминированным конечным автоматам N\mathfrak {N} с алфавитом Σ={a,b}\Sigma =\left\{ a, b\right\} :

?
(а)

N=({q0,q1,q2},Σ,P,q0,{q2})\mathfrak {N}=\left(\left\{ q_{0}, q_{1}, q_{2}\right\} , \Sigma , P, q_{0},\left\{ q_{2}\right\} \right) с программой P={q0,aq1;q0,εq1;q1,bq2;q1,εq2;q2,bq2}P=\left\{ q_{0}, a \rightarrow q_{1} ; q_{0}, \varepsilon \rightarrow q_{1} ; q_{1}, b \rightarrow q_{2} ; q_{1}, \varepsilon \rightarrow q_{2} ; q_{2}, b \rightarrow q_{2}\right\};

(б)

N=({q0,q1,q2},Σ,P,q0,{q2})\mathfrak {N}=\left(\left\{ q_{0}, q_{1}, q_{2}\right\} , \Sigma , P, q_{0},\left\{ q_{2}\right\} \right) с программой P={q0,aq1;q0,aq2;q1,bq2;q1,εq2;q2,bq0}P=\left\{ q_{0}, a \rightarrow q_{1} ; q_{0}, a \rightarrow q_{2} ; q_{1}, b \rightarrow q_{2} ; q_{1}, \varepsilon \rightarrow q_{2} ; q_{2}, b \rightarrow q_{0}\right\}.

Задача 246

Недетерминированный конечный автомат N=(Q,Σ,P,q0,F)\mathfrak {N}=\left(Q, \Sigma , P, q_{0}, F\right) для алфавита Σ={a,b,c}\Sigma =\left\{ a, b, c\right\} с nn состояниями Q={q0,q1,,qn1}Q=\left\{ q_{0}, q_{1}, \ldots , q_{n-1}\right\} и множеством принимающих состояний F={q0}F=\left\{ q_{0}\right\} изображён на рис. 85 на следующей странице. Пусть M=(P(Q),Σ,P,{q0},F)\mathfrak {M}=\left(\mathrm{P}(Q), \Sigma , P^{\prime },\left\{ q_{0}\right\} , F^{\prime }\right) — это автомат, полученный из N\mathfrak {N} при помощи процедуры детерминизации. Доказать, что

Рис. 85. Автомат из задачи 246.Рис. 85. Автомат из задачи 246.

?
(а)

для любого состояния RP(Q)R \in \mathrm{P}(Q) автомата M\mathfrak {M} существует слово wRw_{R}, которое переводит начальное состояние {q0}\left\{ q_{0}\right\} в RR;

(б)

для любых состояний R,SP(Q),RSR, S \in \mathrm{P}(Q), R \neq S, автомата M\mathfrak {M} существует слово wR,Sw_{R, S}, которое переводит одно из состояний RR или SS в некоторое принимающее состояние, а другое — в непринимающее;

(в)

не существует детерминированного конечного автомата, который был бы эквивалентен N\mathfrak {N} и имел бы меньше чем 2n2^{n} состояний.