Быстрый алгоритм произведения двух гиперкомплексных чисел

реклама
УДК 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
Скачать