Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 8.2. Неразрешимые проблемы для КС-грамматик 381
Интересно отметить, что разрешима проблема похожая на 1): по КС-грамматикеGи регулярному выражениюrпроверить включение L(G) ⊆ L(r) (см. задачу 300).
Теперь докажем неразрешимость проблемы однозначности.
Теорема 212.
Не существует алгоритма, который по произвольной
КС-грамматике определял бы, является ли она однозначной.
Доказательство. ПустьC={(
x1, y1)
, . . . ,(xn, yn)}— система
соответствий Поста в алфавите Σ. Построим по ней КС-грамматику
G = ({ S, A, B }, Σ ∪{ a1, . . . , an}, P, S) со следующими правилами:
S → A | B
A → xiAai| xiaiдля 1 6 i 6 n
B → yiBai| yiaiдля 1 6 i 6 n
Как и в доказательстве теоремы 209, проверяется, чтоL(
L(GB)6=
этому еслиCимеет решение ((
x
. . . x
i
1
∅
тогда и только тогда, когда
x
, y
)
i
i
1
1
a
. . . a
i
i
k
k
есть два дерева вывода: с нетерминаламиAиB.
i
1
, . . . ,(x
C
имеет решение. По-
, y
)), то для слова
i
i
k
k
GA)
∩
Наоборот, из вида правил непосредственно следует, что неоднознач­ность может появиться только из-за того, что некоторое слово выводимо черезAи черезB:
w ∈ L(GA)
∩ L(GB) иCимеет решение. Итак,Gнеоднозначна тогда
S ⇒ A ⇒∗w,S ⇒ B ⇒∗w
. Но тогда
w
и только тогда, когда C имеет решение.
В теореме 212 речь идёт об однозначности КС-грамматики, а не порождаемого ей языка. Докажем, что проблема однозначности порождаемого языка также неразрешима.
Теорема 213.
Не существует алгоритма, который по произвольной
КС-грамматикеGопределял бы, является ли языкL(G) однозначным.
Доказательство. Для системы соответствий ПостаCрассмот- рим следующие два языка:
L1= {aibicj: i, j > 0 }#LC,
L2= {aibjcj: i, j > 0 }#MC.
382 Глава 8. Алгоритмические проблемы для КС-языков
Оба эти языка однозначны, а порождающие их КС-грамматики стро­ятся эффективно по системеC. Поэтому эффективно строится и грамматикаGдля языкаL=
L1∪L2. Докажем, что языкLоднозна-
чен тогда и только тогда, когда C не имеет решений.
ЕслиCне имеет решений, то
LC∩ MC=∅, поэтому
L1∩ L2=∅.
Тогда языкLявляется объединением двух однозначных языков, не имеющих общих слов. Следовательно,Lтакже однозначен (см. задачу 280).
Пусть теперьCимеет решение. Предположим, чтоL— однознач­ный язык. Так как уCесть решение, то произвольное слово
w ∈ LC∩ MCи рассмотрим языкR, задаваемый
LC∩ MC6=∅
. Выберем
регулярным выражением a∗b∗c∗#w. По теореме 178 язык
L ∩ R = { aibjck#w : i = j или j = k }
также является однозначным КС-языком. Но язык
L ∩ R
неоднознач­ный, это доказывается так же, как в теореме 173. Следовательно,L— также неоднозначный язык.
Для доказательства дальнейших результатов о неразрешимости
введём ещё два специальных языка.
Оп ределен ие 116.
соответствий Поста в алфавите Σ, и пустьI= жество новых символов, Σ
ПустьC={(
∩ I=∅
x1, y1)
, . . . ,(xn, yn)}— система
, #/∈Σ
{a1, . . . , an}
∪ I
. Языки
— мно-
PCи
Q
C
определяются как
PC= LC#M
−1
C
,
QC= {w#w−1: w ∈ Σ+I+}.
Как и языки
LCи
MC, языки
PCи
QCконтекстно-свободны и
имеют контекстно-свободные дополнения.
Ле мма 214.
Языки
PC,
PC,
QCи
QCконтекстно-свободны. По-
рождающие их КС-грамматики строятся эффективно по системе C.
§ 8.2. Неразрешимые проблемы для КС-грамматик 383
Доказательство. Аналогично лемме 208 (задача 299).
В следующих двух леммах устанавливается связь проблемы соот-
ветствий Поста с введёнными языками.
Ле мма 215.
Система соответствий ПостаCимеет решение тогда и
только тогда, когда PC∩ QC6= ∅.
Доказательство. Если (( мыC, то любое слово из
x
. . . x
a
i
1
. . . a
i
i
k
k
PC∩ QCимеет такой вид, так как оно является
палиндромом, поэтому ((x
Ле мма 216.
Язык
PC∩ QCконтекстно-свободен тогда и только
i
1
i
#
, y
1
x
, y
i
1
a
. . . a
i
1
), . . . , (x
i
1
)
, . . . ,(x
i
1
i
k
, y
)) — решение систе-
i
i
k
k
y
i
i
k
, y
k
. . . y
∈ PC∩ QC. Обратно,
i
1
)) — решение.
i
k
тогда, когда он пуст.
Доказательство. Пусть
PC∩ QC6=∅
. Тогда по лемме 215 система соответствий ПостаCимеет решение. Значит, по лемме 17 она имеет бесконечно много решений, поэтому язык Он содержит слова со сколь угодно большим числом символов Предположим, что язык константа из леммы о разрастании,z= слово из
PC∩ QC, где
можно представить в видеz=
zi=
uviwxiy ∈ PC∩ QCдля всехi. Легко видеть, что каждое из
PC∩ QCконтекстно-свободен. Пустьk—
ra
r ∈
Σ∗,
m > k
uvwxy
. По лемме о разрастании
, так что
PC∩ QCбесконечен.
i
. . . a
1
#
a
i
m
. . . a
i
m
|vwx| 6 k,|v| 6
r−1—
i
1
ai.
z
= 0,
словv,xдолжно целиком находиться внутри подслов в алфавите Σ илиI. Еслиvиxлежат по одну сторону от символа #, то
z2/∈ QC.
Если жеvиxлежат по разные стороны от символа #, то оба они содержатся в блоках символов
a
. Тогда
i
j
z2/∈ PC. В обоих случаях
z2/∈ PC∩QC, что противоречит лемме о разрастании. Следовательно,
язык PC∩ QCне является контекстно-свободным.
Применим языки
PCи
QC, чтобы получить новые результаты о
неразрешимости.
Теорема 217.
Проблема регулярности неразрешима для КС-грам­матик: не существует алгоритма, который по КС-грамматикеGопре­делял бы, является ли язык L(G) регулярным.
384 Глава 8. Алгоритмические проблемы для КС-языков
Доказательство. По системе соответствий ПостаCпостроим КС-грамматикуG, порождающую языкL(G) = является регулярным тогда и только тогда, когда его дополнение
PC∩ QCрегулярно. По лемме 216 это эквивалентно тому, что язык PC∩ QCпуст, или тому, что система C не имеет решений.
PC∪QC. ЯзыкL(G)
Теорема 218.
КС-грамматик: не существует алгоритма, который по КС-грамматике G определял бы, является ли язык L(G) детерминированным.
Доказательство. Как и в доказательстве предыдущей теоре­мы, построим по системе соответствий ПостаCКС-грамматикуG, порождающую языкL(G) = является детерминированным контекстно-свободным тогда и только тогда, когда его дополнение контекстно-свободным. По лемме 216 это эквивалентно тому, что язык PC∩ QCпуст, или тому, что система C не имеет решений.
Теорема 219.
тикеGопределял бы, является ли язык
Доказательство. Снова по системе соответствий ПостаCпо- строим КС-грамматикуG, порождающую языкL(G) = полнениемL(G) является язык свободен тогда и только тогда, когда пуст, а это эквивалентно тому, что система C не имеет решений.
Доказанные в этом параграфе теоремы позволяют привести при-
меры m-полных и продуктивных множеств.
Проблема детерминированности неразрешима для
PC∪ QC. По теореме 199 языкL(G)
PC∩ QCявляется детерминированным
Не существует алгоритма, который по КС-грамма-
L(G)
контекстно-свободным.
PC∪QC. До-
PC∩QC. По лемме 216 он контекстно-
Сл едствие 220. Следующие множества m-полны:
1) множество пар КС-грамматик, порождающих общее слово;
2) множество КС-грамматик, порождающих не все слова;
3) множество пар неэквивалентных КС-грамматик;
4) множество неоднозначных КС-грамматик.
§ 8.2. Неразрешимые проблемы для КС-грамматик 385
Доказательство. Все четыре множества рекурсивно перечисли­мы. Ихm-трудность следует из того, что к нимm-сводима проблема соответствий Поста, являющаяся m-трудной по следствию 20.
Сл едствие 221. Следующие множества продуктивны:
1) множество пар КС-грамматик, не имеющих общих слов;
2) множество КС-грамматик, порождающих все слова;
3) множество пар эквивалентных КС-грамматик;
4) множество однозначных КС-грамматик;
5) множество КС-грамматик, порождающих регулярные языки;
6)
множество КС-грамматик, порождающих детерминированные
КС-языки;
7)
множество КС-грамматик, порождающих языки с контекстно­свободным дополнением.
Доказательство. Множество систем соответствий Поста, не имеющих решений, продуктивно, так как оно является дополнением
m
-полного множества. Оноm-сводимо к перечисленным множествам,
следовательно, они также продуктивны.
За меч ани е 6.
некоторые из описанных в этом параграфе проблем разрешимы. Одним из таких классов является класс ограниченных КС-языков. ЯзыкLназыва­ется о г р а н и ч е н н ы м , если существуют слова w1, w2, . . . , wnтакие, что
∗
L ⊆ w
произвольной КС-грамматике определяет, порождает ли она ограничен­ный язык. В классе КС-грамматик, порождающих ограниченные языки, разрешимы проблемы пустоты пересечения, эквивалентности грамматик и однозначности грамматики.
∗
w
. . . w
1
2
Существуют широкие классы КС-грамматик, для которых
∗
. Можно показать, что существует алгоритм, который по
n
Задачи
296. Завершите доказательство леммы 208.
386 Глава 8. Алгоритмические проблемы для КС-языков
297.
Постройте однозначные КС-грамматики для языков
ства теоремы 213.
298.
Докажите, что язык
теоремы 213 является неоднозначным для любого слова w.
299. Докажите лемму 214.
300.
Докажите разрешимость следующей проблемы: по КС-грамматикеGи
регулярному выражению r проверить, имеет ли место включение L(G) ⊆ L(r).
301. Докажите, что следующие проблемы алгоритмически неразрешимы:
(а)
по КС-грамматикеGопределить, выводим ли в ней какой-нибудь палин­дром;
(б)
по КС-грамматикеGопределить, выводимо ли в ней какое-нибудь слово вида ww.
302. Докажите, что следующие проблемы алгоритмически неразрешимы:
(а)
по КС-грамматикам ограниченным контекстно-свободным;
(б)
по КС-грамматикеGопределить, является ли язык контекстно-свободным;
(в)
по КС-грамматикеGи числуnопределить, выводимы ли вGвсе слова длины больше n;
(г)
по КС-грамматикеGи числу имеющее в G ровно n деревьев вывода;
(д)
по КС-грамматикеGи числуnопределить, порождается ли язык некоторой КС-грамматикой, содержащей не более n нетерминалов;
(е)
по КС-грамматикеGи числуnопределить, порождается ли язык некоторой КС-грамматикой, содержащей не более n правил.
303.
Докажите, что проблемы для КС-грамматик из параграфа 8.2 остаются неразрешимыми, даже если ограничиться КС-грамматиками с двухбуквенным терминальным алфавитом.
304.
Назовём кодом вычисления машины ТьюрингаMна входеwслово ви­да
x1x2. . . xn, где
x1= #
Поста. Докажите, что по машине ТьюрингаMи словуwможно построить КС­грамматикуG, порождающую в точности те слова, которые не являются кодом вычисления машины M на слове w.
305.
порождающей регулярный язык, проверял бы условиеL(G) = Σ∗. Если язык
q0Λw# — начальное слово Поста дляw, а
Докажите, что не существует алгоритма, который по КС-грамматикеG,
xi— слова Поста такие, что
{ aibjck#w:i=
G1и
G2определить, является ли языкL(
n >
j или j=k }
2 определить, существует ли слово,
x1` x2` · · · ` xn, при этом
L1и
L2из доказатель-
из доказательства
G1)
∩ L(G2)
L(G)
ограниченным
L(G)
L(G)
wn— заключительное слово
§ 8.3. Алгоритм Кока-Янгера-Касами 387
L(G
) не является регулярным, то алгоритм может выдать любой ответ, результат
даже может быть не определён.
§ 8.3. Алгоритм Кока-Янгера-Касами
В параграфе 8.1 мы показали, что проблема принадлежности для КС-грамматик разрешима. Теперь мы опишем для этой задачи эффек­тивный алгоритм, имеющий кубическую временн´ую сложность. Пусть
G
= (N,Σ
пусть w = a1a2. . . an— непустое слово в алфавите Σ.
Для любых двух чиселi,jтаких, что 1 лим множество
ai. . . aj:
, P, S
) — КС-грамматика в нормальной форме Хомского, и
6 i 6 j 6 n
m
тех нетерминалов, из которых выводимо слово
i,j
m
= {A ∈ N : A ⇒∗ai. . . aj}.
i,j
, опреде-
Вычисление множеств m
Ле мма 222.
Для множеств
основано на следующем свойстве.
i,j
m
выполняются следующие рекур-
i,j
рентные соотношения:
m
= {A ∈ N : A → ai∈ P };
i,i
j−1
[
m
=
i,j
{A ∈ N : существует правило A → BC ∈ P
k=i
такое, что B ∈ m
, C ∈ m
i,k
} при i < j.
k+1,j
Доказательство. Сначала докажем правильность соотноше­ния для
A ⇒∗ai, поэтому A ∈ m
m
. Если в грамматике есть правило
i,i
. Обратно, пусть A ∈ m
i,i
A → ai, то, конечно,
, то есть A ⇒∗ai.
i,i
ПосколькуGнаходится в нормальной форме Хомского, то это воз­можно только в том случае, когда в G есть правило A → ai.
Теперь докажем правильность рекуррентного соотношения для
i < j
. Пусть в грамматике есть правило
m
,
i,k
C ∈ m
для некоторогоk. По определению
k+1,j
A → BC
такое, что
m
и
i,k
m
B ∈
k+1,j
388 Глава 8. Алгоритмические проблемы для КС-языков
существуют выводы
B ⇒∗ai. . . akи
C ⇒∗a
. . . aj. Применяя
k+1
правило A → BC, получаем
A ⇒ BC ⇒∗ai. . . aka
Обратно, пусть
A ⇒∗ai. . . aj. Так как
применяется правило вида
A → BC
, поэтому вывод имеет вид
k+1
. . . aj.
i < j
, то на первом шаге
A ⇒
BC ⇒∗ai. . . aj. Так как вGнетε-правил, то по лемме о выводимости
конкатенации существует числоkтакое, что
C ⇒∗a C ∈ m
. . . aj. По определению
k+1
.
k+1,j
m
i,k
i 6 k < j,B ⇒∗ai. . . ak,
и
m
k+1,j
получаем
B ∈ m
i,k
На рис. 52 приведён алгоритм Кока-Янгера-Касами, проверяющий выводимость слова w в КС-грамматике G. Алгоритм заполняет тре­угольную матрицу Сначала в строках 1–3 заполняется диагональ, то есть клетки
m
, используя динамическое программирование.
i,j
m
i,i
Цикл в строках 4–9 заполняет оставшиеся клетки матрицы, при этом для заполнения клетки
m
и
i,k
m
. После заполнения таблицы алгоритм проверяет, при-
k+1,j
надлежит ли начальный нетерминалSклетке
m
используются уже заполненные клетки
i,j
m
, и возвращает
1,n
ответ.
Докажем корректность алгоритма Кока-Янгера-Касами и оценим его время работы.
,
.
Теорема 223.
тогда, когда
Алгоритм CYK возвращает «да» тогда и только
w ∈ L(G
). Время работы алгоритма составляетO(
n3p
где p = |P |.
Доказательство. Докажем индукцией поlследующее утвер- ждение: послеlитераций цикла в строках 4–9 все значения
m
i,j
для
j − i 6 l вычислены правильно.
Б а з и с и н д у к ц и и . Еслиl= 0, то сработал только цикл в
строках 1–3. Все значения m
Ш а г и н д у к ц и и . Пусть после
ждение верно. Наl-й итерации алгоритм вычисляет
вычисляются верно по лемме 222.
i,i
l −
1 итерации цикла утвер-
m
такие, что
i,j
),
§ 8.3. Алгоритм Кока-Янгера-Касами 389
Algorithm CYK Input: G = (N, Σ, P, S) — КС-грамматика в нормальной форме
Хомского,
w = a1a2. . . an— непустое слово в алфавите Σ.
Output: «да», если w ∈ L(G),
«нет», если w /∈ L(G).
1: for i = 1 to n do 2: m 3: end for 4: for l = 1 to n − 1 do 5: for i = 1 to n − l do 6: j = i + l;
7: m
8: end for 9: end for
10: if S ∈ m 11: return «да»; 12: else 13: return «нет»; 14: end if
= {A ∈ N : A → ai∈ P };
i,i
j−1
[
=
i,j
1,n
{A ∈ N : существует правило A → BC ∈ P
k=i
then
такое, что B ∈ m
, C ∈ m
i,k
k+1,j
};
Рис. 52. Алгоритм Кока-Янгера-Касами.
390 Глава 8. Алгоритмические проблемы для КС-языков
j−i=l
. По индукционному предположению все значения
m
i,k
,
m
k+1,j
используемые в строке 7, вычислены верно. Тогда по лемме 222 зна­чение m
Согласно доказанному получаем, что
также вычисляется верно.
i,j
S ∈ m
тогда и только
1,n
тогда, когда S ⇒∗a1. . . an, то есть w ∈ L(G).
Теперь оценим время работы алгоритма. Как и в параграфе 4.1, в качестве модели вычислений мы будем использовать машины с произ­вольным доступом к памяти (см. [2]). Будем считать, что множества нетерминалов хранятся в виде битовых массивов, так что операции вставки и поиска нетерминала выполняются за время O(1).
В строке 2 алгоритм должен перебрать все правила и для неко­торых из них выполнить вставку, поэтому однократное исполнение строки 2 требует времениO(p). Следовательно, строки 1–3 выполня­ются за время O(np).
Аналогично, в строке 7 при фиксированномkалгоритм перебирает все правила. Для каждой пары нетерминалов B, C требуется найти их в двух множествах
O(p
). Переменныеk,iиlпринимают не болееnзначений каждая,
поэтому цикл в строках 4–9 выполняется за времяO(
m
i,k
и
m
. Как и выше, получаем сложность
k+1,j
n3p
) и общее
время работы алгоритма также составляет O(n3p).
,
Сл едствие 224.
слова длиныnв произвольной КС-грамматикеG= (N,Σ времяO(
n3p2l
Существует алгоритм для проверки выводимости
), гдеp=
|P |,l
— длина самой длинной правой части
, P, S
) за
правила из P .
Доказательство. По теореме 162 по грамматикеGможно постро- ить эквивалентную грамматику ме Хомского. Из доказательства теоремы следует, что
G0= (
N0,Σ, P0, S0) в нормальной фор-
|P0|=O(lp2).
После этого остаётся применить алгоритм Кока-Янгера-Касами к грамматике G0.
Сл едствие 225.
Для фиксированной КС-грамматикиGвыводи-
мость слова длины n можно проверить за время O(n3).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]