Apa kompleksitas waktu aktual dari eliminasi Gaussian?

72

Dalam jawaban untuk pertanyaan sebelumnya , saya menyebutkan kepercayaan umum tetapi salah bahwa eliminasi "Gaussian" berjalan dalam waktu . Meskipun jelas bahwa algoritma ini menggunakan operasi aritmatika , implementasi ceroboh dapat membuat angka dengan banyak bit secara eksponensial. Sebagai contoh sederhana, misalkan kita ingin mendiagonalisasi matriks berikut:O(n3)O(n3)

[2000120011201112]

Jika kita menggunakan versi algoritma eliminasi tanpa pembagian, yang hanya menambahkan kelipatan bilangan bulat dari satu baris ke baris lainnya, dan kami selalu berporos pada entri diagonal dari matriks, matriks keluaran memiliki vektor sepanjang diagonal.(2,4,16,256,,22n1)

Tapi apa adalah kompleksitas waktu aktual dari eliminasi Gauss? Kebanyakan penulis optimisasi kombinatorial tampaknya senang dengan "sangat polinomial", tapi saya ingin tahu apa sebenarnya polinomial itu.

Sebuah makalah Jack Edmonds tahun 1967 menjelaskan versi eliminasi Gaussian ("mungkin karena Gauss") yang berjalan dalam waktu yang sangat polinomial. Wawasan utama Edmonds adalah bahwa setiap entri dalam setiap matriks perantara adalah penentu minor dari matriks input asli. Untuk matriks dengan entri integer bit, Edmonds membuktikan bahwa algoritmanya membutuhkan integer dengan paling banyak bit . Di bawah asumsi "masuk akal" bahwa , algoritma Edmonds berjalan dalam waktu jika kita menggunakan aritmatika integer buku teks, atau dalam waktu jika kita menggunakan perkalian berbasis FFT, pada RAM integer standar, yang dapat melakukann×nmO(n(m+logn))m=O(logn)O(n5)O~(n4)O(logn)-bit aritmatika dalam waktu yang konstan. (Edmonds tidak melakukan analisis waktu ini; ia hanya mengklaim bahwa algoritme-nya "baik".)

Apakah ini masih merupakan analisis terbaik yang diketahui? Apakah ada referensi standar yang memberikan batas waktu eksplisit yang lebih baik, atau setidaknya ikatan yang lebih baik pada presisi yang diperlukan?

Lebih umum: Berapa waktu berjalan (pada integer RAM) dari algoritma tercepat yang dikenal untuk memecahkan sistem persamaan linear yang sewenang-wenang?

Jeffε
sumber
2
(memasukkan gelombang keras) tidak bisakah Anda menyiasati masalah bilangan bulat besar dalam kasus khusus ini menggunakan hashing modulo trik utama kecil? algoritme akan diacak, tetapi tetap saja ... Memang ini tidak menjawab pertanyaan yang Anda tanyakan ...
Suresh Venkat
1
Mungkin referensi berikut akan membantu? catatan kuliah lovasz , bab yap tentang determinan (Yap memberikan kompleksitas bit untuk perhitungan determinan melalui algoritma Bareiss). Dari buku Yap (latihan 10.1.1 (iii)), saya mendapat kesan bahwa tidak diketahui apakah reduksi Gaussian memberikan nilai-nilai menengah yang tumbuh secara eksponensial dalam ukuran bit, tapi sekarang saya tidak yakin. O(n3MB[n(logn+L)])
user834
1
Algoritma eliminasi Gaussian standar membagi baris pivot dengan elemen pivot sebelum mengurangi baris selanjutnya. Pertanyaan terbuka mengacu pada versi standar ini. Contoh yang saya berikan di awal pertanyaan saya menggunakan varian yang berbeda, yang TIDAK dibagi oleh elemen pivot.
Jeffε
3
Ingin tahu. Batas waktu Yap untuk algoritma Bereiss identik dengan batas waktu yang tersirat oleh analisis Edmonds tentang eliminasi Gaussian.
Jeffε
1
rjlipton mensurvei daerah baru-baru ini & mengutip tesis Kannan Phd pada subjek. bagian penting dari analisis ini adalah bentuk normal Smith
vzn

Jawaban:

35

Saya pikir jawabannya adalah , di mana kita menghilangkan faktor-faktor logaritma (poli). Batas disajikan dalam "W. Eberly, M. Giesbrecht, P. Giorgi, A. Storjohann, G. Villard. Memecahkan sistem linear integer yang jarang. Proc. ISSAC'06, Genova, Italia, ACM Press, 63-70, Juli 2006 ", tetapi didasarkan pada sebuah makalah oleh Dixon:" Solusi tepat persamaan linear menggunakan ekspansi P-adic, John D. Dixon, NUMERISCHE MATHEMATIK, Volume 40, Nomor 1, 137-141 ".O~(n3log(A+b))

Elias
sumber
Terima kasih untuk referensi! Ini menjawab pertanyaan kedua saya, tetapi bukan yang pertama.
Jeffε
3
Jika Anda menggunakan pivot maka bitsize hasil antara dalam eliminasi Gaussian (GE) bersifat polinomial, tidak ada ledakan eksponensial. Saya pikir ini adalah hasil Bareiss. Adapun kompleksitas GE, ada algoritma dalam buku Gathen dan Gerhard, "Aljabar Komputer Modern" untuk menghitung penentu matriks , yang didasarkan pada GE, aritmatika modular dan teorema sisa Cina (Bagian 5.5, hlm 101-105). Kompleksitasnya adalah . Saya pikir faktor dapat diselamatkan menggunakan aritmatika cepat. Jika saya tidak salah, ini adalah batasan yang disebutkan user834. AO(n4log2A)n
Elias
@ Elias, apa definisi norma dalam ungkapan itu? Apakah itu koefisien terbesar dalam ukuran absolut? Apakah ini ukuran bit? Juga, apakah ini hasil untuk matriks rasional sewenang-wenang?
Juan Bermejo Vega
13

Saya pikir jawaban untuk pertanyaan pertama Anda juga karena argumen berikut: Makalah Edmonds tidak menjelaskan varian eliminasi Gaussian tetapi ini membuktikan bahwa angka apa pun yang dihitung dalam langkah algoritma merupakan penentu dari beberapa submatrix A. Oleh buku Schrijver tentang Teori Linear dan Pemrograman Integer kita tahu bahwa jika pengkodean A membutuhkan b bit (b harus dalamO~(n3log(A+b))O~(log(A)) maka salah satu sub-determinannya membutuhkan paling banyak 2b bit (Teorema 3.2). Untuk membuat eliminasi Gaussian sebagai algoritma waktu polinomial, kita harus memperhatikan soal yang dihitung: Kita harus membatalkan faktor umum dari setiap fraksi yang kita hitung dalam setiap langkah menengah dan kemudian semua angka memiliki panjang pengkodean linear dalam panjang pengkodean A.

Matthias Walter
sumber