Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная математика.doc
Скачиваний:
123
Добавлен:
10.05.2014
Размер:
905.22 Кб
Скачать

10. Разрешимые и неразрешимые свойства кс-грамматик

10.1. Разрешимые свойства КС-грамматик

Теорема. СвойствоL(G) разрешимо для КС-грамматик.

Разрешимость этого свойства обеспечивается алгоритмом исключения -правил, приведенным в предыдущем разделе.

Теорема. ЕслиG=<VT,VN,S,R> – КС, неукорачивающая грамматика, то языкL(G) разрешим, т.е. для любой цепочкиVT* можно определить,L(G) или жеL(G).

Доказательство:

Пусть , L(G) и=n. Тогда существует вывод цепочкиI,…,,,…,, … , ,. Т.е. некоторая цепочка встречается в выводе более одного раза. Тогда, удалив из вывода фрагмент,…,,получим опять вывод цепочки.

Значит, для любого слова L(G) существует его бесповторный вывод вG, т.е. вывод, в котором все цепочки различны, причем длина каждой цепочкиn. Число таких цепочек ограничено числом

, а значит, длина вывода ограничена числомr(n)!( в принципе можно дать более точную оценку, но достаточно и этой). Откуда получается простой алгоритм распознавания нам здесьL(G) или жеL(G)?

Перебираем все бесповторные последовательности цепочек длины n, в которых каждая следующая цепочка не короче предшествующей, и проверяем, является ли она выводом в данной грамматике. Сложность такой проверки ограничена, т.к. на каждом шаге проверяем выводимостьai+1 изai. Если хоть одна последовательность является выводом требуемой цепочки, тоL(G) иначеL(G).

Теорема. ЕслиG– приведенная грамматика без цепных правил, то существуют константы с1 и с2, зависящие отG, что для любого вывода() цепочкиL(G)

c1()c2, где()- длина вывода цепочки.

Доказательство:

Пусть имеется грамматика G=< VT,VN, S, R>.

Обозначим K- VN,L– максимальная длина правой части правила вR, т.е.L={max A R & A VN}. Т.к.Gне содержит цепных и укорачивающих правил, то для любого выводаK,>, значит, для выводаSK,, следовательно,()K, с другой стороны,L(), поэтому,L(), что требовалось доказать.

Теорема.

Если G=< VT,VN, S, R>– КС-грамматика, тоL(G) бесконеченсуществует нетерминальный символAiтакой, чтоS+XAiY,Ai+ZAiW,ZW1, иAi+V&(X,Y,Z,W,V VT*).

Доказательство:

Считаем, что рассматриваемая грамматика не содержит цепных правил.

1. Доказательство бесконечности языка при условии S+XAiY,Ai+ZAiW,ZW1, иAi+Vочевидно, т.к. при представленных условиях фрагмент выводаAi+ZAiWможет быть включен в вывод произвольное число раз; следовательно,S+XVY, иS+XZjVWjYдля всехj0,что и обеспечивает построение бесконечного множества цепочек заданного вида.

2. Пусть язык, порождаемый грамматикой, является бесконечным, а условие теоремы не выполняется. Тогда максимальная глубина (длина ветви) синтаксического дерева для цепочки, порождаемой грамматикой, не превышает  VN. Число таких деревьев конечно, значит, конечно число цепочек, порождаемых грамматикой.

Если же язык бесконечен, то глубина деревьев не ограничена, значит, в каком-нибудь синтаксическом дереве Т существует нетерминал Ai, через который ветвь дерева проходит неоднократно, причем это дерево соответствует выводу терминальной цепочки. Значит, во-первых, существует путь из начальной вешнины в данную вершину, и в силу отсутствия цепных правил,S*Ai,*X,*Y,X,YVT*, во-вторых, в силу выводимости изAi терминальной цепочки,AiVVTVT, в третьих, из-за повторения нетерминалаAiв ветви дереваAi+Ai,*Z,*W,Z,W VT*, значит,Ai+ZAiW,ZW1. Что и требовалось доказать.

Из доказанной теоремы следует

Следствие 1. Для КС-грамматикиG=< VT,VN, S, R>существуют числаp,qтакие, что для любой цепочкиL(G), еслиp, то она имеет вид=, где,q, и для любого nцепочка видаnnL(G),n0.

Следствие 2.Язык {anbncn,n} не порождается КС-грамматикой.

Теорема. СвойствоL(G)=разрешимо для КС-грамматик.

Разрешимость свойства следует из рассмотренных ранее алгоритмов: Язык L(G) не пуст тогда и только тогда, когда начальный символ грамматики является производящим.

10.2. Неразрешимые свойства КС-грамматик.

Поскольку класс множеств (слов), порождаемых грамматиками, совпадает с классом перечислимых множеств, то для языков класса «0» справедлив аналог теоремы Райса «никакое нетривиальное свойство языков класса 0 не является алгоритмически разрешимым» (Т.е. для нетривиального свойства не существует алгоритма, который по произвольной грамматике Gвыяснял, обладает ли данным свойством языкL(G)).

Для КЗ-грамматик проблема пустоты и бесконечности неразрешимы. Для КС-грамматик эти проблемы разрешимы.

Неразрешимые проблемы для КС-грамматик следуют из неразрешимости проблемы Поста.

Формулировка этой проблемы в виде, удобном для наших целей, следующая: для двух списков цепочек X=(1,2,…,m) иY=(1,2,…m) в алфавитеUопределить, существует ли последовательность индексовi1,i2,…in, такая, что.

Пусть Uиmфиксированы. Введём алфавит дополнительных символовU0={b1,b2,…bm},U0U=/

U1=U0U. ПустьX=(1,2,…,m) –цепочки вU. ТогдаQ(X) – множество цепочек вида,n1.

Тогда для Q(X) справедливы утверждения

1. Если X=(1,2,…,m) иY=(1,2,…m) списки цепочек вU, то комбинаторная проблема Поста разрешима тогда и только тогда, когдаQ(X)Q(Y)=. Пусть существуетQ(X) иQ(Y). Тогда, а значит,

2. Для любого списка X=(1,2,…,m) цепочек вU,Q(X) – КС-язык вU. Соответствующая КС-грамматика G=<VT,VN,S,R> для языкаQ(X) -G=<U1,{I} ,I,R>;R: {IbiIi,Ibii}. Грамматика является однозначной.

Из введенных утверждений следует теорема:

Теорема. Не существует алгоритма, который по двум КС-грамматикамG1иG2определял бы,L(G1)L(G2)=?

Доказательство: Если бы такой алгоритм существовал, то проблема Поста была бы разрешима.

Теорема. Не существует алгоритма, который по любой КС- грамматике позволял бы определить, является ли эта грамматика однозначной.

Доказательство:

Рассмотрим множества Q(X) дляX=(1,2,…,m) иQ(Y) дляY=(1,2,…m). Правила грамматики для порожденияQ(X):RX={AbiAi,Abii} правила грамматики для построения множестваQ(Y):RY={BbiBi,Bbii}.

Грамматика для порождения Q(X)Q(Y)G=<U, {A,B},I,R>, гдеR=RXRY{IAB}. Эта грамматика однозначна, еслиQ(X)Q(Y)=, а это свойство неразрешимо.

Другие неразрешимые проблемы для КС-языков:

1. Является ли КС-языком пересечение КС-языков?

2. Является ли КС-языком дополнение КС-языков?

  1. Проблема тривиальности КС-языка L=V*(= проблеме пустоты дополнения)?

  2. Проблема эквивалентности КС-грамматик.