สั ปดาหที ์ ่ 2 Search Technique อ.เทพฤทธิ ์ สิ นธารงรักษ์ เรียบเรียง ในบทนี้เราจะกลาวถึ งเทคนิคการค้นหาคาตอบสาหรับ ่ การแกปั ่ ให้ผลลัพธที ทธิภาพ ้ ญหา เพือ ้ ์ ไ่ ด้ ไดประสิ สูงสุด เทคนิคการค้นหา หมายถึง เทคนิคทีใ่ ช้แกไขปั ญหา ้ เพือ ่ หาคาตอบหรือสู่สถานะเป้าหมาย ไดอย ้ างมี ่ ประสิ ทธิภาพ KPI of Search Techniques ◦ Completeness หรือไม่ ◦ Optimality ได้ ◦ Time Complexity ◦ Space Complexity ไดแก ้ ่ สามารถค้นหาคาตอบได้ ่ ท ี ส ี่ ุด สามารถค้าหาคาตอบทีด เวลาทีใ่ ช้ในการค้นหา พืน ้ ทีห ่ น่วยความจาทีใ่ ช้ อางอิ งจาก Russell and Norvig, 2003 ้ หรือ Uninformed Search Techniques เป็ น วิธก ี ารค้าหาทีง่ ายต อการเขี ยนโปรแกรม งายต อ ่ ่ ่ ่ การเข้าใจ แตมี ่ ประสิ ทธิภาพตา่ เนื่องจากลักษณะ การเขียนโปรแกรมต้องต้อง For หรือ While loop ทุกทิศทางทีจ ่ ะเป็ นไปได้ Blind Search Technique เป็ นเทคนิคการ คนหาที ไ่ มมี ้ ่ ขอมู ้ ลนามาพิจารณา Heuristic Search Techniques เป็ นเทคนิคการ คนหาที ม ่ ข ี อมู ้ ้ ลประกอบในการคนหา ้ เป็ นวิธค ี ้นหาแนวกว้าง (Breadth) จะค้าหาแตละ ่ โหลดจากซ้ายไปขวาทีละระดับ ของทรีจากบนลงลาง ่ หากยังไมพบเป ่ ้ าหมายให้ลงไปอีกระดับหนึ่งแลวค ้ ้นหา ทีล ะโหนด จนกว่าจะพบเป้ าหมายที่ต้ องการ เช่ น กาหนดให้โหลด h เป้นเป้าหมายของการค้นหาแตมี ่ ขอเสี ้ ยทีเ่ วลานานและหน่วยความจามาก กาหนดให้ b แทนจานวนกิง่ เฉลีย ่ ของแต่ละโหลด (Branching Factor) d แทนระดับความลึก (Deep) Time O(bd) An example map of Germany with some connections between cities เป็ นวิธก ี ารค้นหาตามแนวลึก(Depth) จะค้นหาจาก ข้ างบนลงล่าง หากไม่ พบให้ ลงไปอีก หนึ่ ง ระดับ แล้ ว พิจารณาโหลดลูกทีอ ่ ยูด ทาเช่นนี้ไปเรือ ่ ยๆ ่ ้านซ้ายกอน ่ จนกว่าจะพบโหนดเป้ าหมายที่ต้ องการ หากพิจ าณา จนถึงโหลดสุดทาย ้ กาหนดให้ b แทนจานวนกิง่ เฉลีย ่ ของแต่ละโหลด (Branching Factor) d แทนระดับความลึก (Deep) Time O(bd) จาก DFS ทาให้การเขียนโปรแกรมจะตองลู ปให้ครบ ้ ทุกทางทีจ ่ ะเป็ นไปไดในการค ้ ้นหา ดังนั้นจึงเกิด วิธก ี ารนี้ขน ึ้ มาเพือ ่ ลดระยะเวลาในการค้นหา ตัวอยาง กาหนดเป้าหมายเป็ น E และlimit=2 ่ (Limit เป็ นระดับความสูงของตนไม เริ ่ ตนเป็ น 0) ้ ้ ม ้ กาหนด b แทนจานวนกิง่ เฉลีย ่ ของแต่ละโหลด (Branching Factor) l แทน Limitของการค้นหา Time O(bl) ขอเสี ี ี้คอ ื อะไร ้ ยของวิธน เป็ นการพัฒนา DLS ให้มีขด ี ความสามารถ สูงขึน ้ กาหนด b แทนจานวนกิง ่ เฉลีย ่ ของแต่ละโหลด (Branching Factor) l แทน Limitของการค้นหา Time O(bl) *Depth-First Search (DFS) กับ Iterative Deepening ในความเป็ นจริง ของปั ญ หา มัก เป็ นปั ญ หาที่ ใหญ่ เราจะเห็ นได้ ว ่ าเมื่ อ มี ข้ อมู ล เยอะขึ้ น นั้ น การ ค้ นหาแบบ Uninformed Search Techniques จ ะ ไ ม่ เ ห ม า ะ ส ม ใ น ก า ร เ ขี ย น โปรแกรมคานวณเนื่องจากทุกวิธใี ช้เวลาในการ คานวณสูง Heuristic Search หรือในตารา บางเลมเรี ่ ยกวา่ Heuristic Algorithm เป็ น วิธก ี ารสุ่มหาคาตอบทีม ่ ค ี วามเร็วสูง ลอกเรียน การท างานของสิ่ งมีชี ว ิต เช่ น ต้ นไม้ มด พัน ธุ ศ าสตร สั ดสวนทองค าแตผลลัพ ธที่ไ ด ตัวอยางปั ญา MAX ่ ตัวอยางปั ญา Maximum ่ ตัวอยางปั ญา Maximum ่ London ถาเราต ้ ้องเดินทางจาก London ไปMunchen จาก เป็ นวิ ธ ี ก ารเลื อ กเส้ นทางที่ ด ี ท ี่ สุ ด ก่ อน เพื่ อ ค้นหาเป้าหมายได้อยางรวดเร็ ว โดยพิจารณา ่ เส้นทางทีส ่ ามารถมองเห็ น ทีโ่ หนดนั้นๆ และ เลือ กเส้ นทางที่ใ ช้ ทรัพ ยากรจากต าแหน่ ง ณ จุด นั้นจนถึงเป้าหมายให้น้อยทีส ่ ุด 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.) 2 3 A 2 D G Start 5 3 12 2 C E 3 5 Go al I will use it to find the path from Start to Goal in the graph below. 2 3 A 2 D G Start 5 3 12 2 C E 3 5 Go al First, add the Start node to the fringe. 2 3 A 2 D G Start 5 3 12 2 C E 3 5 Go al Visit the Start node and add its neighbors to the fringe. 2 3 A 2 D G Start 5 3 12 2 C E 3 Next 5 Go al 2 3 A 2 D G Start 5 3 12 2 C E 3 Next 5 Go al 2 3 A 2 D G Start 5 3 12 2 C E 3 5 Go al 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. 2 3 A 2 D G Start 2 3 12 2 C E 3 5 Go al This way is longer than old way 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. นศ. ใช้อัลกอริทม ึ Nearest neighbor Search แกปั ้ ญหาการคาหา ้ เส้นทางทีส ่ ้ั นทีส ่ ด ุ แบบ TSP โดยเริม ่ ตน ้ จากเมือง A Objective function : Min Distance ขัน ้ ตอน การคานวณ(แบบหยาบๆ) - สรางตาราง Distance ้ ม ่ จาก A ึ คนหาโดยเริ - ใช้อัลกอริทม ้ ให้ ึ Nearest neighbor ให้ นศ. ใช้อัลกอริทม Search แกปั หา ้ ญEngland USA Canada Japan Egypt Venezuela Goal Russia Nigeria India Start Brazil South Africa Matlab A*,Kmean ,Crossover C# Express kNN Appserv 2.5.10 Rollete Java script ให้ นศ. แกปั ่ ้ั นทีส ่ ด ุ แบบ ้ ญหา การคนหาเส ้ ้ นทางทีส TSP ส่งพรอมรายงาน คะแนนเต็ม 10 ้ Objective function : Min Distance กาหนดให้ เมือง A,B,C,…,K A=[0,0] ส่วนประกอบของรายงาน B=[3,5] 1.ที ม ่ า หลั ก การ โจทย C=[2,3] 2.ผลลัพธ ์ D=[4,6] E =[5,5] 3.วิเคราะหผลลั พธ ์ ์ F=[8,1] 4.โค้ด G=[2,4] H=[1,6] กาหนดส่ง 21 พ.ย. 56 I=[-1,-1] K=[6,4]