คำถามนี้เกี่ยวกับความซับซ้อนของเวลาของอัลกอริธึมการไหลสูงสุดของฟอร์ด - ฟอล์กเกอร์เมื่อใช้ DFS เพื่อค้นหาเส้นทางที่เพิ่มขึ้น
มีตัวอย่างที่รู้จักกันดีแสดงให้เห็นว่าการใช้ DFS หนึ่งสามารถต้องการจำนวนเชิงเส้นของการทำซ้ำในการไหลสูงสุดดูตัวอย่างเช่นหน้า Wikipedia เชื่อมโยงไปด้านบน
อย่างไรก็ตามฉันไม่เชื่อมั่นในตัวอย่างนี้: การใช้งาน DFS มาตรฐานจะไม่แสดงพฤติกรรมของการสลับระหว่าง B และ C เป็นโหนดแรกของเส้นทาง (ใช้ชื่อจุดสุดยอดจากหน้า Wikipedia)
ดังนั้นให้เรากำหนดเงื่อนไขที่เป็นธรรมชาติมาก ๆ ว่าเมื่อใดก็ตามที่ DFS เยี่ยมชมโหนด มันจะตรวจสอบเพื่อนบ้านของคุณตามลำดับเดียวกันเสมอ ยังมีตัวอย่างที่ FF กับ DFS ใช้การวนซ้ำจำนวนมากหรือไม่
ในฐานะที่เป็นตัวแปรสมมติว่าเรามีคุณสมบัติเพิ่มเติมที่การเรียงลำดับที่แตกต่างกันของเพื่อนบ้านมีความสอดคล้องกับการจัดลำดับจุดยอดโดยพลการ แต่คงที่ของโลก นั่นสร้างความแตกต่างหรือไม่?
ดูเหมือนว่าฉันจะเป็นคำถามพื้นฐานที่น่าสนใจ ฉันต้องขออภัยล่วงหน้าหากคำตอบนั้นเป็นที่รู้จักกันดี แต่ฉันไม่ใช่ผู้เชี่ยวชาญเรื่องการไหลและ googling บางคนไม่ได้ทำอะไรเลย
แก้ไข: คำตอบกลายเป็นใช่ยังมีตัวอย่าง ดูรูปที่ 2 ของเอกสารนี้ ในตัวอย่างเหล่านี้ FF กับ DFS รับเลขเอ็กซ์โพเนนเชียล (ในจำนวนจุดยอด) จำนวนการวนซ้ำ ดูเหมือนง่ายที่จะพิสูจน์ว่านี่คือแน่นเช่นว่าจำนวนการวนซ้ำจะถูกล้อมรอบด้วย (โดยไม่คำนึงถึงค่าของความสามารถ)