Thomas algoritması, simetrik bir çapraz baskın seyrek tridiagonal doğrusal sistemi çözmenin en hızlı yolu mu


13

Thomas algoritmasının algoritmik karmaşıklık açısından (LAPACK vb. Hem Thomas algoritmasının hem de multigrid'in karmaşıklığı olduğunu biliyorum , ama belki multigrid için sabit faktör daha az? Bana multigrid daha hızlı olabilir gibi görünmüyor ama ben olumlu değilim.O(n)

Not: Matrislerin çok büyük olduğu durumu düşünüyorum. Doğrudan veya yinelemeli yöntemler kabul edilebilir.

Yanıtlar:


12

Kesin işlem sayısı açısından yinelemeli bir yöntemi (multigrid) doğrudan / kesin bir yöntemle (Thomas) karşılaştırmanın gerçekten anlamlı olmadığına inanıyorum. IIRC, Thomas operasyon sayısıdır için herhangi tridiagonal sisteme. Ben çok doğrusal bir çözüm olması önemsiz bir durum için düşünülebilir çok atmayı hayal edebildiğim tek zaman, ve o zaman bile her düzeyde kalıntı değerlendirme maliyeti Thomas maliyeti ile karşılaştırılabilir olacaktır.8N

seyrek matrisler için geneldir ve tridiagonal sistemlerle sınırlı değildir aslında çoklu ağ yalan yararlılığı.O(N)


Teşekkürler. Yinelemeli yöntemlerin kesin olmadığını anlıyorum. Ben çok küçük bir hoşgörü (10 ^ -15 diyelim) belirtmiş ve sadece karşılaştırma amacıyla "tam" olarak kabul.
James

@ user2697246 iyi, "makul" en hızlı sordun. Multigrid (veya herhangi bir yinelemeli şema) için kesin yakınsama oranı her zaman çözümün kendisine ve başlangıç ​​tahminine bağlı olacaktır - doğrusal bir çözüm tam olarak bir adımda etkili bir şekilde çözülürken, daha salınımlı bir şey daha fazla işlem alacaktır. Thomas'ın tüm vakalar için kesin ve sabit bir operasyon sayısı vardır. Pratik olarak, önemsiz olmayan bir durum için üçgensel bir sistemi çözmek için (seri olarak) Thomas'ı asla yenemezsiniz.
Aurelius

@Aurelius Thomas algoritması paralelleştirilebilir mi? Değilse, bu multigrid'in büyük bir avantajıdır!
Nick Alger

3
@NickAlger Hayır, Thomas algoritması kesinlikle seri ve evet paralelleştirme multigrid için büyük bir avantaj. GPU'larda başarılı bir şekilde kullandığım , paralelleştirilebilen redüksiyon (PCR) . O(NlogN)N
Aurelius

Bir düzeltme, Thomas algoritması 9N değil, 8N işlemleri gerektirir. Ayrıca, "multigrid ... doğrusal bir çözüme sahip olmak" ile ne demek istiyorsun? Burada dikkate alınan tüm sistemler doğrusaldır.
Doug Lipinski

11

Kısa cevap, Thomas algoritmasının neredeyse tüm durumlar için herhangi bir yinelemeli şemadan daha hızlı olacağıdır. İstisna belki de Gauss-Seidel gibi çok basit bir yinelemeli şemanın tek bir yinelemesini uygulamak olabilir, ancak bunun kabul edilebilir bir çözüm sunması pek olası değildir. Ayrıca, bu paralel işleme endişelerini de göz ardı etmektedir.

Multigrid, tri-diyagonal bir matris durumunda özellikle zayıf bir seçimdir, çünkü multigrid olmasına rağmen , sabit oldukça büyüktür. Aslında, multigrid, matrisler oldukça büyük hale gelene kadar Gauss-Seidel'e göre bir avantaja sahip değildir. Bunun nedeni, her çoklu çoklu seviye için projeksiyon, uzama ve gevşeme işlemlerine duyulan ihtiyaçtan kaynaklanmaktadır; bunların her biri, işlemleri gerektirir; burada n, çoklu çoklu düzeydeki bilinmeyenlerin sayısıdır.O(n)O(n)

Son olarak, bu soru en iyi işlem sayımı ile ele alınmaktadır. Thomas algoritması için, çözelti için toplam çarpımı ve eklenmesi gerekmektedir. Yinelemeli şemalar, en az matris-vektör çarpımı kadar işlem gerektirir ve bir tri-diyagonal matris verildiğinde, her matris-vektör çarpımı çarpımı ve eklemesi gerektirir. Bu nedenle, herhangi bir (en basit) yinelemeli şemanın iki uygulaması bile Thomas algoritmasından daha pahalı olacaktır.5N3N3N22N2


"Çoklu-çapraz matris durumunda multigrid özellikle zayıf bir seçimdir çünkü multigrid O (n) olmasına rağmen, sabit oldukça büyüktür." Bunu da düşünüyorum, ancak googling Trottenburg'un Multigrid kitabında kanıt olmadan belirtilen 0.1-0.2 sabitini iddia eden bir çizgi getirdi. Buna inandığımı sanmıyorum.
Aurelius

1
@Aurelius İlginç. Üçgen bir matriste 3N girişi olduğu için bu genel durumda açıkça imkansızdır. Maliyet ~ 0.1 * N ise, girişlerin çoğunda asla çalışmazsınız demektir.
Doug Lipinski

Evet, aynı sayfadayız; sadece 3 noktalı bir şablonu değerlendirmek için 3N işlemleri gerekir. Sadece gözden kaçırıyordum, belki de ifadeyi tamamen yanlış yorumladım, ancak google kitap alıntısında kendiniz görebilirsiniz.
Aurelius

4
Tam alıntı (sf 21) "Pratik anlamda verimlilik, bu O (N) ifadesindeki orantısallık sabitlerinin küçük veya orta düzeyde olduğu anlamına gelir. çok küçük (0.1-0.2 veya daha az aralığında) ve yineleme adımı başına bilinmeyen başına işlem sayısı da küçük. " 0.1-0.2, her çoklu multrid döngüsü için kalan indirgeme anlamına gelir. O (N) üzerindeki sabit, matrisin döngü başına çarpımının 1.5-2.0x düzeyinde (toplam bir düzine veya iki döngü ile) olacaktır.
Godric Seer

Ah, teşekkürler @GodricSeer, bu daha mantıklı.
Aurelius

0

Tek çekirdekli bile bile çoklu ızgara döngüleri optimize edici tarafından vektörleştirilebilir. Bu nedenle işlem sayıları yardımcı olabilirken, seri dünyada bile işlemcilerin vektör paralelliğine sahip olduğunu ve dolayısıyla çözümleme süresinin maliyet analizinden tam olarak tahmin ettiğimiz şey olmadığını unutmamalıyız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.