Автоматы с магазинной памятью — различия между версиями
KK (обсуждение | вклад) м (→Недетерминированный автомат с магазинной памятью) |
KK (обсуждение | вклад) м (→Недетерминированный автомат с магазинной памятью) |
||
Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
|definition= '''Автомат с магазинной памятью''' (автомат со стеком, англ. ''pushdown automaton'') {{---}} это набор <tex>A=\langle\Sigma,\Gamma,Q,s\in Q, T \subset Q, z_0 \in \Gamma, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma \rightarrow 2^Q \times \Gamma^*\rangle</tex>, где | |definition= '''Автомат с магазинной памятью''' (автомат со стеком, англ. ''pushdown automaton'') {{---}} это набор <tex>A=\langle\Sigma,\Gamma,Q,s\in Q, T \subset Q, z_0 \in \Gamma, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma \rightarrow 2^Q \times \Gamma^*\rangle</tex>, где | ||
− | *<tex>\Sigma</tex> {{---}} входной алфавит на ленте | + | *<tex>\Sigma</tex> {{---}} входной алфавит на ленте, |
− | *<tex>\Gamma</tex> {{---}} стековый алфавит | + | *<tex>\Gamma</tex> {{---}} стековый алфавит, |
− | *<tex>Q</tex> {{---}} множество состояний автомата | + | *<tex>Q</tex> {{---}} множество состояний автомата, |
− | *<tex>s</tex> {{---}} стартовое состояние автомата | + | *<tex>s</tex> {{---}} стартовое состояние автомата, |
− | *<tex>T</tex> {{---}} множество допускающих состояний автомата | + | *<tex>T</tex> {{---}} множество допускающих состояний автомата, |
− | *<tex>z_0</tex> {{---}} маркер дна стека | + | *<tex>z_0</tex> {{---}} маркер дна стека, |
*<tex>\delta</tex> {{---}} функция переходов. | *<tex>\delta</tex> {{---}} функция переходов. | ||
}} | }} | ||
− | [[Изображение:PDA.png|thumb|left|Рис. 1. Автомат с магазинной памятью]] | + | [[Изображение:PDA.png|250px|thumb|left|Рис. 1. Автомат с магазинной памятью]] |
На рис. 1 изображен автомат с магазинной памятью. С ленты последовательно считываются символы входного алфавита (<tex>c_i</tex> {{---}} текущий считываемый символ). Символ <tex>x</tex> снимается с вершины стека. Вместо него помещается строка <tex>\alpha</tex> таким образом, чтобы первый символ строки находился на вершине стека. | На рис. 1 изображен автомат с магазинной памятью. С ленты последовательно считываются символы входного алфавита (<tex>c_i</tex> {{---}} текущий считываемый символ). Символ <tex>x</tex> снимается с вершины стека. Вместо него помещается строка <tex>\alpha</tex> таким образом, чтобы первый символ строки находился на вершине стека. | ||
Версия 06:30, 17 января 2016
Содержание
Недетерминированный автомат с магазинной памятью
Определение: |
Автомат с магазинной памятью (автомат со стеком, англ. pushdown automaton) — это набор
| , где
На рис. 1 изображен автомат с магазинной памятью. С ленты последовательно считываются символы входного алфавита (
— текущий считываемый символ). Символ снимается с вершины стека. Вместо него помещается строка таким образом, чтобы первый символ строки находился на вершине стека.Обычно под автоматом со стеком подразумевается недетерминированный автомат. Заметим, что недетерминированные автоматы со стеком эквивалентны по выразительной мощности контекстно свободным грамматикам. Если речь пойдет о детерминированном автомате, это будет указано отдельно. Заметим также, что детерминированные и недетерминированные автоматы со стеком неэквивалентны.
Диаграммы переходов
По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является автоматом с допуском по пустому стеку). То есть, для , где .
Основные определения
Определение: |
Мгновенное описание — это набор | , где — текущее состояние, — остаток строки, — содержимое стека.
Определение: |
Переход за один шаг обозначается как | , где (возможно, ), , .
Определение: |
Язык автомата с магазинной памятью | .
Пример недетерминированного МП-автомата
На рис. 5 приведен пример недетерминированного автомата с магазинной памятью для языка
.Источники информации
- Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд.. : Пер. с англ. — М. : Издательский дом "Вильямс", 2002.