Document

advertisement
สั ปดาหที
์ ่ 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]
Download