ผลต่างระหว่างรุ่นของ "418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมแบบตะกละ II/เฉลยข้อ 6"
ไปยังการนำทาง
ไปยังการค้นหา
Cardcaptor (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย '== อัลกอริทึม == สมมติให้ <math>e = (u,v) \,</math> เราจะทำการหา simple cycle …') |
Cardcaptor (คุย | มีส่วนร่วม) |
||
แถว 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 ได้ด้วยอัลกอริทึมต่อไปนี้
- ตัด ออกจากกราฟ
- หา shortest path P จาก ไปยัง
- ตอบ cycle ที่เกิดจากการนำ เข้าไปรวมกับ
เราสามารถหา shortest path ด้วย Dijkstra's algorithm ได้ในเวลา ฉะนั้นอัลกอริทึมดังกล่าวจึงทำงานในเวลา ด้วย
เรายังเห็นได้อย่างชัดเจนอีกว่า cycle ที่ตอบก็เป็น cycle ที่สั้นที่สุด เนื่องจาก simple cycle ที่มี edge จะต้องประกอบด้วย simple path จาก ไป ด้วยเสมอ การใช้ shortest path จาก ไป จึงทำให้เราได้ cycle ที่สั้นที่สุด