Опубликован: 09.07.2007 | Уровень: профессионал | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 11:

Автоматы с магазинной памятью

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Аннотация: В данной лекции рассматриваются автоматы с магазинной памятью, в которых помимо ограниченной памяти, хранящей текущее состояние, имеется потенциально бесконечная память, используемая как магазин. Даются необходимые определения, и доказывается, что автоматы с магазинной памятью распознают в точности контекстно-свободные языки. Приведены примеры практического использования автоматов с магазинной памятью и приведены упражнения для самостоятельной проработки

Подобно тому, как праволинейным грамматикам соответствуют конечные автоматы, контекстно-свободным грамматикам соответствуют автоматы с магазинной памятью (МП-автоматы). В таком автомате, помимо ограниченной памяти, хранящей текущее состояние, имеется потенциально бесконечная память, используемая как стек (магазин), то есть структура данных, где в каждый момент доступен только тот элемент, который был добавлен позже остальных присутствующих на данный момент элементов.

Для наглядности стек обычно изображают вертикально, так, что доступный элемент данных (вершина) находится наверху. Но при формальном определении конфигурации (мгновенного состояния) МП-автомата удобно считать все содержимое стека конечной последовательностью символов, то есть словом (в алфавите, в котором перечислены все возможные данные, "умещающиеся" в одной ячейке стека). Прежде чем определить конфигурацию, придется принять произвольное соглашение о том, в каком порядке записывать содержимое стека в этом слове. В этой книге считается, что вершина стека находится в начале слова (то есть слева). В разделе 10.1 даются необходимые определения. В разделе 10.2 доказывается, что МП-автоматы распознают в точности контекстно-свободные языки.

10.1. Определение автомата с магазинной памятью

Определение 10.1.1. Автомат с магазинной памятью ( МП-автомат, магазинный автомат, стековый автомат, pushdown automaton) - это шестерка M = \lalg Q , \Sigma , \Gamma , \Delta , I , F \ralg, где Q, \Sigma, \Gamma и \Delta - конечные множества, I \subseteq Q, F \subseteq Q и

\Delta \subseteq ( Q \times \Sigma ^* \times \Gamma^* )
 \times ( Q \times \Gamma^* ) .
Здесь Q - множество состояний, \Sigma - входной алфавит, \Gamma - алфавит магазинной памяти (stack alphabet), \Delta - множество переходов (transition relation), элементы I называются начальными состояниями, элементы F - заключительными или допускающими состояниями.

Пример 10.1.2. Пусть Q = {1,2}, \Sigma = \{ a , b \}, \Gamma = \{ A , B \},

\begin{align*}
\Delta = \{
\langle \langle 1 , a , \varepsilon \rangle ,
\langle 1 , A \rangle \rangle ,\
\langle \langle 1 , b , \varepsilon \rangle ,
\langle 1 , B \rangle \rangle ,\
\langle \langle 1 , \varepsilon , \varepsilon \rangle ,
\langle 2 , \varepsilon \rangle \rangle ,\
\\
\langle \langle 2 , a , A \rangle ,
\langle 2 , \varepsilon \rangle \rangle ,\
\langle \langle 2 , b , B \rangle ,
\langle 2 , \varepsilon \rangle \rangle
\} ,
\end{align*}
I = {1}, F = {2}. Тогда \lalg Q , \Sigma , \Gamma , \Delta , I , F \ralg - МП-автомат.

Замечание 10.1.3. МП-автоматы можно изображать в виде диаграмм состояний. На диаграмме каждое состояние обозначается кружком, а переход - стрелкой. Каждое начальное состояние распознается по ведущей в него короткой стрелке. Каждое допускающее состояние отмечается на диаграмме двойным кружком. Стрелка с пометкой x , \beta : \gamma, ведущая из p в q, показывает, что \lp \lp p , x , \beta \rp , \lp q , \gamma \rp \rp является переходом данного МП-автомата.

Пример 10.1.4. Ниже приведена диаграмма МП-автомата из примера 10.1.2.

\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{a,\varepsilon:A}
 \rloop{0,-1} ^{b,\varepsilon:B}
 \ar  "1,2"  ^{\varepsilon,\varepsilon:\varepsilon}
& *=[o][F=]{2}
 \rloop{0,1} ^{a,A:\varepsilon}
 \rloop{0,-1} ^{b,B:\varepsilon}
}

Определение 10.1.5. Конфигурацией МП-автомата называется любая тройка \lp q , w , \alpha \rp, где q \in Q, w \in \Sigma ^*, \alpha \in \Gamma ^*.

Определение 10.1.6. Определим на множестве всех конфигураций МП-автомата M = \lalg Q , \Sigma , \Gamma , \Delta , I , F \ralg бинарное отношение \myunderset{ M }{\vdash} ( такт работы ) следующим образом. Если \lp \lp p , x , \beta \rp , \lp q , \gamma \rp \rp
\in \Delta, w \in \Sigma ^* и \alpha \in \Gamma ^*, то \lp p , xw , \beta \alpha \rp \myunderset{ M }{\vdash}
\lp q , w , \gamma \alpha \rp.

Замечание 10.1.7 Обычно из контекста ясно, о каком МП-автомате идет речь. Тогда вместо \myunderset{ M }{\vdash} будем писать \vdash.

Пример 10.1.8. Для МП-автомата из примера 10.1.2 выполняется \lp 1 , abba , \varepsilon \rp \vdash
\lp 1 , bba , A \rp и \lp 1 , abba , \varepsilon \rp \vdash
\lp 2 , abba , \varepsilon \rp.

Определение 10.1.9. Бинарное отношение \overstar{\vdash} определяется как рефлексивное, транзитивное замыкание отношения \vdash.

Пример 10.1.10. Для МП-автомата из примера 10.1.2 выполняется \lp 1 , abba , \varepsilon \rp \overstar{\vdash}
\lp 1 , ba , BA \rp и \lp 1 , abba , \varepsilon \rp \overstar{\vdash}
\lp 2 , \varepsilon , \varepsilon \rp.

Лемма 10.1.11. Если \lp p , x , \alpha_1 \rp \overstar{\vdash}
\lp q , \varepsilon , \alpha_2 \rp и \lp q , y , \alpha_2 \alpha_3 \rp \mymathrel{\overstar{\vdash}}
\lp r , \varepsilon , \alpha_4 \rp, то \lp p , xy , \alpha_1 \alpha_3 \rp \overstar{\vdash}
\lp r , \varepsilon , \alpha_4 \rp.

Доказательство. Лемму легко доказать индукцией по количеству тактов в вычислительном процессе, ведущем из конфигурации \lp p , x , \alpha_1 \rp в конфигурацию \lp q , \varepsilon , \alpha_2 \rp.

Определение 10.1.12. Слово w \in \Sigma^* допускается МП-автоматом M = \lalg Q , \Sigma , \Gamma , \Delta , I , F \ralg, если найдутся такие состояния s \in I и q \in F, что \lp s , w , \varepsilon \rp \overstar{\vdash}
\lp q , \varepsilon , \varepsilon \rp.

Определение 10.1.13. Язык, распознаваемый МП-автоматом, - множество всех слов, допускаемых этим МП-автоматом. Язык, распознаваемый МП-автоматом M, обозначается L(M).

Замечание 10.1.14. Обычно в учебниках используется более узкое определение МП-автомата, но это не меняет класса языков, распознаваемых МП-автоматами.

Пример 10.1.15. Пусть M - МП-автомат из примера 10.1.2. Тогда L ( M ) = \{ u u \reverse \mid u \in \{ a , b \}^* \}.

Пример 10.1.16. Пусть \Sigma = \{ a , b , c \}. Рассмотрим МП-автомат M \peq
 \lalg Q \sqzcm \Sigma \sqzcm \Gamma \sqzcm \Delta \sqzcm I \sqzcm F
\ralg, где Q = \{ 1 , 2 , 3 , 4 , 5 \}, \Gamma = \{ A , B \}, I = {1}, F = {4,5} и

\begin{align*}
\Delta&=\{
\lp\lp1,a,\emptyword\rp,
\lp1,A\rp\rp,\
\lp\lp1,b,\emptyword\rp,
\lp1,B\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp1,c,\emptyword\rp,
\lp2,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp2,a,A\rp,
\lp2,\emptyword\rp\rp,\
\lp\lp2,b,B\rp,
\lp2,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp2,a,B\rp,
\lp3,\emptyword\rp\rp,\
\lp\lp2,b,A\rp,
\lp3,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp2,\emptyword,A\rp,
\lp4,\emptyword\rp\rp,\
\lp\lp2,\emptyword,B\rp,
\lp4,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp2,b,\emptyword\rp,
\lp5,\emptyword\rp\rp,\
\lp\lp2,a,\emptyword\rp,
\lp5,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp3,a,\emptyword\rp,
\lp3,\emptyword\rp\rp,\
\lp\lp3,b,\emptyword\rp,
\lp3,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp3,\emptyword,\emptyword\rp,
\lp4,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp4,\emptyword,A\rp,
\lp4,\emptyword\rp\rp,\
\lp\lp4,\emptyword,B\rp,
\lp4,\emptyword\rp\rp,\
\\&\hphantom{{}={}\{}
\lp\lp5,a,\emptyword\rp,
\lp5,\emptyword\rp\rp,\
\lp\lp5,b,\emptyword\rp,
\lp5,\emptyword\rp\rp
\}.
\end{align*}
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix @=11mm{
  %
& 
& 
& *=[o][F-]{3}
 \rloop{0,1} ^{a,\varepsilon:\varepsilon}
 \rloop{0,-1} ^{b,\varepsilon:\varepsilon}
 \ar  "2,5"  ^-(.2){\varepsilon,\varepsilon:\varepsilon}
& 
\\
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{a,\varepsilon:A}
 \rloop{0,-1} ^{b,\varepsilon:B}
 \ar  "2,2"  ^{c,\varepsilon:\varepsilon}
& *=[o][F-]{2}
 \rloop{0,1} ^{a,A:\varepsilon}
 \rloop{0,-1} ^{b,B:\varepsilon}
 \ar  "1,4" <0.6mm> ^{a,B:\varepsilon}
 \ar  "1,4" <-0.6mm> _{b,A:\varepsilon}
 \ar  "2,5" <0.6mm> ^{\varepsilon,A:\varepsilon}
 \ar  "2,5" <-0.6mm> _{\varepsilon,B:\varepsilon}
 \ar  "3,4" <0.6mm> ^{a,\varepsilon:\varepsilon}
 \ar  "3,4" <-0.6mm> _{b,\varepsilon:\varepsilon}
& 
& 
& *=[o][F=]{4}
 \rloop{0,1} ^{\varepsilon,A:\varepsilon}
 \rloop{0,-1} ^{\varepsilon,B:\varepsilon}
\\
  %
& 
& 
& *=[o][F=]{5}
 \rloop{0,1} ^{a,\varepsilon:\varepsilon}
 \rloop{0,-1} ^{b,\varepsilon:\varepsilon}
& 
}
Тогда L ( M ) = \{ u c v \mid
u \in \{ a , b \}^* ,\ v \in \{ a , b \}^* \commaand u \neq v \reverse
\}.

Определение 10.1.17. Два МП-автомата эквивалентны, если они распознают один и тот же язык.

Замечание 10.1.18. В данном пособии не рассматриваются преобразователи с магазинной памятью (pushdown transducer) обобщение автоматов с магазинной памятью посредством добавления "выходного" потока (см. [7, 3.5] или [2, 3.1.4]).

Замечание 10.1.19. Некоторые авторы изменяют определение допускаемых слов следующим образом: слово w допускается МП-автоматом \lalg Q , \Sigma , \Gamma , \Delta , I , F \ralg, если найдутся такие состояния s \in I и q \in F и последовательность \alpha \in \Gamma ^*, что \lp s , w , \varepsilon \rp \overstar{\vdash}
\lp q , \varepsilon , \alpha \rp. Такое определение не изменяет класса языков, распознаваемых МП-автоматами.

Замечание 10.1.20. Некоторые авторы добавляют в определение МП-автомата седьмую компоненту - Z0, называемую маркером магазинной памяти (start pushdown symbol), и изменяют определение допускаемых слов следующим образом: слово w допускается МП-автоматом \lalg Q , \Sigma , \Gamma , \Delta , I , F , Z_0 \ralg, если найдутся такие состояния s \in I и q \in F, что \lp s , w , Z_0 \rp \overstar{\vdash}
\lp q , \varepsilon , \varepsilon \rp. Такое определение не изменяет класса языков, распознаваемых МП-автоматами.

Замечание 10.1.21. Класс языков, распознаваемых МП-автоматами, не изменится также, если использовать следующую естественную комбинацию двух предыдущих определений: слово w допускается МП-автоматом \lalg Q , \Sigma , \Gamma , \Delta , I , F , Z_0 \ralg, если найдутся такие состояния s \in I и q \in F и последовательность \alpha \in \Gamma ^*, что \lp s , w , Z_0 \rp \overstar{\vdash}
\lp q , \varepsilon , \alpha \rp.

Замечание 10.1.22. Некоторые авторы добавляют в определение МП-автомата маркер магазинной памяти Z0, отбрасывают множество F и изменяют определение допускаемых слов следующим образом: слово w допускается МП-автоматом \lalg Q , \Sigma , \Gamma , \Delta , I , Z_0 \ralg, если найдутся такие состояния s \in I и q \in Q, что \lp s , w , Z_0 \rp \overstar{\vdash}
\lp q , \varepsilon , \varepsilon \rp. Это также не изменяет класса языков, распознаваемых МП-автоматами.

Упражнение 10.1.23. Найти МП-автомат, распознающий язык \{ a^n b^n \mid n \geq 0 \}

Упражнение 10.1.24. Найти МП-автомат, распознающий язык \{ a^i b^j c^k \mid i = j \rusor j = k \}

Упражнение 10.1.25. Найти МП-автомат, распознающий язык \{ w \in \{a,b\}^* \mid | w |_a = | w |_b \}

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

Евгения Гунченко
Евгения Гунченко

Сдавала тест экстерном, результат получен 74 после принятия данного результата и соответственно оплаты курса, будет ли выдано удостоверение о повышении квалификации?

Юрий Фролов
Юрий Фролов
Украина
Руслан Мухамедьяров
Руслан Мухамедьяров
Россия, Казань, КФУ