Научная статья на тему 'Преобразование распознавателя с магазинной памятью и конечным множеством состояний в распознаватель с одним состоянием'

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

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

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

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

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

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

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

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

ПРЕОБРАЗОВАНИЕ РАСПОЗНАВАТЕЛЯ С МАГАЗИННОЙ ПАМЯТЬЮ И КОНЕЧНЫМ МНОЖЕСТВОМ СОСТОЯНИЙ В РАСПОЗНАВАТЕЛЬ С ОДНИМ

СОСТОЯНИЕМ

Ryazanov.iurij@yandex.ru

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

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

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

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

свободных языков используются распознаватели с магазинной памятью (МП-распознаватели) [1-7]. МП-распознаватель можно представить устройством, изображенным на рис. 1.

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

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

МП = (О", Ш, Г", Г, Р", Е", 3", X", до", ^, уо"),

где О - конечное множество состояний, О =

" " " "

{д0 , д1 ,..., дт }; ь - конечное множество входных символов, включающее концевой маркер , которым заканчивается входная цепочка; Г = О и {V} - конечное множество магазинных символов (равно множеству состояний, дополнен-

ному маркером дна магазина V); Г - конечное множество операций над головкой, Г = (сдвиг, держать). Операция сдвиг перемещает головку на одну позицию вправо, а держать - не изменяет положения головки; У - конечное множество операций над состоянием, У = {сост(д0"), сост(д"),..., сост(дт")}. Операция сост(д") обозначает переход в состояние д"; Р" - множество операций над магазином, Р" = {зам(у1), зам(у2), ... зам(у[), .}. Операция зам(у[) заключается в выталкивании верхнего символа из магазина и последовательном вталкивании симво-

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

пп

д0 - начальное состояние; q - допускающее

п

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

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

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

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

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

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

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

МП1 = (I1, Г\ I\ Р\ Е\ ё\ Л1, уо\

где I1 = 1п, Г1 = Г1, I1 = Г, Р1 = Рп, Е1 = Еп.

В МП1 только одно состояние, поэтому операция над состоянием не имеет смысла, функции переходов ё1 и выходов Л1 определяются как

ё1 : I1 х Г1 ^ I1 х Р1 и Л1 : I1 х Г1 ^ Е1 , а конфигурацией является двойка (а, у).

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

Пусть в конфигурации (д, аа, ху) определена функция переходов ёп, тогда в конфигурации (аа, дху) должна быть определена функция переходов ё1.

Если ёп (д, а, х) = (сдвиг, сост(р), зам(х)), то на /+1-ом шаге конфигурацией МП будет (р, а, ху), а ей в МП1 соответствует конфигурация (а, рху). Распознаватель МП1 сменит конфигурацию (аа, дху) на (а, рху), если ё1 (а, д) = (сдвиг, зам(р)).

Если ёп (д, а, х) = (держать, сост(р), зам(хг)), то на /+1-ом шаге конфигурацией МП будет (р, аа, гху), а ей в МП1 соответствует конфигурация (аа, ртху). Распознаватель МП1 сменит конфигурацию (аа, дху) на (аа, рху), если ё1 (а, д) = (держать, зам(гр)).

Если ёп (д, а, х) = (держать, сост(х), зам(£)), то на /+1-ом шаге конфигурацией МПп будет (х, аа, у), а ей в МП1 соответствует конфигурация (аа, ху). Распознаватель МП1 сменит конфигурацию (аа, дху) на (аа, ху), если ё1 (а, д) = (держать, зам(£)).

Если в конфигурации (д, аа, ху) распознавателя МПп определена функция выходов Лп и Лп (д, а, х) = отвергнуть, тогда в конфигурации (аа, дху) распознавателя МП1 должна быть определена функция выходов Л1 и Л1 (а, х) = отвергнуть.

Рассмотрим конфигурацию (#, Н , V) распознавателя МП, на которой определена функция выходов Лп и Лп (д, а, х) = допустить. Этой конфигурации в МП1 соответствует конфигурация ( Н , qV) в МП1, т. е. входная цепочка закончилась и в магазине только допускающее состояние. Для того, чтобы убедиться в том, что в магазине действительно только допускающее состояние, вытолкнем его из магазина (ё1 (( Н , q) = (держать, зам(е))) и получим конфигурацию ( Н , V), в которой функция выходов Л1 равна допустить (Л1 ( Н , V) = допустить).

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

Рассмотрим пример выполнения преобразования. МП-распознаватель с конечным множеством состояний можно задать таблицей (табл. 1), состоящей из четырех столбцов. В первом столбце указывается состояние, во втором -множество входных символов, в третьем - магазинный символ или пусто. Если МП-распознаватель находится в конфигурации (д, аа, ху) и в таблице есть строка, в которой в первом элементе (столбце) записано состояние д, во втором - множество, содержащее символ а, в третьем - символ х или пусто, то в четвертом столбце записаны действия, которые должен выполнить распознаватель. Для сокращения таблицы в четвертом столбце не указывается

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

В МП-распознавателе, представленном в табл. 1, состояние 1 - начальное, состояние 4 -допускающее, начальное содержимое магазина -магазин пуст.

В табл. 2 представлен протокол работы МП-распознавателя (табл. 1) при обработке цепочки

айейс-

МП-распознаватель с конечным множеством состояний

Таблица 1

Текущее состояние Входные символы Верх магазина Действия

1 а сдвиг, сост(З)

1 Ь, с, й, е сост(5), втолкнуть(2)

2 с сдвиг, сост(4)

3 й, е сост(9), втолкнуть(4)

4 й, е сост(9), втолкнуть(2)

4 - V допустить

5 Ь сдвиг, сост(6)

5 с 2 сост(2), вытолкнуть

5 й, е сост(9), втолкнуть(7)

6 й, е сост(9), втолкнуть(8)

7 й сдвиг, сост(8)

8 с 2 сост(2), вытолкнуть

8 а сдвиг, сост(5)

9 е сдвиг, сост(10)

9 й сдвиг, сост(11)

10 й, е сост(9), втолкнуть(11)

11 а, с, й, е, - 2 сост(2), вытолкнуть

11 а, с, й, е, - 4 сост(4), вытолкнуть

11 а, с, й, е, - 7 сост(7), вытолкнуть

11 а, с, й, е, - 8 сост(8), вытолкнуть

11 а, с, й, е, - 11 сост(11), вытолкнуть

Таблица 2

Протокол работы МП-распознавателя

Шаг Состояние Символ Магазин Действие

1 1 а V сдвиг, сост(З)

2 3 й V сост(9), втолкнуть(4)

3 9 й 4 V сдвиг, сост(11)

4 11 е 4 V сост(4), вытолкнуть

5 4 е V сост(9), втолкнуть(2)

6 9 е 2 V сдвиг, сост(10)

7 10 й 2 V сост(9), втолкнуть(11)

8 9 й 11 2V сдвиг, сост(11)

9 11 с 11 2 V сост(11), вытолкнуть

10 11 с 2 V сост(2), вытолкнуть

11 2 с V сдвиг, сост(4)

12 4 - V допустить

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

паре (а, х). Для того, чтобы не загромождать таблицу, операции держать и отвергнуть записывать не будем, а операцию зам(£) будем записывать как вытолкнуть. Начальным содержимым магазина МП-распознавателя (табл. 3) будет 1 V.

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

Ь с

одним состоянием

а

Таблица 3 1

зам (3) сдвиг зам (2 5) зам (2 5) зам (2 5) зам (2 5)

зам (4) сдвиг

зам (4 9) зам (4 9)

зам (2 9) зам (2 9) вытолкнуть

зам (6) сдвиг вытолкнуть зам (7 9) зам (7 9)

зам (8 9 зам (8 9)

зам (8)сдвиг

зам (5)сдвиг вытолкнуть

зам (11)сдвиг зам (10)сдвиг

зам (11 9) зам (11 9)

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

вытолкнуть вытолкнуть вытолкнуть вытолкнуть вытолкнуть

допустить

1 2

3

4

5

6

7

8

9

10 11 V

а

е

В табл. 4 представлен протокол работы МП-распознавателя (табл. 3) при обработке цепочки аёеёс\ . Сравнивая протоколы работы распознавателей можно сделать вывод о том, что на каждом шаге работы содержимое магазина МП-распознавателя с одним состоянием отличается от содержимого магазина МП-распознавателя с множеством состояний на соответствующем шаге только наличием в вершине магазина текущего состояния МП-распознавателя с множеством состояний.

Таким образом, в статье описаны правила преобразования МП-распознавателя с конечным

Протокол работы МП-расп

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

Таблица 4

вателя с одним состоянием

Шаг Символ Магазин Действие

1 а 1 V ЗАМ(З) СДВИГ

2 а 3 V ЗАМ(4 9) ДЕРЖАТЬ

3 а 9 4 V ЗАМ(11) СДВИГ

4 е 11 4 V ВЫТОЛК ДЕРЖАТЬ

5 е 4 V ЗАМ(2 9) ДЕРЖАТЬ

6 е 9 2 V ЗАМ(10) СДВИГ

7 а 10 2 V ЗАМ(11 9) ДЕРЖАТЬ

8 а 9 11 2 V ЗАМ(11) СДВИГ

9 с 11 11 2V ВЫТОЛК ДЕРЖАТЬ

10 с 11 2 V ВЫТОЛК ДЕРЖАТЬ

11 с 2 V ЗАМ(4) СДВИГ

12 4 V ВЫТОЛК ДЕРЖАТЬ

13 1 V ДОПУСТИТЬ

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

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. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. СПб.: «БХВ-Петербург», 2005. 471 с.

5. Ахо А., Лам М., Сети Р., Ульман Дж. Компиляторы. Принципы, технологии и ин-

струментарий. М: Издательский дом «Виль-ямс», 2008. 1185 с.

6. Серебряков, В.А. Теория и реализация языков программирования. М.: Физматлит, 2012. 233 с.

7. Поляков В.М., Рязанов Ю. Д. Алгоритм построения нерекурсивных программ-распознавателей линейной сложности по детерминированным синтаксическим диаграммам // Вестник БГТУ им. В.Г. Шухова. № 6. 2013. С. 194-199.

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

Ryazanov Yu.D.

TRANSFORMING OF THE PUSHDOWN RECOGNIZER WITH FINITE SET OF STATES INTO RECOGNIZER WITH ONE STATE

In this article the recognition of the problem of context-free languages is considered. Pushdown recognizers are used for its decision, which can have a finite set of states. In this work the class ofpushdown recognizers and a finite set of states which can be transformed to equivalent recognizers with pushdown memory and one state without increase in power of a set of pushdown symbols. Their formal descriptions are given and on their basis rules of performance of transformation are provided. The example of transformation of the recognizer with final number of states to the recognizer with one state is presented. The records recognizers work at processing an input string, are given validating the executed transformations.

The recognizer with one state in the course of recognition analyzes only the input string and the contents of the pushdown memory. It allows to reduce the number of parameters defining behavior of the recognizer with pushdown memory. The recognizer with one state has more compact idea, than the recognizer with a final set of states.

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

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

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

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