การไหลสูงสุดโดยใช้ Ford-Fulkerson และ DFS


22

คำถามนี้เกี่ยวกับความซับซ้อนของเวลาของอัลกอริธึมการไหลสูงสุดของฟอร์ด - ฟอล์กเกอร์เมื่อใช้ DFS เพื่อค้นหาเส้นทางที่เพิ่มขึ้น

มีตัวอย่างที่รู้จักกันดีแสดงให้เห็นว่าการใช้ DFS หนึ่งสามารถต้องการจำนวนเชิงเส้นของการทำซ้ำในการไหลสูงสุดดูตัวอย่างเช่นหน้า Wikipedia เชื่อมโยงไปด้านบน

อย่างไรก็ตามฉันไม่เชื่อมั่นในตัวอย่างนี้: การใช้งาน DFS มาตรฐานจะไม่แสดงพฤติกรรมของการสลับระหว่าง B และ C เป็นโหนดแรกของเส้นทาง (ใช้ชื่อจุดสุดยอดจากหน้า Wikipedia)

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

ในฐานะที่เป็นตัวแปรสมมติว่าเรามีคุณสมบัติเพิ่มเติมที่การเรียงลำดับที่แตกต่างกันของเพื่อนบ้านมีความสอดคล้องกับการจัดลำดับจุดยอดโดยพลการ แต่คงที่ของโลก นั่นสร้างความแตกต่างหรือไม่?

ดูเหมือนว่าฉันจะเป็นคำถามพื้นฐานที่น่าสนใจ ฉันต้องขออภัยล่วงหน้าหากคำตอบนั้นเป็นที่รู้จักกันดี แต่ฉันไม่ใช่ผู้เชี่ยวชาญเรื่องการไหลและ googling บางคนไม่ได้ทำอะไรเลย

แก้ไข: คำตอบกลายเป็นใช่ยังมีตัวอย่าง ดูรูปที่ 2 ของเอกสารนี้ ในตัวอย่างเหล่านี้ FF กับ DFS รับเลขเอ็กซ์โพเนนเชียล (ในจำนวนจุดยอด) จำนวนการวนซ้ำ ดูเหมือนง่ายที่จะพิสูจน์ว่านี่คือแน่นเช่นว่าจำนวนการวนซ้ำจะถูกล้อมรอบด้วย (โดยไม่คำนึงถึงค่าของความสามารถ)2O(n)


4
ฉันสงสัยเกี่ยวกับคำถามเดียวกัน
Luca Trevisan

1
(1) คำถามที่ดี (2) ฉันคิดว่าตัวอย่างที่ไม่ดี (เช่นเดียวกับใน Wikipedia) มักจะถูกนำเสนอเป็นเหตุผลว่าทำไมการพิจารณาบางอย่างเกี่ยวกับลำดับการเข้าชมเป็นสิ่งที่จำเป็นไม่ใช่เหตุผลต่อต้านการใช้การค้นหาเชิงลึกครั้งแรก
Tsuyoshi Ito

6
ฉันไม่คิดว่าตอนนี้ฉันจะสามารถสอน FF ได้โดยไม่ต้องตอบคำถามนี้ เยี่ยมมาก !!
Suresh Venkat

ไม่พบการไหลสูงสุดในจำนวนการทำซ้ำน้อยที่สุดหรือไม่
user834

คำตอบ:


13

หากรายการ adjacency ได้รับการแก้ไขล่วงหน้า DFS จะหยุดทำงานเสมอ (แม้ว่าจะมีความจุไม่ลงตัว)

ดูคณบดี Goemans, Immorlica - สิ้นสุด จำกัด ของ "เส้นทาง Augmenting" อัลกอริทึมในการแสดงตนของเหตุผลปัญหาข้อมูล


11
ขอบคุณ ที่ไม่ได้อยู่ในตัวเองตอบคำถามของฉัน แต่ตัวอย่างที่ให้ไว้ในรูปที่ 2 ของกระดาษ Dean-Goemans-Immorlica แสดงโครงสร้างแบบเรียกซ้ำตามตัวอย่างมาตรฐานซึ่งไม่ตอบคำถามของฉันและแสดงให้เห็นว่า FF กับ DFS นั้นต้องการจำนวนมาก ซ้ำ
ต่อ Austrin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.