คุณจะหาเส้นทางที่สั้นที่สุดในกราฟกำกับได้อย่างไร?
คุณจะหาเส้นทางที่สั้นที่สุดในกราฟกำกับได้อย่างไร?

วีดีโอ: คุณจะหาเส้นทางที่สั้นที่สุดในกราฟกำกับได้อย่างไร?

วีดีโอ: คุณจะหาเส้นทางที่สั้นที่สุดในกราฟกำกับได้อย่างไร?
วีดีโอ: โครงสร้างกราฟ (Graph) เบื้องต้น และวิธีการหาเส้นทางด้วยวิธี Minimum Spanning Tree และ Shortest Path 2024, ธันวาคม
Anonim

รับน้ำหนัก กำกับ อะไซคลิก กราฟ และจุดยอดต้นทางใน กราฟ , หา เส้นทางที่สั้นที่สุด จากแหล่งที่กำหนดไปยังจุดยอดอื่นๆ ทั้งหมด

เส้นทางที่สั้นที่สุดในกราฟ Acyclic กำกับทิศทาง

  1. เริ่มต้น dist = {INF, INF, ….}
  2. สร้างลำดับทอพอโลยีของจุดยอดทั้งหมด
  3. ทำตามทุกจุดยอดในลำดับทอพอโลยี

ในลักษณะนี้ คุณจะหาเส้นทางที่สั้นที่สุดบนกราฟได้อย่างไร

ขั้นตอนอัลกอริทึม: สำหรับ กราฟ ด้วยจุดยอด: เริ่มต้น เส้นทางที่สั้นที่สุด ระหว่างจุดยอดใดๆ กับอินฟินิตี้ หา ทุกคู่ เส้นทางที่สั้นที่สุด ที่ใช้จุดยอดตรงกลางแล้ว หา NS เส้นทางที่สั้นที่สุด ที่ใช้จุดยอดระดับกลางเป็นต้น..จนใช้จุดยอดทั้งหมดเป็นโหนดกลาง.

ด้านบนนี้ คุณจะค้นหาเส้นทางที่สั้นที่สุดใน DFS ได้อย่างไร ไม่ คุณไม่สามารถใช้ DFS ถึง หาทางที่สั้นที่สุด ในกราฟที่ไม่ถ่วงน้ำหนัก ไม่ใช่กรณีที่ หา NS เส้นทางที่สั้นที่สุด ระหว่างสองโหนดได้รับการแก้ไขโดย BFS เท่านั้น

ในทำนองเดียวกัน คุณจะหาเส้นทางที่สั้นที่สุดในต้นไม้ได้อย่างไร?

  1. ต้นไม้สำรวจ (ความลึกก่อน)
  2. เก็บดัชนี (โหนด)
  3. เพิ่มค่า
  4. ทำ (1) จนจบต้นไม้
  5. เปรียบเทียบผลรวมและพิมพ์เส้นทางและผลรวม

อัลกอริทึมใดที่ใช้ในการค้นหาเส้นทางที่สั้นที่สุด

Dijkstra's Shortest Path First algorithm