Конспект лекций москва 2004 удк 519. 713(075)+519. 76(075) ббк 22. 18я7

Вид материалаКонспект

Содержание


10. Разрешимые и неразрешимые свойства КС-грамматик 10.1. Разрешимые свойства КС-грамматик
Подобный материал:
1   ...   10   11   12   13   14   15   16   17   ...   21

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

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


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

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

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

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

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

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

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

Теорема 15. Если 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 (), что требовалось доказать.

Теорема 16. Если G=< VN, VT,S, R> – КС-грамматика, то L(G) бесконечен  существует нетерминальный символ Ai такой, что S* x Ai y, Ai+ z Ai w, zw 1, и Ai+ v, где x, y, z, w,v VT*.

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

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

1.Доказательство бесконечности языка при условии S* x Ai y, Ai+ z Aiw, z w 1 и Ai+v очевидно, так как при данных условиях фрагмент вывода Ai+ z Aiw может быть включен в вывод произвольное число раз; следовательно, S+ x v y, и S+ x zj v wjy для всех j0,что и обеспечивает построение бесконечного множества цепочек заданного вида.

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

Если же язык бесконечен, то глубина деревьев не ограничена, значит, в каком-нибудь синтаксическом дереве Т существует нетерминал Ai, через который ветвь дерева проходит неоднократно, причем это дерево соответствует выводу терминальной цепочки. Поэтому

во-первых, существует путь из начальной вершины в данную вершину S*  Ai, *x, *y, где x, yVT*;

во-вторых, в силу выводимости из Ai терминальной цепочки, Ai+ v  vVT*;

в третьих, из-за повторения нетерминала Ai в ветви дерева Ai+Ai, *z, *w, где z, w  VT*, значит, Ai+ z Aiw , и вследствие отсутствия цепных правил,z w 1. Что и требовалось доказать.

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

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

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

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

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