Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 7.5. Свойства детерминированных КС-языков 371
290.
Докажите, что класс детерминированных КС-языков не замкнут относи­тельно операций
(а) объединения;
(б) пересечения;
(в)
неукорачивающих гомоморфиз­мов;
(г) обращения;
291.
Зачем в доказательстве теоремы 201 отдельно рассматриваются случаи x = ε и x 6= ε?
(д) левого и правого деления;
(е) тасовки;
(ж) квадратного корня;
(з) коммутативного замыкания.
372 Глава 8. Алгоритмические проблемы для КС-языков
Глава 8
Алгоритмические проблемы
для КС-языков
§ 8.1. Разрешимые проблемы для
КС-грамматик
Многие алгоритмические проблемы, разрешимые для конечных автоматов, оказываются неразрешимыми для КС-грамматик. В этом параграфе мы рассмотрим некоторые разрешимые проблемы и их применение к конечным автоматам. В следующем параграфе мы изучим основные неразрешимые проблемы.
Теорема 204. Проблема пустоты разрешима для КС-грамматик.
Доказательство. ПустьG= (N,Σ грамматика.L(G) =∅тогда и только тогда, когда главный нетерми­нал пуст, то есть когда S /∈ N
Теорема 205.
матик.
Доказательство. ПустьG= (N,Σ грамматика. По теореме 161 можно считать, что грамматикаGпри-
Проблема бесконечности разрешима для КС-грам-
кон
.
, P, S
) — произвольная КС-
, P, S
) — произвольная КС-
§ 8.1. Разрешимые проблемы для КС-грамматик 373
ведённая. Построим по ней ориентированный граф H = (N, E), где
E = {(A, B) : в G есть правило вида A → αBβ
для некоторых α, β ∈ (Σ ∪N )∗}.
Докажем, что языкL(G) бесконечен тогда и только тогда, когда в графе H есть цикл.
Пусть графHациклический. Тогда для каждой вершины можно определить её высоту как длину самого длинного пути, начинающе­гося в этой вершине. Индукцией по высоте нетерминалаAнетрудно проверить, что все языкиL( также конечен.
Пусть в графе есть цикл. Тогда существует нетерминалAта­кой, что
αβ 6=ε
налы достижимы, то существует вывод
ξ, η ∈(Σ∪ N
выводимы некоторые терминальные слова так как в грамматике нетε-правил. Тогда для любого место S ⇒∗uviwxiy, поэтому язык L(G) бесконечен.
A ⇒+αAβ
, поскольку в грамматике нет циклов. Поскольку все нетерми-
)∗. Так как все нетерминалы непусты, то из
GA) конечны, поэтому языкL(G) =L(
для некоторых
α, β ∈
S ⇒∗ξαAβη
(Σ
u, v, w, x, y
∪ N
)∗. При этом
для некоторых
, причём
ξ, α, A, β, η
vx 6=ε
i >
0 имеет
GS)
,
Теорема 206.
матик.
Доказательство. ПустьG= (N,Σ дённая КС-грамматика, и пусть
w=ε
, то
S → ε
с грамматике нет циклов.
поскольку количество деревьев вывода может быть экспоненциально большим относительно длины слова. В параграфе 8.3 мы приведём алгоритм сложности O(n3) для проблемы принадлежности.
. Если же
|w|
листьями. Множество таких деревьев конечно, поскольку в
Описанный в этой теореме алгоритм чрезвычайно неэффективен,
Проблема принадлежности разрешима для КС-грам-
, P, S
) — произвольная приве-
w ∈
Σ∗— произвольное слово. Если
w ∈ L(G
) тогда и только тогда, когда вPесть правило
w 6=ε
, то можно перебрать все деревья вывода
374 Глава 8. Алгоритмические проблемы для КС-языков
В параграфе 4.1 мы доказали, что проблема эквивалентности неразрешима для недетерминированных конечных преобразователей. Теперь мы покажем, как свести проблему эквивалентности детермини­рованных конечных преобразователей к проблеме пустоты КС-языка.
Теорема 207.
Проблема эквивалентности детерминированных ко-
нечных преобразователей разрешима.
Доказательство. Пусть даны два детерминированных конечных преобразователя Обозначим через зователь
S1и
Siпереходит в заключительное состояние. Преобразователи
S2не эквивалентны тогда и только тогда, когда
ществует словоwтакое, что
S1= (
Q1,Σ,∆, δ1, q
Liмножество слов, при работе на которых преобра-
S1(w)6=
1
, F1) и
0
S2(w). Получаются следующие
S2= (
Q2,Σ,∆, δ2, q
L16=L2или су-
2
, F2).
0
три случая:
1) языки L1и L2различны;
2) существует слово w такое, что |S1(w)| 6= |S2(w)|;
3)
существует словоwтакое, что слова
S1(w) и
S2(w) различаются
символом в некоторой позиции.
Язык вателя Обозначим через
Liраспознаётся ДКА, который получается из преобразо-
Siзаменой каждой команды
q, a → p, v
на команду
q, a → p
M1конечный автомат, распознающий симметриче-
скую разность языков L1и L2.
Далее мы докажем, что множества слов, удовлетворяющих усло­виям 2) и 3), являются КС-языками.
Сначала рассмотрим слова, удовлетворяющие условию 2). Мы построим МП-автомат
M2= (Q,Σ,Γ
, δ, q0, z0, {qf}
), распознающий
язык
L = { w ∈ Σ∗: |S1(w)| 6= |S2(w)|}.
.
Пусть на вход подаётся словоw=
a1a2. . . an. Автомат
M2последова-
тельно вычисляет в магазине модуль разности длин слов и
S2(
a1. . . ai), то есть величину
m
=
|S1(
a1. . . ai)
− S2(
S1(
a1. . . ai)
a1. . . ai)|,
§ 8.1. Разрешимые проблемы для КС-грамматик 375
при этом сами выходные слова игнорируются. Если
S2(
a1. . . ai), то в магазине хранится слово
слово
p, c → q, d1. . . dk∈ δ1и
bmz0. Если для очередного символа
r, c → s, e1. . . el∈ δ2, то вδдобавляется
amz0, в противном случае —
c ∈
Σ имеются команды
S1(
команда
[p, r], c, z → [p, r, 0], z,
а также следующие команды в зависимости от чисел k и l.
1) Если k = l, то добавляются команды
[p, r, 0], ε, z → [q, s], z для z ∈ {z0, a, b }.
2) Если k > l, то добавляются команды
[p, r, 0], ε, a → [q, s], a
k−l+1
,
[p, r, i], ε, b → [p, r, i + 1],ε для 0 6 i 6 k − l − 1,
[p, r, i], ε, z0→ [q, s], a
k−l−i
z0для 0 6 i 6 k − l,
[p, r, k − l], ε, b → [q, s], b.
3) Если k < l, то добавляются команды
a1. . . ai)
>
[p, r, 0], ε, b → [q, s], b
k−l+1
,
[p, r, i], ε, a → [p, r, i + 1],ε для 0 6 i 6 k − l − 1,
[p, r, i], ε, z0→ [q, s], b
k−l−i
z0для 0 6 i 6 k − l,
[p, r, k − l], ε, a → [q, s], a.
Кроме того, для каждой пары состояний
p ∈ F1,
r ∈ F2добавляются
две команды
[p, r], ε, z → qf, z для z ∈ {a, b }.
1
Начальным состоянием автомата M2является [q
В состоянии [
p, r
] автомат
M2знает, что преобразователи дошли
2
, q
].
0
0
до состоянийpиrсоответственно. Он считывает очередной символ
376 Глава 8. Алгоритмические проблемы для КС-языков
c
и переходит в состояние [ не меняется, поэтому автоматMпросто переходит в состояние [ Если
k > l
, то автомат должен прибавить число нящемуся в магазине. Если на вершине магазина хранится символ или
z0, то автомат просто добавляет
[
q, s
]. Если же на вершине хранитсяb, то сначала автомат удаляет символыbи запоминает количество удалённых символов в третьей компоненте состояния. Если в состоянии [ газин пуст, то было удалено ровноiсимволовb, поэтому автомат добавляет в магазин в магазине остаются символыb, то разность уже вычислена верно. В обоих случаях автомат переходит в состояние [ тать следующий символ. Если Автомат принимает входное слово, только если оказалось, что оба преобразователя пришли в заключительные состояния и при этом магазин непуст.
Теперь рассмотрим слова, удовлетворяющие условию 3). Нужно построить МП-автомат для которых опишем общую схему работы автомата, оставив детали в качестве упражнения (задача 294). В этом случае автомат работает по похожей схеме. Сначала в течение нескольких тактов он вычисляет в магазине разность длин выходных слов. Затем на очередном шаге он запоми­нает в состоянии некоторый выходной символ того преобразователя, который выдал большее или равное число символов. Предположим для определённости, что это был преобразователь команда символ на чит, что преобразователь а следующим символом является ещёmсимволов преобразователя
diв состоянии и увеличивает число, хранящееся в магазине,
i −
1. Пусть в результате в магазине оказалось числоm. Это зна-
S1(w) и
p, c → q, d1. . . dk,
k − l − i
p, r,
0]. Еслиk=l, то модуль разности
q, s
k − l
к числу, хра-
k − l
символовaи переходит в
q, s, i
] оказывается, что ма-
символовa. Если же после
q, s
k < l
, то автомат работает аналогично.
M3, распознающий те и только те словаw,
S2(w) отличаются некоторым символом. Мы
k >
0. Автомат
S1выдал наmсимволов больше, чем
di. Теперь
S2и проверить, что следующий
M3запоминает некоторый
M3должен пропустить
k − l
шагов
] и готовится чи-
S1и в нём есть
S2,
].
a
§ 8.1. Разрешимые проблемы для КС-грамматик 377
символ не равен
r, c → s, e1. . . el. Тогда
газине наl. Если магазин содержитnсимволов и
e
стоит на той же позиции, что и
n+1
di. Пусть в
M3делаетε-такт и уменьшает число в ма-
S2для того же символаcесть команда
n < l
, то символ
di. Если
e
6=di, то автомат
n+1
дочитывает слово до конца и переходит в заключительное состоя­ние. В противном случае автомат читает оставшуюся часть входного слова, уменьшая число в магазине наt, если Выход преобразователя
S1игнорируется. Если магазин оказывается
пустым и следующий символ, выдаваемый
S2печатаетtсимволов.
S2, отличается от
di, то
M3дочитывает слово до конца и распознаёт его.
Построим теперь КС-грамматикуG, порождающую языкL(
L
(
M2)
∪ L(M3). Нетрудно видеть, что
S1и
S2эквивалентны тогда и
M1)
∪
только тогда, когда L(G) = ∅.
Задачи
292.
Постройте алгоритм, который по КС-грамматикеGпроверяет, является ли языкL(G) конечным, и в случае положительного ответа печатает все слова этого языка.
293. Докажите, что следующие проблемы алгоритмически разрешимы:
по КС-грамматикеGи числуkпроверить, выводимы ли вGпо меньшей
(а)
мере k слов;
(б)
по КС-грамматикеGс терминальным алфавитом димо ли в G какое-нибудь слово вида anbn, n > 0;
(в)
по КС-грамматикеGс терминальным алфавитом Σ проверить, что любое слово языка L(G) содержит все символы из Σ;
(г)
по КС-грамматикеGс терминальным алфавитом Σ найти все символы из
Σ, встречающиеся в некоторых словах языка L(G);
(д)
по КС-грамматикеG, словуwи числуkпроверить, существует ли вывод словаwвG, в котором используется ровноkразличных правил (при этом каждое правило может использоваться произвольное число раз);
(е)
по КС-грамматикеGпроверить, что длины всех слов языкаL(G) являются простыми числами.
294. Завершите доказательство теоремы 207.
{ a, b }
проверить, выво-
378 Глава 8. Алгоритмические проблемы для КС-языков
295.
Рассмотрим следующее обобщение детерминированных конечных преоб­разователей: конечный преобразовательSдетерминированный, если в нём нет двух команд ся префиксом (не обязательно собственным) другого. Докажите, что проблема эквивалентности обобщённых детерминированных конечных преобразователей разрешима.
q, u1→ p1, v1и
q, u2→ p2, v2таких, что одно из слов
u1,
u2являет-
§ 8.2. Неразрешимые проблемы для
КС-грамматик
Доказательство неразрешимости различных проблем для КС­грамматик часто основано на сведении к ним проблемы соответствий Поста. С каждой системой соответствий ПостаCсвяжем два специ­альных языка LCи MC.
Оп ределен ие 115.
соответствий Поста в алфавите Σ, и пустьI= жество новых символов, Σ
ПустьC={(
∩ I=∅
x1, y1)
. Языки
, . . . ,(xn, yn)}— система
{a1, . . . , an}
LCи
MCопределяются
— мно-
как
LC= {x
MC= {y
Докажем, что языки
x
. . . x
a
. . . a
a
i
i
1
y
i
1
2
i
2
. . . y
LC,
i
i
k
k
a
. . . a
i
i
k
k
MCи их дополнения контекстно-свобод-
: k > 0, 1 6 ij6 n },
i
i
2
1
a
: k > 0, 1 6 ij6 n }.
i
i
2
1
ны.
Ле мма 208.
Языки
LC,
MC,
LCи
MCявляются КС-языками. По-
рождающие их КС-грамматики строятся эффективно по системе C.
Доказательство. Язык
LCпорождается КС-грамматикой со
следующими правилами:
S → xiSai| xiaiдля 1 6 i 6 n.
Для языка
LCмы опишем общий вид МП-автомата, оставив дета-
ли доказательства в качестве упражнения (задача 296). Словоwне
§ 8.2. Неразрешимые проблемы для КС-грамматик 379
принадлежит языку лежит языку Σ+I+, либо оно имеет видuv, где
LCв одном из двух случаев: либо оно не принад-
u ∈
Σ+,
v ∈ I+, но
префиксuне соответствует суффиксуv. Сначала автомат считывает символы из алфавита Σ и запоминает их в магазине. Когда автомат видит символ слово
xi. Если это верно, то он считывает следующий символ. Если на
вершине нет слова
ai, он проверяет, что на вершине магазина хранится
xi, то автомат дочитывает входное слово до конца
и переходит в заключительное состояние. Если после символа из автомат встречает символ из Σ, то он также распознаёт слово. Если же автомат доходит до конца слова, не обнаружив несоответствий, то он отвергает вход. По теореме 133 по МП-автомату можно построить эквивалентную КС-грамматику.
Доказательство для языков
MCи
MCполучается заменой
x
на yi.
С помощью языков
LCи
MCможно доказать неразрешимость
некоторых естественных проблем.
Теорема 209.
Проблема пустоты пересечения неразрешима для КС-грамматик: не существует алгоритма, который по двум КС-грам­матикам G1и G2проверял бы, пуст ли язык L(G1) ∩L(G2).
Доказательство. ПустьC={( соответствий Поста в алфавите Σ. Построим две КС-грамматики и
G2с терминальным алфавитом ∆ = Σ
языки
LCи
MC. Еслиw— общее слово двух языков, то оно имеет
x1, y1)
, . . . ,(xn, yn)}— система
∪{a1, . . . , an}
, порождающие
G
вид
x
. . . x
a
i
1
. . . a
i
i
k
k
= y
. . . y
a
. . . a
i
i
i
1
1
i
k
k
,
i
1
I
i
1
так как суффиксы в алфавите этому ((
((
x
му слово языкам. Итак,
C
x
, y
)
, . . . ,(x
i
i
1
1
, y
)
, . . . ,(x
i
i
1
1
x
i
1
. . . x
, y
i
k
i
k
, y
i
k
)) — решение, то
i
k
a
. . . a
i
i
k
LC∩ MC=∅тогда и только тогда, когда система
не имеет решений. Следовательно, проблема пустоты пересече-
{a1, . . . , an}
)) — решение системыC. Наоборот, если
i
k
=
y
. . . y
i
1
1
a
i
k
должны совпадать. По-
x
i
k
i
1
. . . a
. . . x
=
y
i
k
принадлежит обоим
i
1
i
1
. . . y
, поэто-
i
k
380 Глава 8. Алгоритмические проблемы для КС-языков
ния КС-языков неразрешима, так как в противном случае была бы разрешима проблема соответствий Поста.
Теорема 210.
матик: не существует алгоритма, который по произвольной КС-грам­матикеG= (N,Σ то есть верно ли, что L(G) = Σ∗.
Доказательство. ПустьC={( соответствий Поста в алфавите Σ. Из законов де Моргана следует, что
LC∩ MC=∅тогда и только тогда, когда
лемме 208 КС-грамматики для языков
C
. В силу замкнутости класса КС-языков относительно объединения КС-грамматикаGдля языка Итак,L(G) = Σ∗тогда и только тогда, когда системаCне имеет решений.
Непосредственно из этой теоремы получается
Сл едствие 211.
шимы:
1)
по произвольной КС-грамматикеGи регулярному выражению r проверить, имеет ли место включение L(r) ⊆ L(G);
2)
по произвольной КС-грамматикеGи регулярному выражению r проверить, эквивалентны ли r и G;
Проблема тотальности неразрешима для КС-грам-
, P, S
) определял бы, порождает ли она все слова,
x1, y1)
, . . . ,(xn, yn)}— система
LC∪ MC= Σ∗. По
LCи
MCстроятся по системе
LC∪ MCтакже строится эффективно.
Следующие проблемы алгоритмически неразре-
3)
по произвольным КС-грамматикам ли место включение L(G1) ⊆ L(G2);
4)
по произвольным КС-грамматикам ся ли они эквивалентными.
Доказательство. Проблемы 2) и 4) являются обобщениями проблемы тотальности. Неразрешимость проблем 1) и 3) следует из того, что Σ∗⊆ L(G) тогда и только тогда, когда L(G) = Σ∗.
G1и
G2проверить, имеет
G1и
G2проверить, являют-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]