418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมแบบตะกละ II/เฉลยข้อ 6
รุ่นแก้ไขเมื่อ 15:49, 18 กันยายน 2552 โดย Cardcaptor (คุย | มีส่วนร่วม)
สมมติให้ เราจะทำการหา simple cycle ที่สั้นที่สุดที่มี edge ได้ด้วยอัลกอริทึมต่อไปนี้
- ตัด ออกจากกราฟ
- หา shortest path P จาก ไปยัง
- ตอบ cycle ที่เกิดจากการนำ เข้าไปรวมกับ
เราสามารถหา shortest path ด้วย Dijkstra's algorithm ได้ในเวลา ฉะนั้นอัลกอริทึมดังกล่าวจึงทำงานในเวลา ด้วย
เรายังเห็นได้อย่างชัดเจนอีกว่า cycle ที่ตอบก็เป็น cycle ที่สั้นที่สุด เนื่องจาก simple cycle ที่มี edge จะต้องประกอบด้วย simple path จาก ไป ด้วยเสมอ การใช้ shortest path จาก ไป จึงทำให้เราได้ cycle ที่สั้นที่สุด