Глава 16

Регулярные выражения

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

Определить конкатенацию для следующих пар языков L1L_{1} и L2L_{2} :

?
(а)

L1={a,ab,abb}L_{1}=\left\{ a, a b, a b b\right\} и L2={ε,a,b,ab,ba}L_{2}=\left\{ \varepsilon , a, b, a b, b a\right\};

(б)

L1={ε,a,ab,abb}L_{1}=\left\{ \varepsilon , a, a b, a b b\right\} и L2={a,b,abb,ba}L_{2}=\left\{ a, b, a b b, b a\right\};

(в)

L1={ε,a,b,ab,aba}L_{1}=\left\{ \varepsilon , a, b, a b, a b a\right\} и L2={ε,a,b,ab,ba}L_{2}=\left\{ \varepsilon , a, b, a b, b a\right\}.

Задача 248

Пусть L={baa,bab,bba,bbb}L=\left\{ b a a, b a b, b b a, b b b\right\}. Какой из следующих языков является итерацией LL^{*} этого языка?

?
(а)

{w:w=bw и w делится на 3}{ε}\left\{ w: w=b w^{\prime } \text{ и } \left|w\right| \text{ делится на 3}\right\} \cup \left\{ \varepsilon \right\};

(б)

{w:w=bw и w3}{ε}\left\{ w: w=b w^{\prime } \text{ и } \left|w\right| \geqslant 3\right\} \cup \left\{ \varepsilon \right\};

(в)

{w:w=x1x2x3x3n,xi{a,b} и x3i+1=b для всех i<n}{ε}\left\{ w: w=x_{1} x_{2} x_{3} \ldots x_{3 n}, x_{i} \in \left\{ a, b\right\} \text{ и } x_{3 i+1}=b \text{ для всех }i<n\right\} \cup \left\{ \varepsilon \right\};

(г)

{w:w=bw и w12}\left\{ w: w=b w^{\prime } \text{ и } \left|w\right| \geqslant 12\right\}.

Задача 249

Доказать правильность регулярного выражения в примере 77 на стр. 316: выражение (1+01+001)(ε+0+00)(1+01+001)^{*}(\varepsilon +0+00) утверждается представляющим язык всех слов в алфавите {0,1}\{ 0,1\}, не содержащих подслово «000».

?
Задача 250

Определить, какой язык представляется следующими выражениями:

?
(а)

0100^{*} 1^{*} 0;

(б)

01001^{*} 0;

(в)

(01)0\left(01^{*}\right)^{*} 0;

(г)

(00+11+(01+10)(00+11)(01+10))\left(00+11+(01+10)(00+11)^{*}(01+10)\right)^{*}.

Задача 251

Доказать эквивалентности предложения 104 на стр. 315: для любых регулярных выражений r,q,pr, q, p

  1. r+pp+rr+p \equiv p+r (коммутативность объединения);

  2. (r+p)+qr+(p+q)(r+p)+q \equiv r+(p+q) (ассоциативность объединения);

  3. (rp)qr(pq)(r p) q \equiv r(p q) (ассоциативность конкатенации);

  4. (r)r(r^{*})^{*} \equiv r^{*} (идемпотентность итерации);

  5. (r+p)qrq+pq(r+p) q \equiv r q+p q (дистрибутивность).

?
Задача 252

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

?
(а)

p(p+q)p(qp)(p+qp)(p+q)p^{*}(p+q)^{*} \equiv p^{*}\left(q p^{*}\right)^{*} \equiv \left(p+q p^{*}\right)^{*} \equiv (p+q)^{*};

(б)

p(qp)(pq)pp(q p)^{*} \equiv (p q)^{*} p;

(в)

(pq)(qp)\left(p^{*} q^{*}\right)^{*} \equiv \left(q^{*} p^{*}\right)^{*};

(г)

(pq)+(qp+q)(pq)pq+p(p q)^{+}\left(q^{*} p^{*}+q^{*}\right) \equiv (p q)^{*} p q^{+} p^{*}.

Задача 253

Упростить следующие регулярные выражения:

?
(а)

000+(00)00^{*} 0+(00)^{*};

(б)

(0+1)(ε+00)++(0+1)(0+1)(\varepsilon +00)^{+}+(0+1);

(в)

(0+ε)01(0+\varepsilon ) 0^{*} 1;

(г)

(0+0)(01+0)\left(0^{*}+0\right)^{*}\left(01^{*}+0\right).

Задача 254

С помощью эквивалентных преобразований регулярных выражений упростить результат rr, полученный в примере 81 на стр. 328: r=(aa)+a(aa)(ba(aa))b(aa)+a(aa)+a(aa)(ba(aa))ba(aa)r=(a a)^{*}+a(a a)^{*}\left(b a(a a)^{*}\right)^{*} b(a a)^{*}+a(a a)^{*}+a(a a)^{*}\left(b a(a a)^{*}\right)^{*} b a(a a)^{*}.

?
Задача 255

Пусть Nr\mathfrak {N}_{r} — это автомат, который строится в доказательстве теоремы 111 на стр. 322 по регулярному выражению rr (теорема 111: для каждого регулярного выражения rr можно эффективно построить НКА, распознающий L(r)L(r), индукцией по построению rr — фиксированный автомат для каждого базисного случая \varnothing, ε\varepsilon, aΣa \in \Sigma, а по автоматам для r1r_{1} и r2r_{2} строится объединённый автомат для r1+r2r_{1}+r_{2}, r1&r2r_{1} \& r_{2} и r1r_{1}^{*} склейкой с новыми ε\varepsilon-переходами). Доказать следующие утверждения:

?
(а)

в диаграмме Nr\mathfrak {N}_{r} из каждой вершины выходит не более двух рёбер, а из принимающих — не более одного;

(б)

число состояний Nr\mathfrak {N}_{r} не более чем в три раза превосходит длину выражения rr, то есть Q3r\left|Q\right| \leqslant 3\left|r\right|;

(в)

при использовании оптимизированных методов число состояний Nr\mathfrak {N}_{r} не более чем в два раза превосходит длину выражения rr, то есть Q2r\left|Q\right| \leqslant 2\left|r\right|.

Задача 256

Завершить доказательство предложения 110 на стр. 321, показать, что если w(L(M1))w \in \left(L\left(\mathfrak {M}_{1}\right)\right)^{*}, то wL(N)w \in L(\mathfrak {N}), где M1\mathfrak {M}_{1} — конечный автомат с начальным состоянием q01q_{0}^{1} и единственным принимающим состоянием qf1q_{f}^{1}, а N\mathfrak {N} получен из M1\mathfrak {M}_{1} добавлением нового начального и единственного принимающего состояния q0q_{0} вместе с двумя ε\varepsilon-переходами q0εq01q_{0} \xrightarrow {\varepsilon } q_{0}^{1} и qf1εq0q_{f}^{1} \xrightarrow {\varepsilon } q_{0} (так что L(N)=(L(M1))L(\mathfrak {N})=(L(\mathfrak {M}_{1}))^{*} согласно предложению 110).

?
Задача 257

Применить процедуру детерминизации из теоремы 100 на стр. 302 (теорема 100: для каждого НКА N\mathfrak {N} можно эффективно построить такой ДКА M\mathfrak {M}, что L(M)=L(N)L(\mathfrak {M})=L(\mathfrak {N})) и построить ДКА, эквивалентный НКА N\mathfrak {N} из примера 80 на стр. 323.

?
Задача 258

Построить регулярное выражение, задающее язык LL в алфавите Σ={0,1}\Sigma =\left\{ 0,1\right\} :

?
(а)

L={w:w содержит нечётное количество цифр 0 и чётное количество цифр 1}L=\left\{ w: w\text{ содержит нечётное количество цифр 0 и чётное количество цифр 1}\right\};

(б)

L={w:w содержит подслово 001 или подслово 110}L=\left\{ w: w\text{ содержит подслово 001 или подслово 110}\right\};

(в)

L={w:w содержит по крайней мере два подряд идущих 0}L=\left\{ w: w\text{ содержит по крайней мере два подряд идущих 0}\right\};

(г)

L={w:w не содержит подслов 011 и 010}L=\left\{ w: w\text{ не содержит подслов 011 и 010}\right\}.

Задача 259

Пусть ww — произвольное слово длины k,m1,,mnk, m_{1}, \ldots , m_{n} — попарно различные натуральные числа, упорядоченные по возрастанию. Доказать, что язык {wm1,,wmn}\left\{ w^{m_{1}}, \ldots , w^{m_{n}}\right\} можно описать регулярным выражением длины не большей 4kmn+4n74 k m_{n}+4 n-7 (с учётом всех необходимых по определению символов).

?
Задача 260

Выше в задаче 243 на стр. 310 предлагалось построить автомат, который проверяет правильность сложения. Построить регулярное выражение, задающее распознаваемый этим автоматом язык SS, то есть следующее множество слов в алфавите {0,1}3\left\{ 0,1\right\}^{3} :

S = \left\{ \left\llbracket \begin{array}{l} a_{1} \\ b_{1} \\ c_{1} \end{array} \right\rrbracket \ldots \left\llbracket \begin{array}{l} a_{n} \\ b_{n} \\ c_{n} \end{array} \right\rrbracket \; : \; c_{n} \ldots c_{1} \text{ — сумма двоичных чисел } a_{n} \ldots a_{1} \text{ и } b_{n} \ldots b_{1}\right\}
?