คำถามติดแท็ก shortest-path

คำถามเกี่ยวกับปัญหาอัลกอริทึมในการค้นหาเส้นทางที่สั้นที่สุดระหว่างโหนดในกราฟ

3
ความหมายของ 'ความกว้าง' ในการค้นหาความกว้างครั้งแรกคืออะไร?
ฉันได้เรียนรู้เกี่ยวกับการค้นหาครั้งแรกและคำถามอยู่ในใจว่าทำไม BFS จึงถูกเรียกเช่นนั้น ในหนังสือแนะนำอัลกอริทึมโดย CLRSฉันอ่านเหตุผลต่อไปนี้: การค้นหาความกว้างครั้งแรกนั้นตั้งชื่ออย่างมากเพราะจะเป็นการขยายขอบเขตระหว่างจุดยอดที่ค้นพบและจุดที่ยังไม่ถูกค้นพบอย่างสม่ำเสมอทั่วทั้งความกว้างของแนวชายแดน อย่างไรก็ตามฉันไม่สามารถเข้าใจความหมายของข้อความนี้ได้ ฉันสับสนเกี่ยวกับคำนี้ "ชายแดน" และความกว้างของชายแดนนั้น ดังนั้นบางคนได้โปรดตอบคำถามนี้ในวิธีที่ง่ายต่อการเข้าใจสำหรับผู้เริ่มต้นเช่นฉัน

3
การปรับเปลี่ยนอัลกอริธึมของ Dijkstra สำหรับน้ำหนักขอบที่ดึงจากช่วง
สมมติว่าฉันมีกราฟกำกับที่มีน้ำหนักขอบถูกดึงมาจากช่วง[1,…,K][1,…,K][1,\dots, K]โดยที่KKKคงที่ หากฉันพยายามค้นหาเส้นทางที่สั้นที่สุดโดยใช้อัลกอริทึมของ Dijkstraฉันจะแก้ไขอัลกอริทึม / โครงสร้างข้อมูลและปรับปรุงความซับซ้อนของเวลาเป็นO(|V|+|E|)O(|V|+|E|)O(|V|+|E|)อย่างไร

2
อัลกอริทึม Dijkstras ถูกใช้ในระบบค้นหาเส้นทางที่ทันสมัยหรือไม่?
อัลกอริทึมของ Dijkstra ใช้ในระบบค้นหาเส้นทางที่ทันสมัยเช่น Google maps หรือ satnav ในรถยนต์ของคุณหรือไม่? ถ้าไม่เช่นนั้นจะเกิดอะไรขึ้น?

1
เราสามารถหาเส้นทางที่สั้นที่สุดระหว่างทุกคู่ได้เร็วกว่าการแก้ปัญหาที่เกิดขึ้นซ้ำ ๆ กันหรือไม่?
ฉันต้องการสร้างเส้นทางที่สั้นที่สุด (จะน้อยกว่า 10) ระหว่างคู่ทั้งหมดในกราฟ กราฟคือ (จริง ๆ แล้วเป็นแผนที่รถไฟใต้ดิน):kkkkkk ถ่วงน้ำหนักในเชิงบวก ไม่มีทิศทาง เบาบาง มีประมาณ 100 โหนด แผนปัจจุบันของฉันคือการใช้เส้นทางที่สั้นที่สุดการกำหนดเส้นทางกับแต่ละคู่ ตอนนี้ฉันกำลังมองหาทางเลือกที่มีประสิทธิภาพมากขึ้น (อาจจะด้วยการเขียนโปรแกรมแบบไดนามิก)kkk

1
ค้นหาเส้นทาง k-shortest ระหว่างสองโหนด
รับ digraph ถ่วงน้ำหนัก G = V, EG=V,EG=V,Eและฟังก์ชั่นน้ำหนัก d( u , v )d(ยู,โวลต์)d(u,v)โดยปกติเราสามารถใช้อัลกอริทึมของ Dijkstra เพื่อรับเส้นทางที่สั้นที่สุด สิ่งที่ฉันสนใจคือทำอย่างไรจึงจะได้2ไม่มีวัน2nd2^{nd}เส้นทางที่สั้นที่สุด 3R d3Rd3^{rd}- สั้นที่สุดและอื่น ๆ คำถาม: มีอัลกอริทึมที่มีประสิทธิภาพในการรับเส้นทางที่สั้นที่สุดระหว่างสองโหนดในกราฟถ่วงน้ำหนักหรือไม่ มีอัลกอริธึมที่มีประสิทธิภาพในการรับเส้นทางที่สั้นที่สุดระหว่างสองโหนดในกราฟถ่วงน้ำหนักหรือไม่? คำตอบของทั้งคู่ก็โอเค แต่ฉันสงสัยว่าคำตอบของคำถามที่สองนั้นสามารถทำได้อย่างมีประสิทธิภาพมากกว่า kkk โทรหาคำตอบสำหรับคำถามแรก

3
เส้นทางที่ไม่ซ้ำในกราฟกำกับ
ฉันออกแบบอัลกอริทึมสำหรับการเรียนที่จะตรวจสอบหากนำกราฟที่ไม่ซ้ำกันด้วยความเคารพต่อยอดดังกล่าวว่าสำหรับการใด ๆมีที่มากที่สุดเส้นทางหนึ่งจากเพื่อUฉันเริ่มต้นด้วยการใช้ BFS (ค้นหาแบบกว้างแรก) เพื่อค้นหาเส้นทางที่สั้นที่สุดจาก v ไปยังจุดสุดยอดอีกจุดหนึ่งจากนั้นเรียกใช้ BFS อีกครั้งเพื่อดูว่าสามารถหาเส้นทางอื่นจาก v ถึง u ได้ไหม ฉันคิดว่ามันใช้เวลานานเกินไป ใครบ้างมีคำใบ้ว่าวิธีการแก้ปัญหาสามารถพบได้ด้วยเวลาการดำเนินการที่สั้นลง?โวลต์vvคุณ≠ โวลต์u≠vu \ne vโวลต์vvยูuu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.