Qual è l'algoritmo più veloce per calcolare il rango di una matrice rettangolare?


15

Data una matrice (supponendo ), qual è l'algoritmo più veloce per calcolare il suo rango e la base delle colonne?m×nmn

Sono consapevole che può essere risolto attraverso l'intersezione matroid lineare, che implica un algoritmo deterministico di tempo e un algoritmo randomizzato di tempo . Esiste un algoritmo deterministico temporale che riduce più direttamente il problema (o l'eliminazione gaussiana) alla moltiplicazione matriciale?O(mn1.62)O(mnω-1)O(mnω-1)

Risposte:


9

Puoi portare una matrice in forma di echelon nel tempo O ( n ω + ϵ ) per qualsiasi . Vedi il libro "Teoria della complessità algebrica" ​​di Bürgisser, Clausen, Shokrollahi, Sezione 16.5.2n×nO(nω+ε)ε>0

Ora applichi questa procedura volte a -matrix. Ciò fornisce un algoritmo con operazioni aritmetiche .m/nm×nO(mnω-1)

Se porti una matrice in forma di echelon, allora contiene una matrice zero di dimensioni seguito. Prendi la restante matrice n × n , aggiungi un nuovo blocco n × n della tua matrice di input e la porti in forma echelon e così via.n × n2n×nn×nn×nn×n


1
Vuoi dire dividere le righe in m / n gruppi? Come si combinano i risultati m / n per dare il grado? Considera due righe in forma di scaglione di diversi gruppi che hanno entrambi 1 nella prima colonna, potrebbero avere il grado 2 giusto? mm/nm/n
Ho Yee Cheung,

C'è un limite inferiore per questo? Come in classifica ha qualche forza computazionale?
Thomas Ahle,

3

m×nO~(NNZ(UN)+rω)NNZ(UN)UNrUNrO(mnω-1)


2
O(mnω-1)

1
Grazie per la segnalazione. La citazione sopra è un articolo dell'OP, quindi la mia risposta è principalmente per completezza.
Ainesh Bakshi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.