Алгоритм Чанского[1] — это алгоритм, позволяющий решать задачу вычисления определителя матрицы в классе
. Идея алгоритма состоит в том, чтобы свести исходную задачу к решению системы
относительно вектора
, где
- нижнетреугольная матрица, которую можно обратить за время
с использованием
процессоров.
Умножение матриц и их возведение в степень
Пусть
,
- матрицы размеров
и
соответственно. Тогда для вычисления матрицы
достаточно параллельно вычислить
для всех
,
. Каждую из сумм при помощи
процессоров и процедуры параллельного префикса можно вычислить за время
. Таким образом, используя
процессоров, можно вычислить всю матрицу
за время
. В частности, если
и
- квадратные, понадобится
процессоров и время
.
Используя процедуру параллельного префикса для цепочки
можно одновременно вычислить все степени матрицы, не превосходящие её размера
. В таком случае потребуется время
и
процессоров.
Обращение нижнетреугольной матрицы
Нижнетреугольную матрицу
размера
можно разбить на равные по размеру блоки
и тогда обратная к ней матрица
примет вид
Это означает, что задачу обращения матрицы
можно решить путём двух параллельно выполняемых обращений нижнетреугольных матриц
,
размеров
и двух последовательно выполняемых умножений. Обозначив через
время, требуемое для обращения матрицы
, получим рекурренту
Так как
,
Описание метода
Пусть
- квадратная матрица со стороной
. Её характеристический многочлен
,
где
- элементарный симметрический многочлен степени
, а
- собственные значения матрицы
. Заметим, что
,
. Определим
.
Введём вспомогательную величину
. Учитывая
, имеем
Используя соотношение
, получим тождество
Таким образом, для произвольного
справедливо
или в матричном виде
Для решения этой системы нам нужно обратить нижнетреугольную матрицу в левой части и умножить её на столбец из правой - все эти операции вместе с одновременным вычислением значений вида
для всех
мы можем выполнить за время
с использованием
процессоров. Получив решение
, остаётся лишь взять последний элемент
, который равен искомому
.
Примечания
- ↑ Csanky, L.: Almost parallel matrix inversion algorithms. SIAM 618–623 (1976)
Литература
- Kozen, Dexter (1991), The Design and Analysis of Algorithms, New York: Springer-Verlag, pp. 166–170, ISBN 0-387-97687-6