Best-First Search Greedy Best-First Search A*
BEST FIRST SEARCH Merupakan kombinasi kelebihan teknik depth first
search dan breadth first search Pencarian diperkenankan mengunjungi node yang ada di level yg lebih rendah jika ternyata node pada level yg lebih tinggi ternyata memiliki nilai heuristik yg buruk
Contoh
Best First Search Best First Search akan membangkitkan node
berikutnya dari semua node yg pernah dibangkitkan Pertanyaannya : Bagaimana menentukan sebuah node terbaik saat ini? Dilakukan dengan menggunakan biaya perkiraan Bagaimana caranya menentukan biaya perkiraan? Biaya perkiraan dapat ditentukan dengan fungsi heuristic
FUNGSI HEURISTIC Suatu fungsi heuristic dikatakan baik jika bisa
memberikan biaya perkiraan yang mendekati biaya sebenarnya. Semakin mendekati biaya sebenarnya, fungsi heuristic tersebut semakin baik.
Contoh16 A B
100
C
10
D
( 20 , 10 )
( 35 , 10 )
( 55 , 10 )
( 65 , 10 )
Dalam kasus pencarian rute terpendek, biaya sebenarnya adalah panjang jalan Raya yang sebenarnya. Sedangkan fungsi heuristiknya adalah garis lurus dari 1 kota ke kota lainnya. Untuk itu,bisa digunakan rumus berikut :
dab =
( yb ya )2 + ( xb xa )2
dAB = 15 dBC = 20 dCD = 10
Algoritma Best First Search Greedy Best First Search Algoritma A*
Greedy Best First Search Algoritma ini merupakan jenis algoritma Best First
Search yg paling sederhana Algoritma ini hanya memperhitungkan biaya perkiraan saja f(n) = h(n) Karena hanya memperhitungkan biaya perkiraan yang
belum tentu kebenarannya, maka algoritma ini menjadi tidak optimal
Contoh10
90
A25
10 B C
5
F50 40 25 52 H
40 K 30 G 25 L 40
S 10 E35
30 D
1520 J
80
40 B60
ME74
nh(n)
S80
A80
C70
D85
F70
G0
H40
J100
K30
L20
M70
Langkah 110S 10 E 35 D A 25 n Bh(n)
S80
A80
B60
C70
D85
E74
30 C
Langkah 210S 10 E 35 D A 25 5 B F 50 K
30 Cnh(n)
A80
C70
D85
E74
F70
K30
Langkah 310S 10 E 35 D nh(n)
A 25 5 B
F 50 K 30
30 CA80
GC70
D85
E74
F70
G0
SOLUSI10S 10 E 35 D A 25 5 B F 50 K 30
30 C
G
S - B - K - GDengan Total Jarak = 105
PENJELASAN Dari contoh di atas, Greedy akan menemukan solusi
S-B-K-G dengan total jarak 105 Padahal ada solusi lain yg lebih optimal, yakni S-A-B-F-K-G dengan total jarak hanya 95 Dari situ bisa disimpulkan bahwa Greedy Best First Search tidak bisa menemukan solusi yang optimal
Algoritma A* Berbeda dg Greedy, algoritma ini akan menghitung
fungsi heuristic dengan cara menambahkan biaya sebenarnya dengan biaya perkiraan. Sehingga didapatkan rumus : f(n) = g(n) + h(n)g(n) = Biaya sebenarnya dari Node Awal ke Node n h(n) = Biaya perkiraan dari Node n ke Node Tujuan
Contoh10
90
A25
10 B C
5
F50 40 25 52 H
40 K 30 G 25 L 40
S 10 E35
30 D
1520 J
80
40 B60
ME74
nh(n)
S80
A80
C70
D85
F70
G0
H40
J100
K30
L20
M70
Langkah 110S 10 E 35 D A 25 n Bh(n) g(n)
S80 0 80
A80 10 90
B60 25 85
C70 30 100
D85 35 120
E74 10 84
30 C
f(n)
Langkah 210S 10 E 35 D 15 20 A 25 n Bh(n) g(n)
A80 10 90
B60 25 85
C70 30 100
D85 25 110
J100 30 130
30 C
f(n)
J
Langkah 310S 10 E 35 D 15 20 A 25 10 B 5 F 50 K
30 Cnh(n) g(n)
A80 10 90
C70 30
D85 25
J100 30
F70 30
K30 75
J
f(n)
100 110 130 100 105
Langkah 410S 10 E 35 D 15 20 A 25 10 B 5 F 50
90
K
30 Cnh(n) g(n) f(n)
GC70 30 100
D85 25 110
J100 30 130
F70 25 95
K30 70 100
G0 100 100
J
Langkah 510S 10 E 35 D 15 20 A 25 10 B 5 F 50
90
40 K
30 Cnh(n) g(n) f(n)
GC70 30 100
D85 25 110
J100 30 130
K30 65 95
G0 100 100
J
Langkah 610S 10 E 35 D 15 20 A 25 10 B 5 F 50
90
40 K 30
30 Cnh(n) g(n) f(n)
GC70 30 100
D85 25 110
J100 30 130
G0 95 95
J
Solusi10S 10 E 35 D 15 20 A 25 10 B 5 F 50
90
40 K 30
30 C
G
S - A - B - F - K - GJ
Dengan Total Jarak = 95
Kesimpulan Algoritma A* lebih baik dalam melakukan pencarian
heuristic daripada Greedy Best First Search karena dapat mengasilkan solusi yang optimal