สมชาย :
State space search (SPJ-11 pp.237-264) :
- กำหนดรูปแบบของผลเฉลย ของปัญหาต่างๆ ได้ เช่น sum of subsets, 0/1 knapsack,
bandwidth minimization, n-Queen เป็นต้น
- วาด state space tree ของการแจงกรณีเพื่อแก้ปัญหาต่างๆ ได้เช่น sum of subsets,
0/1 knapsack, bandwidth minimization, n-Queen เป็นต้น
- เขียนอัลกอริทึมแจงกรณีและตรวจสอบทุกๆ permutations และ subsets ได้
- เขียนอัลกอริทึมแบบ depth first, breadth-first สำหรับปัญหาต่างๆ ได้เช่น
sum of subsets, 0/1 knapsack เป็นต้น
NP-complete (SPJ-13, CLR-36, CLR-37.1-37.2) :
- รู้นิยามของปัญหา P, NP, NP-hard, NP-complete อย่างถ่องแท้
- เขียน non-deterministic algorithm สำหรับปัญหา classic ต่างๆ ได้
- เข้าใจและอธิบายการทำ problem reduction สำหรับปัญหาพื้นฐานที่มีในหนังสือ
และที่นำเสนอในห้องเรียนได้
- พิสูจน์ได้ว่าปัญหาที่กำหนดให้เป็น P, NP, NP-hard, NP-complete
Approximation algorithms (CLR-37.1-37.2) :
- อธิบายลักษณะของ approximation algorithms และนิยามของ d-approx ได้
- เข้าใจการทำงานของ approx algorithms สำหรับปัญหา vertex cover และ Euclidean
TSP
- พิสูจน์ได้ว่าอัลกอริทึมทั้งสามที่ได้นำเสนอเป็น approx algorithm จริง
Elementary Graph Algorithms (CLR-23) :
- สามารถเขียน adjacency matrix และ adjacency list ของกราฟได้ พร้อมทั้งบอกปริมาณเนื้อที่ที่ต้องใช้ในการแทนกราฟนั้น
- เข้าใจอัลกอริทึม depth-first search บนกราฟ และคุณสมบัติของ edge ประเภทต่างๆ
d[] และ f[] ที่ node ต่างๆ หลังการ depth-first searvh
- เข้าใจอัลกอริทึมการหา topological sort ของ directed acyclic graph
- เข้าใจอัลกอริทึมการหา strongly connected components ของกราฟ
String Matching (CLR-34) :
- อธิบายหลักการทำงานของอัลกอริทึมแบบ naive, Knuth-Morris-Pratt, Boyer-Moore,
Rabin-Karp, และ string matching automata ได้
- เขียน state transition table เป็น
- สร้างตาราง ¶ เพื่อคำนวณ prefix function ของ pattern ที่กำหนดให้ได้