Совпадение множества языков МП-автоматов и контекстно-свободных языков
Содержание
Построение МП-автомата по заданной КС-грамматике
| Теорема: | 
Класс  контекстно-свободных языков  является подмножеством класса языков, задаваемых  автоматами с магазинной памятью , то есть по любой КС-грамматике можно построить МП-автомат, задающий тот же язык, что и исходная грамматика.  | 
| Доказательство: | 
| 
 Пусть дана КС-грамматика . Поскольку классы языков, допускаемых МП-автоматами по допускающему состоянию и по пустому стеку, совпадают, достаточно построить автомат с допуском по пустому стеку. Построим автомат из одного состояния с входным алфавитом , стековым алфавитом , маркером дна и функцией перехода , определённой ниже. Формально , где задаётся следующим образом: 
 Покажем, что язык, допускаемый автоматом , совпадает с языком грамматики , то есть что : 
 
  | 
Пример
Поскольку доказательство теоремы конструктивно, то используя правила перехода, описанные в ней, можно преобразовать любую КС-грамматику в МП-автомат. Рассмотрим грамматику слов над алфавитом , в которых одинаковое количество нулей и единиц:
Множеством терминалов является , а нетерминалов — . Таким образом, стековый алфавит состоит из . Функция переходов определена следующим образом:
- (в соответствии с первым пунктом построения )
 
- ; (в соответствии со вторым пунктом построения )
 
Получившийся автомат:
Построение КС-грамматики по МП-автомату
| Теорема: | 
Класс языков, задаваемых автоматами с магазинной памятью , является подмножеством класса контекстно-свободных языков , то есть по любому МП-автомату можно построить КС-грамматику, задающую тот же язык, что и допускаемый автоматом.  | 
| Доказательство: | 
| 
 Пусть дан МП-автомат с допуском по пустому стеку . Как отмечалось ранее, предположение о допуске по пустому стеку не умаляет общности. Построим эквивалентную ему КС-грамматику . В качестве нетерминалов будем использовать конструкции вида (где , ), которая неформально означает, что в процессе изменения состояния автомата от до символ удаляется с вершины стека, не затрагивая то, что находится ниже. Также введём стартовый нетерминал . Таким образом, . Правила вывода построим следующим образом: 
 Нетерминал должен выводить только те строки , которые переводят автомат из состояния в . Формально это можно записать следующим образом: . Докажем это утверждение: 
 
  | 
Пример
Пусть у нас имеется МП-автомат , функция задана следующим образом:
Так как стековый алфавит содержит лишь один символ и одно состояние, то в построенной грамматике будет лишь 2 нетерминала:
- — стартовый нетерминал.
 
- — единственная тройка, которую можно собрать из состояний автомата и символов стекового алфавита.
 
Также грамматика имеет следующие правила вывода:
- Единственной продукцией для является . Но если бы у автомата было состояний, то тут бы имелось и продукций.
 - Из того факта, что содержит , получаем правило вывода . Если бы у автомата было состояний, то такой переход порождал бы продукций.
 - Из получаем правило вывода
 
Для удобства тройку можно заменить символом , в таком случае правила вывода в грамматике будут следующие:
Упростим грамматику, заменив на (очевидно, она не поменяется), и получим в результате
Эквивалентность языков МП-автоматов и КС-языков
| Теорема (об эквивалентности языков МП-автоматов и КС-языков): | 
Множество языков, допускаемых МП-автоматами, совпадает с множеством контекстно-свободных языков.  | 
| Доказательство: | 
| Первая теорема гласит, что , а вторая — что . Таким образом, . | 
Следствия
| Утверждение: | 
Для любого МП-автомата с допуском по пустому стеку существует эквивалентный МП-автомат с одним состоянием.  | 
| Построим КС-грамматику по данному автомату, затем по полученной грамматике построим МП-автомат, как указано выше. Заметим, что этот автомат будет иметь одно состояние, что и требовалось доказать. | 
| Утверждение: | 
Для любого МП-автомата с допуском по пустому стеку существует эквивалентный МП-автомат, в любом переходе которого на стек кладётся не больше двух символов.  | 
| Построим КС-грамматику по данному автомату и приведём её к нормальной форме Хомского. Затем по полученной грамматике построим МП-автомат, как указано выше. Заметим, что в нормальной форме Хомского правые части всех правил имеют длину не больше двух, поэтому в любом переходе в полученном автомате на стек кладётся не больше двух символов. | 
| Утверждение: | 
Для любого МП-автомата существует эквивалентный МП-автомат с допуском по пустому стеку без -переходов.  | 
| Построим КС-грамматику по данному автомату, затем по полученной грамматике построим МП-автомат, как указано выше. Заметим, что этот автомат не будет иметь -переходов, что и требовалось доказать. | 
См. также
Источники информации
- Wikipedia — PDA and context-free languages
 - Введение в теорию автоматов, языков и вычислений / Хопкрофт Д., Мотвани Р., Ульман Д. — М.:Издательский дом «Вильямс», 2002. с. 251. — ISBN 5-8459-0261-4
 


