Опубликован: 09.07.2007 | Уровень: профессионал | Доступ: свободно
Лекция 12:

Дополнительные свойства контекстно-свободных языков

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Аннотация: В данной лекции рассматриваются свойства контекстно-свободных языков, которые удобно доказывать с привлечением автоматов с магазинной памятью, а также формулируются два критерия контекстной свободности, интересных в основном с теоретической точки зрения. Приведены практические примеры и упражнения для самостоятельного решения

В этой лекции излагаются те свойства контекстно-свободных языков, которые удобно доказывать с привлечением автоматов с магазинной памятью. В первых двух разделах приводятся некоторые свойства замкнутости класса контекстно-свободных языков (замкнутость относительно деления, взятия гомоморфного образа и полного гомоморфного прообраза). В конце лекции формулируются два критерия контекстной свободности, интересных в основном с теоретической точки зрения.

11.1*. Деление контекстно-свободных языков

Теорема 11.1.1. Пусть L1 - контекстно-свободный язык над алфавитом \Sigma и L2 - автоматный язык над алфавитом \Sigma. Тогда язык \{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \} является контекстно-свободным.

Доказательство. Пусть \lalg Q_1 , \Sigma , \Gamma_1 , \Delta_1 , I_1 , F_1 \ralg - МП-автомат, распознающий язык L1. Без ограничения общности можно считать, что для каждого перехода \lp \lp p , x , \beta \rp , \lp q , \gamma \rp \rp
\in \Delta_1 выполняется неравенство | x | \leq 1.

Пусть \lalg Q_2 , \Sigma , \Delta_2 , I_2 , F_2 \ralg - конечный автомат, распознающий язык L2. Без ограничения общности можно считать, что

Q_1 \cap ( Q_1 \times Q_2 ) = \varnothing
и для каждого перехода \lp p , x , q \rp \in \Delta_2 выполняется равенство |x| = 1.

Тогда язык L = \{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1
\} распознается МП-автоматом \lalg Q , \Sigma , \Gamma_1 , \Delta , I , F \ralg, где Q = Q_1 \cup ( Q_1 \times Q_2 ), I = I1, F = F_1 \times F_2 и

\begin{align*}
\Delta &= \Delta_1 \cup {} \\
&\myqquad \cup
\{ \lp \lp p_1 , \varepsilon , \varepsilon \rp ,
\lp \lp p_1 , p_2 \rp , \varepsilon \rp \rp
\mid p_1 \in Q_1 \commaand p_2 \in I_2 \} \cup {} \\
&\myqquad \cup
\{ \lp \lp \lp p_1 , p_2 \rp , \varepsilon , \beta \rp ,
\lp \lp q_1 , q_2 \rp , \gamma \rp \rp
\mid
\lp \lp p_1 , a , \beta \rp ,
\lp q_1 , \gamma \rp \rp \in \Delta_1 \commaand \\
&\myqquad \hphantom{ {} \cup{} \{ } %\}
\lp p_2 , a , q_2 \rp \in \Delta_2
\mathspace\text{для некоторого}\mathspace a \in \Sigma \} \cup {} \\
&\myqquad \cup
\{ \lp \lp \lp p_1 , p_2 \rp , \varepsilon , \beta \rp ,\!
\lp \lp q_1 , p_2 \rp ,\! \gamma \rp \rp
\squeeze{\mid}
\lp \lp p_1 , \varepsilon , \beta \rp ,\!
\lp q_1 ,\! \gamma \rp \rp \squeeze{\in} \Delta_1 \commaand
p_2 \squeeze{\in} Q_2 \} .
\end{align*}

Пример 11.1.2. Пусть \Sigma = \{ a , b \}, язык L1 распознается МП-автоматом

\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{a,\varepsilon:C}
 \ar  "2,1"  ^{\varepsilon,\varepsilon:C}
\\
  *=[o][F=]{2}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,-1} ^{b,C:\varepsilon}
}
и язык L2 распознается конечным автоматом
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{3}
 \ar @`{+/l16mm/} [] ^{}
 \ar  "1,2" <0.6mm> ^{b}
& *=[o][F=]{4}
 \ar  "1,1" <0.6mm> ^{b}
}
\ .
Следуя доказательству теоремы 11.1.1, получаем, что язык
\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \}
распознается МП-автоматом, изображенным ниже.
\objectwidth={7.5mm} \objectheight={7.5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{a,\varepsilon:C}
 \ar  "2,1"  ^{\varepsilon,\varepsilon:C}
 \ar  "1,2"  ^{\varepsilon,\varepsilon:\varepsilon}
& *=[o][F-]{1,3}
 \ar  "2,2"  ^{\varepsilon,\varepsilon:C}
& *=[o][F-]{1,4}
 \ar  "2,3"  ^{\varepsilon,\varepsilon:C}
\\
  *=[o][F-]{2}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,-1} ^{b,C:\varepsilon}
 \ar  "2,2"  ^{\varepsilon,\varepsilon:\varepsilon}
& *=[o][F-]{2,3}
 \ar  "2,3" <0.6mm> ^{\varepsilon,C:\varepsilon}
& *=[o][F=]{2,4}
 \ar  "2,2" <0.6mm> ^{\varepsilon,C:\varepsilon}
}

Пример 11.1.3. Пусть \Sigma = \{ a , b \}, L_1 = \{ w \in \Sigma ^* \mid | w |_a = | w |_b \} и L_2 = \{ a^n \mid n \geq 2 \}. Тогда

\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \} =
  \{ w \in \Sigma ^* \mid | w |_a + 2 \leq | w |_b \} .

Пример 11.1.4. Пусть \Sigma = \{ a , b \}, L_1 = \{ w \in \Sigma ^* \mid w = w \reverse \} и L_2 = \{ u aabb v \mid u \in \Sigma ^* \commaand v \in \Sigma ^*
\}. Тогда

\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \} =
  \Sigma ^* .

Замечание 11.1.5. Пусть \Sigma = \{ a , b , c \} и L \subseteq \Sigma ^*. Язык L \cdot \{ c \} является контекстно-свободным тогда и только тогда, когда язык L является контекстно-свободным.

Упражнение 11.1.6. Существует ли такой контекстно-свободный язык L \subseteq \Sigma ^*, что язык Subw не является контекстно-свободным?

Упражнение 11.1.7. Существует ли такой контекстно-свободный язык L над алфавитом {a,b}, что язык \{ w \mid ( \exists n \geq 0 )\, w a^{2n} \in L \} не является контекстно-свободным?

Упражнение 11.1.8. Существует ли такой контекстно-свободный язык L над алфавитом {a,b}, что язык

\{ w \in \{a,b\}^* \mid
 ( \exists m \geq 0 )\, ( \exists n \geq 0 )\, (ab)^m w b^{3n} \in L \}
не является контекстно-свободным?

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Юлия Маковецкая
Юлия Маковецкая
Помогите решить задание лекции 3 курс Математическая теория формальных языков
Евгения Гунченко
Евгения Гунченко
При каких результатах сдачи экзамена экстерном по дисциплине, в последствии будет выдано удостоверение о повышении квалификации?
Наталья Алмаева
Наталья Алмаева
Россия
Николай Щербаков
Николай Щербаков
Россия, Москва