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




Автоматс магазинной памятью – это распознаватель, имеющий рабочую память, в которой данные хранятся и используются как патроны в магазине автоматического оружия, т.е. в данный момент доступен только верхний элемент магазина.

Автомат с магазинной памятью (МПА)– это семерка

M = (Q, S, T, d, q 0, Z 0, F),

где Q = { q 0, q 2, …, q n}– конечное множество состояний устройства управления (УУ);

= { a 1, a 2, …, a k} – конечный входной алфавит;

T – конечный алфавит магазинных символов;

d – функция переходов, отображающая Q T во множество конечных подмножеств множества Q T*;

q 0 – начальное состояние устройства управления, q 0 Î Q;

Z 0 – начальный символ магазина, Z 0 Î T;

F – множество заключительных состояний, F Í Q.

Автомат с магазинной памятью имеет две ленты: входную, которую можно только читать и которая содержит распознаваемую входную цепочку, и рабочую, содержащую магазинные символы, которые можно как читать, так и писать. Управляющее устройство находится в одном из состояний Q, устройство имеет две головки: одну для работы с входной лентой, другую – с рабочей, причем эта головка всегда указывает на верхнюю ячейку магазина. За один такт автомат может выполнить следующие действия над символами магазина:

q стереть символ из верхней ячейки магазина, при этом все символы магазина смещаются вверх на одну ячейку;

q стереть символ из верхней ячейки магазина и записать в магазин цепочку символов, при этом содержимое магазина сдвигается вниз на длину записываемой цепочки.

Ниже схематично изображен автоматс магазинной памятью

 

 
 

 


Рассмотрим интерпретацию функции d для автомата. Эта функция представляется совокупностью команд следующего вида:

d(q, a, Z) = {(q 1, a1), (q 2, a2), …,(q n, an)},

где q, q1, q2, …, qn Î Q, a ÎS, ZÎT, aÎ T*.

При этом считается, что если на входе читающей головки автомата находится символ а, автомат находится в состоянии q, а верх­ний символ рабочей ленты Z, то автомат может перейти к состоянию qi, записав при этом на рабочую ленту цепочку ai(1 <i<n) вместо символа Z, передвинуть входную головку на один символ вправо. Крайний левый символ aiдолжен при этом оказаться в верхней ячейке магазина. Команда

d(q, ε, Z) = {(q1, a1), (q2, a2), …,(qn, an)}

означает, что независимо от входного символа и, не передвигая входной головки, автомат

перейдет в состояние qi, заменив символ Z магазина на цепочку ai(1 <i<n).

 

Конфигурацией МПА называется тройка (q, w, a)ÎQ S* T*,

где q Î Q – текущее состояние устройства управления;

w Î S* – неиспользованная часть входной цепочки, первый символ которой находится под входной головкой; если w = ε, то считается, что вся входная лента прочитана;

a – содержимое магазина; самый левый символ цепочки a считается верхним символом магазина, если a= ε, то магазин считается пустым.

Такт работы автомата будем представлять в виде бинарного отношения ├, определенного на конфигурациях. Например, если d(q 1, a, Z) содержит (q 2, g), то, выполнив такт, автомат перейдет от конфигурации (q 1, aw, Z a) к конфигурации (q 2, w, ga), здесь q 1, q 2 Î Q, w Î S*, a Î S, Z Î T, a, g Î T*. Если а не пустой символ (a ¹ ε), то запись

(q 1, aw, Z a) ├ (q 2, w, ga)

говорит о том, что автомат, на­ходясь в состоянии q 1 и имея а в качестве текущего входного символа, расположенного под входной головкой, a Z – в каче­стве верхнего символа магазина, может перейти в новое состоя­ние q 2, сдвинуть входную головку на одну ячейку вправо и за­менить верхний символ магазина цепочкой gмагазинных символов. Если g = ε, то верхний символ удаляется из магазина, и тем самым магазинный список сокращается.

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

Начальной конфигурациейМПА называется конфи­гурация вида (q0, w, Z 0), где w Î S*, т. е. управляющее устрой­ство находится в начальном состоянии, входная лента содержит цепочку, которую нужно распознать, а в магазине есть только начальный символ Z 0. Заключительная конфигурация – это кон­фигурация вида (q, ε, a), где q 2 Î Q, aÎ T*.

Входная цепочка w допускается МПА, если найдется последовательность тактов, переводящая автомат из начальной конфигурации (q 0, w, Z 0) в заключительную (qf, e, a), здесь qf – некоторое заключительное состояние q f Î F, a Î T*, e - пустая цепочка, или по-другому:

(q0, w, Z 0) ├*(qf, ε, a).

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

 

Рассмотрим детерминированный автомат c магазинной памятью М1, определяющий множество цепочек вида {0n1n | n ³ 0 }.

M1=({ q0, q1, q2 }, {0, 1}, { Z, 0}, d, q0, Z, { q0 }),

где d имеет вид

 

d(q0, 0, Z) = {(q1, 0Z)}

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

d(q1, 1, 0) = {(q2, ε)}

d(q2, 1, 0) = {(q2, ε)}

d(q2, , Z) = {(q0, ε)}

 

Автомат сохраняет в магазине подцепочку, состоящую из нулей, затем выталкивает из магазина по одному нулю на каждую единицу, считанную с входной ленты. Пока автомат читает нули, он находится в состоянии q 1, как только автомат сосчитает первую единицу, он попадает в состояние q 2, появление нулей в этом состоянии запрещено автоматом.

Теперь мы слегка расширим определение МПА, по­зволив ему заменять за один такт цепочку символов ограничен­ной длины, расположенную в верхней части магазина, другой цепочкой конечной длины. Напомним, что МПА в перво­начальной версии мог на данном такте заменять лишь один верх­ний символ магазина.

Расширенным МПА назовем семерку

Р = (Q, S, T, d, q 0, Z 0, F),

где d - отображение конечного подмно­жества множества Q (S È {ε}) ´T* во множество конечных подмножеств множества Q T*, а все другие символы имеют тот же смысл, что и раньше.

Конфигурация определяется так же, как прежде, и мы пи­шем

 

(q 1, aw, ag) ├ (q 2, w, βg)

 

если d(q 1, a, a) содержит (q 2, β), где q 1, q 2 Î Q, w Î S*, a Î S È {ε}, Z Î T, a, β, g Î T*. В этом такте цепочка a, расположен­ная в верхней части магазина, заменяется цепочкой β. Как и прежде, языком L(P), определяемым автоматом Р, называется множество

{ w | (q0, w, Z 0) ├*(qf, ε, a) для некоторых q f Î F, a Î T*}

Заметим, что в отличие от обычного МПА расширен­ный МПА обладает способностью продолжать работу и тогда, когда магазин пуст.

Пусть P = (Q, S, T, d, q 0, Z 0, F) -МПА или расширенный МПА. Будем говорить, что Р допускает цепочку w Î S* опустошением магазина, если (q0, w, Z 0) ├+(q, ε, ε) для некоторого q Î Q. Пусть Le(P) - множество цепочек, допус­каемых автоматом Р опустошением магазина.

Доказано, что если L (G2) - бесконтекстный язык, по­рождаемый грамматикой G2 = (N, S, P, S), находящейся в нормаль­ной форме Грейбах, то существует недетерминированный магазинный автомат М такой, что Le(M) = L (G2). При этом

M = (Q, S, T, d, q 0, Z 0, Æ),

где алфавиты S в грамматике и автомате совпадают; Q ={ q 0}, Z 0 = S, T = N,

а d определяется следующим образом:

если A ® aa принадлежит множеству правил P грамматики G2, то d(q 0, a, A) = (q 0, a)

если A ® a принадлежит множеству правил P грамматики G2, то d(q 0, a, A) = (q 0, ε)

Аналогично для любого недетерминированного магазинного автомата М, допускающего язык Le(M), можно построить бескон­текстную грамматику G такую, что L(G) =

Le(М).

Пример. Грамматика в нормальной форме Грейбах, порождающая язык L={0n1n| n 1} задается следующим образом: множество N = {S, A }, множество S = {0, 1},а множество продукций:

S 0SA

S 0A

A 1

Для этой грамматики построим соответствующий ей МПА M = (Q, S, T, d, q 0, Z 0, Æ),

где алфавит S={0, 1}, Q ={ q 0}, T = {S, A }, Z 0 = S,

d(q 0, 0, S) = (q 0, SA)

d(q 0, 0, S) = (q 0, A)

d(q 0, 1, A) = (q 0, ε)




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: