Anda di halaman 1dari 70

CTI 2G3 Sistem Cerdas

Pertemuan 2 : Heuristic Search


Author-Tim Dosen

Program Studi Teknologi Informasi

1 07/09/2021
Heuristic Search
• Heuristic berasal dari bahasa Yunani, heuriskein, yang berarti
‘mencari’ atau ‘menemukan’

• Pada teknik pencarian, heuristic diartikan sebagai biaya


estimasi dari suatu titik ke solusi

• Pada banyak kasus, heuristic mampu mempercepat proses


pencarian secara signifikan
Heuristic Search
• Fungsi heuristik harus menghasilkan biaya estimasi yang lebih
kecil atau sama dengan biaya sebenarnya

• Jika tidak, maka proses pencarian bisa tersesat dan tidak


optimal

• Fungsi heuristik dikatakan baik jika memberikan biaya estimasi


yang mendekati biaya sebenarnya

• Semakin mendekati biaya sebenarnya, fungsi heuristik


tersebut semakin baik
Heuristic Search

Fungsi heuristik h berupa jarak garis lurus atau Euclidean


distance:
Heuristic Search

1. Hill Climbing
2. Simulated Annealing
3. Greedy Best-First Search
4. A*
Hill Climbing

6 07/09/2021
Hill Climbing
• Memerlukan fungsi heuristik untuk mengevaluasi state

• Simple Hill Climbing

• Steepest-Ascent Hill Climbing


Simple Hill Climbing
Simple Hill Climbing
Steepest-Ascent Hill Climbing
Simulated Annealing

11 07/09/2021
Simulated Annealing
• Analogi cara pendinginan dan pembekuan metal atau kristal dengan
energi yang minimal

• Dengan probabilitas tertentu, Simulated Annealing bisa keluar dari


jebakan minimum lokal

• Simulated Annealing menggunakan sebuah rumus probabilitas yang


memungkinkannya bisa keluar dari minimum lokal

• New state yang tidak lebih baik dari current state masih mungkin
dipilih dengan probabilitas
di mana ∆E = f(current state) – f(new state)
Simulated Annealing
• Analogi cara pendinginan dan pembekuan metal atau kristal dengan
energi yang minimal

• Dengan probabilitas tertentu, Simulated Annealing bisa keluar dari


jebakan minimum lokal

• Simulated Annealing menggunakan sebuah rumus probabilitas yang


memungkinkannya bisa keluar dari minimum lokal

• New state yang tidak lebih baik dari current state masih mungkin
dipilih dengan probabilitas

di mana ∆E = f(current state) – f(new state)


Simulated Annealing
Simulated Annealing
Greedy Best First Search

16 07/09/2021
Greedy Best First Search
• Memilih simpul baru yang memiliki biaya terkecil diantara
semua leaf nodes

• Membangkitkan simpul berikutnya dari sebuah simpul, yang


sejauh ini, terbaik diantara semua leaf nodes yang pernah
dibangkitkan

• Bagaimana menentukan sebuah simpul terbaik saat ini?

• Penentuan simpul terbaik dilakukan hanya berdasarkan nilai


heuristik atau biaya estimasi dari suatu simpul menuju ke goal.
Tidak memperhitungkan biaya sebenarnya.

f(n) = h(n)
Greedy Best First Search
• Memilih simpul baru yang memiliki biaya terkecil diantara
semua leaf nodes

• Membangkitkan simpul berikutnya dari sebuah simpul, yang


sejauh ini, terbaik diantara semua leaf nodes yang pernah
dibangkitkan

• Bagaimana menentukan sebuah simpul terbaik saat ini?

• Penentuan simpul terbaik dilakukan hanya berdasarkan nilai


heuristik atau biaya estimasi dari suatu simpul menuju ke goal.
Tidak memperhitungkan biaya sebenarnya.

f(n) = h(n)
Greedy Best First Search
Greedy Best First Search
Greedy Best First Search

A f(A) =
h(A) = 80
1 B f(B) =
0 2 h(B) = 60
S 5
3 C f(C) =
0 h(C) = 70
3
1 5
0 D f(D) =
h(D) = 85
E f(E) =
h(E) = 74
Greedy Best First Search

A f(A) =
h(A) = 80
1 B f(B) =
0 2 h(B) = 60
S 5
3 C f(C) =
0 h(C) = 70
3
1 5
0 D f(D) =
h(D) = 85
E f(E) =
h(E) = 74
Greedy Best-First Search

A f(A) =
h(A) = 805 F f(F) =
1 B f(B) = h(F) = 70
0 2 h(B) = 560
S 5 0 K f(K) =
3 C f(C) = h(K) = 30
0 h(C) = 70
3
1 5
0 D f(D) =
h(D) = 85
E f(E) =
h(E) = 74
Greedy Best-First Search

A f(A) =
h(A) = 805 F f(F) =
1 B f(B) = h(F) = 70
0 2 h(B) = 560
S 5 0 K f(K) =
3 C f(C) = h(K)3 = 30
0 h(C) = 70 0
3 G
1 5
0 D f(D) = f(G) =
h(D) = 85 h(G) = 0
E f(E) =
h(E) = 74
Greedy Best-First Search

A f(A) =
h(A) = 805 F f(F) =
1 B f(B) = h(F) = 70
0 2 h(B) = 560
S 5 0 K f(K) =
3 C f(C) = h(K)3 = 30
0 h(C) = 70 0
3 G
1 5
0 D f(D) = f(G) =
h(D) = 85 h(G) = 0
E f(E) =
h(E) = 74
Greedy Best-First Search

A f(A) =
h(A) = 805 F f(F) =
1 B f(B) = h(F) = 70
0 2 h(B) = 560
S 5 0 K f(K) =
3 C f(C) = h(K)3 = 30
0 h(C) = 70 0
3 G
1 5
0 D f(D) = f(G) =
h(D) = 85 h(G) = 0
E f(E) = Total Biaya = 25 + 50 + 30 = 105
h(E) = 74 Biaya paling optimal = 95
A*

27 07/09/2021
A*
• Gabungan Uniform Cost Search dan Greedy Best-First
Search

• Biaya = biaya sebenarnya ditambah biaya estimasi

f(n) = g(n) + h(n)

• Complete dan Optimal


A*
A*
A*

A f(A) = g(A) + h(A) = 10 + 80 =


90
1 B f(B) = g(B) + h(B) = 25
0 2 + 60 = 85
S 5
3 C f(C) = g(C) + h(C) =
0 30 + 70 = 100
3
1 5
0 D f(D) = g(D) + h(D) = 35 +
85 = 120
E f(E) = g(E) + h(E) =
10 + 74 = 84
A*

A f(A) = g(A) + h(A) = 10 + 80 =


90
1 B f(B) = g(B) + h(B) = 25
0 2 + 60 = 85
S 5
3 C f(C) = g(C) + h(C) =
0 30 + 70 = 100
3
1 5
0 D f(D) = g(D) + h(D) = 35 +
85 = 120
E f(E) = g(E) + h(E) =
10 + 74 = 84
A*

A f(A) = g(A) + h(A) = 10 + 80 =


90
1 B f(B) = g(B) + h(B) =
0 2 25 + 60 = 85
S 5
3 C f(C) = g(C) + h(C) =
0 30 + 70 = 100
3
1 5 f(D) = g(D via S) + h(D) =
0 1 D
35
f(D)+=85 = 120
g(D via E) + h(D) =
5 25 + 85 = 110
B E
B
2 J f(J) = g(J) + h(J) = 30
NN
0
+ 100 = 130
A*

A f(A) = g(A) + h(A) = 10 + 80 =


90
1 B f(B) = g(B) + h(B) = 25
0 2 + 60 = 85
S 5
3 C f(C) = g(C) + h(C) =
0 30 + 70 = 100
1
0 D
1 f(D) = g(D via E) + h(D) =
5 25 + 85 = 110
B
B E
2 J f(J) = g(J) + h(J) = 30
N
N
0
+ 100 = 130
A*

A f(A) = g(A) + h(A) = 10 + 80 =


90
1 B f(B) = g(B) + h(B) = 25
0 2 + 60 = 85
S 5
3 C f(C) = g(C) + h(C) =
0 30 + 70 = 100
1
0 D
1 f(D) = g(D via E) + h(D) =
5 25 + 85 = 110
B
B E
2 J f(J) = g(J) + h(J) = 30
N
N
0
+ 100 = 130
A*

A f(A)
= 90 F f(F) = g(F) + h(F) = 30
5
1 B + 70 = 100
0 2 f(B) 5
S 5 0 K f(K) = g(K) + h(K) =
3 =C85 f(C) =
0 75 + 30 = 105
100
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*

A f(A)
= 90 F f(F) = 30 + 70
5
1 B = 100
0 2 f(B) 5
S 5 0 K
3 =C85 f(C) = f(K) = 75 + 30 =
0 100 105
1
0 1 D f(D)
5 = 110
B E
B
2 J f(J) =
NN
0
130
A*
9
0
A f(A)
=1 90 F f(F) = 30 + 70
0 5 f(F) = 25 +
1 B = 100
0 2 5 70 = 95 G f(G) = 10 +
f(B)
S 5 f(B) 0 K
3 = 85
=C80f(C) =
90 = 100
f(K) = 75 + 30 =
0 100 f(K) = 70 +
105
1 30 = 100
0 1 D f(D)
5 = 110
B E
B
2 J f(J) =
NN
0
130
A*
9
0
A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 f(B) 5 G f(G) = 10 +
S K
3 =C80f(C) =0 f(K) = 70 +
90 = 100
0 100 30 = 100
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*
9
0
A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 5 4 G f(G) = 10 +
f(B) 0
S K
3 =C80f(C) =0 f(K) = 70 +
90 = 100
0 100 f(K)
30 ==100
65 +
30 = 95
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*
9
0
A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 4 G f(G) = 10 +
f(B) 0 K
S
3 =C80f(C) = 90 = 100
f(K) = 65 +
0 100 30 = 95
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*
9
0
A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 4 G f(G) = 10 +
f(B) 0 K 3
S f(G)
3 =C80f(C) = 90 ==100
65 +
f(K)0= 65 + 30 = 95
0 100 30 = 95
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*

A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 4 G f(G) = 65 +
f(B) 0 K 3
S
3 =C80f(C) = 30 = 95
f(K)0= 65 +
0 100 30 = 95
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*

A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 4 G f(G) = 65 +
f(B) 0 K 3
S
3 =C80f(C) = 30 = 95
f(K)0= 65 +
0 100 30 = 95
1
0 D f(D)
1
5 = 110
B
B E
2 J f(J) =
N
N
0
130
A*

A f(A)
=1 90 F f(F) = 25 +
0 5
1 B 70 = 95
0 4 G f(G) = 65 +
f(B) 0 K 3
S
3 =C80f(C) = 30 = 95
f(K)0= 65 +
0 100 30 = 95
1 Total Biaya = 10 + 10 + 5 + 40
0 D f(D) Biaya paling optimal = 95
1
5 = 110 A* menjamin complete
B
B E
N
N
2 J f(J) = dan optimal
0
130
Iterative Deepening A*

46 07/09/2021
Iterative Deepening A*
• Iteratif dengan batasan berupa f-limit

• Complete & Optimal

• Time complexity tinggi

• Space complexity sangat rendah

• Sesuai untuk low memory-devices


func tio n IDA*(m a sa la h ) re turns so lu si
inp uts: m a sa la h , se b u a h m a sa la h
lo c a l va ria b le s: f-lim it , b a ta sa n f-C o st sa a t in i
ro o t, se b u a h sim p u l

ro o t  MAKE-SIMPUL(INITIA L-STA TE[m a sa la h ])


f-lim it  f-C o st(ro o t)
lo o p d o
so lu si, f-lim it  DFS-C O NTO UR(ro o t, f-lim it )
if so lu si b u ka n n u ll the n re tu rn so lu si
if f-lim it sa m a d e n g a n INFINITE the n re tu rn g a g a l
e nd

func tio n DFS-C O NTO UR(sim p u l, f-lim it ) re turns so lu si, b a ta sa n f-C o st ya n g b a ru


inp uts: sim p u l, se b u a h sim p u l
f- lim it, b a ta sa n f-C o st sa a t in i
lo c a l va ria b le s: n e xt-f, b a ta sa n f-C o st u n tu k p e n e lu su ra n b e riku tn ya , p a d a a w a ln ya
va ria b e l in i d i b e ri n ila i ta k h in g g a (INFINITE)

if f-C o st [sim p u l] > f-lim it the n re turn n u ll, f-C o st[sim p u l]


if G O A L-TEST[p ro b le m ](STA TE[sim p u l]) the n re turn sim p u l,f-lim it
fo r se tia p sim p u l s ya n g m e n ja d i SUC C ESSO R(sim p u l) d o
so lu si, n e w -f  DFS-C O NTO UR(s,f-lim it )
if so lu si b u ka n n u ll the n re turn so lu si, f-lim it
n e xt-f  MIN(n e xt-f, n e w -f)
e nd
re turn n u ll, n e xt-f
Iterative Deepening A*
Kondisi awal,
next-f
Input:= infinity
node = f(A) = g(A) + h(A) = 10 +
S A 80 = 90
f-limit =
Return if f(A) > f-limit) then
80
: 1 return null
null 0 next-f = MIN(next-f,90) =
next-f = 90
90 S
next-f = 90
Input:
node =
S A
f-limit =
Return
80
: B f(B) = g(B) + h(B) = 25 +
null 60 = 85
2
next-f = if f(B) > f-limit) then
5
85 S return null
next-f = MIN(next-f,85) =
85
next-f = 85
Input:
node =
S A
f-limit =
Return
80
: B
null
next-f = f(C) = g(C) + h(C) = 30 +
85 S 3 C 70 = 100
0 if f(C) > f-limit) then
return null
next-f = MIN(next-f,100)
= 85
next-f = 85
Input:
node =
S A
f-limit =
Return
80
: B
null
next-f =
85 S C
3
5 D f(D) = g(D) + h(D) = 35 +
85 = 120
if f(D) > f-limit) then
return null
next-f = MIN(next-f,120)
= 85
next-f = 85
Input:
node =
S A
f-limit =
Return
80
: B
null
next-f =
84 S C

D
1
0
E f(E) = g(E) + h(E) = 10 +
74 = 84
if f(D) > f-limit) then
return null
next-f = MIN(next-f,84) =
84
Total Biaya = 95
Biaya optimal = 95
Bidirectional A*

59 07/09/2021
Bidirectional A* (BDA*)
• BDA* melakukan pencarian dari dua arah

• Pencarian maju: dari start ke goal

• Pencarian mundur: dari goal ke start

• Pencarian dihentikan jika BestNode dari start telah berada di


dalam CLOSED dari goal. Cek apakah harus mengganti parent-
nya BestNode tersebut dari arah goal

• Atau sebaliknya, pencarian dihentikan jika BestNode dari goal


telah berada di dalam CLOSED dari start. Cek apakah harus
mengganti parent-nya BestNode tersebut dari arah start
Rute: S-A-B-F-K-G dengan total
biaya = 95
Biaya optimal = 95
Modified Bi-directional A* (MBDA*)

• Fungsi heuristik untuk simpul n pada


pencarian maju (dari S ke G):

• Fungsi heuristik untuk simpul n pada


pencarian mundur (dari G ke S):
THANK YOU
07/09/2021

Anda mungkin juga menyukai