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


                        АВТОМАТЫ С МАГАЗИННОЙ ПАМЯТЬЮ



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

автоматы с магазинной памятью снабжены дополнительной магазинной памятью
(рабочей лентой).
На рис. 1
|                                            |


такой преобразователь.   Конечное  управляющее устройство снабжается
дополнительной управляющей головкой, всегда указывающей на
верхнюю ячейку магазинной памяти; за один такт работы автомата
(преобразователя)   управляющая головка может произвести следующие
движения:
  1) стереть символ из верхней ячейки (при этом все символы, находящиеся на
рабочей ленте, перемещаются на  одну  ячейку вверх);

   2) стереть   символ  из  верхней ячейки  и записать  на рабочую ленту
непустую цепочку символов (при этом содержимое
рабочей  ленты сдвигается вниз ровно настолько,  какова длина
с   записываемой цепочки).
  Таким образом, устройство магазинной памяти можно сравнить  с  устройством
магазина боевого автомата: когда в него  вкладывается  патрон,  те,  которые
уже  были  внутри,  проталкиваются  вниз;  достать  можно   только   патрон,
вложенный последним.
  Формально детерминированный магазинный автомат определяется как  следующая
совокупность объектов:

                        M = (V, Q, VM, ?, q0, z0, F),


   где V, Q, q0 Є Q, F определяются так же, как и для конечного автомата;
  VM = {z0, z1,…,zp-1} — алфавит магазинных символов автомата;
  ? — функция, отображающая множество Q X (V U { ? }) X VM

в множество Q X VM, где е — пустая цепочка;

  z0 Є VM — так называемый граничный маркер,  т. е.  символ,

первым появляющийся в магазинной памяти.
  Недетерминированный магазинный автомат  отличается  от  детерминированного
только тем, что функция ? отображает множество Q X (V U  {  ?  })  X  VM.  в
множество конечных подмножеств Q x VM

  Как и в случае конечных автоматов, преобразователи  с  магазинной  памятью
отличаются от автоматов с магазинной памятью наличием выходной ленты.
  Далее будем рассматривать только недетерминированные магазинные автоматы.
  Рассмотрим  интерпретацию функции ? для   такого   автомата.  Эту  функцию
можно представить совокупностью команд вида

                       (q, a, z)>(q1, ?1),…,(qm, ?m),

               где q, q1,…qm Є Q, a Є V, z Є VM, ?1,…,?m Є V*m



  При этом считается, что если на входе читающей головки авто

мата находится символ а, автомат находится в состоянии q, а верхний символ
рабочей ленты z, то автомат может перейти к состоянию qi, записав при этом
на рабочую ленту цепочку  ?i(1 ? i ? m)

вместо символа z, передвинуть входную головку на один символ

вправо так, как это показано на рис. 1, и перейти в состояние qi. Крайний
левый символ ?i должен при этом оказаться в верхней

ячейке магазина. Команда (q, e, z)>(q1, ?1),…, (qm, ?m) означает,

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

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

на цепочку ?i(1 ? i ? m).    •
  Ситуацией магазинного автомата называется пара (q, ?), где
  q Є Q, ? Є V*m. Между ситуациями магазинного автомата (q, ?) и
  (q’, ?’),  устанавливается отношение, обозначаемое символом +, если среди
команд найдется такая, что

                       (q, a, z)>(q1, ?1),…,(qm, ?m),

  причем ? = z?, ?’ = ?i? q' = qi для некоторого 1 ? i ? m (z Є Vm,

  ? Є V*m  ).
  Говорят, что магазинный автомат переходит из состояния (q, ?) в  состояние
(q’, ?’) и обозначают это следующим образом:

                            a: (q, ?)+ (q’, ?’).

   Вводится и такое обозначение:
                        a1...an: (q, ?)+ * (q’, ?’),
  если справедливо, что

                    ai: (qi, ?i)+ (qi+1, ?i+1), 1 ? i ? m

  где
                    ai Є V, ?1 = ?, ?2,…, ?n+1 = ?’ Є V*m
                         q1 = q, q2,…, qn+1 = q’ Є Q
  Существует два способа определения языка, допускаемого магазинным
автоматом.   Согласно   первому  способу  считается,   что входная цепочка
? Є V* принадлежит языку L1 (M) тогда, когда после просмотра последнего
символа,  входящего в эту цепочку,
в магазине автомата М будет находиться пустая цепочка ?. Другими словами,
                   L1 (M) = { ? | ?: (q0, z0) + * (q, ?)}

  где q Є Q.
  Согласно второму способу считается, что входная цепочка принадлежит  языку
L2 (M) тогда, когда после просмотра  последнего  символа,  входящего  в  эту
цепочку, автомат М окажется в одном из своих заключительных состояний  qf  Є
F. Другими словами,

                   L2 (M) = { ? | ?: (q0, z0) + * (qf, ?)}

  где ? Є V*m, qf Є F
  Доказано, что  множество  языков,  допускаемых  произвольными  магазинными
автоматами  согласно  первому  способу,  совпадает  с   множеством   языков,
допускаемых согласно второму способу.
  Доказано также,  что  если  L  (G2)  —  бесконтекстный  язык,  порождаемый
Грамматикой G2 = (Vx, VT,  Р,  S),  являющейся  нормальной  формой  Грейбах,
произвольной бесконтекстной грамматики G, то существует  недетерминированный
магазинный автомат М такой, что L1 (M) = L (G2). При этом
                       M = (V, Q, Vm , ?, q0, z0, 0),
Где V=VT; Q={q0}; VM=VN; z0=S
а для каждого правила G2 вида
                            A>a?, a Є VT, a Є V*n

  строится команда отображения ?:
                             (q0, a, A)>(q0, a)

  Apia логично  для  любого  недетерминированного  магазинного  автомата  М,
допускающего язык  L1  (M),  можно  построить  бесконтекстную  грамматику  G
такую, что L (G) = L1 (M).
  Если для конечных автоматов детерминированные и недетерминированные модели
эквивалентны по отношению к классу допускаемых языков, то этого нельзя
сказать для магазинных автоматов. Детерминированные автоматы с магазинной
памятью допускают лишь некоторое подмножество бесконтекстных языков,
которые называют детерминированными бесконтекстными языками.



                      Список использованной литературы


  КУЗИН Л.Т «Основы кибернетики» Т.2



                         УКРАИНСКИЙ ГОСУДАРСТВЕННЫЙ
                     ХИМИКО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ



                                Р Е Ф Е Р А Т
                      По дискретной математике на тему:
                       «Автоматы с магазинной памятью»



                                              Подготовил студент гр. 1киб-30
                                                    Кирчатов Роман Романович

                                                               Преподаватель
                                              Бразинская Светлана Викторовна



                            ДНЕПРОПЕТРОВСК, 2002