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

Алгоритмически неразрешимые проблемы

< Лекция 16 || Лекция 17: 123

16.2. Проблема однозначности

Теорема 16.2.1. Пусть | \Sigma | \geq 2 . Тогда не существует алгоритма, позволяющего по произвольной контекстно-свободной грамматике G над алфавитом \Sigma узнать, является ли грамматика G однозначной.

Доказательство. Рассмотрим язык \pcpl{\vec x} \cup \pcpl{\vec y} . Следуя доказательству теоремы 9.4.3, построим грамматику G для этого языка, исходя из грамматик G(\vec x) и G(\vec y) .

Грамматика G является неоднозначной тогда и только тогда, когда постовская система соответствия ( \vec x , \vec y ) имеет решение.

Упражнение 16.2.2. Однозначна ли контекстно-свободная грамматика

\begin{align*}
S \; & {\to} \; Q , & R \; & {\to} \; ba R bba , \\
S \; & {\to} \; R , & R \; & {\to} \; baa R a , \\
Q \; & {\to} \; ba Q b , & R \; & {\to} \; ba c bba , \\
Q \; & {\to} \; baa Q abbaa , & R \; & {\to} \; baa c a ? \\
Q \; & {\to} \; ba c b , \\
Q \; & {\to} \; baa c abbaa ,
\end{align*}

16.3. Дополнение контекстно-свободного языка

Лемма 16.3.1. Рассмотрим алфавит \Sigma_3 = \{ a , b , c \} . Язык \Sigma_3 ^* \sminus \pcpl{\vec x} является контекстно-свободным при любом \vec x .

Пример 16.3.2. Пусть \vec x = ( b , abbaa ) . Тогда язык \Sigma_3 ^* \sminus \pcpl{\vec x} над алфавитом \Sigma_3 = \{ a , b ,c \} порождается контекстно-свободной грамматикой

\begin{align*}
 S \; & {\to} \; \varepsilon , & R \; & {\to} \; \varepsilon , & T_1 \; & {\to} \; U_b , \\
 S \; & {\to} \; A W , & R \; & {\to} \; B W , & T_2 \; & {\to} \; U_a bbaa , \\
 S \; & {\to} \; b R , & R \; & {\to} \; aaa W , & T_2 \; & {\to} \; U_b baa , \\
 A \; & {\to} \; a , & R \; & {\to} \; a , & T_2 \; & {\to} \; U_b aa , \\
 A \; & {\to} \; c , & R \; & {\to} \; aa , & T_2 \; & {\to} \; U_a a , \\
 B \; & {\to} \; b , & R \; & {\to} \; ab R b , & T_2 \; & {\to} \; U_a , \\
 B \; & {\to} \; c , & R \; & {\to} \; aab R abbaa , & U_a \; & {\to} \; W B , \\
 Z \; & {\to} \; a , & R \; & {\to} \; ac Z W b , & U_a \; & {\to} \; \varepsilon , \\
 Z \; & {\to} \; B , & R \; & {\to} \; aac Z W abbaa , & U_b \; & {\to} \; W A , \\
 W \; & {\to} \; Z W , & R \; & {\to} \; a B T_1 , & U_b \; & {\to} \; \varepsilon . \\
 W \; & {\to} \; \varepsilon , & R \; & {\to} \; aa B T_2 ,
\end{align*}
Заметим, что \{ w \in \Sigma_3 ^* \mid T_i \overstar{\Rightarrow} w \} = \Sigma_3 ^* \sminus ( \Sigma_3 ^* \cdot \{ x_i \} ) для каждого i.

Язык \Sigma_3 ^* \sminus \pcpl{\vec x} является даже линейным (чтобы получить линейную грамматику, достаточно "раскрыть" вспомогательные символы A, B и Z ).

Замечание 16.3.3. Лемму 16.3.1 можно доказать, явно построив контекстно-свободную грамматику (как в примере 16.3.2), а можно и вывести из теоремы 12.2.7}, проверив, что \pcpl{\vec x} - детерминированный контекстно-свободный язык.

Определение 16.3.4. Пусть \Sigma_3 = \{ a , b , c \} , \vec x = ( x_1 , \ldots , x_n ) , \vec y = ( y_1 , \ldots , y_n ) , где x_i \in \{ a , b \}^* и y_i \in \{ a , b \}^* для всех i. Обозначим через \pcpm{\vec x , \vec y} язык \Sigma_3 ^* \sminus (\pcpl{\vec x} \cap \pcpl{\vec y}) .

Лемма 16.3.5. Язык \pcpm{\vec x , \vec y} является контекстно-свободным при любых \vec x и \vec y .

Доказательство. \pcpm{\vec x , \vec y} = (\Sigma_3 ^* \sminus \pcpl{\vec x}) \cup (\Sigma_3 ^* \sminus \pcpl{\vec y}) .

Лемма 16.3.6. Дополнение языка \pcpm{\vec x , \vec y} является непустым тогда и только тогда, когда постовская система соответствия ( \vec x , \vec y ) имеет решение.

Доказательство Утверждение следует из леммы 16.1.2.

Теорема 16.3.7. Пусть | \Sigma | \geq 2 . Тогда не существует алгоритма, позволяющего по произвольной контекстно-свободной грамматике G над алфавитом \Sigma узнать, верно ли, что L(G) = \Sigma ^* .

Доказательство Очевидно, что L(G) = \Sigma ^* тогда и только тогда, когда дополнение языка L(G) является пустым.

Теорема 16.3.8. Пусть | \Sigma | \geq 2 . Тогда не существует алгоритма, позволяющего по произвольным контекстно-свободным грамматикам G1 и G2 над алфавитом \Sigma узнать, верно ли, что L(G1) = L(G2).

Доказательство Утверждение следует из предыдущей теоремы и примера 1.5.16.

Теорема 16.3.9. Пусть | \Sigma | \geq 2 . Тогда не существует алгоритма, позволяющего по произвольным контекстно-свободным грамматикам G1 и G2 над алфавитом \Sigma узнать, верно ли, что L(G_1) \subseteq L(G_2) .

Доказательство Очевидно, что \Sigma ^* \subseteq L(G) тогда и только тогда, когда L(G) = \Sigma ^* .

Лемма 16.3.10. Дополнение языка \pcpm{\vec x , \vec y} является бесконечным тогда и только тогда, когда постовская система соответствия ( \vec x , \vec y ) имеет решение.

Теорема 16.3.11. Пусть | \Sigma | \geq 2 . Тогда не существует алгоритма, позволяющего по произвольной контекстно-свободной грамматике G над алфавитом \Sigma узнать, является ли бесконечным множество \Sigma ^* \sminus L(G) .

Упражнение 16.3.12. Рассмотрим язык, порождаемый грамматикой

\begin{align*}
 S \; & {\to} \; F , & F \; & {\to} \; \varepsilon , & T \; & {\to} \; a , \\
 S \; & {\to} \; T , & F \; & {\to} \; a J , & T \; & {\to} \; b T , \\
 & & F \; & {\to} \; b F , & T \; & {\to} \; T b , \\
 & & J \; & {\to} \; a F , & T \; & {\to} \; T a T . \\
 & & J \; & {\to} \; b J ,
\end{align*}
Содержит ли этот язык все слова из {a,b}*?

Упражнение 16.3.13. Рассмотрим язык, порождаемый грамматикой

\begin{align*}
 S \; & {\to} \; F , & T \; & {\to} \; a , \\
 S \; & {\to} \; T , & T \; & {\to} \; b T , \\
 F \; & {\to} \; aa F , & T \; & {\to} \; T b , \\
 F \; & {\to} \; b F , & T \; & {\to} \; T a T . \\
 F \; & {\to} \; \varepsilon ,
\end{align*}
{a,b}*?

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