Изменения

Перейти к: навигация, поиск
м
rollbackEdits.php mass rollback
== Допуск по заключительному состоянию ==
{{Определение
|definition= Пусть <tex>\mathcal{P}=\langle Q, \Sigma, \Gamma, \delta, s, Z_{0}, T\rangle</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 face="Times" size="3"> *'''Определение: '''Пусть <tex>\mathcal{P}=\langle Q, \Sigma, \Gamma, \delta, s, Z_{0}, T\rangle</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|definition="3">*'''Определение: '''Для МП-автомата <tex>\mathcal{P}=(\langle Q, \Sigma, \Gamma, \delta, s, Z_{0})\rangle</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|statement="Times" size="3">*'''Теорема: '''Классы языков, допускаемых МП-автоматами по заключительному состоянию и по пустому магазину (стеку), совпадают.*'''Доказательство:'''|proof= <tex>\Rightarrow</tex> <br>Исходя из МП-автомата <tex>\mathcal{P}_{T}</tex>, допускающего язык <tex>L</tex> по заключительному состоянию, построим другой МП-автомат <tex>\mathcal{P_{N}}</tex>, который допускает язык <tex>L</tex> по пустому стеку.[[Файл:EqualStackAutomata.png|left400px|right]]
'''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> использует свой маркер дна <tex>Z_{1}</tex>. Добавление нового стартового состояния <tex>s</tex> позволяет затолкнуть маркер <tex>Z_{0}</tex> автомата <tex>\mathcal{P}_{T}</tex> в магазин и перейти в стартовое состояние <tex>\mathcal{P}_{T}</tex>.
'''3.''' Каждый переход <tex>\mathcal{P}_{T}</tex> есть и у автомата <tex>\mathcal{P_{N}}</tex>, символ <tex>Z_{1}</tex> хранится в магазине под всеми символами из <tex>\Gamma</tex> и является символом, по которому нет переходов в <tex>\mathcal{P}_{T}</tex>. Тогда <tex>\mathcal{P_{N}}</tex> может совершить следующие действия: <tex>(s, w, Z_{1})\vdash (s_{0}, w, Z_{0} Z_{1})\vdash^{*} (q, \varepsilon, \alpha Z_{1})\vdash^{*} (p, \varepsilon,\varepsilon) </tex>, что означает <tex>\mathcal{P_{N}}</tex> допускает слово <tex>w</tex> по пустому магазину. <tex>\Leftarrow</tex> <br> Исходя из МП-автомата <tex>\mathcal{P}_{N}</tex>, допускающего язык <tex>L</tex> по пустому стеку, построим МП-автомат <tex>\mathcal{P_{T}}</tex>, допускающий <tex>L</tex> по заключительному состоянию.[[Файл:EqualAllowAutomataPict.png|400px|right]]
'''1.''' Добавим новый символ <tex>Z_1</tex>, не принадлежащий <tex>\Gamma</tex>, который будем маркером дна магазина нового автомата, позволяющий узнать, когда <tex>\mathcal{P_{N}}</tex> опустошает свой магазин. Если построенный автомат <tex>\mathcal{P}_{T}</tex> видит на вершине стека свой маркер, то он знает, что <tex>\mathcal{P_{N}}</tex> опустошает свой магазин на этом же входе.
'''2.''' Добавим новое допускающее состояние <tex>p</tex>, в которое автомат переходит, как только обнаруживает, что <tex>\mathcal{P_{N}}</tex> опустошил свой магазин. Таким образом допущенное слово по пустому стеку, будет допускаться и по заключительному состоянию, используя <tex>\varepsilon</tex> переходы в новое состояние.
'''3.''' Каждый переход <tex>\mathcal{P_{N}}</tex> есть и у автомата <tex>\mathcal{P}_{T}</tex>. Тогда, согласно введенным начальному и заключительному состоянию, автомат <tex>\mathcal{P}_{T}</tex> может совершить следующие действия: <tex>(s, w, Z_{1})\vdash (s_{0}, w, Z_{0} Z_{1})\vdash^{*} (q, \varepsilon, Z_{1})\vdash (p, \varepsilon,Z_{1}) </tex>, что означает <tex>\mathcal{P}_{T}</tex> допускает слово <tex>w</tex> по заключительному состоянию <tex>p</tex>. }}
</font><font face="Times" size="3">См. также ==*'''Доказательство:'''<tex>\Leftarrow</tex> Исходя из МП-автомата <tex>\mathcal{P}_{T}</tex>, допускающего язык <tex>L</tex> по пустому стеку, построим МП-автомат <tex>\mathcal{P_{N}}</tex>, допускающий <tex>L</tex> по заключительному состоянию.[[Автоматы с магазинной памятью | Автоматы с магазинной памятью]]*[[Файл:EqualAllowAutomataPict.pngСовпадение_множества_языков_МП-автоматов_и_контекстно-свободных_языков |leftСовпадение множества языков МП-автоматов и контекстно-свободных языков]] '''1.''' Добавим новый символ <tex>Z_1</tex>*[[Контекстно-свободные грамматики, не принадлежащий <tex>\Gamma</tex>вывод, который будем маркером дна магазина нового автомата, позволяющий узнать, когда <tex>\mathcal{P_{N}}</tex> опустошает свой магазин. Если построенный автомат <tex>\mathcal{P}_{T}</tex> видит на вершине стека свой маркер, то он знает, что <tex>\mathcal{P_{N}}</tex> опустошает свой магазин на этом же входе. '''2.''' Добавим новое допускающее состояние <tex>p</tex>, в которое автомат переходит, как только обнаруживает, что <tex>\mathcal{P_{N}}</tex> опустошил свой магазин. Таким образом допущенное слово по пустому стеку, будет допускаться лево- и по заключительному состояниюправосторонний вывод, используя <tex>\varepsilon</tex> переходы в новое состояние. дерево разбора | Контекстно-свободные грамматики]]
== Источники информации ==* '''3Хопкрофт Д., Мотвани Р., Ульман Д.''' Каждый переход <tex>\mathcal{P_{N---}}</tex> есть и у автомата <tex>\mathcal{P}_{T}</tex>. Тогда'''Введение в теорию автоматов, согласно введенным начальному языков и заключительному состояниювычислений''', автомат <tex>\mathcal{P}_{T}</tex> может совершить следующие действия2-е изд. : <tex>(sПер. с англ. — Москва, wИздательский дом «Вильямс», Z_{1})\vdash (s_{2008. — 528 с. : ISBN 978-5-8459-1347-0}, w, Z_{0} Z_{1})\vdash^{*} (q, \varepsilon, Z_{1})\vdash (p, \varepsilon,Z_{1}рус.) </tex>, что означает <tex>\mathcal{P}_{T}</tex> допускает слово <tex>w</tex> по заключительному состоянию <tex>p</tex>.
</font>[[Категория: Теория формальных языков]][[Категория: Контекстно-свободные грамматики]][[Категория: МП-автоматы]]
1632
правки

Навигация