Автомат с магазинной памятью: различия между версиями

Материал из WikiGrapp
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 5 промежуточных версий 2 участников)
Строка 1: Строка 1:
'''Автомат с магазинной памятью''' ([[Pushdown automation]]) --- тип [[Распознаватель|распознавателей]], определяющий класс
'''Автомат с магазинной памятью''' (''[[Pushdown automaton]]'') тип [[Абстрактная машина|абстрактной машины]], определяющий класс
[[Контекстно-свободный язык|контекстно-свободных языков]].
[[Контекстно-свободный язык|контекстно-свободных языков]].


'''Автомат с магазинной памятью''' (сокращенно [[МП-автомат| МП-автомат]] ) --- это семерка  
'''Автомат с магазинной памятью''' (сокращенно [[МП-автомат| МП-автомат]] ) это семерка  
<math>P=(Q,\Sigma,\Gamma,\delta,q_0,Z_0,F)</math>, где  
<math>P=(Q,\Sigma,\Gamma,\delta,q_0,Z_0,F)</math>, где  


[[Файл:Pushdown automation.png|500px]]
[[Файл:Pushdown automation.png|300px|right]]


(1) <math>Q</math> --- конечное множество символов ''состояний'',
(1) <math>Q</math> конечное множество символов ''состояний'',
представляющих возможные состояния управляющего устройства;
представляющих возможные состояния управляющего устройства;


(2) <math>\Sigma</math> --- конечный ''входной'' алфавит;
(2) <math>\Sigma</math> конечный ''входной'' алфавит;


(3) <math>\Gamma</math> --- конечный алфавит ''магазинных'' символов;
(3) <math>\Gamma</math> конечный алфавит ''магазинных'' символов;


(4) <math>\delta</math> --- отображение множества <math>Q\times(\Sigma\cup\{ e\})\times\Gamma</math> в множество конечных
(4) <math>\delta</math> отображение множества <math>Q\times(\Sigma\cup\{ e\})\times\Gamma</math> в множество конечных
подмножеств множества <math>Q\times \Gamma^*</math>;
подмножеств множества <math>Q\times \Gamma^*</math>;


(5) <math>q_0\in Q</math> --- ''начальное'' состояние управляющего устройства;
(5) <math>q_0\in Q</math> ''начальное'' состояние управляющего устройства;




(6) <math>Z_0\in \Gamma</math> --- символ, находящийся в магазине в начальный
 
(6) <math>Z_0\in \Gamma</math> символ, находящийся в магазине в начальный
момент (''начальный'' символ);
момент (''начальный'' символ);




(7) <math>F\subseteq Q</math> --- множество ''заключительных'' состояний.
 
(7) <math>F\subseteq Q</math> множество ''заключительных'' состояний.


''Конфигурацией'' МП-автомата <math>P</math> называется тройка
''Конфигурацией'' МП-автомата <math>P</math> называется тройка
<math>(q,\omega,\alpha)\in Q\times\Sigma^*\times\Gamma^*</math>, где
<math>(q,\omega,\alpha)\in Q\times\Sigma^*\times\Gamma^*</math>, где


(1) <math>q</math> --- текущее состояние управляющего устройства;
(1) <math>q</math> текущее состояние управляющего устройства;


(2) <math>\omega</math> --- неиспользованная часть входной цепочки;
(2) <math>\omega</math> неиспользованная часть входной цепочки;
первый символ цепочки <math>\omega</math> находится под входной
первый символ цепочки <math>\omega</math> находится под входной
головкой; если <math>\omega =e</math>, то считается, что вся входная
головкой; если <math>\omega =e</math>, то считается, что вся входная
лента прочитана;
лента прочитана;


(3) <math>\alpha</math> --- содержимое магазина; самый левый символ
(3) <math>\alpha</math> содержимое магазина; самый левый символ
цепочки считается верхним символом магазина; если <math>\alpha
цепочки считается верхним символом магазина; если <math>\alpha
=e</math>, то магазин считается пустым.
=e</math>, то магазин считается пустым.
Строка 43: Строка 45:
конфигурация вида <math>(q_0,\omega, Z_0)</math>, где
конфигурация вида <math>(q_0,\omega, Z_0)</math>, где
<math>\omega\in\Sigma^*</math>. ''Заключительная'' его конфигурация
<math>\omega\in\Sigma^*</math>. ''Заключительная'' его конфигурация
--- это конфигурация вида <math>(q,e,e)</math>, где <math>q\in F</math>.
это конфигурация вида <math>(q,e,e)</math>, где <math>q\in F</math>.


''Такт'' работы МП-автомата <math>P</math> представляется в виде
''Такт'' работы МП-автомата <math>P</math> представляется в виде
Строка 56: Строка 58:
<math>\vdash_P</math>.
<math>\vdash_P</math>.


Цепочка <math>\omega</math> ''допускается'' [[МП-автомат|МП-автоматом]] <math>P</math>, если
Цепочка <math>\omega</math> ''допускается'' МП-автоматом <math>P</math>, если
<math>(q_0,\omega,Z_0)\vdash_P^*(q,e,e)</math> для некоторого <math>q\in F</math>.
<math>(q_0,\omega,Z_0)\vdash_P^*(q,e,e)</math> для некоторого <math>q\in F</math>.


Строка 70: Строка 72:
верхний элемент магазина.
верхний элемент магазина.


Такт работы некоторого [[МП-автомат|МП-автомата]] <math>P</math>, связанный с
Такт работы некоторого МП-автомата <math>P</math>, связанный с
переходом от конфигурации <math>(q,a\omega,Za)</math> к конфигурации
переходом от конфигурации <math>(q,a\omega,Za)</math> к конфигурации
<math>(q',\omega,\gamma a)</math> при <math>a\neq e</math>, говорит о том, что
<math>(q',\omega,\gamma a)</math> при <math>a\neq e</math>, говорит о том, что
МП-автомат <math>P</math>, находясь в состоянии <math>q</math> и имея <math>a</math> в
МП-автомат <math>P</math>, находясь в состоянии <math>q</math> и имея <math>a</math> в
качестве текущего входного символа, расположенного под
качестве текущего входного символа, расположенного под
входной головкой (т.е. обозревая <math>a</math>), а <math>Z</math> --- в качестве
входной головкой (т.е. обозревая <math>a</math>), а <math>Z</math> в качестве
верхнего символа магазина, может перейти в новое состояние
верхнего символа магазина, может перейти в новое состояние
<math>q'</math>, сдвинуть входную головку на одну ячейку вправо и
<math>q'</math>, сдвинуть входную головку на одну ячейку вправо и
Строка 92: Строка 94:
==Литература==
==Литература==


[Ахо-Ульман],
* Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. —  М.: Мир, 1979.
   
* Касьянов В.Н.  Лекции по теории формальных языков, автоматов и сложности вычислений.  — Новосибирск: НГУ, 1995.
[Касьянов/95],
* Касьянов В.Н., Касьянова Е.В. Теория вычислений. — Новосибирск: НГУ, 2018.
* Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. — Новосибирск: Наука. Сиб. отд-ние, 1986.
[Касьянов-Поттосин]




[[Категория:Основные термины]]
[[Категория:Русские термины]]
[[Категория:Синтаксические деревья‏‎ ]]
[[Категория:Теория автоматов]]
[[Категория:Теория автоматов]]
[[Категория:Теория программирования‏‎]]
[[Категория:Теория формальных языков‏‎]]
[[Категория:Трансляция‏‎ ]]

Текущая версия от 13:31, 26 декабря 2024

Автомат с магазинной памятью (Pushdown automaton) — тип абстрактной машины, определяющий класс контекстно-свободных языков.

Автомат с магазинной памятью (сокращенно МП-автомат ) — это семерка P=(Q,Σ,Γ,δ,q0,Z0,F), где

Pushdown automation.png

(1) Q — конечное множество символов состояний, представляющих возможные состояния управляющего устройства;

(2) Σ — конечный входной алфавит;

(3) Γ — конечный алфавит магазинных символов;

(4) δ — отображение множества Q×(Σ{e})×Γ в множество конечных подмножеств множества Q×Γ;

(5) q0Qначальное состояние управляющего устройства;


(6) Z0Γ — символ, находящийся в магазине в начальный момент (начальный символ);


(7) FQ — множество заключительных состояний.

Конфигурацией МП-автомата P называется тройка (q,ω,α)Q×Σ×Γ, где

(1) q — текущее состояние управляющего устройства;

(2) ω — неиспользованная часть входной цепочки; первый символ цепочки ω находится под входной головкой; если ω=e, то считается, что вся входная лента прочитана;

(3) α — содержимое магазина; самый левый символ цепочки считается верхним символом магазина; если α=e, то магазин считается пустым.

Начальной конфигурацией МП-автомата P называется конфигурация вида (q0,ω,Z0), где ωΣ. Заключительная его конфигурация — это конфигурация вида (q,e,e), где qF.

Такт работы МП-автомата P представляется в виде бинарного отношения P, определенного на конфигурациях следующим образом: (q, aω, Zα)P(p,ω,γα), если множество δ(q,a,Z) содержит (p,γ), где q,pQ, aΣ{e}, ωΣ, ZΓ и α,γΓ. Через P и P+ обозначаются соответственно рефлексивное и транзитивное замыкание и транзитивное замыкание отношения P.

Цепочка ω допускается МП-автоматом P, если (q0,ω,Z0)P(q,e,e) для некоторого qF.

Языком, определяемым (или допускаемым) автоматом P (обозначается L(P)), называют множество цепочек, допускаемых автоматом P.

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

Такт работы некоторого МП-автомата P, связанный с переходом от конфигурации (q,aω,Za) к конфигурации (q,ω,γa) при ae, говорит о том, что МП-автомат P, находясь в состоянии q и имея a в качестве текущего входного символа, расположенного под входной головкой (т.е. обозревая a), а Z — в качестве верхнего символа магазина, может перейти в новое состояние q, сдвинуть входную головку на одну ячейку вправо и заменить верхний символ магазина цепочкой γ магазинных символов. Если γ=e, то верхний символ удаляется из магазина и, тем самым, магазинный список сокращается.

Такт, в котором a=e, называют е-тактом. В e-такте текущий входной символ не принимается во внимание и входная головка не сдвигается. Однако состояние управляющего устройства и содержимое памяти могут измениться. Заметим, что e-такт может происходить и тогда, когда вся входная цепочка прочитана.


Литература

  • Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979.
  • Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995.
  • Касьянов В.Н., Касьянова Е.В. Теория вычислений. — Новосибирск: НГУ, 2018.
  • Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. — Новосибирск: Наука. Сиб. отд-ние, 1986.