3
มีขั้นตอนวิธีการไหลของกระแสสูงสุดที่ใช้งานได้จริงหรือไม่?
สำหรับปัญหาการไหลสูงสุดดูเหมือนว่าจะมีอัลกอริธึมที่ซับซ้อนจำนวนมากโดยมีการพัฒนาอย่างน้อยหนึ่งรายการเมื่อเร็ว ๆ นี้เมื่อปีที่แล้ว Maxของ Orlin ไหลในเวลา O (mn) หรือดีกว่าให้อัลกอริทึมที่ทำงานใน O (VE) ในทางกลับกันอัลกอริทึมที่ฉันเห็นบ่อยที่สุดคือการใช้งาน (ฉันไม่ได้อ้างว่าได้ทำการค้นหาอย่างละเอียดแล้วนี่เป็นเพียงการสังเกตอย่างไม่เป็นทางการ): Edmonds-Karp: ,O(VE2)O(VE2)O(VE^2) Push-relabel: หรือO ( V 3 )โดยใช้การเลือกจุดสุดยอด FIFOO(V2E)O(V2E)O(V^2 E)O(V3)O(V3)O(V^3) Dinic ของอัลกอริทึม: )O(V2E)O(V2E)O(V^2 E) อัลกอริธึมที่มีเวลาทำงานเชิงซีมโทติคที่ดีกว่านั้นไม่สามารถใช้ได้จริงกับขนาดของปัญหาในโลกแห่งความเป็นจริงหรือไม่? นอกจากนี้ฉันเห็นว่า "ต้นไม้แบบไดนามิก" มีส่วนเกี่ยวข้องในอัลกอริทึมค่อนข้างน้อย เหล่านี้เคยใช้ในทางปฏิบัติหรือไม่ หมายเหตุ: คำถามนี้ถูกถามในตอนแรกเกี่ยวกับการล้นสแต็คที่นี่แต่ฉันบอกว่ามันจะดีกว่าที่นี่ แก้ไข : ฉันถามคำถามที่เกี่ยวข้องกับ cs.stackexchangeโดยเฉพาะเกี่ยวกับอัลกอริทึมที่ใช้ต้นไม้แบบไดนามิก (หรือที่รู้จักในชื่อ link-cut trees) ซึ่งอาจเป็นที่สนใจสำหรับผู้ที่ติดตามคำถามนี้