¿Cuál es el algoritmo más rápido para calcular el rango de una matriz rectangular?

15

Dada una matriz m×n (suponiendo que mn ), ¿cuál es el algoritmo más rápido para calcular su rango y base de las columnas?

Soy consciente de que se puede resolver a través de la intersección matroide lineal, lo que implica un algoritmo determinista de tiempo y un algoritmo aleatorio de tiempo O ( m n ω - 1 ) . ¿Existe un algoritmo determinista de tiempo O ( m n ω - 1 ) que reduzca más directamente el problema (o la eliminación gaussiana) a la multiplicación de matrices?O(mn1.62)O(mnω1)O(mnω1)

Ho Yee Cheung
fuente

Respuestas:

9

Puede traer una matriz de en forma escalonada en el tiempo O ( n ω + ϵ ) para cualquier ϵ > 0 . Ver el libro "Teoría de la complejidad algebraica" de Bürgisser, Clausen, Shokrollahi, Sección 16.5.2n×nO(nω+ϵ)ϵ>0

Ahora aplica este procedimiento veces a su matriz m × n . Esto proporciona un algoritmo con operaciones aritméticas O ( m n ω - 1 ) .m/nm×nO(mnω1)

Si trae una matriz de en forma escalonada, entonces contiene una matriz cero de tamaño n × n después. Usted toma la matriz n × n restante, agrega un nuevo bloque n × n de su matriz de entrada y lo lleva a la forma escalonada y así sucesivamente.2n×nn×nn×nn×n

5501
fuente
1
¿Te refieres a dividir las filas en m / n grupos? ¿Cómo se combinan los resultados de m / n para obtener el rango? Considere dos filas en forma escalonada de diferentes grupos que tienen 1 en la primera columna, pueden tener rango 2 ¿verdad? mm/nm/n
Ho Yee Cheung
¿Hay un límite inferior para esto? ¿Como en el rango tiene alguna fuerza computacional?
Thomas Ahle
3

Podemos calcular el rango de una m×n matriz A en O~(nnz(A)+rω) tiempo, donde nnz(A) es el número de no-cero entradas en A y r es el rango de A . Esto se desprende del Teorema 1.1 en Cheung et. Alabama. [CKL'13] y búsqueda binaria sobre r . Esto es más rápido que el algoritmo O(mnω1) mencionado anteriormente.

Ainesh Bakshi
fuente
2
Supongo que te refieres a "más rápido que el algoritmo " (no puedo editar la respuesta yo mismo ya que la edición es demasiado pequeña)O(mnω1)
Smaper
1
Gracias por señalar eso. La cita anterior es un documento del OP, por lo que mi respuesta es principalmente para completar.
Ainesh Bakshi