Совпадение множества языков МП-автоматов и контекстно-свободных языков — различия между версиями
Bochkarev (обсуждение | вклад) (→Построение КС-грамматики по МП-автомату) |
Bochkarev (обсуждение | вклад) (→Пример) |
||
| Строка 44: | Строка 44: | ||
Так как <tex> P </tex> имеет один магазинный символ и одно состояние, то грамматика строится просто. У нас будет всего две переменные: | Так как <tex> P </tex> имеет один магазинный символ и одно состояние, то грамматика строится просто. У нас будет всего две переменные: | ||
*a) <tex> S </tex> — стартовый символ. | *a) <tex> S </tex> — стартовый символ. | ||
| − | *b) <tex> [qZq] </tex> — единственная тройка, которую можно собрать из наших состояний и | + | *b) <tex> [qZq] </tex> — единственная тройка, которую можно собрать из наших состояний и магазинных символов. |
Также грамматика имеет следующие продукции: | Также грамматика имеет следующие продукции: | ||
*1. Единственной продукцией для <tex> S </tex> является <tex> S \rightarrow [qZq] </tex>. Но если бы у автомата было <tex> n </tex> состояний, то тут бы имелось и <tex> n </tex> продукций. | *1. Единственной продукцией для <tex> S </tex> является <tex> S \rightarrow [qZq] </tex>. Но если бы у автомата было <tex> n </tex> состояний, то тут бы имелось и <tex> n </tex> продукций. | ||
Версия 18:52, 24 января 2011
Далее будут приведены конструкции для построения МП-автомата по заданной КС-грамматике, и наоборот. Также будет приведена теорема об эквивалентности языков.
Содержание
Построение МП-автомата по заданной КС-грамматике
Пусть — КС-грамматика. Построим МП-автомат , который допускает по пустому магазину. Функция переходов будет определена по следующим правилам:
- 1. — продукция — для каждой переменной .
- 2. для каждого терминала .
Пример
Преобразуем грамматику выражений в МП-автомат. Пусть дана грамматика:
Множеством входных символов является . Эти символы, вместе с переменными , образуют магазинный алфавит. Функция переходов определена следующим образом:
- a)
- b)
- c) ; ;...; если входной символ совпадает с вершиной стека, то вершина удаляется.
Пункты a,b образованы по первому правилу построения функции переходов, пункт c по второму правилу.
Корректность построения
Пусть , тогда имеет следующее левое порождение: . Покажем индукцией по , что :
- База. Очевидно, что
- Переход. Предположим, что . Заметим, что шаг порождения включает замену некоторой переменной ее продукцией . Правило 1 построения МП-автомата позволяет на заменить на вершине стека на цепочку , а правило 2 позволяет затем сравнить любые терминалы на вершине со входными символами. В результате достигается МО .
- Также заметим, что . Таким образом , т.е допускает по пустому стеку.
| Утверждение (1): |
Если МП-автомат построен по грамматике , с использованием указанной выше конструкции, то |
| Выше доказана корректность построения МП-автомата по любой КС-грамматике. Значит множество языков КС-грамматик является подмножеством языков, допускаемых МП-автоматами. |
Построение КС-грамматики по МП-автомату
Наша конструкция эквивалентной грамматики использует переменные вида: — которая означает, что в процессе изменения состояния автомата от до , удалилось из стека.
Следует отметить, что удаление может являться результатом множества переходов.
Пусть — МП-автомат. Построим , где состоит из:
- 1 Специальный стартовый символ
- 2 Все символы вида , где и — состояния из , а — магазинный символ из .
Грамматика имеет следующие продукции:
- a) продукции для всех , таким образом
- b) пусть содержит . Тогда для всех списков состояний в грамматике есть продукция .
Пример
Пусть у нас имеется , функция задана следующим образом:
Так как имеет один магазинный символ и одно состояние, то грамматика строится просто. У нас будет всего две переменные:
- a) — стартовый символ.
- b) — единственная тройка, которую можно собрать из наших состояний и магазинных символов.
Также грамматика имеет следующие продукции:
- 1. Единственной продукцией для является . Но если бы у автомата было состояний, то тут бы имелось и продукций.
- 2. Из того факта, что содержит , получаем продукцию . Если бы у автомата было n состояний, то такое правило порождало бы продукций.
- 3. Из получаем продукцию
Для удобства тройку можно заменить символом , в таком случае грамматика состоит из следующих продукций:
В действительности можно заметить, что и порождают одни и те же цепочки, поэтому их можно обозначить одинаково, итого:
Корректность построения
Докажем, что если , то .
- База. Пара должна быть в и есть одиночный символ, или . Из построения следует, что является продукцией, поэтому .
- Переход. Предположим, что последовательность состоит из переходов, и . Первый переход должен иметь вид:
, где для некоторого , которое является либо символом из , либо . По построению существует продукция , где — состояния из , и . Пусть , где — входная цепочка, которая прочитывается до удаления из стека, тогда . По скольку ни одна из этих последовательностей переходов не содержит более, чем переходов, к ним можно применить предположение индукции . Соберем эти порождения вместе:
.
| Утверждение (2): |
Если КС-грамматика построена по МП-автомату , с использованием указанной выше конструкции, то |
| Выше доказана корректность построения КС-грамматики по МП-автомату. Значит языки допускаемые МП-автоматами являются подмножеством языков, заданных КС-грамматикой. |
Эквивалентность языков МП-автоматов и КС-языков
| Теорема (Об эквивалентности языков МП-автоматов и КС-языков): |
Множество языков, допускаемых МП-автоматами совпадает с множеством языков, задаваемых с помощью контекстно-свободных грамматик. |
| Доказательство: |
| Из утверждения 1 следует, что , в свою очередь из утверждения 2 следует, что . Отсюда . |
Литература
- Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман. Введение в теорию автоматов, языков и вычислений.