4.5

Неограниченные грамматики

[9/44%]
Показать
LaTeX
Пример 4.15

Найдите грамматику GG такую, что L(G)={anbncnn0}L(G)=\left\{ a^{n} b^{n} c^{n} \mid n \geq 0\right\}.

?
Пример 4.16

Найдите грамматику GG такую, что L(G)={a2nn0}L(G)=\left\{ a^{2^{n}} \mid n \geq 0\right\}.

?
Пример 4.17

Найдите грамматику GG такую, что L(G)={www{a,b}}L(G)=\left\{ w w \mid w \in \left\{ a, b\right\}^{*}\right\}.

?
Пример 4.18

Найдите грамматику GG такую, что L(G)={anbmcnmn,m0}L(G)=\left\{ a^{n} b^{m} c^{n m} \mid n, m \geq 0\right\}.

?
Задача 4.5.1

Рассмотрим грамматику G1G_{1} с нетерминалами V={S,A,B,C}V=\left\{ S, A, B, C\right\}, терминалами Σ={a,b,c}\Sigma = \left\{ a, b, c\right\} и правилами

SASBCε,ABBA,ACCA,BAAB,BCCB,CAAC,CBBC,Aa,Bb,Cc. \begin{array}{lll} S \longrightarrow A S B C \mid \varepsilon , & & \\ A B \longrightarrow B A, & A C \longrightarrow C A, & B A \longrightarrow A B, \\ B C \longrightarrow C B, & C A \longrightarrow A C, & C B \longrightarrow B C, \\ A \longrightarrow a, & B \longrightarrow b, & C \longrightarrow c. \end{array}
?
(a)

Приведите вывод строки ccbaabcba.

(b)

Чем является L(G1)L\left(G_{1}\right)? Приведите краткое обоснование вашего ответа.

Задача 4.5.2

Рассмотрим грамматику G2G_{2} с нетерминалами V={S,A,L,Lh,R,[],}V=\left\{ S, A, L, L_{h}, R,[],\right\}, терминалом Σ={a}\Sigma =\left\{ a\right\} и правилами

S[ARa]a,RAAR,RaaaR,R]L]Lh,ALLA,aLLa,[L[AR,aLhLha,ALhLha,[Lhε. \begin{array}{rlr} S \rightarrow [A R a] \mid a, & R A \rightarrow A R, & R a \rightarrow a a R, \\ R] \longrightarrow L] \mid L_{h}, & A L \rightarrow L A, & a L \rightarrow L a, \\ {[L \longrightarrow [A R,} & a L_{h} \longrightarrow L_{h} a, & A L_{h} \longrightarrow L_{h} a, \\ {\left[L_{h} \longrightarrow \varepsilon .\right.} & & \end{array}
?
(a)

Приведите вывод a6a^{6}.

(b)

Чем является L(G2)L\left(G_{2}\right)? Приведите краткое обоснование вашего ответа.

Задача 4.5.3

Постройте грамматики для каждого из следующих языков. Также приведите (i) вывод заданной строки xx и (ii) доказательство того, почему ваша грамматика не порождает ни одной строки, не принадлежащей языку.

?
(a)

{an2n0},x=a9\left\{ a^{n^{2}} \mid n \geq 0\right\} , x=a^{9}. [Подсказка: следуя идее упражнения 2 выше, порождайте на kk-й итерации сентенциальную форму с kk копиями AA и k2kk^{2}-k копиями aa.]

(b)

{a2nnn0},x=a5\left\{ a^{2^{n}-n} \mid n \geq 0\right\} , x=a^{5}.

(c)

{an2+nn0},x=a11\left\{ a^{n^{2}+n} \mid n \geq 0\right\} , x=a^{11}.

(d)

{an3+2n25n+4n0},x=a34\left\{ a^{n^{3}+2 n^{2}-5 n+4} \mid n \geq 0\right\} , x=a^{34}. [Подсказка: аналогично пункту (a) выше, порождайте на kk-й итерации сентенциальную форму с kk копиями AA, k2k^{2} копиями BB и k3+k26k+4k^{3}+k^{2}-6 k+4 копиями aa.]

(e)

{anb2nann0},x=a3b8a3\left\{ a^{n} b^{2^{n}} a^{n} \mid n \geq 0\right\} , x=a^{3} b^{8} a^{3}.

(f)

{anbnanbnn0},x=a4b4a4b4\left\{ a^{n} b^{n} a^{n} b^{n} \mid n \geq 0\right\} , x=a^{4} b^{4} a^{4} b^{4}.

(g)

{wczw,z{a,b},wz},x=aabcaaba\left\{ w c z \mid w, z \in \left\{ a, b\right\}^{*}, w \neq z\right\} , x=a a b c a a b a.

(h)

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

(i)

{wnw{a,b},w=n},x=aabaabaab\left\{ w^{n}\left|w \in \left\{ a, b\right\}^{*},\left|w\right|=n\right\} , x=a a b a a b a a b\right..

Задача 4.5.4
?
(a)

Найдите грамматику GG такую, что wGwRw \xRightarrow [G]{*} w^{R} для всех w{a,b}w \in \left\{ a, b\right\}.

(b)

Найдите грамматику GG такую, что для всех x,y{a,b}x, y \in \left\{ a, b\right\}^{*} с x=y\left|x\right|=\left|y\right| выполняется xyGyxx y \xRightarrow [G]{*} y x.

Задача 4.5.5

Рассмотрим новую вычислительную модель, называемую маркированными алгоритмами Маркова (Labeled Markov Algorithm, LMA). LMA MM определяется как тройка (Σ,Γ,P)(\Sigma , \Gamma , P), где Σ\Sigma — входной алфавит, Γ\Gamma — рабочий алфавит с ΣΓ\Sigma \subseteq \Gamma, а PP — программа, состоящая из конечной последовательности r1,r2,,rnr_{1}, r_{2}, \ldots , r_{n} инструкций. Каждая инструкция rir_{i} в PP имеет вид

Li:αβ; goto Lj L_{i}: \alpha \rightarrow \beta ; \text{ goto } L_{j}

где α,βΓ\alpha , \beta \in \Gamma^{*}, а jj — положительное целое число (αβ\alpha \rightarrow \beta называется правилом вывода, а LjL_{j} называется меткой следующей инструкции). Инструкция (LiL_{i} : αβ\alpha \rightarrow \beta; goto LjL_{j};) может быть применена к строке wΓw \in \Gamma^{*}, если α\alpha является подстрокой ww. Применение этой инструкции к ww порождает новую строку xx путём замены самого левого вхождения α\alpha в ww на β\beta.

На входе wΣw \in \Sigma^{*} LMA MM работает следующим образом: в любой момент вычисления она хранит текущую сентенциальную форму ww и текущую метку инструкции LiL_{i}. Изначально ww — это входная строка, а текущая метка инструкции — L1L_{1}. На каждом шаге она находит наименьшее целое число kik \geq i, где LiL_{i} — текущая метка инструкции, такое что инструкция rkr_{k} применима к ww. Затем она применяет rkr_{k} к ww, чтобы получить новую сентенциальную форму xx. Она заменяет ww на xx и заменяет текущую метку инструкции LL на метку следующей инструкции rkr_{k}. Если ни одна инструкция rkr_{k} с kik \geq i не применима к текущей сентенциальной форме ww, то машина останавливается с результатом ww. (В частности, если текущая метка инструкции равна LiL_{i}, где ii больше числа nn инструкций в PP, то машина останавливается.)

Для произвольной LMA MM определим L(M)={xΣM останавливается на x}L(M)=\left\{ x \in \Sigma^{*} \mid M\text{ останавливается на }x\right\}. Мы говорим, что MM вычисляет частичную функцию f:ΣΓf: \Sigma^{*} \rightarrow \Gamma^{*}, если MM останавливается на каждом входе xDomain(f)x \in \operatorname {Domain}(f) с финальной сентенциальной формой w=f(x)w=f(x), и MM не останавливается ни на каком xDomain(f)x \notin \operatorname {Domain}(f).

?
(a)

Разработайте LMA MM, вычисляющий функцию f(x)=xRf(x)=x^{R} для x{a,b}x \in \left\{ a, b\right\}^{*}.

(b)

Покажите, что каждая тьюринг-вычислимая функция ff вычислима с помощью LMA.

(c)

Покажите, что для любого LMA MM язык L(M)L(M) является тьюринг-допустимым.

(d)

Покажите, что каждая частичная функция ff, вычисляемая LMA MM, является тьюринг-вычислимой.