Dapatkah sistem linier simetris diagonal plus tetap diselesaikan dalam waktu kuadrat setelah perhitungan?


21

Apakah ada metode untuk menyelesaikan sistem linear dari bentuk mana adalah matriks SPD tetap dan adalah matriks diagonal positif?O(n3+n2k)k(Di+A)xi=biADi

Misalnya, jika setiap adalah skalar, itu sudah cukup untuk menghitung SVD dari . Namun, ini rusak untuk umum karena kurangnya komutatif.DiAD

Pembaruan : Jawaban sejauh ini adalah "tidak". Adakah yang punya intuisi yang menarik mengapa? Jawaban tidak berarti bahwa tidak ada cara nontrivial untuk mengompres informasi antara dua operator nonkomuter. Ini tidak terlalu mengejutkan, tetapi akan lebih baik untuk memahaminya dengan lebih baik.


SPD = semi-positif pasti?
rcollyer

Ya, meskipun masalahnya pada dasarnya sama tanpa SPD. Saya menambahkan kendala itu hanya untuk memastikan bahwa sistem tidak pernah tunggal.
Geoffrey Irving

Jawaban:


19

Jawaban positif terdekat untuk pertanyaan Anda yang dapat saya temukan adalah untuk gangguan diagonal yang jarang (lihat di bawah).

Dengan itu, saya tidak tahu algoritma apa pun untuk kasus umum, meskipun ada generalisasi teknik yang Anda sebutkan untuk perubahan skalar dari matriks SPD ke semua matriks persegi:

Dengan adanya matriks kuadrat , terdapat dekomposisi Schur A = U T U H , di mana U adalah kesatuan dan T adalah segitiga atas, dan A + σ I = U ( T + σ I ) U H memberikan dekomposisi Schur dari A + σ saya . Jadi, ide perhitungan Anda meluas ke semua matriks kuadrat melalui algoritma:AA=UTUHUTA+σI=U(T+σI)UHA+σI

  • Hitung dalam paling banyak O ( n 3 ) bekerja.[U,T]=schur(A)O(n3)
  • Selesaikan masing-masing melalui x : = U ( T + σ I ) - 1 U H b dalam pekerjaan O ( n 2 ) (inversi tengah hanyalah substitusi kembali).(A+σI)x=bx:=U(T+σI)1UHbO(n2)

Garis penalaran ini mengurangi ke pendekatan yang Anda sebutkan ketika adalah SPD karena dekomposisi Schur dikurangi menjadi EVD untuk matriks normal, dan EVD bertepatan dengan SVD untuk matriks pasti-positif Hermitian.A

Tanggapan untuk memperbarui: Sampai saya punya bukti, yang tidak saya miliki, saya menolak untuk mengklaim bahwa jawabannya adalah "tidak". Namun, saya dapat memberikan beberapa wawasan mengapa itu sulit, serta subkotak lain di mana jawabannya adalah ya.

Kesulitan mendasar adalah bahwa, meskipun pembaruan diagonal, itu masih dalam peringkat penuh secara umum, jadi alat utama untuk memperbarui invers, rumus Sherman-Morrison-Woodbury , tampaknya tidak membantu. Meskipun case shift skalar juga peringkat penuh, ini adalah kasus yang sangat istimewa karena ia berpindah dengan setiap matriks, seperti yang Anda sebutkan.

Dengan mengatakan bahwa, jika masing-masing jarang, yaitu, masing-masing memiliki O ( 1 ) nonzeros, maka rumus Sherman-Morrison-Woodbury menghasilkan O ( n 2 ) diselesaikan dengan masing-masing pasangan { D , b } . Misalnya, dengan satu nol di entri j diagonal j , sehingga D = δ e j e H j :DO(1)O(n2){D,b}jD=δejejH

[A1+δejejH]1=A1δA1ejejHA11+δ(ejHA1ej),

di mana adalah vektor basis standar ke- j .ejj

Pembaruan lain: Saya harus menyebutkan bahwa saya mencoba preconditioner yang disarankan @GeoffOxberry pada beberapa matriks SPD 1000 × 1000 acak menggunakan PCG dan, mungkin tidak mengherankan, tampaknya sangat mengurangi jumlah iterasi ketika | | D | | 2 / | | A | | 2 kecil, tetapi tidak ketika O ( 1 ) atau lebih besar.A11000×1000||D||2/||A||2O(1)


12

Jika adalah diagonal dominan untuk setiap i , maka karya terbaru oleh Koutis, Miller, dan Peng (lihat situs Koutis' untuk bekerja pada simetris matriks diagonal yang dominan) dapat digunakan untuk memecahkan setiap sistem di O ( n 2 log ( n ) ) waktu (sebenarnya O ( m log ( n ) ) waktu, di mana m adalah jumlah maksimum entri bukan nol dalam ( D i + A ) di atas semua(Di+A)iO(n2log(n))O(mlog(n))m(Di+A) , jadi Anda bisa memanfaatkan sparsity juga). Kemudian, total waktu berjalan adalah O ( n 2 log ( n ) k ) , yang lebih baik daripada pendekatan O ( n 3 k ) untuk menyelesaikan setiap sistem secara naif menggunakan aljabar linier padat, tetapi sedikit lebih buruk daripada waktu lari kuadratik yang Anda gunakan. sedang meminta.iO(n2log(n)k)O(n3k)

Sparsity yang signifikan dalam untuk semua yang saya dapat dieksploitasi oleh pemecah jarang untuk menghasilkan algoritma O ( n 2 k ) , tapi saya menduga bahwa jika Anda memiliki sparsity yang signifikan, maka Anda akan menyebutkannya.(Di+A)iO(n2k)

Anda juga dapat menggunakan sebagai prasyarat untuk menyelesaikan setiap sistem menggunakan metode berulang, dan melihat bagaimana hasilnya.A1

Tanggapan untuk memperbarui : @JackPaulson membuat poin yang bagus dari sudut pandang aljabar linier numerik dan algoritma. Saya akan fokus pada argumen kompleksitas komputasi sebagai gantinya.

Kompleksitas komputasi dari solusi sistem linier dan kompleksitas komputasi dari perkalian matriks pada dasarnya sama. (Lihat Teori Kompleksitas Aljabar .) Jika Anda dapat menemukan algoritma yang dapat memampatkan informasi antara dua operator non-komuter (mengabaikan bagian semidefinit positif) dan langsung memecahkan kumpulan sistem yang Anda usulkan dalam waktu kuadratik dalam , maka itu kemungkinan Anda bisa menggunakan algoritma seperti itu untuk membuat kesimpulan tentang multiplikasi matriks yang lebih cepat. Sulit untuk melihat bagaimana struktur semidefinit positif dapat digunakan dalam metode langsung dan padat untuk sistem linear untuk mengurangi kompleksitas komputasinya.n

Seperti @JackPaulson, saya tidak mau mengatakan bahwa jawabannya adalah "tidak" tanpa bukti, tetapi mengingat koneksi di atas, masalahnya sangat sulit dan menarik minat penelitian saat ini. Yang terbaik yang dapat Anda lakukan dari sudut pandang asimptotik tanpa memanfaatkan struktur khusus adalah peningkatan pada algoritma Coppersmith dan Winograd, menghasilkan algoritma , di mana α 2,375 . Algoritma itu akan sulit dikodekan, dan kemungkinan akan lambat untuk matriks kecil, karena faktor konstan sebelum perkiraan asimptotik mungkin sangat besar dibandingkan dengan eliminasi Gaussian.O(nαk)α2.375


3
Saya belum melihat pernyataan konkret tentang di mana crossover itu berada, tetapi beberapa sumber yang memiliki reputasi telah menyatakan bahwa (selain masalah implementasi), Coppersmith-Winograd tidak dapat mengalahkan metode standar untuk ukuran matriks yang akan dapat masuk ke memori dalam waktu dekat. (beberapa dekade). Mengingat bahwa tolok ukur Linpack membutuhkan waktu lebih dari satu hari untuk berjalan di mesin-mesin top saat ini, tampaknya tidak mungkin bahwa Coppersmith-Winograd akan pernah digunakan dalam praktik. Strassen sebenarnya praktis untuk masalah-masalah besar, meskipun agak stabil secara numerik.
Jed Brown

Itu tidak mengejutkan saya. +1 untuk detail implementasi.
Geoff Oxberry

6

Ekspansi Taylor orde pertama dapat digunakan untuk meningkatkan konvergensi dari lagging sederhana. Misalkan kita memiliki preconditioner (atau faktor untuk langsung memecahkan) tersedia untuk , dan kami ingin menggunakannya untuk preconditioning A . Kita bisa menghitungA+DA

A1=(A+DD)1(A+D)(A+D)1=[(A+D)1(A+DD)]1(A+D)1=[I(A+D)1D]1(A+D)1[I+(A+D)1D](A+D)1

di mana ekspansi Taylor digunakan untuk menulis baris terakhir. Penerapan preconditioner ini membutuhkan dua memecahkan dengan .A+D

Ini bekerja cukup baik ketika prekondisi digeser dari 0 dengan jumlah yang sama atau lebih besar dari operator yang kita coba pecahkan dengan (misalnya ). Jika pergeseran dalam prekondisi lebih kecil ( D min σ ( A ) ), operator prekondisi menjadi tidak terbatas.D0Dminσ(A)

Jika pergeseran dalam prekondisi jauh lebih besar daripada di operator, metode ini cenderung menghasilkan angka kondisi sekitar setengah dari prakondisi oleh operator yang tertinggal (dalam tes acak yang saya jalankan, bisa lebih baik atau lebih buruk untuk kelas tertentu dari matriks). Faktor 2 dalam angka kondisi tersebut memberikan faktor dalam hitungan iterasi. Jika biaya iterasi didominasi oleh solves denganA+D, maka ini bukan faktor yang cukup untuk membenarkan ekspansi Taylor urutan pertama. Jika aplikasi matriks secara proporsional mahal (misalnya Anda hanya memiliki preconditioner yang murah untuk menerapkanA+D), maka metode urutan pertama ini mungkin masuk akal.2A+DA+D

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.