418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมแบบตะกละ II/เฉลยข้อ 6

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 15:49, 18 กันยายน 2552 โดย Cardcaptor (คุย | มีส่วนร่วม)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

สมมติให้ เราจะทำการหา simple cycle ที่สั้นที่สุดที่มี edge ได้ด้วยอัลกอริทึมต่อไปนี้

  1. ตัด ออกจากกราฟ
  2. หา shortest path P จาก ไปยัง
  3. ตอบ cycle ที่เกิดจากการนำ เข้าไปรวมกับ

เราสามารถหา shortest path ด้วย Dijkstra's algorithm ได้ในเวลา ฉะนั้นอัลกอริทึมดังกล่าวจึงทำงานในเวลา ด้วย

เรายังเห็นได้อย่างชัดเจนอีกว่า cycle ที่ตอบก็เป็น cycle ที่สั้นที่สุด เนื่องจาก simple cycle ที่มี edge จะต้องประกอบด้วย simple path จาก ไป ด้วยเสมอ การใช้ shortest path จาก ไป จึงทำให้เราได้ cycle ที่สั้นที่สุด