Московский государственный университет имени М.В.Ломоносова
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 2515 / 1036 | Оценка: 4.56 / 4.26 | Длительность: 20:40:00
ISBN: 978-5-9556-0062-8
Специальности: Математик
Лекция 17:

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

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

16.4. Проблема автоматности

Лемма 16.4.1. Пусть \vec x = ( x_1 , \ldots , x_n ) , \vec y = ( y_1 , \ldots , y_n ) , где x_i \in \{ a , b \}^* , y_i \in \{ a , b \}^* и x_i y_i \neq \varepsilon для всех i. Тогда язык \pcpm{\vec x , \vec y} является автоматным в том и только том случае, когда постовская система соответствия ( \vec x , \vec y ) не имеет решений.

Доказательство Пусть (i_1 , \ldots , i_k) - решение постовской системы соответствия ( \vec x , \vec y ) , где x_i y_i \neq \varepsilon для всех i. Положим

\begin{align*}
 u &\bydef b a^{i_k} b a^{i_{k-1}} \ldots b a^{i_1} ,\\
 v &\bydef x_{i_1} \ldots x_{i_k} ,\\
 L_0 &\bydef \{ u \}^* \cdot \{ c \} \cdot \{ v \}^* .
\end{align*}
Легко проверить, что u \neq \varepsilon , v \neq \varepsilon и язык L0 является автоматным. Очевидно, что
\pcpl{\vec x} \cap \pcpl{\vec y} \cap L_0 = \{ u^m c v^m \mid m > 0 \} .
Как было установлено в упражнении 3.4.2, язык \pcpl{\vec x} \cap \pcpl{\vec y} \cap L_0 не является автоматным. Согласно теореме 3.2.1 язык \pcpl{\vec x} \cap \pcpl{\vec y} не является автоматным. Следовательно, и язык \pcpm{\vec x , \vec y} не является автоматным.

Обратно, если постовская система соответствия ( \vec x , \vec y ) не имеет решений, то \pcpm{\vec x , \vec y} = \{ a , b , c \}^* , а этот язык является автоматным.

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

Доказательство Докажем утверждение теоремы для случая | \Sigma | \geq 3 . Из леммы 16.4.1 следует, что если бы проблема распознавания автоматности языка L(G) для контекстно-свободных грамматик над алфавитом \Sigma была разрешима, то также была бы разрешима проблема соответствий Поста для постовских систем соответствия ( ( x_1 , \ldots , x_n ) , ( y_1 , \ldots , y_n ) ) , где x_i \in \{ a , b \}^* , y_i \in \{ a , b \}^* и x_i y_i \neq \varepsilon для всех i. Но тогда была бы разрешима проблема соответствий Поста для всех постовских систем соответствия над алфавитом {a,b} (если x_i y_i = \varepsilon для некоторого i, то рассматриваемая постовская система соответствия имеет решение, а именно (i) ).

Упражнение 16.4.3. Является ли автоматным язык, порождаемый грамматикой

\begin{align*}
 S \; & {\to} \; R T , \\
 R \; & {\to} \; T R , \\
 R \; & {\to} \; a , \\
 T \; & {\to} \; T R , \\
 T \; & {\to} \; b ?
\end{align*}

Упражнение 16.4.4. Является ли автоматным язык, порождаемый грамматикой

\begin{align*}
 R \; & {\to} \; T R , \\
 R \; & {\to} \; a , \\
 T \; & {\to} \; R , \\
 T \; & {\to} \; b R ?
\end{align*}

Упражнение 16.4.5. Является ли автоматным язык, порождаемый грамматикой

\begin{align*}
 R \; & {\to} \; T R , \\
 R \; & {\to} \; a , \\
 T \; & {\to} \; R T , \\
 T \; & {\to} \; b ?
\end{align*}

Упражнение 16.4.6. Является ли автоматным язык, порождаемый грамматикой

\begin{align*}
 S \; & {\to} \; R T , \\
 R \; & {\to} \; T R , \\
 R \; & {\to} \; a , \\
 T \; & {\to} \; R T , \\
 T \; & {\to} \; b ?
\end{align*}

16.5. Проблемы контекстной свободности

Определение 16.5.1. Пусть \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. Обозначим через \pcpk{\vec x , \vec y} язык \pcpl{\vec x} \cdot \{c\} \cdot \pcpl{\vec y} \reverse .

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

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

Лемма 16.5.3. Рассмотрим алфавит \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 \}^* и x_i y_i \neq \varepsilon для всех i. Тогда язык \pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \} является контекстно-свободным в том и только том случае, когда постовская система соответствия ( \vec x , \vec y ) не имеет решений.

Доказательство. Пусть (i_1 , \ldots , i_k) - решение постовской системы соответствия ( \vec x , \vec y ) , где x_i y_i \neq \varepsilon для всех i. Положим

\begin{align*}
 u &\bydef b a^{i_k} b a^{i_{k-1}} \ldots b a^{i_1} ,\\
 v &\bydef x_{i_1} \ldots x_{i_k} ,\\
 L_0 &\bydef \{ u \}^* \cdot \{ c \} \cdot \{ v \}^* \cdot \{ c \} \cdot
 \{ v \reverse \}^* \cdot \{ c \} \cdot \{ u \reverse \}^* .
\end{align*}
Легко проверить, что u \neq \varepsilon , v \neq \varepsilon и язык L0 является автоматным. Очевидно, что
\pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \}
 \cap L_0 =
 \{ u^m c v^m c ( v \reverse )^m c ( u \reverse)^m \mid m > 0 \} .
Можно доказать (например, используя лемму 9.1.1), что язык \{ u^m c v^m c ( v \reverse )^m c ( u \reverse)^m \mid m > 0 \} не является контекстно-свободным. Согласно теореме 9.6.1 язык \pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \} также не~является контекстно-свободным.

Обратно, если постовская система соответствия ( \vec x , \vec y ) не имеет решений, то \pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \} = \varnothing .

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

Доказательство. Достаточно построить по постовской системе соответствия ( \vec x , \vec y ) , где \vec x = ( x_1 , \ldots , x_n ) , \vec y = ( y_1 , \ldots , y_n ) и для всех i выполняется x_i \in \{ a , b \}^* , y_i \in \{ a , b \}^* и x_i y_i \neq \varepsilon , контекстно-свободную грамматику G1, порождающую язык \pcpk{\vec x , \vec y} , и контекстно-свободную грамматику G2, порождающую язык \{ z c z \reverse \mid z \in \Sigma_3 ^* \} . С учетом леммы 16.5.3 неразрешимость рассматриваемой задачи сводится к неразрешимости проблемы соответствий Поста рассуждением, аналогичным приведенному в доказательстве теоремы 16.4.2.

Лемма 16.5.5. Рассмотрим алфавит \Sigma_3 = \{ a , b , c \} . Язык \Sigma_3 ^* \sminus (\pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \}) является контекстно-свободным при любых \vec x и \vec y .

Доказательство. Положим L_0 = \{ w \in \Sigma_3 ^* \mid | w |_c = 1 \} . Язык \Sigma_3 ^* \sminus (\pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \}) можно представить в виде объединения пяти контекстно-свободных языков

\begin{align*}
{}
 L_1 &= \{ w \in \Sigma_3 ^* \mid | w |_c \neq 3 \} ,\\
 L_2 &= \{ v_1 c v_2 c v_3 c v_4 \mid
 v_1 , v_2 , v_3 , v_4 \in \{ a , b \}^* \commaand
 v_1 \neq v_4 \reverse \} ,\\
 L_3 &= \{ v_1 c v_2 c v_3 c v_4 \mid
 v_1 , v_2 , v_3 , v_4 \in \{ a , b \}^* \commaand
 v_2 \neq v_3 \reverse \} ,\\
 L_4 &= (( \Sigma_3 ^* \sminus \pcpl{\vec x} ) \cap L_0 ) \cdot
 \{ c \} \cdot L_0 ,\\
 L_5 &= L_0 \cdot \{ c \} \cdot
 (( \Sigma_3 ^* \sminus \pcpl{\vec y} ) \reverse \cap L_0 ) .
\end{align*}

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

Доказательство. Рассмотрим алфавит \Sigma_3 = \{ a , b , c \} . Достаточно построить по постовской системе соответствия ( \vec x , \vec y ) , где \vec x = ( x_1 , \ldots , x_n ) , \vec y = ( y_1 , \ldots , y_n ) и для всех i выполняется x_i \in \{ a , b \}^* , y_i \in \{ a , b \}^* и x_i y_i \neq \varepsilon , контекстно-свободную грамматику G, порождающую язык \Sigma_3 ^* \sminus (\pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \}) . С учетом леммы 16.5.5 неразрешимость рассматриваемой задачи сводится к~неразрешимости проблемы соответствий Поста рассуждением, аналогичным приведенному в доказательстве теоремы 16.4.2.

Лемма 16.5.7. Рассмотрим алфавит \Sigma_3 = \{ a , b , c \} . Язык \pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \} является контекстным при любых \vec x и \vec y .

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

Доказательство. Достаточно построить по постовской системе соответствия ( \vec x , \vec y ) , где \vec x = ( x_1 , \ldots , x_n ) , \vec y = ( y_1 , \ldots , y_n ) и для всех i выполняется x_i \in \{ a , b \}^* , y_i \in \{ a , b \}^* и x_i y_i \neq \varepsilon , контекстную грамматику G, порождающую язык \pcpk{\vec x , \vec y} \cap \{ z c z \reverse \mid z \in \Sigma_3 ^* \} .

Упражнение 16.5.9. Является ли контекстно-свободным язык \{ a , b \}^* \sminus L , где язык L порождается грамматикой

\begin{align*}
 S \; & {\to} \; \varepsilon , \\
 S \; & {\to} \; aSbS ?
\end{align*}

< Лекция 16 || Лекция 17: 123
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

Евгения Гунченко
Евгения Гунченко

Сдавала тест экстерном, результат получен 74 после принятия данного результата и соответственно оплаты курса, будет ли выдано удостоверение о повышении квалификации?