อัลกอริทึมโทมัสเป็นวิธีที่เร็วที่สุดในการแก้ปัญหาระบบเชิงเส้นที่กระจัดกระจายในแนวทแยงมุมสมมาตร


13

ฉันสงสัยว่าอัลกอริธึมของ Thomas นั้นเป็นวิธีที่เร็วที่สุด (พิสูจน์ได้หรือไม่) เพื่อแก้ปัญหาระบบ tridiagonal ที่กระจัดกระจายในแนวทแยงมุมแบบสมมาตรในแง่ของความซับซ้อนของอัลกอริทึม ฉันรู้ว่าทั้งอัลกอริธึมของ Thomas และ Multigrid นั้นมีความซับซ้อนแต่ปัจจัยคงที่สำหรับ Multigrid นั้นน้อยกว่านี้หรือไม่ สำหรับฉันดูเหมือนว่า multigrid อาจไม่เร็วกว่านี้ แต่ฉันก็ไม่คิดบวกO(n)

หมายเหตุ: ฉันกำลังพิจารณากรณีที่เมทริกซ์มีขนาดใหญ่มาก ยอมรับได้ทั้งวิธีโดยตรงหรือแบบวนซ้ำ

คำตอบ:


12

8N

O(N)


ขอบคุณ ฉันตระหนักว่าวิธีการทำซ้ำไม่แน่นอน ฉันควรระบุความอดทนน้อยมาก (พูด 10 ^ -15) และเพิ่งถือว่าเป็น "แน่นอน" เพื่อวัตถุประสงค์ในการเปรียบเทียบ
James

@ user2697246 ดีคุณถามเกี่ยวกับ "เร็ว" อัตราการลู่เข้าที่แน่นอนสำหรับ multigrid (หรือรูปแบบการวนซ้ำใด ๆ ) มักจะขึ้นอยู่กับการแก้ปัญหาของตัวเองและการคาดเดาเริ่มต้น - การแก้ปัญหาเชิงเส้นจะได้รับการแก้ไขอย่างมีประสิทธิภาพในขั้นตอนเดียว โทมัสมีจำนวนการดำเนินการที่แน่นอนและแน่นอนสำหรับทุกกรณี คุณจะไม่มีทางเอาชนะโทมัสเพื่อแก้ไขระบบไตรภาคีสำหรับคดีที่ไม่สำคัญ
Aurelius

@Aurelius อัลกอริธึมของ Thomas สามารถขนานกันได้ไหม ถ้าไม่ใช่นั่นเป็นข้อได้เปรียบที่สำคัญอย่างหนึ่งของ multigrid!
Nick Alger

3
O(NlogN)N

หนึ่งการแก้ไขอัลกอริทึมของโทมัสต้องการการดำเนินงาน 8N ไม่ใช่ 9N นอกจากนี้คุณหมายถึงอะไร "multigrid ... มีวิธีแก้ปัญหาเชิงเส้น"? ระบบทั้งหมดภายใต้การพิจารณาที่นี่เป็นแบบเชิงเส้น
Doug Lipinski

11

คำตอบสั้น ๆ คืออัลกอริธึมของโธมัสจะเร็วกว่าแผนการวนซ้ำสำหรับเกือบทุกกรณี ข้อยกเว้นอาจจะใช้การวนซ้ำเพียงครั้งเดียวของรูปแบบการวนซ้ำที่ง่ายมากเช่น Gauss-Seidel แต่มันไม่น่าเป็นไปได้ที่จะให้ทางออกที่ยอมรับ นอกจากนี้ยังไม่สนใจข้อกังวลของการประมวลผลแบบขนาน

O(n)O(n)

5N3N3N22N2


"Multigrid เป็นตัวเลือกที่แย่โดยเฉพาะอย่างยิ่งในกรณีของเมทริกซ์แบบสามเส้นทแยงมุมเพราะแม้ว่า Multigrid จะเป็น O (n) ค่าคงที่ก็ค่อนข้างใหญ่" ฉันคิดเช่นนี้ แต่ googling นำเสนอบรรทัดในหนังสือ Multigrid ของ Trottenburg ที่อ้างว่ามีค่าคงที่ 0.1-0.2 โดยไม่มีการพิสูจน์ ฉันไม่คิดว่าฉันเชื่ออย่างนั้น
Aurelius

1
@Aurelius ที่น่าสนใจ เห็นได้ชัดว่าเป็นไปไม่ได้ในกรณีทั่วไปเนื่องจากมีรายการ 3N อยู่ในเมทริกซ์สามเหลี่ยม หากค่าใช้จ่ายอยู่ที่ ~ 0.1 * N นั่นหมายความว่าคุณไม่เคยทำรายการส่วนใหญ่เลยแม้แต่น้อย
Doug Lipinski

ใช่เราอยู่ในหน้าเดียวกัน เพียงประเมินลายฉลุ 3 จุดต้องใช้การดำเนินงาน 3N ฉันแค่อ่านอย่างคร่าว ๆ บางทีฉันอาจตีความคำสั่งผิดทั้งหมด แต่คุณสามารถเห็นได้ด้วยตัวคุณเองในข้อความที่ตัดตอนมาจาก google books
Aurelius

4
อ้างเต็ม (หน้า 21) คือ "ประสิทธิภาพในการปฏิบัติความหมายซึ่งหมายความว่าค่าคงที่สัดส่วนในคำสั่ง O (N) นี้มีขนาดเล็กหรือปานกลางนี่คือกรณีสำหรับ multigrid: หากออกแบบมาอย่างดีปัจจัยการบรรจบ h-independed สามารถ มีขนาดเล็กมาก (ในช่วง 0.1-0.2 หรือน้อยกว่า) และจำนวนการดำเนินการต่อไม่ทราบตามขั้นตอนการทำซ้ำนั้นก็เล็กเช่นกัน " 0.1-0.2 หมายถึงการลดส่วนที่เหลือสำหรับแต่ละรอบของ multigrid ค่าคงที่ของ O (N) จะอยู่ที่ 1.5-2.0 เท่าของเมทริกซ์คูณต่อรอบ (รวมเป็นโหลหรือสองรอบ)
Godric Seer

อ่าขอบคุณ @GodricSeer ที่มีเหตุผลมากกว่านี้
Aurelius

0

Multigrid loops แม้ในแกนเดียวนั้นสามารถปรับได้โดยเครื่องมือเพิ่มประสิทธิภาพ ดังนั้นในขณะที่การนับการดำเนินการสามารถช่วยได้เราไม่ควรลืมว่าแม้ในโลกอนุกรมตัวประมวลผลก็มีเวกเตอร์แบบขนานและด้วยเหตุนี้เวลาในการแก้ปัญหาอาจไม่ตรงกับที่เราคาดการณ์จากการวิเคราะห์ต้นทุน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.