Thuật toán nhanh nhất để tính thứ hạng của ma trận hình chữ nhật là gì?


14

Cho một ma trận (giả sử m n ), thuật toán nhanh nhất để tính thứ hạng và cơ sở của các cột là gì?m×nmn

Tôi biết rằng nó có thể được giải quyết thông qua giao tuyến matroid tuyến tính, trong đó ngụ ý thuật toán xác định thời gian và thuật toán ngẫu nhiên thời gian O ( m n ω - 1 ) . Có một thuật toán xác định thời gian O ( m n ω - 1 ) trực tiếp làm giảm trực tiếp vấn đề (hoặc loại bỏ Gaussian) để nhân ma trận không?O(mn1.62)O(mnω1)O(mnω1)

Câu trả lời:


6

Bạn có thể mang -matrix thành dạng vang trong thời gian O ( n ω +2n×ncho bất kỳε>0. Xem cuốn sách "Lý thuyết phức tạp đại số" của Bürgisser, Clausen, Shokrollahi, Phần 16.5.Ôi(nω+ε)ε>0

Bây giờ bạn áp dụng quy trình này lần cho m × n -matrix của bạn. Điều này đưa ra một thuật toán với Om/nm×nphép toán số học ( m n ω - 1 ) .Ôi(mnω-1)

Nếu bạn mang một -matrix ở dạng vang, thì nó sẽ chứa một ma trận không có kích thước n × n sau đó. Bạn lấy phần còn lại n × n -matrix, thêm một mới n × n -block của ma trận đầu vào của bạn và mang lại điều này để hình thành bậc thang và vân vân.2n×nn×nn×nn×n


1
Bạn có nghĩa là tách các hàng vào m / n nhóm? Làm thế nào để bạn kết hợp các kết quả m / n để đưa ra thứ hạng? Hãy xem xét hai hàng ở dạng vang từ các nhóm khác nhau mà cả hai đều có 1 trong cột đầu tiên, chúng có thể có thứ hạng 2 phải không? mm/nm/n
Ho Yee Cheung

Có giới hạn dưới cho điều này? Như trong xếp hạng có bất kỳ sức mạnh tính toán?
Thomas Ahle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.