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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

เพื่อให้สัญลักษณ์ดูง่าย เราให้ สำหรับ ทุกตัว

อัลกอริทึม

เรียงผู้เข้าแข่งขันตาม จากน้อยไปหามาก แล้วจัดลำดับการเริ่มต้นแข่งตามนั้น

เห็นได้อย่างชัดเจนว่าอัลกอริทึมนี้สามารถทำงานได้ในเวลา

ข้อสังเกต

ก่อนที่เราจะไปพิสูจน์ว่าอัลกอริทึมทำงานได้ถูกต้อง เราจะตั้งข้อสังเกตดังต่อไปนี้

ให้ แทนเวลาที่ผู้เข้าแข่งขันหมายเลข วายน้ำเสร็จ แล้วเราจะได้ว่าเวลาที่ผู้เข้าแข่งขันคนที่ช้าที่สุดจบการแข่งขันคือเวลา

ดังนั้นอัลกอริทึมข้างบนจึงเป็นอัลกอริทึมทีทำให้ มีค่าน้อยที่สุดเท่าที่จะเป็นไปได้

การพิสูจน์ความถูกต้องของอัลกอริทึม

เราจะพิสูจน์ว่าอัลกอริทึมทำงานได้ถูกต้องโดยใช้ exchange argument

ให้ แทนวิธีการจัดลำดับการเริ่มแข่งขันที่ดีที่สุด (กล่าวคือผู้เข้าแข่งขันที่จบการแข่งขันช้าที่สุดนั้นจบการแข่งขันเร็วที่สุดเท่าที่จะทำได้) เราจะแสดงว่าเราสามารถเปลี่ยน ไปเป็นวิธีการจัดลำดับการแข่งขันที่ผู้เข้าแข่งขันถูกเรียงตามเวลา โดยไม่ทำให้เวลาจบการแข่งขันของผู้เข้าแข่งขันที่จบเป็นคนสุดท้ายช้าลงได้ดังต่อไปนี้