Який найшвидший алгоритм для обчислення рангу прямокутної матриці?


15

З огляду на матрицю (якщо вважати ), який найшвидший алгоритм для обчислення його рангу та основи стовпців?m×nmn

Я знаю, що це можна вирішити за допомогою лінійного перетину матроїдів, що передбачає детермінований алгоритм часу та рандомізований алгоритм часу . Чи існує алгоритм детермінованого часу , який більш безпосередньо зводить задачу (або усунення Гаусса) до матричного множення?O(mn1.62)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


1
Ви маєте на увазі поділ рядків на m / n групи? Як ви комбінуєте результати м / п, щоб дати ранг? Розглянемо два ряди в ешелонній формі з різних груп, у яких обоє мають 1 у першому стовпчику, вони можуть мати ранг 2 правильно? mm/nm/n
Ho Yee Cheung

Чи є нижня межа для цього? Як в ранзі є якась обчислювальна сила?
Томас Ейл

3

m×nO~(nnz(A)+rω)nnz(A)ArArO(mnω1)


2
O(mnω1)

1
Дякуємо, що вказали на це. Цитування вище - це документ ОП, тому моя відповідь здебільшого стосується повноти.
Айнеш Бакші
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.