370 likes | 555 Views
Artificial Intelligence (AI). สัปดาห์ที่ 2 Search Technique อ.เทพฤทธิ์ สินธำรงรักษ์ เรียบเรียง. Introduction to search technique. ในบทนี้เราจะกล่าวถึงเทคนิคการค้นหาคำตอบสำหรับการแก้ปัญหา เพื่อให้ผลลัพธ์ที่ได้ ได้ประสิทธิภาพสูงสุด
E N D
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) An example map of Germany with some connections between cities ที่มา : Wikipedia
Depth-First Search (DFS) • เป็นวิธีการค้นหาตามแนวลึก(Depth) จะค้นหาจากข้างบนลงล่าง หากไม่พบให้ลงไปอีกหนึ่งระดับแล้วพิจารณาโหลดลูกที่อยู่ด้านซ้ายก่อน ทำเช่นนี้ไปเรื่อยๆ จนกว่าจะพบโหนดเป้าหมายที่ต้องการ หากพิจาณาจนถึงโหลดสุดท้าย • กำหนดให้ • 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 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal I will use it to find the path from Start to Goal in the graph below.
Example of the Algorithm 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal First, add the Start node to the fringe.
Example of the Algorithm 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal Visit the Start node and add its neighbors to the fringe.
Example of the Algorithm 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal Next
Example of the Algorithm 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal Next
Example of the Algorithm 3 A 2 2 D G Start 5 3 12 2 E C 3 5 Goal 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 3 A 2 2 D G Start 2 3 12 2 E C 3 5 Goal 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
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 • ให้ นศ. แก้ปัญหา การค้นหาเส้นทางที่สั้นที่สุดแบบ 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