|
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Автомат с магазинной памятью
КС-языки можно распознавать с помощью автомата с магазинной памятью (МП-автомата).
3.3.1 Определение МП-автомата
Определение МП-автомат можно представить в виде семерки:
где Q – конечное множество состояний автомата; T – конечный входной алфавит; N – конечный магазинный алфавит; F – магазинная функция, отображающая множество во множество всех подмножеств множества
N0– начальный символ магазина, N0 Î N; Z – множество заключительных состояний автомата, Z Í Q.
Определение Конфигурацией МП-автомата называется тройка вида:
где q – текущее состояние автомата, q Î Q; w - часть входной строки, первый символ которой находится под входной головкой,
Рисунок 3.1 – Схема МП-автомата
Алгоритм Функционирование МП-автомата
Начальной конфигурацией МП-автомата является конфигурация (q0, Шаг работы МП-автомата будем представлять в виде отношения непосредственного следования конфигураций (обозначается «|=») и отношения достижимости конфигураций (обозначается «|=*»). Если одним из значений магазинной функции 1) Случай t Î T. Автомат находится в текущем состоянии q, читает входной символ t, имеет в вершине стека символ S. Он переходит в очередное состояние 2) Случай Заключительной конфигурацией МП-автомата является конфигурация (q, Определение МП-автомат допускает входную стоку Определение Язык L, распознаваемый (принимаемый) МП-автоматом М определяется как множество вида:
3.3.2 Разновидности МП-автоматов
Иногда определяют МП-автомат, который принимает строку, если после завершения ее чтения стек автомата будет пуст. В этом случае нет необходимости выделять множество заключительных состояний Z Пример МП-автомат Q= {А} Т= {(, )}, N= {I, 0}, qo = A, N0 = I, F={ F(A, (, I)=(A, OI) F(A, (, O)=(A, OO) F(A, ), O)=(A, F(A, при распознавании строки (()()) строит последовательность конфигураций: (А, (() ()), I) |- (А, () () ), 01) |- (А, ) ()), OOI) |- (А, ()), OI) |- (A, )), OOI) |- (А, ), О1) |- (А, Язык, принимаемый МП-автоматом в данном примере, это КС-язык парных круглых скобок. Этот же язык генерирует КС-грамматика с правилами Р = {S -> (S), S-> SS, S -> Из формального определения МП-автомата следует, что он может менять каждый раз только один символ в вершине стека. Этот МП-автомат не может, кроме того, продолжать работу при пустом стеке, так как Определение МП-автомат с магазинной функцией МП-автомат называют детерминированным (ДМП-автоматом), если, находясь в любой конфигурации, он может выбрать не более одной следующей конфигурации. Это означает, что при любых значениях q Доказано соответствие КС-грамматик и МП-автоматов, которое можно сформулировать так: существуют КС-языки, МП-автоматы и расширенные МП-автоматы, определяющие один и тот же КС-язык.
3.3.3 Взаимосвязь МП-автоматов и КС-грамматик
3.3.3.1 Построение МП-автомата по КС-грамматике
Построим МП-автомат, выполняющий левосторонний разбор. Данный автомат обладает только одним состоянием и принимает входную строку опустошением магазина. Стек используется для размещения текущей сентенции, первоначально это начальный символ грамматики. Очередная сентенция получается заменой верхнего нетерминала стека.
Вход: КС-грамматика Выход: МП-автомат Шаг 1. Положить Q = {q}, q0 = q, Z = Æ, N = VT È VN, T = VT, N0 = S. Шаг 2. Для каждого правила вида (А® Шаг 3. Для каждого t
Пример Дана КС-грамматика: G({+, (, ), a}, {S, A}, {S®S+A | A, A®(S) | a}, {S}). Последовательность построения МП-автомата будет иметь вид. 1) Q = {q}, q0 = q, T = {+, (, ), a }, N = {+, (, ), a, S, A}, N0 = S, Z = Æ. 2) F(q, 3) F(q, t, t) = (q,
Распознавание строки (а) построенным МП-автоматом представлено в таблице 3.1. Полученный МП-автомат является недетерминированным.
Таблица 3.1 – Распознавание МП-автоматом строки (а)
3.3.3.2 Построение расширенного МП-автомата по КС-грамматике
Построим МП-автомат, выполняющий правосторонний разбор. Данный автомат имеет единственное текущее состояние и одно заключительное состояние, в котором стек пуст. Стек содержит левую часть текущей сентенции. Первоначально в стек помещается специальный магазинный символ, маркер пустого стека #. На каждом шаге автомат по правилу грамматики замещает нетерминалом строку верхних символов стека или дописывает в вершину входной символ. Вход: КС-грамматика Выход: расширенный МП-автомат
Шаг 1. Положить Q = {q, r}, q0 = q, Z = {r}, N = VT È VN È {#}, T = VT, N0 = #. Шаг 2. Для каждого правила вида Шаг 3. Для каждого терминала Шаг 4. Предусмотреть магазинную функцию для перевода автомата в заключительное состояние Пример Для грамматики из предыдущего примера построить расширенный МП-автомат. Последовательность построения МП-автомата будет иметь вид. 1) Q = {q, r}, q0 = q, T = {+, (, ), a}, N = {+, (, ), a, S, A}, N0 = #, Z = r. 2) F(q, 3) F(q, t, 4) F(q, Распознавание строки (а) расширенным МП-автоматом представлено в таблице 3.2. Полученный МП-автомат является детерминированным.
Таблица 3.2 – Распознавание расширенным МП-автоматом строки (а)
Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 995; Нарушение авторского права страницы