19

Регулярные языки и конечные автоматы

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

Определить конкатенацию для следующих пар языков 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\}.

Задача 457

Пусть 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\}.

Задача 458

Какие из следующих регулярных выражений задают все слова из нулей и единиц, в которых нет двух подряд идущих 0?

?
(а)

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

(б)

(1∗01∗)∗\left(1^{*} 01^{*}\right)^{*};

(в)

(01)∗1∗01∗(01)^{*} 1^{*} 01^{*};

(г)

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

(д)

(1+01)∗(0+1)(1+01)^{*}(0+1);

(е)

1∗(011∗)∗(ε+0)1^{*}\left(011^{*}\right)^{*}(\varepsilon +0).

Задача 459

Пусть регулярное выражение b(ab)∗b(a b)^{*} определяет некоторый язык над алфавитом Σ={a,b}\Sigma =\left\{ a, b\right\}. Какие из следующих регулярных выражений задают тот же язык?

Рис. 29: Программы автоматов из задачи 460.Рис. 29: Программы автоматов из задачи 460.

Рис. 30: Программы автоматов из задачи 461.Рис. 30: Программы автоматов из задачи 461.

?
(а)

a(ba)∗a(b a)^{*};

(б)

(ba)∗b(b a)^{*} b;

(в)

b∗ab∗b^{*} a b^{*};

(г)

b(ab+abab)∗b(a b+a b a b)^{*};

(д)

(ba)∗b(ab)∗(b a)^{*} b(a b)^{*};

(е)

(ab+ba)∗(a b+b a)^{*}.

Задача 460

Определить, какие из следующих трёх автоматов N1,N2,N3\mathfrak {N}_{1}, \mathfrak {N}_{2}, \mathfrak {N}_{3} распознают язык, представляемый регулярным выражением (00+1)∗1(00+1)^{*} 1 :

?
(а)

N1=({q,p,r,s,t},{0,1},P1,q,{t})\mathfrak {N}_{1}=\left(\left\{ q, p, r, s, t\right\} ,\left\{ 0,1\right\} , P_{1}, q,\left\{ t\right\} \right);

(б)

N2=({q,p,r,s},{0,1},P2,q,{s})\mathfrak {N}_{2}=\left(\left\{ q, p, r, s\right\} ,\left\{ 0,1\right\} , P_{2}, q,\left\{ s\right\} \right);

(в)

N3=({q,p,r,s,t},{0,1},P3,q,{s})\mathfrak {N}_{3}=\left(\left\{ q, p, r, s, t\right\} ,\left\{ 0,1\right\} , P_{3}, q,\left\{ s\right\} \right).

Программы автоматов заданы в таблице на рис. 29 (- означает отсутствие соответствующих переходов).

Задача 461

Определить, какие из следующих трёх автоматов N4,N5,N6\mathfrak {N}_{4}, \mathfrak {N}_{5}, \mathfrak {N}_{6} распознают язык, представляемый регулярным выражением 0(10+1)∗0(10+1)^{*} :

?
(а)

N4=({q,p,r,s,t},{0,1},P4,q,{t})\mathfrak {N}_{4}=\left(\left\{ q, p, r, s, t\right\} ,\left\{ 0,1\right\} , P_{4}, q,\left\{ t\right\} \right);

(б)

N5=({q,p,r,s},{0,1},P5,q,{p,r})\mathfrak {N}_{5}=\left(\left\{ q, p, r, s\right\} ,\left\{ 0,1\right\} , P_{5}, q,\left\{ p, r\right\} \right);

(в)

N6=({q,p,r,s,t},{0,1},P6,q,{p,r,s})\mathfrak {N}_{6}=\left(\left\{ q, p, r, s, t\right\} ,\left\{ 0,1\right\} , P_{6}, q,\left\{ p, r, s\right\} \right).

Программы автоматов заданы в таблице на рис. 30 на противоположной странице (- означает отсутствие соответствующих переходов).

Задача 462

Доказать, что регулярное выражение (1+01+001)∗(ε+0+00)(1+01+001)^{*}(\varepsilon +0+00) представляет язык, состоящий из всех слов в алфавите {0,1}\left\{ 0,1\right\}, которые не содержат подслово 000.

?
Задача 463

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

?
(а)

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)^{*}.

Задача 464

Доказать эквивалентности

?
(а)

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

(б)

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

(в)

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

(г)

(r∗)∗≡r∗\left(r^{*}\right)^{*} \equiv r^{*} (идемпотентность итерации);

(д)

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

Задача 465

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

?
(а)

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

Задача 466

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

?
(а)

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).

Задача 467

С помощью эквивалентных преобразований регулярных выражений упростить регулярное выражение 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)^{*}.

?
Задача 468

Доказать, что каждое регулярное выражение rr эквивалентно регулярному выражению ss вида s1+⋯+sns_{1}+\cdots +s_{n}, где регулярные выражения s1,…,sns_{1}, \ldots , s_{n} не содержат + .

?
Задача 469

Построить регулярное выражение, задающее язык 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\}.

Задача 470

Пусть 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 (с учётом всех необходимых по определению символов).

?
Задача 471

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

S={⟦[a1b1c1]…[anbncn]:cn…c1 — сумма  двоичных чисел an…a1 и bn…b1}. \begin{aligned} S=\left\{ \llbracket \left[\begin{smallmatrix} a_{1} \\ b_{1} \\ c_{1} \end{smallmatrix}\right] \ldots \left[\begin{smallmatrix} a_{n} \\ b_{n} \\ c_{n} \end{smallmatrix}\right]: c_{n} \ldots c_{1}\right. \text{ — сумма } & \\ & \text{ двоичных чисел } \left.a_{n} \ldots a_{1} \text{ и } b_{n} \ldots b_{1}\right\} . \end{aligned}
?
Задача 472

Построить регулярное выражение для языка из задачи 447 на стр. 133.

?
Задача 473

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

?
(а)

r1=aa(bb+aa)∗bbr_{1}=a a(b b+a a)^{*} b b;

(б)

r2=(a+bb)(a+b)∗(aa+bb)r_{2}=(a+b b)(a+b)^{*}(a a+b b);

(в)

r3=(a++b+)(ab+ba)∗r_{3}=\left(a^{+}+b^{+}\right)(a b+b a)^{*};

(г)

r4=(abb)∗(aab∗+bba∗)r_{4}=(a b b)^{*}\left(a a b^{*}+b b a^{*}\right);

(д)

r5=b∗(ab∗a)∗b∗r_{5}=b^{*}\left(a b^{*} a\right)^{*} b^{*};

(е)

r6=(ab+ba)∗(aa+bb)∗r_{6}=(a b+b a)^{*}(a a+b b)^{*}.

Задача 474

Для следующих пар регулярных выражений r1r_{1} и r2r_{2} построить регулярное выражение rr, представляющее пересечение языков L(r1)L\left(r_{1}\right) и L(r2)L\left(r_{2}\right) :

?
(а)

r1=aa(bab)∗bb,r2=a∗(bba)∗b+r_{1}=a a(b a b)^{*} b b, r_{2}=a^{*}(b b a)^{*} b^{+};

(б)

r1=(ba)∗(abb+ba)∗,r2=(abb)∗(a+bb)∗r_{1}=(b a)^{*}(a b b+b a)^{*}, r_{2}=(a b b)^{*}(a+b b)^{*};

(в)

r1=(b+ab)∗(aa+b)∗,r2=(ab+bb)∗(a∗+b∗)r_{1}=(b+a b)^{*}(a a+b)^{*}, r_{2}=(a b+b b)^{*}\left(a^{*}+b^{*}\right);

(г)

r1=b∗(ab+abb)∗(a∗+bb∗),r2=(b∗+(ab)∗)(b+aa)∗r_{1}=b^{*}(a b+a b b)^{*}\left(a^{*}+b b^{*}\right), r_{2}=\left(b^{*}+(a b)^{*}\right)(b+a a)^{*}.

Задача 475

Для следующих регулярных выражений r1r_{1} построить регулярное выражение rr, представляющее дополнение языка L(r1)L\left(r_{1}\right) :

?
(а)

r1=(ba)∗(b+aa)∗r_{1}=(b a)^{*}(b+a a)^{*};

(б)

r1=(ab)∗+(ba+bba)∗r_{1}=(a b)^{*}+(b a+b b a)^{*};

(в)

r1=(aa+ab)∗(b+a)∗r_{1}=(a a+a b)^{*}(b+a)^{*};

(г)

r1=(a+b)∗b(ba)∗b(bb)∗r_{1}=(a+b)^{*} b(b a)^{*} b(b b)^{*}.

Задача 476

Для следующих регулярных выражений r1r_{1} построить регулярное выражение rr с наименьшим количеством символов такое, чтобы выполнялось равенство (L(r))∗=(L(r1))∗(L(r))^{*}=\left(L\left(r_{1}\right)\right)^{*} :

?
(а)

r1=(b+a)(a+bb)∗r_{1}=(b+a)(a+b b)^{*};

(б)

r1=(a+ab+abb)∗b∗r_{1}=(a+a b+a b b)^{*} b^{*};

(в)

r1=b∗(bba+ba)∗r_{1}=b^{*}(b b a+b a)^{*};

(г)

r1=(baab+b(aa)∗)∗b∗r_{1}=\left(b a a b+b(a a)^{*}\right)^{*} b^{*}.

Задача 477

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

Рис. 31: Конечные автоматы из задачи 477.Рис. 31: Конечные автоматы из задачи 477.

?
(а)

???

(б)

???

(в)

???

(г)

???

Задача 478

Записать регулярное выражения для языка, который распознаётся автоматом на рис. 28 на стр. 136.

?