Алгоритм Чанки

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Алгоритм Чанки[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.