Алгоритм Чанки[1][2] — это алгоритм, позволяющий решать задачу вычисления определителя матрицы в классе NC. Идея алгоритма состоит в том, чтобы свести исходную задачу к решению системы относительно вектора , где нижнетреугольная матрица, которую можно обратить за время с использованием процессоров.

Параллельное возведение в степень

править

Пусть  ,   — матрицы размеров   и   соответственно. Тогда для вычисления матрицы   достаточно параллельно вычислить   для всех  ,  .

Префиксные суммы в выражениях такого вида могут быть вычислены за время   с применением   параллельных процессоров. Таким образом, используя   процессоров, можно вычислить всю матрицу   за время  .

Применяя схожую процедуру для вычисления  , можно вычислить все степени матрицы, не превосходящие  , что потребует   времени и   процессоров.

Здесь   — время, необходимое для умножения двух квадратных матриц размера  .

Обращение нижнетреугольной матрицы

править

Нижнетреугольную матрицу   размера   можно разбить на равные по размеру блоки

 ,

тогда обратная к ней матрица   примет вид

 .

Это означает, что задачу обращения матрицы   можно решить путём двух параллельно выполняемых обращений нижнетреугольных матриц   и   размера   и двух последовательно выполняемых умножений.

Пусть   — время, требуемое для обращения нижнетреугольной матрицы  . Оно подчиняется рекуррентному соотношению

 .

Выше показано, что  , поэтому окончательная оценка, в силу основной теоремы о рекуррентных оценках, равна

 .

Описание метода

править

Пусть   — квадратная матрица со стороной  . Её характеристический многочлен имеет вид

 ,

где  элементарные симметрический многочлен степени  , а  собственные значения матрицы  . В частности,

 след матрицы,
 определитель матрицы.

Для удобства вводится   и введём вспомогательную величину  , такую что

 .

С учётом  , можно выразить

 

Используя данное соотношение, можно записать

 

Таким образом, для произвольного   справедливо

 

или в матричном виде

 

Для решения этой системы нужно обратить нижнетреугольную матрицу в левой части и умножить её на столбец из правой — все эти операции вместе с одновременным вычислением значений вида   для всех   могут быть выполнены за время   с использованием   процессоров. Получив решение  , остаётся лишь взять последний элемент  , который равен искомому  .

Примечания

править
  1. Csanky, L.: Almost parallel matrix inversion algorithms. SIAM 618–623 (1976)
  2. Солтис, 2019

Литература

править
  • Kozen, Dexter (1991), The Design and Analysis of Algorithms, New York: Springer-Verlag, pp. 166–170, ISBN 0-387-97687-6
  • Солтис М. Алгоритм Чанки // Введение в анализ алгоритмов / пер. с англ. А. В. Логунова. — М.: ДМК Пресс, 2019. — С. 145—146. — 278 с. — ISBN 978-5-97060-696-4.