Существенно неоднозначные языки — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 16: Строка 16:
 
Докажем, что <tex>\forall \Gamma  \exists k: 0^k 1^k 2^k</tex> имеет хотя бы 2 дерева разбора.
 
Докажем, что <tex>\forall \Gamma  \exists k: 0^k 1^k 2^k</tex> имеет хотя бы 2 дерева разбора.
  
{{Лемма
 
|statement=
 
<tex>\forall \Gamma : \exists k \ge 1: z \in L(\Gamma), |z| \ge k</tex> и в z выбраны хотябы k позиций, то z представимо в виде <tex>z = uvwxy</tex>, где <tex>uvw</tex> или <tex>wxy</tex> содержат хотя бы по одной выбранной позиции и <tex>vwx</tex> содержит не более k выбраных позиций и <tex>\exists A</tex> - нетерминал, такой, что <tex>\forall i: S \Rightarrow^* uAy \Rightarrow^* uvAxy \Rightarrow^* uv^i Ax^i y \Rightarrow^* uv^i wx^i y</tex>.
 
 
|proof=
 
 
Пусть в грамматике m нетерминалов, длина всех правых частей не превосходит l, значит высота дерева разбора хотя бы 2m+1.
 
 
Выбираем <tex>k=l^{2m+3}</tex>
 
 
Вершина ветвится, если хотя бы 2 ребенка.
 
 
Если есть сын с помечеными детьми в поддереве - идем в него, ветвится - идем где больше.
 
 
Вершина ветвится влево, если слева от него есть помеченные листья. Так же определяеся ветвление вправо.
 
 
Одного из этих типов хотя бы m+2.
 
 
Пусть m+2 ветвится влево. Рассмотрим нижние m+1 - среди них встретится повторяющийся нетерминал A. Для него уже выполнено условие леммы. В частности uvw - помечены. Из всех прочих выбираем один, в средней части не более k помеченных.
 
 
Лемма доказана.
 
}}
 
Неоднозначность:
 
  
 
Возьмем k, слово <tex>0^k 1^k 2^{k+k!}</tex>, пометим первые k нулей.
 
Возьмем k, слово <tex>0^k 1^k 2^{k+k!}</tex>, пометим первые k нулей.
  
По лемме можно разбить на 5 частей.
+
По [[Лемма Огдена|лемме Огдена]] можно разбить на 5 частей.
  
 
[[Файл:uvwxy.png]]
 
[[Файл:uvwxy.png]]
Строка 48: Строка 25:
 
По лемме можно породить слово <tex>0^{k+k!} 1^{k+k!} 2^{k+k!}</tex>.
 
По лемме можно породить слово <tex>0^{k+k!} 1^{k+k!} 2^{k+k!}</tex>.
  
[[Файл:tree.png]] <tex>i = \frac{n!}{t} + 1</tex>
+
[[Файл:tree2.png]] <tex>i = \frac{n!}{t} + 1</tex>
  
 
Аналогичные рассуждения справедливы для слова <tex>0^{k+k!} 1^k 2^k</tex>, в котором отмечены все двойки. Пусть в нем повторяющийся нетерминал B. Очевидно, что А и В - разные деревья и одно не является потомком другого.
 
Аналогичные рассуждения справедливы для слова <tex>0^{k+k!} 1^k 2^k</tex>, в котором отмечены все двойки. Пусть в нем повторяющийся нетерминал B. Очевидно, что А и В - разные деревья и одно не является потомком другого.

Версия 23:10, 22 января 2011

Неоднозначные грамматики

Неоднозначной грамматикой называется грамматика, по которой для одной цепочки существует более одного дерева разбора.

Пример:

Рассмотрим грамматику [math]E \rightarrow E + E | E * E[/math] и выводимую цепочку[math]E + E * E[/math]. Ее можно вывести двумя способами:

[math]E \Rightarrow E + E \Rightarrow E + E * E[/math]

[math]E \Rightarrow E * E \Rightarrow E + E * E[/math]

Эта граматика неоднозначна.

Существенно неоднозначные языки

Язык называется существенно неоднозначным, если любая его грамматика неоднозначна. Пример такого языка: [math]0^a 1^b 2^c[/math], где [math]a=b \vee b=c[/math] Докажем, что [math]\forall \Gamma \exists k: 0^k 1^k 2^k[/math] имеет хотя бы 2 дерева разбора.


Возьмем k, слово [math]0^k 1^k 2^{k+k!}[/math], пометим первые k нулей.

По лемме Огдена можно разбить на 5 частей.

Uvwxy.png

По лемме можно породить слово [math]0^{k+k!} 1^{k+k!} 2^{k+k!}[/math].

Tree2.png [math]i = \frac{n!}{t} + 1[/math]

Аналогичные рассуждения справедливы для слова [math]0^{k+k!} 1^k 2^k[/math], в котором отмечены все двойки. Пусть в нем повторяющийся нетерминал B. Очевидно, что А и В - разные деревья и одно не является потомком другого. Тогда если дерево разбора в обоих случаях одиниково, то оно порождает слово вида [math]0^{k+k!+t} 1^{k+k!+t+r} 2^{k+k!+r}[/math], что не так.

В результате мы имеем 2 дерева разбора для одного слова. Значит язык существенно не однозначен.

Теорема:
Для языка принимаемого ДМП-автоматом существует однозначная КС-грамматика