Упражнение 2.1.25 |
Дополнительные свойства контекстно-свободных языков
11.2. Гомоморфизмы и контекстно-свободные языки
Теорема 11.2.1. Для любого гомоморфизма и контекстно-свободного языка
язык h(L) является контекстно-свободным.
Доказательство.
Приведем здесь доказательство,
использующее МП-автоматы,
хотя эту теорему легко доказать и
с помощью контекстно-свободных грамматик.
Пусть язык L
распознается
МП-автоматом .
Тогда язык h(L)
распознается МП-автоматом
,
где
![\Delta' = \{
\lp \lp p , h ( x ) , \beta \rp ,
\lp q , \gamma \rp \rp
\mid \lp \lp p , x , \beta \rp ,
\lp q , \gamma \rp \rp \in \Delta \} .](/sites/default/files/tex_cache/f3c388ed01bb7895c8621e4870bc142f.png)
Пример 11.2.2.
Пусть
и
.
Рассмотрим
контекстно-свободный язык L,
порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; aSSc , \\
S \; & {\to} \; b ,
\end{align*}](/sites/default/files/tex_cache/d0ce08b00a740cd34940d5f21e3914f3.png)
![h \colon \Sigma_1^* \farrow \Sigma_2^*](/sites/default/files/tex_cache/6c1015bfb2f57902275f4ff2ad911cae.png)
![\begin{align*}
S \; & {\to} \; aSSa , \\
S \; & {\to} \; bba ,
\end{align*}](/sites/default/files/tex_cache/aac069304913ea88682473fb7758b400.png)
Упражнение 11.2.3. Пусть гомоморфизм
задан соотношениями h(a) = b,
, h(c) = a.
Рассмотрим язык L,
порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; a , \\
S \; & {\to} \; b S , \\
S \; & {\to} \; c S S .
\end{align*}](/sites/default/files/tex_cache/c8ee7ff634a2685fa4b17df8a7720973.png)
Теорема 11.2.4. Для любого гомоморфизма и контекстно-свободного языка
язык h-1(L) является контекстно-свободным.
Доказательство. Введем обозначение
![\cala = \{ x \in \Sigma_2 ^* \mid
x \suffix h ( a )
\mathspace\text{для некоторого}\mathspace a \in \Sigma_1 \} .](/sites/default/files/tex_cache/6266c76fba9be9a4c36b4525da161ce5.png)
![\lalg Q , \Sigma_2 , \Gamma , \Delta , I , F \ralg](/sites/default/files/tex_cache/ac7b2eb44ceeca135cd73fa046c3662f.png)
![\lp \lp p , x , \beta \rp , \lp q , \gamma \rp \rp
\in \Delta](/sites/default/files/tex_cache/426d6ea38f473cdf401558c7e7cc2926.png)
![| x | \leq 1](/sites/default/files/tex_cache/9cfdef18b000c541708317b2049a3e0d.png)
![\lalg Q' , \Sigma_1 , \Gamma , \Delta' , I' , F' \ralg](/sites/default/files/tex_cache/223be8d6671209e8b718de36aac24e0d.png)
![\begin{align*}
Q' &= \cala \times Q ,\\
I' &= \{ \varepsilon \} \times I ,\\
F' &= \{ \varepsilon \} \times F ,\\
\Delta' &=
\{ \lp \lp \lp \varepsilon , p \rp ,
a , \varepsilon \rp ,
\lp \lp h ( a ) , p \rp , \varepsilon \rp \rp
\mid a \in \Sigma_1 \commaand p \in Q \} \cup {} \\
&\myqquad \cup
\{ \lp \lp \lp x w , p \rp , \varepsilon , \beta \rp ,
\lp \lp w , q \rp , \gamma \rp \rp
\squeeze{\mid} \lp \lp p , x , \beta \rp ,
\lp q , \gamma \rp \rp \squeeze{\in} \Delta \commaand
x w \squeeze{\in} \cala \} .
\end{align*}](/sites/default/files/tex_cache/ad2efaf34106650005a086515efa9dfa.png)
Пример 11.2.5.
Пусть
и
.
Рассмотрим гомоморфизм
,
заданный равенствами h(c) = aa, h(d) = b
и h(e) = bba.
Пусть контекстно-свободный язык L
распознается МП-автоматом
,
где Q = {p},
, I = {p}, F = {p},
![\Delta = \{
\lp \lp p , a , \varepsilon \rp ,
\lp p , A \rp \rp ,\
\lp \lp p , b , A \rp ,
\lp p , \varepsilon \rp \rp
\} .](/sites/default/files/tex_cache/3a5ef07a5f990f444096940fe04ec9f2.png)
![\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
*=[o][F=]{p}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,1} ^{a,\varepsilon:A}
\rloop{0,-1} ^{b,A:\varepsilon}
}](/sites/default/files/tex_cache/f40fb597b0daac5dca1545e05b6c663d.png)
![\lalg Q' , \Sigma_1 , \Gamma , \Delta' , I' , F' \ralg](/sites/default/files/tex_cache/223be8d6671209e8b718de36aac24e0d.png)
![Q' = \{ p_{\varepsilon} , p_{a} , p_{aa} , p_{b} , p_{ba} , p_{bba}
\}](/sites/default/files/tex_cache/2b5d526af882acb7ac5c14a3cb07680c.png)
![I' = \{ p_{\varepsilon} \}](/sites/default/files/tex_cache/ce083ee962057c89fe8449f6f49554ce.png)
![F' = \{ p_{\varepsilon} \}](/sites/default/files/tex_cache/cda6c31ab087b0dc5e58a90f15ece310.png)
![\begin{align*}
\Delta' &= \{
\lp \lp p_{\varepsilon} , c , \varepsilon \rp ,
\lp p_{aa} , \varepsilon \rp \rp ,\
\lp \lp p_{\varepsilon} , d , \varepsilon \rp ,
\lp p_{b} , \varepsilon \rp \rp ,\
\lp \lp p_{\varepsilon} , e , \varepsilon \rp ,
\lp p_{bba} , \varepsilon \rp \rp ,\
\\ &\hphantom{ {} = {} \{ } %\}
\lp \lp p_{a} , \varepsilon , \varepsilon \rp ,
\lp p_{\varepsilon} , A \rp \rp ,\
\lp \lp p_{aa} , \varepsilon , \varepsilon \rp ,
\lp p_{a} , A \rp \rp ,\
\lp \lp p_{b} , \varepsilon , A \rp ,
\lp p_{\varepsilon} , \varepsilon \rp \rp ,\
\\ &\hphantom{ {} = {} \{ } %\}
\lp \lp p_{ba} , \varepsilon , A \rp ,
\lp p_{a} , \varepsilon \rp \rp ,\
\lp \lp p_{bba} , \varepsilon , A \rp ,
\lp p_{ba} , \varepsilon \rp \rp
\} .
\end{align*}](/sites/default/files/tex_cache/6529723400001b2961a2956dda6249b6.png)
![\objectwidth={7.5mm} \objectheight={7.5mm} \let\objectstyle=\scriptstyle
\xymatrix @=11mm{
%
& *=[o][F-]{p_{aa}}
\ar "1,3" ^{\varepsilon,\varepsilon:A}
& *=[o][F-]{p_{a}}
\ar "2,4" _{\varepsilon,\varepsilon:A}
&
\\
*=[o][F-]{p_{bba}}
\ar "2,2" ^{\varepsilon,A:\varepsilon}
& *=[o][F-]{p_{ba}}
\ar "1,3" _{\varepsilon,A:\varepsilon}
&
& *=[o][F=]{p_{\varepsilon}}
\ar @`{+/l16mm/} [] ^{}
\ar `u^l{[-1,-2]+/u9mm/}_{c}`l^d{[-1,-2]} "1,2"
\ar `d_l{[1,-1]}^-{d} "3,3"
\ar `r_d{+/r7mm/}`d_l{[1,-1]+/d7mm/}^{e}`l_u{[0,-3]} "2,1"
\\
%
&
& *=[o][F-]{p_{b}}
\ar "2,4" ^{\varepsilon,A:\varepsilon}
&
}](/sites/default/files/tex_cache/32670a762e4d457abe4e3371a439057f.png)
Язык h-1(L)
также порождается контекстно-свободной грамматикой
Упражнение 11.2.6. Пусть гомоморфизм
задан соотношениями h(a) = ab, h(b) = aaba, h(c) = b.
Рассмотрим язык L,
порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; a S , \\
S \; & {\to} \; a S b S , \\
S \; & {\to} \; b S a S .
\end{align*}](/sites/default/files/tex_cache/1486861e37c67aca8e5d4f8a0f2ba04a.png)
Упражнение 11.2.7.
задан соотношениями h(c) = a, h(d) = ba, h(e) = bb.
Рассмотрим язык L,
порождаемый грамматикой
![\begin{align*}
B \; & {\to} \; a B B a , \\
B \; & {\to} \; b .
\end{align*}](/sites/default/files/tex_cache/959aaa78e5be1feef9bc87bc72a081ef.png)
Упражнение 11.2.8. Пусть гомоморфизм
задан соотношениями
,
,
.
Рассмотрим язык
,
порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; a S b S , \\
S \; & {\to} \; \varepsilon .
\end{align*}](/sites/default/files/tex_cache/999aa8d956d150fbfe4351ab0b0fd5bb.png)
Упражнение 11.2.9. Обозначим через L язык, порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; a S b , \\
S \; & {\to} \; ba .
\end{align*}](/sites/default/files/tex_cache/af6ea1a59eaebfae57abfda572908271.png)
![h_1 \colon \{a,b,c,d,e,f\}^* \farrow \{a,b,c\}^*](/sites/default/files/tex_cache/4cec31c1a700a311f7427e55d5ea6f84.png)
h1(a) = ac , h1(b) = bc , h1(c) = aa , h1(d) = ab , h1(e) = ba , h1(f) = bb ,
и гомоморфизм ,
заданный соотношениями
h2(a) = a , h2(b) = b , h2(c) = ab , h2(d) = aa , h2(e) = bb , h2(f) = ba .
Найти контекстно-свободную грамматику, порождающую язык
![h_2(h_1^{-1}( L \cdot \{ \varepsilon , c \} )) .](/sites/default/files/tex_cache/4ff27bdcfc30a75f1742df1b539ea286.png)