Минимальное количество арифметических операций для вычисления определителя

14

Была ли проведена работа по поиску минимального числа элементарных арифметических операций, необходимых для вычисления определителя матрицы N на N для малых и фиксированных N ? Например, Nзнак равно5 .

Lembik
источник
4
Я спрашивал экспертов об этом, и, по-видимому, в настоящее время даже не известно, нужно ли 9 умножений для вычисления определителя матрицы 3х3.
Джеффри Шаллит
@JeffreyShallit Если 9 возможно, это уже интересно (например, меньше n3 ). Как насчет n=4 ?
Лембик
3
Нет, совсем не интересно. 9 умножений для n = 3 следует разложением по минорам. При n = 4 снова разложение по несовершеннолетним дает 40. Я не знаю, как это сделать менее чем за 40 умножений.
Джеффри Шаллит
@JeffreyShallit О, я вижу, хорошая мысль. Удивительно (по крайней мере, для меня), если нет ничего лучше наивного для любого фиксированного . n
Лембик
Если кто-то знает, возможно, они могут сказать нам.
Джеффри Шаллит

Ответы:

9

Известно, что число арифметических операций, необходимых для вычисления определителя матрицы равно n ω + o ( 1 ) , где ωn×nnω+o(1)ω - константа умножения матрицы. Смотрите, например, эту таблицу в Википедии, а также ее сноски и ссылки. Обратите внимание, что асимптотическая сложность обращения матриц также совпадает с умножением матриц в этом же смысле.

Эквивалентность довольно эффективна. В частности, вы можете рекурсивно вычислить определитель матрицы , работая с блоками ( n / 2 ) × ( n / 2 ), используя дополнение Шура:n×n(n/2)×(n/2)

D invertibledet(ABCD)=det(D)det(ABD1C).

Таким образом, вы можете вычислить определитель путем вычисления двух ( n / 2 ) × ( n / 2 ) определителей, инвертирования одной ( n / 2 ) × ( n / 2 ) матрицы, умножения двух пар ( n / 2 ) × ( n / 2 ) матриц и некоторые более простые операции. Расширяя детерминантные вызовы рекурсивно, сложность заканчивается доминированием умножения и инверсии матриц.n×n(n/2)×(n/2)(n/2)×(n/2)(n/2)×(n/2)

nn=4det(D)D1BD1C2×8=16det(ABD1C)2+4+16+2+1=2540 от расширения кофактора. Использование алгоритма Штрассена сохраняет здесь два умножения, но более асимптотически.

O(n4)n2+ω/2+o(1)

А. Рекс
источник
Вы знаете какую-либо нижнюю границу только по числу умножений? Даже для n = 3?
Джеффри Шаллит
n×nnω+o(1)
2
Нижняя граница в статье В. Баура и В. Страссена "Сложность частных производных" ( dx.doi.org/10.1016/0304-3975(83)90110-X )
Владимир Лысиков