Недетерминированный магазинный автомат

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

Магазинным автоматом называется автомат:

M= (Q, U, Г, d, q0, Z0, F), где

Q - конечное множество символов состояний автомата,

U - конечный входной алфавит,

Г - конечный алфавит магазинных символов,

d - переходная функция d: Q´{VÈ{e}}´Г® Q´Г,

q0ÎQ - начальное состояние,

Z0ÎГ - начальный магазинный символ,

FÌQ - некоторое подмножество состояний автомата, которые называются заключительными состояниями.

Конфигурацией автомата называется множество троек

(q, w, a)Î Q´{VÈ{e}}´Г, где

q - текущее состояние автомата,

w - неиспользованная часть входной цепочки. Первый символ этой цепочки просматривается входной головкой автомата. Если w= {e}, значит входной символ прочитан,

a - содержимое магазина (стека). Если a= {e}, магазин пустой.

Конфигурация (q, aw, za) |- (q', w, ga), символ |- читается как «переходит в конфигурацию».

Если g= e, то верхний символ удаляется из магазина и магазинная цепочка сокращается.

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

Следующий такт работы невозможен, если магазин пуст: (q0, w, z0).

Заключительное состояние автомата (q, e, a), если qÎF.

Цепочка w допускается магазинным автоматом, если из начальной конфигурации за конечное число таков работы автомат перейдет в заключительное состояние: (q, w, z0)|-*(q, e, a).

Если P - автомат, то L(P) - язык, определяемый P.

Пример: L={0n1n | n³0}

Определим автомат P= ({q0, q1, q2}, {0,1}, {z, 0}, d, q, z, {q0})

d(g0, 0, z)= {(g1, 0z)}

d(g1, 0, 0)= {(g1, 00)}

d(g1, 1, 0)= {(g2, e)} e означает, что символ просто снимается со стека

d(g2, 1, 0)= {(g2, e)}

d(g1, e, z)= {(g0, e)}

Пусть на вход поступила цепочка 0011. Как будет выглядеть работа автомата:

(g0, 0011, z) |- (g1, 011, 0z) |- (g1, 11, 00z) |- (g2, 1, 0z) |- (g2, e, z) |-(g2, e, e)

Вопросы и упражнения

1. Что понимают под конфигурацией автомата?

2. Что такое e-такт?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: