Автоматы с магазинной памятью — различия между версиями
Zernov (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
==Недетерминированный автомат с магазинной памятью== | ==Недетерминированный автомат с магазинной памятью== | ||
{{Определение | {{Определение | ||
− | |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> {{---}} стековый алфавит, | ||
Строка 22: | Строка 22: | ||
<div class="tleft" style="clear:none">[[Файл:Transition3.png|400px|thumb|Рис. 4. Переход по любому стековому символу, в стек кладется пустая строка.]]</div> | <div class="tleft" style="clear:none">[[Файл:Transition3.png|400px|thumb|Рис. 4. Переход по любому стековому символу, в стек кладется пустая строка.]]</div> | ||
<br style="clear:both" /> | <br style="clear:both" /> | ||
− | По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является [[МП-автоматы, допуск по пустому стеку и по допускающему состоянию, эквивалентность|автоматом с допуском по пустому стеку]]). То есть, для <tex>\ | + | По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является [[МП-автоматы, допуск по пустому стеку и по допускающему состоянию, эквивалентность|автоматом с допуском по пустому стеку]]). То есть, для <tex>\forall q \in Q,\forall c \in \Sigma \cup \{\varepsilon\} \Rightarrow \delta(q, c, z_0) \ni \langle p, \alpha \rangle </tex>, где <tex>p \in Q, \alpha \in \Gamma^*, \alpha = \alpha_1z_0</tex>. |
==Основные определения== | ==Основные определения== | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | '''Мгновенное описание''' {{---}} это набор <tex>\langle q, \alpha, \gamma \rangle</tex>, где <tex>q</tex> {{---}} текущее состояние, <tex>\alpha</tex> {{---}} остаток строки, <tex>\gamma</tex> {{---}} содержимое стека. | + | '''Мгновенное описание''' (англ. ''instantaneous descriptions'') {{---}} это набор <tex>\langle q, \alpha, \gamma \rangle</tex>, где <tex>q</tex> {{---}} текущее состояние, <tex>\alpha</tex> {{---}} остаток строки, <tex>\gamma</tex> {{---}} содержимое стека. |
}} | }} | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | '''Переход за один шаг''' обозначается как <tex>\langle q, \alpha, \gamma \rangle \vdash \langle r, \beta, \xi \rangle</tex>, где <tex>\alpha = c\beta</tex> (возможно, <tex>c=\varepsilon</tex>), <tex>\gamma = \chi\gamma', \xi = \eta\gamma'</tex>, <tex>\langle r, \eta \rangle \in \delta(q, c, \chi)</tex>. | + | '''Переход за один шаг''' (англ. ''the "goes-to" relation'') обозначается как <tex>\langle q, \alpha, \gamma \rangle \vdash \langle r, \beta, \xi \rangle</tex>, где <tex>\alpha = c\beta</tex> (возможно, <tex>c=\varepsilon</tex>), <tex>\gamma = \chi\gamma', \xi = \eta\gamma'</tex>, <tex>\langle r, \eta \rangle \in \delta(q, c, \chi)</tex>. |
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition= '''Язык автомата с магазинной памятью''' <tex>L(A)=\{\alpha \mid \langle s, \alpha, z_0\rangle \vdash^* \langle t, \varepsilon, \gamma \rangle, t \in T\}</tex>. | + | |definition= '''Язык автомата с магазинной памятью''' (англ. ''language of a pushdown automaton'') <tex>L(A)=\{\alpha \mid \langle s, \alpha, z_0\rangle \vdash^* \langle t, \varepsilon, \gamma \rangle, t \in T\}</tex>. |
}} | }} | ||
Текущая версия на 19:28, 4 сентября 2022
Содержание
Недетерминированный автомат с магазинной памятью
Определение: |
Автомат с магазинной памятью (автомат со стеком, англ. pushdown automaton) — это набор
| , где
С ленты последовательно считываются символы входного алфавита (
— текущий считываемый символ). Символ снимается с вершины стека. Вместо него помещается строка таким образом, чтобы первый символ строки находился на вершине стека.Обычно под автоматом со стеком подразумевается недетерминированный автомат. Заметим, что недетерминированные автоматы со стеком эквивалентны по выразительной мощности контекстно свободным грамматикам. Если речь пойдет о детерминированном автомате, это будет указано отдельно. Заметим также, что детерминированные и недетерминированные автоматы со стеком неэквивалентны.
Диаграммы переходов
По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является автоматом с допуском по пустому стеку). То есть, для , где .
Основные определения
Определение: |
Мгновенное описание (англ. instantaneous descriptions) — это набор | , где — текущее состояние, — остаток строки, — содержимое стека.
Определение: |
Переход за один шаг (англ. the "goes-to" relation) обозначается как | , где (возможно, ), , .
Определение: |
Язык автомата с магазинной памятью (англ. language of a pushdown automaton) | .
Пример недетерминированного МП-автомата
См. также
- Детерминированные автоматы с магазинной памятью, допуск по пустому стеку
- ДМП-автоматы и неоднозначность
Источники информации
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2008. — 528 с. : ISBN 978-5-8459-1347-0 (рус.)