Автоматы с магазинной памятью — различия между версиями
Строка 13: | Строка 13: | ||
}} | }} | ||
==Диаграмма переходов== | ==Диаграмма переходов== | ||
− | По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является автоматом с допуском по пустому стеку). | + | По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является автоматом с допуском по пустому стеку). То есть, для <tex>\mathcal8 q \in Q,\mathcal8 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> |
==Основные определения== | ==Основные определения== | ||
*'''Мгновенное описание:''' <tex>\langle q, \alpha, \gamma \rangle</tex>, где <tex>q</tex> --- текущее состояние, <tex>\alpha</tex> --- остаток строки, <tex>\gamma</tex> --- содержимое стека. | *'''Мгновенное описание:''' <tex>\langle q, \alpha, \gamma \rangle</tex>, где <tex>q</tex> --- текущее состояние, <tex>\alpha</tex> --- остаток строки, <tex>\gamma</tex> --- содержимое стека. | ||
− | *'''Переход за один шаг''' обозначается как <tex>\langle q, \alpha, \gamma \rangle \vdash \langle r, \beta, \xi \rangle</tex> | + | *'''Переход за один шаг''' обозначается как <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= Язык автомата с магазинной памятью <tex>L(A)=\{\alpha \mid \langle s, \alpha, z_0\rangle \vdash^* \langle t, \varepsilon, \gamma \rangle, t \in T\}</tex> | ||
Строка 28: | Строка 27: | ||
|definition= | |definition= | ||
Если для автомата с магазинной памятью выполняются следующие условия: | Если для автомата с магазинной памятью выполняются следующие условия: | ||
− | #<tex>\mathcal8 q \in Q, \mathcal8 c \in \Sigma, \mathcal8 X \in \Gamma | + | #<tex>\mathcal8 q \in Q, \mathcal8 c \in \Sigma, \mathcal8 X \in \Gamma \Rightarrow \left | \delta(q, c, X)\right | \le 1</tex>; |
#<tex>\delta(q,\varepsilon,X) \ne 0 \Rightarrow \mathcal8 c \in \Sigma : \delta(q, c, X) = \varnothing</tex>, | #<tex>\delta(q,\varepsilon,X) \ne 0 \Rightarrow \mathcal8 c \in \Sigma : \delta(q, c, X) = \varnothing</tex>, | ||
то поведение автомата всегда определено однозначно и он называется детерминированным автоматом с магазинной памятью. | то поведение автомата всегда определено однозначно и он называется детерминированным автоматом с магазинной памятью. | ||
}} | }} |
Версия 06:38, 27 октября 2010
Эта статья находится в разработке!
Содержание
Недетерминированный автомат с магазинной памятью
По умолчанию будем считать автоматы с магазинной памятью недетерминированными. Если речь пойдет о детерминированном автомате, то это будет указано отдельно.
Определение: |
Автомат с магазинной памятью --- это набор A=
| , где
Диаграмма переходов
По соглашению маркер дна всегда находится на дне (за исключением случая, когда автомат является автоматом с допуском по пустому стеку). То есть, для
, гдеОсновные определения
- Мгновенное описание: , где --- текущее состояние, --- остаток строки, --- содержимое стека.
- Переход за один шаг обозначается как , где (возможно, ), ,
Определение: |
Язык автомата с магазинной памятью |
Пример
Рассмотрим автомат с магазинной памятью для языка
.Детерминированный автомат с магазинной памятью
Определение: |
Если для автомата с магазинной памятью выполняются следующие условия:
|