Научная статья на тему 'Контекстно-свободные языки в нормальной форме Грейбах: аналитический подход'

Контекстно-свободные языки в нормальной форме Грейбах: аналитический подход Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Егорушкин О.И.

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

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

Похожие темы научных работ по математике , автор научной работы — Егорушкин О.И.

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

GREIBACH NORMAL FORM OF CONTEXT-FREE LANGUAGES: TNE ANALITIC APPROACH

Context-free languages are consider as formal power series, which are solutions of the polynomial equations systems with noncommutative variables respectively multiplication. It is suggested to investigate these systems in Greibach normal form, that allows to research it more effectively. Commutative images of languages and defining systems are described in complex domain.

Текст научной работы на тему «Контекстно-свободные языки в нормальной форме Грейбах: аналитический подход»

УДК 519.682

О. И. Егорушкин

КОНТЕКСТНО-СВОБОДНЫЕ ЯЗЫКИ В НОРМАЛЬНОЙ ФОРМЕ ГРЕЙБАХ: АНАЛИТИЧЕСКИЙ ПОДХОД

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

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

Практически важный класс формальных языков образуют контекстно-свободные языки (кс-языки), являющиеся мощным средством моделирования естественных языков и языков программирования [1-3]. Обозначим W = {хь ..., хп}и..., 2п} свободную полугруппу с операцией умножения над «расширенным» алфавитом {хь ..., хп, z1, ..., 2п}.

Словарем языка является конечное множество X = {хь ..., хп} слов языка, называемое терминальным множеством, а Z = {21, ..., zm} - множество вспомогательных символов Zj, необходимых для задания грамматических правил, называемое нетерминальным множеством; W = (Xи 2) - соответствующая свободная полугруппа относительно операции конкатенации. Дополним ее операцией формального сложения «+» мономов из множества W (вместо суммы можно взять объединение «и», следуя [1]), а также коммутативной операцией умножения мономов на (целые) числа. Таким образом, можно рассматривать не только многочлены, но и формальные степенные ряды с числовыми (как правило, целыми) коэффициентами от некоммутативных переменных.

Кс-грамматика есть совокупность правил подстановки, которые каждому нетерминальному символу Zj ставят в соответствие некоторый моном от терминальных и нетерминальных символов:

2] ® /]1 ( X, 2),...,2] ® ¡Щ , (х, 2) ,

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

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

Правилам подстановки ставится в соответствие система полиномиальных уравнений [3]: каждому вспомогательному символу 2, содержащемуся в ле-

вой части подстановки, сопоставляется уравнение 2, = Р, (х, 2), гдер(х, 2) = ](х, 2) + ... (х, 2). Та-

ким образом, кс-грамматике соответствует система полиномиальных уравнений

2]= Р] (х, 2), ] =1, ..., т, (1)

называемая системой уравнений Хомского-Щютценберже, а кс-языком называется первая компонента 2,ее решения ^(х), ..., 2т(х)) [3; 4], получаемого методом последовательных приближений:

2(М) = Р](х, 2(\ = 0,] = 1, ..., т, где г(к} = (г(кх^'); 0 - нулевой моном, такой, что

0 • и = и • 0 = 0 для любого монома и.

В результате итераций компоненты 2] выражаются формальными степенными рядами, причем кс-язык есть тот из них, который представляет выделенный символ 21:

21 =Х< ^ ^ > ^, (2)

г

где < 21, > - числовой коэффициент при мономе от некоммутативных переменных х1, ..., хп (формальная сумма всех мономов и образует кс-язык).

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

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

Авторы предлагают изучать вместо системы уравнений Хомского-Щютценберже эквивалентную ей систему в нормальной форме Грейбах [5. С. 127], в которой все многочлены имеют вторую степень по переменной 2; переход к нормальной форме Грейбах всегда возможен за счет увеличения, быть может, числа переменных. Для уравнений второй степени аналитические методы исследования представляются более перспективными: их эффективность в большей мере зависит от степени уравнений, чем от числа переменных.

Более точно, нормальная форма Грейбах системы (1) подразумевает, что все входящие в нее много-

Вестник Сибирского государственного аэрокосмического университета имени академика М. Ф. Решетнева

члены имеют вид р/ (х, 2) = £ (2) + gj (х, 2) + Н/(х), где £ (2) - квадратичная форма от переменных 21, ..., хп, многочлен gj (х, 2) линеен по 21, ..., 2п, а многочлен Л/(х) от них не зависит [5. С. 127]. А значит, можно считать, что система (1) имеет следующий вид:

2/ = £(2) + gj (х, 2) + /х) = 0,/ = 1, ., т. (3) Нам понадобится понятие коммутативного образа формального ряда (многочлена) [2; 3]. А именно, поставим в соответствие формальному степенному ряду (многочлену) ряд (многочлен) с комплексными переменными, задав отображение терминальных х, и нетерминальных 2, символов из множества X ^ 2 в множество комплексных переменных, причем за нетерминальными переменными 2, оставляем прежние обозначения, а терминальные символы х, отображаем в комплексные переменные 2, соответственно, тогда (х, 2) е Ст+п. Таким образом, получаем фиксированный гомоморфизм, который ставит в соответствие формальному ряду (2) его коммутативный образ -сходящийся в окрестности нуля степенной ряд от комплексных переменных:

а(г) = Е ак2к,

где

■к -,к„ 2 ...^п

"к* ~"ки..,кп 1 ак = Е <r, V > ,

# х (V )=к,,...,# хп (V, )=кп

символ #с(ё) означает число вхождений символа с в моном ё.

Итак, рассмотрим систему уравнений (3). Если в ней £ (2) ° 0 при всех j, то эта система - линейная, и порождаемый ей язык принадлежит к простейшему классу линейных языков [1; 2]. Однако важно, что существует связь с кс- и линейными языками, точнее, между их коммутативными образами.

А именно, рассмотрим коммутативный образ кс-языка 21:

с,(21) = акхк = аК ...кхк ...хк

(4)

который является алгебраической функцией, а также коммутативный образ

с((Ь) = Е хк (5)

к0 >0,к >0

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

Будем называть ряд (4) диагональю ряда (5), если при всех к1,., кп, выполнено условие

ак1.....кп = ^к1,к1 ,к2.....кп ,

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

Теорема 1. Если однородные многочлены второй степени£2(2), ...,£(2), входящие в систему (3), не зависят от переменной 21, и система уравнений

£(2) = 0, / = 2, ..., п (6)

имеет единственный нуль 2 = 0, то коммутативный образ кс-языка, порожденного системой (3), является диагональю некоторого линейного языка.

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

Доказательство. Рассмотрим корни системы (3) следующим образом: будем считать переменные х и 21 комплексными параметрами, а остальные корни 2[1] = (22, ..., 2п) = 2[1](х, 21) - зависящими от этих параметров. Условие теоремы 1 означает, что ни при каких значениях параметров корни системы (3) не стремятся к бесконечности (как это бывает, например, когда старший коэффициент многочлена при некотором значении параметра обращается в нуль). Следовательно, при всех значениях параметров х и 21 число корней 2(к) [1] (х, 21) подсистемы р/ (х, 2) = 0, j = 2, ..., п с учетом кратностей цк одно и то же, а потому возможно корректно определить результант этой подсистемы относительно уравнения р1 (х, 2) = 0:

Р( х, 2,) = П Р? (х, 2„ 2(к >[1]( х, 2,)),

к

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

Согласно теореме о результанте системы [6. С. 238], кратность корня (0,0) системы (3), равная 1, совпадает с кратностью корня 21 = 0 многочлена Р(х, 21) при х = 0. А значит, для многочлена Р(х, 21) выполняется условие

Р(0,0) = 0, дРМ. * 0. д21

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

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

«Ы = Е < (а)/ (х),

(7)

где (а)(х) - однородный многочлен степени /.

Достаточно установить, что ряд (7) удовлетворяет уравнению степени 2, поскольку такую степень имеет система (3). Возводя ряд (7) в квадрат, получим ряд (с,(21))2 = Е/ (а)/2)(х). Тот факт, что оба ряда, будучи умноженными на многочлены, дают в сумме тождественный нуль, означает, что достаточно длинные отрезки этих рядов линейно зависимы. Таким образом, получается следующая теорема.

к

Теорема 2. Для того чтобы ряд по однородным многочленам (7) удовлетворял полиномиальному уравнению степени 2, необходимо и достаточно, чтобы при всех] >]0,1 > 10 выполнялось равенство

(а),(х) ... (а)]+1 (х) (а)/2)(х) ... (а),+/2)(х)

(а)(х)...(а),+1+1 (х) (а),+/2)(х)...(а),+м(2)(х) ° 0

(а) ](х)... (а),+,+1 (х) (а),+, (2) (х)... (а),+,+; (2) (х)

где число q = 21 + 1.

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

Библиографический список

1. Глушков, В. М. Алгебра, языки, программирование / В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющенко. Киев : Наукова думка, 1974. 328 с.

2. Семенов, А. Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик / А. Л. Семенов // Доклады АН СССР. Т. 212. 1973. С. 50-52.

3. Сафонов, К. В. О возможности вычислительного распознавания контекстно-свободных языков / К. В. Сафонов // Вычислительные технологии. 2005. Т. 10. № 4. С. 91-98.

4. Сафонов, К. В. О синтаксическом анализе и проблеме В. М. Глушкова распознавания контекстно-свободных языков Хомского / К. В. Сафонов, О. И. Его-рушкин // Вестник Томского государственного университета. Приложение. 2006. № 17. С. 63-66.

5. Salomaa, A. Automata-Theoretic Aspects of Formal Power Series / A. Salomaa, M. Soitolla. N. Y. : SpringerVerlag, 1978. 176 p.

6. Айзенберг, Л. А. Интегральные представления и вычеты в многомерном комплексном анализе / Л. А. Айзенберг, А. П. Южаков. Новосибирск : Наука, 1979. 366 с.

7. Safonov, K. V. On Power Series of Algebraic and Rational Functions in Cn / K. V. Safonov // Journal of Mathematical Analysis and Applications. 2000. Vol. 243. P. 261-277.

O. I. Egorushkin

GREIBACH NORMAL FORM OF CONTEXT-FREE LANGUAGES: TNE ANALITIC APPROACH

Context-free languages are consider as formal power series, which are solutions of the polynomial equations systems with noncommutative variables respectively multiplication. It is suggested to investigate these systems in Greibach normal form, that allows to research it more effectively. Commutative images of languages and defining systems are described in complex domain.

УДК 519.872

И. А. Панфилов, Т. А. Панфилова

ФОРМАЛИЗАЦИЯ ЗАДАЧИ ВЫБОРА НАДЕЖНОГО ВАРИАНТА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

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

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

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