Вычислительные технологии
Том 10, № 4, 2005
О ВОЗМОЖНОСТИ ВЫЧИСЛИТЕЛЬНОГО РАСПОЗНАВАНИЯ КОНТЕКСТНО-СВОБОДНЫХ
ГРАММАТИК
К.В. Сафонов
Красноярский государственный технический университет, Россия
e-mail: [email protected]
A subclass of affine context-free grammars is considered in the class of context-free grammars and a possibility of its computational recognition is investigated.
Введение
Понятия контекстно-свободного языка (кс-языка) и контекстно-свободной грамматики (кс-грамматики), порождающей этот язык, были введены Н. Хомским [1-3] во второй половине 50-х годов прошлого века при попытке построить адекватную математическую модель естественных языков, например английского языка. Вскоре было обнаружено, что некоторые классы языков программирования, в частности класс "языков типа АЛГОЛ", совпадают с классом контекстно-свободных языков. С тех пор исследования, посвященные контекстно-свободным грамматикам и порождаемым ими языкам, получили широкое развитие, и сегодня теория контекстно-свободных грамматик представляет собой центральную составную часть математической лингвистики. Контекстно-свободные грамматики оказались хорошо приспособленными для описания большинства конструкций естественных языков [4-7], хотя, по-видимому, большинство лингвистов считают, что для всеобъемлющего описания структуры естественных языков кс-грамматик все же недостаточно.
Рассмотрим конечное множество X = {xi,... , xn}, состоящее из слов xi языка, играющее роль словаря и называемое терминальным множеством, а также Z = {z1,... , zm} — множество вспомогательных символов Zj, необходимых для задания грамматических правил, называемое нетерминальным множеством. Обозначим (XUZ)* свободную полугруппу, порождаемую некоммутативными элементами x1,... , xn, z1,... , zn. Дополним операцию некоммутативного умножения коммутативной операцией формальной суммы " +" мономов из (XUZ)* (вместо суммы можно взять объединение "U", как в [7]), а также коммутативной операцией умножения мономов на (целые) числа. Таким образом, можно рассматривать не только многочлены, но и формальные степенные ряды с числовыми (как правило, целыми) коэффициентами от некоммутативных переменных.
Под кс-языком понимается [4, 5] первая компонента z1 решения (z1(x),... ,zm(x)) системы полиномиальных уравнений
zi = pi(x,z),i =l,...,m, (1)
© Институт вычислительных технологий Сибирского отделения Российской академии наук, 2005.
которое получается методом последовательных приближений:
4к+1) = рДх,^),^ = 0, г = 1,...,т,
где ¿(к) = (¿(к),... , ); 0 — нулевой моном, такой, что 0 • и = и • 0 = 0 для любого монома и. Таким образом, в результате итераций кс-язык представляется формальным степенным рядом
¿1 = ^ < Zl,Wi > 'Ш1, (2)
i
где < ¿1, wi > — числовой коэффициент, с которым моном wi от некоммутативных переменных входит в ряд ¿1. Мономы wi являются грамматически правильными предложениями, которые могут быть построены в данном языке из слов х1,... , хп этого языка, а весь ряд (2), т. е. формальная сумма всех правильных предложений, и является данным кс-языком (построение системы уравнений (1) по грамматическим правилам языка и описание дополнительных условий, которым она удовлетворяет, приведены ниже в разд. 1).
Основной вопрос настоящей работы состоит в том, как по заданному формальному ряду определить, является ли он кс-языком, т. е. порожден ли он кс-грамматикой — некоторой полиномиальной системой уравнений вида (1). В исследованиях, посвященных алгоритмическим проблемам в классе кс-языков [4, 5], такой вопрос не рассмотрен. Эти исследования были направлены, например, на решение следующих проблем: по заданной кс-грамматике, т. е. по коэффициентам заданной системы уравнений (1), определить, содержит ли порождаемый ею кс-язык заданный моном с ненулевым коэффициентом (алгоритмически разрешимая проблема), порождают ли две заданные грамматики, а фактически две различные системы уравнений вида (1), один и тот же кс-язык (алгоритмически не разрешимая) и др. Несмотря на значительное число результатов, посвященных кс-языкам [4], какие-либо условия, полностью характеризующие эти языки (соответствующие формальные ряды), в настоящее время неизвестны. В случае коммутативных, например комплексных, переменных соответствующий ряд определяет голоморфную в окрестности начала координат алгебраическую функцию от переменных х1 , . . . , хп и является ее тейлоровским разложением. Однако и в этой ситуации неизвестно (даже для тривиального с точки зрения математической лингвистики случая п =1), как по коэффициентам ряда установить, является ли его сумма алгебраической функцией. В связи с этим представляют несомненный интерес условия, характеризующие некоторые классы кс-языков, в том числе и необходимые условия.
В настоящей работе развивается подход, при котором коэффициенты степенных рядов алгебраических функций располагаются на "диагональной" гиперплоскости в многомерной матрице тейлоровских коэффициентов соответствующих рациональных функций. Кратные степенные ряды рациональных функций значительно легче поддаются исследованию. В частности, возможно применение критерия Кронекера по каждой переменной кратного ряда: для рациональности суммы ряда
хк
к>0
необходимо и достаточно, чтобы, начиная с некоторого номера, все ганкелевы определители
Нп = ае^а^^^1!
были равны нулю — для кратных рядов соответствующие условия в виде равенства нулю сумм определителей, составленных из коэффициентов кратного ряда, в принципе могут быть выписаны в явном виде. В случае некоммутативных переменных кратным степенным рядам рациональных функций соответствуют формальные степенные ряды, представляющие линейные языки [3-5], вследствие чего вычислительное распознавание таких языков принципиально возможно.
Таким образом, оказалось, что кс-языки тесно связаны с линейными языками, что, в свою очередь, дает принципиальную возможность для распознавания важного класса кс-языков. Для установления этой связи понадобилась информация о бесконечноудаленных корнях системы уравнений (1): в зависимости от наличия таких корней кс-языки делятся на два класса — аффинные и неаффинные кс-языки, имеющие различные свойства коэффициентов.
1. Грамматики и собственные системы уравнений
При моделировании структуры естественных языков общепринят следующий подход, предложенный Н. Хомским [3]. Среди вспомогательных символов выделяется начальный символ предложения, например Этот символ заменяется, согласно одному из заданных правил подстановки, мономом, который может состоять как из терминальных, так и из нетерминальных символов. Пусть, например, это подстановка ^ г2г3, где г2 означает "группу подлежащего", а г3 — "группу сказуемого". Далее применяются другие правила, например подстановки г2 ^ г4г5, где г4 означает "прилагательное", а г5 — "существительное", и г4 ^ хг,г5 ^ х^, где хг,х^ — некоторые терминальные символы — выбранные прилагательное и существительное из словаря. Аналогичные подстановки применяются к символу ¿з. В результате применения правил подстановки получатся мономы только от переменных (слов) х1,...,хп, являющиеся предложениями данного языка. Формальная сумма всех полученных мономов (предложений) и является данным формальным языком, который определен совокупностью правил подстановки, называемой грамматикой данного языка.
Заметим, что грамматика в приведенном выше примере характеризуется тем свойством, что в левой части любого правила подстановки стоит лишь один нетерминальный символ, т. е. правило действует независимо от окружения этого символа, другими словами, независимо от контекста (это объясняет название кс-грамматик).
Для построения грамматики, порождающей бесконечное множество предложений, необходимо ввести рекурсию, например, добавив к правилам подстановки правило г5 ^ Хк где г5 — "существительное", Хк означает слово "что" или "который", а — начальный символ предложения. Очевидно, что теперь можно получать сколь угодно "длинные" мономы (сложноподчиненные предложения).
Далее правилам подстановки ставится в соответствие [3] система полиномиальных уравнений: каждому вспомогательному символу содержащемуся в левой части правил подстановки г ^ /г1(х, г),... , г ^ /щ(х,г), сопоставляется уравнение г = рг(х,г), где рг(х, г) = /г1(х, г) + ... + /щ(х, г). Таким образом, грамматике соответствует система полиномиальных уравнений (1), которая решается методом последовательных приближений в виде формального ряда (2).
Пусть вообще < г, т > обозначает коэффициент, с которым моном т (от некоммутативных переменных) входит в формальный ряд или многочлен г. Порождающая способность
грамматики не уменьшится, если из правил подстановки исключить правила вида гг ^ и гг ^ е, где е — пустая цепочка (играющая роль единицы относительно умножения мономов: ех = хе = х), в связи с чем общепринято [5] рассматривать только так называемые собственные системы (1) , правые части которых удовлетворяют условиям
< рг, е >= 0, < рг, >= 0, г, ] = 1,..., т. (3)
Пример. Рассмотрим собственную систему
¿1 = х1^1 + х1^2, ¿2 = х2^2хз + х2хз,
для которой метод последовательных приближений дает решение г(0) = (0,0), г(1) = (0; х2х3), г(2) = (х1х2х3; х2х2 + х2 х3), г(3) = (х2х2х3 + х1х2 х2 + х1х2х3; х2х2 + х2х3),... Нетрудно проверить, что первая компонента решения представляется рядом
- ^^ /у>г
/ ух1х2х3,
г,М>1
таким образом, данный кс-язык (над словарем {х1,х2,х3}) состоит из предложений вида
х1х2х3,г,^' > 1.
В случае комплексных переменных г £ Ст, х £ Сп собственная система (1) имеет в окрестности нуля (0, 0) € Ст+п единственное голоморфное решение (г1(х),... , гт(х)), где Zj (х) — алгебраические функции. Действительно, записывая систему (1) в виде
дг(х, г) = гг — рг(х, г) = 0, г = 1,..., т, (4)
видим, что условия (3) равносильны тому, что
®(0, 0) = 0, г = 1,..., т, = ^,
где — символ Кронекера, следовательно, собственная система удовлетворяет условию теоремы о неявном отображении (метод последовательных приближений дает в этом случае тейлоровские разложения голоморфных функций гг (х), г = 1,... , т).
2. Аффинные кс-грамматики. Основной результат
Формальному степенному ряду (или многочлену) поставим в соответствие ряд (многочлен) с комплексными переменными, задав отображение терминальных хг и нетерминальных символов из множества X и Z в множество комплексных переменных, за которыми оставляем прежние обозначения хг и соответственно, тогда (х, г) £ СП+т. Таким образом, получаем фиксированный гомоморфизм, который ставит в соответствие формальному ряду (многочлену)
г = ^^ < г, wi > г
степенной ряд (многочлен) от комплексных переменных
сг(г) = ^^ ак хк, к
называемый его коммутативным образом, где к = кп), акжк = акь...;кпЖк1 .. .ж^,
при этом
ак = ^ >,
#Ж1(Шг)=к1,...,#Жп(Шг)=к"
где #а(в) — число вхождений символа а в моном в• Заметим, что коммутативный образ кс-языка является функцией, голоморфной в непустой окрестности нуля, поскольку коэффициент при каждом мономе исходного формального ряда, представляющего кс-язык, равен числу выводов этого монома с помощью грамматических правил языка [3], а оценки этих чисел показывают, что радиусы поликруга сходимости его коммутативного образа положительны [8].
Рассмотрим систему полиномиальных уравнений (4), а также ее подсистему
5г(ж, £) = 0, г = 2,..., т,
считая переменные ж и ¿1 параметрами, а корни этой системы £[1] = (г2,...,гт) = ¿[1] (ж, ¿1) зависящими от этих параметров. При этом удобно рассматривать корни ¿[1](ж, ¿1) в проективном пространстве СР^-1, а параметры ж, — в пространстве СП^1. В таких координатах система имеет вид
С£^^^Н =0, г = 2,...,т, (5)
V ад ад /
где V = ^¿(ж,^ ), а [С0 : С2 : : Ст] — координаты проективного пространства
т>т—1. При С0 = 1 корни системы (5) расположены в пространстве Ст—1 (аффинной части 1т—1), а при С0 = 0 — на бесконечноудаленной гиперплоскости пространства СРт—1. Бесконечноудаленные корни системы (5) (при С0 = 0) совпадают с корнями системы
(ж, ¿1, С) = 0, г = 2,..., т, (6)
где (ж, — старшая однородная составляющая многочлена ^¿(ж, по переменной £[1] с коэффициентами, зависящими от ж и ¿1, а С = (С2,... , Ст).
Если многочлены последней системы не зависят от ж и и она имеет только единственный корень С2 = ... = Ст = 0 (при Со = 0 не определяющий точки в проективном пространстве), то будем называть аффинным кс-язык, определяемый системой уравнений (4), поскольку в этом случае соответствующая ей подсистема уравнений (5) не имеет бесконечноудаленных корней, следовательно, ее корни могут быть расположены лишь в аффинной части проективного пространства.
Нам необходимо установить, когда многочлен Р(ж, ¿1), определяющий алгебраическую функцию £1(ж) — первую компоненту решения (¿1(ж), ... , £т(ж)) системы (4), Р(ж, £1(ж)) = 0, Р(0, 0) = 0, обладает свойством Р'1 (0, 0) = 0. Имеет место следующая
Лемма 1. Пусть система (6) не зависит от ж и и имеет единственный корень С = 0. Тогда можно выбрать многочлен Р(ж,£1), определяющий алгебраическую функцию = £1(ж), такой, что
Р (0,0) = 0,™ = 0.
0^1
Доказательство. В условиях леммы система уравнений ^¿(ж, = 0, г = 2,..., т, относительно ¿[1] — собственная, т.е. при всех значениях параметров ж,£1 число корней системы £(к)[1] = ¿(к) [1](ж, ¿1) с учетом кратностей — одно и то же (никакие из корней
"не уходят в бесконечность" при изменении х и ^ на любом компакте), что дает возможность корректно определить результант этой системы относительно уравнения д1(х,г):
Р (х,^) = Д (к) [1]( х,^)),
к
где в произведение входят все корни системы. В силу симметричной зависимости от корней, которые являются алгебраическими функциями, результант также представляет собой симметрическую алгебраическую функцию, следовательно, Р(х,г) — многочлен от х и Согласно одной теореме А.К. Циха [9, с. 238], кратность корня (0, 0) системы (4), равная 1, совпадает с кратностью корня = 0 результанта Р(х,г1) при х = 0. Лемма 1 доказана. □
В случае комплексных переменных все компоненты ¿¿(х),г = 1,...,т, решения системы (1) являются алгебраическими функциями и каждая из них может быть задана с помощью одного полиномиального уравнения, тогда как в некоммутативном случае задать формальный ряд, например, для ¿1(х) с помощью одного полиномиального уравнения, вообще говоря, невозможно, поскольку в этом случае не всегда возможно исключить неизвестные из системы уравнений.
Пусть дан ряд
Д(хо,х) = ^ Ько,кхк°хк
ко,к
от п +1 комплексных переменных х0 £ С1, х £ Ст, где к = (к1,... , кт), тогда его диагональю назовем ряд
Дад (Я(хо,х)) = ^ 6кьк хк.
к
Имеет место следующая
Лемма 2. Для любого аффинного кс-языка ¿1(х) над терминальным множеством X существует линейный язык Ь(х0,х) над терминальным множеством {х0} и X, такой, что
ст(^(х)) = ДЖо,х1 (сг(Ь(хо,х))).
Доказательство. Для алгебраической функции сг(^1(х)) существует [10] рациональная функция К(х0,х), такая, что выполнено равенство
сг(^(х)) = Дх° ,Х1 (Д(х0,х)),
например, можно взять
К(х0,х) = I
^Р^ (¿1, х) Р (¿1,х) 1-1=Х0'Х1=Х0Х1-
Из условия Р^ (0, 0) = 0 следует, что Р(¿1,х) = сг1 + Р1, тогда все мономы многочлена Р(х0,х0х1,х2,... ,хт) содержат х0 в качестве множителя, поэтому, сокращая на него, получим, что К задается равенством (с + Р1)Л = х0Р'1 (х0,х0х1,х2,... ,хт) или равенством
К = -(—Р1К + х0Р'), являющимся линейной грамматикой. Следовательно, выполняя по-с
следовательные приближения по линейной рекуррентной формуле
Кп+1 = -(-Р1 К + х0Р'),
с
получим формальный ряд, который в случае некоммутативных переменных определяет линейный язык ь(ж0,ж), причем диагональю его коммутативного образа является коммутативный образ языка ¿1(ж).
Если записать в явном виде коэффициенты степенных рядов голоморфных функций сг(г1 (ж)) и сг(Ь(ж0,ж)), то получится основной результат данной работы — следующая
Теорема. Для любого аффинного кс-языка (1) над терминальным множеством X существует линейный язык
L(x0, x) = ^^ < L,
, ж) = > < и ^ > и7
над терминальным множеством {ж0}иX, такой, что при всех к1,... , кт > 0 выполнены равенства
У^ >= ^ >. (7)
#Ж1(Шг) = к1,...,#Жт(Шг)=кт #Ж1(«7 )=к1 ,...,#Жт («, )=кт,#жо(«^ ) = #Ж1(«^ )
Теорема дает необходимое условие того, что данный формальный ряд £1(ж) является аффинным кс-языком: если возможно показать, что ни для какой рациональной ь(ж0,ж) функции равенство (7) или равенство
«(^(ж)) = ДЖо,Х1 (Ь(Ж0,Ж))
не выполняется, то этот ряд не принадлежит классу аффинных кс-языков.
При выполнении равенств (7) естественно называть ряд £1(ж) коммутативной (слабой) диагональю ряда ь(ж0,ж). Если же выполнено равенство
, > |хо=е,
г #жо(«,' )=#Х1(«^)
то назовем этот ряд некоммутативной (сильной) диагональю ряда ь(ж0,ж). В заключении поставим в качестве нерешенного вопроса следующий: будет ли аффинным кс-языком всякий формальный ряд, который является некоммутативной (сильной) диагональю линейного языка?
Список литературы
[1] Хомский Н. Три модели для описания языка // Кибернетический сборник: Сб. перевед. статей. М.: Иностр. лит., 1961. Вып. 2. С. 237-266.
[2] Хомский Н. О некоторых формальных свойствах грамматик // Кибернетический сборник: Сб. перевед. статей. М: Иностр. лит., 1962. Вып. 5. С. 279-311.
[3] Хомский Н., ЩютцЕНВЕРЖЕ М.П. Алгебраическая теория контекстно-свободных языков // Кибернетический сборник, нов. серия: Сб. перевед. статей. М.: Мир, 1966. Вып. 2. С. 121-230.
[4] Гинзвург С. Математическая теория контекстно-свободных языков. М.: Мир, 1970.
[5] SALOMAA A., Soittola M. Automata-Theoretics Aspects of Formal Power Series. N.Y.: SpringerVerlag, 1978.
[6] Гллдкий А.В. Формальные грамматики и языки. М.: Наука, 1973.
[7] Глушков В.М., ЦЕЙтлин Г.Е., Ющенко Е.Л. Алгебра, языки, программирование. Киев: Наук. думка, 1974.
[8] Семенов А.Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик // Докл. АН СССР. 1973. Т. 212. С. 50-52.
[9] АЙЗЕНБЕРГ Л.А., ЮжАКОВ А.П. Интегральные представления и вычеты в многомерном комплексном анализе. Новосибирск: Наука, 1979.
[10] SAFONOV K.V. On power series of algebraic and rational functions in Cn // J. of Math. Anal. and Appl. 2000. Vol. 243. P. 261-277.
Поступила в редакцию 30 января 2005 г., в переработанном виде — 1 апреля 2005 г.