1.2

Задачи

[43/14%]
Показать
LaTeX
Задача 1.31

Для произвольной строки w=w1w2⋯wnw=w_{1} w_{2} \cdots w_{n} обращением ww, обозначаемым wRw^{\mathcal{R}}, называется строка ww, записанная в обратном порядке, wn⋯w2w1w_{n} \cdots w_{2} w_{1}. Для произвольного языка AA положим AR={wR∣w∈A}A^{\mathcal{R}}=\left\{ w^{\mathcal{R}} \mid w \in A\right\}. Покажите, что если AA регулярен, то и ARA^{\mathcal{R}} регулярен.

?
Задача 1.32

Пусть

Σ3={[000],[001],[010],…,[111]}. \Sigma _{3}=\left\{ \left[\begin{array}{l} 0 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 0 \\ 1 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 0 \end{array}\right], \ldots ,\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]\right\} .

Σ3\Sigma_{3} содержит все столбцы высотой 3, состоящие из нулей и единиц. Строка символов из Σ3\Sigma_{3} задаёт три строки нулей и единиц. Будем считать каждую строку двоичным числом и положим

B={w∈Σ3∗∣ нижняя строка w является суммой двух верхних строк}. B=\left\{ w \in \Sigma _{3}^{*} \mid \text{ нижняя строка } w \text{ является суммой двух верхних строк}\right\} .

Например,

[001][100][110]∈B, но [001][101]∉B. \left[\begin{array}{l} 0 \\ 0 \\ 1 \end{array}\right]\left[\begin{array}{l} 1 \\ 0 \\ 0 \end{array}\right]\left[\begin{array}{l} 1 \\ 1 \\ 0 \end{array}\right] \in B, \quad \text{ но } \quad \left[\begin{array}{l} 0 \\ 0 \\ 1 \end{array}\right]\left[\begin{array}{l} 1 \\ 0 \\ 1 \end{array}\right] \notin B.

Покажите, что BB регулярен. (Подсказка: работать с BRB^{\mathcal{R}} проще. Вы можете использовать результат, утверждаемый в задаче 1.31.)

?
Задача 1.33

Пусть

Σ2={[00],[01],[10],[11]}. \Sigma _{2}=\left\{ \left[\begin{array}{l} 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 1 \end{array}\right]\right\} .

Здесь Σ2\Sigma_{2} содержит все столбцы высотой два, состоящие из нулей и единиц. Строка символов из Σ2\Sigma_{2} задаёт две строки нулей и единиц. Будем считать каждую строку двоичным числом и положим

C={w∈Σ2∗∣ нижняя строка w втрое больше верхней строки}. C=\left\{ w \in \Sigma _{2}^{*} \mid \text{ нижняя строка } w \text{ втрое больше верхней строки}\right\} .

Например, [00][01][11][00]∈C\left[\begin{array}{l}0 \\ 0\end{array}\right]\left[\begin{array}{l}0 \\ 1\end{array}\right]\left[\begin{array}{l}1 \\ 1\end{array}\right]\left[\begin{array}{l}0 \\ 0\end{array}\right] \in C, а [01][01][10]∉C\left[\begin{array}{l}0 \\ 1\end{array}\right]\left[\begin{array}{l}0 \\ 1\end{array}\right]\left[\begin{array}{l}1 \\ 0\end{array}\right] \notin C. Покажите, что CC регулярен. (Вы можете использовать результат, утверждаемый в задаче 1.31.)

?
Задача 1.34

Пусть Σ2\Sigma_{2} — то же, что и в задаче 1.33. Будем считать каждую строку двоичным числом и положим

D={w∈Σ2∗∣ верхняя строка w задаёт число, большее, чем нижняя строка}. D=\left\{ w \in \Sigma _{2}^{*} \mid \text{ верхняя строка } w \text{ задаёт число, большее, чем нижняя строка}\right\} .

Например, [00][10][11][00]∈D\left[\begin{array}{l}0 \\ 0\end{array}\right]\left[\begin{array}{l}1 \\ 0\end{array}\right]\left[\begin{array}{l}1 \\ 1\end{array}\right]\left[\begin{array}{l}0 \\ 0\end{array}\right] \in D, а [00][01][11][00]∉D\left[\begin{array}{l}0 \\ 0\end{array}\right]\left[\begin{array}{l}0 \\ 1\end{array}\right]\left[\begin{array}{l}1 \\ 1\end{array}\right]\left[\begin{array}{l}0 \\ 0\end{array}\right] \notin D. Покажите, что DD регулярен.

?
Задача 1.35

Пусть Σ2\Sigma_{2} — то же, что и в задаче 1.33. Будем считать верхнюю и нижнюю строки строками из нулей и единиц, и положим

E={w∈Σ2∗∣ нижняя строка w является обращением верхней строки w}. E=\left\{ w \in \Sigma _{2}^{*} \mid \text{ нижняя строка } w \text{ является обращением верхней строки } w\right\} .

Задача 1.33: Σ2\Sigma_{2} содержит все столбцы из нулей и единиц высоты два,

Σ2={[00],[01],[10],[11]}. \Sigma _{2}=\left\{ \left[\begin{array}{l} 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 1 \end{array}\right]\right\} .

Строка символов из Σ2\Sigma_{2} задаёт две строки из нулей и единиц. Покажите, что EE не является регулярным.

?
Задача 1.36

Пусть Bn={ak∣k кратно n}B_{n}=\left\{ \mathrm{a}^{k} \mid k \text{ кратно } n\right\}. Покажите, что для каждого n≥1n \geq 1 язык BnB_{n} регулярен.

?
Задача 1.37

Пусть Cn={x∣x — двоичное число, кратное n}C_{n}=\left\{ x \mid x\text{ — двоичное число, кратное }n\right\}. Покажите, что для каждого n≥1n \geq 1 язык CnC_{n} регулярен.

?
Задача 1.38

all-NFA MM — это пятёрка (Q,Σ,δ,q0,F)\left(Q, \Sigma , \delta , q_{0}, F\right), которая допускает x∈Σ∗x \in \Sigma^{*}, если каждое возможное состояние, в котором может оказаться MM после чтения входной строки xx, является состоянием из FF. Заметим, что, в отличие от него, обычный НКА допускает строку, если хотя бы одно из этих возможных состояний является допускающим. Докажите, что all-NFA распознают класс регулярных языков.

?
Задача 1.39

Конструкция из теоремы 1.54 показывает, что каждый ОНКА (обобщённый НКА, GNFA) эквивалентен ОНКА всего с двумя состояниями. Мы можем показать, что для ДКА имеет место противоположное явление. Докажите, что для каждого k>1k>1 существует язык Ak⊆{0,1}∗A_{k} \subseteq \left\{ 0,1\right\}^{*}, который распознаётся ДКА с kk состояниями, но не распознаётся ни одним ДКА с k−1k-1 состояниями.

?
Задача 1.40

Напомним, что строка xx является префиксом строки yy, если существует строка zz такая, что xz=yx z=y, и что xx является собственным префиксом yy, если, кроме того, x≠yx \neq y. В каждом из следующих пунктов определяется операция над языком AA. Покажите, что класс регулярных языков замкнут относительно этой операции.

?
(a)

NOPREFIX⁡(A)={w∈A∣ ни один собственный префикс w не принадлежит A}\operatorname {NOPREFIX}(A)=\left\{ w \in A \mid \text{ ни один собственный префикс }w\text{ не принадлежит }A\right\}.

(b)

NOEXTEND⁡(A)={w∈A∣w не является собственным префиксом никакой строки из A}\operatorname {NOEXTEND}(A)=\left\{ w \in A \mid w\text{ не является собственным префиксом никакой строки из }A\right\}.

Задача 1.41

Для языков AA и BB назовём идеальным перемешиванием (perfect shuffle) AA и BB язык

{w∣w=a1b1⋯akbk, где a1⋯ak∈A и b1⋯bk∈B, каждое ai,bi∈Σ}. \left\{ w \mid w=a_{1} b_{1} \cdots a_{k} b_{k}, \text{ где } a_{1} \cdots a_{k} \in A \text{ и } b_{1} \cdots b_{k} \in B, \text{ каждое } a_{i}, b_{i} \in \Sigma \right\} .

Покажите, что класс регулярных языков замкнут относительно операции идеального перемешивания.

?
Задача 1.42

Для языков AA и BB назовём перемешиванием (shuffle) AA и BB язык

{w∣w=a1b1⋯akbk, где a1⋯ak∈A и b1⋯bk∈B, каждое ai,bi∈Σ∗}. \left\{ w \mid w=a_{1} b_{1} \cdots a_{k} b_{k}, \text{ где } a_{1} \cdots a_{k} \in A \text{ и } b_{1} \cdots b_{k} \in B, \text{ каждое } a_{i}, b_{i} \in \Sigma ^{*}\right\} .

Покажите, что класс регулярных языков замкнут относительно операции перемешивания.

?
Задача 1.43

Пусть AA — произвольный язык. Определим DROP-OUT⁡(A)\operatorname {DROP-OUT}(A) как язык, содержащий все строки, которые можно получить, удалив один символ из некоторой строки языка AA. Таким образом, DROP-OUT⁡(A)={xz∣xyz∈A где x,z∈Σ∗,y∈Σ}\operatorname {DROP-OUT}(A)=\left\{ x z \mid x y z \in A \text{ где } x, z \in \Sigma^{*}, y \in \Sigma \right\}. Покажите, что класс регулярных языков замкнут относительно операции DROP-OUT. Приведите как доказательство «на картинке», так и более формальное доказательство с помощью построения, как в теореме 1.47.

?
Задача 1.44

Пусть BB и CC — языки над алфавитом Σ={0,1}\Sigma =\left\{ 0,1\right\}. Определим B←1C={w∈B∣ для некоторого y∈C строки w и y содержат поровну единиц}B \stackrel{1}{\leftarrow } C=\left\{ w \in B \mid \text{ для некоторого }y \in C\text{ строки }w\text{ и }y\text{ содержат поровну единиц}\right\}. Покажите, что класс регулярных языков замкнут относительно операции ←1\stackrel{1}{\leftarrow }.

?
Задача 1.45
  • Пусть A/B={w∣wx∈A для некоторого x∈B}A / B=\left\{ w \mid w x \in A\text{ для некоторого }x \in B\right\}. Покажите, что если AA регулярен, а BB — произвольный язык, то A/BA / B регулярен.
?
Задача 1.46

Докажите, что следующие языки не являются регулярными. Вы можете использовать лемму о накачке и замкнутость класса регулярных языков относительно объединения, пересечения и дополнения.

?
(a)

{0n1m0n∣m,n≥0}\left\{ 0^{n} 1^{m} 0^{n} \mid m, n \geq 0\right\}

(b)

{0m1n∣m≠n}\left\{ 0^{m} 1^{n} \mid m \neq n\right\}

(c)

{w∣w∈{0,1}∗ не является палиндромом}\left\{ w \mid w \in \left\{ 0,1\right\}^{*} \text{ не является палиндромом}\right\}[^fn1]

(d)
  • {wtw∣w,t∈{0,1}+}\left\{ w t w \mid w, t \in \left\{ 0,1\right\}^{+}\right\}
Задача 1.47

Пусть Σ={1,#}\Sigma =\left\{ 1, \# \right\} и Y={w∣w=x1#x2#⋯#xk при k≥0, каждое xi∈1∗, и xi≠xj при i≠j}Y=\left\{ w \mid w=x_{1} \# x_{2} \# \cdots \# x_{k} \text{ при } k \geq 0, \text{ каждое } x_{i} \in 1^{*}, \text{ и } x_{i} \neq x_{j} \text{ при } i \neq j\right\}. Докажите, что YY не является регулярным.

?
Задача 1.48

Пусть Σ={0,1}\Sigma =\left\{ 0,1\right\} и D={w∣w содержит поровну вхождений подстрок 01 и 10}D=\left\{ w \mid w\text{ содержит поровну вхождений подстрок 01 и 10}\right\}. Так, 101∈D101 \in D, поскольку 101 содержит одно вхождение 01 и одно вхождение 10, а 1010∉D1010 \notin D, поскольку 1010 содержит два вхождения 10 и одно вхождение 01. Покажите, что DD — регулярный язык.

?
Задача 1.49
?
(a)

Пусть B={1ky∣y∈{0,1}∗, и y содержит не менее k единиц, при k≥1}B=\left\{ 1^{k} y \mid y \in \left\{ 0,1\right\}^{*}, \text{ и } y \text{ содержит не менее } k \text{ единиц, при } k \geq 1\right\}. Покажите, что BB — регулярный язык.

(b)

Пусть C={1ky∣y∈{0,1}∗, и y содержит не более k единиц, при k≥1}C=\left\{ 1^{k} y \mid y \in \left\{ 0,1\right\}^{*}, \text{ и } y \text{ содержит не более } k \text{ единиц, при } k \geq 1\right\}. Покажите, что CC не является регулярным языком.

Задача 1.50

Изучите неформальное определение автомата-преобразователя (FST), данное в упражнении 1.24. Докажите, что ни один FST не может выдавать wRw^{\mathcal{R}} для каждой входной строки ww, если входной и выходной алфавиты равны {0,1}\left\{ 0,1\right\}.

Упражнение 1.24: Автомат-преобразователь с конечным числом состояний (FST) — это тип детерминированного конечного автомата, выход которого является строкой, а не просто допуском или отклонением. Каждый переход FST помечен двумя символами: один обозначает входной символ для этого перехода, а другой — выходной символ, причём эти два символа записываются через слэш, /, разделяющий их. Некоторые переходы могут иметь несколько пар вход-выход. Когда FST вычисляет на входной строке ww, он берёт входные символы w1⋯wnw_{1} \cdots w_{n} по одному и, начиная с начального состояния, следует переходам, сопоставляя входные метки с последовательностью символов w1⋯wn=ww_{1} \cdots w_{n}=w. Каждый раз, проходя по переходу, он выводит соответствующий выходной символ.

?
Задача 1.51

Пусть xx и yy — строки, а LL — произвольный язык. Будем говорить, что xx и yy различимы языком L\boldsymbol {L}, если существует строка zz, такая что ровно одна из строк xzx z и yzy z принадлежит LL; в противном случае, то есть если для каждой строки zz выполнено xz∈Lx z \in L, как только yz∈Ly z \in L, будем говорить, что xx и yy неразличимы языком L\boldsymbol {L}. Если xx и yy неразличимы языком LL, будем писать x≡Lyx \equiv_{L} y. Покажите, что ≡L\equiv_{L} является отношением эквивалентности.

?
Задача 1.52

Теорема Майхилла-Нероуда. Обратитесь к задаче 1.51. Пусть LL — язык, а XX — множество строк. Будем говорить, что XX попарно различимо языком L\boldsymbol {L}, если каждые две различные строки из XX различимы языком LL. Назовём индексом языка L\boldsymbol {L} максимальное число элементов в множестве, попарно различимом языком LL. Индекс языка LL может быть конечным или бесконечным.

?
(a)

Покажите, что если LL распознаётся ДКА с kk состояниями, то индекс LL не превышает kk.

(b)

Покажите, что если индекс LL равен конечному числу kk, то LL распознаётся ДКА с kk состояниями.

(c)

Сделайте вывод, что LL регулярен тогда и только тогда, когда его индекс конечен. Более того, его индекс равен числу состояний наименьшего ДКА, распознающего его.

Задача 1.53

Пусть Σ={0,1,+,=}\Sigma =\left\{ 0,1,+,=\right\} и

ADD={x=y+z∣x,y,z — двоичные целые числа, и x является суммой y и z}. A D D=\left\{ x=y+z \mid x, y, z \text{ — двоичные целые числа, и } x \text{ является суммой } y \text{ и } z\right\} .

Покажите, что ADDA D D не является регулярным.

?
Задача 1.54

Рассмотрим язык F={ai bjck∣i,j,k≥0, и если i=1, то j=k}F=\left\{ \mathrm{a}^{i} \mathrm{~ b}^{j} \mathrm{c}^{k} \mid i, j, k \geq 0, \text{ и если } i=1, \text{ то } j=k\right\}.

?
(a)

Покажите, что FF не является регулярным.

(b)

Покажите, что FF ведёт себя как регулярный язык в лемме о накачке. Иными словами, укажите длину накачки pp и покажите, что FF удовлетворяет трём условиям леммы о накачке для этого значения pp.

(c)

Объясните, почему пункты (a) и (b) не противоречат лемме о накачке.

Задача 1.55

Лемма о накачке утверждает, что у каждого регулярного языка есть длина накачки pp, такая что любую строку языка длины не менее pp можно накачать. Если pp — длина накачки для языка AA, то и любая длина p′≥pp^{\prime } \geq p также является длиной накачки. Минимальной длиной накачки для AA называется наименьшее pp, являющееся длиной накачки для AA. Например, если A=01∗A=01^{*}, минимальная длина накачки равна 2. Причина в том, что строка s=0s=0 принадлежит AA и имеет длину 1, но её нельзя накачать; однако любая строка из AA длины 2 или более содержит 1 и потому может быть накачана, если разбить её так, что x=0,y=1x=0, y=1, а zz — остаток. Для каждого из следующих языков укажите минимальную длину накачки и обоснуйте свой ответ.

?
(a)

0001*

(b)

0∗1∗0^{*} 1^{*}

(c)

001∪0∗1∗001 \cup 0^{*} 1^{*}

(d)

0∗1+0+1∗∪10∗10^{*} 1^{+} 0^{+} 1^{*} \cup 10^{*} 1

(e)

(01)*

(f)

ε\varepsilon

(g)

1∗01∗01∗1^{*} 01^{*} 01^{*}

(h)

10(11∗0)∗010\left(11^{*} 0\right)^{*} 0

(i)

1011

(j)

Σ∗\Sigma^{*}

Задача 1.56
  • Если AA — множество натуральных чисел, а kk — натуральное число, большее 1, положим
Bk(A)={w∣w — представление в системе счисления с основанием k некоторого числа из A}. B_{k}(A)=\left\{ w \mid w \text{ — представление в системе счисления с основанием } k \text{ некоторого числа из } A\right\} .

Здесь мы не допускаем ведущих нулей в представлении числа. Например, B2({3,5})={11,101}B_{2}(\left\{ 3,5\right\} )=\left\{ 11,101\right\} и B3({3,5})={10,12}B_{3}(\left\{ 3,5\right\} )=\left\{ 10,12\right\}. Приведите пример множества AA, для которого B2(A)B_{2}(A) регулярен, а B3(A)B_{3}(A) не регулярен. Докажите, что ваш пример работает.

?
Задача 1.57
  • Если AA — произвольный язык, пусть A12−A_{\frac{1}{2}-} — множество всех первых половин строк из AA, то есть
A12−={x∣ для некоторого y,∣x∣=∣y∣ и xy∈A}. A_{\frac{1}{2}-}=\left\{ x \mid \text{ для некоторого } y,\left|x\right|=\left|y\right| \text{ и } x y \in A\right\} .

Покажите, что если AA регулярен, то и A12−A_{\frac{1}{2}-} регулярен.

?
Задача 1.58
  • Если AA — произвольный язык, пусть A13−13A_{\frac{1}{3}-\frac{1}{3}} — множество всех строк из AA с удалённой средней третью, то есть
A13−13={xz∣ для некоторых y,∣x∣=∣y∣=∣z∣ и xyz∈A}. A_{\frac{1}{3}-\frac{1}{3}}=\left\{ x z \mid \text{ для некоторых } y,\left|x\right|=\left|y\right|=\left|z\right| \text{ и } x y z \in A\right\} .

Покажите, что если AA регулярен, то A13−13A_{\frac{1}{3}-\frac{1}{3}} не обязательно регулярен.

?
Задача 1.59
  • Пусть M=(Q,Σ,δ,q0,F)M=\left(Q, \Sigma , \delta , q_{0}, F\right) — ДКА, а hh — некоторое состояние MM, называемое его «домом». Синхронизирующей последовательностью для MM и hh называется строка s∈Σ∗s \in \Sigma^{*}, для которой δ(q,s)=h\delta (q, s)=h при каждом q∈Qq \in Q. (Здесь мы расширили δ\delta на строки, так что δ(q,s)\delta (q, s) равно состоянию, в котором окажется MM, если начать в состоянии qq и прочитать вход ss.) Будем говорить, что MM синхронизируем, если для него существует синхронизирующая последовательность для некоторого состояния hh. Докажите, что если MM — синхронизируемый ДКА с kk состояниями, то у него есть синхронизирующая последовательность длины не более k3k^{3}. Можете ли вы улучшить эту оценку?
?
Задача 1.60

Пусть Σ={a,b}\Sigma =\left\{ \mathrm{a}, \mathrm{b}\right\}. Для каждого k≥1k \geq 1 пусть CkC_{k} — язык, состоящий из всех строк, содержащих a ровно на kk-м месте от правого конца. Таким образом, Ck=Σ∗aΣk−1C_{k}=\Sigma^{*} \mathrm{a} \Sigma^{k-1}. Опишите НКА с k+1k+1 состояниями, распознающий CkC_{k}, как в виде диаграммы состояний, так и в виде формального описания.

?
Задача 1.61

Рассмотрим языки CkC_{k}, определённые в задаче 1.60. Докажите, что при каждом kk ни один ДКА не может распознавать CkC_{k}, имея менее 2k2^{k} состояний.

Задача 1.60: Пусть Σ={a,b}\Sigma =\left\{ \mathrm{a}, \mathrm{b}\right\}. Для каждого k≥1k \geq 1 пусть CkC_{k} — язык, состоящий из всех строк, содержащих символ a ровно на kk-м месте от правого конца. Таким образом, Ck=Σ∗aΣk−1C_{k}=\Sigma^{*} \mathrm{a} \Sigma^{k-1}.

?
Задача 1.62

Пусть Σ={a,b}\Sigma =\left\{ \mathrm{a}, \mathrm{b}\right\}. Для каждого k≥1k \geq 1 пусть DkD_{k} — язык, состоящий из всех строк, содержащих хотя бы одну a среди последних kk символов. Таким образом, Dk=Σ∗a(Σ∪ε)k−1D_{k}=\Sigma^{*} \mathrm{a}(\Sigma \cup \varepsilon )^{k-1}. Опишите ДКА не более чем с k+1k+1 состояниями, распознающий DkD_{k}, как в виде диаграммы состояний, так и в виде формального описания.

?
Задача 1.63
?
(a)

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

(b)

Пусть BB и DD — два языка. Будем писать B⋐DB \Subset D, если B⊆DB \subseteq D и DD содержит бесконечно много строк, не принадлежащих BB. Покажите, что если BB и DD — два регулярных языка, для которых B∈DB \in D, то можно найти регулярный язык CC, для которого B⋐C⋐DB \Subset C \Subset D.

Задача 1.64

Пусть NN — НКА с kk состояниями, распознающий некоторый язык AA.

?
(a)

Покажите, что если AA непуст, то AA содержит некоторую строку длины не более kk.

(b)

Приведя пример, покажите, что пункт (a), вообще говоря, неверен, если заменить оба вхождения AA на Aˉ\bar{A}.

(c)

Покажите, что если Aˉ\bar{A} непусто, то Aˉ\bar{A} содержит некоторую строку длины не более 2k2^{k}.

(d)

Покажите, что оценка из пункта (c) почти точна; то есть для каждого kk предъявите НКА, распознающий язык AkA_{k}, для которого Ak‾\overline{A_{k}} непусто, а кратчайшие строки в Ak‾\overline{A_{k}} имеют длину, экспоненциальную по kk. Постарайтесь подойти к оценке из пункта (c) как можно ближе.

Задача 1.65
  • Докажите, что для каждого n>0n>0 существует язык BnB_{n}, для которого
?
(a)

BnB_{n} распознаётся НКА с nn состояниями, и

(b)

если Bn=A1∪⋯∪AkB_{n}=A_{1} \cup \cdots \cup A_{k} для регулярных языков AiA_{i}, то хотя бы для одного из AiA_{i} требуется ДКА с экспоненциально большим числом состояний.

Задача 1.66

Гомоморфизмом называется функция f:Σ⟶Γ∗f: \Sigma \longrightarrow \Gamma^{*}, отображающая один алфавит в строки над другим алфавитом. Мы можем распространить ff на строки, определив f(w)=f(w1)f(w2)⋯f(wn)f(w)=f\left(w_{1}\right) f\left(w_{2}\right) \cdots f\left(w_{n}\right), где w=w1w2⋯wnw=w_{1} w_{2} \cdots w_{n} и каждое wi∈Σw_{i} \in \Sigma. Далее мы распространим ff на языки, определив f(A)={f(w)∣w∈A}f(A)=\left\{ f(w) \mid w \in A\right\} для произвольного языка AA.

?
(a)

Приведя формальное построение, покажите, что класс регулярных языков замкнут относительно гомоморфизма. Иными словами, по ДКА MM, распознающему BB, и гомоморфизму ff постройте конечный автомат M′M^{\prime }, распознающий f(B)f(B). Рассмотрим построенную вами машину M′M^{\prime }. Является ли она ДКА в любом случае?

(b)

Приведя пример, покажите, что класс нерегулярных языков не замкнут относительно гомоморфизма.

Задача 1.67
  • Назовём вращательным замыканием языка AA множество RC(A)={yx∣xy∈A}R C(A)=\left\{ y x \mid x y \in A\right\}.
?
(a)

Покажите, что для любого языка AA выполнено RC(A)=RC(RC(A))R C(A)=R C(R C(A)).

(b)

Покажите, что класс регулярных языков замкнут относительно операции вращательного замыкания.

Задача 1.68
  • В традиционном способе снятия колоды игральных карт колода произвольно делится на две части, которые меняются местами перед тем, как колода складывается заново. В более сложном варианте снятия, называемом снятием Скарна, колода делится на три части, и при сборке средняя часть кладётся первой. Возьмём снятие Скарна за основу для операции над языками. Для языка AA положим CUT(A)={yxz∣xyz∈A}C U T(A)=\left\{ y x z \mid x y z \in A\right\}.
?
(a)

Предъявите язык BB, для которого CUT⁡(B)≠CUT⁡(CUT⁡(B))\operatorname {CUT}(B) \neq \operatorname {CUT}(\operatorname {CUT}(B)).

(b)

Покажите, что класс регулярных языков замкнут относительно операции CUT.

Задача 1.69

Пусть Σ={0,1}\Sigma =\left\{ 0,1\right\}. Пусть WWk={ww∣w∈Σ∗, и w имеет длину k}W W_{k}=\left\{ w w \mid w \in \Sigma^{*}, \text{ и } w \text{ имеет длину } k\right\}.

?
(a)

Покажите, что при каждом kk ни один ДКА не может распознавать WWkW W_{k}, имея менее 2k2^{k} состояний.

(b)

Опишите значительно меньший НКА для WW‾k\overline{W W}_{k} — дополнения WWkW W_{k}.

Задача 1.70

Определим операцию avoids («избегает») для языков AA и BB как AA avoids B={w∣w∈A, и w не содержит в качестве подстроки ни одной строки из B}B=\left\{ w \mid w \in A\text{, и }w\text{ не содержит в качестве подстроки ни одной строки из }B\right\}. Докажите, что класс регулярных языков замкнут относительно операции avoids.

?
Задача 1.71

Пусть Σ={0,1}\Sigma =\left\{ 0,1\right\}.

?
(a)

Пусть A={0ku0k∣k≥1 и u∈Σ∗}A=\left\{ 0^{k} u 0^{k} \mid k \geq 1 \text{ и } u \in \Sigma^{*}\right\}. Покажите, что AA регулярен.

(b)

Пусть B={0k1u0k∣k≥1 и u∈Σ∗}B=\left\{ 0^{k} 1 u 0^{k} \mid k \geq 1 \text{ и } u \in \Sigma^{*}\right\}. Покажите, что BB не является регулярным.

Задача 1.72

Пусть M1M_{1} и M2M_{2} — ДКА, имеющие k1k_{1} и k2k_{2} состояний соответственно, и пусть U=L(M1)∪L(M2)U=L\left(M_{1}\right) \cup L\left(M_{2}\right).

?
(a)

Покажите, что если U≠∅U \neq \emptyset, то UU содержит некоторую строку ss, для которой ∣s∣<max⁡(k1,k2)\left|s\right|<\max \left(k_{1}, k_{2}\right).

(b)

Покажите, что если U≠Σ∗U \neq \Sigma^{*}, то найдётся строка ss, не принадлежащая UU, для которой ∣s∣<k1k2\left|s\right|<k_{1} k_{2}.

Задача 1.73

Пусть Σ={0,1,#}\Sigma =\left\{ 0,1, \# \right\}. Пусть C={x#xR#x∣x∈{0,1}∗}C=\left\{ x \# x^{\mathcal{R}} \# x \mid x \in \left\{ 0,1\right\}^{*}\right\}. Покажите, что Cˉ\bar{C} является КС-языком.

?