Помогите решить задание лекции 3 курс Математическая теория формальных языков |
Алгоритмически неразрешимые проблемы
В этой лекции рассматриваются оказавшиеся неразрешимыми алгоритмические проблемы, связанные с контекстно-свободными языками. Всюду предполагается, что в индивидуальных задачах каждый язык представлен контекстно-свободной грамматикой (но можно, конечно, использовать и автоматы с магазинной памятью).
В разделе 16.1 доказывается неразрешимость проблемы пустоты пересечения контекстно-свободных языков и проблемы бесконечности пересечения контекстно-свободных языков.
В разделе 16.2 доказывается неразрешимость проблемы однозначности контекстно-свободной грамматики.
В разделе 16.3 доказывается неразрешимость проблемы равенства контекстно-свободных языков.
В разделе 16.4 доказывается неразрешимость проблемы автоматности контекстно-свободного языка.
В разделе 16.5 доказывается неразрешимость проблем контекстной свободности дополнения контекстно-свободного языка и пересечения контекстно-свободных языков.
16.1. Пересечение контекстно-свободных языков
Определение 16.1.1.
Рассмотрим алфавит .
Пусть
,
где
для всех i.
Обозначим через
линейную грамматику
,
где
![P = \{ S \tto b a^i S x_i \mid 1 \leq i \leq n \} \cup
\{ S \tto b a^i c x_i \mid 1 \leq i \leq n \} .](/sites/default/files/tex_cache/1137048ee87687835d01b6671621a419.png)
![\pcpl{\vec x}](/sites/default/files/tex_cache/07552c538f6fe7d116efe7ba189ed601.png)
![G ( \vec x )](/sites/default/files/tex_cache/8f3ee289b4352889a2b0d2a816de2e3b.png)
Лемма 16.1.2. Язык является непустым тогда и только тогда, когда
постовская система соответствия
имеет решение.
Пример 16.1.3. Рассмотрим постовскую систему соответствия
![\domino{ b }{ bba } ,
\domino{ abbaa }{ a }](/sites/default/files/tex_cache/5ee0f1d1fb0ec8bd81444df7da77d72e.png)
![\vec x = ( b , abbaa )](/sites/default/files/tex_cache/5129d5d700ed432571619f0de67ed594.png)
![\vec y = ( bba , a )](/sites/default/files/tex_cache/9a0b74c24aad93f8933c5cbf962b0214.png)
![\pcpl{\vec x} \cap \pcpl{\vec y} =
\{ (baababa)^n c (bbabbaa)^n \mid n \geq 1 \} .](/sites/default/files/tex_cache/58543dba177d5ec2aa803c9369001857.png)
Теорема 16.1.4. Пусть . Тогда не существует алгоритма, позволяющего по произвольным
контекстно-свободным грамматикам G1 и G2 над алфавитом
узнать, верно ли, что
.
Доказательство.
Сначала докажем утверждение теоремы для случая .
Из леммы 16.1.2 следует, что
если бы проблема распознавания свойства
для контекстно-свободных грамматик
над алфавитом
была разрешима, то проблема соответствий Поста тоже была бы разрешима.
Поэтому из неразрешимости проблемы соответствий Поста
следует неразрешимость
проблемы распознавания свойства
для контекстно-свободных грамматик
над алфавитом
.
Чтобы доказать утверждение теоремы для случая
(например,
),
достаточно заменить в определении
символ a на ede,
символ b на edde
и символ c на eddde.
Лемма 16.1.5. Язык является бесконечным тогда и только тогда, когда
постовская система соответствия
имеет решение.
Доказательство. Если постовская система соответствия имеет хотя бы одно решение, то она имеет бесконечно много решений.
Теорема 16.1.6. Пусть . Тогда не существует алгоритма, позволяющего по произвольным
контекстно-свободным грамматикам G1 и G2 над алфавитом
узнать, является ли бесконечным язык
.
Упражнение 16.1.7.
Пусть .
Рассмотрим язык L1,
порождаемый грамматикой
![\begin{align*}
F \; & {\to} \; d_1 F a , \\
F \; & {\to} \; d_2 F aab , \\
F \; & {\to} \; d_3 F baa , \\
F \; & {\to} \; c ,
\end{align*}](/sites/default/files/tex_cache/fc067da7dd97e5223abed68e0ab0d9b3.png)
![\begin{align*}
J \; & {\to} \; d_1 J aa , \\
J \; & {\to} \; d_2 J bb , \\
J \; & {\to} \; d_3 J a , \\
J \; & {\to} \; c .
\end{align*}](/sites/default/files/tex_cache/9bbd4c2d04f3adf2b0f04e5272894e28.png)
![L_1 \cap L_2 = \{ c \}](/sites/default/files/tex_cache/675ad1ea5e9314d65221a879bcbd2b82.png)
Упражнение 16.1.8.
Пусть .
Рассмотрим язык L1,
порождаемый грамматикой
![\begin{align*}
F \; & {\to} \; d_1 F b , & F \; & {\to} \; d_1 c b , \\
F \; & {\to} \; d_2 F a , & F \; & {\to} \; d_2 c a , \\
F \; & {\to} \; d_3 F aba , & F \; & {\to} \; d_3 c aba ,
\end{align*}](/sites/default/files/tex_cache/f1d7305ae12f3fae134a8de2a60be295.png)
![L_2](/sites/default/files/tex_cache/e0d2629d5a2592f4fbec191d52770072.png)
![\begin{align*}
J \; & {\to} \; d_1 J , & J \; & {\to} \; d_1 c , \\
J \; & {\to} \; d_2 J aa , & J \; & {\to} \; d_2 c aa , \\
J \; & {\to} \; d_3 J b , & J \; & {\to} \; d_3 c b .
\end{align*}](/sites/default/files/tex_cache/283a8b2d97910e174f4613cd52c16747.png)
![L_1 \cap L_2 = \varnothing](/sites/default/files/tex_cache/a897bacef7929e4db3724a9e99a4bbe8.png)
Упражнение 16.1.9.
Пусть .
Рассмотрим язык L1,
порождаемый грамматикой
![\begin{align*}
F \; & {\to} \; ba F a , & F \; & {\to} \; ba c a , \\
F \; & {\to} \; baa F aab , & F \; & {\to} \; baa c aab , \\
F \; & {\to} \; baaa F baa , & F \; & {\to} \; baaa c baa ,
\end{align*}](/sites/default/files/tex_cache/9bf7d1bc253464f76bae93504444c9fe.png)
![\begin{align*}
J \; & {\to} \; ba J aa , & J \; & {\to} \; ba c aa , \\
J \; & {\to} \; baa J bb , & J \; & {\to} \; baa c bb , \\
J \; & {\to} \; baaa J a , & J \; & {\to} \; baaa c a .
\end{align*}](/sites/default/files/tex_cache/c8b239bd8d757af5d98f7fb3690c68a4.png)
![L_1 \cap L_2 = \varnothing](/sites/default/files/tex_cache/a897bacef7929e4db3724a9e99a4bbe8.png)