Автомат с магазинной памятью

Автомат с магазинной памятью

В теории автоматов, автомат с магазинной памятью — это конечный автомат, который использует стек для хранения состояний.

Содержание

Формальное определение

диаграмма автомата с магазинной памятью

В отличие от конечных автоматов, автомат с магазинной памятью является набором:

\boldsymbol{M = (K , \Sigma , \pi , s , F, S, m)} где

  • K — конечное множество состояний автомата
  •  s \in K — единственно допустимое начальное состояние автомата
  • F \subseteq K — множество конечных состояний, причём допустимо F=Ø, и F=K
  • Σ — допустимый входной алфавит, из которого формируются строки, считываемые автоматом
  • S — алфавит памяти (магазина)
  • m \in S — нулевой символ памяти.

Память работает как стек, то есть для чтения доступен последний записанный в неё элемент. Таким образом, функция перехода является отображением \pi : K \times \Sigma \times S \rightarrow K \times S. То есть, по комбинации текущего состояния, входного символа и символа на вершине магазина автомат выбирает следующее состояние и, возможно, символ для записи в магазин. В случае, когда в правой части автоматного правила присутствует e, в магазин ничего не добавляется, а элемент с вершины стирается. Если магазин пуст, то срабатывают правила с e в левой части.

Автомат с магазинной памятью может распознать любой контекстно-свободный язык.

В чистом виде автоматы с магазинной памятью используются крайне редко. Обычно это модель используется для наглядного представления отличия обычных конечных автоматов от синтаксических грамматик. Реализация автоматов с магазинной памятью отличается от конечных автоматов тем, что текущее состояние автомата сильно зависит от любого предыдущего.

Пример с использованием автомата с магазинной памятью

 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=$ /* магазин пуст */

Виды автоматов с магазинной памятью

Существуют детерминированные и недетерминированные автоматы с магазинной памятью.

Для недетерминированных автоматов (в отличие от детерминированных) существует два эквивалентных критерия завершения работы:

  1. пустой магазин
  2. достижение конечного состояния

Детерминированный автомат завершает работу лишь тогда, когда достигает конечного состояния.

Литература

  • Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. — М.: «Вильямс», 2002. — С. 528. — ISBN 0-201-44124-1



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Автомат с магазинной памятью" в других словарях:

  • автомат с магазинной памятью — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN pushdown automationPDA …   Справочник технического переводчика

  • автомат (устройство) с магазинной памятью — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN push down automation …   Справочник технического переводчика

  • Магазинный автомат — Автомат с магазинной памятью является расширением абстракции конечных автоматов. В отличие от конечных автоматов, автомат с магазинной памятью является набором: Где K конечное множество состояний автомата, единственно допустимое начальное… …   Википедия

  • Абстрактный автомат — (в теории алгоритмов) математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных. На вход этому устройству поступают символы одного… …   Википедия

  • Автоматное программирование — Автоматное программирование  это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого либо формального автомата. В зависимости от конкретной задачи в автоматном программировании… …   Википедия

  • Парадигма — (Paradigm) Определение парадигмы, история возникновения парадигмы Информация об определении парадигмы, история возникновения парадигмы Содержание Содержание История возникновения Частные случаи (лингвистика) Управленческая парадигма Парадигма… …   Энциклопедия инвестора


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»