35
правок
Изменения
Новая страница: «== Допустимость по заключительному состоянию == <font face="Times" size="3"> *'''Определение: '''Пусть <tex>\…»
== Допустимость по заключительному состоянию ==
<font face="Times" size="3">
*'''Определение: '''Пусть <tex>\mathcal{P}=(Q, \Sigma, \Gamma, \delta, s, Z_{0}, T)</tex> - МП-автомат. Тогда <tex>\mathcal {L(P)}</tex> языком, допускаемым автоматом <tex>\mathcal{P}</tex> по заключительному состоянию, является <tex>\mathcal {L(P)}=\{w\mid(s, w, Z_{0})\vdash^{*}(q, \varepsilon, \alpha)\} </tex> для некоторого состояния <tex>q\in T</tex> и произвольной магазинной цепочки <tex>\alpha</tex>. Начиная с стартовой вершины <tex>s</tex> и с <tex>w</tex> на входе, автомат <tex>\mathcal {P}</tex> прочитывает слово <tex>w</tex> и достигает допускающего состояния. Содержимое магазина в этот момент не имеет значения.
</font>
== Допустимость по пустому магазину ==
<font face="Times" size="3">
*'''Определение: '''Для МП-автомата <tex>\mathcal{P}=(Q, \Sigma, \Gamma, \delta, s, Z_{0})</tex> определим множество допускающих слов как <tex>\mathcal {N(P)}=\{w\mid(s, w, Z_{0})\vdash^{*}(q, \varepsilon, \varepsilon)\} </tex>, где <tex>q</tex> - произвольное состояние. Таким образом автомат <tex>\mathcal{P}</tex> прочитывает слово <tex>w</tex>, полностью опустошив свой магазин. Множество заключительных состояний <tex>T</tex> не имеет значение.
</font>
== Эквивалентность автоматов ==
<font face="Times" size="3">
*'''Теорема: '''Классы языков, допускаемых МП-автоматами по заключительному состоянию и по пустому магазину (стеку), совпадают.
*'''Доказательство:'''<tex>\Rightarrow</tex> Исходя из МП-автомата <tex>\mathcal{P}_{T}</tex>, допускающего язык <tex>L</tex> по заключительному состоянию, построим другой МП-автомат <tex>\mathcal{P_{N}}</tex>, который допускает язык <tex>L</tex> по пустому стеку.
[[Файл:EqualStackAutomata.png|left]]
'''1.''' Добавим переходы по <tex>\varepsilon</tex> из каждого допускающего состояния автомата <tex>\mathcal{P}_{T}</tex> в новое состояние <tex>p</tex>, которое отвечает за очистку стека. Находясь в состоянии <tex>p</tex>, автомат <tex>\mathcal{P_{N}}</tex> опустошает свой магазин и ничего не прочитывает на входе. Таким образом, как только исходный автомат <tex>\mathcal{P}_{T}</tex> приходит в допускающее состояние, прочитав слово <tex>w</tex>, <tex>\mathcal{P_{N}}</tex> опустошает свой магазин, также прочитав только <tex>w</tex>.
'''2.''' Во избежание случая, когда <tex>\mathcal{P}_{T}</tex> может опустошить свой магазин без допуска, <tex>\mathcal{P_{N}}</tex>
</font>
<font face="Times" size="3">
*'''Определение: '''Пусть <tex>\mathcal{P}=(Q, \Sigma, \Gamma, \delta, s, Z_{0}, T)</tex> - МП-автомат. Тогда <tex>\mathcal {L(P)}</tex> языком, допускаемым автоматом <tex>\mathcal{P}</tex> по заключительному состоянию, является <tex>\mathcal {L(P)}=\{w\mid(s, w, Z_{0})\vdash^{*}(q, \varepsilon, \alpha)\} </tex> для некоторого состояния <tex>q\in T</tex> и произвольной магазинной цепочки <tex>\alpha</tex>. Начиная с стартовой вершины <tex>s</tex> и с <tex>w</tex> на входе, автомат <tex>\mathcal {P}</tex> прочитывает слово <tex>w</tex> и достигает допускающего состояния. Содержимое магазина в этот момент не имеет значения.
</font>
== Допустимость по пустому магазину ==
<font face="Times" size="3">
*'''Определение: '''Для МП-автомата <tex>\mathcal{P}=(Q, \Sigma, \Gamma, \delta, s, Z_{0})</tex> определим множество допускающих слов как <tex>\mathcal {N(P)}=\{w\mid(s, w, Z_{0})\vdash^{*}(q, \varepsilon, \varepsilon)\} </tex>, где <tex>q</tex> - произвольное состояние. Таким образом автомат <tex>\mathcal{P}</tex> прочитывает слово <tex>w</tex>, полностью опустошив свой магазин. Множество заключительных состояний <tex>T</tex> не имеет значение.
</font>
== Эквивалентность автоматов ==
<font face="Times" size="3">
*'''Теорема: '''Классы языков, допускаемых МП-автоматами по заключительному состоянию и по пустому магазину (стеку), совпадают.
*'''Доказательство:'''<tex>\Rightarrow</tex> Исходя из МП-автомата <tex>\mathcal{P}_{T}</tex>, допускающего язык <tex>L</tex> по заключительному состоянию, построим другой МП-автомат <tex>\mathcal{P_{N}}</tex>, который допускает язык <tex>L</tex> по пустому стеку.
[[Файл:EqualStackAutomata.png|left]]
'''1.''' Добавим переходы по <tex>\varepsilon</tex> из каждого допускающего состояния автомата <tex>\mathcal{P}_{T}</tex> в новое состояние <tex>p</tex>, которое отвечает за очистку стека. Находясь в состоянии <tex>p</tex>, автомат <tex>\mathcal{P_{N}}</tex> опустошает свой магазин и ничего не прочитывает на входе. Таким образом, как только исходный автомат <tex>\mathcal{P}_{T}</tex> приходит в допускающее состояние, прочитав слово <tex>w</tex>, <tex>\mathcal{P_{N}}</tex> опустошает свой магазин, также прочитав только <tex>w</tex>.
'''2.''' Во избежание случая, когда <tex>\mathcal{P}_{T}</tex> может опустошить свой магазин без допуска, <tex>\mathcal{P_{N}}</tex>
</font>