Алгоритм Чанки[1][2] — это алгоритм, позволяющий решать задачу вычисления определителяматрицы в классе NC. Идея алгоритма состоит в том, чтобы свести исходную задачу к решению системы относительно вектора, где — нижнетреугольная матрица, которую можно обратить за время с использованием процессоров.
Пусть , — матрицы размеров и соответственно. Тогда для вычисления матрицы достаточно параллельно вычислить для всех , .
Префиксные суммы в выражениях такого вида могут быть вычислены за время с применением параллельных процессоров. Таким образом, используя процессоров, можно вычислить всю матрицу за время .
Применяя схожую процедуру для вычисления , можно вычислить все степени матрицы, не превосходящие , что потребует времени и процессоров.
Здесь — время, необходимое для умножения двух квадратных матриц размера .
Это означает, что задачу обращения матрицы можно решить путём двух параллельно выполняемых обращений нижнетреугольных матриц и размера и двух последовательно выполняемых умножений.
Пусть — время, требуемое для обращения нижнетреугольной матрицы . Оно подчиняется рекуррентному соотношению
Для удобства вводится и введём вспомогательную величину , такую что
.
С учётом , можно выразить
Используя данное соотношение, можно записать
Таким образом, для произвольного справедливо
или в матричном виде
Для решения этой системы нужно обратить нижнетреугольную матрицу в левой части и умножить её на столбец из правой — все эти операции вместе с одновременным вычислением значений вида для всех могут быть выполнены за время с использованием процессоров. Получив решение , остаётся лишь взять последний элемент , который равен искомому .
Kozen, Dexter (1991), The Design and Analysis of Algorithms, New York: Springer-Verlag, pp. 166–170, ISBN0-387-97687-6
Солтис М.Алгоритм Чанки // Введение в анализ алгоритмов / пер. с англ. А. В. Логунова. — М.: ДМК Пресс, 2019. — С. 145—146. — 278 с. — ISBN 978-5-97060-696-4.