heuristic search techniques depth-first … search techniques choopan rattanapoka ทบทวน...
TRANSCRIPT
HEURISTIC SEARCH TECHNIQUES
Choopan Rattanapoka
ทบทวน Blind Search
� คน้หาเสน้ทางจากเมือง A ไปยงัเมือง F
A
B
D
C F
E
5 2
3 3 1 1
5
6
10
Depth-first Search
Open : [ (A, nil) ]
Close : [ ]
A
B
D
C F
E
5 2
3 3 1 1
5
6
10 Open : [ (B,A) (C, A) (D, A) ]
Close : [ (A, nil) ]
A
B
Open : [ (E,B) (C, A) (D, A) ]
Close : [ (B,A) (A, nil) ]
E
Open : [ (F,E) (C, A) (D, A) ]
Close : [ (E, B) (B,A) (A, nil) ]
F
(F, E) � (E, B) � (B, A) � (A, Nil) = A � B � E � F
ระยะทาง A� B = 5, B� E = 2, E � F = 3 รวมระยะทางจาก A – F = 5 + 2+ 3 = 15
Breath-first Search
Open : [ (A, nil) ] Close : [ ]
A
B
D
C F
E
5 2
3 3 1 1
5
6
10
Open : [ (B,A) (C, A) (D, A) ] Close : [ (A, nil) ]
A
B
Open : [ (C, A) (D, A) (E,B) ] Close : [ (B,A) (A, nil) ]
Open : [(D, A) (E,B) (F, C)] Close : [(C,A) (B,A) (A, nil)]
(F, C) � (C, A) � (A, Nil) = A � C � F
ระยะทาง
• A� C = 1
• C� F = 6
รวมระยะทางจาก A – F = 1 + 6 = 7
COpen : [(E,B) (F, C)] Close : [(D,A) (C,A) (B,A) (A, nil)]
Open : [(F, C)] Close : [(E,B) (D,A) (C,A) (B,A) (A, nil)]
DE
F
Heuristic Search Techniques
� Heuristic Search Techniques หรือ Informed Search Techniques เป็นเทคนิคการคน้หาแบบมีขอ้มลู (informed)
� การคน้หาจะนําขอ้มลูมาประกอบเพื!อชว่ยเพิ!มประสิทธิภาพ
� ฟังกช์นัพื( นฐานที!นํามาใชป้ระกอบกบัการคน้หาแบบ Heuristic มี 2 ชนิด� ฟังกช์นั Evaluation (Evaluation function f(n))
� ทาํหนา้ที!ประมาณค่าใชจ้า่ยทั(งหมดบนเสน้ทางจากโหนด n ไปยงัโหนดเป้าหมาย
� ฟังกช์นั Heuristic (Heuristic function h(n))
� ทาํหนา้ที!บอกปริมาณทรพัยากรที!ใชไ้ปตั(งแต่ตาํแหน่ง n จนถึงเป้าหมาย
ตวัอยา่งการหา h(n)
Goal state : มีนบุรี
h(n) จะใชร้ะยะทางเสน้ทางตรงจาก เมือง n ไปยงัเมืองเป้าหมาย26.63
เขต ระยะทาง เขต ระยะทาง เขต ระยะทาง
จตุจกัร 21.86 ประเวศ 18.79 บางนา 26.16
ตลิ!งชนั 36.34 พญาไท 26.63 บึงกุม่ 10.40
บางกะปิ 10.79 มีนบุรี 0 พระขโนง 28.44
บางเขน 17.59 ราษฎรบ์รูณะ 36.84 สาธร 31.97
บางแค 42.11 ลาดกระบงั 16.15 หนองจอก 18.42
บางซื!อ 24.95 สวนหลวง 14.54
ตวัอยา่ง heuristic function
• h(บางเขน) = 17.59• h(หนองจอก) = 18.42• h(มีนบุรี) = 0
Greedy Best First Search (GBFS)
� เป็นวธิีการเลือกเสน้ทางที!ดีที!สุดก่อน เพื!อใหเ้ขา้ใกลเ้ป้าหมายไดเ้ร็วขึ( น
� พิจารณาจากเสน้ทางที!มองเห็นเท่านั(น
� สมการของ GBFS คือ � f(n) = h(n)
ตวัอยา่ง: การคน้หาแบบ GBFS
Initial state : ราษฎรบ์รูณะGoal state : มีนบุรี
เขต ระยะทาง เขต ระยะทาง เขต ระยะทาง
จตุจกัร 21.86 ประเวศ 18.79 บางนา 26.16
ตลิ!งชนั 36.34 พญาไท 26.63 บึงกุ่ม 10.40
บางกะปิ 10.79 มีนบุรี 0 พระขโนง 28.44
บางเขน 17.59 ราษฎรบ์รูณะ 36.84 สาธร 31.97
บางแค 42.11 ลาดกระบงั 16.15 หนองจอก 18.42
บางซื!อ 24.95 สวนหลวง 14.54
ราษฎรบ์ูรณะ
บางแค พญาไท สาธร
บางซื�อ บึงกุ่ม ราษฎรบ์ูรณะ
บางกะปิ บางเขน พญาไท มีนบุรี
ราษฎรบ์ูรณะ 36.84
42.11 26.63 31.97
พญาไท
24.95 10.40 36.84
บึงกุ่ม
10.79 17.59 26.63 0
มีนบุรี
ตวัอยา่ง: ปัญหาของการคน้หาแบบ GBFS
Initial state : บางนาGoal state : มีนบุรี
เขต ระยะทาง เขต ระยะทาง เขต ระยะทาง
จตุจกัร 21.86 ประเวศ 18.79 บางนา 26.16
ตลิ!งชนั 36.34 พญาไท 26.63 บึงกุ่ม 10.40
บางกะปิ 10.79 มีนบุรี 0 พระขโนง 28.44
บางเขน 17.59 ราษฎรบ์รูณะ 36.84 สาธร 31.97
บางแค 42.11 ลาดกระบงั 16.15 หนองจอก 18.42
บางซื!อ 24.95 สวนหลวง 14.54
บางนา
พระขโนงประเวศ
26.16บางนา
บางนา
พระขโนงประเวศ
18.79 28.44
ประเวศ
26.16
บางนา
Greedy Best First Search (GBFS)
� Completeness สามารถรบัรองการคน้พบคาํตอบ� (NO) ไมร่บัรองการคน้พบคาํตอบ
� Optimality สามารถรบัรองการคน้หาเสน้ทางที!ดีที!สุด� (NO) ไมร่บัรองการคน้หาเสน้ทางที!ดีที!สุด
� Time Complexity ระยะเวลาที!ใชใ้นการคน้หา� O(bm) b = จาํนวนกิ!งเฉลี!ยของโหนด, m = ระดบัลึกสุดของตน้ไม้
� Space Complexity พื( นที!หน่วยความจาํที!ใชค้น้หา� O(bm)
A* Search
� A* search อ่านวา่ (“เอ-สตาร”์) เป็นวธิีการคน้หาที!ถูกพฒันาขึ( นมาเพื!อแกป้ัญหาที!เกิดขึ( นใน Greedy best first search
� มีการนําเอาขอ้มลูมาพิจารณาเพิ!มเติม คือ ขอ้มลูทรพัยากรที!ใชต้ั(งแต่ตาํแหน่งเริ!มตน้จนถึงตาํแหน่งที!พิจารณา แทนดว้ย g(n)
� ดงันั(น Evaluation function จะอยูใ่นรปู
� f(n) = g(n) + h(n)
� การคน้หาจะพิจารณาโหนดแต่ละโหนดแลว้เลือกไปยงัทางที!ให ้f(n) ดีที!สุด
ตวัอยา่ง: การคน้หาแบบ A*Initial state : ราษฎรบ์รูณะGoal state : มีนบุรี
เขต ระยะทาง เขต ระยะทาง เขต ระยะทาง
จตุจกัร 21.86 ประเวศ 18.79 บางนา 26.16
ตลิ!งชนั 36.34 พญาไท 26.63 บึงกุม่ 10.40
บางกะปิ 10.79 มีนบุรี 0 พระขโนง 28.44
บางเขน 17.59 ราษฎรบ์รูณะ 36.84 สาธร 31.97
บางแค 42.11 ลาดกระบงั 16.15 หนองจอก 18.42
บางซื!อ 24.95 สวนหลวง 14.54
ราษฎรบ์ูรณะ
บางแค พญาไท สาธร
บางซื!อ บึงกุม่ ราษฎรบ์รูณะ
บึงกุม่
0+36.84 = 36.84ราษฎรบ์รูณะ
8.32+42.11 = 50.43
12.68+26.63 = 39.31
10+31.97 = 41.97
พญาไท
20.40+24.95= 45.35
35.45+10.40= 45.85
25.36+36.84= 62.20
สาธร
บางกะปิ ราษฎรบ์รูณะ
28.78+10.79= 39.57
20+36.84= 56.84
บางกะปิ
มีนบุรี ลาดกระบงั สวนหลวง สาธร
35.71+10.40= 46.11
39.57+0= 39.57
49+16.15= 65.15
32.53+14.54= 47.07
47.56 +31.97= 79.53
มีนบุรี
ตวัอยา่ง: A* แกป้ัญหาของ GBFS
Initial state : บางนาGoal state : มีนบุรี
เขต ระยะทาง เขต ระยะทาง เขต ระยะทาง
จตุจกัร 21.86 ประเวศ 18.79 บางนา 26.16
ตลิ!งชนั 36.34 พญาไท 26.63 บึงกุ่ม 10.40
บางกะปิ 10.79 มีนบุรี 0 พระขโนง 28.44
บางเขน 17.59 ราษฎรบ์รูณะ 36.84 สาธร 31.97
บางแค 42.11 ลาดกระบงั 16.15 หนองจอก 18.42
บางซื!อ 24.95 สวนหลวง 14.54
บางนา
พระขโนงประเวศ
0+26.16=26.16บางนา
บางนา
7.37+18.79=26.26 2.27+18.44=30.71
ประเวศ
14.74+26.16=40.90
พระขโนง
บางนา สวนหลวง
4.54+26.16=30.70
16.16+14.54=30.70
เปรียบเทียบ GBFS และ A*
� การเดินทางจากราษฏรบ์รูณะไปยงัมีนบุรี� GBFS (ราษฎรบ์รูณะ � พญาไท � บึงกุ่ม �มีนบุรี) = 45.85 � A* (ราษฎรบ์รูณะ � สาธร � บางกะปิ � มีนบุรี) = 39.57
� การเดินทางจากบางนาไปยงัมีนบุรี� GBFS ไปสามารถหาทางไปได้� A* สามารถหาเสน้ทางไปได้
A*
� Completeness สามารถรบัรองการคน้พบคาํตอบ� (YES) รบัรองการคน้พบคาํตอบ
� Optimality สามารถรบัรองการคน้หาเสน้ทางที!ดีที!สุด� (YES) รบัรองการคน้หาเสน้ทางที!ดีที!สุด
� Time Complexity ระยะเวลาที!ใชใ้นการคน้หา� Exponential
� Space Complexity พื( นที!หน่วยความจาํที!ใชค้น้หา� เก็บโหนดจากการคน้หาทั(งหมดลงในหน่วยความจาํ
การกาํหนดฟังกช์นั heuristic
� ลกัษณะของฟังกช์นั heuristic จะเป็นสมการที!ง่ายเพื!อใหก้ารคาํนวณสามารถทาํไดอ้ยา่งรวดเร็ว
� ฟังกช์นั heuristic ที!นิยมใชก้บัสาํหรบัแกป้ัญหา 8-puzzle คือ� h1 แทนจาํนวนตาํแหน่งป้ายหมายเลขในสถานะปัจจุบนัที!แตกต่างจากตาํแหน่งของ
สถานะเป้าหมาย� h2 แทนผลรวมทั(งหมดของการยา้ยตาํแหน่ง ที!เรียกวา่ “Manhattan Distance”
7 2 4
5 6
8 3 1
1 2
3 4 5
6 7 8
(a) สถานะเริ!มตน้ (b) สถานะเป้าหมาย
การคาํนวณหา h1
� แทนจาํนวนตาํแหน่งของป้ายหมายเลขในสถานะ n กบัตาํแหน่งของป้ายหมายเลขในสถานะเป้าหมาย
� ตวัอยา่ง :
h1(n) = 8
h1(n) = 4
7 2 4
5 6
8 3 1
1 2
3 4 5
6 7 8
สถานะเป้าหมาย
1 2
3 4 5
6 8 7
การคาํนวณหา h2
� แทนผลรวมทั(งหมดของการยา้ยตาํแหน่ง ที!เรียกวา่ “Manhattan Distance”
� ตวัอยา่ง :
h2(n) = 3 + 1 + 2 + 2 + 2 +3 +3 +2
= 18
h2(n) = 1 + 1 + 0 + 0 + 0 + 0 + 1 + 1
= 4
7 2 4
5 6
8 3 1
1 2
3 4 5
6 7 8
สถานะเป้าหมาย
1 2
3 4 5
6 8 7
เปรียบเทียบการใช ้h1 และ h2 [Russel and Norvig, 2003]
ทรพัยากรที�ใชใ้นการคน้หา
ระดบัสิมิต (d)Blind Search Heuristic Search
IDS A*[h1] A*[h2]
2 10 6 6
4 112 13 12
6 680 20 18
8 6,384 39 25
10 47,127 93 39
12 3,644,035 227 73
14 - 539 113
16 - 1,301 211
18 - 3,056 363
20 - 7,276 676
แบบฝึกหดั: ใช ้GBFS และ A* เพื!อหาทางไปสู่เป้าหมาย
4 5 7
6 3 2
1 8
4 5 7
6 2
1 3 8สถานะเป้าหมาย
กาํหนดใหใ้ช ้h(n) แบบ h1
G(n) คือการเดินแต่ละครั(งมี path cost = 1
สถานะเริ!มตน้
Local Search Algorithm
� GBFS และ A* ถูกออกแบบใหม้ีการคน้หาแบบมีระบบในปริภมูิสถานะ� แต่ทั(ง 2 วธิีนี( ใชห้น่วยความจาํมาก ส่งผลใหส้ิ( นเปลืองทรพัยากร
� ซึ!งสามารถแกไ้ขไดด้ว้ยวธิีที!เรียกวา่ Local Search Algorithm (อลักอริธึมการคน้หาเฉพาะแหง่)
� Local Search Algorithm จะคาํนึงถึงเฉพาะ “สถานะปัจจุบนั”เท่านั(นที!ไปสู่สถานะเป้าหมาย
� ค่า heuristic ที!ใชถ้า้มีคุณภาพที!ดีจะสามารถพบสถานะเป้าหมายได้
� ตวัอยา่ง Local search algorithm คือ� Hill Climbing Search
� Simulated Annealing Search
Hill Climbing Search
� จะไปตามเสน้ทางที!มีค่า heuristic ที!ดีไปเรื!อยๆ จนกวา่จะพบสถานะเป้าหมาย
� เหมือนกบันักปีนเขาที!จะไต่สูงขึ( นเรื!อยๆ โดยหาเสน้ทางที!ดีที!สุด
� ขอ้เสียก็คือ ปีนขึ( นอยา่งเดียวไม่มีปีนลง ทาํใหบ้างทีเสน้ทางที!ดีที!สุดอาจจะไม่สามารถทาํใหถ้ึงเป้าหมายได้
Hill Climbing เพื!อหาทางไปสู่เป้าหมาย
4 5 7
6 3 2
1 8
4 5 7
6 2
1 3 8
สถานะเป้าหมาย
กาํหนดใหใ้ช ้h(n) แบบ h1สถานะเริ!มตน้
h = 3
h = 4 h = 2 4 5 7
3 2
6 1 8
4 5 7
6 3 2
1 8
4 5 7
6 2
1 3 8
4 5 7
6 3 2
1 8
4 5 7
6 3 2
1 8
h = 1 h = 3 h = 3
4 7
6 5 2
1 3 8
4 5 7
6 3 2
1 8
4 5 7
6 2
1 3 8
4 5 7
6 2
1 3 8
h = 2 h = 3 h = 2 h = 0
ปัญหาของ Hill Climbing Search
� ปัญหาของ Hill Climbing Search จะแบ่งออกเป็น 3 ลกัษณะคือ
� Local Maximum
� Ridges
� Plateau
ปัญหา: Local Maximum
� คาํตอบที!ดีที!สุดของปัญหาเรียกวา่ “Global Maximum”
� Local Maximum คือจุดที!คิดวา่ดีที!สุดที!จะเป็นคาํตอบของปัญหา แต่จริงๆ แลว้ไม่ใช่
� สามารถแกด้ว้ยการใชว้ธิี Simulated Annealing Search
ปัญหา: Ridges
� เป็นปัญหาที!การเขา้สู่เป้าหมายเป็นไปไดช้า้มาก
� มีส่วนเป็นเสน้ตรงเยอะ
� ควรจะพิจารณาหา heuristic function ใหม่ใหไ้ดผ้ลดีกวา่เดิม
ปัญหา: Plateau
� เป็นปัญหาที!การเขา้สู่เป้าหมายใหค้่า heuristic เท่าๆกนั
� การเลือกเดินไปเสน้ทางไหนทาํใหไ้ม่สามารถเลือกได้
� สามารถแกป้ัญหาได ้ดว้ยการสุ่มเสน้ทางเดิน
Simulated Annealing Search
� เป็นวธิีการคน้หาที!แกป้ัญหา Local Maximum จาก Hill Climbing Search ได้
� Anneal แปลวา่ การหลอมโลหะหรือแกว้ใหภ้ายนอกมีความแข็ง โดยค่อยๆลดอุณหภูมิลงอยา่งชา้ๆ เมื!อเวลาผ่านไป
� ซึ!งเปรียบกบัการยอมใหม้ีการเลือกเสน้ทางที!แยบ่า้งใน hill climbing โดยเฉพาะชว่งแรกของการคน้หา
� แลว้ดูแนวโน้มทางเสน้ทางวา่ดีขึ( นหรือไม่
Simulated Annealing Search (2)
� สูตรการคาํนวณความน่าจะเป็นของ Simulated Annealing Search คือ
P = e(-∆E/T)
� P ความน่าจะเป็นของการเดินทางไปสู่สถานะที!แยก่วา่ หากค่าใกล ้0 แสดงวา่เขา้สู่คาํตอบ
� e ค่าคงที!คณิตศาสตร ์(2.718281…)
� E ค่าความต่างของ Heuristic บนปริภูมิสถานะ
� T ค่าอุณหภูมิในขณะนั(น (จากหาสูงลดลงเรื!อยๆ)
Simulated Annealing Search (3)
� ขั(นตอนการทาํงาน
1) กาํหนดสถานะเริ!มตน้ E
2) คาํนวณค่า f(n) ของสถานะ E
3) สุ่มโหนดลูกของ E ขึ( นมา 1 ตวั (Ei)
4) คาํนวณค่า f(n) ของสถานะ Ei
5) if E < Ei then
E = Ei
else ตรวจสอบความน่าจะเป็นที!ยอมใหไ้ปทางที!แยก่วา่แลว้ E = Ei
6) ไปที!ขั(นตอน 3 จนหรือ E เป็นสถานะเป้าหมาย
ตวัอยา่ง: เขาวงกต
� สถานะเริ!มตน้
� Successor Function : คนสามารถเดิน {U, D, L, R}
� สถานะเป้าหมาย
� Path cost: การเดินแต่ละครั(งมีค่า 1
Hill Climbing Search
h(n) : ระยะผลต่างทางแกน X + ระยะผลต่างทางแกน Y
(Manhattan Dist.)
h = 3 + 3 = 6
h = 3 + 2 = 5
h = 3 + 1 = 4h = 2 + 2
= 4h = 3 + 3
= 6
1 2
ถา้เลือกมาทาง (1)
h = 3 + 1 = 4
h = 3 + 0 = 3 h = 3 + 2 = 5
ทางตนั !!
ถา้เลือกมาทาง (2)
h = 2 + 2 = 4 h = 1 + 2 = 3
h = 1 + 3 = 4 h = 2 + 2 = 4h = 1 + 1 = 2h = 2 + 2 = 4
h = 0 + 2 = 2
3 4
ถา้เลือกมาทาง (3)
h = 1 + 1 = 2
h = 1 + 0 = 1 h = 1 + 2 = 3
h = 1 + 1 = 2h = 0 + 0 = 0
เจอเป้าหมาย
ถา้เลือกมาทาง (4)
h = 0 + 2 = 2
h = 1 + 2 = 3
ไมส่ามารถมาได ้h มากกวา่เดิม