Anda di halaman 1dari 44

METODE PENCARIAN

DAN PELACAKAN
 Hal penting dalam menentukan keberhasilan
sistem berdasar kecerdasan adalah
kesuksesan dalam pencarian dan
pencocokan.
 Pada dasarnya ada 2 teknik pencarian dan

pelacakan, yaitu pencarian buta (blind search)


dan pencarian terbimbing (heuristic search).
 Blind Search
◦ Breadth-first Search
◦ Depth-first Search
 Heuristic Search
◦ Generate and Test
◦ Hill Climbing
1. Simple Hill Climbing
2. Steepest-Ascent Hill Climbing
◦ Best-first Search
1. OR Graph
2. Algoritma A*
◦ Simulate Annealing
Pencarian Melebar Pertama
(Breadth-First Search)
 Semua simpul pada Level n akan dikunjungi
terlebih dahulu sebelum mengunjungi
simpul-simpul pada Level n+1.
 Pencarian dimulai dari Simpul Akar (Level 0)

terus ke Level 1 dari kiri ke kanan sampai


semua simpul pada Level tersebut dikunjungi,
dan seterusnya ke Level 2, 3, ... sampai
ditemukannya solusi.
Pencarian Melebar Pertama
(Breadth-First Search)
Pencarian Melebar Pertama
(Breadth-First Search)
 Keuntungan:
1. Tidak akan menemui jalan buntu

2. Jika hanya ada satu solusi, maka akan


menemukannya. Dan jika ada lebih dari satu
solusi, maka solusi minimum akan ditemukan.
 Kelemahan:

1. Membutuhkan memori yang cukup banyak, karena


menyimpan semua simpul dalam satu pohon.
2. Membutuhkan waktu yang cukup lama, karena
akan menguji n level untuk mendapatkan solusi
pada level yang ke (n+1).
Pencarian Mendalam Pertama
(Depth-First Search)
 Pencarian dilakukan dari Simpul Akar ke
simpul yang memiliki level lebih tinggi
(Simpul Anak).
 Proses pencarian dilakukan pada semua

Simpul Anak sebelum dilakukan pencarian ke


simpul-simpul yang selevel.
Pencarian Mendalam Pertama
(Depth-First Search)
Pencarian Mendalam Pertama
(Depth-First Search)
 Keuntungan:
1. Membutuhkan memori yang relatif kecil, karena
hanya simpul-simpul pada linatasan yang aktif
saja yang disimpan.
2. Secara kebetulan, metode ini akan menemukan
solusi tanpa harus menguji lebih banyak lagi
dalam ruang keadaaan.
 Kelemahan:

1. Memungkinkan tidak ditemukannya tujuan yang


diharapkan.
2. Hanya akan mendapatkan 1 solusi pada setiap
pencarian.
Heuristic Search
 Pencarian buta tidak selalu dapat diterapkan dengan
baik.
 Hal ini karena waktu aksesnya yang cukup lama serta

besarnya memori yang diperlukan.


 Kelemahan ini sebenarnya dapat diatasi dengan

memberikan informasi tambahan dr domain yang


bersangkutan.
 Misalnya: 8-puzzle. Ada 4 operator yang dapat

digunakan:
1. Ubin kosong digeser ke kiri

2. Ubin kosong digeser ke kanan

3. Ubin kosong digeser ke bawah

4. Ubin kosong digeser ke atas


Heuristic Search
 Pada langkah pertama, hanya 3 operator yang
bisa digunakan, yaitu ubin kosong geser kek
kiri, ke atas atau ke kanan.
 Apabila digunakan pencarian buta, kita tidak

perlu mengetahui operasi apa yang akan


dikerjakan (sembarang operasi bisa
digunakan).
 Pada pencarian
heuristik, perlu
diberikan informasi
khusus dalam domain
tersebut, antara lain:
◦ Jumlah ubin yang
menempati posisi yang
benar. Jumlah yang
lebih tinggi adalah
jumlah yang lebih
diharapkan (lebih baik).
 Jumlah ubin yang
menempati posisi
yang salah.
Jumlah yang lebih
kecil adalah yang
diharapkan (lebih
baik).
 Menghitung total
gerakan yang
diperlukan untuk
mencapai tujuan.
Jumlah yang lebih
kecil adalah yang
diharapkan (lebih
baik).
 Ada 4 (Empat) metode pencarian heuristic
1. Generate and Test
2. Hill Climbing
A. Simple Hill Climbing
B. Steepest-Ascent Hill Climbing
3. Best-first Search
A. OR Graph
B. Algoritma A*
4. Simulate Annealing
Pembangkitan & Pengujian
(Generate and Test)
 Gabungan antara depth-first search dan
pelacakan mundur (backtracking), yaitu
bergerak ke belakang menuju pada suatu
keadaan awal.
 Nilai pengujian berupa jawaban ‘ya’ atau

‘tidak’
Contoh 3
Travelling Salesman Problem (TSP)
 Seorang salesman ingin mengunjungi n kota.
Jarak antara tiap-tiap kota sudah diketahui.
Kita ingin mengetahui rute terpendek dimana
setiap kota hanya boleh dikunjungi tepat satu
kali.
 Misalkan ada 4 kota dengan jarak tiap kota

sbb:
 Bangkitkan solusi yang mungkin, yaitu
◦ A - B-C–D
◦ A - B-D–C
◦ A - C-B–D
◦ A - C - D – B, dst...
 Misal dipilih kota A sebagai awal perjalanan, dan lintasan
awalnya ABCD, panjang lintasan 19.
 Lalu lakukan backtracking untuk mendapatkan lintasan
ABDC (=18).
 Bandingkan dengan lintasan ABCD, ternyata panjang
lintasan ABDC < ABCD (18 < 19), sehingga lintasan terpilih
ABDC.
 Lakukan backtracking lagi untuk mendapatkan lintasan
ACBD (=12), ternyata ACBD < ABDC (12 < 18), sehingga
lintasan terpilih sekarang ACBD.
 Dan seterusnya sampai solusi sesungguhnya ditemukan.
Panjang
Pencarian Panjang
Lintasan Lintasan terpilih Lintasan
ke- Lintasan
terpilih
1 ABCD 19 ABCD 19
2 ABDC 18 ABDC 18
3 ACBD 12 ACBD 12
4 ACBD 13 ACBD 12
5 ADBC 16 ACBD 12
6 ADCB 18 ACBD 12
7 BACD 17 ACBD 12
8 BADC 21 ACBD 12
... ... ... ... ...
21 BDAC 15 ACBD 12
22 DBCA 12 ACBD atau DBCA 12
23 DCAB 17 ACBD atau DBCA 12
Pendakian Bukit
(Hill Climbing)
 Hampir sama dengan generate and test,
hanya proses pengujian dilakukan dengan
menggunakan fungsi heuristik.
 Pembangkitan keadaan berikutnya sangat

tergantung dari feedback dari prosedur


pengetesan.
 Tes yang berupa fungsi heuristik ini akan

menunjukkan seberapa baiknya nilai terkaan


yang diambil terhadap keadaan2 lainnya yang
mungkin.
Simple Hill Climbing
 Algoritma akan berhenti kalau mencapai nilai
optimum lokal
 Urutan penggunaan operator akan sangat
berpengaruh pada penemuan solusi.
 Tidak diijinkan untuk melihat satupun langkah
sebelumnya.
 Untuk contoh kasus Travelling Salesman Problem
(TSP)
◦ Ruang keadaan berisi semua kemungkinan lintasan yang
mungkin
◦ Operator digunakan untuk menukar posisi kota-kota
yang bersebelahan
◦ Fungsi heuristik yang digunakan adalah panjang lintasan
yang terjadi
Simple Hill Climbing untuk kasus Travelling
Salesman Problem dengan 6 operator
 Operator yang digunakan adalah menukar posisi 2 kota dalam satu
lintasan.

 Apabila ada n kota, dan ingin mencari kombinasi lintasan dengan


menukar posisi urutan 2 kota, maka akan didapatkan sebanyak

Sehingga jika ada 4 kota, diperoleh kombinasi

Ke -6 kombinasi ini dijadikan operator


1. Tukar1,2 (menukar urutan posisi kota ke-1 dengan kota ke-2)
2. Tukar2,3 (menukar urutan posisi kota ke-2 dengan kota ke-3)
3. Tukar3,4 (menukar urutan posisi kota ke-3 dengan kota ke-4)
4. Tukar4,1 (menukar urutan posisi kota ke-4 dengan kota ke-1)
5. Tukar2,4 (menukar urutan posisi kota ke-2 dengan kota ke-4)
6. Tukar1,3 (menukar urutan posisi kota ke-1 dengan kota ke-3)
Simple Hill Climbing untuk kasus Travelling
Salesman Problem dengan 4 operator
 Misalkan tidak semua operator digunakan, melainkan
hanya 4 operator pertama saja
1. Tukar1,2 (menukar urutan posisi kota ke-1 dengan kota ke-
2)
2. Tukar2,3 (menukar urutan posisi kota ke-2 dengan kota ke-
3)
3. Tukar3,4 (menukar urutan posisi kota ke-3 dengan kota ke-
4)
4. Tukar4,1 (menukar urutan posisi kota ke-4 dengan kota ke-
1)
 Maka akan terjebak pada nilai minimum lokal yang
disebabkan kurangnya operator yang digunakan.
 Di sini, lintasan terpendek yang diperoleh adalah BCAD
(=15). Nilai minimum globalnya (12) tidak diperoleh.
Steepest-Ascent Hill Climbing
 Hampir sama dengan Simple Hill Climbing, hanya saja
gerakan pencarian tidak dimulai dari posisi paling
kiri.
 Gerakan selanjutnya dicari berdasarkan nilai heuristik
terbaik.
 Urutan penggunaan operator tidak menentukan
penemuan solusi
 3 masalah yang mungkin:
◦ Local optimum: keadaan semua tetangga lebih buruk atau
sama dengan keadaan dirinya
◦ Plateu: keadaan semua tetangga sama dengan keadaan
dirinya
◦ Ridge: optimum yang lebih disebabkan karena
ketidakmampuan untuk menggunakan 2 operator sekaligus
 Pada setiap level, dipilih nilai heuristik terbaik dari keenam succesor
yang ada.
 Dari lintasan awal ABCD, dipilih nilai heuristik terbaik dari ke-6
succesor, yakni ACBD.
 Dari ACBD dipilih nilai heuristik terbaik dari succesor nya. Ternyata
memiliki nilai heuristik yang lebih dari ACBD.
 Sehingga tidak akan ada perubahan nilai keadaan (tetap ACBD)
 Pada contoh masalah permainan
8-puzzle, solusi penyelesaiannya
juga menggunakan Steepest-
Ascent Hill Climbing.
 Operator yang digunakan
◦ Ubin kosong geser ke kanan
◦ Ubin kosong geser ke kiri
◦ Ubin kosong geser ke atas
◦ Ubin kosong geser ke bawah
 Fungsi heuristik yang digunakan:
jumlah ubin yang menempati
posisi yang benar.
Best-first Search
 Merupakan perpaduan antara Pencarian
Melebar Pertama (Breadth-First Search) dan
Pencarian Mendalam Pertama (Depth-First
Search)
 Pencarian diperbolehkan mengunjungi node
yang ada di level yang lebih rendah jika
ternyata node pada level yang lebih tinggi
memiliki nilai heuristik yang lebih buruk.
 Kembali ke node pada level yang lebih rendah,
tidak diperkenankan pada hill-climbing
meskipun memiliki nilai heuristik yang lebih
baik.
BSF - OR Graph
 Node dengan nilai yang lebih besar, memiliki
nilai evaluasi yang lebih baik.
 Pada saat keadaan awal, antrian berisi A.
 Pengujian dilakukan pada level pertama node

D memiliki nilai terbaik, sehingga menempati


antrian pertama, disusul dengan C dan B.
 Node D memiliki cabang E dan F yang masing-

masing bernilai 2 dan 4. Dengan demikian C


merupakan pilihan terbaik dengan menempati
antrian pertama. Demikian seterusnya.
Algoritma A*
 Merupakan perbaikan dari Best-first Search dengan
memperbaiki fungsi heuristiknya.
 A* akan meminimumkan total biaya lintasan. Pada kondisi yang
tepat, A* akan memberikan solusi yang terbaik dalam waktu
yang optimal.
 Fungsi f’ sebagai estimasi fungsi evaluasi terhadap node n
f’(n) = g(n) + h’(n)
f’(n) = fungsi evaluasi
g(n) = biaya yang sudah dikeluarkan dari keadaan awal sampai keadaan n.
h’(n) = estimasi biaya untuk sampai pada suatu tujuan mulai dari n.
 Dengan demikian
◦ Jika h’ = h, maka proses pelacakan sudah sampai pada suatu tujuan
◦ Bila g = h= 0, f’ random, artinya sistem tidak dapat dikendalikan oleh
siapapun
◦ Bila g = k (konstanta biasanya 1) dan h’ = 0 berarti sistem
menggunakan breadth-first search.
 Algoritma A* sebenarnya merupakan
pengembangan dari algoritma A,dengan
batasan h(n) ≤ h’(n), dengan
◦ h(n) = biaya yang sebenarnya dari biaya minimal
lintasan dari n ke sembarang tujuan.
◦ g(n) = biaya yang sebenarnya dari biaya minimal
lintasan dari S ke n
◦ f(n) = h(n) + g(n) adalah biaya sebenarnya dari
biaya minimum solusi dari S ke sembarang tujuan
yang melalui n.
 S = node yang dipilih sebagai keadaan awal
 Node M merupakan keadaan awal, dan node T
merupakan tujuannya
 Biaya edge (= 4) yang menghubungkan node M dengan
node C adalah biaya yang dikeluarkan untuk bergerak
dari kota M ke kota C.
 Nilai g diperoleh diperoleh berdasarkan biaya edge
minimal.
 Sedangkan nilai h’ di node A merupakan nilai perkiraan
(estimasi) terhadap biaya yang diperlukan dari node A
untuk sampai ke tujuan (nilai ini tidak menjamin
keberadaan solusi, hanya perkiraan saja)
 h’(n) bernilai ∾ jika sudah jelas tidak ada hubungan
antara node n dengan node tujuan (jalan buntu).
Status tiap node untuk algoritma A*
Node (n) g(n) h’(n) f’(n) h(n)
M 0 6 6 7
A 5 3 8 10
B 3 4 7 8
C 4 2 6 7
D 7 ∾ ∾ ∾
E 8 2 10 7
F 8 1 9 3
G 5 2 7 6
H 5 2 7 2
I 13 ∾ ∾ ∾
J 12 ∾ ∾ ∾
K 8 ∾ ∾ ∾
 Bila digunakan fungsi evaluasi f’(n) = h’(n), maka
solusi yang didapat adalah lintasan terpendek M-
C-H-T dengan biaya sebesar 7.
Node
Antrian
diekspansi
[M(0)]
M {C(2),A(3),B(4)}
C {H(2),A(3),B(4),I(∾)}
H {T(0),A(3),B(4),I(∾),L(∾)}
T {A(3),B(4),I(∾),L(∾)}
 Bila diselesaikan dengan menggunakan Algoritma A*, dengan
fungsi evaluasi f’(n) = g(n) + h’(n), maka solusi yang didapat
adalah lintasan terpendek M-C-H-T dengan biaya sebesar 7.

Node
Antrian
diekspansi
[M(0)]
M {C(6),B(7),A(8)}
C {H(7),B(7),A(8),I(∾)}
H {T(7),B(7),A(8),I(∾),L(∾)}
T {B(7),A(8),I(∾),L(∾)}
SIMULATED ANNEALING
 Annealing = memanaskan kemudian mendinginkan dalam
pemrosesan logam
 Simulated annealing biasanya digunakan untuk penyelesaian
masalah yang mana perubahan keadaan dari suatu kondisi ke
kondisi yang lainnya membutuhkan ruang yang sangat luas.
 Misalnya perubahan gerakan dengan menggunakan
permutasi pada masalah TSP.

 Pada simulated Annealing ada 3 parameter yang sangat


menentukan, yaitu: tetangga (gain), temperatur, dan
pembangkit bilangan random.
 Tetangga akan sangat berperan dalam membentuk
perubahan pada solusi sekarang.
 Pembangkit bilangan random akan berimplikasi adanya
probabilitas.
 Pada kasus TSP yang akan diselesaikan dengan Simulated
Annaeling, kota asal dan tujuannya adalah sama.
 NC adalah jumlah kota yang akan dikunjungi

 r menyatakan bilangan random.

 T0 menyatakan nilai awal untuk temperatur. Nilai T0

biasanya cukup besar (tidak mendekati nol), karena jika T0


mendekati nol, maka gerakannya akan sama dengan hill
climbing.
 Misalkan kita ingin mensimulasikan untuk 15 kota dengan

temperatur awal sebesar 50 dan pendinginan sebesar 10%


(pengurangan temperatur), maka penyelesaian TSP adalah:
Program TSP_SA;
1. NC= 15;
2. XC  bangkitkan bilangan random sebanyak NC;
3. YC  bangkitkan bilangan random sebanyak NC;
4. T = 50;
5. Sukses = 1;
6. L  [1 2 3 ... 14 15]
7. While sukses > 0 do
8. SimulatedAnnaeling(T,L,NC,Lbaru,Sukses);
9. T = 0.9 * T;
Kota XC YC
 Ke-15 kota tersebut
memiliki koordinat A 0.0709 0.3401
seperti tabel di B 0.8983 0.4185
samping C 0.7864 0.3918
D 0.1587 0.7043
 Jalur terpendek : L-O-
E 0.7721 0.0893
N-K-D-F-I-A-M-E-H-
F 0.1697 0.4960
B-C-G-J, dengan
panjang jalur 3.7384. G 0.7395 0.3717
H 0.8640 0.3469
 Jalur terpendek ini I 0.3331 0.4296
digambarkan sebagai J 0.4917 0.5695
berikut
K 0.4233 0.9922
L 0.4891 0.7148
M 0.2796 0.1421

Anda mungkin juga menyukai