140 likes | 527 Views
Dijkstra Shortest Path Algorithm. ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยบูรพา. ตัวอย่างสำหรับ Dijkstra ’ s Algorithm. ตัวอย่างสำหรับ Dijkstra’s Algorithm ในตัวอย่างนี้ ให้เริ่มที่โหนด A และ ตัวเลขบนอาร์กคือระยะทางระหว่างโหนด. เริ่มต้น. 4. 6. A. A. B. C. D(v).
E N D
Dijkstra Shortest Path Algorithm ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยบูรพา
ตัวอย่างสำหรับ Dijkstra’s Algorithm • ตัวอย่างสำหรับ Dijkstra’s Algorithm ในตัวอย่างนี้ ให้เริ่มที่โหนด A และ ตัวเลขบนอาร์กคือระยะทางระหว่างโหนด เริ่มต้น 4 6 A A B C D(v) Pred(v) 0 infinity A 0 7 3 5 5 0 B infinity 0 3 C infinity F D 0 D infinity 0 4 E infinity 7 5 0 F infinity 0 G infinity G E 4
รอบที่ 1 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 1 A B (A,B) 4 4 4 F (A,F) 5 5 5 เลือก B 4 6 A B B C D(v) Pred(v) 0 A 0 7 3 5 5 A 0 B 4 infinity 0 3 C infinity F D 0 D infinity 0 4 E infinity 7 5 0 F infinity 0 G infinity G E 4
รอบที่ 2 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 2 A,B C (B,C) 6 10 10 F (A,F) 5 5 5 (B,F) 3 7 5 4 6 A B B C D(v) Pred(v) A 0 0 เลือก F 7 3 5 5 A B 4 0 3 C infinity F F D 0 D infinity 0 4 E infinity 7 5 A 0 F 5 infinity 0 G infinity G E 4
รอบที่ 3 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 3 A,B,F C (B,C) 6 10 10 D (F,D) 3 8 8 E (F,E) 4 9 9 G (F,G) 7 12 12 4 6 A B B C D(v) Pred(v) A 0 0 7 3 5 5 A เลือก D B 4 0 3 C infinity F F D D F 0 D 8 infinity 0 4 E infinity 7 5 A F 5 0 G infinity G E 4
รอบที่ 4 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 4 A,B,D,F C (B,C) 6 10 10 (D,C) 5 13 10 E (F,E) 4 9 9 (D,E) 5 13 9 G (F,G) 7 12 12 4 6 A B B C D(v) Pred(v) A 0 0 7 3 5 5 A B 4 0 3 C infinity F F D D F D 8 0 F 4 E 9 infinity 7 5 A F 5 เลือก E 0 G infinity G E E 4
รอบที่ 5 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 5 A,B,D,E,F C (B,C) 6 10 10 (D,C) 5 13 10 G (E,G) 4 13 12 (F,G) 7 12 12 เลือก C 4 6 A B B C C D(v) Pred(v) A 0 0 7 3 5 5 A B 4 B 0 3 C 10 infinity F F D D F D 8 F 4 E 9 7 5 A F 5 0 G infinity G E E 4
รอบที่ 6 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 6 A,B,C,D,E,F G (E,G) 4 13 12 (F,G) 7 12 12 4 6 A B B C C D(v) Pred(v) A 0 0 7 3 5 5 A B 4 B 3 C 10 F F D D F D 8 F 7 4 E 9 5 เลือก G A F 5 0 infinity G G G E E 4
รอบที่ 6 รอบที่ โหนดที่มีสีแดง Adjacency Node Arc ที่พิจารณา Weight(i,j) Weight(i,j)+d(i) d(v) 6 A,B,C,D,E,F G (E,G) 4 13 12 (F,G) 7 12 12 4 6 A B B C C D(v) Pred(v) A 0 0 7 3 5 5 A B 4 B 3 C 10 F F D D F D 8 F 7 4 E 9 5 A F 5 F 12 G G G E E 4
Dijkstra’s Algorithm ( ต่อ ) • เราจะได้ระยะทางที่สั้นที่สุดจากเมือง A ยังเมืองต่างๆ เช่น ถ้าเราต้องการเดินทางจากเมือง A ไปยังเมือง E ต้องเดินทางผ่านเมือง F แล้วมีระยะทางในการเดินทาง เท่ากับ 9
สรุป • Dijkstra’s Algorithm เป็นขั้นตอนวิธีที่ใช้ในการหาเส้นทางที่สั้นที่สุด ที่ใช้เวลาในการค้นหาเส้นทางที่สั้นที่สุดน้อย และมีขั้นตอนวิธีที่ไม่ยุ่งยากซับซ้อนมากจนเกินไป และเราสามารถเอา dijkstra’s algorithm มาประยุกต์ใช้ในงานต่างๆได้ ไม่ว่าจะเป็นการค้นหาเส้นทางที่สั้นที่สุดบนแผนที่หรือไปประยุกต์ใช้ในงานทางด้าน network ได้เป็นต้น
เอกสารอ้างอิง • http://www.cs.kau.se/cs/education/courses/davb03/lectures/graphs1.pdf • http://www.cs.vassar.edu/~walter/cs241index/lectures/PDF/graphs.pdf • http://www.cs.nott.ac.uk/~mzt/G6DSWE2002/pdfs/graphs4.pdf • http://www.cs.montana.edu/~defrance/classes/spring-2003/cs223/Lectures/graphs.html • http://www.cs.kau.se/~donald/ds_alg/lectures/graphs1.ppt
คำถาม ? Question