Лемма Огдена — различия между версиями
Zernov (обсуждение | вклад) |
Zernov (обсуждение | вклад) |
||
Строка 32: | Строка 32: | ||
Очевидно, что <tex>B_{p}</tex> КС, если <tex>A_{p}</tex> контекстно-свободен. <tex>B_{p}</tex> является рекурсивно-перечислимым, если и <tex>A_{p}</tex> им является. | Очевидно, что <tex>B_{p}</tex> КС, если <tex>A_{p}</tex> контекстно-свободен. <tex>B_{p}</tex> является рекурсивно-перечислимым, если и <tex>A_{p}</tex> им является. | ||
− | Для <tex>B_{p}</tex> будет выполняться лемма Огдена для <tex>n = 4</tex>. Выбрав <tex>A_{p}</tex> таким образом, чтобы он был рекурсивно-перечислимым, мы создадим такой язык. (Такие языки существуют) | + | Для <tex>B_{p}</tex> будет выполняться лемма Огдена для <tex>n = 4</tex>. Выбрав <tex>A_{p}</tex> таким образом, чтобы он был рекурсивно-перечислимым, мы создадим такой язык. (Такие языки существуют)<ref><A.V. Aho & J.D. Ullman, The Theory of Parsing, Translation and Compilimg, Vol. I, 1972</ref> |
== См. также == | == См. также == | ||
[[Лемма_о_разрастании_для_КС-грамматик|Лемма о разрастании для КС-грамматик]] | [[Лемма_о_разрастании_для_КС-грамматик|Лемма о разрастании для КС-грамматик]] | ||
+ | |||
+ | ==Примечания== | ||
+ | |||
+ | <references /> | ||
== Источники == | == Источники == |
Версия 23:45, 3 января 2017
Лемма: |
Для каждой контекстно-свободной грамматики существует такое , что для любого слова длины не менее и для любых выделенных в не менее позиций, может быть представлено в виде , причем:
|
Доказательство: |
Введем следующие обозначения: и — длина самой длинной правой части правила из . Тогда в качестве возьмем . Рассмотрим дерево разбора для произвольного слова , у которого . В силу выбора в будет по крайне мере один путь от корня до листа длины не менее . Произвольным образом выделим в не менее позиций. Соответствующие этим позициям листья дерева будем называть выделенными.Пусть — корень , а — сын , который имеет среди своих потомков наибольшее число выделенных листьев (если таких несколько, то самый правый из них). Рассмотрим — путь от корня до листа.Будем называть ветвящейся ту вершину, у которой по крайне мере два сына имеют выделенных потомков. Докажем по индукции, что если среди Поскольку имеет хотя бы выделенных потомков, то содержит по крайне мере ветвящиеся вершин. Заметим, что — лист, поэтому . Будем называть левой ветвящейся вершиной, если ее сын, не принадлежащий пути , имеет выделенного потомка, лежащего слева от . В противном случае назовем правой ветвящейся вершиной. Рассмотрим последние вершины, принадлежащие пути . Предположим, что хотя бы вершины — левые ветвящиеся (случай, когда хотя бы вершины — правые ветвящиеся, разбирается аналогично). Пусть — последние левые ветвящиеся вершины. Поскольку , то среди них можно найти как минимум две вершины, соответствующие одному нетерминалу. Обозначим эти вершины и , причем — потомок . Тогда на рисунке показано, как представить в требуемом виде.
|
Содержание
Пример не КС-языка, для которого выполняется лемма
Докажем, что можно построить такой язык, для которого будет выполняться лемма Огдена, однако он не будет контекстно-свободным. Выберем
— подмножество и
Языки над
.Очевидно, что
КС, если контекстно-свободен. является рекурсивно-перечислимым, если и им является.Для [1]
будет выполняться лемма Огдена для . Выбрав таким образом, чтобы он был рекурсивно-перечислимым, мы создадим такой язык. (Такие языки существуют)См. также
Лемма о разрастании для КС-грамматик
Примечания
- ↑ <A.V. Aho & J.D. Ullman, The Theory of Parsing, Translation and Compilimg, Vol. I, 1972
Источники
- Hopcroft, Motwani and Ullman — Automata Theory, Languages, and Computation — Addison-Wesley, 1979. ISBN 81-7808-347-7.
- Ogden, W. (1968). "A helpful result for proving inherent ambiguity". Mathematical Systems Theory. 2 (3): 191–194.
- On languages satisfying Ogden's lemma