Помогите решить задание лекции 3 курс Математическая теория формальных языков |
Алгоритмически неразрешимые проблемы
16.2. Проблема однозначности
Теорема 16.2.1. Пусть . Тогда не существует алгоритма, позволяющего по произвольной
контекстно-свободной грамматике G над алфавитом
узнать, является ли грамматика G однозначной.
Доказательство.
Рассмотрим язык .
Следуя доказательству теоремы 9.4.3,
построим грамматику G
для этого языка, исходя из грамматик
и
.
Грамматика G является неоднозначной тогда и только тогда, когда
постовская система соответствия
имеет решение.
Упражнение 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*}](/sites/default/files/tex_cache/26141b1a30c75f95bf1a71c4d8a6a7c1.png)
16.3. Дополнение контекстно-свободного языка
Лемма 16.3.1. Рассмотрим алфавит . Язык
является контекстно-свободным при любом
.
Пример 16.3.2.
Пусть .
Тогда язык
над алфавитом
порождается контекстно-свободной грамматикой
![\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*}](/sites/default/files/tex_cache/9c828c1fb65c4fb5490623ac4d1e2128.png)
![\{ w \in \Sigma_3 ^* \mid T_i \overstar{\Rightarrow} w \} = \Sigma_3 ^* \sminus ( \Sigma_3 ^* \cdot \{ x_i \} )](/sites/default/files/tex_cache/a82ef4dda6f63c20ed64430bdbbacccb.png)
Язык
является даже линейным
(чтобы получить линейную грамматику, достаточно "раскрыть"
вспомогательные символы A, B и Z ).
Замечание 16.3.3.
Лемму 16.3.1
можно доказать, явно построив
контекстно-свободную грамматику
(как в примере 16.3.2),
а можно и вывести из теоремы 12.2.7},
проверив, что -
детерминированный контекстно-свободный язык.
Определение 16.3.4.
Пусть ,
,
,
где
и
для всех i.
Обозначим через
язык
.
Лемма 16.3.5.
Язык
является контекстно-свободным
при любых
и
.
Доказательство. .
Лемма 16.3.6. Дополнение языка является непустым тогда и только тогда, когда
постовская система соответствия
имеет решение.
Доказательство Утверждение следует из леммы 16.1.2.
Теорема 16.3.7. Пусть . Тогда не существует алгоритма, позволяющего по произвольной
контекстно-свободной грамматике G над алфавитом
узнать, верно ли, что
.
Доказательство
Очевидно, что
тогда и только тогда, когда
дополнение языка L(G)
является пустым.
Теорема 16.3.8. Пусть . Тогда не существует алгоритма, позволяющего по произвольным
контекстно-свободным грамматикам G1 и G2 над алфавитом
узнать, верно ли, что L(G1) = L(G2).
Доказательство Утверждение следует из предыдущей теоремы и примера 1.5.16.
Теорема 16.3.9. Пусть . Тогда не существует алгоритма, позволяющего по произвольным
контекстно-свободным грамматикам G1 и G2 над алфавитом
узнать, верно ли, что
.
Доказательство
Очевидно, что
тогда и только тогда, когда
.
Лемма 16.3.10. Дополнение языка является бесконечным тогда и только тогда, когда
постовская система соответствия
имеет решение.
Теорема 16.3.11. Пусть . Тогда не существует алгоритма, позволяющего по произвольной
контекстно-свободной грамматике 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*}](/sites/default/files/tex_cache/dc316cfb6616c85509b91ce26ea58ab8.png)
Упражнение 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*}](/sites/default/files/tex_cache/1fba550fcb0b60970e5ff7c5890c2590.png)