зультаты записываются в соответствующие поля результатов, флаг этой дочерней вершины принимает значение (— 2), меняются счетчики флагов, а процессоры распределяются процедурой distribFreeProc.
В этом же треке потока Streamout происходит обработка всех запросов на прием сообщений, учитывается изменение всех счетчиков флагов и проверяется завершенность вычислений всего текущего пу чка.
Если пучок вычислен, а за ним следует Легкий Лист, то этот лист вычисляется процедурой UghtLeaf в этом же потоке Streamout. После чего начинается процесс вычисления следующего пучка процедурой computNew Sheaf и используется весь список свободных процессоров.
Если же вычисление пучка не окончено, то распределяются свободные процессоры процедурой distribFreeProc. После этого трек потока Streamout завершается.
Работа выполнена при частичной поддержке грантов РФФИ (проект 08-07-97507) и программы "Развитие потенциала высшей школы"(проект 2.1.1/1853).
Список литературы
1. Коновалов И.А., Крюков В.А., Михайлов С.Н., Погребцов Л,A. Fortran-DVM - язык разработки мобильных параллельных программ. // Программирование. 1995. № 1. 17. С. 49-54.
2. Берзигияров П.К. Программирование на типовых алгоритмических структурах с массивным параллелизмом. Вычислительные методы и программирование. 2001. Т.2. С. 1-16.
3. Berzigyarov Р.К. Static Pipelines for Divide-and-Conquer Functions: transformation and Analysis. Preprint IV i AN. Moscow, 1995. N 8-391.
4. Campbell D.K.G. Towards the Classification of Algorithmic Skeletons. Technical Report YCS 276. Department of Computer Science, University of York. York, 1996.
5. Cole M.I. Algorithmic Skeletons: Structured Management of Parallel Computation. Massachusetts, Cambridge. Boston: MIT Press, 1989.
6. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Reading-Amsterdam-Tokyo: Addison-Wesley, 1995.
7. Smqh A., Schaeffer J., Szafron D. Views on template-based parallel programming /7 Proc. of CASCON’96. Toronto, 1996. C. 1-12.
8. Siu S. Openness and Extensibility in Design-Pattern-Based Parallel Programming Systems. Master of Applied Science Thesis. University of Waterloo. Ontario. Canada. Waterloo, 1996.
9. Siu S., De Simone М., Goswami D., Singh A. Design patterns for parallel programming j j Parallel and Distributed Processing Techniques and Applications. California. Pasadena, 1996. C. 230-240.
10. MacDonald S. Design patterns in enterprise j/ Proc. of CASCON’96. Toronto, 1996. C. 1-10.
11. MacDonald S., Szafron D., Schaeffer J., Bromling S. Generating parallel program frameworks from parallel design patterns / j Proc. of EuroPar’2000. Berlin: Springer-Verlag, 2000. C. 95-104.
12. Abramov S., Adamovitch A., Kovalenko M. T-system: programming environment providing automatic dynamic parallelizing on IP-network of Unix-computers. Report on 4-th International Russian-Indian seminar and exibition. Sept. 15-25. Moscow, 1997.
13. Малашонок Г.И., Валеев Ю.Д. Организация параллельных вычислений в рекурсивных символьно-численных алгоритмах. Труды конференции ПаВТ’2008 (Санкт-Петербург). Челябинск: Изд-во ЮУрГУ, 2008. С. 153-165.
Поступила в редакцию 17 ноября 2008 г.
ВЫЧИСЛЕНИЕ ХАРАКТЕРИСТИЧЕСКОГО ПОЛИНОМА ДЛЯ ПОЛИНОМИАЛЬНЫХ МАТРИЦ
© О.Н. Переславцева
Ключевые слова: вычисление характеристического полинома, алгоритм Сейфуллина, алгоритм Данилевского, вычислительная сложность алгоритма.
Рассматриваются алгоритмы вычисления характеристических полиномов полиномиальных матриц с использованием Китайской теоремы об остатках (КТО). Приводится верхняя оценка степени и наибольшего коэффициента характеристического полинома полиномиальной матрицы от одной переменной. Обсуждаются результаты численных экспериментов для прямого алгоритма Сейфул-лина и алгоритма Данилевского с применением КТО вычисления характеристического полинома.
1 Введение
Работа посвящена вычислению характеристических полиномов полиномиальных матриц от одной переменной. Теоретический анализ и сравнение алгоритмов вычисления характеристических полиномов числовых матриц были сделаны в работах [1, 2].
Среди прямых алгоритмов асимптотически лучшим будет алгоритм Сейфуллина [3], так как оценка числа бит-умножений данного алгоритма наименьшая. Это говорит о том, что в ходе алгоритма промежуточные числовые коэффициенты растут медленнее всех. Это будет верно и для полиномиальных матриц. Тогда алгоритм Сейфуллина будет лучшим среди прямых алгоритмов и для полиномиальных матриц.
Наименьшую сложность, выраженную в количестве операций над элементами матриц, имеет алгоритм Данилевского [4]. Поэтому, если применить к этому алгоритму китайскую теорему об остатках (КТО), он будет иметь асимптотически лучшее время по сравнению с другими алгоритмами с применением КТО.
Для сравнения алгоритма Сейфуллина и алгоритма Данилевского с применением КТО были написаны программы для вычисления характеристических полиномов для полиномиальных матриц от одной переменной.
2 Алгоритм Данилевского
Алгоритм Данилевского был применен совместно с китайской теоремы об остатках (КТО).
Пусть А = (а^(х)), 1 < i < п, 1 < ] < п, данная матрица. Выберем к простых чисел Рг,... ,Рк и перейдем к гомоморфным образам Ъ\х\ —> Ъ[х]/р1 — Ж,Р1{х}. Будем вычислять к характеристических полиномов для полиномиальных матриц Е 2”хп[х], 1 < г < к.
Для вычисления характеристического полинома для матрицы M^, 1 < г < к, возьмем то полиномов х, х — 1,..., х — (тп + 1) и перейдем к гомоморфным образам Щх\/рг Ърг Получим к • то матриц Му £ 2™*™, 1 < г < к, 1 < ^ < т.
Для каждой матрицы Мц вычислим характеристический полином над полем ЪРх, применив алгоритм Данилевского. Получим к ■ т полиномов 1 < г < к, 1 < 3 < т.
Каждый массив полиномов {/ц(у). /,2{у), • ■ ■, /т(у)} восстановим в полином Fi(x, у) по полиномиальным модулям х, х — 1,..., х — (т + 1), (1 < г < к). Т.е. ^(ж, у) есть характеристический полином матрицы Мг 6 Х"ХГ1[х].
Затем восстановим коэффициенты полиномов Р\(х,у),... ,Рк(х.у) по числовым модулям Р1, - ■ - ,Рк в полином Р(х,у), который является характеристическим полиномом данной матрицы А.
3 Оценка коэффициентов характеристического полинома полиномиальной матрицы от одной переменной
Для программной реализации модулярного алгоритма вычисления характеристического полинома матрицы необходимо знать кит.
Для полинома / введем норму |)/]| - наибольший по модулю коэффициент этого полинома. Для полиномов / и д верно, что ||/ + д\\ < ||/|| + ||5|| и ||/д|| < (min{deg }', degд} + Т)ЦЯ! • |Ы|.
Обозначим через А = (ау(х)), 1 < г < п, 1 < $ < гг, данную матрицу, з = таж{(1ееч2г;(г)}, \\А\\ = таж{(|Оу||} = а для 1 <i<n, 1 <]< п.
Пусть характеристический полином имеет вид F(x,y) — уп + fi(x)yn 1 + • • ■ + fn(x). Тогда то — max{deg/1 (х),... ,deg/n(x)} + 1.
Оценим т и у)\\.
Коэффициент fi(x) есть сумма всех определителей порядка п — г, опирающихся на главную диагональ. Поэтому т < п ■ s + 1.
Для получения оценки \\F(x,y)\\ воспользуемся алгоритмом Леверье-Фаддеева [5]:
В0 = Е: г — \..... п :
— ABi_i; fi = (!/i)TrAi\ li .1:-/, /•; }•
Для матрицы Bt будем рассматривать две нормы: ||£ii|d ~ наибольший по модулю коэффициент полиномов матрицы Bi, стоящих на главной диагонали, \\Bi\\nd - наибольший по модулю коэффициент полиномов матрицы Вне стоящих на главной диагонали.
При г = 1: \\А-\ IS < a, \\fi\\ < па, ||Bi||nd < а, \\Bi\\d < (п + 1)а.
Для i > 1: min{degBj_i,s} = s. Тогда Wfi\\ < (?г/г)|jj 1;
IHili < (n — l)(s + l)aiSS,_i|jncj + (s + l)ajjBj_i||d;
\\Bi~i\\nd = ||j4j„i|| и HBj-iHd = ||Aj_i|| + I i/i—11 ] -
Следовательно, |!Лг]| < n,-1(s + l)*_1a*i и ||/(|| < nz(s + 1)г-1аг для г > 1.
Таким образом, получили верхнюю оценку для коэффициентов характеристического полинома полиномиальной матрицы от одной переменной:
log2 J|-F(x, у)\\ < п(log2 п + log2 о + log2(s + 1)) - log2(s + 1).
4 Вычислительные эксперименты
В экспериментах использовались плотные полиномиальные матрицы от одной переменной. Рассматривались плотные полиномы степени 15, коэффициенты полиномов длиной 20 бит выбирались случайным образом. Размерность матрицы менялась в пределах от 5 до 25.
Рассматривались следующие алгоритмы:
1. прямой алгоритм Сейфуллина,
2. алгоритм Данилевского с применением КТО,
3. алгоритм, который реализован в системе Mathematica 5.1.
Результаты экспериментов приведены на рис. 1 и рис. 2.
Tims (sec) Time (sec)
5 < п < 25 5 < п < 12
Рис. 1, 2. Время вычисления характеристического полинома с использованием прямого алгоритма Сейфуллина (1), алгоритма Данилевского с применением КТО (2), алгоритма, реализованного в системе МаЛепіагіса 5.1 (3)
Алгоритм Данилевского с применением КТО выигрывает у остальных рассматриваемых алгоритмов. Например, при п = 20 он вычисляет характеристический полином быстрее в 1,8 раза, чем алгоритм Сейфуллина, и быстрее в 23 раза, чем алгоритм, который реализован в системе Майіетаїлса 5.1.
В дальнейшем предполагается распараллелить алгоритм Данилевского с применением КТО для полиномиальных матриц и провести эксперименты на кластере ТГУ и кластере МСЦ.
Работа выполнена при частичной поддержке грантов РФФИ (проект 08-07-97507) и программы ''Развитие потенциала высшей школы" (проект 2.1.1 /1853).
Список литературы
1. Икрамов Х.Д. О конечных спектральных процедурах в линейной алгебре // Программирование. 1994. N 1. С. 56-69.
2. Переславцева О.Н. О вычислении коэффициентов характеристического полинома // Вычислительные методы и программирование. Издательство Московского университета, 2008. Т.9. N.2. С. ISO-185.
3. Сейфуллин Т.Р. Вычисление определителя, присоединённой матрицы и характеристического полинома без деления // Кибернетика и системный анализ. 2002. N.5. С. 18-42.
4. Данилевский А.М. О численном решении векового уравнения // Матем. сб. 1937. Т.2(44). N1. С. 169-172.
5. Фаддеев Д.К., Фаддеева В.Н. Вычислительные методы линейной алгебры. М., Л.: Гос. изд. физ. мат. литературы, 1963.
Поступила в редакцию 17 ноября 2008 г.
РЕШЕНИЕ СИСТЕМ НЕОДНОРОДНЫХ И ОДНОРОДНЫХ ЛИНЕЙНЫХ УРАВНЕНИЙ НАД КОЛЬЦОМ ПОЛИНОМОВ
© О.А. Сажнева
Ключевые слова: система линейных неоднородных уравнений, р-адический метод, канонический базис целых решений однородной системы линейных уравнений над кольцом полиномов.
Аннотация
Рассматривается р-адический метод решения системы линейных неоднородных уравнений над кольцом полиномов. Приводится пример решения системы линейных неоднородных уравнений над кольцом полиномов. Описывается метод нахождения канонического базиса целых решений однородной системы линейных уравнений над кольном полиномов. Приводится пример нахождения канонического базиса.
1 р-адический метод решения системы линейных неоднородных уравнений над кольцом полиномов
Существуют разные методы решения систем линейных неоднородных уравнений в области главных идеалов R. Сравнение по оценкам сложности этих методов показывает преимущество метода, предложенного в работе [1]. В этом методе выделяются два этапа. На первом этапе вычисляется базисное множество решений системы в поле частных области. На втором строится базис целых решений.
Для построения решения системы в поле частных области сначала находится решение в фактор-кольце R/pk, где р - подходящий простой элемент кольца R, а степень к выбирается так, чтобы степень полинома превосходила степень произведения числителя и знаменателя в каждой рациональной компоненте вектора решения.
Решение системы в кольце R/pk осуществляется с помощью р-адического подъема [2]. Сначала найдем решение в R/p. Пусть хр = А~1 -ср, где индекс р означает отображение R -+ R/р. Чтобы найти решение в R/p2, рассмотрим систему А(хр + хр) = с. Так как d — с — Ахр делится нацело на р. то достаточно решить систему Ах = с' /р в R/p. Этот процесс продолжать до рк.