You are on page 1of 37

Kecerdasan Buatan

Metode Pencarian dan Pelacakan (Heuristic Search)


Pencarian terbimbing (heuristic search)
 Heuristik adalah sebuah teknik yang mengembangkan
efisiensi dalam proses pencarian, namum dengan
kemungkinan mengorbankan kelengkapan (completeness)
 Fungsi heuristik digunakan untuk mengevaluasi keadaan-
keadaan problema individual dan menentukan seberapa jauh
hal tersebut dapat digunakan untuk mendapatkan solusi yang
diinginkan
Pencarian terbimbing (heuristic search)
• Pembangkit & pengujian (Generate and Test)
 penggabungan antara depth-first search dengan pelacakan mundur
(backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal
Pencarian terbimbing (heuristic search)
 Algoritma Generate and Test :
 Bangkitkan suatu kemungkinan solusi (membangkitkan suatu
titik tertentu atau lintasan tertentu dari keadaan awal).
 Uji untuk melihat apakah node tersebut benar-benar
merupakan solusinya dengan cara membandingkan node
terebut atau node akhir dari suatu lintasan yang dipilih
dengan kumpulan tujuan yang diharapkan.
 Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali
langkah pertama
Pencarian terbimbing (heuristic search)
 Contoh : “Travelling Salesman Problem (TSP)”
 Seorang salesman ingin mengunjungi n kota. Jarak antara
tiap-tiap kota sudah diketahui. Kita ingin mengetahui
rute terpendek dimana setaip kota hanya boleh
dikunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak
antara tiap-tiap kota seperti gambar di bawah ini
8
A B
A B C D

3 4
7 B C D
5
C D B D C B
D C
6
D C D B B C

 Alur pencarian dengan Generate and Test

Pencarian ke- Lintasan Panjang Lintasan Panjang


Lintasan Terpilih Lintasan
Terpilih

1 ABCD 19 ABCD 19
2 ABDC 18 ABDC 18
3 ACBD 12 ACBD 12
4 ACDB 13 ACBD 12
5 ADBC 16 ACBD 12
Dst…
Pencarian terbimbing (heuristic search)
 Rute terpendek dengan menggunakan Generate and Test
adalah ACBD atau DBCA yaitu 12
Pencarian terbimbing (heuristic search)
 PENDAKIAN BUKIT (Hill Climbing)
 hampir sama dengan metode pembangkitan dan pengujian
 Pembangkitan keadaan berikutnya tergantung pada feedback
dari prosedur pengetesan
Pencarian terbimbing (heuristic search)
 Algoritma Simple Hill Climbing
1. Cari operator yang belum pernah digunakan; gunakan operator
ini untuk mendapatkan keadaan yang baru.
a. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai
tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang :
Cari operator yang belum digunakan; gunakan operator ini untuk
mendapatkan keadaan yang baru.
b. Evaluasi keadaan baru tersebut :
i. Jika keadaan baru merupakan tujuan, keluar
ii. Jika bukan tujuan, namun nilainya lebih baik daripada keadaan
sekarang, maka jadikan keadaan baru tersebut menjadi keadaan
sekarang.
iii. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka
lanjutkan iterasi
Pencarian terbimbing (heuristic search)
 Pada simple hill climbing, ada 3 masalah yang mungkin:
 Algoritma akan berhenti kalau mencapai nilai optimum local
 Urutan penggunaan operator akan sangat berpengaruh pada
penemuan solusi
 Tidak diijinkan untuk melihat satupun langkah sebelumnya
Pencarian terbimbing (heuristic search)
 Contoh : TSP dengan Simple Hill Climbing
 Disini ruang keadaan berisi semua kemungkinan llintasan
yang mungkin. Operator digunakan untuk menukar posisi
kota-kota yang bersebelahan. Apabila ada n kota, dan kita
ingin mencari kombinasi lintasan dengan menukar posisi
urutan 2 kota, maka kita akan mendapatkan sebanyak : 2!(nn! 2)!
atau sebanyak 6 kombinasi (lihat gambar di bawah). Fungsi
heuristic yang digunakan adalah panjang lintasan yang terjadi
 Operator yang akan digunakan adalah menukar urutan posisi 2 kota
dalam 1 lintasan. Bila ada n kota, dan ingin mencari kombinasi lintasan
dengan menukar posisi urutan 2 kota, maka akan didapat sebanyak

 Keenam kompbinasi ini akan dipakai semuanya sebagai operator,


yaitu :
 Tukar 1,2 = menukar urutan posisi kota ke – 1 dengan kota ke – 2
 Tukar 2,3 = menukar urutan posisi kota ke – 2 dengan kota ke – 3
 Tukar 3,4 = menukar urutan posisi kota ke – 3 dengan kota ke – 4
 Tukar 4,1 = menukar urutan posisi kota ke – 4 dengan kota ke – 1
 Tukar 2,4 = menukar urutan posisi kota ke – 2 dengan kota ke – 4
 Tukar 1,3 = menukar urutan posisi kota ke – 1 dengan kota ke – 3
8
A B

3 4
7 5

D C
6
Pencarian terbimbing (heuristic search)
 PENCARIAN TERBAIK PERTAMA (Best-First Search)
 kombinasi dari metode depth-first search dan breadth-first search
 pencarian diperbolehkan mengunjungi node yang ada di level yang
lebih rendah, jika node pada level yang lebih tinggi ternyata memiliki
nilai heuristic yang lebih buruk
 Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost
dari initial state ke goal state, yang dinyatakan dengan :

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


dimana f’ = Fungsi evaluasi
g = cost dari initial state ke current state
h’ = prakiraan cost dari current state ke
goal state
Algoritma Best First Search
1. Tempatkan node awal A pada antrian OPEN
2. Kerjakan langkah-langkah berikut hingga tujuan ditemukan
atau antrian OPEN sudah kosong
a. Ambil node terbaik OPEN
b. Bangkitkan semua successornya
c. Untuk tiap-tiap successor kerjakan :
i. Jika node tersebut belum pernah dibangkitan sebelumnya, evaluasi
node tersebut dan masukkan ke OPEN
ii. Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah
parent jika lintasan baru lebih menjanjikan. Hapus node tersebut
dari antrian OPEN
Contoh 1 : Best-First Search

16
Best-First Search

17
Best-First Search

18
Best-First Search

19
Best-First Search

20
Best-First Search

21
A* Search
 Merupakan perbaikan dari metode best first search
dengan memodifikasi fungsi heuristiknya
 Fungsi evaluasi:

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

Best-first search dengan fungsi evaluasi diatas disebut A*


search

22
Algoritma A*
1. Set : OPEN = [S], dan CLOSED={}, dengan S adalah node yang
dipilih sebagai keadaan awal
2. Kerjakan jika OPEN belum kosong;
a. Cari node n dari OPEN dimana nilai f(n) minimal. Kemudian tempatkan n pada
CLOSED
b. Jika n adalah node tujuan, keluar. SUKSES
c. Ekspan node n ke anak-anaknya
d. Kerjakan untuk setiap anak n, yaitu n’ :
i. Jika n’ belum ada di OPEN atau CLOSED, maka :
1. Masukan n’ ke OPEN. Kemudian set backpointer dari n’ ke n
2. Hitung :
a. H(n’)
b. G(n’) = g(n) + c(n,n’); dengan c(n,n’) adalah biaya dari n ke n’, dan
c. F(n’) = g(n) + h(n’)
ii. Jika n’ telah ada di OPEN atau CLOSED dan jika g(n’) lebih kecil (untuk versi
n’ yang baru), maka :
1. Buang versi lama n’
2. Ambil n’ di OPEN, dan set backpointer dari n’ ke n
Contoh: A* Search

24
A* Search

25
A* Search

26
A* Search

27
A* Search

28
A* Search

29
Contoh : Berikut ini adalah peta Romania dengan jarak jalan-
jalan yang menghubungkan kota-kota dalam km
Adapun jarak kota-kota terhadap kota
Bucharest jika ditarik garis lurus adalah
sebagai berikut :
Arad 366 Mehadia 241
Bucharest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 98
Eforie 161 Rimnicu Vilcea
Fagaras 178 193
Giurgiu 77 Sibiu 253
Hirsova 151 Timisoara 329
Iasi 226 Urziceni 80
Lugoj 244 Vaslui 199
Zerind 374
Heuristik yang digunakan adalah jarak kota-kota terhadap kota
Bucharest jika ditarik garis lurus yang jaraknya seperti yang
tertera di atas dengan asumsi kota terhubung yang letaknya paling
dekat dengan kota Bucharest adalah jalan yang paling optimal.

Diagram pohon langkah-langkah penelusuran dengan metode


Best First Search adalah sebagai berikut :
Langkah 1
Arad 366 Mehadia 241
Bucharest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 98
Eforie 161 Rimnicu Vilcea 193
Fagaras 178 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Langkah 2
Arad 366 Mehadia 241
Bucharest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 98
Eforie 161 Rimnicu Vilcea 193
Fagaras 178 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Langkah 3

Arad 366 Mehadia 241


Bucharest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 98
Eforie 161 Rimnicu Vilcea 193
Fagaras 178 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Langkah 4

Arad 366 Mehadia 241


Bucharest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 98
Eforie 161 Rimnicu Vilcea 193
Fagaras 178 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Dari Langkah-langkah di atas, dengan metode Best First Search
didapatkan kota-kota yang harus dilalui untuk mendapatkan
jalan yang paling dekat jaraknya dari Arad ke Bucharest adalah
: Arad – Sibiu – Fagaras – Bucharest. Dari peta di atas,
panjang jalan yang dilalui adalah 140+99+211 = 450 km.