Какой самый быстрый алгоритм для вычисления ранга прямоугольной матрицы?

15

Учитывая матрицу m×n (при условии, что mn ), каков самый быстрый алгоритм для вычисления его ранга и базиса столбцов?

Я знаю, что это может быть решено с помощью линейного пересечения матроидов, что подразумевает детерминистический алгоритм времени O(mn1.62) и рандомизированный алгоритм времени . Существует ли детерминированный по времени алгоритм, который более непосредственно сводит задачу (или исключение Гаусса) к умножению матриц?O ( m n ω - 1 )O(mnω1)O(mnω1)

Хо Йи Чунг
источник

Ответы:

9

Вы можете привести -матрицу в эшелонированную форму за время O ( n ω + ϵ ) для любого ϵ > 0 . См. Книгу «Теория алгебраической сложности» Бургиссера, Клаузена, Шокроллахи, раздел 16.5.2n×nO(nω+ϵ)ϵ>0

Теперь вы применяете эту процедуру раз к вашей m × n -матрице. Это дает алгоритм с O ( m n ω - 1 ) арифметическими операциями.m/nm×nO(mnω1)

Если вы приведете -матрицу в эшелонированную форму, то она будет содержать нулевую матрицу размера n × n впоследствии. Вы берете оставшуюся n × n -матрицу, добавляете новый n × n -блок вашей входной матрицы и переводите ее в эшелонированную форму и так далее.2n×nn×nn×nn×n

5501
источник
1
Вы имеете в виду разбиение строк на m / n группы? Как вы комбинируете результаты m / n, чтобы получить рейтинг? Рассмотрим две строки в форме эшелона из разных групп, у которых в первом столбце есть 1, они могут иметь ранг 2, верно? mm/nm/n
Хо Йи Чунг
Есть ли нижняя граница для этого? Как в ранге есть вычислительная сила?
Томас Але
3

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

Айнеш Бакши
источник
2
O(mnω1)
1
Спасибо что подметил это. Приведенная выше цитата - статья ОП, поэтому мой ответ в основном для полноты.
Айнеш Бакши