Глава 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\}. Какой из следующих языков является итерацией L∗L^{*} этого языка?

?
(а)

{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′ и ∣w∣⩾3}∪{ε}\left\{ w: w=b w^{\prime } \text{ и } \left|w\right| \geqslant 3\right\} \cup \left\{ \varepsilon \right\};

(в)

{w:w=x1x2x3…x3n,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′ и ∣w∣⩾12}\left\{ w: w=b w^{\prime } \text{ и } \left|w\right| \geqslant 12\right\}.

Задача 249

Доказать правильность регулярного выражения в примере 77 на стр. 316.

?
Задача 250

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

?
(а)

0∗1∗00^{*} 1^{*} 0;

(б)

01∗001^{*} 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.

?
Задача 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;

(в)

(p∗q∗)∗≡(q∗p∗)∗\left(p^{*} q^{*}\right)^{*} \equiv \left(q^{*} p^{*}\right)^{*};

(г)

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

Задача 253

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

?
(а)

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

(б)

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

(в)

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

(г)

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

Задача 254

С помощью эквивалентных преобразований регулярных выражений упростить результат rr, полученный в примере 81 на стр. 328.

?
Задача 255

Пусть Nr\mathfrak {N}_{r} — это автомат, который строится в доказательстве теоремы 111 на стр. 322 по регулярному выражению rr. Доказать следующие утверждения:

?
(а)

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

(б)

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

(в)

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

Задача 256

Завершить доказательство предложения 110 на стр. 321, показать, что если w∈(L(M1))∗w \in \left(L\left(\mathfrak {M}_{1}\right)\right)^{*}, то w∈L(N)w \in L(\mathfrak {N}).

?
Задача 257

Применить процедуру детерминизации из теоремы 100 на стр. 302 и построить ДКА, эквивалентный HKA 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+4n−74 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\}
?