การค้นในปริภูมิสถานะ
อัลกอริทึมพื้นฐานของกราฟ มีปัญหาในทางปฏิบัติที่คำตอบของปัญหาได้มาจากวิธีแจกแจงและ ตรวจสอบผลเฉลย แต่การแจกแจงและตรวจสอบเช่นนี้ใช้เวลานาน มาก ดังนั้นจึงไม่ควรอย่างยิ่งที่จะแจกแจงและตรวจสอบทุก ๆ กรณี การแจกแจงและตรวจสอบนั้น เปรียบได้กับ การค้นคำตอบในปริภูมิ สถานะผลเฉลยที่มีขนาดใหญ่ จะค้นไปทางไหน อย่างไร หาก กระทำอย่าง "ฉลาด" ย่อมพบคำตอบได้เร็วขึ้น บทนี้นำเสนอกลวิธีการค้นคำตอบในปริภูมิสถานะ ได้แก่ การค้น ตามแนวลึกและแนวกว้าง ซึ่งสามารถเพิ่มกลวิธีการย้อนรอย (backtracking) ที่มีฟังก์ชันการตรวจสอบความมีแววของปมสถานะ ถ้า ไม่มีแววว่าจะนำไปสู่คำตอบ ก็อย่าค้นต่อจากปมนั้น ผนวกกับการค้น ตามต้นทุนต่ำสุด ที่จะนำการค้นไปสู่คำตอบได้ถูกทิศถูกทาง นอกจากนี้ยังมีกลวิธีขยายและจำกัดเขต (branch and bound) ที่ใช้กับ ปัญหาการหาคำตอบดีสุดที่เรียกว่า optimization problems
Divide and Conquer
Dynamic Programming ให้ 𝑑 𝑖,𝑗 𝑚 แทนความยาวของวิถีสั้น สุดจาก 𝑖 ไป j ที่ใช้เส้นเชื่อมไม่เกิน m เส้น
Greedy Algorithm
หัวข้อ การแจกแจงผลเฉลยทุกรูปแบบ การค้นในแนวลึก การค้นในแนวกว้าง การย้อนรอย การค้นตามต้นทุนน้อยสุด การขยายและจำกัดเขต
ลำดับการตัดสินใจ คำตอบได้มาจากลำดับของการตัดสินใจ Greedy: Sorting : สลับคู่ใดก่อน Activity Selection : ทำกิจกรรมใดก่อน MST : เลือกเส้นเชื่อมใดมาเป็น MST Knapsack : หยิบของชิ้นใดใส่ถุงเป้ Greedy: นำไปสู่คำตอบที่ดีที่สุด (เจอกรณีแบบนี้ไม่มาก) Dynamic Programming หาคำตอบย่อยทุกแบบ เพื่อใช้ตัดสินใจสร้างคำตอบของปัญหาใหญ่ เร็วเมื่อจำนวนปัญหาย่อยทั้งหมดมีไม่มาก แต่มีปัญหามากมาย ไม่รู้วิธีเลือกแบบ greedy ที่ดีสุด จำนวนปัญหาย่อยมีมาก
Sum of Subset
Sum of Subset
รูปแบบของผลเฉลย
ลุยทุกเซตย่อย
Sum of Subset
Binary Counter : Recursive
ขั้นตอนการเติม x[1..n]
Sum of Subset : ลุยทุกเซตย่อย #1
D = {6, 2, 4}, k = 6
ถ้าต้องการคำตอบเดียว
ปริภูมิสถานะ (State Space)
ปริภูมิสถานะ มีได้หลายแบบ
การแจงเซตย่อย
Sum of Subset : ลุยทุกเซตย่อย
0/1 Knapsack
K - Coloring
Sudoku --> K -Coloring
n-Queen
Depth – First Search Breadth – First Search
DFS กับ BFS
Depth – First Search
Depth-First Search : Iterative
Breadth-First Search
ปริมาณหน่วยความจำ DFS - BFS
Backtracking
การย้อนรอย (backtracking)
Sum of Subset : Backtracking
DFS + Backtracking
DFS + Backtracking
BFS + Backtracking
Sum of Subset : Backtracking
ลองคิดดู : Sum of Subset
Least – Cost Search
Least – Cost Search
ต่อพรุ่งนี้