ค้นหาเส้นทาง k-shortest ระหว่างสองโหนด


9

รับ digraph ถ่วงน้ำหนัก G=V,Eและฟังก์ชั่นน้ำหนัก d(ยู,โวลต์)โดยปกติเราสามารถใช้อัลกอริทึมของ Dijkstra เพื่อรับเส้นทางที่สั้นที่สุด สิ่งที่ฉันสนใจคือทำอย่างไรจึงจะได้2ndเส้นทางที่สั้นที่สุด 3Rd- สั้นที่สุดและอื่น ๆ

คำถาม:

มีอัลกอริทึมที่มีประสิทธิภาพในการรับเส้นทางที่สั้นที่สุดระหว่างสองโหนดในกราฟถ่วงน้ำหนักหรือไม่

มีอัลกอริธึมที่มีประสิทธิภาพในการรับเส้นทางที่สั้นที่สุดระหว่างสองโหนดในกราฟถ่วงน้ำหนักหรือไม่?

คำตอบของทั้งคู่ก็โอเค แต่ฉันสงสัยว่าคำตอบของคำถามที่สองนั้นสามารถทำได้อย่างมีประสิทธิภาพมากกว่า k โทรหาคำตอบสำหรับคำถามแรก


2
การค้นหาของ Google ใน "เส้นทางที่สั้นที่สุด k" จะปรากฏขึ้นจำนวนอ้างอิงที่อธิบายอัลกอริทึมสำหรับปัญหานี้ นอกจากนี้ยังมีบทความ Wikipedia ในหัวข้อนี้ว่า: en.wikipedia.org/wiki/K_shortest_path_routing
DW

@DW เข้าสู่คำตอบพร้อมสรุปสั้น ๆ ไหม?
กราฟิลส์

คำตอบ:


5

ใน kปัญหาเส้นทางที่สั้นที่สุดเราต้องการค้นหาkเส้นทางเชื่อมต่อคู่จุดสุดยอดที่กำหนดด้วยความยาวรวมขั้นต่ำ Eppstein [1] มีอัลกอริทึมทำงานอยู่O(ม.+nเข้าสู่ระบบn+k) เวลาที่จะหา kเส้นทางที่สั้นที่สุด (อนุญาตรอบ) ระหว่างคู่ของจุดยอดใน digraph ด้วยเทคนิคของกระดาษเราสามารถหาเส้นทางทั้งหมดที่สั้นกว่าเกณฑ์ที่กำหนดภายในระยะเวลาเดียวกัน มีวรรณกรรมมากมายในเรื่อง Eppstein กระดาษรวมถึงการอ้างอิงและการสนทนามากมาย

หากคุณไม่อนุญาตรอบคุณอาจต้องการดูอัลกอริทึมของ Hershberger และคณะ [2]


[1] Eppstein เดวิด "ค้นหาเส้นทางที่สั้นที่สุด k" วารสารสยามเกี่ยวกับการคำนวณ 28.2 (1998): 652-673 [ CiteSeerX ]

[2] Hershberger, John, Matthew Maxel และ Subhash Suri "การค้นหาเส้นทางที่สั้นที่สุด k ที่สั้นที่สุด: อัลกอริธึมใหม่และการนำไปใช้งาน" ACM ธุรกรรมบนอัลกอริทึม (TALG) 3.4 (2007): 45. [ CiteSeerX ]

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