Автомат с магазинной памятью
В теории автоматов, автомат с магазинной памятью — это конечный автомат, который использует стек для хранения состояний.
Содержание |
[править] Формальное определение
В отличие от конечных автоматов, автомат с магазинной памятью является набором:
где
- K — конечное множество состояний автомата
— единственно допустимое начальное состояние автомата
— множество конечных состояний, причём допустимо F=Ø, и F=K- Σ — допустимый входной алфавит, из которого формируются строки, считываемые автоматом
- S — алфавит памяти (магазина)
— нулевой символ памяти.
Память работает как стек, то есть для чтения доступен последний записанный в неё элемент. Таким образом, функция перехода является отображением
. То есть, по комбинации текущего состояния, входного символа и символа на вершине магазина автомат выбирает следующее состояние и, возможно, символ для записи в магазин. В случае, когда в правой части автоматного правила присутствует
, в магазин ничего не добавляется, а элемент с вершины стирается. Если магазин пуст, то срабатывают правила с
в левой части.
Автомат с магазинной памятью может распознать любой контекстно-свободный язык.
В чистом виде автоматы с магазинной памятью используются крайне редко. Обычно это модель используется для наглядного представления отличия обычных конечных автоматов от синтаксических грамматик. Реализация автоматов с магазинной памятью отличается от конечных автоматов тем, что текущее состояние автомата сильно зависит от любого предыдущего.
[править] Пример с использованием автомата с магазинной памятью
repeat X:=верхний символ магазина;
if X - терминал или $
then if X=InSym
then удалить X из магазина;
InSym:=очередной символ;
else error()
end
else /* X = нетерминал */
if M[X,InSym]=X->Y1Y2...Yk
then удалить X из магазина;
поместить Yk,Yk-1,...Y1 в магазин
(Y1 на верхушку);
вывести правило X->Y1Y2...Yk
else error() /* вход таблицы M пуст */
end end
until X=$ /* магазин пуст */
[править] Виды автоматов с магазинной памятью
Существуют детерминированные и недетерминированные автоматы с магазинной памятью.
Для недетерминированных автоматов (в отличие от детерминированных) существует два эквивалентных критерия завершения работы:
- пустой магазин
- достижение конечного состояния
Детерминированный автомат завершает работу лишь тогда, когда достигает конечного состояния.
[править] Литература
- Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. — М.: «Вильямс», 2002. — С. 528. — ISBN 0-201-44124-1.
| Это заготовка статьи по математике. Вы можете помочь проекту, исправив и дополнив её. |


— единственно допустимое начальное состояние автомата
— множество конечных состояний, причём допустимо F=Ø, и F=K
— нулевой символ памяти.