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

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

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

Аннотация научной статьи по математике, автор научной работы — Белоусов А. И., Ткачев С. Б.

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

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

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

НАУЧНОЕ ИЗДАНИЕ МГТУ ИМ. Н. Э. БАУМАНА

НАУКА и ОБРАЗОВАНИЕ

Эл № ФС77 - 48211. Государственная регистрация №0421200025. ISSN 1994-0408

электронный научно-технический журнал

Построение контекстно-свободной грамматики

по мультиграфу автомата с магазинной памятью

# 07, июль 2014

DOI: 10.7463/0714.0717777

Белоусов А. И.1, Ткачев С.Б.1,2а

УДК 519.76

1Россия, МГТУ им. Н.Э. Баумана 2Россия, ИСА РАН as tkachev@bmstu.ru

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

Ключевые слова: автомат с магазинной памятью; МП-автомат; ориентированный мультиграф; контекстно-свободная грамматика; КС-грамматика; сбалансированный путь; поиск в глубину

Введение

В последние годы контекстно-свободные грамматики [1,2] используются не только для решения традиционных задач, связанных с построением и анализом различных формальных языковых конструкций, но и для разработки средств поиска информации в сети Internet [3], а также для конструирования алгоритмов управления роботехническими системами [4, 5]. Например, при синтезе двухуровневой системы управления робототехнической системой КС-грамматика оказалась удобным инструментом для решения задачи логического управления на верхнем уровне.

В [5] предложен подход к решению задач управления нелинейными системами с использованием конечных автоматов. Отметим, что метод нахождения языка, допускаемого конечным автоматом, а также метод построения соответствующей регулярной грамматики хорошо известны [1,2].

Использование для синтеза алгоритмов управления автоматов с магазинной памятью (МП-автоматов) позволяет существенно расширить круг решаемых задач. В случае, когда объектом анализа является МП-автомат, метод построения по нему КС-грамматики также известен [1, 2], однако получающаяся грамматика является весьма громоздкой с большим числом бесполезных нетерминалов.

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

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

1. Постановка задачи оптимизации КС-граматики

Следуя [1], рассмотрим некоторый МП-автомат

М = «,У, Т,до

где < — множество состояний МП-автомата; V — терминальный алфавит; Г — нетерминальный алфавит; q0 Е < — начальное состояние; ^ С < — множество заключительных состояний; Z0 — начальный магазинный символ; 5 — система команд МП-автомата.

Напомним, что при построении КС-грамматики по системе команд МП-автомата по команде

qaZ ^ г7, (1)

где q € < — состояние МП-автомата; а Е V — символ терминального алфавита; Z Е Г — магазинный символ; г € < — состояние МП-автомата, 7 € Г* — цепочка, которая замещает в магазине символ Z, при непустой цепочке 7 = 7(1) 7(2) ... 7(к), к > 0, строится система КС-правил вида

[qZ.Sk] ^ а[г7(^^[зо^^]... ^к-17(к)вк] (2)

для всех возможных кортежей состояний МП-автомата (з1, ..., зк) размерности к.

В каждом КС-правиле вида (2) в качестве нетерминалов КС-грамматики рассматриваются тройки вида ^Хг], где q, г € <, а X Е Г — магазинный символ. Таким образом, по одной команде (1) строится система из |<|к правил (2), причем многие из вводимых таким образом нетерминалов-троек вида ^Хг] оказываются бесполезными. Поэтому значительный интерес представляет задача разработки алгоритма, позволяющего исключать из рассмотрения бесполезные нетерминалы и соответствующие им КС-правила на этапе построения КС-грамматики.

В пособии [7] приведен алгоритм, позволяющий получить весьма простую КС-грамматику по заданному МП-автомату. Однако для использования этого алгоритма предварительно требуется преобразовать систему команд МП-автомата к некоторому специальному виду. Та-

ким образом, проблема оптимизации КС-грамматики заменяется проблемой преобразования к требуемому виду системы команд МП-автомата, но соответствующий алгоритм в [7] не рассматривается.

2. Основной принцип оптимизации

Перейдем к решению задачи оптимизации КС-грамматики с правилами вида (2). Будем предполагать, что для анализируемого МП-автомата по методу, предложенному в [6], построен соответствующий ему мультиграф, в котором дуге (д, г) мультиграфа, соответствующей команде вида (1), поставлена в соответствие метка дуги а, 7).

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

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

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

При этом в определенных случаях логика построения системы команд МП-автомата позволяет для оптимизации КС-грамматики применить такой прием: при рассмотрении очередной команды МП-автомата и построении по ней правила КС-грамматики не вводить таких новых нетерминалов-троек вида [рХд], которые не фигурируют в КС-правилах частично построенной к данному шагу оптимизированной грамматики.

Рассмотрим некоторые примеры.

Пример 1. На рис. 1 изображен мультиграф МП-автомата, допускающего язык Ь1 = = {апЪп | п > 1}, со следующей системой команд:

д0 aZ ^ д0 aZ, до а а ^ д0 аа,

до Ъа ^ <21 А,

д1 Ъа ^ д1А, д1 А Z ^ д2А.

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

а

е1

г\ а.г

Рис. 1

Следуя алгоритму, приведенному в [1, с. 647], построим КС-грамматику по МП-автомату. Она будет включать следующие правила:

5 ^ [до^Фг],

[50^52] ^ а[доаз1][з1^2], [доа^г] ^ а[доа^П^а^], [до«Ф1] ^ Ь, [ф1аф1] ^ Ь, [Ф1^Ф2] ^ A,

где 5 — аксиома, а второе и третье правила — групповые, соответствующие каждой упорядоченной паре состояний , 52) и включающие каждое по девять правил.

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

Заметим, что из состояния д0 выходят две дуги с начальной магазинной меткой а: петля е2 = (д0,д0) и дуга е3 = (д0,д1). Если в качестве значения параметра 51 выберем д0, то тогда следует искать дугу (д0, 52) с начальной магазинной меткой Z. Но это может быть только петля е1, которая, как нетрудно видеть, не сцепляется с петлей е2. Следовательно, нужно положить = д1, выбрав тем самым дугу е3. Тогда остается признать, что состояние 52 необходимо выбрать как д2. Соответствующий сбалансированный путь есть, например, е1е3в5 с допуском входной цепочки аЬ.

Итак, из второй строки записанной выше системы правил остается только одно правило (из девяти возможных):

[ф^2] ^ а[д0аф1][д^д2].

Переходим к третьей строке системы правил грамматики. Согласно сформулированному выше принципу оптимизации, возможны такие варианты:

[ф0аф1] ^ а[д0аф1][ф1ад1]

(дуги ез и еД

[Ф0ад1] ^ а[ф0ад0][ф1ад1]

(дуги е2 и е3).

Во втором случае возникает нетерминал [доадо], который может быть «раскрыт» только таким правилом:

[доадо] ^ а[доадо][доадо].

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

Приведем вывод цепочки апЬп в оптимизированной грамматике:

S - [до^д2] - а[доад:][д1^д2] - ... -

п— 1 раз

- аап—1[доад1][д1ад1]п—1[д1^д2] - апЬ[д1ад1]п—^д^] -п апЬп.

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

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

Следовательно, построенная оптимизированная грамматика эквивалентна грамматике, построенной стандартным алгоритмом.

Пример 2. Рассмотрим МП-автомат со следующей системой команд:

д0 а Z ^ д1 а2, д1 а а ^ д1 аа, д1 Ьа ^ д2 X, д2 Ьа ^ д2 X, д2 X Z ^ до X, до X Z ^ до X.

(см. [1], пример 8.17; начальное и заключительное состояние МП-автомата — до). Этот МП-автомат, как и автомат, приведенный в примере 1, допускает язык Ь2 = {апЬп | п > 0}. Мультиграф изображен на рис. 2.

Рис.2

Построим КС-грамматику по стандартному алгоритму:

5 ^ [^20],

[qоZs2] ^ а[д1аз1][з^2], [ф1а^2] ^ а[ф1 а51][51а52],

[Ф1аф2] ^ Ь, [д2ад2] ^ Ь, [д2^до] ^ А [qоZqо] ^ А.

где второе и третье правила распространяются на все упорядоченные пары (^1, 52) из множества состояний {д0, д1, д2}.

Нетрудно видеть, что для второй строки получаем единственный вариант: = д2, 52 = д0 (дуги е4 и е6, лежащие на сбалансированном пути).

Для третьей строки, используя принцип недобавления новых нетерминалов, будем иметь: = 52 = д2. Можно видеть, что попытка ввести здесь нетерминал [д1ад1] также приведет к появлению бесполезного нетерминала. Таким образом, остается одно правило

[Ф1аф2] ^ а[ф1ад2][ф2ад2].

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

Пример 3. Рассмотрим МП-автомат, распознающий палиндромы в алфавите {а, Ь}, заданный следующей системой команд:

1 до А Z ^ д2 А,

2 д0 а Z ^ д0 aZ | д1 Z,

3 до ЬZ ^ до ^ | д1 Z,

4 д0 а а ^ д0 аа | д1 а | д1 А,

5 д0 а Ь ^ д0 аЬ | д1 Ь,

6 д0 Ьа ^ д0 Ьа | д1 а,

7 до ЬЬ ^ до ЬЬ | д1 Ь | д1 А,

8 д1 А Z ^ д2 А.

Здесь д0 — начальное состояние, д2 —заключительное состояние. Команда (1) допускает пустое слово, первая команда второй строки читает первую букву а в магазин, вторая команда этой строки предназначена для допуска однобуквенного палиндрома а. Команды третьей строки делают то же самое для буквы Ь. Команды строки (4) читают букву а в магазин с верхним символом а, «угадывают» середину нечетной и четной цепочки соответственно. Аналогично для буквы Ь предназначены команды строки (7). Строки (5) и (6) читают в магазин одну из букв, когда в верхушке магазина находится другая буква, и «угадывают» середину палиндрома нечетной длины. Команда (8) — команда окончательного допуска непустой цепочки.

Мультиграф МП-автомата представлен на рис. 3. Здесь некоторые дуги объединены. Номера дуг и соответствующие метки указаны к скобках. Совпадающие компоненты меток повторены только один раз.

Рис.3

Строим КС-грамматику:

1 5 ^ [90^92],

2 [90^2] ^ а[9оаз1][в1^2],

3 [90^52] ^ б^б^]^^],

4 [90^2] ^ а[9оа^П^а^],

5 [90^2] ^ б^б^]^^],

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

6 [90^2] ^ б^б^П^а^],

7 [90^52] ^ а^аЗ^^],

8 [90ав1] ^ а[91 ав1],

9 [90^51] ^ Ь[91Й51],

10 [906^] ^ б^б^],

11 [90^1] ^ а^б^],

12 [90^1] ^ а [91^81 ],

13 [90^1] ^ ^[91^81],

14 [90^92] ^ Л,

15 [91^92] ^ Л,

16 [90а91] ^ а,

17 [90691] ^ 6,

18 [91а91] ^ а,

19 [90691] ^ а,

Здесь правила 2-13 групповые. Первые шесть задают по девять правил, а последующие шесть — по три правила. Взять петлю е3 в качестве дуги, исходящей из вершины 90 и имеющей начальную магазинную метку а, нельзя, так как тогда (т.е. при = 90) придется использовать петлю е1, но путь е3е1 не имеет магазинной метки и потому не может лежать ни каком сбалансированном пути. Тогда для строки (2) следует оставить правило

[90^92] ^ а[90а91][91^92].

Рассуждая далее подобным образом, получим следующую оптимизированную грамматику:

1 5 - [qоZq2]

2 [до^2] - -»■ а[доадl][дlZд2],

3 [доЗД - Ь[доЬдl][дlZд2],

4 [доад1] - а[доад1][д1ад1],

5 [доЬд1] - » Ь[доЬд1][д1Ьд1],

6 [доад1] - Ь[доЬд1][д1 ад1],

7 [доЬд1] - » а[доад1][д1Ьд1],

8 [доад1] - а[д1ад1],

9 [доад1] - Ь[д1ад1],

10 [доЬд1] - » Ь[д1Ьд1],

11 [доЬд1] - » а[д1Ьд1],

12 [до^2] - -»■ a[дlZд2 ],

13 [доZд2] - Ь[дlZд2],

14 [доZд2] - А,

15 [дlZд2] - А,

16 [доад1] - а,

17 [доЬд1] - Ь,

18 [д1ад1] - а,

19 [доЬд1] - а.

Порождение произвольного палиндрома (отличного от пустого и однобуквенного слова) происходит следующим образом. Применяем правила (2) или (3) — в зависимости от первой буквы. Затем, произвольно чередуя (4)-(7), порождаем произвольный терминальный префикс. Например:

5 Ь [qоZq2] Ь а[доад1][д^д2] Ь аа[доад1][д1 ад1 ][дlZд2] Ь

Ь ааЬ[доЬд1 ][дlадl][дlадl][дlZд2] Ь ааЬа[доад1][д1Ьд1][д1ад1][д1ад1][д^д2] Ь

Ь ааЬаЬ[доЬд^ад^д^][дlaдl][дlaдl][дlZд2].

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

В данном примере следует применить правило (17). Тогда в итоге, после "сбрасывания" всех скобок получим слово ааЬаЬЬаЬаа.

Если же порождается слово нечетной длины, то самый левый нетерминал следует заменить согласно одному из правил (8)—(11) (это соответствует "угадыванию" средней буквы слова). В примере могут быть применены правила (10) или (11). Тогда порождаются в итоге слова ааЬаЬЬЬаЬаа и ааЬаЬаЬаЬаа соответственно.

Таким образом, можно показать, что все палиндромы в алфавите (а, Ь} порождаются оптимизированной грамматикой и что тем самым она эквивалентна исходной, поскольку не содержит никаких правил, не принадлежащих множеству правил исходной грамматики.

3. Алгоритм поиска сбалансированных путей

Метод поиска сбалансированных путей аналогичен поиску в глубину в обычном ориентированном графе (см. [1]). Сама процедура поиска является рекурсивной. Дуги помещаются в стек в порядке их прохождения. Как только обнаруживается уже пройденная дуга, фиксируется контур и управление передается специальной процедуре анализа контуров. Исключение составляют петли с пустой магазинной меткой.

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

Переходим к описанию алгоритма. Напомним, что понятие сцепления магазинных меток дуг и путей введено в работе [6]. Пример нахождения сцепления приведен ниже (см. пример 4).

Начало

1 Все дуги пометить как новые;

2 Для всех стартовых дуг выполнять:

начало

3 Поместить в СТЕК;

4 Если магазинная метка дуги не пуста, то снять отметку "новая";

5 Путь := стартовая дуга;

6 Текущая метка := магазинная метка дуги;

7 Текущая длина := длина(Текущая метка);

8 Метка пути := Текущая метка;

9 Вызвать процедуру МЕТКА (Путь, Текущая метка); конец

Конец

Процедура МЕТКА (Путь, Метка);

1 Для всех Дуг, сцепляющихся с Путем выполнять:

2 Если Дуга новая, то начало

3 Поместить Дугу в СТЕК;

4 Если Магазинная метка Дуги не пуста, то снять отметку "новая";

5 Путь: = Путь + Дуга;

6 Метка:= Метка "сцепить" Магазинная метка дуги;

7 Текущая длина := Текущая длина + длина(Магазинная метка) дуги - 1;

8 Вызвать процедуру МЕТКА (Путь, Метка); конец

9 иначе вызвать процедуру КОНТУР (Путь, Дуга);

10 Удалить Дугу из СТЕКА; Конец МЕТКА

Процедура КОНТУР (Путь, Дуга);

1 Считать из СТЕКА (без изменения содержимого) все дуги вплоть до данной Дуги; (это

будут дуги, образующие найденный контур)

2 Вычислить магазинную метку контура;

3 Проверить условие самосцепляемости контура (входная магазинная метка его первой дуги

совпадает с первым символом его магазинной метки);

4 Если условие выполняется, то выйти из процедуры; иначе

начало

5 Если магазинная метка контура равна пустой цепочке, то начало

6 Запомнить длину Пути;

7 Пройти контур еще раз;

8 Если новая длина окажется меньше запомненной в п. 5, то проходить контур, пока

выполняется условие сцепляемости с пройденным путем;

конец конец Конец КОНТУР

Пример 4. Обратимся к мультиграфу на рис. 3. Выбираем стартовую дугу e1 (другие стартовые дуги — e2, e14, e15, е16). С ней сцепляются дуги с входной магазинной меткой a: e3, e5, e8, e1o. Продолжаем с дуги e3: вычисляем магазинную метку пути e1e3 (длину метки специально здесь указывать не будем):

aZ 0а (аа) = aa(a-1aZ) = aaZ.

С полученной меткой сцепляется любая дуга с входной магазинной меткой а, в частности снова дуга e3. Но поскольку один раз эта дуга, представляющая из себя самосцепляющийся контур, была пройдена, то выбираем дугу e5. Имеем метку пути e1e3e5

aaZ 0а (ba) = baaZ.

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

baaZ ®b (bb) = bbaaZ.

Далее, игнорируя сцепление петли e4 с собой, переходим к дуге e6 и вычисляем метку пути

е1езе5е4ее:

bbaaZ ®b (ab) = abbaaZ.

Полученный путь может быть сцеплен с любой дугой с входной магазинной меткой а, начиная с дуги e3. Тем самым зафиксирован контур e3e5e4e6. Проверяем условие самосцеп-ляемости: метка контура равна

(((aa ®а ba) 0b (bb)) 0b (ab)) = ((baa 0b (bb)) 0b (ab)) = bbaa 0b (ab) = abbaa,

и условие самосцепляемости выполняется (буква а является входной магазинной меткой дуги в3 и, одновременно, первой буквой метки контура).

Следовательно, данный контур больше не проходится, и в качестве продолжения выбираем следует выбрать дугу в5. Но, как нетрудно показать, возникающий при этом контур е5е4е6 также является самосцепляющимся, и тогда следует уже выбрать продолжение в8 (если просматривать дуги в порядке их номеров; еще подходит в10). Получим:

аЬЬаа^ 0а а = аЬЬаа^

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

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

Путь в1в3в5в4в6в8 (завершившийся в состоянии 51) может быть продолжен любой дугой, исходящей из и имеющей входную магазинную метку а. В данном случае это единственная дуга вц:

аЬЬаа^ 0а Л = ЬЬаа^. Дальнейшие продолжения очевидны:

в1взв5 в4вбв8 вц в12в12вПвПв13,

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

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

В приведенном примере ближайшей (с конца) точкой ветвления будет путь в1в3в5в4в6, после чего в качестве отложенного продолжения должна рассматриваться дуга в1о. Выбрав ее, получим метку пути в1в3в5в4вбв10, равную

аЬЬаа^ 0а Л = ЬЬаа^. Дальнейшее единственное продолжение

в1в3в5 в4вбв10в12в12вИвИв13

с допуском входной цепочки ааЬЬааЬЬаа (палиндром четной длины).

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

Теорема 1. Построенная по результатам алгоритма поиска сбалансированных путей грамматика эквивалентна исходной.

Доказательство. Множество правил оптимизированной грамматики есть, по построению, подмножество множества правил исходной грамматики. Это значит, что язык, порождаемый оптимизированной грамматикой, содержится (как подмножество) в языке, порождаемом исходной грамматикой.

С другой стороны [1], выводимость [до^Од/] Ь* х, где х — входная цепочка, а qf — заключительное состояние МП-автомата, имеет место тогда и только тогда, когда на множестве конфигураций МП-автомата имеет место выводимость

(до,х, £о) Ь*^, Л, Л),

что, в свою очередь, в силу результатов работы [6], означает равенство цепочки х входной метке некоторого сбалансированного пути в мультиграфе МП-автомата, ведущего из начального состояния в заключительное. Поскольку при построении оптимизированной грамматики учитываются все такие пути, то она породит все цепочки, допускаемые МП-автоматом, и, следовательно, будет эквивалентна исходной. Теорема доказана.

4. Оценка сложности алгоритма

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

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

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

Фиксируем некоторый контур О с пустой магазинной меткой. Число Мс прохождений такого контура будет не больше, чем длина магазинной цепочки, «накопленной» в магазине к моменту начала прохождения контура О. В свою очередь, эта длина пропорциональна числу дуг пройденного к указанному моменту пути, включая однократное прохождение каждого встретившегося ранее самосцепляющегося контура.

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

Это же число является грубой верхней оценкой числа дуг в самосцепляющемся контуре и числа таких контуров. В итоге для фиксированного контура G получим верхнюю оценку времени его прохождения в виде Lm + Lm2 = Lm(1 + m). Но число контуров с пустой магазинной меткой также не может быть больше m. В итоге имеем грубую верхнюю оценку сложности рассматриваемого алгоритма в виде Lm2 (l + m) ~ O(m3). Теорема доказана.

Отметим, что полученная оценка сложности является, конечно, весьма грубой. Поиск более тонких оценок требует отдельного исследования.

Заключение

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

Работа выполнена при частичной финансовой поддержке Программы поддержки ведущих научнык школ (грант НШ-53.2014.1).

Список литературы

1. Белоусов А.И., Ткачев С.Б. Дискретная математика. М.: Изд-во МГТУ им. Н.Э. Баумана, 2006. 744 с.

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

3. Крищенко B.A. Использование LR таблиц для разбора естественного языка // Исследовано в России: электрон. журнал. 2000. Т. 3. С. 948-945. Режим доступа: кйр://2кигпа1.аре.ге1агп.щ/аг11с1е8/2000/067.рё1:(дата обращения 25.06.2014).

4. Dantam N., Stilman M. The Motion Grammar: Analysis of a Linguistic Method for Robot Control // IEEE Transactions on Robotics. 2013. Vol.29, no. 3. P. 704-718. DOI: 10.1109/TR0.2013.2239553

5. Frazzoli E., Dahleh M.A., Feron E. Maneuver-based motion planning for nonlinear systems with symmetries // IEEE Transactions on Robotics. 2005. Vol. 21, no. 6. P. 1077-1091. DOI: 10.1109/TR0.2005.852260

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

7. Пентус А.Е., Пентус М.Р. Математическая теория формальный языков. М.: Интернет-университет информационны« технологий; БИНОМ. Лаборатория знаний. 2006. 247 с.

SCIENTIFIC PERIODICAL OF THE BAUMAN MSTU

SCIENCE and EDUCATION

EL № FS77 - 48211. №0421200025. ISSN 1994-0408

electronic scientific and technical journal

Construction of Context Free Grammar

Based on Push-Down Automation Multigraph

# 07, July 2014

DOI: 10.7463/0714.0717777

Belousov A. I.1, Tkachev S. B.12 a

1Bauman Moscow State Technical University, Moscow, Russian Federation

2ISA RAS, Moscow, Russian Federation

as tkachev@bmstu.ru

Keywords: push-down automata, PD-automata, oriented multigraph, context-free grammar, CF-Grammar, balanced way, depth-first search

The paper is devoted to the development of an algorithm for constructing a context-free grammar for multigraph pushdown automaton (PDA).

Development of an algorithm is based on the idea of representation the PDA as a directed multigraph. This approach optimizes context -free grammar (CFG), which can be obtained by the known algorithm using the program of PDA.

The algorithm for constructing optimized CFG is based on the enumeration of certain paths in the multigraph. A method is similar to the standard depth-first search in a directed graph. Proposed method lists so-called balanced ways, the passage of which corresponds to reading the input word by PDA until it passes a sequence of states from the initial state to the final state with the devastation store, thus allowing the input word. This frees CFG equivalent to this PDA from useless nonterminals and ensure causing all strings allowed PDA. Thus, a CFG being constructed by the algorithm will generate exactly the language that allowed by the PDA. In addition, the algorithm presented in the article can be considered as the generative model of the language permitted by PDA.

The main result of this paper is design of the algorithm for constructing optimized CFG starting with the PDA multigraph. A description of the algorithm is given using the pseudocode. It is shown that calculated upper bound for the algorithm complexity is of the cubic order of the number of the multigraph edges.

PDA multigraphs are discussed in several papers. But mostly, multigraphs are used solely as an illustration. In this paper a multigraph is used not only as a visual representation of PDA, but

as a working model, which is defined in terms of the language of PDA. The equivalence of such a model to the known models is proved too.

Thus, the paper proposes an efficient algorithm for enumerating paths in a directed multigraph, on the basis of which it is possible to build an optimized CFG equivalent to the original PDA.

Among the tasks which will continue the started study there is a more accurate upper bound finding on the algorithm complexity.

References

1. Belousov A.I., Tkachev S.B. Diskretnaya matematika [Discrete mathematics]. Moscow, Bau-man MSTU Publ., 2006. 744 p. (in Russian).

2. Aho A.V., Ullman J.D. The Theory of Parsing, Translation and Compiling. Vol. 1. Parsing. Printice Hall, 1972. (Russ. ed.: Aho A.V., Ullman J.D. Teoria sintaksicheskogo analiza, perevoda i kompiliatsii. V2 t. T. 1. Sintasicheskii analiz. Moscow, Mir Publ., 1978. 612 p.)

3. Krishchenko V.A. [Using of LR tables for analysis of a natural language]. Issledovano v Rossii { Investigated in Russia, 2000, vol. 3, pp. 948-945. Available at: http://zhurnal. ape.relarn.ru/articles/2000/067.pdf, accessed 05.07.2014. (in Russian).

4. Dantam N., Stilman M. The Motion Grammar: Analysis of a Linguistic Method for Robot Control. IEEE Transactions on Robotics, 2013, vol.29, no. 3, pp. 704-718. DOI: 10.1109/TR0.2013.2239553

5. Frazzoli E., Dahleh M.A., Feron E. Maneuver-based motion planning for nonlinear systems with symmetries. IEEE Transactions on Robotics, 2005, vol. 21, no. 6, pp. 1077-1091. DOI: 10.1109/TR0.2005.852260

6. Belousov A.I., Tkachev S.B. [Presentation of push-down automation as oriented multigraphs].

Nauka i obrazovanie MGTU im. N.E. Baumana { Science and Education of the Bauman MSTU, 2012, no. 9. DOI: 10.7463/0912.0460973 (in Russian).

7. Pentus A.E., Pentus M.R. Matematicheskaia teoria formal'nykh iazykov [The mathematical theory of formal languages]. Moscow, Internet-University of Information Technologies Publ.; BINOM. Laboratoria znanii Publ., 2006. 247 p. (in Russian).

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