1. Алфавит, слова, операции над словами
Вид материала | Документы |
Содержание10. Разрешимые и неразрешимые свойства КС-грамматик |
- Исполнительный кодекс Республики Молдова, 2184.07kb.
- Статьи 4 изложить в следующей редакции: "Статья Ответственность физических, юридических,, 41.3kb.
- Республика Молдова, 777.62kb.
- Федеральный закон, 404.04kb.
- Подготовка к операции по прорыву блокады проводилась в глубокой тайне, 18.04kb.
- Игра «Алфавит» Чтобы узнать тему нашего занятия вы должны расшифровать слова. (зашифрованные, 50.79kb.
- «День культуры и славянской письменности», 78.75kb.
- Выполнили: Фурманова Диана 3класс, 121.65kb.
- Работа со словами с непроверяемыми написаниями, 134.51kb.
- Календарно-тематический план учебная дисциплина: «Математика», 34.71kb.
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. Число таких цепочек ограничено числом
![](images/359976-nomer-m53d4ecad.gif)
![](images/359976-nomer-m286759e4.gif)
Перебираем все бесповторные последовательности цепочек длины 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 , >, значит, для вывода SK, , следовательно, ()K, с другой стороны, L (), поэтому, L (), что требовалось доказать.
Теорема.
Если G=< VT,VN, S, R> – КС-грамматика, то L(G) бесконечен существует нетерминальный символ Ai такой, что S+ X Ai Y, Ai+ Z AiW, ZW 1, и Ai+ V&(X,Y, Z, W,V VT*).
Доказательство:
Считаем, что рассматриваемая грамматика не содержит цепных правил.
1. Доказательство бесконечности языка при условии S+ X Ai Y, Ai+ Z AiW, ZW 1, и Ai+ V очевидно, т.к. при представленных условиях фрагмент вывода Ai+ Z AiW может быть включен в вывод произвольное число раз; следовательно, S+ X VY, и S+ X ZjVWjY для всех j0,что и обеспечивает построение бесконечного множества цепочек заданного вида.
2. Пусть язык, порождаемый грамматикой, является бесконечным, а условие теоремы не выполняется. Тогда максимальная глубина (длина ветви) синтаксического дерева для цепочки, порождаемой грамматикой, не превышает VN . Число таких деревьев конечно, значит, конечно число цепочек, порождаемых грамматикой.
Если же язык бесконечен, то глубина деревьев не ограничена, значит, в каком-нибудь синтаксическом дереве Т существует нетерминал Ai, через который ветвь дерева проходит неоднократно, причем это дерево соответствует выводу терминальной цепочки. Значит, во-первых, существует путь из начальной вешнины в данную вершину, и в силу отсутствия цепных правил, S* Ai, *X, *Y, X,YVT*, во-вторых, в силу выводимости из Ai терминальной цепочки, Ai VVT VT, в третьих, из-за повторения нетерминала Ai в ветви дерева Ai+Ai, *Z, *W, Z, W VT*, значит, Ai+ Z AiW, ZW 1. Что и требовалось доказать.
Из доказанной теоремы следует
Следствие 1. Для КС-грамматики G=< VT,VN, S, R> существуют числа p, q такие, что для любой цепочки L(G), если p, то она имеет вид =, где , q, и для любого n цепочка вида nn L(G), n0.
Следствие 2. Язык {an bn cn, n} не порождается КС-грамматикой.
Теорема. Свойство L(G)= разрешимо для КС-грамматик.
Разрешимость свойства следует из рассмотренных ранее алгоритмов: Язык L(G) не пуст тогда и только тогда, когда начальный символ грамматики является производящим.
10.2. Неразрешимые свойства КС-грамматик.
Поскольку класс множеств (слов), порождаемых грамматиками, совпадает с классом перечислимых множеств, то для языков класса «0» справедлив аналог теоремы Райса «никакое нетривиальное свойство языков класса 0 не является алгоритмически разрешимым» (Т.е. для нетривиального свойства не существует алгоритма, который по произвольной грамматике G выяснял, обладает ли данным свойством язык L(G)).
Для КЗ-грамматик проблема пустоты и бесконечности неразрешимы. Для КС-грамматик эти проблемы разрешимы.
Неразрешимые проблемы для КС-грамматик следуют из неразрешимости проблемы Поста.
Формулировка этой проблемы в виде, удобном для наших целей, следующая: для двух списков цепочек X=(1,2,…,m) и Y=(1,2,…m) в алфавите U определить, существует ли последовательность индексов i1,i2,…in, такая, что
![](images/359976-nomer-m501048c.gif)
Пусть U и m фиксированы. Введём алфавит дополнительных символов U0={b1,b2,…bm}, U0 U=/
U1= U0 U. Пусть X=(1,2,…,m) –цепочки в U. Тогда Q(X) – множество цепочек вида
![](images/359976-nomer-m3af79931.gif)
Тогда для Q(X) справедливы утверждения
1. Если X=(1,2,…,m) и Y=(1,2,…m) списки цепочек в U, то комбинаторная проблема Поста разрешима тогда и только тогда, когда Q(X) Q(Y)=. Пусть существует Q(X) и Q(Y). Тогда
![](images/359976-nomer-2c8ae6.gif)
![](images/359976-nomer-m7d60e980.gif)
2. Для любого списка X=(1,2,…,m) цепочек в U, Q(X) – КС-язык в U. Соответствующая КС-грамматика G=< VT,VN, S, R> для языка Q(X) - G=< U1,{I} , I, R>; R: { Ibi I i, Ibi i }. Грамматика является однозначной.
Из введенных утверждений следует теорема:
Теорема. Не существует алгоритма, который по двум КС-грамматикам G1 и G2 определял бы, L(G1) L(G2)=?
Доказательство: Если бы такой алгоритм существовал, то проблема Поста была бы разрешима.
Теорема. Не существует алгоритма, который по любой КС- грамматике позволял бы определить, является ли эта грамматика однозначной.
Доказательство:
Рассмотрим множества Q(X) для X=(1,2,…,m) и Q(Y) для Y=(1,2,…m). Правила грамматики для порождения Q(X): RX={ Abi A i, Abi i } правила грамматики для построения множества Q(Y): RY={ Bbi B i, Bbi i }.
Грамматика для порождения Q(X)Q(Y) G=, где R=RXRY {IAB}. Эта грамматика однозначна, если Q(X)Q(Y)=, а это свойство неразрешимо.
Другие неразрешимые проблемы для КС-языков:
1. Является ли КС-языком пересечение КС-языков?
2. Является ли КС-языком дополнение КС-языков?
- Проблема тривиальности КС-языка L=V*(= проблеме пустоты дополнения)?
- Проблема эквивалентности КС-грамматик.