Учитывая матрицу (при условии, что ), каков самый быстрый алгоритм для вычисления его ранга и базиса столбцов?
Я знаю, что это может быть решено с помощью линейного пересечения матроидов, что подразумевает детерминистический алгоритм времени и рандомизированный алгоритм времени . Существует ли детерминированный по времени алгоритм, который более непосредственно сводит задачу (или исключение Гаусса) к умножению матриц?O ( m n ω - 1 )
Мы можем вычислить рангm×n матрицы А в O~(nnz(A)+rω) времени, где nnz(A) является количество ненулевых элементов в A и r есть ранг A . Это следует из теоремы 1.1 в Cheung et. и др. [CKL'13] и бинарный поиск по r . Это быстрее, чем алгоритм O(mnω−1) , упомянутый выше.
источник