Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы 2013.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.38 Mб
Скачать

46. Определение и процесс функционирования автомата с магазинной памятью.

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

Входная лента МПА разбита на ячейки, каждая из которых содержит один символ анализируемой цепочки.

Читающая головка в каждый момент времени обозревает только один символ и по команде устройства управления может перемещаться на один символ вправо.

Устройство управления (УУ) МПА:

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

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

В качестве выполняемых автоматом операций выступают:

занесение символа в магазин (без удаления ранее находившейся в нем информации);

замена символа, находящегося в вершине магазина;

выброс верхнего символа из магазина;

сдвиг читающей головки вправо на один символ.

Формально МПА можно определить как совокупность вида:

P=(Q, T, Г, , q0, z0, F),

где Q – множество состояний УУ;

T – входной алфавит;

Г – алфавит магазина;

 – правило отображения Q  (T  {e})  Г  Q  Г* (наличие {e} указывает на возможность игнорирования входного символа);

q0 - начальное состояние УУ, q0Q;

z0 – начальный символ магазина (символ дна), z0Г;

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

Смена состояний автомата происходит в фиксированные моменты времени, называемые тактами. Такт определяется состоянием УУ, верхним символом магазина и, возможно, обозреваемым входным символом. В такте могут произойти: смена состояния УУ, сдвиг читающей головки и замена символа на вершине магазина некоторой цепочкой.

Конфигурация МПА - это совокупность состояния УУ (q), содержимого непрочитанной части входной ленты (a, где a – обозреваемый символ,  - цепочка остальных символов непрочитанной части входной ленты) и содержимого магазина (Z, где Z – символ в вершине магазина), записываемая как (q,a,Z).

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

Если МПА завершает свою работу при пустом магазине (заключительная конфигурация (q,e,e), он называется опустошающим. Если ни одно из правил  не может быть применено, автомат завершает свою работу сигналом "ошибка".

Алгоритм построения МПА по заданной КС-грамматике

Вход: КС-грамматика G=(N,T,P,S).

Выход: МПА P=(Q, T, Г, , q0, z0, F), допускающий язык L(P): L(P)=L(G).

Процесс:

1. Положить Q={q0} (q0 – единственное состояние УУ, имя которого выбирается произвольно), Г=N  T, z0=S, F={q0}.

2. Определить  следующим образом:

  • (A  )  P: (q0, -1) (q0,e,A) – находящийся на вершине магазина нетерминальный символ должен заменяться правой частью определяющей его продукции;

  • (aT): (q0,a,a) = {(q0,e,e)} – совпадение символа на вершине магазина с символом, обозреваемым читающей головкой, приводит к выбросу символа из магазина и сдвигу читающей головки;

  • (q0,e,e) = допуск – если УУ находится в заключительном состоянии, магазин пуст и входная лента полностью прочитана, завершить работу МПА и выдать сигнал "допуск".

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

Взаимосвязь МПА и КС-грамматик фиксирована следующими теоремами:

Теорема 6. Для любой КС-грамматики (G) можно построить МПА (P) таким образом, что L(G)=L(P).

Теорема 7. Для любого опустошающего МПА (P) существует алгоритм построения КС-грамматики (G) – такой, что L(P)=L(G).

Из этих теорем следует, что классы языков, порождаемых КС-грамматиками и распознаваемых МПА, эквивалентны.

Примеры построения и функционирования МПА

Для грамматики G = ({S},{if,then,a},{S  if S then a | a},S), МПА будет иметь вид: P=({q0}, {if,then,a}, {if,then,S,a}, , q0, S, {q0}), отображение  получено следующим образом:

по правилу грамматики "S  if S then a" сформировано 1(q0,e,S) = {(q0, a then S if)};

по правилу грамматики "S  a" сформировано 2(q0,e,S) = {(q0, a)};

для терминальных символов грамматики сформированы правила 3(q0,if,if) = {(q0,e)}, 4(q0,then,then) = {(q0,e)}, 5(q0,a,a) = {(q0,e)};

добавлено правило 6(q0,e,e) = {допуск}.

Ниже приведена последовательность тактов сформированного МПА при разборе цепочки "if if a then a then a", дополненная для каждого такта содержанием прочитанной части входной ленты (в скобках после знака отношения "такт" указаны номера примененных правил из , а с помощью подчеркивания в конфигурациях отмечены символы, определяющие следующий такт). Следует отметить, что в силу правил 1 и 2 данный МПА является недетерминированным, и приведенная выше последовательность тактов отображает только одну из возможных реализаций процесса функционирования МПА, хотя (в данном случае) и единственную, приводящую к требуемому результату.

Прочитанная часть входной цепочки

Конфигурации МПА

E

(q0,if if a then a then a, S)├─ (1)

E

(q0,if if a then a then a, a then S if)├─ (3)

if

(q0, if a then a then a, a then S)├─ (1)

if

(q0, if a then a then a, a then a then S if)├─ (3)

if if

(q0, a then a then a, a then a then S)├─ (2)

if if

(q0, a then a then a, a then a then a)├─ 4 (5,4,5,4)

if if a then a then a

(q0,a,a)├─ (5)

if if a then a then a

(q0, e, e)├─ (6)

if if a then a then a

допуск