Artificial Intelligence (AI) สัปดาห์ที่ 2 Search Technique อ.เทพฤทธิ์ สินธำรงรักษ์ เรียบเรียง
Introduction to search technique ในบทนี้เราจะกล่าวถึงเทคนิคการค้นหาคำตอบสำหรับ การแก้ปัญหา เพื่อให้ผลลัพธ์ที่ได้ ได้ประสิทธิภาพ สูงสุด เทคนิคการค้นหา หมายถึง เทคนิคที่ใช้แก้ไขปัญหา เพื่อหาคำตอบหรือสู่สถานะเป้าหมาย ได้อย่างมี ประสิทธิภาพ
กฏเกณฑ์การวัดประสิทธิภาพของเทคนิคการค้นหา KPI of Search Techniques ได้แก่ Completeness สามารถค้นหาคำตอบได้ หรือไม่ Optimality สามารถค้าหาคำตอบที่ดีที่สุด ได้ Time Complexity เวลาที่ใช้ในการค้นหา Space Complexity พื้นที่หน่วยความจำที่ใช้ อ้างอิงจาก Russell and Norvig, 2003
Blind Search Techniques หรือ Uninformed Search Techniques เป็น วิธีการค้าหาที่ง่ายต่อการเขียนโปรแกรม ง่ายต่อ การเข้าใจ แต่มีประสิทธิภาพต่ำเนื่องจากลักษณะ การเขียนโปรแกรมต้องต้อง For หรือ While loop ทุกทิศทางที่จะเป็นไปได้
เทคนิคการค้นหา Blind Search Technique เป็นเทคนิคการ ค้นหาที่ไม่มีข้อมูลนำมาพิจารณา Heuristic Search Techniques เป็นเทคนิคการ ค้นหาที่มีข้อมูลประกอบในการค้นหา
Breadth-First Search (BFS) เป็นวิธีค้นหาแนวกว้าง (Breadth) จะค้าหาแต่ละ โหลดจากซ้ายไปขวาทีละระดับ ของทรีจากบนลงล่าง หากยังไม่พบเป้าหมายให้ลงไปอีกระดับหนึ่งแล้วค้นหา ทีละโหนด จนกว่าจะพบเป้าหมายที่ต้องการ เช่น กำหนดให้โหลด h เป้นเป้าหมายของการค้นหาแต่มี ข้อเสียที่เวลานานและหน่วยความจำมาก กำหนดให้ b แทนจำนวนกิ่งเฉลี่ยของแต่ละโหลด (Branching Factor) d แทนระดับความลึก (Deep) Time O(bd)
Breadth-First Search (BFS)
Breadth-First Search (BFS) An example map of Germany with some connections between cities ที่มา : Wikipedia
Depth-First Search (DFS) กำหนดให้ b แทนจำนวนกิ่งเฉลี่ยของแต่ละโหลด (Branching Factor) d แทนระดับความลึก (Deep) Time O(bd) ให้นักศึกษา สังเกตุความแตกต่างระหว่าง BFS กับ DFS ว่ามีส่วนใดที่แตกต่างกัน
Depth-Limited Search (DLS) จาก DFS ทำให้การเขียนโปรแกรมจะต้องลูปให้ครบ ทุกทางที่จะเป็นไปได้ในการค้นหา ดังนั้นจึงเกิด วิธีการนี้ขึ้นมาเพื่อ ลดระยะเวลาในการค้นหา ตัวอย่าง กำหนดเป้าหมายเป็น E และlimit=2 (Limit เป็นระดับความสูงของต้นไม้เริ่มต้นเป็น 0) กำหนด b แทนจำนวนกิ่งเฉลี่ยของแต่ละโหลด (Branching Factor) l แทน Limitของการค้นหา Time O(bl)
ข้อเสียของวิธีนี้คืออะไร
Iterative Deepening Search (IDS) เป็นการพัฒนา DLS ให้มีขีดความสามารถ สูงขึ้น กำหนด b แทนจำนวนกิ่งเฉลี่ยของแต่ละโหลด (Branching Factor) l แทน Limitของการค้นหา Time O(bl)
*Depth-First Search (DFS) กับ Iterative Deepening Search แตกต่างกันอย่างไร
Heuristic Search Techniques ในความเป็นจริงของปัญหา มักเป็นปัญหาที่ ใหญ่ เราจะเห็นได้ว่าเมื่อมีข้อมูลเยอะขึ้นนั้นการ ค้นหาแบบ Uninformed Search Techniques จะไม่เหมาะสมในการเขียน โปรแกรมคำนวณเนื่องจากทุกวิธีใช้เวลาในการ คำนวณสูง Heuristic Search หรือในตำรา บางเล่มเรียกว่า Heuristic Algorithm เป็น วิธีการสุ่มหาคำตอบที่มีความเร็วสูง ลอกเรียน การทำงานของสิ่งมีชีวิต เช่น ต้นไม้ มด พันธุศาสตร์ สัดส่วนทองคำแต่ผลลัพธ์ที่ได้ อาจจะไม่เป็นค่าที่ดีที่สุด ขึ้นอยู่กับจุดเริ่มต้น (Initialization) และเทคนิคที่ใช้ค้นหา
Local and Global Solution ตัวอย่างปัญา MAX
Local Solution ตัวอย่างปัญา Maximum
Global Solution ตัวอย่างปัญา Maximum
Local and Global Solution example London ถ้าเราต้องเดินทางจาก London ไปMunchen จากสนามบินใดใกล้ที่สุด
Greedy Best First Search(GBFS) เป็นวิธีการเลือกเส้นทางที่ดีที่สุดก่อน เพื่อ ค้นหาเป้าหมายได้อย่างรวดเร็ว โดยพิจารณา เส้นทางที่สามารถมองเห็น ที่โหนดนั้นๆ และ เลือกเส้นทางที่ใช้ทรัพยากรจากตำแหน่ง ณ จุด นั้นจนถึงเป้าหมายให้น้อยที่สุด Time O(bm) b is the average branching factor (the average number of successors from a state) m is the maximum depth of the search tree.)
Example of the Algorithm Start A C E D G Goal 2 5 3 12 I will use it to find the path from Start to Goal in the graph below.
Example of the Algorithm Start A C E D G Goal 2 5 3 12 First, add the Start node to the fringe.
Example of the Algorithm Start A C E D G Goal 2 5 3 12 Visit the Start node and add its neighbors to the fringe.
Example of the Algorithm Start A C E D G Goal 2 5 3 12 Next
Example of the Algorithm Start A C E D G Goal 2 5 3 12 Next
Example of the Algorithm Start A C E D G Goal 2 5 3 12 The path found from Start to Goal is: Start -> A -> D -> E -> Goal. In this case, it was the optimal path, but only because the heuristic values were fairly accurate.
If AC distance equal 2 This way is longer than old way 3 2 D G 12 E C Start A C E D G Goal 2 3 5 12 This way is longer than old way
Nearest neighbor Search Nearest neighbor search (NNS), also known as proximity search, similarity search or closest point search, is an optimization problem for finding closest points in metric spaces. The problem is: given a set S of points in a metric space M and a query point q ∈ M, find the closest point in S to q. In many cases, M is taken to be d-dimensional Euclidean space and distance is measured by Euclidean distance.
The Traveling salesman problem using Nearest neighbor Search
The Traveling salesman problem
The Traveling salesman problem
Objective function : Min Distance ขั้นตอน การคำนวณ(แบบหยาบๆ) LAB 1 ให้ นศ. ใช้อัลกอริทึม Nearest neighbor Search แก้ปัญหาการค้าหา เส้นทางที่สั้นที่สุดแบบ TSP โดยเริ่มต้น จากเมือง A Objective function : Min Distance ขั้นตอน การคำนวณ(แบบหยาบๆ) - สร้างตาราง Distance - ใช้อัลกอริทึมค้นหาโดยเริ่มจาก A
ลองคิด ให้ นศ. ใช้อัลกอริทึม Nearest neighbor Search แก้ปัญหา England Russia Canada USA Japan Egypt Venezuela India Nigeria Goal Brazil Start South Africa
Install Program Matlab A*,Kmean ,Crossover C# Express kNN Appserv 2.5.10 Rollete Java script
Assignment 1 ส่วนประกอบของรายงาน 1.ที่มา หลักการ โจทย์ 2.ผลลัพธ์ ให้ นศ. แก้ปัญหา การค้นหาเส้นทางที่สั้นที่สุดแบบ TSP ส่งพร้อมรายงาน คะแนนเต็ม 10 Objective function : Min Distance กำหนดให้ เมือง A,B,C,…,K A=[0,0] B=[3,5] C=[2,3] D=[4,6] E =[5,5] F=[8,1] G=[2,4] H=[1,6] I=[-1,-1] K=[6,4] ส่วนประกอบของรายงาน 1.ที่มา หลักการ โจทย์ 2.ผลลัพธ์ 3.วิเคราะห์ผลลัพธ์ 4.โค้ด กำหนดส่ง 21 พ.ย. 56