2015-04-13 66 views
7

Büyük seyrek matrislerin Cholesky ayrışmasıyla ilgileniyorum. Sahip olduğum problem, Cholesky faktörlerinin zorunlu olarak seyrek olmamasıdır (tıpkı iki seyrek matrisin ürünü gibi seyrek olmadığından). Örneğin, sadece ilk sıra boyunca, ilk sütun ve diyagonalde sıfır olmayan bir matris için, Cholesky faktörleri% 100 doluluk oranına sahiptir (alt ve üst üçgenler% 100 yoğun olur). Altında image gri sıfır sıfır ve beyaz sıfırdır. FarkındayımSpiral matrislerin permütasyon matrislerini kullanarak Cholesky ayrışması

dense

Bir çözüm permütasyon P matrisi bulup P T AP ait Choleskey ayrışma yapmaktır. Örneğin, ilk satırı son sıraya ve ilk sütuna ilk sütunu taşıyan bir permütasyon matrisi uygulayarak aynı matrisle Cholesky faktörleri seyrekdir.

sparse

sorum nasıl P genelde belirlemektir?

aşağıdaki resme bakınız daha gerçekçi bir matristen bir ve P T AP arasında Cholesky ayrışma farkının bir fikir edinmek için. Ben (biz kapsamadığını) iyi permütasyon seçilmesi için var

P. matrisler lecture notes

birçok sezgisel yöntemlere göre http://www.seas.ucla.edu/~vandenbe/103/lectures/chol.pdf

permutation matrices

tüm bu görüntüleri aldı

Bu yöntemlerden bazılarının ne olduğunu bilmek isterim (kod C, C++ veya Java bile ideal olur). (Açıklamalarda belirttiği gibi)

+2

Güzel insanlar konuyla ilgili bütün kitapları internete koydu: [Y. Saad: Seyrek doğrusal sistemler için iteratif yöntemler] (http://www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf), esp. bölüm 3. Google'da muhtemelen "hipergraf" ile ek anahtar kelime olarak "seyrek yeniden sıralama" seçeneğini deneyin. – LutzL

+0

@LutzL, bunu yapan herhangi bir kütüphaneyi biliyor musunuz? Örneğin. Eigen mi, MKL mi? Ya da bir [Java] için (http://stackoverflow.com/questions/29604527/cholesky-decomposition-of-large-sparse-matrices-in-java)? –

+0

[Patrick R. Amestoy vd .: Lineer cebir ve seyrek direkt yöntemler] (http://amestoy.perso.enseeiht.fr/COURS/unesco2004.pdf) "seyrek matrisler yeniden sıralama" bölüm ve onun sayfadaki diğer metin http : //amestoy.perso.enseeiht.fr/ – LutzL

cevap

5

minimum doldurma matris çarpanlara satır ve bir matrisin sütun optimal permütasyon bulma problemi önemsiz bir trask değildir. Böylece, praksiste sezgisel algoritmalar kullanılır.

genellikle matris adjacency-grafik için grafik-algoritmaları dayalı, sezgisel renumbering/sipariş-stratejilerini uygulamak bazı kütüphaneler vardır. Biri, karşılık gelen bitişik matrisin bant genişliğini azaltmaya çalışır. Algroitmleri uygulamak kolay bir yöntem, Cuthill-McKee Algorithm veya Minimum-Degree Ordering algoritmasıdır. Bu sorun hakkında daha fazla kitap, Kitap Yousef Saad: Iterative Methods for Sparse Linear Systems (2003) bulunabilir.

çok kütüphanede

  • Suitesparse gibi largse seyrek lineer sistemler için direkt açarlarını kütüphanelerin bir koleksiyon sezgisel algoritmalar uygular.Sipariş kütüphaneleri AMD, CAMD, COLAMD ve CCOLAMD
  • (Par-)Metis Grafik-bölümleme için bir kütüphane uygulanan yöntemler, ancak Matrix doğrudan bitişiklik grafiğinde Çalışma yanı
  • Boost.Graph algoritmaları yeniden sıralama sağlar ve benzeri bazı sipariş algoritmaları sağlar bahsedilen Cuthill-McKee ve en az Derece bu kütüphanelerin bazıları seyrek Cholesky çarpanlara yöntemlerin temin edilmesi ve doğrudan kullanılabilir Grafik-bölümleme ve seyrek bir matris

yeniden düzenlenmesi için

  • (PT-)Scotch Sipariş.

  • +0

    adresine bakın.Bu projeyi biraz beklemeye aldım ve bu yıl daha sonra geri döneceğim. –

    +0

    İlgilendiğiniz durumda, [Eigen kullanarak] sorunumu çözdüm (http://stackoverflow.com/a/30526005/2542702). –

    İlgili konular