===== 204451 การออกแบบและการวิเคราะห์อัลกอริทึม (ALGORITHM DESIGN AND ANALYSIS) ===== หน่วยกิตกระบวนวิชา 3(3-0-6) เงื่อนไขที่ต้องผ่านก่อน 204251 or 204252; and 206183 or 206281 ==== ประกาศ ==== Facebook Group : [[https://www.facebook.com/groups/22s1.204451|22S1.204451]] ==== วัน-เวลาเรียน ห้องเรียนและผู้สอน ==== วันอังคารและศุกร์ เวลา 08:00 - 09:30 น. ตอน 001 ห้องเรียน CSB 201 ชื่อผู้สอน ผศ.เบญจมาศ ปัญญางาม ห้องทำงาน : CSB 110 email : bpanyangam@yahoo.com ตอน 002 ห้องเรียน CSB 209 ชื่อผู้สอน ผศ.ดร.จักริน ชวชาติ ห้องทำงาน : CSB 107 email : jakarin.c@cmu.ac.th ==== วัตถุประสงค์ของกระบวนวิชา ==== เพื่อให้นักศึกษาสามารถ - ประเมินความซับซ้อนของอัลกอริทึมและมีความสามารถออกแบบใหม่ - อธิบายความรู้เทคนิคอัลกอริทึมขั้นพื้นฐาน - นำเทคนิคเหล่านี้ไปประยุกต์ใช้งานได้ ==== สัดส่วนการให้คะแนน ==== การวัดผล อิงเกณฑ์และกลุ่ม * การบ้าน 15% * คะแนนงานโปรแกรม 10% * วินัยในการส่งงาน 5% * คะแนนสอบกลางภาค 35% * คะแนนสอบปลายภาค 35% ==== กำหนดส่งงาน (download ไฟล์งานบน FB กระบวนวิชา) ==== ** การตั้งชื่อไฟล์ assign_xx_id โดยที่ xx หมายถึงลำดับงาน เช่น assign_01_id เป็นต้น** ^ลำดับงาน ^กำหนดส่งงาน| |Assignment#01 : Time Complexity| TBA | |Assignment#02 : Asymptotic notation I| TBA | |Assignment#03 : Asymptotic notation II| TBA | |Assignment#04 : Solving Recurrence Relation I | TBA | |Assignment#05 : Solving Recurrence Relation II | TBA | |Assignment#06 : Network Flow | TBA | |Assignment#07 : NP I | TBA | |Assignment#08 : NP II | TBA | |Assignment#09 : Automata I | TBA | |Assignment#10 : Automata II | TBA | ==== กำหนดส่งงานโปรแกรม ส่งบนระบบ Grader ==== ^ลำดับงาน ^กำหนดส่งงาน| |Problem#01 : | TBA | |Problem#02 : | TBA | |Problem#03 : | TBA | |Problem#04 : | TBA | ==== เนื้อหากระบวนวิชา ==== ^สัปดาห์ที่ ^เนื้อหา-บรรยาย | | 1 | * ชี้แจงแนวทางการเรียนการสอน นัดสอบกลางภาค \\ * บทที่ 1 ทบทวนคณิตศาสตร์ (Math Reviews) {{:ch1algo62mathreview.pdf|Download}} \\ * บทที่ 2 ความสำคัญของอัลกอริทึมที่มีประสิทธิภาพ (The importance of efficient algorithms) {{:Ch2The-Importance-of-Efficient-Algorithm-stu.pdf|Download}} | | 2 | * บทที่ 3 สัญลักษณ์แสดงขีดจำกัด (Asymptotic notation) {{:Ch3Asymptotic-Notation1-stu.pdf|Download}} {{:Ch3Asymptotic-Notation2-stu.pdf|Download1}} {{:Ch3SurveyOfCommonRunningTime.pdf|Download2}} | | 3-4 | * บทที่ 4 การแก้ปัญหาความสัมพันธ์แบบเวียนเกิด (Solving recurrence relations) {{:Ch4Algo62Solving-recurrence-relations1-stu.pdf|Download1}} {{:Ch4Algo62Solving-recurrence-relations2.pdf|Download2}} \\ * บทที่ 5 อัลกอริทึมแบบแบ่งแยกและเอาชนะ (Divide and conquer algorithms) {{:Ch5DivideandConquer part1 - STU.pdf|Download1}} | | 5 | * บทที่ 5 อัลกอริทึมแบบแบ่งแยกและเอาชนะ (Divide and conquer algorithms) {{:Ch5DivideandConquer part2 - STU.pdf|Download2}}{{:Ch5DivideandConquer part3.pdf|Download3}}| | 6-7 | **วันอังคารที่ 27 ก.ค. 64 หยุดพิเศษ(ครม.) ** \\ * บทที่ 6 ต้นไม้การตัดสินใจและขอบเขตล่าง (Decision trees and lower bounds) {{:Ch6Decision Tree and lowerbound.pdf|Download}} \\ * บทที่ 7 ปัญหาเกี่ยวกับสายอักขระ (String related problem) {{:Ch7Algo63StringProblem.pdf|Download}}| | 7-8 | * บทที่ 8 อัลกอริทึมเชิงละโมบ (Greedy algorithms){{:Ch8Algo63GreedyPart1.pdf|Download1}} {{:Ch8Algo63GreedyPart2.pdf|Download2}} {{:Ch8Algo63GreedyPart3.pdf|Download3}}| | ช่วงสัปดาห์สอบกลางภาค วันจันทร์ที่ 29 สิงหาคม - อาทิตย์ที่ 4 กันยายน 2565\\ **สอบกลางภาค วันที่ XX เวลา XX น.** || | 9-10 | * บทที่ 9 การโปรแกรมแบบพลวัต (Dynamic programming) {{:ch9algo63dppart1.pdf|DP1}} {{:ch9algo63dppart2.pdf|DP2}} {{:ch9algo63dppart3.pdf|DP3}} {{:ch9algo63dppart4.pdf|DP4}} | | 11-12 | * บทที่ 10 การไหลในเครือข่าย (Network flow) {{:ch10algo63maximumflowpart1.pdf|NetFlow1}} {{:ch10algo63maximumflowpart2.pdf|NetFlow2}} {{:ch10algo63maximumflowpart3.pdf|NetFlow3}}| | 12-14 | **วันศุกร์ที่ 24 ก.ย. 64 หยุดพิเศษ(ครม.) ** \\ * บทที่ 11 เอ็นพีบริบูรณ์ (NP-Completeness) {{:Ch11Algo63NPpart1_4x4.pdf|NP1}} {{:Ch11Algo63NPpart2_4x4.pdf|NP2}} {{:Ch11Algo63NPpart3_4x4.pdf|NP3}}| | 14-15 | * บทที่ 12 ออโตมาตา (Automata) \\ {{:ch12algo63automatapart1_4x4.pdf|AutoMata1}} {{:ch12algo63automatapart2_4x4.pdf|AutoMata2}} {{:ch12algo63automatapart3_4x4.pdf|AutoMata3}}| | **สอบปลายภาควันพุธที่ 2 พ.ย. 65 เวลา 12:00 - 15:00 น.** (ตามประกาศของมหาวิทยาลัย) || ==== หนังสือ/วารสารประกอบการเรียนการสอน ==== - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Introduction to Algorithms - สมชาย ประสิทธิ์จูตระกูล, การออกแบบและวิเคราะห์อัลกอริทึม (Online Book ที่ http://www.cp.eng.chula.ac.th/~somchai/ULearn/Algorithms/)