Нормальная форма ДМП-автомата — различия между версиями
Eadm (обсуждение | вклад) м |
Eadm (обсуждение | вклад) м |
||
Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
|definition=ДМП в '''нормальной форме''' (англ. ''Normal Form'') называется такой [[Детерминированные автоматы с магазинной памятью, допуск по пустому стеку|детерминированный автомат с магазинной памятью]] <tex>M</tex>, представленный конечным набором состояний <tex>Q</tex>, входным алфавитом на ленте <tex>\Sigma</tex>, стековым алфавитом <tex>\Gamma</tex> и множеством переходов <tex>\Delta</tex>, который удовлетворяет следующим условиям: | |definition=ДМП в '''нормальной форме''' (англ. ''Normal Form'') называется такой [[Детерминированные автоматы с магазинной памятью, допуск по пустому стеку|детерминированный автомат с магазинной памятью]] <tex>M</tex>, представленный конечным набором состояний <tex>Q</tex>, входным алфавитом на ленте <tex>\Sigma</tex>, стековым алфавитом <tex>\Gamma</tex> и множеством переходов <tex>\Delta</tex>, который удовлетворяет следующим условиям: | ||
− | # | + | # Если <tex>(p, a, S) \rightarrow (q, \alpha) \in \Delta</tex>, то <tex>|\alpha| \leqslant 2</tex>, где <tex>\alpha \in \Gamma^*</tex> {{---}} последовательность стековых символов, <tex>S \in \Gamma</tex>. |
− | # | + | # Если <tex>(p, \varepsilon, S) \rightarrow (q, \alpha) \in \Delta</tex>, то <tex>\alpha = \varepsilon</tex>. |
# <tex>\Delta</tex> не содержит бесполезных переходов (переход <tex>(p, a, S) \rightarrow (q, \alpha)</tex> считается бесполезным, если <tex>L(q, \alpha) = \emptyset</tex>, то есть из конфигурации <tex>(q, \alpha)</tex> нельзя ничего вывести). | # <tex>\Delta</tex> не содержит бесполезных переходов (переход <tex>(p, a, S) \rightarrow (q, \alpha)</tex> считается бесполезным, если <tex>L(q, \alpha) = \emptyset</tex>, то есть из конфигурации <tex>(q, \alpha)</tex> нельзя ничего вывести). | ||
}} | }} | ||
Строка 92: | Строка 92: | ||
<tex>\alpha \equiv \beta</tex> если: | <tex>\alpha \equiv \beta</tex> если: | ||
− | + | : либо <tex>\alpha = \beta</tex>, | |
− | + | : либо <tex>\alpha = \delta X \alpha'</tex>, <tex>\beta = \delta Y \beta'</tex>, <tex>X \equiv Y</tex> и <tex>X \neq Y</tex>. | |
'''Свойства''' <tex>\equiv</tex>: | '''Свойства''' <tex>\equiv</tex>: | ||
− | # <tex>\alpha\beta \equiv \alpha \Leftrightarrow \beta = \varepsilon</tex> | + | # <tex>\alpha\beta \equiv \alpha \Leftrightarrow \beta = \varepsilon</tex>. |
− | # <tex>\alpha \equiv \beta \Leftrightarrow \delta\alpha \equiv \delta\beta</tex> | + | # <tex>\alpha \equiv \beta \Leftrightarrow \delta\alpha \equiv \delta\beta</tex>. |
− | # | + | # Если <tex>\alpha \equiv \beta</tex> и <tex>\gamma \equiv \delta</tex>, тогда <tex>\alpha\gamma \equiv \beta\delta</tex>. |
− | # | + | # Если <tex>\alpha \equiv \beta</tex> и <tex>\alpha \neq \beta</tex>, тогда <tex>\alpha\gamma \equiv \beta\delta</tex>. |
− | # | + | # Если <tex>\alpha\gamma \equiv \beta\delta</tex> и <tex>|\alpha| = |\beta|</tex>, тогда <tex>\alpha \equiv \beta</tex>. |
{{Определение | {{Определение | ||
|definition=Отношение <tex>\equiv</tex> на множестве <tex>\Gamma</tex> является '''строгим''' (англ. ''strict''), если выполняются следующие условия: | |definition=Отношение <tex>\equiv</tex> на множестве <tex>\Gamma</tex> является '''строгим''' (англ. ''strict''), если выполняются следующие условия: | ||
− | # | + | # Если <tex>X \equiv Y</tex>, <tex>(X, a) \rightarrow \alpha</tex> и <tex>(Y, a) \rightarrow \beta</tex>, тогда <tex>\alpha \equiv \beta</tex>. |
− | # | + | # Если <tex>X \equiv Y</tex>, <tex>(X, a) \rightarrow \alpha</tex> и <tex>(Y, a) \rightarrow \alpha</tex>, тогда <tex>X = Y</tex>. |
}} | }} | ||
Строка 136: | Строка 136: | ||
|proof= | |proof= | ||
Пусть задан ДМП автомат в нормальной форме в виде четырех множеств <tex>Q, \Sigma, \Gamma, \Delta</tex>. | Пусть задан ДМП автомат в нормальной форме в виде четырех множеств <tex>Q, \Sigma, \Gamma, \Delta</tex>. | ||
− | # Для двух состояний <tex>p, q \in Q</tex> и <tex>X \in \Gamma</tex> заведём новый символ стека <tex>[pXq]</tex> | + | # Для двух состояний <tex>p, q \in Q</tex> и <tex>X \in \Gamma</tex> заведём новый символ стека <tex>[pXq]</tex>. |
− | # Для переходов | + | # Для переходов для данного <tex>a \in \Sigma</tex>: |
− | + | #* если <tex>(p, a, X) \rightarrow (q, \varepsilon) \in \Delta</tex>, тогда <tex>([pXq], a) \rightarrow \varepsilon</tex>; | |
− | + | #* если <tex>(p, a, X) \rightarrow (q, Y) \in \Delta</tex>, тогда <tex>([pXr], a) \rightarrow [qYr]</tex> для всех <tex>r \in Q</tex>; | |
− | + | #* если <tex>(p, a, X) \rightarrow (q, YZ) \in \Delta</tex>, тогда <tex>([pXr], a) \rightarrow [qYp'][p'Zr]</tex> для всех <tex>r,p' \in Q</tex>. | |
# [pSq] считается <tex>\varepsilon</tex>-символом, если <tex>(p, \varepsilon, X) \rightarrow (q, \varepsilon) \in \Delta</tex>. Все <tex>\varepsilon</tex>-символы удаляются из правой части переходов, полученных в предыдущем пункте. | # [pSq] считается <tex>\varepsilon</tex>-символом, если <tex>(p, \varepsilon, X) \rightarrow (q, \varepsilon) \in \Delta</tex>. Все <tex>\varepsilon</tex>-символы удаляются из правой части переходов, полученных в предыдущем пункте. | ||
Полученный автомат с единственным состоянием также находится в нормальной форме. Детерминируем новый автомат, чтобы сохранить детерминированность. | Полученный автомат с единственным состоянием также находится в нормальной форме. Детерминируем новый автомат, чтобы сохранить детерминированность. |
Версия 03:55, 9 января 2017
Содержание
Определение
Определение: |
ДМП в нормальной форме (англ. Normal Form) называется такой детерминированный автомат с магазинной памятью , представленный конечным набором состояний , входным алфавитом на ленте , стековым алфавитом и множеством переходов , который удовлетворяет следующим условиям:
|
Определение: |
Множество слов выводимых из конфигурации | .
Замечание: здесь и далее речь идёт о ДМП с допуском по пустому стеку.
Пример
Пусть
- — стартовая конфигурация
и переходы имеют следующий вид:
Данный автомат будет являться ДМП автоматом с допуском по пустому стеку в нормальной форме.
Автомат с единственным состоянием
Определение: |
Автомат с единственным состоянием (англ. Single State Push Down Automata, SDA) называется такой автомат Переходы в таком автомате имеют вид:
| , представленный тройкой: входной алфавит на ленте , стековым алфавит и множеством переходов .
Определение: |
Множество слов выводимых из конфигурации | .
Определение: |
Автомат с единственным состоянием находится в нормальной форме, если все его переходы удовлетворяют условию:
|
Автомат с единственным состоянием можно сделать детерминированным, наложив следующее требование на переходы:
- если и , тогда .
Детерминированный автомат с единственным состоянием соответствует по мощности "простым грамматикам".
Определение: |
Простая грамматика (англ. Simple Grammar) — такая грамматика, где все продукции имеют вид:
|
Однако, множество языков допускаемых детерминированным автоматом с единственным состоянием является строгим подмножеством языков ДМП автоматов, поэтому больший интерес представляют строгие автоматы с единственным состоянием.
Для этого вводится отношение эквивалентности
на множестве , заданное разбиением на непересекающиеся подмножества.Пример 1
- — стартовые конфигурации
Переходы:
Разбиение
имеет вид . Такой автомат будет детерминированным.Пример 2
- — стартовые конфигурации
Переходы:
Разбиение
имеет вид , что означает, что .Отношение
можно расширить на последовательность стековых символов:если:
- либо ,
- либо , , и .
Свойства
:- .
- .
- Если и , тогда .
- Если и , тогда .
- Если и , тогда .
Определение: |
Отношение
| на множестве является строгим (англ. strict), если выполняются следующие условия:
Определение: |
Автомат с единственным состоянием с заданным разбиением | является строгим (англ. strict), если отношение строгое на множестве .
Определение конфигураций автомата с единственным состоянием расширяется на наборы из последовательностей символов стека
, которые записываются в виде суммы .Две суммы конфигураций считаются эквивалентными (записывается через
), если они представляют собой один и тот же набор.Язык суммы конфигураций определяется —
Определение: |
Сумма конфигураций | называется допустимой (англ. admissible), если для всех элементов суммы, и при .
Таким образом
— тоже допустимо. Некоторые суммы из второго примера: , , , и — все эти суммы допустимые, в то время как будет недопустима, так как .Строгий автомат с единственным состоянием можно сделать детерминированным, заменив множество переходов
на : для каждого символа и переходы вида из заменяются на один переход . Таким образом для каждого и будет уникальный переход из .Связь ДМП автомата в нормальной форме и автомата с единственным состоянием
Утверждение: |
Допустимые конфигурации строгого автомата с единственным состоянием генерируют те же языки, что и конфигурации ДМП с допуском по пустому стеку. |
Пусть задан ДМП автомат в нормальной форме в виде четырех множеств .
Полученный автомат с единственным состоянием также находится в нормальной форме. Детерминируем новый автомат, чтобы сохранить детерминированность. Таким образом каждая конфигурация вида из исходного автомата была трансформирована в и . |
Применим алгоритм к самому первому примеру и получим следующее:
- , где
Применение
Существует задача об определении эквивалентности двух ДМП автоматов (два ДМП автомата и эквивалентны, если ). Для этого автоматы переводятся в нормальную форму, а затем в автоматы с единственным состоянием, для которых эта задача разрешима, следовательно разрешима и изначальная задача.
См. также
- Детерминированные автоматы с магазинной памятью, допуск по пустому стеку
- Детерминированные автоматы с магазинной памятью
- ДМП-автоматы и неоднозначность