ฉันต้องหาวัฏจักรเชิงลบในกราฟถ่วงน้ำหนักกำกับ ฉันรู้ว่าอัลกอรึทึมของ Bellman Ford ทำงานอย่างไรและมันบอกฉันว่ามีรอบลบหรือไม่ แต่มันไม่ได้ตั้งชื่ออย่างชัดเจน
ฉันจะได้รับเส้นทางจริงของวัฏจักรอย่างไร
หลังจากใช้อัลกอริทึมมาตรฐานเราได้ทำการวนซ้ำแล้วและไม่ควรทำการปรับปรุงเพิ่มเติม หากเรายังคงสามารถลดระยะห่างไปยังโหนดได้จะมีวัฏจักรเชิงลบเกิดขึ้น
ความคิดของฉันคือ: เนื่องจากเรารู้ว่าขอบที่ยังสามารถปรับปรุงเส้นทางและเรารู้ว่าบรรพบุรุษของแต่ละโหนดเราสามารถติดตามวิธีการของเรากลับจากขอบนั้นจนกว่าเราจะได้พบกันอีกครั้ง ตอนนี้เราควรมีวัฏจักรของเรา
น่าเศร้าที่ฉันไม่พบบทความใด ๆ ที่บอกฉันว่าสิ่งนี้ถูกต้องหรือไม่ ดังนั้นมันใช้งานได้จริงเช่นนั้น?
แก้ไข:ตัวอย่างนี้พิสูจน์ว่าความคิดของฉันไม่ถูกต้อง ได้รับรูปแบบของกราฟต่อไปนี้เราทำงานยามฟอร์ดจากโหนด1
เราจะดำเนินการขอบในลำดับD หลังจากทำซ้ำเราจะได้รับระยะทางโหนด:n - 1 1 : - 5 2 : - 30 3 : - 15
และตารางผู้ปกครอง:มีผู้ปกครองมีผู้ปกครองมีผู้ปกครอง
3 2 3 3 2
ตอนนี้ทำ TH ซ้ำเราจะเห็นว่าระยะทางของโหนดยังสามารถปรับปรุงการใช้ขอบ ดังนั้นเราจึงรู้ว่ามีวัฏจักรเชิงลบอยู่และเป็นส่วนหนึ่งของมัน1
แต่โดยการติดตามกลับมาทางเราผ่านตารางแม่ที่เราได้รับติดอยู่ในอีกวงจรเชิงลบและไม่เคยพบอีกครั้งa
เราจะแก้ปัญหานี้อย่างไร