УДК 519.61 Вестник СПбГУ. Сер. 10, 2008, вып. 2
К. А. Кулаков, Д. Ж. Корзун, Ю. А. Богоявленский
ИТЕРАТИВНЫЙ АЛГОРИТМ НАХОЖДЕНИЯ БАЗИСА ГИЛЬБЕРТА ОДНОРОДНЫХ ЛИНЕЙНЫХ ДИОФАНТОВЫХ СИСТЕМ, АССОЦИИРОВАННЫХ С КОНТЕКСТНО-СВОБОДНЫМИ ГРАММАТИКАМИ
1. Введение. Пусть 2, иК - соответственно множество целых, неотрицательных целых и натуральных чисел. Системой однородных неотрицательных линейных диофантовых уравнений (системой одНЛДУ) будем называть систему Ах = О из п уравнений с т неизвестными, где А £ 2ПХТО, х £ 2™, О — нулевой п-вектор.
Требование целочисленности и неотрицательности решений делает задачу решения системы одНЛДУ вычислительно трудоемкой в случае большой размерности [1—3]. В силу этого ряд исследований концентрируется на частных классах систем и построении для них специализированных алгоритмов. В [4] был введен и исследован класс систем одНЛДУ, ассоциированных с контекстно-свободными грамматиками (системы одАНЛДУ). Идея восходит к [5]. В [6] предложены алгоритмы решения таких систем, основанные на методах синтаксического анализа. Текущие их результаты можно найти в [7]. В [8, 9] было построено преобразование системы одАНЛДУ, основанное на методе исключения Гаусса, которое применялось для построения алгоритмов генерации эталонных и тестовых систем, необходимых для тестирования и экспериментального анализа синтаксических алгоритмов решения.
В данной статье предлагается новый алгоритм нахождения базиса Гильберта систем одАНЛДУ, использующий преобразование [8, 9] и сводящий задачу либо к нахождению простых контуров в орграфе, либо к решению одНЛДУ простого вида. Этот алгоритм будем называть итеративным. Как и для синтаксических алгоритмов, сложность зависит от размера базиса Гильберта не только исходной, но и других систем, появляющихся в процессе решения. Однако выделен класс систем, для которых сложность линейно зависит от числа уравнений, неизвестных и размера базиса исходной системы.
2. Понятийный аппарат. Ненулевое решение Ъ, £ 2™ системы одНЛДУ называ-
ется неразложимым, если оно не может быть представлено в виде суммы двух ненулевых ее решений. Базисом Гильберта называется множество % = {}>М\ ... } всех
ее неразложимых решений [1, 3]. При этом он определяется единственным образом, конечен, а общее решение есть х V аь^, аь 6 2+.
Перенесем в системе одНЛДУ члены с отрицательными коэффициентами в противоположные части уравнений, получая А'х = Ах, А', А £ 2”хто. Введем ограничение на вид матрицы А!. Пусть 1п,т = {/о, 1\,..., /„} - разбиение индексного множества
= {1,... ,т}, причем только /о может быть пусто:
П
У4=МТО; 1к(М3 = 0Чкф1- 1кф0Чкф 0.
к=а
Системой одАНЛДУ в приведенной форме называется система
^2 = ^2 анХ>, к = 1,2,...,п. (1)
Также существуют и другие формы системы одАНЛДУ [9].
© К. А. Кулаков, Д. Ж. Корзун, Ю. А. Богоявленский, 2008
Следующее свойство показывает, что удаление уравнений и неизвестных из системы одАНЛДУ <5 не выводит из класса систем одАНЛДУ.
Свойство 1. Если система Б' получена из Б удалением части уравнений или неизвестных, то Б' также является системой одАНЛДУ.
Пусть в системе одАНЛДУ Б существует неизвестное ж», в том числе в любом уравнении Б коэффициенты при ж» равны нулю. Будем говорить, что ж» не входит в Б, если Б {5 А ж* = 0 и ж* не встречается в Б, если Б {5 А ж* = ж*.
3. Преобразование к треугольной форме. Возьмем произвольное уравнение системы (1). Не умаляя общности, полагаем, что выбрано первое уравнение. Представим 1\ = Ь и (1% \ Ь), где Ь - множество индексов неизвестных, которые не входят в оставшиеся уравнения. Первое уравнение принимает вид
Л + Л = X!а1 >х>-
По аналогии с преобразованием Гаусса будем называть это уравнение разрешенным относительно Ь-неизвестных.
Последовательно выполним подобное преобразование, разрешая на каждой итерации систему относительно части неизвестных. Пусть _ исходная система, к = 1. Преобразование 1 (треугольная форма). Пусть Б^ - текущая система.
1. Выбираем в Б^ произвольное уравнение, для которого 1/0. Если такого уравнения нет, то преобразование завершено. Не умаляя общности, считаем, что выбрано первое уравнение*"1. Полагаем Ьи = Ь.
2. Систему Б^ представим в виде [ж*, г £ Ьи не входят в Б(к+1Ц
Г Е -г< + Е -г< Е «/'-•'•,•
3(к) = ^ ,1еЬк г£1к\Ьк г£1к (2)
I ^■+1).
3. Система Б^к+1^ является, в силу свойства 1., системой одАНЛДУ. Полагая ее текущей системой, выполняем для нее аналогичное преобразование.
В результате придем к системе Б^, 1 ^ г ^ п, состоящей либо из одного уравнения, либо любое ее уравнение нельзя разрешить относительно части неизвестных. Таким образом, преобразование 1 приводит систему одАНЛДУ к треугольной форме:
( Е ж* + Е ж* = Е «/ /•'•-• к = 1,2,..., г - 1
< *€■!>& . (3)
1 Б(г>
Пусть - базис Гильберта системы . Тогда (2) позволяет использовать подстановку базиса Гильберта (по аналогии с [10]) для нахождения по 'Н1'к+1К
Пусть система Б получена объединением систем Б1 и Б", причем % и %' - базис Гильберта систем Б и Б' соответственно. Для любого д £% имеет место представление
9 — Е сх-кН. Считая Н £ %' известными, подставляем это представление в Б" и
кеН'
получаем систему одНЛДУ относительно неизвестных а^ £ Ъ+. Если А - ее базис
Гильберта, то % = {д = Е аьЛ \ а £ А}.
кеП'
Рассмотрим треугольную форму (3). Опишем преобразование базиса к базису %^ =% исходной системы. В начале полагаем к = г — 1.
*) При этом для системы это уравнение с индексом к.
Преобразование 2 (обратная подстановка). Текущая система Б^ имеет вид (2).
1. Выполняем, подстановку в первое уравнение текущей системы:
5>+ £ £ аьЫ= Е Е П/,«/,,/і, ■ (4)
іеьк ЬЕЯ(‘ + 1) іЄІк\Ьк Іієн(к + Г> і£Ік
2. Находим базис Гильберта А уравнения (4) относительно неизвестных (х{)^ьк
и {аь)неч(к+1ї ■ Вычисляем = < Е ж*е* + Е I («) Є Л}.
ієь^ Іієн(к +1)
3. Полагаем текущей систему Б^^1^ и выполняем, аналогичное преобразование до тех пор, пока не придем к исходной система Б^ и ее базису И^К
4. Свойства треугольной формы. Рассмотрим следующие частные классы систем одАНЛДУ.
1. Системой ІодАНЛДУ назовем систему (1) при п = 1:
Е Е (5)
ІЄІ1 іє/о
Здесь, как показывает следующее свойство, базис Гильберта имеет простой вид.
Свойство 2 [11]. Базис Гильберта уравнения (5) состоит из всех таких векторов
7'
где 7 соответствует неизвестным, (ж^ге/и Е 7* = аз для некоторого '] £ 1а,
*€/1
а ej - единичный вектор, соответствующий вставшим,ся неизвестным (жг,)»е/0-
2. Пусть Z,F С , а 7П>ТО и ,/п>то - некоторые разбиения индексного множества \ Р, в том числе 1к П Jk = 0. Симметричной системой одАНЛДУ (содАНЛДУ) назовем
Е -П = Е I...............".
»€■?&
./•; = ж», г £ Р, '-О;
ж* = 0, г £ Z.
Наличие уравнений ж* = 0 равносильно удалению соответствующих неизвестных из системы, что, в силу свойства 1, не выводит из класса одАНЛДУ.
Базис Гильберта системы содАНЛДУ может быть сопоставлен простым контурам некоторого орграфа. Рассмотрим орграф (3 = (М„, ) с матрицей инцидентности М:
1, г€1к,
Мы = { -1, 1£.1к,
0, иначе.
Уравнения (6) соответствуют вершинам графа, а неизвестные — дугам. Первые п уравнений имеют вид Мх = О, причем 1и и J\t определяют множество исходящих и входящих дуг для вершины к соответственно.
Согласно известному результату теории потоков [1], любое решение системы Мх = О обусловливает циркуляцию потока и соответствует некоторому набору контуров в (?. Верно и обратное: любой контур определяет частное решение. Добавление уравнения ж,. = ж,, приводит к появлению петли в графе (тривиальный контур). Добавление уравнения ж.; = 0 исключает из рассмотрения контуры, использующие дугу г.
Свойство 3. Любое базисное решение Н £ % системы (6) соответствует некоторому простому контуру в С и наоборот. При этом 0 /ц ^ 1 Уг.
Теорема 1. Система Б^ в (3) является либо системой 1одАНЛДУ (при г = п), либо системой содАНЛДУ (при г < п).
Доказательство. Случай г = п очевиден, поскольку тогда Б^ содержит только одно уравнение. Докажем, что при г < п система Б^ является системой содАНЛДУ.
Г— 1
Множество оставшихся в Б^ неизвестных есть IIг = \ У Ьи- Пусть ек = 1,
к=1
если г 6 /*, иначе е*» = 0 (к = г, г + 1,..., п). Тогда
5'(Г) = 1 Е еыХ> = Е а>-к = г1г+11...1п. (7)
иег/,. 1&иТ
П
Складывая все уравнения ^ ^ (а/,,.,. — е*»)ж» = 0, получаем
&=г 'Шиг
Е с*ж* = 0, (8)
геиг
П
где с.,. = Е (аЫ — ем)- Покажем, что с.; ^ 0 Уг. Допустим противное: пусть для некото-
к=г
рого уравнения ка из
5(г)
найдется неизвестное ж» такое, что е*0» = 1. В силу преобразования 1, уравнение ка нельзя разрешить относительно ж». Следовательно, ж» ветре-
П П
чается в уравнении $ ф ка и ^ 1. Поскольку Е еМ = еЫ = 1 и Е аЫ ^ aji £ 1>
&=Г &=Г
ТО С* ;> 0.
Если с* > 0, то для любого решения системы верно, что ж* = 0, поскольку иначе не выполняется (8). Если все с* > 0, то Б^ имеет только нулевое решение. Полагая Е = {г | с* > 0}, упрощаем систему добавлением уравнений ж* = 0, г 6 Далее, без умаления общности, предполагаем, что в Б^ все с» = 0.
Если с» = 0, то возможны следующие варианты:
П П
1- Е еМ = Е аН = 0, т.е. ж* не встречается в системе Б^г\ но г 6 {7Г. Такая
ситуацияГвозможна, если ж* входит только в правую часть исключаемого на итерации к уравнения. Такое неизвестное можно явно учесть, добавив к Б^ тождественное
Г —1
уравнение ж* = ж*. Обозначим через Р С У (7* \ Ьк) множество индексов всех таких
к=1
неизвестных.
2. Найдутся ка и такие, что ка ф j, ^ 1 и е*0» = 1. Поскольку
П П
ан - X е** ^ аИ ~ еМ ^ 1 “ 1 = 0!
&=Г &=Г
то aj^ = 1 и акг = 0 для & ф ]. Следовательно, правая часть (7) определяется некоторым разбиением 7П,ТО.
Таким образом, для г < п система Б^ является системой содАНЛДУ (6). □
5. Алгоритм нахождения базиса Гильберта. Полученные результаты позволяют сформулировать итеративный алгоритм нахождения базиса Гильберта.
1. Выполнить преобразование 1 исходной системы к треугольной форме (алгоритм преобразования к треугольной форме - прямая итерация).
2. Найти базис Гильберта системы Б^К Для случая 1одАНЛДУ используется свойство 2 (алгоритм решения 1одАНЛДУ), для случая системы содАНЛДУ -свойство 3 (алгоритм решения системы содАНЛДУ).
3. Выполнить преобразование 2, вычисляя в обратном порядке базисы Гильберта (алгоритм подстановки базиса для системы одАНЛДУ - обратная итерация).
Алгоритм преобразования к треугольной форме. На итерации к преобразования 1 надо выбрать исключаемое уравнение и построить множество Ь исключаемых неизвестных. Для этого, как и в теореме 1, рассмотрим сумму уравнений системы Б^
Е с%х% = 0, (9)
геик
к~1 п Г !./> /;.
где ик = Мто \ Д Сг = - е,ч); ец = | 0’ ша^
п
Если найдется с*0 = — 1, то Е ази> = 0 и ж*0 встречается только в левой части
3=к
некоторого уравнения Следовательно, Б^ может быть разрешена относительно непустого Ь (гц 6 Ь). Для нахождения остальных I £ I достаточно перебрать оставшиеся с* = — 1, поскольку ;), £ Ь тогда и только тогда, когда ej0i = 1. В самом деле, если с* ^ О,
П
то X,, встречается в правой части некоторого уравнения (Е азг > 0) или не входит в
3=к
П
левую часть ни одного уравнения ( Е еЦ = 0) •
3=к
Таким образом, алгоритм имеет следующий вид:
0. Пусть ,5^
- текущая система, к = 1, 11% = М,п. Вычисляем с* по формуле (9).
1. Если все с.; ;> 0, то завершаем работу. Иначе берем произвольно с.;0 = — 1, фиксируя соответствующее уравнение ']$.
2. Полагаем Ьи = {г | с* = —11ej0i = 1} и пересчитываем с* = с* — + е^, для г £
11и+1 = Пк \ Ь*. Такой пересчет приводит к (9) для Б^к+1К
3. Выполняем шаги 1-3 для 3^к+1\ получаемой из исключением уравнения
Теорема 1. Временная сложность алгоритма преобразования к треугольной форме в наихудшем случае равна О (пт).
Доказательство. Шаг 0 требует 0(тп) операций. На шагах 1 и 2 рассматривается не более т — к + 1 неизвестных, поскольку на каждой итерации исключается, по крайней мере, одна неизвестная (|{7*| ^ т — к + 1). Цикл из шагов 1-3 повторяется не более п раз, поскольку на каждой итерации исключается одно уравнение. Следовательно, цикл требует 0(^2к=1(т — к + 1)) = 0(тп — та("-1)) = 0(тп). □
Алгоритм решения 1 одАНЛДУ (5). Он основан на свойстве 2. Необходимо найти все решения уравнения ^ 7.; = акоторое является уравнением Фробениуса
iE.Ii
с единичными коэффициентами [11]. Решения могут быть получены с помощью алгоритма с временной сложностью О^гщ^), где qj - число решений уравнения Фробениуса. Общая сложность алгоритма решения IодАНЛДУ составляет О(тд'), где д' = Е Яз """""
з£1о
число базисных решений решаемого уравнения.
Алгоритм решения системы содАНЛДУ (6). Он основан на свойстве 3. Необходимо найти все простые контуры в соответствующем графе. Известно достаточно
много соответствующих алгоритмов (см. обзоры в [12]). Одним из наиболее эффективных считается алгоритм Джонсона с временной сложностью 0((т + п)д'), где д' -число простых контуров (число базисных решений системы содАНЛДУ).
Алгоритм подстановки базиса Гильберта для системы одАНЛДУ (3). Преобразование 2 основано на подстановке базиса в первое уравнение (2) и решении
уравнения (4) относительно неизвестных (ж*)*6£д, и (син)ь,ен(к+1~> ■
Уравнение (4) может быть записано как
Е = Е ’ (10)
НЕ'Н(~к'+1'>
где с1кн = Е ак:^: — Е Ы- Если возможно представление ъ&1к г£1к\Ьк
и(к+1) = п(к+1) у и(к+1) ^
в котором Н{++1) = {Ь,£ Н(к+I <1кк > 0} и и{*+1) = {Ь,£ Н(к+| <1кк = -1}, то уравнение (10) преобразуется к
Е + Е ан = Е йкнсин (12)
кеП^+1) кеП^+1)
и можно использовать рассмотренный ранее алгоритм решения 1одАНЛДУ. Следующая теорема показывает, что такое сведение (4) к (12) возможно всегда.
Теорема 3. Пусть система одАНЛДУ преобразована к треугольной форме (3) и к-1
тк= и I]. Тогда для любых к = 1, 2,..., г и Ь £ выполняется:
(а) £ ]ц ^ 1; г€Тк
(б) если к ф 1, то с1к-1,н £ —1-
Доказательство. Из (а) следует (б) для любого к > 1, поскольку
&к — 1,Н = ^ ';ак — 1Л&1 ~ ^ I ^ ' ак — 1,»^» г? 0, ^ ' Л-* ^ ^ ' /ц ^ 1-
Докажем теперь (а) для произвольного Ь £ индукцией по к = г, г — 1,..., 1. База индукции: к = г. По теореме 1 достаточно рассмотреть два случая для Я^ состоит из одного уравнения ^ ж* = ^ аг*ж*. Тогда Тг = {г | г ^ /г}, а по
»€/г Щ1г
свойству 2 выполняется и ^ /ц = 1;
*€ТГ
является системой содАНЛДУ (6). Будем полагать, что Z = 0, поскольку случай Z ф 0 дает нулевые компоненты в базисных решениях, не влияя на условие (а). По свойству 3 имеем /ц ^ 1. Пусть /ц0 = 1 для некоторого го- Тогда либо го £ Р, либо го £ I]о для некоторого £ {г,..., п}.
а) го £ -Р1- Тогда 1% определяется уравнением ж»0 = ж»0, причем 1% = е»0, где е»0 -единичный вектор (петля в графе), и
Е^Ел‘ = /цо = 1-
»€ТГ »
б) г0 6 1к. Тогда /ц = 0 для любого ! £ ? (иначе нарушается неразложимость базисного решения). В силу дизъюнктности получаем, что X; П Тг = 0 для '] = г,..., п. Следовательно, ^ /ц. = ^ /ц = 0.
1^.ТГ I£ Р
Шаг индукции. Пусть (а) выполняется для j = к + 1. Докажем (а) для j = к. Согласно преобразованию 2, подставляем в первое уравнение системы (2):
Е 'г' + Е ( Е л) = Е (е^)^- (13)
*€£& д£Н(к+1'>\1&1к^к } де’Н(к+1\г^1к /
В силу индукционного предположения, 1 ^ ^2 91 Е 9г- Значит, ад входят в
левую часть (13) с (0,1)-коэффициентами, и (13) имеет вид (12)
^ ^ "1" ^ ^ СХ-Н ^ ^ (1кд(Хд .
'1еЬк д£Н(*+1) з6«++1)
Решение Ь £ определяется некоторым базисным решением этого 1одАНЛДУ:
Ь- = Е + Е аа$ + Е ая9= ^2 х+ $ + Е аз5-
'1еЬк з6«++1) деи(*+1) '1еЬк деН(^+1)
Последнее равенство верно, так как по свойству 2 выполняется ^ ад = 1, а значит,
деН(*+1>
найдется единственное д £ /Н++1\ для которого = 1.
Далее, поскольку Т), П Ьи = 0, то Е = Е л + Е ^ Е &■
*€Тц. *€Т*. д£'Н*-к + 1> г&Тк
Докажем, что ^ = 0 для любого д £ -ц(к+1} _ {у е ’Н^к+1) \ (1/,/ = —1}.
*€Т*
Действительно, имеем ^ д^ ^ д^ 1 и ^ <Чч9~ Е 91 = — 1- Если
гЕТ^4-1 г£7& гЕ/*ДЬ&
предположить, что ^ = 1, то 0 = ^ д* ^ ^ ^ ) 0 и приходим к противоречию
*€Т* »€/* г£1к\Ьк
д£П{_к+1).
Таким образом, получаем ^ Л* = ^ ^ Е 1- □
'1-ЕТ'к 'гЕ'Т^ г£Т*.„|_1
Отметим, что неравенство (б) условия теоремы 3 обеспечивает выполнение (11). Сложность обратного преобразования зависит от числа базисных решений в промежуточных системах . Определим (3 = шах {1^1} как максимальный размер
к=1}...}г
базиса Гильберта таких систем.
Теорема 4. Временная сложность алгоритма подстановки базиса Гильберта в наихудшем случае равна 0(тпС}).
Доказательство. Рассмотрим итерацию к преобразования 2. В уравнении (10) необходимо вычислить коэффициенты для каждого Ь £ 'Н1' к+1К Поскольку \П(-к+1)\ ^ § и суммирование выполняется не более чем по т неизвестным (г ^ 1и и г £ 1/1 \ Ьк), то получаем оценку сложности 0(т,С$). Для нахождения базиса Гильберта уравнения (10) используется алгоритм решения 1одАНЛДУ, требующий времени 0(тО).
Общее число итераций в преобразовании 2 ограничено г ^ п. Таким образом, временная сложность алгоритма составляет 0(2rmQ) = 0(nmQ). □
Определим функцию Qu = |%^|. Ее поведение определяет вычислительную сложность предлагаемого алгоритма. Если Q/, не возрастает при к = 1,..., г, то сложность ограничена размером q базиса исходной системы, так как Q = max Qu = Q\ = q. В этом
случае временная сложность алгоритма подстановки базиса Гильберта равна 0(mnq). Один из таких случаев представлен в следующей теореме.
Теорема 5. Пусть для каждого к или"Н^+1' = 0, или найдется g £ 7i^+1- такой, что dkg > 0. Тогда Qk не возрастает при к = 1,..., г.
Доказательство. Достаточно доказать, что содержит не менее Qk+i решений.
Покажем, что любое решение h, £ порождает, по крайней мере, одно уникальное решение h, в Зафиксируем произвольно / £ /./.. В силу представления
■ц(к+1) — иН^+1\ рассмотрим такие случаи.
1) h £ /Н++1\ Тогда (12) имеет базисное решение с компонентами: ж» = dkh s? 0 и ад = 1, остальные компоненты - нулевые. Формируем решение h = duu^i + h. Получаемые |/Н++1'*\ решений различны, поскольку порождаются разными h £
(Ы = 0).
2) h £ ф 0. Тогда по условию теоремы найдется g £ "Н^+1^: dug > 0, а (12)
имеет решение с двумя ненулевыми компонентами: ад = dug и ag = 1. Формируем решение h, = dkgh + д. Найденные \7~L^+1'\ решений различны. Иначе для разных
h, Ы £ Л^+1^ получаем, что dkgh + д dkgh' + д, и приходим к противоречию h = Ы.
Эти две группы решений не содержат одинаковые элементы. В самом деле, пусть h = dkhfii + h для h £ Н(£+1'> и д = dkgh1 + д для h' £ . Если dkh > 0, то
hi = dkh > 0 и gt = 0. Если dkh = 0, то равенство h = д влечет h, = dkgh1 + д, откуда следует, что h, не является неразложимым, и получаем противоречие с h £
Итоговая сложность алгоритма нахождения базиса Гильберта определяется сложностью рассмотренных выше алгоритмов и составляет 0(тп) + 0(mnqr) + 0(mnQ) = 0(mnQ). Если выполняется условие теоремы 5, то сложность составляет 0(mnq).
6. Заключение. Получен новый алгоритм решения систем одАНЛДУ, который основан на преобразовании исходной системы к треугольной форме, решении полученной более простой системы и выполнении подстановки базисных решений в обратном порядке.
Алгоритм использует метод исключения Гаусса, сложность которого зависит от числа базисных элементов промежуточных систем [10]. Оценка сложности предложенного алгоритма псевдополиномиальна и равна 0(mnQ), где Q ограничивает размеры базисов промежуточных систем. Теорема 5 показывает, что в некоторых случаях эту оценку можно сделать независимой от промежуточных систем. Более детальное изучение сложности является объектом наших дальнейших исследований.
Отметим, что сложность синтаксических алгоритмов тоже зависит от размера базисов ряда систем «близких» к исходной [6, 7]. Временная сложность наилучшего (в настоящий момент) синтаксического алгоритма составляет 0(m2nQ3), где Q - максимум среди размеров базисов некоторого конечного множества систем. В то же время, итерационный алгоритм линеен по т. Экспериментальный анализ синтаксических алгоритмов показывает [6, 8], что во многих случаях их сложность ведет себя как 0(mnq). Таким образом, при практическом использовании синтаксические и итеративные алгоритмы могут оказаться близкими по эффективности.
ПРИЛОЖЕНИЕ
Примеры. Будем для наглядности вычислять Ьк непосредственно, а не с использованием (9).
Пример 4.1 (сведение к 1одАНЛДУ). Рассмотрим систему одАНЛДУ (п = 3, т = 6,11 = {1,2}, /2 = {3,5}, /3 = {4,6})
{Х\ + Х2 = 2.Г;:
х3 + х5 = х2 + 2x4 + 2х6 .
Х4 + х6 = х2 + 2х3
Первое уравнение позволяет разрешить Б^ относительно Ь\ = {1} :
с(1) _ / Х\ + Х2 = 2х3 , „(2) _ / 2-3 + = + 2x4 + 2х@
~ \ Б^ ’ 86 ~ \ Х4 + х6 = х2 + 2х3
Разрешаем первое уравнение Б^ относительно Ь2 = {5} :
а(2) [ х3 + Х5 = Х2 + 2x4 + 2X6 , с(з) г „
, гае ЬК ' = { Х4 + х% = х2 + 2хз .
В итоге г = 3 и Б^ является 1одАНЛДУ. Ее базис Гильберта состоит из пяти решений:
Н™ = {(0,1,0,1,0,0)т, (0,1,0,0,0,1)т, (0,0,1,2,0,0)т, (0,0,1,1,0,1)т, (0,0,1,0,0,2)т}.
Поскольку Х\ и Хс, были исключены, то соответствующие компоненты решений равны нулю. Подстановка базиса в первое уравнение Б® дает
х^ = За^(1) + За^(2) + За^(з) + За^) + За^),
Н™ = {(0,1,0,1,3,0)т, (0,1,0,0,3,1)т, (0,0,1,2,3,0)т, (0,0,1,1,3,1)т, (0,0,1,0,3,2)т}.
Подставив в первое уравнение БЫ, получим, х\ + аН(1) + а^(2) = 2а/1(з) + 2ак(4) + 2ак(5> и находим, базис Гильберта исходной системы:
Н™ = { (2,0,1,2,3,0)т, (0,1,1,3,6,0)т, (0,1,1,2,6,1)т,
(2,0,1,1, 3,1)т, (0,1,1, 2, 6,1)т, (0,1,1,1,6, 2)т,
(2,0,1,0,3,2)т, (0,1,1,1,6,2)т, (0,1,1,0,6,3)т }.
В этом примере функция С$к не возрастает.
Пример 4.2 (сведение к системе содАНЛДУ). Рассмотрим систему одАНЛДУ (п = 4, т = 6, Ь = {1}, /2 = {2}, /3 = {6}, /4 = {3,4,5})
Х\ = Х2 + Х3 + Х§
5(1) ) х2 = Х4+ 2хг,
Хв = х2 + 2.Г;: + З.Гг,
Хз + Х4 + Х5 = XI
Третье уравнение можно разрешить относительно Ь\ = {6} :
г _ , о , о ( XI = Х2 + Хз + Х5
БМ = { Х3%~ Х2 + 2ЖЗ + ЗЖ5 , где Б™ = ! х2=х4 + 2х5
^ [ Х-л + .Г I + .Гг, .Г I
Продолжение преобразования 1 невозможно. Итак, г = 2, а может быть представлена в виде системы содАНЛДУ (см. теорему 1):
Х\ = Х2 + х:-3(2) _ } Х2 = Х4
Х;\ + X | X |
Х5=0
Ее базис Гильберта определяется двумя простыми контурами графа:
Н™ = {( 1,0,1,0,0,0)т, (1,1,0,1,0,0)т}.
Подставляем %® в соответствующее уравнение системы получая х$ = 2а^(і) + ак(2), и находим, базис Гильберта исходной системы
Н™={( 1,0,1,0,0,2)т, (1,1,0,1,0,1)т}.
Как и в предыдущем примере, функция (3/г не возрастает.
Пример 4.3 (возрастание функции (7/..). Рассмотрим систему одАНЛДУ (п = 3, т = 7,І1 = {1,2}, /2 = {3,4,5,6}, /3 = {7})
х\ + х2 =
= < Х3 + Х4 + х5 + х6 = х2 .
Х7 = Х2 + Х4 + х5 + Х6
При выполнении преобразования к треугольной форме получаем = {1}, Ь2 = {3},
с(2) [ %3 + Х4 + Х§ + Хв = Х2 „(з) , XXX
5 < , \ х7 = х2 + Х4 + х5 + хв.
[ Х7 = Х2 + Х4 + Х§ + Хв
Базисы Гильберта промежуточных систем
НМ = { (0,1,0,0,0,0,1)т, (0,0,0,1,0,0,1)т,
(0,0,0,0,1,0,1)т, (0,0,0,0,0,1,1)т },
= { (0,1,1,0,0,0,1)т, (0,1,0,1,0,0,2)т, (0,1,0,0,1,0,2)т, (0,1,0,0,0,1,2)т }.
Однако базис системы состоит из одного решения: НМ = {(0,1,1,0,0,0,1)т}.
Summary
Kulakov К. A., Korzun D. G., Bogoyavlenskiy Y. A. An iterative algorithm for finding Hilbert basis of homogeneous linear diophantine systems associated with context-free grammar.
The algorithm is based on the transformation of the initial system to the triangular form which is similar to the Gauss exclusion method. The transformation reduces the problem of finding Hilbert basis to either to the search of all simple contours in a directed graph or solving one equation of a special form. Algorithm complexity linearly depends on the size of Hilbert bases of the intermediate systems. A class of systems which complexity linearly depends on the number of equations, unknown quantities and the size of Hilbert basis of the initial system has been singled out.
Литература
1. Схрейвер А. Теория линейного и целочисленного программирования: В 2 т./ Пер. с англ. М.: Мир, 1991. Т. 1. 360 с.; Т. 2. 342 с.
2. Косовский Н. К., Тишков А. В. Логики конечнозначных предикатов на основе неравенств: Учеб. пособие. СПб.: Изд-во С.-Петерб. ун-та, 2000. 268 с.
3. Durand A., Hermann М., Juban L. On the complexity of recognizing the Hilbert basis of a linear Diophantine system // Theor. Comput. Sci. 2002. Vol. 270 (1,2). P. 625-642.
4. Богоявленский Ю. А., Корэун Д. Ж. Общий вид решения системы линейных диофан-товых уравнений, ассоциированной с контекстно-свободной грамматикой // Труды Петрозаводск. ун-та. Сер. Прикладная математика и информатика. 1997. Вып. 6. С. 79-94.
5. Filgueiras М., Tomas А. P. Solving linear constraints on finite domains through parsing // Proc. of the 5th Portuguese Conference on Artificial Intelligence / Eds. P. Barahona, L. Moniz Pereira, A. Porto. Springer-Verlag, 1991. Vol. LNAI 541. P. 1-16.
6. Корзун Д. Ж. Grammar-based algorithms for solving certain classes of nonnegative linear diophantine systems // Труды Междунар. семинара «Finnish Data Processing Week at the University of Petrozavodsk» (FDPW’2000). Vol. 3. Петрозаводск: Изд-во Петрозаводск, ун-та, 2001. С. 52-67.
7. Корзун Д. Ж. Syntactic methods in solving linear diophantine equations // Труды Междунар. семинара «Finnish Data Processing Week at the University of Petrozavodsk» (FDPW’2004). Vol. 6. Петрозаводск: Изд-во Петрозаводск, ун-та, 2005. С. 151-156.
8. Кулаков К. А., Корзун Д. Ж. Generating homogeneous systems of equations for testing and experimental analysis of linear diophantine solvers // Труды Междунар. семинара «Finnish Data Processing Week at the University of Petrozavodsk» (FDPW’2003). Vol. 5. Петрозаводск: Изд-во Петрозаводск, ун-та, 2005. С. 259-278.
9. Кулаков К. А. Генерация систем неотрицательных линейных диофантовых уравнений // Материалы Междунар. конференции «Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы». Петрозаводск: Изд-во Петрозаводск, ун-та, 2006.
Ч. 2. С. 58-65.
10. Contejean Е., Devine Н. An efficient incremental algorithm for solving systems of linear diophantine equations // Information and Computation. 1994. Vol. 113, N 1. P. 143-172.
11. Корзун Д. Ж. Решение одного класса линейных диофантовых уравнений в неотрицательных целых числах методами теории формальных языков // Труды Петрозаводск, ун-та. Сер. Прикладная математика и информатика. Петрозаводск: Изд-во Петрозаводск, ун-та, 1999. Вып. 7. С. 93-116.
12. Prabhaker Mateti, Narsingh Deo On algorithms for enumerating all circuits of a graph // SIAM J. Comput. 1976. Vol. 5(1). P. 90-99.
Статья рекомендована к печати проф. И. Л. Братчиковым.
Статья принята к печати 4 декабря 2007 г.