Научная статья на тему 'Уменьшение количества лишних переходов и состоянийв распознавателях с магазинной памятью'

Уменьшение количества лишних переходов и состоянийв распознавателях с магазинной памятью Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
31
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНТЕКСТНО-СВОБОДНЫЙ ЯЗЫК / РАСПОЗНАВАТЕЛЬ С МАГАЗИННОЙ ПАМЯТЬЮ / СОСТОЯНИЕ / ПЕРЕХОД / ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Рязанов Ю.Д.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Уменьшение количества лишних переходов и состоянийв распознавателях с магазинной памятью»

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

001: 10.12737/22254

Рязанов Ю.Д., аспирант

Белгородский государственный технологический университет им. В.Г. Шухова

УМЕНЬШЕНИЕ КОЛИЧЕСТВА ЛИШНИХ ПЕРЕХОДОВ И СОСТОЯНИЙВ РАСПОЗНАВАТЕЛЯХ С МАГАЗИННОЙ ПАМЯТЬЮ

Ryazanov.iurij@yandex.ru

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

Ключевые слова: контекстно-свободный язык, распознаватель с магазинной памятью, состояние, переход, эквивалентные преобразования._

Введение. Задача распознавания языка заключается в определении принадлежности заданной цепочки заданному языку. Для распознавания контекстно-свободных языков используются распознаватели с магазинной памятью (МП-распознаватели) [1-6]. В работе рассматривается один из классов МП-распознавателей с конечным множеством состояний. В процессе обработки входной цепочки МП-распознаватель переходит из одного состояния в другое и выполняет связанные с этим переходом действия. В множестве переходов МП-распознавателя можно выделить лишние переходы, которые никогда не срабатывают, а в множестве состояний - лишние состояния, в которых не может оказаться МП-распознаватель в процессе обработки допустимой цепочки. Такие переходы и состояния нужно исключать из МП-распознавателя. В работе предлагается алгоритм поиска и исключения лишних переходов и состояний, основанный на представлении МП-распознавателя в виде графа [6-9].

Решение задачи исключения лишних состояний в конечных распознавателях известно [10] и основано на применении алгоритмов поиска в графе распознавателя. Для МП-распознавателей такой подход также применим, но только в случае, когда в МП-распознавателе нет лишних переходов. Поэтому основное внимание в работе уделено поиску лишних переходов.

Определение распознавателя с магазинной памятью и конечным множеством состо-

яний. В работе будем рассматривать класс МП-распознавателей [11, 12], которые можно построить по диаграммам Вирта [11] или синтаксическим диаграммам с многовходовыми компонентами [13]. МП-распознаватель из этого класса формально можно представить следующим образом:

М = (б, Х,Г, I, Б, Р, Ж, 3, А, до, Уо),

где б - конечное множество состояний, б = {д0, д\,...,дт q};

X - конечное множество входных символов, включающее концевой маркер , которым заканчивается входная цепочка;

Г = б и {V} - конечное множество магазинных символов (равно множеству состояний, дополненному маркером дна магазина V);

I - конечное множество операций над головкой, I = (сдвиг, держать). Операция сдвиг перемещает головку на одну позицию вправо, а держать - не изменяет положения головки;

Б - конечное множество операций над состоянием, 8 = {сост(д0), сост(д\),...,сост(дт)}. Операция сост(дг) обозначает переход в состояние д{;

Р - множество операций над магазином, Р = {втолк(д0), втолк (д{),...,втолк (дт), вытолк, не изменять}.

Ж - конечное множество значений выхода, Ж = {допустить, отвергнуть};

д0 - начальное состояние, д0&б;

q - допускающее состояние, qeQ;

у0 - начальное содержимое магазина, у0 = Vq (магазин содержит маркер дна и допускающее состояние);

6 : Q х X х Г ^ I х х Р - частичная функция переходов, которая состоянию, символу входной цепочки (находящемуся под головкой) и верхнему символу магазина ставит в соответствие операцию над головкой, состоянием и магазином, причем множество видов значений на тройке (дт, х, д)) равно {(сдвиг, сост(дп), не изменять), (держать, сост(дп), втолк(дг)), (держать, сост(д), вытолк)}. Если значение функции на тройке (дт, х, д)) равно (сдвиг, сост(дп), не изменять), то такой переход будем обозначать (дт, (х, дп), если значение функции на этой тройке равно (держать, сост(дп), втолк(дг)), то переход обозначим (дт, (х, ^(дг)), дп), если же значение на этой тройке равно (держать, сост(д)), вытолк), то переход обозначим (дт, (д), Т), д)

X : Q х X х Г ^ Ж - частичная функция выходов, которая состоянию, символу входной цепочки (находящемуся под головкой) и верхнему символу магазина ставит в соответствие значение выхода - допустить или отвергнуть. Значение функции на тройке (д, ^ , V) равно допустить, а на всех остальных, на которых функция определена -отвергнуть.

Области определения функций 6 и X не пересекаются, а их объединение равно области отправления.

Тройка (дт, а, Vy), где дт - состояние, а -часть входной цепочки, начиная с символа под головкой и заканчивая концевым маркером, у -содержимое магазина, называется конфигурацией МП-распознавателя. Исходной конфигурацией является (д0, а0, Vq), где а0 - вся входная цепочка (головка находится над первым символом).

Пусть конфигурацией МП-распознавателя является тройка (дт, ха, Vyg)), где х - символ под головкой, д) - верхний символ магазина. Если на тройке (дт, х, д)) определена функция переходов 6, то ее значение определяет операции над головкой, состоянием и магазином. При выполнении этих операций конфигурация изменяется. Если на тройке (дт х, д)) определена функция выходов X, то процесс распознавания заканчивается с результатом, равным значению функции X. Такую конфигурацию назовем заключительной. Итак, работа МП-распознавателя заключается в изменении конфигураций. Последней является заключительная конфигурация, в которой определяется результат распознавания.

МП-распознаватель можно представить в виде взвешенного ориентированного мульти-графа, вершины которого соответствуют состояниям, а дуги - переходам. Начальное состояние будем показывать неотмеченной стрелкой, а допускающее состояние - жирным кружком. Переходу (дт, (х, дп) соответствует дуга из вершины дт в вершину дп, отмеченная меткой (х, переходу (дт, (х, ^(Чг)), дП) - дуга из вер-шиныдт в вершину дп, отмеченная меткой (х, ^(дг)), а переходу (дт, (Ч), Т), д)) - дуга из вершины дт в вершину д), отмеченная меткой(д), Т). На рис. 1 приведен пример графа МП-распознавателя.

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

1) переход (дт, (х, ^), дп) или (дт, (х, ^(д^), дп) принадлежит первому классу, если не существует входной цепочки, при обработке которой МП-распознаватель будет находиться в состоянии дт и анализировать символ х;

2) переход (дт, (дп, Т), дп) принадлежит второму классу, если не существует входной цепочки, при обработке которой МП-распознаватель будет находиться в состоянии дт и вверху магазина будет дп.

В множестве лишних состояний можно выделить два подмножества: недостижимые и избыточные.

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

Состояние дт принадлежит подмножеству избыточных, если из состояния дт МП-распознаватель не при каких условиях не может перейти в допускающее состояние.

Исключение лишних переходов может привести к появлению лишних состояний. В графе МП-распознавателя лишние состояния удаляются вместе с входящими и выходящими дугами.

Алгоритм уменьшения количества лишних переходов и состояний. Для решения задачи уменьшения количества лишних переходов и состояний определим переход как подозреваемый, если есть вероятность, что он лишний.

Любой переход вида (дт, (дп, Т), дп) считаем подозреваемым, так как для его срабатывания в магазине должен быть символ дп, но если символа дп не может быть в магазине, когда МП-распознаватель находится в состоянии дт, то этот переход лишний.

а, ¿(12) 2 )-И 4

а,^

■М 1

Ь,^

,¿(10)

ЬМ12)

Ь,^

Ь,^

10

а

10,Т

12,Т

Рис. 1. Граф МП-распознавателя

Переход вида (дт, (х, д„) или (дт, (х, ¿(дЛ), дп) считаем подозреваемым, если не существует перехода в состояние дт с выполнением операции сдвиг. Если на переходе в состояние дт выполняется сдвиг, то следующим символом, анализируемым в состоянии дт, может быть любой символ алфавита, в том числе и символ х, и переход сработает.

Идея алгоритма исключения лишних переходов заключается в следующем. Подозреваемые переходы исключаем из МП-распознавателя и сохраняем в некотором множестве. Затем, если подозрение для некоторого перехода опровергается, переход возвращается в МП-распознаватель.

Исключенный переход вида (дт, (х, дп) или (дт, (х, ¿(д^)), дП) возвращается в МП-распознаватель, если в графе распознавателя существует путь от начальной вершины до дт и существует цепочка а, при обработке которой срабатывают переходы, соответствующие этому пути, и, при достижении состояния дт текущим символом в цепочке а будет символ х.

Исключенный переход вида (дт, (дп, Т), дп) возвращается в МП-распознаватель, если в графе распознавателя существует путь от начальной вершины до дт и на этом пути есть переход (х, ¿(дП)), дг), который вталкивает в магазин символ дп, необходимый для срабатывания перехода (дт, (дп, Т), дп).

Возвращение некоторых переходов может сделать истинными условия для возвращения

других переходов, поэтому выполнение алгоритма продолжается, пока возвращаются удаленные переходы в МП-распознаватель.

В алгоритме будем использовать:

1) множество X — входной алфавит МП-распознавателя;

2) для каждого состояния дт множество М(дт), в котором будут накапливаться символы входного алфавита, которые могут быть текущими в обрабатываемой цепочке, когда МП-распознаватель находится в состоянии дт;

3) множество М1 состояний, из которых существуют переходы с выталкиванием магазинного символа;

4) множество М2 состояний, из которых существуют переходы с вталкиванием символа в магазин;

5) отношение Е, элементы которого соответствуют переходам МП-распознавателя;

6) отношение ЕТ, представляющее собой транзитивное замыкание отношения Е;

7) множество В, в котором сохраняются исключенные из МП-распознавателя переходы.

В п.1 алгоритма (см. ниже) выполняется инициализация множеств и исключение подозреваемых переходов, в п.2 - возвращение подозреваемых переходов, для которых подозрение опровержено, в п.3 - исключение лишних состояний.

Поиск лишних состояний выполняется по отношению ЕТ. Если (д0, дт)£ЁГ, то состояние дт

а

недостижимо, а если (дт, q)ёЕ , то состояние дт избыточно.

Алгоритм исключения лишних состояний.

1. Для каждого состояния дт МП-распознавателя выполнить: М(дт) := 0.

Для начального состояния д0 выполнить: М(до) :=Х.

Для всех переходов вида (дт, (х, дп) выполнить: М(дп) := Х.

Сформировать множество М1 = {дт | существует переход (дт, (дп, Т), дп)}.

Сформировать множество М2={дт1 существует переход (дт, (х, д))), дп)}.

Все переходы вида (дт, (дп, Т), дп) исключить из МП-распознавателя и сохранить

в множестве О.

Переход вида (дт, (х, дп) исключить из МП-распознавателя и сохранить в множестве О, если х ё М(дт). Переход вида (дт, (х, ^(дЛ), дп) исключить из МП-распознавателя и сохранить в множестве О, если х ё М(дт). Сформировать отношение Е={(дт, дп)\ существует переход (дт, (х, дп) или (дт, (х, ^(д))), дп)}.

2. Вычислить ЕТ.

Для всех дт и дп выполнить:

если (д0, дт) е Е и существует переход (дт, (х, ^(д))), дп), то М(д„) :=М(д„) и {х}. Повторять

а,1(12) 2 )---К 4

2,^(8)

а

с,^

-И 1

Ь,^

,¿(10)

ЬЛ(12)

3 )-И 7

Для всех дт и дп выполнить:

если (д0, дт) е ЕТ и существует переход (дт, (дп, Т), дп), то М(дп) :=М(дп) и М(дт) пока множества М изменяются. Для всех дт и дп выполнить:

если (д0, дт) е ЕТ и (дт, (х, ^), дп) е О и х е М(дт),

то переход (дт, (х, дп) исключить из О и включить в МП-распознаватель, пару (дт, дп) включить в отношение Е. Для всех дг, дт е М1, д) е М2 выполнить: если (д0, д)) е ЕТ и существует переход (д), (х, дп)), дг) и (дг, дт) е ЕТ и (дт, (дп, Т), дп) е О, то переход (дт, (дп, Т), дп) исключить из О и включить

в МП-распознаватель,

пару (дт, дп) включить в отношение

Е.

Если Е изменилось, выполнить п.2.

3. Для всех дт и дп выполнить:

если (д0, дт) ё ЕТ, или (дт, q) ё ЕТ, то состояние дт удалить.

Пример. Рассмотрим выполнение алгоритма на примере МП-распознавателя, представленного графом на рис. 1.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

После выполнения п.1 алгоритма получим МП-распознаватель, представленный графом на рис. 2, после выполнения п.2 - на рис. 3, а после выполнения п.3 - на рис. 4.

а

-И 9

12 )-►

О

Ь,^

Рис. 2. Граф МП-распознавателя после выполнения п. 1 алгоритма

а

а, ¿(12) 2 )-И 4

а

-41

ь,^

=,¿(8)

а

с,^

9

,¿(10)

¿,¿(12) 3 )-И 7

Ь,^

Ь,^

10

а,^

10,Т

12,Т

12 )-►

О

1

Ь,^

Рис. 3. Граф МП-распознавателя после выполнения п.2 алгоритма

12

г,¿(10)

Ь,¿(12)

Ь,^

Ь,^

10

а

10,Т

12,Т

•О

Рис. 4. Граф МП-распознавателя

В результате выполнения п.1 из МП-распознавателя исключены переходы из состояний 9 и 11 с операцией вытолкнуть и переходы из состояний 4 и 7, так как в эти состояния не входят дуги с операцией сдвиг.

При выполнении п.2 восстанавливается переход (7, (Ь, 6), так как состояние 3 достижимо из начального и есть переход (3, (Ь, ¿(12)), 7). Теперь состояние 6 достижимо и есть переход (6, (а, ¿(10)), 7), поэтому восстанавливается переход (7, (Ь, 11). Состояние 11 стало достижимым и в графе МП-распознавателя существует путь от начального состояния 1 до состояния 11 с переходами (3, (Ь, ¿(12)), 7) и (6, (а, ¿(10)), 7), поэтому вос-

после выполнения п.3 алгоритма станавливаются переходы (11, (10, Т),10) и

(11, (12, Т), 12).

Переходы из состояния 4 не восстанавливаются, так как в него существует единственный переход (2, (а, ¿(12)), 4) из достижимого состояния и его недостаточно для восстановления переходов (4, (Ь, 5) и (4, (с, 8). Переходы из состояния 9 не восстанавливаются, так как оно недостижимо из начального.

После выполнения п.2 в МП-распознавателе состояния 5, 8 и 9 недостижимые, а состояния 2, 4, 5, 9 — избыточные (рис. 3), поэтому они удаляются при выполнении п.3 алгоритма.

Выводы. В статье представлен алгоритм, который позволяет уменьшить количество лиш-

а

q

них переходов и состояний, но не гарантирует получение МП-распознавателя без лишних переходов и состояний. Например, в МП-распознавателе (рис. 5) лишними являются пе-

Н 1

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

БИБЛИОГРАФИЧЕСКИЙСПИСОК

1. Schutzenberger M.P. "On context-free languages and pushdown automata", Information and Control 6:3 (1963), pp. 246-264.

2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. М.: Мир, 1978. Т. 1. 612 с.

3. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов. М.: Мир, 1979. 656 с.

4. Мартыненко Б.К. Синтаксически управляемая обработка данных. Изд. 2-е, дополн. СПб: Изд-во С.-Петербургского университета, 2004 г. 317 с.

5. Ахо А, Лам М., Сети Р., Ульман Дж. Компиляторы. Принципы, технологии и инструментарий. М: Издательский дом "Вильямс", 2008. 1185 с.

6. Hopcroft J.E., Motwani R., J.D. Ullman J.D. Introduction to Automata Theory, Languages, and Computation (3rd ed.). Pearson., 2013. p. 496.

реходы (1, ((b, ¿(4)), (3, (b, 4) и (4, (3, t), 3) и состояние 4, но они не обнаруживаются и не устраняются этим алгоритмом.

7. Белоусов А.И., Ткачев С.Б. Мультигра-фовое представление автоматов с магазинной памятью // Наука и образование: научное издание МГТУ им. Н.Э. Баумана. 2012. № 9. С. 11.

8. Станевичене Л.И. Графы магазинных автоматов // Учредительная конф. Российской ассоциации "Женщины-математики". Тез. докл. М. 1993(а). С. 50

9. Вылиток А.А. О построении графа магазинного автомата // Вестн. Моск. ун-та. Сер. 15. 1996. № 3. С. 68-73.

10. Брауэр В. Введение в теорию конечных автоматов М.: Книга по Требованию, 2012. С. 272.

11. Рязанов Ю. Д. Синтез распознавателей с магазинной памятью по детерминированным синтаксическим диаграммам // Вестник ВГУ. Системный анализ и информационные технологии. 2014. №1. С. 138-145.

12. Рязанов Ю. Д., Савёлова И. Н. Преобразование распознавателя с магазинной памятью и одним состоянием в распознаватель с конечным множеством состояний // Моделирование, оптимизация и информационные технологии. 2015. № 4 (11). С. 13.

13. Polyakov V.M., Ryazanov YD. Virt Charts to Multiport Component Syntactic Charts Transformation // Global Journal of Pure and Applied Mathematics. 2015. Т. 11. № 5. С. 3939-3952.

Ryazanov Yu.D.

REDUCE THE NUMBER OF UNNECESSARY TRANSITIONS AND STATES IN THE PUSHDOWN RECOGNIZER

The article considers the problem of reducing the number of states of the pushdown recognizer by eliminating unnecessary transitions that never work, and eliminating unnecessary states in which cannot be recognizer in processing a valid chain. There are suggested a search algorithm of unnecessary transitions and states, based on the representation of recognizer as a graph. The article demonstrates the example of recognizer in which the proposed algorithm eliminates unnecessary transitions and states. This algorithm does not guarantee elimination of all unnecessary transitions and states. The article demonstrates the example of recognizer with unnecessary transitions and states that are not detected by the algorithm. The proposed algorithm can be used at software design the processing for formal languages.

Key words: context-free language, pushdown recognizer, state, transition, equivalent transforming.

Рязанов Юрий Дмитриевич, аспирант кафедры программного обеспечения вычислительной техники и автоматизированных систем.

Белгородский государственный технологический университет им. В.Г. Шухова. Адрес: Россия, 308012, Белгород, ул. Костюкова, д. 46. E-mail: Ryazanov.iurij@yandex.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.