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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(หน้าที่ถูกสร้างด้วย '== อัลกอริทึม == สมมติให้ <math>e = (u,v) \,</math> เราจะทำการหา simple cycle …')
 
 
แถว 1: แถว 1:
== อัลกอริทึม ==
 
 
สมมติให้ <math>e = (u,v) \,</math> เราจะทำการหา simple cycle ที่สั้นที่สุดที่มี edge <math>e \,</math> ได้ด้วยอัลกอริทึมต่อไปนี้
 
สมมติให้ <math>e = (u,v) \,</math> เราจะทำการหา simple cycle ที่สั้นที่สุดที่มี edge <math>e \,</math> ได้ด้วยอัลกอริทึมต่อไปนี้
  

รุ่นแก้ไขปัจจุบันเมื่อ 15:49, 18 กันยายน 2552

สมมติให้ เราจะทำการหา 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 ที่สั้นที่สุด