cs531

วิชา 01418531
โจทย์เพิ่มเติม กำหนดข้อมูล 12 จุด ให้แสดงวิธีการคำนวณ เพื่อหา Optimal Solution ในการสร้างเส้นตรงที่เกิดจากจุด (ที่เหลือ) โดยมีจำเส้นที่ก่อให้เกิด error น้อยที่สุด สรุปประเด็น Greedy - ตัวอย่างปัญหา - เทคนิคในการพิสูจน์ 1. เสนอวิธีการแก้ปัญหาที่เป็นแบบ Greedy และ คำตอบอื่่นที่คาดว่าจะได้ผลลัพธ์ที่ดี || สมมุติมีงานที่ต้องการประมวลผล n รายการ {1, 2,. . ., n}, แต่ละงานมีเวลาเริ่มต้นและสิ้นสุดแตกต่างกัน (s(i), f(i)).
 * [[file:cs531-score.pdf|คะแนนสอบกลางภาค]] [[file:final-score531.pdf|คะแนนปลายภาค]] (เฉพาะคะแนนต่ำกว่า 30 สอบใหม่)
 * บทที่ 4 -Greedy ข้อที่ 3, 4, 5, 13, แสดงการพิสูจน แบบ Greedy algorithm stays ahead ในการทอนเงิน (ใช้เงินบาทเป็นหลัก)
 * บทที่ 5 - Divide and Conquer ข้อที่ 1, 2
 * บทที่ 6 - Dynamic Programming ข้อที่ 2, 3, 4, 11
 * บทที่ 7 - Network flow ข้อที่ 1, 2, 3 (อาจมีเพิ่มเติม)
 * || Xi || Yi ||
 * p1 || 1 || 2 ||
 * p2 || 2 || 2.5 ||
 * p3 || 3 || 2.8 ||
 * p4 || 4 || 3 ||
 * p5 || 5 || 3.2 ||
 * p6 || 6 || 4 ||
 * p7 || 7 || 7 ||
 * p8 || 8 || 9 ||
 * p9 || 9 || 11 ||
 * p10 || 10 || 13 ||
 * p11 || 11 || 14 ||
 * p12 || 12 || 16 ||
 * มีทรัพยากร อยู่ 1 รายการ ต้องการให้บริการให้ได้งานมากที่สุด โดยแต่ละงานมีระยะเวลาเริ่มต้น และสิ้นสุดแตกต่างกัน (Interval scheduling)
 * กรณีข้อ 1 ถ้าต้องการให้บริการให้ครบ ต้องเพิ่มทรัพยากรสูงสุดเท่าไร จึงให้บริการได้ครบทุกงาน
 * มีทรัพยากร 1 รายการ ต้องการให้บริการให้ครบ แต่ให้เวลาเสร็จช้าที่สุดของงานน้อยที่สุด โดยเงื่อนไขของงาน มีกำหนดเวลาเสร็จ และ เวลาที่ต้องใช้ในการทำงาน
 * ตัวอย่าง (เพิ่มเติม) มีทรัพยากร 1 ต้องการให้ค่าเฉลี่ยในการคอยน้อยที่สุด และให้บริการครบทุกงาน
 * Greedy stays ahead
 * หลักการทั่วไป || ตัวอย่างการพิสูจน์ Interval Scheduling ||
 * ประกอบด้วย 4 ขั้นตอคือ

การจัดลำดับงาน เลือกจำนวนงานมากที่สุดที่ไม่มีการทำงานซ้อน พิจารณาเลือกงานที่เสร็จเร็วที่สุดก่อน ถ้ามีงานก่อนหน้าที่เกิดการทำงานขัดกัน จะย้ายงานเหล่านั้นออก || ให้แสดงว่า บางส่วนของคำตอบ ที่สร้างโดยอัลกอริทึม Greedy มีผลลัพธ์ไม่ต่างจากวิธีอื่น (ตามวิธีการที่กำหนดในข้อ 2) || สมมุติว่า Greedy เลือกลำดับการทำงานดังนี้ G= {i1, i2, .., ik} หรือได้งานจำนวน k งาน มีวิธีการอื่นที่คิดว่าดีกว่า O = {j1, j2, ... jm} และจัดเรียงลำดับตามเวลาแล้วเสร็จ เช่นกัน ||
 * 2. หาวิธีการประเมิน หรือวัด || เวลาในการเสร็จงาน (G) = f(i, r) ||
 * 3. ขั้นการพิสูจน์
 * 4. พิสูจน์ว่าวิธีเสนอให้ประสิทธิผลดีที่สุด (Prove optimality) || พิสูจน์ นิยมใช้ Math induction ในการพิสูจน์ ||

สรุปประเด็นปัญหา Divide-and-conquer ในประเด็นต่อไปนี้ (ศึกษาด้วยตนเอง และส่งภายในเวลา 12.00 วันที่ 31 ส.ค. ) นิสิตต้องศึกษาด้วยตัวเองเท่านั้น ถ้าทำไม่ได้ ให้ส่งว่าทำไม่ได้ แต่ต้องระบุว่านิสิตได้ศึกษาเอกสารอะไรบ้าง และใช้เวลาในการศึกษามาน้อยเท่าไร พร้อมทั้งสรุปสิ่งที่ได้ศึกษามา ไม่มีผลต่อคะแนน ถ้านิสิตทำไม่ได้แต่บอกว่าทำได้ จะมีผลต่อนิสิตเอง)
 * Exchange argument
 * Model ทางคณิตศาสตร์
 * ปัญหา Closest Pair Points เมื่อทำการแบ่งจุดตามแนวแกน X และหาจุดสองจุดที่ใกล้กันมากที่สุดของฝั่งซ้ายและขวาของแกนแล้ว ในการ merge เราจะทำอย่างไรเพื่อให้มั่นใจว่า ไม่มีจุดสองจุดที่อยูระหว่างเส้นแบ่ง น้อยกว่า จุดที่เราได้จากด้านซ้ายและขวา
 * วิเคราะห์การทำงานของอัลกอริทึม
 * ปัญหา Integer Multiplication จงแสดงตัวอย่าง การคูณ 1111 ฐาน 2 กับ 1001 ฐาน 2 โดยวิธีการ Karatsuba Multiplication ต้องจำลองให้เหมือนกัน
 * วิเคราะห์การทำงานของอัลกอริทึม สูตรพื้นฐานที่จำเป็นในการวิเคราะห์ มีอะไรบ้าง
 * ปัญหาการคูณเมทริกซ์ ใช้หลักในการแบ่งแยกและรวมอย่างไร ให้เขียนในสำนวนของนิสิตเอง ในการแบ่งและรวมมีหลักการใดบ้าง

การส่งงาน ส่งได้สองทาง คือ ส่งหน้าห้อง หรือ ส่งทางเมล์ ที่ j.chulee@gmail.com

ตรวจงาน 12 ชิ้น ส่งคืนให้หมดแล้ว 31/8/2012

เอกสารอื่นๆ
กำหนดส่งการบ้านเมื่อ อาจารย์สอนในหัวข้อดังกล่าวจบไปแล้ว และส่งในสัปดาห์ต่อไป
 * [[file:Huang88.pdf|In place merging]]