Неукорачивающие и контекстно-зависимые грамматики, эквивалентность — различия между версиями
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Теорема | {{Теорема | ||
− | |statement=Для любой неукорачивающей грамматики <tex>\Gamma_1</tex> существует эквивалентная контекстно-зависимая грамматика <tex>\Gamma_2</tex>. | + | |statement=Для любой [[Иерархия Хомского формальных грамматик#Класс 1 | неукорачивающей]] грамматики <tex>\Gamma_1</tex> существует эквивалентная [[Иерархия Хомского формальных грамматик#Класс 1 |контекстно-зависимая]] грамматика <tex>\Gamma_2</tex>. |
|proof= | |proof= | ||
− | Рассмотрим правило из <tex>\Gamma_1</tex> | + | Рассмотрим правило из <tex>\Gamma_1 = \langle \Sigma, N_1, S \in N_1, P \in N_1^{*}\times (\Sigma\cup N_1)^{*}\rangle</tex>. Будем строить правила для грамматики <tex>\Gamma_2</tex>. Каждое правило <tex>X_1 X_2 \ldots X_n \to Y_1 Y_2 \ldots Y_m</tex>, где <tex>m \ge n</tex> из <tex> \Gamma_1</tex> заменим набором следующих правил. |
− | |||
<tex> | <tex> | ||
Строка 29: | Строка 20: | ||
</tex> | </tex> | ||
− | + | Причем нетерминалы <tex>Z_{*}</tex> свои для каждого правила из <tex>\Gamma_1</tex> и <tex>Z_{*} \notin N_1</tex>. | |
− | В словах языка задаваемого грамматикой не может быть нетерминалов, поэтому если в процессе вывода будет применено правило <tex>X_1 X_2 \ldots X_n \to Z_1 X_2 \ldots X_n</tex>, то | + | В словах языка задаваемого грамматикой не может быть нетерминалов, поэтому если в процессе вывода будет применено правило <tex>X_1 X_2 \ldots X_n \to Z_1 X_2 \ldots X_n</tex>, то впоследствии должны быть применены все остальные правила. В противном случае нетерминалы <tex>Z_1</tex> или <tex>Z_n</tex> будут присутствовать в выведенном слове. |
− | + | Правида вида <tex>$S$ \to \varepsilon</tex> оставляем без изменений. | |
− | Получившаяся грамматика <tex>\Gamma_2</tex> является контекстно-зависимой. | + | По [[Иерархия Хомского формальных грамматик#Класс 1|определению]] в <tex>\Gamma_1</tex> нет правил другого вида. Получившаяся грамматика <tex>\Gamma_2</tex> является эквивалентной грамматике <tex>\Gamma_1</tex>, так в результате применения набора правил строка <tex>X_1 X_2 \ldots X_n</tex> перейдёт в строку <tex>Y_1 Y_2 \ldots Y_m</tex>. Осталось заметить, что по [[Иерархия Хомского формальных грамматик#Класс 1|определению]] получившаяся грамматика <tex>\Gamma_2</tex> является контекстно-зависимой. |
}} | }} | ||
{{Утверждение | {{Утверждение | ||
|statement=Любая контекстно-зависимая грамматика является неукорачивающей. | |statement=Любая контекстно-зависимая грамматика является неукорачивающей. | ||
− | |proof= | + | |proof= Заметим, что в [[Иерархия Хомского формальных грамматик#Класс 1|определении контекстно-зависимой грамматики]] <tex>\gamma</tex> не пуста, поэтому <tex>|\alpha A \beta| \ge |\alpha \gamma \beta|</tex>. Следовательно такая грамматика является неукорачивающей по [[Иерархия Хомского формальных грамматик#Класс 1|определению]]. |
}} | }} | ||
− | + | Поскольку из любой неукорачивающей грамматике можно построить эквивалентную ей контекстно-зависимую, а также любая контекстно-зависимая грамматика является неукорачивающей, следует, что множества языков задаваемых этими видами грамматик совпадают. |
Версия 09:45, 3 ноября 2011
Теорема: |
Для любой неукорачивающей грамматики существует эквивалентная контекстно-зависимая грамматика . |
Доказательство: |
Рассмотрим правило из . Будем строить правила для грамматики . Каждое правило , где из заменим набором следующих правил.
Причем нетерминалы свои для каждого правила из и .В словах языка задаваемого грамматикой не может быть нетерминалов, поэтому если в процессе вывода будет применено правило , то впоследствии должны быть применены все остальные правила. В противном случае нетерминалы или будут присутствовать в выведенном слове.Правида вида По оставляем без изменений. определению в нет правил другого вида. Получившаяся грамматика является эквивалентной грамматике , так в результате применения набора правил строка перейдёт в строку . Осталось заметить, что по определению получившаяся грамматика является контекстно-зависимой. |
Утверждение: |
Любая контекстно-зависимая грамматика является неукорачивающей. |
Заметим, что в определении контекстно-зависимой грамматики не пуста, поэтому . Следовательно такая грамматика является неукорачивающей по определению. |
Поскольку из любой неукорачивающей грамматике можно построить эквивалентную ей контекстно-зависимую, а также любая контекстно-зависимая грамматика является неукорачивающей, следует, что множества языков задаваемых этими видами грамматик совпадают.