Глава 3

Контекстно-свободные языки

[95/52%]
Показать
LaTeX
§
Пример 3.1

Рассмотрим контекстно-свободную грамматику G1=({S},{0,1},{SεS0S1},S)G_{1}=(\left\{ S\right\} ,\left\{ 0,1\right\} ,\left\{ S \rightarrow \varepsilon \text{, }S \rightarrow 0 S 1\right\} , S). Чему равен язык L(G1)L\left(G_{1}\right)?

?
Пример 3.2

Рассмотрим контекстно-свободную грамматику G2=({S,A,B},{a,b},RG_{2}=(\left\{ S, A, B\right\} , \left\{ a, b\right\} , R, SS), где RR состоит из следующих правил:

SABA,Aabb,BbSε. S \longrightarrow A B A, \quad A \longrightarrow a \mid b b, \quad B \longrightarrow b S \mid \varepsilon .

Чему равен язык L(G2)L\left(G_{2}\right)?

?
Пример 3.3

Найдите контекстно-свободную грамматику, порождающую язык

L={0n12nn0} L=\left\{ 0^{n} 1^{2 n} \mid n \geq 0\right\}
?
Пример 3.4

Найдите контекстно-свободную грамматику, порождающую язык

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

Найдите контекстно-свободную грамматику, порождающую язык

L={x{a,b} каждый префикс строки x содержит не меньше символов a, чем символов b}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid \text{ каждый префикс строки } x \text{ содержит не меньше символов } a \text{, чем символов } b\right\} .
?
Пример 3.6

Найдите контекстно-свободную грамматику, порождающую

L={x{a,b}x содержит столько же символов a, сколько и символов b}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid x \text{ содержит столько же символов } a \text{, сколько и символов } b\right\} .
?
Пример 3.8

Постройте контекстно-свободную грамматику, порождающую регулярный язык, допускаемый ДКА на рисунке 3.1.

Рисунок 3.1: ДКА для примера 3.8.Рисунок 3.1: ДКА для примера 3.8.

?
Пример 3.9

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

Рисунок 3.2: Два НКА для примера 3.9.Рисунок 3.2: Два НКА для примера 3.9.

?
Пример 3.11

Пусть GG — регулярная грамматика со следующими правилами:

S01A00B11,A0B1C00,B0A1B,C01S. \begin{array}{ll} S \longrightarrow 01 A \mid 00 B \mid 11, & A \longrightarrow 0 B \mid 1 C \mid 00, \\ B \longrightarrow 0 A \mid 1 B, & C \longrightarrow 01 S. \end{array}

Постройте НКА, допускающий L(G)L(G).

?
Задача 3.1.1

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

?
(a)

SaSabSbabS \longrightarrow a S a \mid b S b \mid a \mid b.

(b)

SaSbSεS \longrightarrow a S \mid b S \mid \varepsilon.

(c)

SaSSbaS \longrightarrow a S \mid S b \mid a.

(d)

SSSabS \longrightarrow S S \mid a \mid b.

(e)

SSSaSbεS \longrightarrow S S \mid a S b \mid \varepsilon.

(f)

SaSaSbSεS \longrightarrow a S \mid a S b S \mid \varepsilon.

Задача 3.1.2

Покажите, что ни одна строка языка L(G)L(G) не содержит подстроку bab a, где GG — контекстно-свободная грамматика со следующими правилами:

SaSbTa,TbTb. S \longrightarrow a S \mid b T \mid a, \quad T \longrightarrow b T \mid b.
?
Задача 3.1.3

Покажите, что в каждой строке языка L(G)L(G) символов aa больше, чем символов bb, где GG — грамматика со следующими правилами:

SSabSSSSbSbSa. S \longrightarrow S a \mid b S S \mid S S b \mid S b S \mid a.
?
Задача 3.1.4
?
(a)

Покажите, что следующая грамматика не порождает язык {x{0,1}x содержит столько же 0, сколько и 1 }\left\{ x \in \left\{ 0,1\right\}^{*} \mid x\text{ содержит столько же 0, сколько и 1 }\right\} :

S0S101S1S010SS01S10ε. S \longrightarrow 0 S 1 \mid 01 S \mid 1 S 0 \mid 10 S \mid S 01 \mid S 10 \mid \varepsilon .
(b)

Покажите, что следующая грамматика порождает язык {x{0,1}x содержит столько же 0, сколько и 1 }\left\{ x \in \left\{ 0,1\right\}^{*} \mid x\text{ содержит столько же 0, сколько и 1 }\right\} :

SSS0S11S0ε. S \longrightarrow S S \mid 0 S 1 \mid 1 S 0 \mid \varepsilon .
Задача 3.1.5

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

?
(a)

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

(b)

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

(c)

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

(d)

Множество двоичных строк, у которых суффикс длины десять начинается с 000.

Задача 3.1.6

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

?
(a)

SbaSbSεS \longrightarrow b a S \mid b S \mid \varepsilon.

(b)

SSabSbabbS \longrightarrow S a b \mid S b \mid a b \mid b.

(c)

SAB,AbaAbAε,BBabBbabbS \longrightarrow A \mid B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(d)

SAB,AbaAbAε,BBabBbabbS \longrightarrow A B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(e)

SAABB,AbaAbAε,BBabBbabbS \longrightarrow A A \mid B B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

Задача 3.1.7

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

?
(a)

SAabB,AaAbAε,BBabBbabbS \longrightarrow A a b B, A \longrightarrow a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(b)

SAB,AAaAbab,BaBabBεS \longrightarrow A B, A \longrightarrow A a \mid A b \mid a \mid b, B \longrightarrow a B \mid a b B \mid \varepsilon.

(c)

SAAB,AaAabAbab,BaBbBεS \longrightarrow A A \mid B, A \longrightarrow a A a \mid b A b \mid a \mid b, B \longrightarrow a B \mid b B \mid \varepsilon.

(d)

SAB,AaAabAbab,BaBbBεS \longrightarrow A B, A \longrightarrow a A a \mid b A b \mid a \mid b, B \longrightarrow a B \mid b B \mid \varepsilon.

Задача 3.1.8

Контекстно-свободная грамматика G=(V,Σ,R,S)G=(V, \Sigma , R, S) называется линейной, если каждое её правило имеет вид AxBA \rightarrow x B, или ABxA \rightarrow B x, или AxA \rightarrow x, где A,BVA, B \in V и xΣx \in \Sigma^{*}. Покажите, что язык, порождаемый линейной грамматикой, не обязательно регулярен.

?
Задача 3.1.9

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

?
(a)

{anbmmn,mn чётно }\left\{ a^{n} b^{m} \mid m \geq n, m-n\text{ чётно }\right\}.

(b)

{xcnx{a,b},#a(x)=n или #b(x)=n}\left\{ x c^{n} \mid x \in \left\{ a, b\right\}^{*}, \#_{a}(x)=n\text{ или }\#_{b}(x)=n\right\}, где #a(x)\#_{a}(x) обозначает число вхождений символа aa в строку xx.

(c)

{xcnx{a,b},#a(x)+#b(x)n}\left\{ x c^{n} \mid x \in \left\{ a, b\right\}^{*}, \#_{a}(x)+\#_{b}(x) \geq n\right\}.

§
Пример 3.12

Найдите контекстно-свободную грамматику, порождающую язык

L={x{a,b}x содержит вдвое больше символов b, чем символов a}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid x \text{ содержит вдвое больше символов } b \text{, чем символов } a\right\} .
?
Пример 3.13

Найдите контекстно-свободную грамматику для языка

L={x{a,b}#b(x)=2#a(x)+3} L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid \# _{b}(x)=2 \# _{a}(x)+3\right\}
?
Пример 3.14

Найдите контекстно-свободную грамматику, порождающую язык

L={ambncpdqm+n=p+q} L=\left\{ a^{m} b^{n} c^{p} d^{q} \mid m+n=p+q\right\}
?
Пример 3.15

Найдите контекстно-свободную грамматику, порождающую язык

L={ambncpm+2np} L=\left\{ a^{m} b^{n} c^{p} \mid m+2 n \geq p\right\}
?
Пример 3.16

Найдите контекстно-свободную грамматику, порождающую язык

L={ambn3m5n4m} L=\left\{ a^{m} b^{n} \mid 3 m \leq 5 n \leq 4 m\right\}
?
Пример 3.19

Найдите контекстно-свободную грамматику, порождающую

L={0m1nmn,m,n0} L=\left\{ 0^{m} 1^{n} \mid m \neq n, m, n \geq 0\right\}
?
Пример 3.20

Найдите контекстно-свободную грамматику, порождающую

L={x{0,1}xww для любого w{0,1}} L=\left\{ x \in \left\{ 0,1\right\} ^{*} \mid x \neq w w \text{ для любого } w \in \left\{ 0,1\right\} ^{*}\right\}
?
Пример 3.21

Для i1i \geq 1 обозначим через bib_{i} двоичное представление целого числа ii (без ведущих нулей). Найдите контекстно-свободную грамматику, порождающую

L={0,1,#}{b1#b2##bnn1} L=\left\{ 0,1, \# \right\} ^{*}-\left\{ b_{1} \# b_{2} \# \cdots \# b_{n} \mid n \geq 1\right\}
?
Пример 3.60

(Повторное рассмотрение) Найдите контекстно-свободную грамматику, порождающую

L={x{a,b}x содержит столько же символов a, сколько и символов b}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid x \text{ содержит столько же символов } a \text{, сколько и символов } b\right\} .
?
Задача 3.2.1

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

?
(a)

{aibj2i=3j+1}\left\{ a^{i} b^{j} \mid 2 i=3 j+1\right\}.

(b)

{aibj2i3j+1}\left\{ a^{i} b^{j} \mid 2 i \neq 3 j+1\right\}.

(c)

{aibj2i3j4i}\left\{ a^{i} b^{j} \mid 2 i \leq 3 j \leq 4 i\right\}.

(d)

{aibj2i+33j4i2}\left\{ a^{i} b^{j} \mid 2 i+3 \leq 3 j \leq 4 i-2\right\}.

Задача 3.2.2

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

?
(a)

{aibjckik или jk}\left\{ a^{i} b^{j} c^{k} \mid i \geq k\text{ или }j \geq k\right\}.

(b)

{aibjcki+j=k}\left\{ a^{i} b^{j} c^{k} \mid i+j=k\right\}.

(c)

{aibjckj=i+k}\left\{ a^{i} b^{j} c^{k} \mid j=i+k\right\}.

(d)

{aibjckji+k3}\left\{ a^{i} b^{j} c^{k} \mid j \geq i+k-3\right\}.

(e)

{aibjcki+jk+3}\left\{ a^{i} b^{j} c^{k} \mid i+j \neq k+3\right\}.

(f)

{aibjcki+2j=k}\left\{ a^{i} b^{j} c^{k} \mid i+2 j=k\right\}.

(g)

{aibjcki+2jk(mod3)}\left\{ a^{i} b^{j} c^{k} \mid i+2 j \equiv k(\bmod 3)\right\}.

(h)

{aibjcki+2j=3k}\left\{ a^{i} b^{j} c^{k} \mid i+2 j=3 k\right\}.

(i)

{aibjcki+2k3j}\left\{ a^{i} b^{j} c^{k} \mid i+2 k \geq 3 j\right\}.

(j)

{aibjcki+2k3j2i+3k}\left\{ a^{i} b^{j} c^{k} \mid i+2 k \leq 3 j \leq 2 i+3 k\right\}.

Задача 3.2.3

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

?
(a)

{aibjckdi+k=j+}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+k=j+\ell \right\}.

(b)

{aibjckdi+kj++3}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+k \leq j+\ell +3\right\}.

(c)

{aibjckdi+2k=j+3}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+2 k=j+3 \ell \right\}.

(d)

{aibjckdi+2kj+3}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+2 k \neq j+3 \ell \right\}.

(e)

{aibjckdi+2=j+3k}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+2 \ell =j+3 k\right\}.

(f)

{aibjckdi+2j+3k}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid i+2 \ell \neq j+3 k\right\}.

(g)

{bi#bi+1Rbi является двоичным представлением целого числа i,i0}\left\{ b_{i} \# b_{i+1}^{R} \mid b_{i}\text{ является двоичным представлением целого числа }i, i \geq 0\right\}.

Задача 3.2.4

Постройте контекстно-свободную грамматику, порождающую все регулярные выражения над алфавитом {a,b}\left\{ a, b\right\}.

?
Задача 3.2.5

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

?
(a)

{xR#yx,y{0,1},x является подстрокой y}\left\{ x^{R} \# y \mid x, y \in \left\{ 0,1\right\}^{*}, x\text{ является подстрокой }y\right\}.

(b)

{xR#yx,y{0,1},x является подпоследовательностью y}\left\{ x^{R} \# y \mid x, y \in \left\{ 0,1\right\}^{*}, x\text{ является подпоследовательностью }y\right\}. (Строка x=x1x2xkx= x_{1} x_{2} \cdots x_{k} является подпоследовательностью строки y=y1y2yny=y_{1} y_{2} \cdots y_{n}, где каждый xix_{i} и каждый yjy_{j} — отдельная буква, если существуют 1j1<j2<<jkn1 \leq j_{1}<j_{2}<\cdots < j_{k} \leq n, такие что yj=xy_{j_{\ell }}=x_{\ell } для 1k1 \leq \ell \leq k.)

(c)

{ambyy(a+b)n1,n>m1}\left\{ a^{m} b y \mid y \in \left(a^{+} b\right)^{n-1}, n>m \geq 1\right\}.

(d)

{ambyy(a+b)n1,m>n1}\left\{ a^{m} b y \mid y \in \left(a^{+} b\right)^{n-1}, m>n \geq 1\right\}.

(e)

{x1#x2##xnx1,,xn{0,1},(1i<jn)[xi=xjR]}\left\{ x_{1} \# x_{2} \# \cdots \# x_{n} \mid x_{1}, \ldots , x_{n} \in \left\{ 0,1\right\}^{*},(\exists 1 \leq i<j \leq n) \left[x_{i}=x_{j}^{R}\right]\right\}.

(f)

{x1#x2##xnx1,,xn{0,1},(1i<jn)[xixj]}\left\{ x_{1} \# x_{2} \# \cdots \# x_{n} \mid x_{1}, \ldots , x_{n} \in \left\{ 0,1\right\}^{*},(\exists 1 \leq i<j \leq n) \left[x_{i} \neq x_{j}\right]\right\}.

(g)

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

(h)

L=(0+1){(0n1n)nn1}L=(0+1)^{*}-\left\{ \left(0^{n} 1^{n}\right)^{n} \mid n \geq 1\right\}.

§
Пример 3.22

Определите, принадлежит ли x=x= abaca языку L(G)L(G), где G=({S},{a,b,c},{SSbSScSa},S)G=(\left\{ S\right\} , \left\{ a, b, c\right\} ,\left\{ S \rightarrow S b S \mid S c S \mid a\right\} , S).

?
Пример 3.23

Рассмотрим следующую грамматику GG, в которой слово вида \langle \cdots \rangle обозначает нетерминал, а остальные слова обозначают терминалы:

 stmt  if  cond  then  matchstmt  matchstmt  matchstmt  if  cond  then  matchstmt  else  stmt  simplestmt  cond C1C2C3 simplestmt A1A2A3 \begin{aligned} \langle \text{ stmt }\rangle & \longrightarrow \text{ if }\langle \text{ cond }\rangle \text{ then }\langle \text{ matchstmt }\rangle \mid \langle \text{ matchstmt }\rangle \\ \langle \text{ matchstmt }\rangle & \rightarrow \text{ if }\langle \text{ cond }\rangle \text{ then }\langle \text{ matchstmt }\rangle \text{ else }\langle \text{ stmt }\rangle \mid \langle \text{ simplestmt }\rangle \\ \langle \text{ cond }\rangle & \longrightarrow C_{1} \mid C_{2} \mid C_{3} \\ \langle \text{ simplestmt }\rangle & \longrightarrow A_{1} \mid A_{2} \mid A_{3} \end{aligned}

Пусть xx — предложение

 if C1 then if C2 then A1 else if C3 then A2 else A3 \text{ if } C_{1} \text{ then if } C_{2} \text{ then } A_{1} \text{ else if } C_{3} \text{ then } A_{2} \text{ else } A_{3} \text{. }

Найдите два различных дерева разбора для xx.

?
Пример 3.24
?
(a)

Покажите, что следующая контекстно-свободная грамматика GG для арифметических выражений над переменными aa и bb неоднозначна:

EE+EEEEEE÷E(E)ab. E \longrightarrow E+E \mid E-E \mid E * E \mid E \div E \mid (E) \mid a \mid b.
(b)

Найдите эквивалентную однозначную грамматику для L(G)L(G).

Пример 3.25

Пусть #a(w)\#_{a}(w) обозначает число вхождений символа a в строку ww. Пусть L={x{a,b}#a(x)=#b(x)}L=\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x)=\#_{b}(x)\right\}.

?
(a)

Покажите, что оба решения из примера 3.6 для LL неоднозначны:

G1:SaSbSbSaSε.G2:SεaBbA,AaSbAA,BbSaBB. \begin{aligned} & G_{1}: S \longrightarrow a S b S|b S a S| \varepsilon . \\ & G_{2}: S \longrightarrow \varepsilon |a B| b A, \quad A \longrightarrow a S|b A A, \quad B \longrightarrow b S| a B B. \end{aligned}
(b)

Найдите однозначную контекстно-свободную грамматику для языка LL.

Пример 3.27

Покажите, что контекстно-свободная грамматика GG с правилами

SaA,ABAa,BbScS S \longrightarrow a A, \quad A \longrightarrow B A \mid a, \quad B \longrightarrow b S \mid c S

однозначна.

?
Задача 3.3.1

Пусть GG — контекстно-свободная грамматика с правилами

SaSaaB,BbbBccC,Cbc. S \longrightarrow a S a a \mid B, \quad B \longrightarrow b b B c c \mid C, \quad C \longrightarrow b c.
?
(a)

Постройте дерево разбора для a3b3c3a6a^{3} b^{3} c^{3} a^{6}.

(b)

Покажите, что эта грамматика однозначна.

Задача 3.3.2

Пусть GG — контекстно-свободная грамматика с правилами

SAaSbBε,AaAa,BbBε. S \longrightarrow A a S b B \mid \varepsilon , \quad A \longrightarrow a A \mid a, \quad B \longrightarrow b B \mid \varepsilon .
?
(a)

Покажите, что GG неоднозначна.

(b)

Найдите однозначную контекстно-свободную грамматику, эквивалентную GG.

Задача 3.3.3

Рассмотрим грамматику GG с правилами

SaAcaabAbcc,Aaabε. S \longrightarrow a A c a a \mid b A b c c, \quad A \longrightarrow a \mid a b \mid \varepsilon .

Найдите минимальное kk, при котором GG является сильной LL(k)\mathrm{LL}(k)-грамматикой.

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

Покажите, что грамматика G3G_{3} из примера 3.25(b) является сильной LL(1)\mathrm{LL}(1)-грамматикой.

(b)

Удовлетворяет ли грамматика из примера 3.24(b) условию леммы 3.26? Удовлетворяет ли она условию сильной LL(k)\mathrm{LL}(k) хотя бы для одного k0k \geq 0?

Задача 3.3.5

Преобразуйте грамматику G2G_{2} из примера 3.25 в эквивалентную ей однозначную грамматику.

?
Задача 3.3.6

Левой факторизацией грамматики GG называется операция замены правил Aaα1aαkA \rightarrow a \alpha_{1} \mid \cdots \mid a \alpha_{k} на AaAA \rightarrow a A^{\prime } и Aα1αkA^{\prime } \rightarrow \alpha_{1} \mid \cdots \mid \alpha_{k}, где aΣa \in \Sigma и α1,,αk(VΣ)\alpha_{1}, \ldots , \alpha_{k} \in (V \cup \Sigma )^{*}. Докажите следующие утверждения:

?
(a)

Грамматика GG неоднозначна тогда и только тогда, когда неоднозначна грамматика GG^{\prime }, полученная в результате левой факторизации грамматики GG.

(b)

Если после операции левой факторизации грамматика GG становится сильной LL(k)\mathrm{LL}(k)-грамматикой, то GG обязательно является сильной LL(k+1)\mathrm{LL}(k+1)-грамматикой. Верно ли обратное?

Задача 3.3.7

Для каждой из следующих контекстно-свободных грамматик определите, является ли она сильной LL(1)\mathrm{LL}(1)-грамматикой. Если нет, найдите эквивалентную ей сильную LL(1)-грамматику.

?
(a)

SS1$,S1aaS1bbbabS \longrightarrow S_{1} \$, \quad S_{1} \longrightarrow a a S_{1} b \mid b b \mid a b.

(b)

SS1$,S1aAS1bS1c,AbAcεS \longrightarrow S_{1} \$, \quad S_{1} \longrightarrow a A \mid S_{1} b \mid S_{1} c, \quad A \longrightarrow b A c \mid \varepsilon.

Задача 3.3.8

Покажите, что следующие грамматики не являются сильными LL(k)\mathrm{LL}(k)-грамматиками ни при каком k>0k>0, но при этом являются однозначными.

?
(a)

SaSbA,AaAcεS \longrightarrow a S b \mid A, A \longrightarrow a A c \mid \varepsilon.

(b)

SAB,AaAbab,BaBcacS \longrightarrow A \mid B, A \longrightarrow a A b \mid a b, B \longrightarrow a B c \mid a c.

§
Пример 3.28

Рассмотрим МП-автомат M=({q,p},{a,b,c},{a,b},δ,q,{p})M=(\left\{ q, p\right\} , \left\{ a, b, c\right\} , \left\{ a, b\right\} , \delta , q,\left\{ p\right\} ), где δ\delta определена следующим образом:

δ(q,a,ε)={(q,a)},δ(p,a,a)={(p,ε)},δ(q,b,ε)={(q,b)},δ(p,b,b)={(p,ε)},δ(q,c,ε)={(p,ε)}. \begin{array}{ll} \delta (q, a, \varepsilon )=\left\{ (q, a)\right\} , & \delta (p, a, a)=\left\{ (p, \varepsilon )\right\} , \\ \delta (q, b, \varepsilon )=\left\{ (q, b)\right\} , & \delta (p, b, b)=\left\{ (p, \varepsilon )\right\} , \\ \delta (q, c, \varepsilon )=\left\{ (p, \varepsilon )\right\} . & \end{array}

Определите, чему равно L(M)L(M).

?
Пример 3.29

Постройте МП-автомат, принимающий язык {wwRw{a,b}}\left\{ w w^{R} \mid w \in \left\{ a, b\right\}^{*}\right\}.

?
Пример 3.30

Постройте МП-автомат, принимающий язык

{aibjcki,j,k0,i+k=j}. \left\{ a^{i} b^{j} c^{k} \mid i, j, k \geq 0, i+k=j\right\} .
?
Пример 3.31

Постройте МП-автомат, принимающий язык

L={aibj2i3j}. L=\left\{ a^{i} b^{j} \mid 2 i \neq 3 j\right\} .
?
Пример 3.32

Постройте МП-автомат, принимающий язык

L={x{a,b}2#a(x)3#b(x)}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid 2 \# _{a}(x) \neq 3 \# _{b}(x)\right\} .
?
Пример 3.33

Постройте МП-автомат MM, принимающий следующий язык:

{w{a,b}#a(w)#b(w)2#a(w)}. \left\{ w \in \left\{ a, b\right\} ^{*} \mid \# _{a}(w) \leq \# _{b}(w) \leq 2 \# _{a}(w)\right\} .
?
Пример 3.34

Постройте МП-автомат MM, принимающий язык

L={w{a,b}3#a(w)5#b(w)4#a(w)}. L=\left\{ w \in \left\{ a, b\right\} ^{*} \mid 3 \# _{a}(w) \leq 5 \# _{b}(w) \leq 4 \# _{a}(w)\right\} .
?
Задача 3.4.1

Для каждого из следующих языков LL постройте МП-автомат, принимающий LL. Кроме того, для каждой заданной строки xLx \in L покажите принимающий путь вычисления вашего МП-автомата на xx.

?
(a)

{anbmm,n0,m3n};x=a2b4\left\{ a^{n} b^{m} \mid m, n \geq 0, m \neq 3 n\right\} ; x=a^{2} b^{4}.

(b)

{anbm02nm3n};x=a2b5\left\{ a^{n} b^{m} \mid 0 \leq 2 n \leq m \leq 3 n\right\} ; x=a^{2} b^{5}.

(c)

{anbm02n3m4n2};x=a3b3\left\{ a^{n} b^{m} \mid 0 \leq 2 n \leq 3 m \leq 4 n-2\right\} ; x=a^{3} b^{3}.

(d)

{aibjcki,j,k0,i+2k=j};x=a3b7c2\left\{ a^{i} b^{j} c^{k} \mid i, j, k \geq 0, i+2 k=j\right\} ; x=a^{3} b^{7} c^{2}.

(e)

{aibjcki,j,k0,2i+3k4j};x=a4b4c2\left\{ a^{i} b^{j} c^{k} \mid i, j, k \geq 0,2 i+3 k \leq 4 j\right\} ; x=a^{4} b^{4} c^{2}.

(f)

{aibjckdli,j,k0,i+kj+l};x=a2b4c5d3\left\{ a^{i} b^{j} c^{k} d^{l} \mid i, j, k \geq 0, i+k \leq j+l\right\} ; x=a^{2} b^{4} c^{5} d^{3}.

(g)

{aibjckdli,j,k0,2i+3k4j+l};x=a3b4c4d5\left\{ a^{i} b^{j} c^{k} d^{l} \mid i, j, k \geq 0,2 i+3 k \leq 4 j+l\right\} ; x=a^{3} b^{4} c^{4} d^{5}.

(h)

{w{a,b}2#a(w)+53#b(w)};x=abbabba\left\{ w \in \left\{ a, b\right\}^{*} \mid 2 \#_{a}(w)+5 \leq 3 \#_{b}(w)\right\} ; x=a b b a b b a.

(i)

{w{a,b}2#a(w)3#b(w)4#a(w)};x=abbaaab\left\{ w \in \left\{ a, b\right\}^{*} \mid 2 \#_{a}(w) \leq 3 \#_{b}(w) \leq 4 \#_{a}(w)\right\} ; x=a b b a a a b.

(j)

{w{a,b,c}#a(w)#b(w)+3#c(w)};x=aacabbbaa\left\{ w \in \left\{ a, b, c\right\}^{*} \mid \#_{a}(w) \leq \#_{b}(w)+3 \#_{c}(w)\right\} ; x=a a c a b b b a a.

(k)

{w{a,b,c}2#a(w)#b(w)+3#c(w)5#a(w)};x=\left\{ w \in \left\{ a, b, c\right\}^{*} \mid 2 \#_{a}(w) \leq \#_{b}(w)+3 \#_{c}(w) \leq 5 \#_{a}(w)\right\} ; x= acabcc.

Задача 3.4.2

В примере 3.32 после завершения обработки входных символов мы переходим в одно из заключительных состояний pap_{a} или pbp_{b}, если стек непуст. Покажите, что эти два отдельных состояния необходимы. А именно, предположим, что мы объединили состояния pap_{a} и pbp_{b} с рисунка 3.15 в единственное заключительное состояние pp с инструкциями

δ(s,ε,a)=δ(s,ε,b)=δ(p,ε,a)=δ(p,ε,b)=(p,ε) \delta (s, \varepsilon , a)=\delta (s, \varepsilon , b)=\delta (p, \varepsilon , a)=\delta (p, \varepsilon , b)=(p, \varepsilon )

Покажите, что в этом случае новый МП-автомат будет принимать некоторые строки, не принадлежащие LL.

?
Задача 3.4.3

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

?
(a)

МП-автомату разрешается заносить в стек два стековых символа за один шаг; то есть функция переходов δ\delta имеет следующий вид:

δ:Q×(Σ{ε})×(Γ{ε})2Q×({ε}ΓΓ2) \delta : Q \times (\Sigma \cup \left\{ \varepsilon \right\} ) \times (\Gamma \cup \left\{ \varepsilon \right\} ) \rightarrow 2^{Q \times \left(\left\{ \varepsilon \right\} \cup \Gamma \cup \Gamma ^{2}\right)}
(b)

МП-автомату разрешается заносить в стек любое число стековых символов за один шаг; то есть функция переходов δ\delta имеет следующий вид:

δ:Q×(Σ{ε})×(Γ{ε})2Q×Γ. \delta : Q \times (\Sigma \cup \left\{ \varepsilon \right\} ) \times (\Gamma \cup \left\{ \varepsilon \right\} ) \rightarrow 2^{Q \times \Gamma ^{*}}.
(c)

МП-автомат обязан снимать со стека верхний элемент при каждом шаге и может заносить в стек два стековых символа за один шаг; то есть функция переходов δ\delta имеет следующий вид:

δ:Q×(Σ{ε})×Γ2Q×({ε}ΓΓ2) \delta : Q \times (\Sigma \cup \left\{ \varepsilon \right\} ) \times \Gamma \rightarrow 2^{Q \times \left(\left\{ \varepsilon \right\} \cup \Gamma \cup \Gamma ^{2}\right)}

(Предполагается, что МП-автомат начинает работу со специальным символом $ в стеке, то есть начальная конфигурация есть (s,x,$s, x, \$).)

(d)

МП-автомат принимает входную строку, если после завершения чтения входных символов он достигает заключительного состояния (независимо от того, пуст стек или нет); то есть МП-автомат принимает строку xΣx \in \Sigma^{*}, если (s,x,ε)(q,ε,γ)(s, x, \varepsilon ) \vdash^{*}(q, \varepsilon , \gamma ) для некоторого qFq \in F и некоторого γΓ\gamma \in \Gamma^{*}.

Задача 3.4.4

МП-автомат M=(Q,Σ,Γ,δ,s,F)M=(Q, \Sigma , \Gamma , \delta , s, F) называется детерминированным МП-автоматом, если ни одна конфигурация MM не имеет более одной последующей конфигурации (однако у незаключительной конфигурации может не быть последующей). Для каждого из примеров 3.28--3.33 выполните следующее:

?
(a)

Определите, является ли МП-автомат, заданный в примере, детерминированным.

(b)

Если ответ на (a) отрицательный, определите, существует ли эквивалентный детерминированный МП-автомат, принимающий тот же язык. Если да, приведите ваш детерминированный МП-автомат; если нет, покажите почему. [Указание: один из способов устранить (часть) недетерминизма в МП-автомате состоит в использовании модели МП-автомата из упражнения 3(c).]

§
Пример 3.36

Рассмотрим контекстно-свободную грамматику G=({S},{a,b},R,S)G=(\left\{ S\right\} , \left\{ a, b\right\} , R, S) с правилами

SaSaSbSε. S \longrightarrow a S \mid a S b S \mid \varepsilon .

Постройте автомат с магазинной памятью MM, такой что L(M)=L(G)L(M)=L(G).

?
Пример 3.38

Постройте контекстно-свободную грамматику GG, такую что L(G)=L(M)L(G)= L(M), где MM — автомат с магазинной памятью из примера 3.29.

?
Пример 3.39

Покажите, что если AA — регулярный язык, а BB — контекстно-свободный язык, то ABA \cap B — контекстно-свободный язык.

?
Пример 3.40

Покажите, что L={0,1}{(0m1m)nm,n1}L= \left\{ 0,1\right\}^{*}-\left\{ \left(0^{m} 1^{m}\right)^{n} \mid m, n \geq 1\right\} — контекстно-свободный язык.

?
Пример 3.41

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

?
Пример 3.42

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

L~={xz(y)[x=y=z,xyzL]} \widetilde{L}=\left\{ x z \mid (\exists y)[\left|x\right|=\left|y\right|=\left|z\right|, x y z \in L]\right\}

контекстно-свободен.

?
Задача 3.5.1

Для каждой из следующих контекстно-свободных грамматик GG, следуя процедуре из теоремы 3.35, постройте автомат с магазинной памятью, допускающий язык L(G)L(G):

?
(a)

SεaSbSbSaSS \rightarrow \varepsilon \mid a S b S \mid b S a S.

(b)

SεSSaSbS \longrightarrow \varepsilon \mid S S \mid a S b.

(c)

Грамматика из решения 2 примера 3.6.

(d)

Однозначная грамматика из примера 3.24(b).

Задача 3.5.2

Для каждого из следующих автоматов с магазинной памятью MM, следуя процедуре из теоремы 3.37, постройте контекстно-свободную грамматику, порождающую язык L(M)L(M):

?
(a)

Автомат из примера 3.30.

(b)

Автомат с рисунка 3.14(a) (для языка {aibj2i=3j}\left\{ a^{i} b^{j} \mid 2 i=3 j\right\}).

Задача 3.5.3

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

?
(a)

{0n1mmn,m2n,m3n}\left\{ 0^{n} 1^{m} \mid m \neq n, m \neq 2 n, m \neq 3 n\right\}.

(b)

{aibjckij или jk или ik}\left\{ a^{i} b^{j} c^{k} \mid i \neq j\text{ или }j \neq k\text{ или }i \neq k\right\}.

(c)

{0,1}{(0n1)nn1}\left\{ 0,1\right\}^{*}-\left\{ \left(0^{n} 1\right)^{n} \mid n \geq 1\right\}.

(d)

{0,1}{bi#bi+1bi является двоичным представлением i,i1}\left\{ 0,1\right\}^{*}-\left\{ b_{i} \# b_{i+1} \mid b_{i}\text{ является двоичным представлением }i, i \geq 1\right\}.

Задача 3.5.4

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

?
(a)

{xLx=xR}\left\{ x \in L \mid x=x^{R}\right\}.

(b)

{wy(x,z)[w=x=y=z,wxyzL]}\left\{ w y \mid (\exists x, z)\left[\left|w\right|=\left|x\right|=\left|y\right|=\left|z\right|, w x y z \in L\right]\right\}.

(c)

{yx(w,z)[w=x=y=z,wxyzL]}\left\{ y x \mid (\exists w, z)\left[\left|w\right|=\left|x\right|=\left|y\right|=\left|z\right|, w x y z \in L\right]\right\}.

(d)

{xzw=x=y=z,wxyzL}\left\{ x z \mid \left|w\right|=\left|x\right|=\left|y\right|=\left|z\right|, w x y z \in L\right\}.

Задача 3.5.5

Покажите, что L1\L2L_{1} \backslash L_{2} — контекстно-свободный язык, если L1L_{1} контекстно-свободен, а L2L_{2} регулярен.

?
Задача 3.5.6

Автомат с двумя магазинными памятями (2-стековый автомат) — это автомат с магазинной памятью, имеющий два стека. На каждом шаге MM может, помимо входного символа, читать верхние символы обоих стеков и записывать символы в оба стека. Формально, 2-стековый автомат — это шестёрка M=(Q,Σ,Γ,δ,s,F)M=(Q, \Sigma , \Gamma , \delta , s, F), где Q,Σ,Γ,s,FQ, \Sigma , \Gamma , s, F имеют тот же смысл, что и для обычного автомата с магазинной памятью, а δ\delta — функция переходов

δ:Q×(Σ{ε})×(Γ{ε})22Q×(Γ{ε})2 \delta : Q \times (\Sigma \cup \left\{ \varepsilon \right\} ) \times (\Gamma \cup \left\{ \varepsilon \right\} )^{2} \rightarrow 2^{Q \times (\Gamma \cup \left\{ \varepsilon \right\} )^{2}}

Пусть aΣ{ε}a \in \Sigma \cup \left\{ \varepsilon \right\}, и u1,u2,v1,v2Γ{ε}u_{1}, u_{2}, v_{1}, v_{2} \in \Gamma \cup \left\{ \varepsilon \right\}. Тогда инструкция (p,v1,v2)δ(q,a,u1,u2)\left(p, v_{1}, v_{2}\right) \in \delta \left(q, a, u_{1}, u_{2}\right) означает, что автомат MM читает входной символ aa, верхний символ u1u_{1} стека 1, верхний символ u2u_{2} стека 2, а затем переходит в состояние pp, заменяет u1u_{1} на v1v_{1} и заменяет u2u_{2} на v2v_{2}.

?
(a)

Дайте формальное определение понятий конфигурации и следующей конфигурации 2-стекового автомата.

(b)

Постройте 2-стековый автомат, допускающий язык {anbncnn0}\left\{ a^{n} b^{n} c^{n} \mid n \geq 0\right\}.

(c)

Постройте 2-стековый автомат, допускающий язык {anbmcndmnm}\left\{ a^{n} b^{m} c^{n} d^{m} \mid n \geq m\right\}.

Задача 3.5.7

Автомат с магазинной памятью MM называется линейно ограниченным автоматом, если существует константа c>0c>0, такая что размер стека автомата MM в ходе вычисления на любом входе xx ограничен величиной cxc\left|x\right|. Покажите, что класс языков, допускаемых линейно ограниченными автоматами с магазинной памятью, в точности совпадает с классом контекстно-свободных языков.

?
§
Пример 3.44

Покажите, что {anbncnn0}\left\{ a^{n} b^{n} c^{n} \mid n \geq 0\right\} не является контекстно-свободным языком.

?
Пример 3.45

Покажите, что L={www{0,1}}L=\left\{ w w \mid w \in \left\{ 0,1\right\}^{*}\right\} не является контекстно-свободным языком.

?
Пример 3.46

Покажите, что L={0n1mmn2}L=\left\{ 0^{n} 1^{m} \mid m \leq n^{2}\right\} не является контекстно-свободным языком.

?
Пример 3.47

Покажите, что L={aibjckk=max{i,j}}L=\left\{ a^{i} b^{j} c^{k} \mid k=\max \left\{ i, j\right\} \right\} не является контекстно-свободным языком.

?
Пример 3.49

Покажите, что L={w{a,b,c}#a(w)=#b(w)=#c(w)}L=\left\{ w \in \left\{ a, b, c\right\}^{*} \mid \#_{a}(w)=\#_{b}(w)=\#_{c}(w)\right\} не является контекстно-свободным.

?
Пример 3.50

Покажите, что если множество LL обладает тем свойством, что каждое его подмножество контекстно-свободно, то LL обязательно конечно.

?
Пример 3.52

Покажите, что L={anbnciin}L=\left\{ a^{n} b^{n} c^{i} \mid i \neq n\right\} не является контекстно-свободным.

?
Пример 3.53

Покажите, что L={bi1#bi2##bikk2, каждое bij является двоичным представлением целого числа ij>0, и (i1,i2,,ik) содержит целое число, встречающееся ровно дважды}L=\left\{ b_{i_{1}} \# b_{i_{2}} \# \cdots \# b_{i_{k}} \mid k \geq 2\text{, каждое }b_{i_{j}}\text{ является двоичным представлением целого числа }i_{j}>0\text{, и }\left(i_{1}, i_{2}, \ldots , i_{k}\right)\text{ содержит целое число, встречающееся ровно дважды}\right\} не является контекстно-свободным.

?
Пример 3.54

Покажите, что язык L={aibjcki=j или j=k}L=\left\{ a^{i} b^{j} c^{k} \mid i=j\text{ или }j=k\right\} является существенно неоднозначным.

?
Пример 3.56

Язык LL над одноэлементным алфавитом {0}\left\{ 0\right\} является контекстно-свободным тогда и только тогда, когда он регулярен.

?
Пример 3.57

Покажите, что {0n2n1}\left\{ 0^{n^{2}} \mid n \geq 1\right\} не является пересечением kk контекстно-свободных языков над алфавитом {0,1}\left\{ 0,1\right\} ни для какого kk.

?
Пример 3.58

Покажите, что язык L={ambnnm2}L=\left\{ a^{m} b^{n} \mid n \neq m^{2}\right\} не является контекстно-свободным.

?
Пример 3.59

Покажите, что L={apbqgcd(p,q)=1}L=\left\{ a^{p} b^{q} \mid \operatorname {gcd}(p, q)=1\right\} не является контекстно-свободным.

?
Задача 3.6.1

Докажите следующие варианты леммы о накачке для контекстно-свободных языков:

?
(a)

Для любого контекстно-свободного языка LL существует константа K>0K>0, такая что любую строку ww из LL с w>K\left|w\right|>K можно разложить в вид w=uv1v2xy2y1zw=u v_{1} v_{2} x y_{2} y_{1} z, удовлетворяющий следующим условиям:

(1) v1v2xy2y1K\left|v_{1} v_{2} x y_{2} y_{1}\right| \leq K,

(2) v1y1>0,v2y2>0\left|v_{1} y_{1}\right|>0,\left|v_{2} y_{2}\right|>0, и

(3) для любого n0n \geq 0, uv1nv2nxwy2ny1nzLu v_{1}^{n} v_{2}^{n} x w y_{2}^{n} y_{1}^{n} z \in L.

(b)

Для любого контекстно-свободного языка LL существует константа K>0K>0, такая что любую строку ww из LL с w>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vxyK\left|v x y\right| \leq K,

(2) v>0,y>0\left|v\right|>0,\left|y\right|>0, и

(3) для любого n0n \geq 0, uvnxynzLu v^{n} x y^{n} z \in L.

(c)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с w>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vyk\left|v y\right| \geq k, и

(2) для любого n0n \geq 0, uvnxynzLu v^{n} x y^{n} z \in L.

(d)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с w>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vk,yk\left|v\right| \geq k,\left|y\right| \geq k, и

(2) для любого n0n \geq 0, uvnxynzLu v^{n} x y^{n} z \in L.

(e)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с w>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vxyK\left|v x y\right| \leq K,

(2) vk,yk\left|v\right| \geq k,\left|y\right| \geq k, и

(3) для любого n0n \geq 0, uvnxynzLu v^{n} x y^{n} z \in L.

Задача 3.6.2

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

?
(a)

{aibjcki<j<k}\left\{ a^{i} b^{j} c^{k} \mid i<j<k\right\}.

(b)

{aibjckij,jk,ki}\left\{ a^{i} b^{j} c^{k} \mid i \neq j, j \neq k, k \neq i\right\}.

(c)

{aibjcki<j или k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j\text{ или }k<j\right\}.

(d)

{aibjcki<j и k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j\text{ и }k<j\right\}.

(e)

{aibjcki<jk<j}\left\{ a^{i} b^{j} c^{k} \mid i<j \Rightarrow k<j\right\}.

(f)

{aibjcki<jk<j}\left\{ a^{i} b^{j} c^{k} \mid i<j \Leftrightarrow k<j\right\}.

(g)

{aibicjdji,j0}\left\{ a^{i} b^{i} c^{j} d^{j} \mid i, j \geq 0\right\}.

(h)

{aibjcidji,j0}\left\{ a^{i} b^{j} c^{i} d^{j} \mid i, j \geq 0\right\}.

(i)

{aibjcjdii,j0}\left\{ a^{i} b^{j} c^{j} d^{i} \mid i, j \geq 0\right\}.

Задача 3.6.3

Далее каждую двоичную строку из A=1(0+1)+0A=1(0+1)^{*}+0 будем рассматривать как двоичное представление натурального числа. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x#yx,yA,x=y+3}\left\{ x \# y \mid x, y \in A, x=y+3\right\}.

(b)

{x#yRx,yA,x=y+3}\left\{ x \# y^{R} \mid x, y \in A, x=y+3\right\}.

(c)

{x#yx,yA,x=3y}\left\{ x \# y \mid x, y \in A, x=3 y\right\}. [Указание: рассмотрите строку y=1K0Ky=1^{K} 0^{K}, где KK — константа из леммы о накачке.]

(d)

{x#yRx,yA,x=3y}\left\{ x \# y^{R} \mid x, y \in A, x=3 y\right\}.

(e)

{x#y#zx,y,zA,x=y+z}\left\{ x \# y \# z \mid x, y, z \in A, x=y+z\right\}. [Указание: используя свойство замкнутости, сведите эту задачу к пункту (a) выше.]

(f)

{x#yR#zRx,y,zA,x=y+z}\left\{ x \# y^{R} \# z^{R} \mid x, y, z \in A, x=y+z\right\}.

(g)

{x#y#zx,y,zA,x=yz}\left\{ x \# y \# z \mid x, y, z \in A, x=y \cdot z\right\}.

(h)

{x#yR#zRx,y,zA,x=yz}\left\{ x \# y^{R} \# z^{R} \mid x, y, z \in A, x=y \cdot z\right\}.

Задача 3.6.4

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

?
(a)

{xyzxz=y для некоторых x,y,z{0,1}}\left\{ x y z \mid x z=y\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}. [Указание: рассмотрите пересечение этого языка с регулярным языком 10100+11+10100+11+10100^{+} 11^{+} 10100^{+} 11^{+}. Заметьте, что тогда yy обязано начинаться с 101.]

(b)

{xyzxz=yR для некоторых x,y,z{0,1}}\left\{ x y z \mid x z=y^{R}\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}.

(c)

{xyzxz=yx для некоторых x,y,z{0,1}}\left\{ x y z \mid x z=y x\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}.

(d)

{xxRwwRx,w{0,1}}\left\{ x x^{R} w w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

(e)

{xwxRwRx,w{0,1}}\left\{ x w x^{R} w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

(f)

{xwwRxRx,w{0,1}}\left\{ x w w^{R} x^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

Задача 3.6.5

Напомним, что #a(x)\#_{a}(x) обозначает число вхождений буквы aa в строку xx. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x{a,b}#a(x)<#b(x)<2#a(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x)<\#_{b}(x)<2 \#_{a}(x)\right\}.

(b)

{x{a,b}#a(x)#b(x),#a(x)2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \neq \#_{b}(x), \#_{a}(x) \neq 2 \#_{b}(x)\right\}.

(c)

{x{a,b}#a(x)#b(x) или #a(x)2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \leq \#_{b}(x)\text{ или }\#_{a}(x) \geq 2 \#_{b}(x)\right\}.

(d)

{x{a,b}#a(x)=2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x)=2^{\#_{b}(x)}\right\}.

(e)

{x{a,b}#a(x)2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \geq 2^{\#_{b}(x)}\right\}.

(f)

{x{a,b,c}#a(x)#b(x)=#c(x)}\left\{ x \in \left\{ a, b, c\right\}^{*} \mid \#_{a}(x) \cdot \#_{b}(x)=\#_{c}(x)\right\}.

Задача 3.6.6

Покажите, что язык {aibjckd[i=j,k=] или [i=,j=k]}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid [i=j, k=\ell ]\text{ или }[i=\ell , j=k]\right\} является существенно неоднозначным.

?
Задача 3.6.7

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

?
(a)

{ambnn2m}\left\{ a^{m} b^{n} \mid n \neq 2^{m}\right\}.

(b)

{ambncqqmn}\left\{ a^{m} b^{n} c^{q} \mid q \neq m n\right\}. [Указание: используйте подход примера 3.58. Сначала докажите, что в одном из порождающих множеств Γi\Gamma_{i} обязательно найдётся тройка (0,0,r)(0,0, r).]

(c)

{ambncqq2m3 или q2n3}\left\{ a^{m} b^{n} c^{q} \mid q^{2} \neq m^{3}\text{ или }q^{2} \neq n^{3}\right\}.

Задача 3.6.8

Пусть (x)r(x)_{r} обозначает строку, полученную из двоичной строки xx заменой 0 на 1 и 1 на 0. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x(x)rx{0,1}}\left\{ x(x)_{r} \mid x \in \left\{ 0,1\right\}^{*}\right\}.

(b)

{w{0,1}wx(x)r ни для какого x{0,1}}\left\{ w \in \left\{ 0,1\right\}^{*} \mid w \neq x(x)_{r}\text{ ни для какого }x \in \left\{ 0,1\right\}^{*}\right\}.

(c)

{x(x)rRx{0,1}}\left\{ x(x)_{r}^{R} \mid x \in \left\{ 0,1\right\}^{*}\right\}.

(d)

{w{0,1}wx(x)rR ни для какого x{0,1}}\left\{ w \in \left\{ 0,1\right\}^{*} \mid w \neq x(x)_{r}^{R}\text{ ни для какого }x \in \left\{ 0,1\right\}^{*}\right\}.

Задача 3.6.9
?
(a)

Вспомните операцию над языками \oplus, определённую в упражнении 2 раздела 2.6. Покажите, что контекстно-свободные языки не замкнуты относительно операции \oplus.

(b)

Покажите, что контекстно-свободные языки не замкнуты относительно операции MIN (L)={xLx не имеет собственного префикса в L}(L)=\left\{ x \in L \mid x\text{ не имеет собственного префикса в }L\right\}.

(c)

Рассмотрите операцию REV(L)={xyRzxyzL}\operatorname {REV}(L)=\left\{ x y^{R} z \mid x y z \in L\right\} и язык L={0m1n0n1mm,n0}L=\left\{ 0^{m} 1^{n} 0^{n} 1^{m} \mid m, n \geq 0\right\}. Покажите, что LL — контекстно-свободный язык, а REV(L)\operatorname {REV}(L) — нет.

(d)

Найдите контекстно-свободный язык LL, такой что L12={x(y)x=y и xyL}L_{\frac{1}{2}}=\left\{ x \mid (\exists y)\left|x\right|=\left|y\right|\text{ и }x y \in L\right\} не является контекстно-свободным.

Задача 3.6.10

Пусть LL — контекстно-свободный язык. Докажите или опровергните следующие утверждения:

?
(a)

Если L1L_{1} регулярен, то L1\LL_{1} \backslash L контекстно-свободен.

(b)

{xxxRL}\left\{ x \mid x x^{R} \in L\right\} контекстно-свободен.

(c)

{xxRxL или xRL}\left\{ x x^{R} \mid x \in L\text{ или }x^{R} \in L\right\} контекстно-свободен.

(d)

{xxRxL и xRL}\left\{ x x^{R} \mid x \in L\text{ и }x^{R} \in L\right\} контекстно-свободен.

(e)

{xxRxL или xRL}\left\{ x x^{R} \mid x \in L\text{ или }x^{R} \notin L\right\} контекстно-свободен.

(f)

{xxRxL и xRL}\left\{ x x^{R} \mid x \in L\text{ и }x^{R} \notin L\right\} контекстно-свободен.

Задача 3.6.11

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

{[000],[100],[010],[001],[110],[101],[011],[111]} \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\}

представляющих корректное умножение, не является контекстно-свободным (ср. пример 2.65).

?
Задача 3.6.12

Контекстно-свободная грамматика GG называется линейной грамматикой, если правая часть каждого правила GG содержит не более одного нетерминального символа. Язык LL называется линейным языком, если L=L(G)L=L(G) для некоторой линейной грамматики GG. Покажите, что для любого линейного языка LL существует константа K>0K>0, такая что любую строку ww из LL длины wK\left|w\right| \geq K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vyεv y \neq \varepsilon.

(2) uvyzK\left|u v y z\right| \leq K.

(3) uvnxynzLu v^{n} x y^{n} z \in L для всех n0n \geq 0.

?
Задача 3.6.13

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

?
(a)

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

(b)

{xy{0,1}x=y,xy}\left\{ x y \in \left\{ 0,1\right\}^{*} \mid \left|x\right|=\left|y\right|, x \neq y\right\}.

(c)

{xxRwwRx,w{0,1}}\left\{ x x^{R} w w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.