Apa algoritma tercepat untuk menghitung peringkat matriks persegi panjang?


14

Diberi matriks (dengan asumsi ), apa algoritma tercepat untuk menghitung peringkat dan basis kolomnya?m×nm≥n

Saya sadar ini dapat diselesaikan melalui persimpangan matroid linier, yang menyiratkan algoritma deterministik waktu dan algoritma acak waktu . Apakah ada algoritma deterministik waktu yang lebih langsung mengurangi masalah (atau eliminasi Gaussian) menjadi penggandaan matriks?O(mn1.62)O(mnω−1)O(mnω−1)

Jawaban:


6

Anda dapat membawa -matrix ke dalam bentuk eselon dalam waktu O ( n ω + ϵ ) untuk setiap ϵ > 0 . Lihat buku "Teori Kompleksitas Aljabar" oleh Bürgisser, Clausen, Shokrollahi, Bagian 16.5.2n×nO(nω+ϵ)ϵ>0

Sekarang Anda menerapkan prosedur ini kali untuk Anda m × n -matrix. Ini memberikan algoritma dengan operasi aritmatika O ( m n ω - 1 ) .m/nm×nO(mnω−1)

Jika Anda membawa -matrix ke dalam bentuk eselon, maka itu berisi matriks nol ukuran n × n sesudahnya. Anda mengambil n × n -matrix yang tersisa, tambahkan n × n- blok baru dari matriks input Anda dan bawa ini ke bentuk eselon dan seterusnya.2n×nn×nn×nn×n


1
Apakah Anda berarti membelah baris ke m / n kelompok? Bagaimana Anda menggabungkan hasil m / n untuk memberikan peringkat? Pertimbangkan dua baris dalam bentuk eselon dari kelompok berbeda yang keduanya memiliki 1 di kolom pertama, mereka mungkin memiliki peringkat 2 kan? mm/nm/n
— Ho Yee Cheung

Apakah ada batas bawah untuk ini? Seperti apakah pangkat memiliki kekuatan komputasi?
— Thomas Ahle
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.