Глава 2

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

[102/59%]
Показать
LaTeX
§
Пример 2.1

Рассмотрим ДКА M=(Q,Σ,δ,q0,F)M=\left(Q, \Sigma , \delta , q_{0}, F\right), где Q={q0,q1,q2q3},Σ={0,1},F={q1,q2}Q=\left\{ q_{0}, q_{1}, q_{2}\text{, }q_{3}\right\} , \Sigma =\left\{ 0,1\right\} , F=\left\{ q_{1}, q_{2}\right\}, а δ\delta — функция, заданная следующей таблицей:

δ\delta01
q0q_{0}q1q_{1}q3q_{3}
q1q_{1}q2q_{2}q3q_{3}
q2q_{2}q2q_{2}q2q_{2}
q3q_{3}q3q_{3}q3q_{3}

Начертите диаграмму переходов MM.

?
Пример 2.2

Рассмотрим ДКА MM, заданный на рисунке 2.2. Определите, принимает ли MM строки 000 и 010.

?
Пример 2.3

Какой язык L(M)L(M) принимается ДКА MM на рисунке 2.2?

?
Пример 2.4

Какой язык L(M)L(M) принимается ДКА MM на рисунке 2.3?

?
Пример 2.5

Какой язык L(M)L(M) принимается ДКА MM на рисунке 2.4?

?
Задача 2.1.1

Рассмотрим ДКА MM с диаграммой переходов на рисунке 2.5.

?
(a)

Какое состояние является начальным состоянием MM, и какие состояния являются заключительными состояниями MM?

(b)

Для каждой из строк 0001, 010101 и 001110101101 найдите вычислительный путь MM на этой строке и определите, принимает ли её MM.

(c)

Среди всех строк из (01)*, какие из них принадлежат L(M)L(M)?

Рисунок 2.5: ДКА из упражнения 1.Рисунок 2.5: ДКА из упражнения 1.

Задача 2.1.2

Для целых чисел n,d1n, d \geq 1 рассмотрим ДКА Mn,d=(Q,Σ,δ,q0,F)M_{n, d}=\left(Q, \Sigma , \delta , q_{0}, F\right), где Q={q0,q1,q2,,qn1},Σ={a0,a1,,ad1},δ(qi,ak)=q(di+k)modnQ= \left\{ q_{0}, q_{1}, q_{2}, \cdots , q_{n-1}\right\} , \Sigma =\left\{ a_{0}, a_{1}, \cdots , a_{d-1}\right\} , \delta \left(q_{i}, a_{k}\right)=q_{(d i+k) \bmod n}, а F={q1}F=\left\{ q_{1}\right\}.

?
(a)

Начертите диаграмму переходов Mn,dM_{n, d} при n=7n=7 и d=2d=2.

(b)

Пусть n=7,d=2,a0=0n=7, d=2, a_{0}=0 и a1=1a_{1}=1. Найдите δ(q3,0101)\delta \left(q_{3}, 0101\right) и δ(q1,11010)\delta \left(q_{1}, 11010\right).

(c)

Пусть n=7,d=2,a0=0n=7, d=2, a_{0}=0 и a1=1a_{1}=1. Найдите двоичные строки xx и yy такие, что δ(q0,x)=q5\delta \left(q_{0}, x\right)=q_{5} и δ(q0,y)=q6\delta \left(q_{0}, y\right)=q_{6}.

(d)
  • Покажите, что для любого состояния qjQq_{j} \in Q существует строка xΣx \in \Sigma^{*} такая, что δ(q0,x)=qj\delta \left(q_{0}, x\right)=q_{j}.

Рисунок 2.6: Три ДКА из упражнения 3.Рисунок 2.6: Три ДКА из упражнения 3.

Задача 2.1.3

Для каждого из ДКА M1,M2M_{1}, M_{2} и M3M_{3}, показанных на рисунке 2.6(a), (b) и (c) соответственно, опишите словами язык, принимаемый им.

?
§
Пример 2.6

(0+1)(0+1)^{*}.

?
Пример 2.7

Множество всех двоичных строк, начинающихся с префикса 01.

?
Пример 2.8

Множество всех двоичных строк, содержащих подстроку 00.

?
Пример 2.9

Множество всех двоичных строк, содержащих подстроку 00101.

?
Пример 2.10

Множество AA всех двоичных строк, заканчивающихся на 01.

?
Пример 2.11

Множество всех двоичных представлений положительных целых чисел, сравнимых с нулём по модулю 5.

?
Пример 2.12

Множество всех двоичных строк, содержащих подстроку 00 или заканчивающихся на 01.

?
Пример 2.13

Множество всех двоичных строк, содержащих подстроку 00 и заканчивающихся на 01.

?
Пример 2.14

Множество всех двоичных строк, содержащих подстроку 00, но не заканчивающихся на 01.

?
Пример 2.15

Множество LL всех двоичных строк, в которых каждый блок из четырёх подряд идущих символов содержит подстроку 01.

?
Задача 2.2.1

Для каждого из следующих языков постройте ДКА, принимающий этот язык:

?
(a)

Множество двоичных строк, начинающихся с 010.

(b)

Множество двоичных строк, заканчивающихся на 101.

(c)

Множество двоичных строк, начинающихся с 10 и заканчивающихся на 01.

(d)

Множество двоичных строк, содержащих подстроку 010 или 101.

(e)

Множество двоичных строк, в которых последние пять символов содержат не более трёх нулей.

(f)

Множество двоичных строк ww, для которых #1(w)+2#0(w)\#_{1}(w)+2 \#_{0}(w) делится на 5, где #a(w)\#_{a}(w) — число вхождений символа aa в строку ww.

(g)

Множество строк над алфавитом {1,2,3}\left\{ 1,2,3\right\}, в которых сумма всех символов делится на 5.

(h)

Множество строк над алфавитом {0,1,2}\left\{ 0, 1, 2\right\}, являющихся троичными представлениями (представлениями по основанию 3) положительных целых чисел, сравнимых с 2 по модулю 7.

(i)

Множество двоичных строк, в которых каждый блок из четырёх символов содержит не менее двух нулей.

(j)

Множество двоичных строк, в которых после каждой подстроки 010 непосредственно следует подстрока 111.

Задача 2.2.2

Для каждого из следующих языков используйте метод автомата-произведения для построения ДКА, принимающего этот язык:

?
(a)

Множество двоичных строк, начинающихся с 010 или заканчивающихся на 101.

(b)

Множество двоичных строк, содержащих подстроку 010, но не содержащих подстроку 101.

(c)

Множество двоичных строк, начинающихся с 010, заканчивающихся на 101 и содержащих подстроку 0000.

Задача 2.2.3

Для каждого из следующих языков используйте метод проверяющего автомата для построения ДКА, принимающего этот язык:

?
(a)

Множество из примера 2.12.

(b)

Множество из примера 2.14.

(c)

Множество из упражнения 2(a) выше.

(d)

Множество из упражнения 2(c) выше.

§
Пример 2.17

Найдите НКА, принимающий множество двоичных строк, содержащих подстроку 010.

?
Пример 2.18

Найдите НКА, принимающий множество двоичных строк, начинающихся с 010 или заканчивающихся на 110.

?
Пример 2.19

Найдите НКА, принимающий множество двоичных строк, содержащих не менее двух вхождений подстроки 01 и заканчивающихся на 11.

Рисунок 2.22: Решение примера 2.19.Рисунок 2.22: Решение примера 2.19.

?
Пример 2.20

Найдите НКА, принимающий множество {0n10mn,m0,nm(mod5)}\left\{ 0^{n} 10^{m} \mid n, m \geq 0, n \equiv m(\bmod 5)\right\}.

?
Пример 2.21

Пусть M1M_{1} и M2M_{2} — два НКА. Постройте НКА MM такой, что L(M)=L(M1)L(M2)L(M)=L\left(M_{1}\right) \cdot L\left(M_{2}\right).

?
Пример 2.22

Пусть M1M_{1} — НКА. Постройте НКА MM такой, что L(M)=L(M1)L(M)= L\left(M_{1}\right)^{*}.

?
Задача 2.3.1

Рассмотрим НКА MM на рисунке 2.26.

?
(a)

Чему равны ε\varepsilon-замыкание ({q0})\left(\left\{ q_{0}\right\} \right) и ε\varepsilon-замыкание ({q1,q2,q3})\left(\left\{ q_{1}, q_{2}, q_{3}\right\} \right)?

(b)

Чему равны δ({q0},0)\delta \left(\left\{ q_{0}\right\} , 0\right) и δ({q2,q3},1)\delta \left(\left\{ q_{2}, q_{3}\right\} , 1\right)?

(c)

Постройте деревья вычислений MM на строках x=011x=011 и y=101y=101. Принимает ли MM строки xx и yy, или отвергает их?

Рисунок 2.26: НКА из упражнения 1.Рисунок 2.26: НКА из упражнения 1.

Задача 2.3.2

Для каждого НКА MM, показанного на рисунке 2.27, определите, чему равен L(M)L(M).

?
Задача 2.3.3

Для каждого из следующих языков постройте НКА, принимающий этот язык:

?
(a)

Множество двоичных строк, содержащих не менее трёх вхождений подстроки 010.

(b)

Множество двоичных строк, содержащих одновременно подстроки 010 и 101. [Подсказка: это эквивалентно множеству двоичных строк, содержащих подстроку 0101, либо подстроку 1010, либо подстроку 010, за которой следует 101, либо подстроку 101, за которой следует 010.]

(c)

Множество двоичных строк, содержащих подстроку 010 либо подстроку 101 и заканчивающихся на 111 или 000.

(d)

Множество двоичных строк, у которых (3n)(3 n)-й символ равен 0 для каждого n1n \geq 1.

(e)

Множество двоичных строк xx длины 3n3 n для некоторого n1n \geq 1, таких что для каждого 1kn1 \leq k \leq n хотя бы один из (3k2)(3 k-2)-го, (3k1)(3 k-1)-го и (3k)(3 k)-го символов xx равен 0.

(f)

Множество {0n10m10qqnm(mod5)}\left\{ 0^{n} 10^{m} 10^{q} \mid q \equiv n m(\bmod 5)\right\}.

Рисунок 2.27: Три НКА из упражнения 2.Рисунок 2.27: Три НКА из упражнения 2.

Задача 2.3.4

Докажите, что новое начальное состояние ss и заключительное состояние ff в построении примера 2.22 необходимы. То есть найдите НКА M1M_{1} и M2M_{2} такие, что НКА M1M_{1}^{\prime } и M2M_{2}^{\prime } на рисунке 2.28 обладают свойством L(M1)L(M1)L\left(M_{1}^{\prime }\right) \neq L\left(M_{1}\right)^{*} и L(M2)L(M2)L\left(M_{2}^{\prime }\right) \neq L\left(M_{2}\right)^{*}.

?
§
Пример 2.23

Дан НКА M=(Q,{0,1},δ,q0,F)M=\left(Q,\left\{ 0,1\right\} , \delta , q_{0}, F\right), где Q={q0,q1,q2q3,q4,q5},F={q3,q4}Q=\left\{ q_{0}, q_{1}, q_{2}\text{, }q_{3}, q_{4}, q_{5}\right\} , F=\left\{ q_{3}, q_{4}\right\}, и

δ\delta01ε\varepsilon
q0q_{0}{q0}\left\{ q_{0}\right\}{q0,q2}\left\{ q_{0}, q_{2}\right\}{q1}\left\{ q_{1}\right\}
q1q_{1}{q5}\left\{ q_{5}\right\}{q2}\left\{ q_{2}\right\}-
q2q_{2}{q3}\left\{ q_{3}\right\}--
q3q_{3}--{q4}\left\{ q_{4}\right\}
q4q_{4}{q3}\left\{ q_{3}\right\}--
q5q_{5}-{q4}\left\{ q_{4}\right\}-

(Диаграмма переходов MM показана на рисунке 2.29(a).) Найдите ДКА, эквивалентный НКА MM.

Рисунок 2.29: Преобразование НКА в ДКА.Рисунок 2.29: Преобразование НКА в ДКА.

?
Пример 2.24

Постройте ДКА, эквивалентный НКА M=({p,qr},{0,1},δ,p,{q,r})M=(\left\{ p, q\text{, }r\right\} ,\left\{ 0,1\right\} , \delta , p,\left\{ q, r\right\} ), где

δ\delta01
pp{p,q}\left\{ p, q\right\}{p}\left\{ p\right\}
qq-{r}\left\{ r\right\}
rr--
?
Пример 2.26

Пусть M=({p,q,r,s},{0,1},δ,p,{q,s})M=(\left\{ p, q, r, s\right\} ,\left\{ 0,1\right\} , \delta , p,\left\{ q, s\right\} )NFAN F A, заданный

δ\delta01
pp{q,s}\left\{ q, s\right\}{q}\left\{ q\right\}
qq{r}\left\{ r\right\}{q,r}\left\{ q, r\right\}
rr{s}\left\{ s\right\}{p}\left\{ p\right\}
ss-{p}\left\{ p\right\}

Постройте НКА, принимающий L(M)\overline{L(M)}.

?
Пример 2.27

Постройте ДКА, принимающий множество всех двоичных строк, у которых пятый символ справа равен 0.

?
Пример 2.28

Рассмотрим следующую таблицу умножения на {a,b,c}\left\{ a, b, c\right\} :

×\timesaabbcc
aaccaabb
bbbbccaa
ccccbbcc

Для любой строки ww из {a,b,c}+\left\{ a, b, c\right\}^{+} через value(w)\operatorname {value}(w) обозначим значение, полученное перемножением символов строки ww слева направо. Например, пусть w=abcbw=a b c b. Тогда получаем

value(w)=((a×b)×c)×b=(a×c)×b=b×b=c, and value(wR)=((b×c)×b)×a=(a×b)×a=a×a=c. \begin{aligned} \operatorname {value}(w) & =((a \times b) \times c) \times b=(a \times c) \times b=b \times b=c, \text{ and } \\ \operatorname {value}\left(w^{R}\right) & =((b \times c) \times b) \times a=(a \times b) \times a=a \times a=c. \end{aligned}

Постройте НКА для множества LL всех строк ww над {a,b,c}\left\{ a, b, c\right\} таких, что value(w)=value(wR)\operatorname {value}(w)=\operatorname {value}\left(w^{R}\right). (Например, abcbLa b c b \in L, а abbLa b b \notin L.)

?
Задача 2.4.1

Преобразуйте каждый из следующих НКА в эквивалентный ДКА:

?
(a)

НКА M=({p,q,r},,{0,1},δ,p,{q,r})M=(\left\{ p, q, r\right\} ,,\left\{ 0,1\right\} , \delta , p,\left\{ q, r\right\} ), где

δ\delta01
pp{p}\left\{ p\right\}{p,q}\left\{ p, q\right\}
qq{r}\left\{ r\right\}-
rr--
(b)

НКА MM на рисунке 2.27(a).

(c)

НКА MM на рисунке 2.27(b).

(d)

НКА MM на рисунке 2.27(c).

Задача 2.4.2

Для каждого из следующих языков постройте ДКА, принимающий этот язык:

?
(a)

Множество двоичных строк, содержащих одновременно подстроку 010 и подстроку 101.

(b)

Множество всех двоичных строк, заканчивающихся на 00, 01 или 10.

(c)

Множество двоичных строк, содержащих в качестве подстрок и 001, и 110, либо не содержащих ни 001, ни 110.

(d)

Множество двоичных строк, у которых и четвёртый символ справа, и четвёртый символ слева равны 0. [Примечание: обе строки 0110 и 10101 принадлежат этому множеству.]

Задача 2.4.3

Рассмотрим следующую таблицу умножения на {a,b,c}\left\{ a, b, c\right\} :

×\timesaabbcc
aaaaccbb
bbaabbcc
ccccccaa

Постройте НКА для следующих языков:

?
(a)

{xvalue(x)value(xR)}\left\{ x \mid \operatorname {value}(x) \neq \operatorname {value}\left(x^{R}\right)\right\}.

(b)

{xyvalue(x)=value(yR)}\left\{ x y \mid \operatorname {value}(x)=\operatorname {value}\left(y^{R}\right)\right\}.

(c)

{xyvalue(x)=value(y)}\left\{ x y \mid \operatorname {value}(x)=\operatorname {value}(y)\right\}.

§
Пример 2.29

Найдите ДКА, принимающий язык 10+(0+11)0110+(0+11) 0^{*} 1.

?
Пример 2.30

Постройте НКА, принимающий множество LL двоичных строк нечётной длины, содержащих подстроку 00.

?
Пример 2.32

Найдите регулярное выражение для языка, принимаемого НКА на рисунке 2.29(a).

?
Задача 2.5.1

Для каждого из следующих регулярных выражений rr постройте ДКА, принимающий L(r)L(r):

?
(a)

(0+10)(1+01)(0+10)^{*}(1+01)^{*}.

(b)

(0+1)0(0+1)(0+1)0(0+1)(0+1)^{*} 0(0+1)(0+1) 0(0+1).

(c)

0(0+1)0+1(0+1)10(0+1)^{*} 0+1(0+1)^{*} 1.

Задача 2.5.2

Для каждого из следующих языков найдите НКА, который его принимает:

?
(a)

{x#yx,y(0+1),xy(mod2)}\left\{ x \# y \mid x, y \in (0+1)^{*}, \left|x\right| \equiv \left|y\right|(\bmod 2)\right\}.

(b)

{x#yx,y(0+1),x+y5}\left\{ x \# y \mid x, y \in (\mathbf{0}+\mathbf{1})^{*}, \left|x\right|+\left|y\right| \geq 5\right\}.

(c)

{x#yx,y(0+1),xy делится на 5}\left\{ x \# y \mid x, y \in (\mathbf{0}+\mathbf{1})^{*}, \left|x\right| \cdot \left|y\right| \text{ делится на 5}\right\}.

Задача 2.5.3

На рисунке 2.41 показан НКА, принимающий 00^{*}, построенный по методу примера 2.22. Четыре ε\varepsilon-перехода нельзя устранить по правилу теоремы 1.25. Примените метод из доказательства теоремы 2.31, чтобы сократить некоторые из его ε\varepsilon-переходов. Можете ли вы, исходя из этого примера, найти более общее правило (чем теорема 1.25) для устранения избыточных ε\varepsilon-переходов?

Рисунок 2.41: НКА, принимающий 0*.Рисунок 2.41: НКА, принимающий 0*.

?
Задача 2.5.4

Для каждого из языков, принимаемых НКА на рисунке 2.42, найдите регулярное выражение.

Рисунок 2.42: Два НКА для упражнения 4.Рисунок 2.42: Два НКА для упражнения 4.

?
§
Пример 2.34

Пусть MM — некоторый NFAN F A. Постройте NFAMN F A M^{\prime }, такой что L(M)=L(M)RL\left(M^{\prime }\right)= L(M)^{R}.

?
Пример 2.35

Пусть ff — подстановка над Σ\Sigma. Пусть LΣL \subseteq \Sigma^{*} — регулярный язык, и для каждого aΣa \in \Sigma язык f(a)f(a) регулярен. Тогда f(L)f(L) также является регулярным языком.

?
Пример 2.36

Покажите, что для любого языка L2L_{2}, если L1L_{1} регулярен, то L1/L2L_{1} / L_{2} также регулярен.

?
Пример 2.37

Пусть LL — регулярный язык над Σ\Sigma, kk — положительное целое число, а ϕ\phi — отображение из Σk\Sigma^{k} в Σ\Sigma. Докажите, что

L1={ϕ(a1a2ak)ϕ(a(n1)k+1a(n1)k+2ank)a1a2ankL} L_{1}=\left\{ \phi \left(a_{1} a_{2} \cdots a_{k}\right) \cdots \phi \left(a_{(n-1) k+1} a_{(n-1) k+2} \cdots a_{n k}\right) \mid a_{1} a_{2} \cdots a_{n k} \in L\right\}

регулярен.

?
Пример 2.38

Докажите, что если LL регулярен, то регулярен и MIN(L)\operatorname {MIN}(L).

?
Пример 2.39

Покажите, что если AA и BB — регулярные языки над {0,1}\left\{ 0,1\right\}, то

AB={xyxA,yB,x=y} A \vee B=\left\{ x \vee y \mid x \in A, y \in B, \left|x\right|=\left|y\right|\right\}

также регулярен.

?
Пример 2.40

Покажите, что если LL — регулярный язык, то регулярен и

{xyyxL}. \left\{ x y \mid y x \in L\right\} .
?
Пример 2.41

Покажите, что если LL — регулярный язык, то регулярен и

L12={x(y)[x=y,xyL]}. L_{\frac{1}{2}}=\left\{ x \mid (\exists y)[\left|x\right|=\left|y\right|, x y \in L]\right\} .
?
Пример 2.42

Покажите, что если LL — регулярное множество, то регулярно и

L33={z(x,y)[x=y=z,xyzL]} L_{\frac{3}{3}}=\left\{ z \mid (\exists x, y)[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in L]\right\}
?
Пример 2.43

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

C(A,B)={xA(y)[y=x2,yB]} C(A, B)=\left\{ x \in A \mid (\exists y)\left[\left|y\right|=\left|x\right|^{2}, y \in B\right]\right\}

также регулярен.

?
Пример 2.44

Покажите, что если LL регулярен, то регулярен и

SQRT(L)={x(y)[y=x2,xyL]} \operatorname {SQRT}(L)=\left\{ x \mid (\exists y)\left[\left|y\right|=\left|x\right|^{2}, x y \in L\right]\right\}
?
Задача 2.6.1

Докажите следующее тождество:

?
(a)

MAX(L)=L\(L/Σ+)\operatorname {MAX}(L)=L \backslash \left(L / \Sigma^{+}\right), где MAX(L)={xLx не является собственным префиксом никакой строки из L}\operatorname {MAX}(L)=\left\{ \boldsymbol {x} \in L \mid \boldsymbol {x}\text{ не является собственным префиксом никакой строки из }L\right\}.

(b)

MIN(L)=L\(LΣ+)\operatorname {MIN}(L)=L \backslash \left(L \Sigma^{+}\right).

Задача 2.6.2

Для любых двух битов a,b{0,1}a, b \in \left\{ 0,1\right\}, aba \oplus b обозначает исключающее ИЛИ aa и bb; то есть 00=11=00 \oplus 0=1 \oplus 1=0 и 01=10=10 \oplus 1=1 \oplus 0=1. Для любых двух двоичных строк xx и yy с x=y\left|x\right|=\left|y\right|, xyx \oplus y обозначает поразрядное исключающее ИЛИ строк xx и yy. Например, если x=0011x=0011 и y=0101y=0101, то xy=0110x \oplus y=0110. Пусть A=001(0+1)A=001(0+1)^{*} и B=(0+1)100B=(0+1)^{*} 100. Найдите регулярное выражение для каждого из следующих языков:

?
(a)

ABA \vee B.

(b)

AB={xyxA,yB,x=y}A \oplus B=\left\{ x \oplus y \mid x \in A, y \in B, \left|x\right|=\left|y\right|\right\}.

(c)

{a1b1a2b2anbna1a2anA,b1b2bnB}\left\{ a_{1} b_{1} a_{2} b_{2} \cdots a_{n} b_{n} \mid a_{1} a_{2} \cdots a_{n} \in A, b_{1} b_{2} \cdots b_{n} \in B\right\}.

Задача 2.6.3

Покажите, что если AA и BB — регулярные языки, то регулярны и следующие языки:

?
(a)

{xxxRA}\left\{ x \mid x x^{R} \in A\right\}.

(b)

{xxA,xxA}\left\{ x \mid x \in A, x x \in A\right\}.

(c)

Ax={yxyA}A_{x}=\left\{ y \mid x y \in A\right\}, где xx — фиксированная строка.

(d)

{a1a2a2na2a1a4a3a2na2n1A}\left\{ a_{1} a_{2} \cdots a_{2 n} \mid a_{2} a_{1} a_{4} a_{3} \cdots a_{2 n} a_{2 n-1} \in A\right\}.

(e)

{a1a3a2n3a2n1a1a2a2nA}\left\{ a_{1} a_{3} \cdots a_{2 n-3} a_{2 n-1} \mid a_{1} a_{2} \cdots a_{2 n} \in A\right\}.

(f)

{a1b1a2b2anbna1a2anA,b1b2bnB}\left\{ a_{1} b_{1} a_{2} b_{2} \cdots a_{n} b_{n} \mid a_{1} a_{2} \cdots a_{n} \in A, b_{1} b_{2} \cdots b_{n} \in B\right\}.

(g)

ABA \oplus B.

Задача 2.6.4

Приведите альтернативное доказательство примера 2.42, основанное на следующей идее: мы можем моделировать НКА Mˉ\bar{M} на xyx y вместе с M^i\widehat{M}_{i} на zz, моделируя на каждом шаге два перехода Mˉ\bar{M} и один переход M^i\widehat{M}_{i}. (Таким образом, новый НКА для L33L_{\frac{3}{3}} имеет всего n+2n+2 дорожки.)

?
Задача 2.6.5

Покажите, что если AA и BB — регулярные языки, то регулярны и следующие:

?
(a)

{xyzzyxA}\left\{ x y z \mid z y x \in A\right\}.

(b)

{xyzzyxA,yB}\left\{ x y z \mid z y x \in A, y \in B\right\}.

(c)

{y(x)[x=y,xyA]}\left\{ y \mid (\exists x)[\left|x\right|=\left|y\right|, x y \in A]\right\}.

(d)

{x(y,z)[x=y=z,xyzA]}\left\{ x \mid (\exists y, z)[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in A]\right\}.

(e)

{y(x,z),[x=y=z,xyzA]}\left\{ y \mid (\exists x, z),[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in A]\right\}.

(f)

{yz(x)[x=y=z,xyzA]}\left\{ y z \mid (\exists x)[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in A]\right\}.

(g)

{xy(z)[x=y=z,xyzA]}\left\{ x y \mid (\exists z)[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in A]\right\}.

(h)

{x(w,y,z)[x=wyz и wyRzA]}\left\{ x \mid (\exists w, y, z)\left[x=w y z\right.\text{ и }\left.w y^{R} z \in A\right]\right\}.

Задача 2.6.6

Рассмотрим булеву функцию f(a1,a2,,an)f\left(a_{1}, a_{2}, \cdots , a_{n}\right). Для любых nn двоичных строк x1,x2,,xnx_{1}, x_{2}, \cdots , x_{n} одинаковой длины обозначим через f(x1,x2,,xn)f\left(x_{1}, x_{2}, \cdots , x_{n}\right) поразрядное применение функции ff к x1,x2,,xnx_{1}, x_{2}, \cdots , x_{n}. То есть, если xi=xi1xi2xikx_{i}=x_{i_{1}} x_{i_{2}} \ldots x_{i_{k}} для i=1,2i=1,2, ,n\ldots , n, где каждый xijx_{i_{j}} — бит из {0,1}\left\{ 0,1\right\}, то f(x1,x2,,xn)f\left(x_{1}, x_{2}, \ldots , x_{n}\right) равно

f(x11,x21,,xn1)f(x12,x22,,xn2)f(x1k,x2k,,xnk) f\left(x_{11}, x_{21}, \ldots , x_{n 1}\right) \cdot f\left(x_{12}, x_{22}, \ldots , x_{n 2}\right) \cdots f\left(x_{1 k}, x_{2 k}, \ldots , x_{n k}\right)

Покажите, что если языки A1,A2,,AnA_{1}, A_{2}, \cdots , A_{n} регулярны, то язык

\begin{aligned} \left\{ f\left(x_{1}, x_{2}, \cdots , x_{n}\right) \mid & \left|x_{1}\right|=\left|x_{2}\right|=\cdots =\left|x_{n}\right| \\ & x_{1} \in A_{1}, x_{2} \in A_{2}, \cdots , x_{n} \in A_{n}\right\} \end{aligned}

также регулярен.

?
Задача 2.6.7

В упражнении 3(c) выше покажите, что для любого регулярного языка AA число различных AxA_{x} конечно. Найдите верхнюю оценку для этого числа, предполагая, что AA принимается ДКА с ss состояниями.

?
Задача 2.6.8

Верны ли следующие утверждения? Докажите или опровергните ваш ответ.

?
(a)

Если AA регулярен и ABA \subseteq B, то BB регулярен.

(b)

Если AA регулярен и BAB \subseteq A, то BB регулярен.

(c)

Если A2A^{2} регулярен, то AA регулярен.

(d)

Если AA и ABA B регулярны, то BB регулярен.

(e)

Если AA и BB регулярны, то i=0(AiBi)\bigcup_{i=0}^{\infty }\left(A^{i} \cap B^{i}\right) регулярен.

Задача 2.6.9

Покажите, что каждый регулярный язык в 00^{*} можно представить в виде

0a1+0a2++0ak+(0b1+0b2++0bh)(0c) 0^{a_{1}}+0^{a_{2}}+\cdots +0^{a_{k}}+\left(0^{b_{1}}+0^{b_{2}}+\cdots +0^{b_{h}}\right)\left(0^{c}\right)^{*}

для некоторых целочисленных констант a1,a2,,ak,b1,b2,,bha_{1}, a_{2}, \cdots , a_{k}, b_{1}, b_{2}, \cdots , b_{h} и cc.

?
Задача 2.6.10

Подмножество PP неотрицательных целых чисел является в конечном счёте периодическим, если существуют два положительных целых числа b,pb, p, такие что для всех mbm \geq b из mPm \in P следует m+pPm+p \in P. Докажите следующие утверждения:

?
(a)

Для любого регулярного языка LL множество {xxL}\left\{ \left|x\right| \mid x \in L\right\} в конечном счёте периодическое.

(b)

Язык LL над {0}\left\{ 0\right\} регулярен тогда и только тогда, когда {xxL}\left\{ \left|x\right| \mid x \in L\right\} в конечном счёте периодическое.

(c)

Если ff — отображение из целых чисел в целые числа, такое что f1(P)f^{-1}(P) в конечном счёте периодическое для каждого в конечном счёте периодического множества PP, то множество {xA(y)[y=f(x),yB]}\left\{ x \in A \mid (\exists y)[\left|y\right|=f(\left|x\right|), y \in B]\right\} регулярно для любой пары регулярных множеств AA и BB.

(d)

Если ff — отображение из целых чисел в целые числа, такое что f1(P)f^{-1}(P) в конечном счёте периодическое для каждого в конечном счёте периодического множества PP, то множество {x(y)[y=f(x),xyL}\left\{ x \mid (\exists y)[\left|y\right|=f(\left|x\right|), x y \in L\right\} регулярно для любого регулярного множества LL.

Задача 2.6.11

Примените упражнение 10(d) выше, чтобы доказать следующие результаты:

?
(a)

Если LL — регулярный язык, то регулярен и {x(y)[y=2x,xyL]}\left\{ x \mid (\exists y)\left[\left|y\right|=2^{\left|x\right|}, x y \in L\right]\right\}. [Подсказка: используйте теорему Ферма, которая утверждает, что для любого нечётного целого числа m3m \geq 3 существует целое число φ(m)\varphi (m), такое что 2φ(m)1modm2^{\varphi (m)} \equiv 1 \bmod m.]

(b)

Если LL — регулярный язык, то регулярен и {x(y)[y2=x,xyL]}\left\{ x \mid (\exists y)\left[\left|y\right|^{2}=\left|x\right|, x y \in L\right]\right\}.

§
Пример 2.45

Пусть L={x(0+1)x нечётно}L=\left\{ x \in (0+1)^{*} \mid \left|x\right|\text{ нечётно}\right\}. Найдите все классы эквивалентности отношения RLR_{L}.

?
Пример 2.46

Пусть LL — множество непустых двоичных строк, начинающихся и заканчивающихся одним и тем же символом. Найдите все классы эквивалентности отношения RLR_{L}.

?
Пример 2.50

Покажите, что LL регулярен тогда и только тогда, когда существует положительное целое kk, такое что xRLyx R_{L} y тогда и только тогда, когда для каждого zΣz \in \Sigma^{*} с zk\left|z\right| \leq k, xzLyzLx z \in L \Leftrightarrow y z \in L.

?
Пример 2.51

Найдите минимальный ДКА для языка (0+1)01(0+1)^{*} 01.

?
Пример 2.52

Постройте минимальный ДКА для языка (0+1)0(0+1)9(0+1)^{*} 0(0+1)^{9}.

?
Пример 2.53

Найдите минимальный ДКА, эквивалентный ДКА MM с рисунка 2.47.

Рисунок 2.47: ДКА M.Рисунок 2.47: ДКА M.

?
Пример 2.54

Покажите, что следующий язык не является регулярным:

L={xxRx{0,1}} L=\left\{ x x^{R} \mid x \in \left\{ 0,1\right\} ^{*}\right\}
?
Пример 2.55

Покажите, что L={0m1ngcd(m,n)=1}L=\left\{ 0^{m} 1^{n} \mid \operatorname {gcd}(m, n)=1\right\} не является регулярным.

?
Пример 2.56

Для произвольного языка LL определим отношение эквивалентности DLD_{L} следующим образом:

xDLy(u)(w)[uxwLuywL]. x D_{L} y \Longleftrightarrow (\forall u)(\forall w)[u x w \in L \Leftrightarrow u y w \in L].

Покажите, что LL регулярен тогда и только тогда, когда Index(DL)<\operatorname {Index}\left(D_{L}\right)<\infty.

?
Задача 2.7.1

Найдите все классы эквивалентности отношения RLR_{L} для следующих языков:

?
(a)

(0+1)01(0+1)(0+1)^{*} 01(0+1)^{*}.

(b)

(00+11)(0+1)(00+11)(0+1)^{*}.

(c)

011(0+1)001011(0+1)^{*} 001.

(d)

Множество двоичных строк, в которых каждый блок из четырёх символов содержит не менее двух нулей.

(e)

{x{0,1}#0(x)=#1(x)}\left\{ x \in \left\{ 0,1\right\}^{*} \mid \#_{0}(x)=\#_{1}(x)\right\}, где #a(w)\#_{a}(w) — число вхождений символа aa в ww.

Задача 2.7.2

Для каждого из следующих языков LL покажите, что Index(L)=\operatorname {Index}(L)=\infty, и, следовательно, LL не является регулярным.

?
(a)

{0m1n0mn}\left\{ 0^{m} 1^{n} \mid 0 \leq m \leq n\right\}.

(b)

{0n1m0n+mn,m0}\left\{ 0^{n} 1^{m} 0^{n+m} \mid n, m \geq 0\right\}.

(c)

{www{0,1}}\left\{ w w \mid w \in \left\{ 0,1\right\}^{*}\right\}.

(d)

{xxRwx,w{0,1}+}\left\{ x x^{R} w \mid x, w \in \left\{ 0,1\right\}^{+}\right\}.

Задача 2.7.3

Для каждого из следующих языков LL покажите, что никакие две строки не могут лежать в одном классе эквивалентности отношения RLR_{L}.

?
(a)

{0pp is a prime }\left\{ 0^{p} \mid p\text{ is a prime }\right\}.

(b)

{0n2n0}\left\{ 0^{n^{2}} \mid n \geq 0\right\}.

Задача 2.7.4

Постройте минимальные ДКА для языков, принимаемых ДКА на рисунках 2.52(a) и 2.52(b).

Рисунок 2.52: Два ДКА для упражнения 4.Рисунок 2.52: Два ДКА для упражнения 4.

?
Задача 2.7.5

Постройте минимальный ДКА, эквивалентный НКА с рисунка 2.53.

Рисунок 2.53: НКА для упражнения 5.Рисунок 2.53: НКА для упражнения 5.

?
§
Пример 2.58

{0pp — простое число}\left\{ 0^{p} \mid p\text{ — простое число}\right\} не является регулярным языком.

?
Пример 2.60

{0n1nn0}\left\{ 0^{n} 1^{n} \mid n \geq 0\right\} не является регулярным языком.

?
Пример 2.61

Покажите, что L={ββRβ{0,1}+}L=\left\{ \beta \beta^{R} \mid \beta \in \left\{ 0,1\right\}^{+}\right\} не является регулярным языком.

?
Пример 2.62

Покажите, что L={ββRγβ{0,1}+,γ{0,1}}L=\left\{ \beta \beta^{R} \gamma \mid \beta \in \left\{ 0,1\right\}^{+}, \gamma \in \left\{ 0,1\right\}^{*}\right\} не является регулярным.

?
Пример 2.63

Покажите, что язык L={0n10m10p10qn,m,p1,qnm(modp)}L=\left\{ 0^{n} 10^{m} 10^{p} 10^{q} \mid n, m, p \geq 1, q \equiv n m(\bmod p)\right\} не является регулярным.

?
Пример 2.64

Рассмотрим следующую таблицу умножения на {a,b,c}\left\{ a, b, c\right\}:

×\timesaabbcc
aaaaaacc
bbccaabb
ccbbccaa

Напомним, из примера 2.28, что для любой строки xx из {a,b,c}+\left\{ a, b, c\right\}^{+}, value(x)\operatorname {value}(x) обозначает значение, получаемое перемножением символов xx слева направо. Покажите, что множество

L={xy  :  x,y{a,b,c},x=y,value(x)=value(y)} L=\left\{ x y \; : \; x, y \in \left\{ a, b, c\right\} ^{*},\left|x\right|=\left|y\right|, \operatorname {value}(x)=\operatorname {value}(y)\right\}

не является регулярным.

?
Пример 2.65

Покажите, что множество LL всех строк над алфавитом

Γ={[000],[100],[010],[001],[110],[101],[011],[111]} \Gamma =\left\{ \left[\begin{smallmatrix} 0 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right]\right\}

представляющих корректное умножение, не является регулярным. Например, из соотношения

00111×010111111 \begin{array}{r} 00111 \\ \times \quad 01011 \\ \hline 1111 \end{array}

следует, что данная строка принадлежит LL:

[001][011][101][111] \left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right]
?
Пример 2.66

Покажите, что множество L2L_{2} двоичных представлений целых чисел из множества A={2nn1}A=\left\{ 2^{n} \mid n \geq 1\right\} регулярно, а множество L3L_{3} троичных представлений (представлений по основанию 3) целых чисел из AA не является регулярным.

?
Пример 2.67

Покажите, что L={w{0,1}#0(w)#1(w)}L=\left\{ w \in \left\{ 0,1\right\}^{*} \mid \#_{0}(w) \neq \#_{1}(w)\right\} не является регулярным.

?
Пример 2.68

Покажите, что L={anbmckn,m,k0,nm или mk или kn}L=\left\{ a^{n} b^{m} c^{k} \mid n, m, k \geq 0, n \neq m\text{ или }m \neq k\text{ или }k \neq n\right\} не является регулярным.

?
Пример 2.69

Пусть LL — регулярный язык. Покажите, что

L={xz(y)[x=y=z and xyzL]} L^{\prime }=\left\{ x z \mid (\exists y)[\left|x\right|=\left|y\right|=\left|z\right| \text{ and } x y z \in L]\right\}

не обязательно регулярен.

?
Задача 2.8.1

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

?
(a)

{0n3+3n22nn0}\left\{ 0^{n^{3}+3 n^{2}-2 n} \mid n \geq 0\right\}.

(b)

{0p1q0m1np+q=m+n,p,q,m,n0}\left\{ 0^{p} 1^{q} 0^{m} 1^{n} \mid p+q=m+n, p, q, m, n \geq 0\right\}.

(c)

{0m1nm,n0 and m2n+1}\left\{ 0^{m} 1^{n} \mid m, n \geq 0\text{ and }m \neq 2 n+1\right\}.

(d)

{0m1n2nm3n,m,n0}\left\{ 0^{m} 1^{n} \mid 2 n \leq m \leq 3 n, m, n \geq 0\right\}.

(e)

{w{0,1,2}#0(w)+#1(w)=#2(w)}\left\{ w \in \left\{ 0, 1, 2\right\}^{*} \mid \#_{0}(w)+\#_{1}(w)=\#_{2}(w)\right\}.

(f)

{0pqp and q are primes }\left\{ 0^{p q} \mid p\text{ and }q\text{ are primes }\right\}.

Задача 2.8.2

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

?
(a)

Множество двоичных строк с равным числом 0 и 1.

(b)

Множество двоичных строк с равным числом вхождений 01 и 10.

(c)

Множество двоичных строк с равным числом вхождений 010 и 101.

(d)

{xyx,y{0,1},x=y,#0(x)#0(y)}\left\{ x y \mid x, y \in \left\{ 0,1\right\}^{*},\left|x\right|=\left|y\right|, \#_{0}(x) \geq \#_{0}(y)\right\}.

(e)

{xyzx,y,z{0,1},x=z>0,#0(x)#0(z)}\left\{ x y z \mid x, y, z \in \left\{ 0,1\right\}^{*},\left|x\right|=\left|z\right|>0, \#_{0}(x) \geq \#_{0}(z)\right\}.

(f)

{x#y#zx,y,z — двоичные представления положительных целых чисел, удовлетворяющие x+y=z}\left\{ x \# y \# z \mid x, y, z\text{ — двоичные представления положительных целых чисел, удовлетворяющие }x+y=z\right\}.

Задача 2.8.3

Пусть Γ\Gamma — алфавит из примера 2.65.

?
(a)

Покажите, что множество LL всех строк над алфавитом Γ\Gamma, представляющих корректное деление, не является регулярным. Например,

11111×01100100011 \begin{array}{r} 11111 \\ \times \quad 011001 \\ \hline 00011 \end{array}

из этого следует, что данная строка принадлежит LL:

[100][110][101][111]. \left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right].
(b)

Покажите, что множество всех строк над Γ\Gamma, представляющих корректное умножение, у которых второй множитель равен 3, является регулярным.

Задача 2.8.4

Верно ли, что для любого регулярного языка LL над {0,1}\left\{ 0,1\right\} множество N(L)={0#0(x)1#1(x)xL}N(L)= \left\{ 0^{\#_{0}(x)} 1^{\#_{1}(x)} \mid x \in L\right\} также регулярно? Докажите свой ответ.

?
Задача 2.8.5

Докажите следующую усиленную форму леммы о накачке: для любого регулярного языка LL и любого положительного целого kk существует положительное целое ss, такое что любую строку xx из LL с x>s\left|x\right|>s можно разложить в x=uvwx=u v w, где v>k\left|v\right|>k и для любого i0,uviwLi \geq 0, u v^{i} w \in L.

?
Задача 2.8.6

Найдите регулярный язык LL, для которого

L^={xz(y)[x=y=z and xyzyL]} \widehat{L}=\left\{ x z \mid (\exists y)[\left|x\right|=\left|y\right|=\left|z\right| \text{ and } x y z y \in L]\right\}

не является регулярным.

?
Задача 2.8.7

Пусть AA и BB — регулярные множества над алфавитом Σ\Sigma. Какие из следующих языков, если такие есть, обязательно являются регулярными?

?
(a)

{xxA и xRB}\left\{ x \mid x \in A\text{ и }x^{R} \in B\right\}.

(b)

{xxA и xRB}\left\{ x \mid x \in A\text{ и }x^{R} \notin B\right\}.

(c)

{xx=xR и xA}\left\{ x \mid x=x^{R}\text{ и }x \in A\right\}.

(d)

{a1bna2bn1a3bn2anb1ai,biΣ для 1in,a1a2anA,b1b2bnB}\left\{ a_{1} b_{n} a_{2} b_{n-1} a_{3} b_{n-2} \cdots a_{n} b_{1} \mid a_{i}, b_{i} \in \Sigma \text{ для }1 \leq i \leq n, a_{1} a_{2} \cdots a_{n} \in A, b_{1} b_{2} \cdots b_{n} \in B\right\}.

(e)

{a1ana2an1a3an2ana1aiΣ для 1ina1a2anA}\left\{ a_{1} a_{n} a_{2} a_{n-1} a_{3} a_{n-2} \cdots a_{n} a_{1} \mid a_{i} \in \Sigma \text{ для }1 \leq i \leq n\text{, }a_{1} a_{2} \cdots a_{n} \in A\right\}.

(f)

{a1a2na3a2n2a5a2n4a2n1a2aiΣ для 1i2na1a2anA}\left\{ a_{1} a_{2 n} a_{3} a_{2 n-2} a_{5} a_{2 n-4} \cdots a_{2 n-1} a_{2} \mid a_{i} \in \Sigma \text{ для }1 \leq i \leq 2 n\text{, }a_{1} a_{2} \cdots a_{n} \in A\right\}.

Задача 2.8.8

Рассмотрим язык

L={x0ny1nzxP,yQ,zR} L=\left\{ x 0^{n} y 1^{n} z \mid x \in P, y \in Q, z \in R\right\}

где P,QP, Q и RR — непустые множества над алфавитом {0,1}\left\{ 0,1\right\}. Можете ли вы найти регулярные множества P,Q,RP, Q, R, такие что LL не регулярен? Можете ли вы найти регулярные множества P,Q,RP, Q, R, такие что LL регулярен? Что если P,Q,RP, Q, R должны быть бесконечными регулярными множествами?

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

Является ли язык {03m+4nm,n0}\left\{ 0^{3 m+4 n} \mid m, n \geq 0\right\} регулярным? Докажите свой ответ.

(b)

Пусть LL — язык над алфавитом {0}\left\{ 0\right\}. Покажите, что LL^{*} регулярен. [Подсказка: докажите и используйте тот факт, что если aa и bb — взаимно простые натуральные числа, то для любого целого числа nabn \geq a b существуют неотрицательные целые числа uu и vv, такие что n=ua+vbn=u a+v b.]