УДК 518:512.25 С.К. Росошек, А.И. Литвин, Н.Е. Черняева БЫСТРЫЙ АЛГОРИТМ ПРОИЗВЕДЕНИЯ ДВУХ ГИПЕРКОМПЛЕКСНЫХ ЧИСЕЛ Работа выполнена по гранту государственной поддержки ведущих научных школ Российской Федерации № 96-15-96095 «Исследования по комплексному анализу и алгебре». В статье рассматривается быстрый алгоритм произведения двух элементов алгебры гиперкомплексных чисел размерности N=2n, где n – натуральное число. Указанная размерность дает возможность использовать ортогональные матрицы УолшаАдамара, что позволяет существенно повысить эффективность алгоритма. Алгебры гиперкомплексных чисел (в частности, двойных и дуальных чисел, кватернионов, алгебра Кэли) находят применение в различных разделах математики и ее приложений [1–4]. 1. Матрицы Уолша-Адамара Н(n) порядка N=2n определяются по следующей рекуррентной формуле [5]: H (k − 1) H (k − 1) H (k ) = , k = 1,2, . . ., n, H (k − 1) H (k − 1) причем Н(0)=1. Тогда, например, 1 1 1 1 1 − 1 1 − 1 1 1 , H (2 ) = . H (1) = 1 1 −1 −1 1 − 1 1 − 1 − 1 1 Отметим следующие свойства матриц Уолша-Адамара [5]: 1) H(k) – симметрическая матрица; 2) H(k) – «почти ортогональная» матрица в смысле следующего равенства: H(k)Т⋅H(k)=2k E(k), где Е(k) – единичная матрица порядка 2k; 1 3) H −1 ( k ) = k H ( k ). 2 Для изложения алгоритма необходимо обобщение кронекеровского произведения матриц. Под кронекеровским произведением матрицы А размера m×n на матрицу В будем понимать матрицу С размера mk×nl вида a11 B a12 B ... a1n B a B a 22 B ... a 2 n B C = 21 . ... ... ... ... a m1 B a m 2 B ... a mn B Будем обозначать кронекеровское произведение С матриц А и В так: С=А⊗В. Обозначим строки матрицы В через В1, В2,..., Bk, а столбцы – B(1), B(2), …, B(l). Назовем кронекеровским произведением по строкам матриц А и В матрицу C’ вида A⊗B1 A⊗B 2 . C ′= ... A⊗B k В дальнейшем будем обозначать матрицу С’ так: С= A⊗B. Заметим, что аналогично можно определить кронекеровское произведение матриц А и В по столбцам так: C ′′ = A ⊗ B = A ⊗ B (1) A ⊗ B (2 ) ... A ⊗ B (l ) . В [6] были изучены некоторые свойства матриц C ′ и C ′′ . Отметим два из них, которые будут использованы в дальнейшем. [ 66 ] ~ Теорема 1. [6]. Пусть С=А⊗В, C ′= A⊗ B и C ′′= A⊗B . Тогда матрица С' (C'') приводится к матрице С перестановкой строк (столбцов). Теорема 2. [6]. Матрицу Уолша-Адамара Н(n) можно представить в виде: [ ] H (n ) = E (n − 1) ⊗ H (1) , n где E(n-1) – единичная матрица порядка 2 n −1 , 1 1 H (1) = . 1 −1 Пример. 1 1 1 1 1 1 1 1 1 −1 1 −1 1 −1 1 −1 1 1 −1 −1 1 1 −1 −1 1 −1 −1 1 1 −1 −1 1 H (3) = = 1 1 1 1 −1 −1 −1 −1 1 −1 1 −1 −1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 −1 −1 1 −1 1 1 −1 = 1 1 0 0 0 0 0 0 1 −1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 −1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 −1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 −1 . Как видно из примера, теорема 2 позволяет представить матрицу Уолша-Адамара, которая является плотно заполненной матрицей, в виде степени разреженной матрицы. 2. Перейдем теперь к алгебрам гиперкомплексных чисел. Пусть H=R +iR +jR +kR, где 1, i, j, k – базис алгебры H с таблицей умножения 1 i j k 1 1 i j k i j k i j k -1 k -j -k -1 i j -i -1 Пусть q1, q2, q3– кватернионы такие, что q1·q2=q3, где q 1 =a 0 + a 1 i + a 2 j + a 3 k , q 2 =b 0 +b1 i+b 2 j +b 3 k , q 3 =c 0 +c 1 i+c 2 j +c 3 k . В [7] был предложен алгоритм умножения кватернионов. Используем теорему 2 для модификации это- [ с 0 |c 1 |c 2 |c 3 ]= го алгоритма и его обобщения на другие алгебры гиперкомплексных чисел. Имеем, согласно [7]: [ ] − c 0 c1 | c 2 | c 3 = где − 2[a0b0 | a3b2 | a2b1 | a1b3 ] , n1 n 2 n 3 ] = [ a 0 a 1 a 2 a 3 ] A , [ p0 | p1 | p2 | p3 ] = [b0 | b1 | b2 | b3 ]A , 1 1 1 1 1 − 1 1 −1 . A= 1 1 −1 −1 1 − 1 −1 1 Поясним идею обобщения и улучшения этого алго-ритма для других алгебр гиперкомплексных чисел на примере алгебры псевдокватернионов. Пусть L – алгебра псевдокватернионов, т.е. четырехмерная вещественная алгебра L=R+iR+eR+fR, где 1, i, e, f – базис алгебры L с таблицей умножения 1 1 i e f i i -1 -f e e e f 1 i f f -e -i 1 Если z1,z2∈L, то z1⋅z2=z3∈L, где z1=a0+a1i+a2e+ +a3f, z2=b0+b1i+b2e+b3f, z3=c0+c1i+c2e+c3f. Тогда из равенства (a0 + a1i + a 2 e + a3 f )(b0 + b1i + b2 e + b3 f ) = = c 0 + c1i + c 2 e + c 3 f с учетом таблицы умножения для базиса L получаем матричное равенство [ a 0 a 1 a 2 a 3 ] B=[ c 0 c 1 c 2 c 3 ], , где где 1 A − 4 − 2[a1b1 | a 2 b3 | a1b3 | a 2 b1 ] = 1 [n 0 p 0 | n1 p1 | n 2 p 2 | n3 p 3 ]A − 4 [n0 1 i e f p0 0 0 0 0 p 0 0 1 =[ n 0 |n1 |n 2 |n 3 ] 0 0 p2 0 0 0 0 p 3 b0 b1 b2 b3 − b b 0 − b3 b 2 . B= 1 b2 − b3 b0 − b1 b3 b2 b1 b0 Матрицу В можно представить в виде В=L1–2L2, b 0 b1 b 2 b 3 0 0 0 0 b 0 b 0 b1 b 0 b 3 b 2 3 .115. , L2 = 1 L1 = 0 0 b 2 b 3 b 0 b1 b b1 3 0 0 0 0 b 3 b 2 b1 b 0 Согласно [7], матрицу L1 можно представить в виде p0 0 0 0 0 p1 0 0 −1 A , L1 = A 0 0 p2 0 0 0 0 p3 1 где A −1 = A , [ p 0 p 1 p 2 p 3 ] = [ b 0 b1 b 2 b 3 ] A . 4 p0 0 0 0 0 p1 0 0 −1 Тогда [a 0 | a1 | a 2 | a 3 ]A A − 0 0 p2 0 0 0 0 p3 −2 [ a 0 a 1 a 2 a 3 ] L 2 . Обозначая [ a 0 | a1 | a 2 | a 3 ] A = [ n0 | n1 | n2 | n3 ], получим 1 [n0 p0 | n1 p1 | n2 p2 | n3 p3 ]A − 2[a1b1 | a2b3 | a1b3 | a2b1 ]. 4 Подобную схему вычислений можно организовать для алгебр гиперкомплексных чисел размерности 2n,, у которых в таблице умножения базиса структурные константы равны ±1. Матрица В для таких алгебр представима в виде В=L1–2L2, где матрица L1 имеет тот же вид, что для алгебр кватернионов и псевдокватернионов, а матрица L2 подбирается в зависимости от алгебры. Данная схема организации вычисления произведения позволяет уменьшить число умножений за счет увеличения числа сложений. Оказывается, что применение теоремы 2 позволяет уменьшить и число сложений. Заметим, что A=H(2) и, следовательно, по теореме 2 имеем = 2 1 1 0 0 0 0 1 1 A= . 1 −1 0 0 0 0 1 − 1 В изложенной выше схеме вычислений умножение строки на матрицу А равносильно выполнению 12 операций сложения. Всего в алгоритме таких умножений три, тогда они дают 36 операций сложения. В то же время при представлении матрицы А в виде квадрата разреженной матрицы, умножение на А равносильно выполнению 8 операций сложения (умножение строки на разреженную матрицу дает 4 операции сложения, еще одно умножение на эту же матрицу — 4 операции сложения). Всего при таком представлении матрицы А три умножения строк на матрицу А дают 24 операции сложения. Итак, вычисление произведения кватернионов или псевдокватернионов обычным способом требует 16 операций умножения вещественных чисел и 12 операций сложения. При использовании изложенной выше схемы вычислений без применения теоремы 2 требуется выполнить 8 операций умножения вещественных чисел и 40 операций сложения. Наконец, при использовании схемы вычислений с применением теоремы 2 необходимо выполнить 8 операций умножения вещественных чисел и 28 операций сложения (умножения на абсолютные константы 1/4 и 2, присутствующие в данном алгоритме, не учитываются). 3. Естественно предположить, что с ростом размерности алгебры выигрыш в числе операций за счет использования разреженной матрицы будет расти. Рассмотрим теперь восьмимерную вещественную алгебру Кэли P=R+i1R+i2R+...+i7R, где 1, i1, i2,..., i7 – базис алгебры P c таблицей умножения 67 1 i1 i2 i3 i4 i5 i6 i7 1 1 i1 i2 i3 i4 i5 i6 i7 i1 i1 –1 i3 – i2 i5 i2 i2 – i3 –1 i1 i6 i7 i3 i3 – i1 –1 i7 – i6 i5 – i4 i4 i4 – i5 – i6 – i7 –1 i1 i2 i3 i5 i5 i4 – i7 i6 i6 i7 i4 i7 i7 – i6 i2 i6 – i4 – i7 i5 i4 i6 – i4 – i5 – i1 –1 – i3 – i5 – i2 i3 – i3 – i2 b0 0 0 0 0 0 0 0 0 0b 0b 0 0b 3 5 6 b b b 0 0 0 0 0 1 6 7 0b 0 0b 0b 0 2 7 5 L 2 = b b 0 0 0 0 0 1 2 b3 0b 0b 0 0 0b 4 6 2 0 b7 b4 0 0 b3 0 0 0 0b b 0 0 b 0 5 4 1 i2 Тогда –1 – i1 i1 p0 0 0 L1 = H ( 3 ) 0 0 0 0 –1 W1, W2∈P, то W1⋅W2=W3∈P, W1= a 0 +a 1 i 1 +a 2 i 2 + ... +a 7 i 7 , W2= b 0 +b1 i 1 +b 2 i 2 + ... +b 7 i 7 , W3 = c 0 +c 1 i 1 +c 2 i 2 + ... +c 7 i 7 . Тогда из равенства (a0 + a1i1 + a 2 i2 + ... + a7 i7 ) × Если где × (b0 + b1i1 + b2 i2 + ... + b7 i7 ) = с0 + c1i1 + c 2 i2 + ... + c7 i7 с учетом таблицы умножения для базиса P получаем матричное равенство [ a 0 |a1 |a 2 |...|a 7 ] B=[ −c 0 |c1 |c 2 |...|c 7 ] , где − b 0 b1 b1 b 0 . b 3 . −b 2 B= . b5 . −b 4 − . b 7 b 7 b 6 b 2 b3 b 4 b5 b6 b7 −b 3 b 2 −b 5 b 4 b 7 −b 6 b 0 −b1 −b 6 −b 7 b 4 −b 5 b1 b 0 −b 7 b 6 −b 5 b 4 b 6 b 7 b 0 −b1 −b 2 −b 3 b 7 −b 6 b1 b 0 b 3 −b 2 −b 4 b 5 b 2 −b 3 b 0 b1 −b 5 −b 4 b 3 b 2 −b1 b 0 . b1 b0 b3 b2 b5 b4 b7 b6 b2 b3 b0 b1 b6 b7 b4 b5 b3 b2 b1 b0 b7 b6 b5 b4 b4 b5 b6 b7 b0 b1 b2 b3 b5 b4 b7 b6 b1 b0 b3 b2 b6 b7 b4 b5 b2 b3 b0 b1 b7 b6 b5 b4 , b3 b2 b1 b0 0 p1 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 p7 H −1 , где 1 H (3), [ p 0 | p1 | ... | p 7 ] = [b0 | b1 | ... | b7 ]H (3) . 8 Продолжая подобно тому, как для кватернионов и для псевдокватернионов, получим [− с0 | c1 | c2 | ...| c7 ] = 1 [n0 p0 | n1 p1 | n2 p2 | ...| n7 p7 ]H h (3) − 8 −2 [ a 0 b 0 a 3 b 2 +a 5 b 4 +a 6 b 7 a 1 b 3 +a 6 b 4 +a 7 b 5 a 2 b1 + H h−1 (3) = + a 5 b6 + a 7 b4 | a1b5 + a 2 b6 + a 3 b7 | a 2 b7 + a 4 b1 + Матрицу В можно представить в виде B=L1-2L2, где b 0 b1 b 2 b L1 = 3 b 4 b5 b 6 b 7 . a 6 b 3 a 3 b 5 + a 4 b 2 + a 7 b1 a 1 b 6 + a 4 b 3 + a 5 b 2 ] . Сравним число операций при обычном умножении чисел Кэли, умножении по алгоритму без применения теоремы 2 и по алгоритму с применением разреженного представления по теореме 2. При обычном умножении чисел Кэли используются 64 вещественных умножения и 56 сложений. При умножении по алгоритму без применения теоремы 2 соответственно 30 вещественных умножений и 190 сложений. А при умножении по алгоритму с применением разреженного представления используются 30 вещественных умножений и 46 операций сложения. Таким образом, используя факторизацию матриц Уолша-Адамара с применением обобщенного кронекеровского произведения матриц, удается существенно повысить эффективность алгоритма. ЛИТЕРАТУРА 1. Арнольд В.И. Геометрия сферических кривых и алгебра кватернионов // Успехи матем.наук. 1995. Т. 50, вып. 1. С. 4–68. 2. Манин Ю.И. Калибровочные поля и комплексная геометрия. М.: Наука, 1984. 3. Кантор И.Л., Солодовников А.С. Гиперкомплексные числа. М.: Наука, 1973. 4. Яглом И.М. Комплексные числа и их применение в геометрии. М.: Наука, 1976. 5. Ахмед Н., Рао К. Ортогональные преобразования при обработке цифровых сигналов. М.: Связь, 1980. 6. Быков В.И., Кожуховский А.Д., Росошек С.К., Литвин А.И., Иванова В.А. Обобщенные кронекеровские произведения матриц и их применения. // Электронное моделирование. 1991. Т. 13, № 5, C. 14–19. 7. Макаров О.М. Алгоритм умножения двух кватернионов // Журн. вычислит. матем. и матем. физики. 1977. T. 17. № 6, С. 1574–1575. Статья представлена кафедрой алгебры механико-математического факультета Томского государственного университета, поступила в научную редакционную коллегию «Математика» 24 декабря 1999 г. 68