Kelas kompleksitas dari Matriks Inversion

9

Apakah membalik matriks dalam kelas Complexity ?P

Dari runtime saya akan mengatakan ya tetapi matriks terbalik dapat berisi entri di mana ukurannya tidak dibatasi secara polinomi oleh input?O(n3)

mudah tersinggung
sumber
1
Dalam praktik paling sering berarti bahwa itu terikat pada jepit , dengan asumsi Anda bekerja pada matriks atas angka floating point, yang jelas merupakan perkiraan . Implementasi yang biasa berjalan dalam batas waktu ini, peringatannya adalah bahwa alih-alih waktu, Anda mendapatkan ketidakstabilan numerik . Komentar ini dimaksudkan untuk menerangi klaim yang biasa, bukan untuk membatalkan jawaban di bawah ini, yang menganggap "bignum" . O(n3)R
Fizz

Jawaban:

7

Ya, itu bisa dilakukan dalam waktu polinomial, tetapi buktinya cukup halus. Ini bukan hanya waktu, karena eliminasi Gaussian melibatkan mengalikan dan menambahkan angka, dan waktu untuk melakukan masing-masing operasi aritmatika tergantung pada seberapa besar mereka. Untuk beberapa matriks, nilai-nilai perantara dapat menjadi sangat besar, sehingga eliminasi Gaussian tidak harus berjalan dalam waktu polinomial.O(n3)

Untungnya, ada yang algoritma yang tidak berjalan dalam waktu polinomial. Mereka membutuhkan sedikit lebih banyak perhatian dalam desain algoritma dan analisis algoritma untuk membuktikan bahwa waktu yang berjalan adalah polinomial, tetapi itu bisa dilakukan. Sebagai contoh, waktu berjalan dari algoritma Bareiss adalah sesuatu seperti [sebenarnya itu lebih kompleks dari itu, tetapi menganggapnya sebagai penyederhanaan untuk saat ini].O(n5(logn)2)

Untuk lebih banyak detail, lihat entri blog Dick Lipton Lupa Hasil dan Apa kompleksitas waktu sebenarnya dari eliminasi Gaussian? dan ringkasan Wikipedia .

Akhirnya, kata hati-hati. Waktu berjalan yang tepat tergantung pada bidang apa yang sedang Anda kerjakan. Diskusi di atas berlaku jika Anda bekerja dengan angka rasional. Di sisi lain, jika, misalnya, Anda bekerja pada bidang hingga (bilangan bulat modulo 2), maka eliminasi Gaussian naif tidak berjalan dalam waktu . Jika Anda tidak mengerti apa artinya ini, Anda mungkin dapat mengabaikan paragraf terakhir ini.GF(2)O(n3)

DW
sumber
Apakah pengamatan ini berlaku untuk dekomposisi LU dan QR (bukan pembalikan "lurus")?
Fizz
@RespawnedFluff, pertanyaan bagus! Saya tidak tahu Kedengarannya seperti itu akan bernilai pertanyaan terpisah.
DW
Jika Anda hanya ingin solusi yang tepat untuk dengan koefisien integer, yaitu solusi dalam rasional "bignum", metode standar adalah melalui ekspansi p-adic ; ini hanya membutuhkan . Implementasi misalnya IML . Oleh karena itu untuk membalikkan matriks seperti itu Anda membutuhkan ; ada detail yang lebih praktis di sciencedirect.com/science/article/pii/S0377042708003907SEBUAHx=bO(n3log2n)O(n4log2n)
Fizz
2

Ada rumus untuk entri matriks terbalik yang memberikan setiap entri sebagai rasio dari dua determinan, satu minor dari matriks asli, dan yang lainnya dari seluruh matriks asli. Ini akan membantu Anda mengikat ukuran entri dalam matriks terbalik, jika Anda berhati-hati, diberi pengertian yang masuk akal tentang "ukuran" (perhatikan bahwa bahkan jika Anda mulai dengan matriks bilangan bulat, kebalikannya bisa berisi entri rasional).

Yang mengatakan, seringkali invers matriks dipelajari dari sudut pandang teori kompleksitas aljabar, di mana Anda menghitung operasi dasar terlepas dari besarnya. Dalam model ini, seseorang dapat menunjukkan bahwa kompleksitas invers matriks setara dengan kompleksitas multiplikasi matriks, hingga istilah polylogaritmik; pengurangan ini mungkin juga dapat membantu Anda mengikat ukuran koefisien.

Mengingat algoritma yang efisien dalam model teori kompleksitas aljabar, orang bertanya-tanya apakah itu menyiratkan algoritma yang sama efisiennya dalam model yang biasa; mungkinkah bahwa meskipun entri akhir adalah ukuran polinomial, perhitungannya melibatkan yang lebih besar? Ini mungkin bukan masalahnya, dan bahkan jika itu benar, masalahnya mungkin dapat dihindari dengan menggunakan teorema sisa China.

Yuval Filmus
sumber