Алгоритм декомпозиции полиномов, основанный на разбиениях

УДК 519.16:004.02

М.Ю. Перминова, В.В. Кручинин, Д.В. Кручинин

Алгоритм декомпозиции полиномов, основанный на разбиениях

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

В настоящее время при решении задач моделирования и математического анализа широко применяются системы компьютерной алгебры, относящиеся к классу систем символьных вычислений [1—3]. Одной из функций таких систем является представление полинома в виде композиции двух полиномов. Решение задачи представления полиномов в виде композиции двух полиномов имеет некоторую историю. Так, в 1976 г. американские ученые Д.Р. Бартон и Р.Е. Зиппель показали, что декомпозиция полиномов может упростить поиск корней в символьном виде. При этом они указали, что многие системы символьной алгебры поддерживают декомпозицию полиномов для таких целей [4]. В 1985 г. эти же ученые предложили два алгоритма декомпозиции полиномов [5]. Первый из них находил коэффициенты полиномов двух переменных, второй - полиномов одной переменной. Упрощенную версию второго алгоритма представили Алагар и Тан [9]. Их алгоритм был основан на дифференцировании исходного полинома.

В 1989 г. Д. Козен и С. Ландау предложили свой алгоритм декомпозиции полиномов в совместной статье [7]. По данному алгоритму находились коэффициенты внутреннего полинома. Затем для получения коэффициентов внешнего полинома решалась система уравнений, основанная на матрице коэффициентов внутреннего полинома. Далее проводилась проверка ранее найденных коэффициентов.

В 2003 г. корейские ученые Джун-Кюн Сон и Мен-Су Ким вместе с ученым из Израиля Г. Элбером предложили еще один алгоритм декомпозиции полиномов [8]. Он состоял из двух частей. По первой части алгоритма по исходному полиному вычислялся внутренний полином. Затем по второй части находился внешний полином.

В данной статье предложен новый алгоритм декомпозиции полиномов, основанный на использовании методов нахождения коэффициентов композиции производящих функций, развитый в работах [9, 10], и генерации разбиений [11].

1 2 3 t

Получение системы уравнений. Пусть дан полином F(x) = ^/¡х1 = f\x+f x + fx +...+ftx .

i=1

Необходимо представить F(x) в виде композиции двух полиномов A(x) и B(x), т.е.

F (x) = B (A( x)), методом, основанным на разбиениях. При этом:

т 2 3 S 2 3

A(x) = ^ a^x1 = a1x+a2 x + 03 x +...+ amxm, B(x) = ^ bix1 = ¿1x+¿2 x + ¿3 x +...+bsxs, 1=1 i=1 где ai и ¿1 - искомые коэффициенты; m и s - степени полиномов A(x) и B(x) соответственно (t = т • s ).

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

F(x) = Ba (Ax (x)), Ba (x) = B(ax), Ax (x) = где a * 0.

Воспользуемся следующей формулой для нахождения композиции производящих функций [9]:

fn = £aA

к =1

где коэффициенты АА (п,k) представляются на основе композиций натурального числа п :

лА

щ еСп

k

где Сп - множество всех композиций натурального числа п ; - композиция Е^-г = п, имеющая

1=1

ровно k частей. Поскольку существует связь между композициями натурального числа и разбиениями, можно записать представление АА (п, k) на основе разбиений

k V1а-7'2 ,

ЛП-Л) 11 Г2 Г

АА (п, k) = е

где Рп - множество всех разбиений натурального числа п; - разбиение, имеющее ровно k частей; гу - не повторяющиеся части разбиения |£ ; I - число не повторяющихся частей; Л -число повторений частей г в разбиении. Здесь в разбиении в отличие от композиции не учитывается порядок частей, поэтому в выражении (3) мультиномиальный коэффициент показывает, сколько существует вариантов композиций, состоящих из тех же частей разбиения. При этом справедлива следующая система уравнений

|Л + 72 +••+Л = k,

1ЛЛ + Г272 +••+ и) = п

где I < £ .

Решение системы уравнений (4) есть все разбиения числа п, в которых ровно k частей [12].

Подставив (3) в (1), получаем систему из п уравнений:

Е Е

k=1^ еРп КЛ72 -Л) Г Г2 г

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

Учитывая, что степени полиномов ограничены, части разбиения гу не должны превышать т , т.е. Гу < т . Также коэффициенты bk ограничены степенью 5 полинома В(х), т.е. £ < 5 . Степень р исходного полинома Е(х) ограничивает значения п, т.е. п < t.

Анализ формулы (5) показал, что для получения системы уравнений необходимо получить все разбиения (т,5,п), где п - число, представляемое разбиением; 5 - число частей разбиения, каждая из которых не превосходит т . Такие разбиения исследовал Г. Эндрюс. Он получил следующую рекуррентную формулу для числа разбиений р(т,5,п) [13]:

р(т, 5,п) = р(т, 5 —1,п) + р(т-1,5,п — 5).

Используя эту формулу и метод построения алгоритма комбинаторной генерации [12, 14, 15], авторами разработаны оригинальные алгоритмы генерации и нумерации таких разбиений [11].

Свойства системы уравнений. На основе подхода построения системы уравнений, основанной на генерации разбиений, исследуем её свойства. Для этого рассмотрим композиционную формулу (1), на которой основаны уравнения в системе. Коэффициенты АА (п,£) можно представить в виде треугольной матрицы

АА А1,1

аа А2,1 аа А2,2

аа А3,1 аа А3,2 аа А3,3

аа Ап,1 аа Ап ,2 аа Ап,3  АА

В первом столбце данной матрицы записаны коэффициенты производящей функции А(х),..., в £ -м столбце матрицы - коэффициенты производящей функции [А(х)]£ [12]. Так как степень т полинома А(х) известна, значит, число коэффициентов производящей функции А(х) равно т . По-

этому, основываясь на свойствах треугольной матрицы [12], можно сделать вывод о том, что в первом столбце будет т элементов, не равных нулю. Во втором столбце нули начнутся на (т +1) -й позиции, в третьем - на (2т + 1)-й, в четвертом - на (3т + 1)-й, ..., в (к -1)-м - на ((к - 2)т + 1) -й позиции, а в к -м - на ((к -1)т + 1) -й позиции. Таким образом, формула для подсчета ненулевых ко -эффициентов в к -м столбце треугольной матрицы имеет вид (кт - к +1). Наглядно это можно представить следующим образом (для т = 2):

Аа А1,1

аА аА

а2,1 л2,2

0 АА А А3,3

0 аа А4,2 А А4,3 А А4,4

0 0 А А5,3 А А5,4 А А5,5

0 0 А6,3 А А6,4 А А6,5 А А6,6

Коэффициенты Ьк ограничены степенью 5 полинома В(х). Ниже показан вид коэффициентов Ьк при 5 = 3 :

Ь1

Ь1 Ь2

Ь1 Ь2 Ь3

Ь1 Ь2 Ь3 0

Ь1 Ь2 Ь3 0

Ь1 Ь2 Ь3 0

0

... 0

Далее рассмотрим вид системы уравнений (5). Он зависит от соотношения параметров т и 5. Например, для т < 5 (при т = 2, 5 = 3) система уравнений имеет вид

А^Ь = /1

А2А1Ь1 А2,2Ь2 = /2 о а3а2Ь2 а3а3ЬЗ = /з

о а4а2ь2 а4азьЗ 0 = /4

0 0 а5азьЗ 0 0 = /5

0 0 а6азьЗ 0 0 0 = /6

0 0 0 0 0 0 0 = /7 0 0 0 00000 = /8

для т>5 (т = 3, 5 = 2):

аАь1 = /1

А2,2Ь2 = /2

азА1Ь1 А3А2 Ь2 0 = /3

0 А4,2Ь2 0 0 = /4

0 А5А2Ь2 0 0 0 = /5

0 А6,2Ь2 0 0 0 0 = /6

0 0 0 0 0 0 0 = /7

0 0 0 0 0 0 0 0 = /8

Для дальнейшего удобства каждому уравнению в системе присвоим номер в соответствии с индексом коэффициента /. Например, уравнения из (6) будут иметь следующие номера:

А\\Ьь\ = /1 — номер 1, А^лЬ + А^^р! = /2 — номер 2, А^Ь + АА2Ь2 = /3 — номер 3, А^г = /4 — номер 4, А^г = /5 — номер 5, А^2р2 = /б — номер 6.

Полученная таким образом система состоит из t уравнений, при этом число неизвестных переменных равно т + 5 (т неизвестных коэффициентов полинома А(х), так как т - это степень полинома А(х), 5 неизвестных коэффициентов полинома В(х)). При этом t = т5 > т + 5 , поэтому достаточно решить т + 5 уравнений из полученной системы.

Система уравнений имеет множество решений, так как представить полином в виде композиции можно бесконечным числом вариантов (см. разд. Получение системы уравнений). Для исключения такой ситуации одному из коэффициентов присвоим фиксированное значение 1. Таким коэффициентом будет ат , т.е. ат = 1.

Найденное решение необходимо проверить на существование композиции.

Таким образом, множество всех уравнений системы делим на два подмножества:

• т + 5 — 1 уравнений - это уравнения, которые решаются для нахождения коэффициентов ау и Ьу. При получении решения данных уравнений нельзя сказать, существует композиция или нет;

• оставшиеся t — (т + 5 — 1) уравнений - это уравнения, с помощью которых проверяется наличие композиции при найденных значениях коэффициентов ау и Ьу.

Свойство 1. При наличии композиции все оставшиеся уравнения решаются.

Свойство 2. При отсутствии композиции хотя бы одно уравнение из множества оставшихся не имеет решения.

т + 5 —1 уравнений для решения выбираются следующим образом. В системе уравнений (5) число членов в уравнениях с номерами t — т < г < t меньше числа членов в уравнениях с номерами 1 < I < 5 — 1, а наибольшее число членов содержится в уравнениях, которые имеют номера, близкие к tl2. Поэтому берем уравнения, которые имеют номера 1 < у < 5 — 1 и t—т < у < t. Решить выбранные уравнения можно последовательно, начиная с последнего уравнения системы. В последнем уравнении вычисляется значение Ь5 . И далее методом подстановки в последующих уравнениях рассчитываются значения оставшихся переменных. При подстановке в последующие уравнения значений известных коэффициентов уравнения принимают линейный вид.

Решение выбранных уравнений является коэффициентами ау и Ьу полиномов А(х) и В(х).

Алгоритм декомпозиции полиномов, основанный на разбиениях. Рассмотренные выше свойства систем уравнений (5) позволяют построить оригинальный алгоритм, основанный на генерации разбиений. На вход алгоритма подается исходный полином Е(х), на выходе получаются два полинома, композиция которых представляет собой полином Е(х). Основными элементами алгоритма являются:

• Е (х) - исходный полином;

• Б - список известных коэффициентов ау и Ьу полиномов композиции А(х) и В(х) соответственно. Изначально Б = {ат = 1};

• Т - список номеров уравнений системы (5), #Т - мощность множества Т;

• Ое^( т,5) формирует список Т, согласно критериям выбора уравнений (см. разд. Свойства системы уравнений): из системы уравнений берем уравнения с номерами 1 <у < 5 —1 и t—т <у < t;

• Ро1у - полином, из которого формируется уравнение Ед;

• L - путь в дереве разбиений;

• First( m, s,n) находит путь от корня (m, s, n) к самому левому листу дерева разбиений. Здесь m - степень полинома A(x), s - степень полинома B(x);

• Next( m,s,n) находит следующий путь в поддереве дерева разбиений;

• GetMonom(P) формирует моном по разбиению Р (см. разд. Получение системы уравнений);

• GetEquation(Poly) формирует уравнение, приравнивая полином к соответствующему коэффициенту fi, т. е. получаемое уравнение Eq имеет вид: Polyi = f см. формулу (5).

На рис. 1 представлен сам алгоритм.

GetDecomposition(F(x)) :=

D = { am = 1 }, T = GetT(m, s), // для каждого уравнения for (j = 1, j ф #T + 1, j++ ) do Poly = {},

// получаем моном и решаем уравнение

for ( L = First(m,s, Tj ), L ф null, L = Next(m,s, Tj )) do

P = GetPartition(L), // получаем разбиение P числа Tj M = GetMonom(P), // получаем моном M для Tj , k

Poly = Poly + M, // добавляем моном M в полином Poly // получаем уравнение Eq,

// подставляем в него значения известных коэффициентов из D Eq = GetEquation

end

S = Solve(Eq), // получаем решение S линейного уравнения Eq D = D + S // добавляем S в список D

end

Рис. 1. Алгоритм декомпозиции полиномов, основанный на разбиениях

Кратко опишем работу алгоритма. В список коэффициентов D записываем заданное значение коэффициента am , т.е. D = jam = 1}. Формируем список номеров уравнений T функцией GetT. Затем

для каждого уравнения из списка T генерируется список разбиений P, по P получается список мономов M. Далее из мономов составляется уравнение Eq и находится его решение S. Найденные коэффициенты добавляются в список известных коэффициентов D .

Анализ решения. Найденные коэффициенты полиномов A(x) и B(x) необходимо проверить на существование композиции. Возможны следующие варианты проверки найденного решения:

1) подставить найденные коэффициенты во все оставшиеся уравнения и решить их. Если все эти уравнения решаются, то композиция существует, иначе композиции нет;

2) проверить значения в заданных точках xi. То есть взять некоторые точки xi и подставить их в исходный полином и полиномы композиции с найденными коэффициентами. Если композиция существует, то будут выполняться равенства F(x;-) = A{B{xi));

3) из оставшихся уравнений каким-либо способом выбрать несколько уравнений, подставить в них найденные коэффициенты и с определенной вероятностью сделать вывод о существовании или отсутствии композиции.

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

Литература

1. Бухбергер Б., Калме Ж., Калтофен Э. и др. Компьютерная алгебра. Символьные и алгебраические вычисления / пер. с англ. - М.: Мир, 1986. - 392 с.

2. Мысовских В.И. Системы компьютерной алгебры и символьные вычисления // Записки научных семинаров ПОМИ РАН. - 2001. - Т. 281. - С. 227-236.

3. Кулябов Д.С., Кокотчикова М.Г. Аналитический обзор систем символьных вычислений // Вестник РУДН. Сер. «Математика. Информатика. Физика». - 2007. - № 1, 2. - С. 38-45.

4. Barton D.R. Polynomial decomposition / D.R. Barton, R.E. Zippel // Proceedings of Symposium on Symbolic and Algebraic Manipulation. - 1976. - P. 356-358.

5. Barton D.R. Polynomial decomposition algorithms / D.R. Barton, R.E. Zippel // Journal of Symbolic Computation. - 1985. - Vol. 1, № 2. - P. 159-168.

6. Alagar V.S. Fast polynomial decomposition algorithms / V.S. Alagar, M. Thanh // Proceedings of European Conference on Computer Algebra. - 1985. - P. 150-153.

7. Kozen D. Polynomial decomposition algorithms / D. Kozen, S. Landau // Journal of Symbolic Computation. - 1989. - № 7. - P. 445-456.

8. Seong J.-K., Elber G., Kim M.-S. Polynomial Decomposition and Its Applications [Электронный ресурс]. - Режим доступа: http://www.cs.utah.edu/~seong/decomposition.pdf, свободный (дата обращения: 09.07.2015).

9. Кручинин В.В. Степени производящих функций и их применение / В.В. Кручинин, Д.В. Кручинин. - Томск: ТУСУР, 2013. - 234 с.

10. Kruchinin D.V. Application of a composition of generating functions for obtaining explicit formulas of polynomials / D.V. Kruchinin, V.V. Kruchinin // Journal of Mathematical Analysis and Applications. - 2013. - Vol. 404, № 1. - P. 161-171.

11. Перминова М.Ю. Алгоритмы рекурсивной генерации ограниченных разбиений натурального числа / М.Ю. Перминова, В.В. Кручинин // Доклады Томского государственного университета систем управления и радиоэлектроники. - 2014. - № 4(34). - С. 89-94.

12. Кручинин В.В. Комбинаторика композиций и ее приложения / В.В. Кручинин. - Томск: В-Спектр, 2010. - 156 с.

13. Эндрюс Г. Теория разбиений / пер. с англ. - М.: Наука. Главная редакция физико-математической литературы, 1982. - 256 с.

14. Кручинин В.В. Рекурсивные композиции деревьев и их свойства / В.В. Кручинин // Доклады Томского государственного университета систем управления и радиоэлектроники. -2007. - № 2(16). - С. 75-80.

15. Кручинин В.В. Алгоритмы генерации и нумерации композиций и разбиений натурального числа n / В.В. Кручинин // Доклады Томского государственного университета систем управления и радиоэлектроники. - 2008. - № 2(17). - С. 113-119.

Перминова Мария Юрьевна

Аспирант каф. промышленной электроники (ПрЭ) ТУСУРа Тел.: +7 (382-2) 70-15-53 Эл. почта: pmy@2i.tusur.ru

Кручинин Владимир Викторович

Д-р техн. наук, профессор каф. ПрЭ Тел.: +7 (382-2) 70-15-54 Эл. почта: kru@ie.tusur.ru

Кручинин Дмитрий Владимирович

Мл. науч. сотрудник каф. комплексной информационной безопасности электронно-вычислительных

систем ТУСУРа

Тел.: +7 (382-2) 70-15-54

Эл. почта: kdv@keva.tusur.ru

Perminova M.Yu., Kruchinin V.V., Kruchinin D.V.

Algorithm for decomposition of polynomials based on partitions

In this paper we consider a problem of polynomials decomposition. We solve that problem by developing a special algorithm which relies on the formula that allows to find composition coefficients of generating functions. That formula is based on partition of a natural number. Keywords: decomposition of polynomials, generation of partitions, algorithm.