Anda di halaman 1dari 13

2.

2 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 yang digunakan, yaitu pencarian buta (blind search) dan pencarian
terbimbing (heuristic search).

2.2.1 PENCARIAN BUTA (BLIND SEARCH)

A. Pencarian Melebar Pertama (Breadth-First Search)


Pada metode Breadth-First Search, semua node pada level n akan dikunjungi terlebih
dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node
akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya
demikian pula dari kiri ke kanan hingga ditemukannya solusi (Gambar 2.12).

B C D

E F G H I J K L M

Gambar 2.12 Metode Breadth-First Search

 Algoritma.
1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai atau Node_List
dalam keadaan kosong:
(a) Hapus elemen pertama dari Node_List, sebut dengan nama E. Jika
Node_List kosong, keluar.
(b) Pada setiap langkah yang aturannya cocok dengan E, kerjakan:
i Aplikasikan aturan tersebut untuk membentuk suatu keadaan baru.
ii Jika keadaan awal adalah tujuan yang diharapkan, sukses dan keluar .
iii Jika tidak demikian, tambahkan keadaan awal yang baru tersebut
pada akhir Node_List.

 Keuntungan.
1. Tidak akan menemui jalan buntu.
2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika
ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
 Kelemahan.
1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node
dalam satu pohon.
2. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk
mendapatkan solusi pada level yang ke-(n+1)

 Analisis Ruang dan Waktu.


1. Diasumsikan:
 Ada satu solusi (1 tujuan ditemukan) pada pohon.
 Pohon pelacakan memiliki cabang yang selalu sama, yaitu sebanyak b.
 Tujuan dicapai pada level ke-d.
 Tujuan dicapai pada pertengahan pohon (kondisi rata-rata).
2. Analisis Ruang.
 Antrian pertama memiliki 1 keadaan.
 Setelah mencapai langkah pertama, antrian akan berisi b keadaan.
 Pemrosesan setiap b keadaan pada level ke-0 akan menambahkan b
keadaan lagi pada antrian.
 Sehingga setelah dilakukan pemrosesan semua keadaan pada level ke-d,
maka antrian akan menyimpan keadaan sebanyak bd-1.
 Karena diasumsikan bahwa tujuan terletak di tengah, maka antrian akan
menyimpan bd-1/2 keadaan (Gambar 2.13).

d d-1

Tujuan
Gambar 2.13 Analisis ruang metode Breadth-First Search.

3. Analisis Waktu.
 Ukuran waktu disini diambil dari banyaknya keadaan yang dikunjungi. Jika
diasumsikan bahwa setiap node membutuhkan waktu yang sama dalam
pemrosesan, maka:
 Waktu = waktu untuk memproses node-node di level ke-1 +
waktu untuk memproses node-node di level ke-2 + … +
waktu untuk memproses node-node di level ke-(d-1) +
waktu untuk memproses node-node di level ke-(d)/2
= 1 + b + b2 + b3 + … + bd-1 + bd/2
= O(bd)
B. Pencarian Mendalam Pertama (Depth-First Search)
Pada Depth-First Search, proses pencarian akan dilakukan pada semua anaknya
sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node
akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi
(Gambar 2.14).

Gambar 2.14 Depth-First Search

 Algoritma.
1. Jika keadaan awal merupakan tujuan, keluar (sukses).
2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai
keadaan sukses atau gagal:
(a) Bangkaitkan succesor E dari keadaan awal. Jika tidak ada succesor, maka
akan terjadi kegagalan.
(b) Panggil depth-first search dengan E sebagai keadaan awal.
(c) Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah-2

 Keuntungan.
1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan
yang aktif saja yang disimpan.
2. Secara kebetulan, metode depth-first search akan menemukan solusi tanpa
harus menguji labih banyak lagi dalam ruang keadaan.

 Kelemahan.
1. Memungkinkan tidak ditemukannya tujuan yang diharapkan.
2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.

 Analisis Ruang dan Waktu.


1. Analisis Ruang:
 Setelah berjalan 1 langkah, stack akan berisi b node.
 Setelah berjalan 2 langkah, stack akan berisi (b-1)+b node.
 Setelah berjalan 3 langkah, stack akan berisi (b-1)+(b-1)+b node.
 Setelah berjalan d langkah, stack akan berisi (b-1)*d+1 node, mencapai
maksimum.
2. Analisis Waktu.
 Pada kasus terbaik, depth-first search akan mencapai tujuan pada
kedalaman d pertama, sehingga dibutuhkan pencarian sebanyak d+1 node.
 Pada kasus terburuk, depth-first search akan mencapai tujuan pada
kedalaman d pada node terakhir, sehingga dibutuhkan pencarian sebanyak:
1+b+b2+b3+…+bd = (bd+1-1)/(b-1).

2.2.2 PENCARIAN HEURISTIK (HEURISTIC SEARCH)


Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu
aksesnya yang cukup lama serta besarnya memori yang diperlukan. Kelemahan ini
sebenarnya dapat diatasi jika ada informasi tambahan dari domain yang bersangkutan.
Misalkan pada kasus 8-puzzle (Gambar 2.15)

Keadaan Awal Tujuan

1 2 3 1 2 3
7 8 4 8 4
6 5 7 6 5
Gambar 2.15 Kasus 8-puzzle.

Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan

1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
5
Gambar
6 2.16 Langkah awal kasus 8-puzzle.

Langkah pertama dari permainan tersebut seperti terlihat pada Gambar 2.16. 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.
Informasi yang bisa diberikan, antara lain:
o Untuk jumlah ubin yang menempati posisi yang benar: jumlah yang lebih tinggi
adalah yang lebih diharapkan (lebih baik), Gambar 2.17.
Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan

1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=6 h=4 5 h=5
6
Gambar 2.17 Fungsi heuristik pertama kasus 8-puzzle.

o Untuk jumlah ubin yang menempati posisi yang salah: jumlah yang lebih kecil
adalah yang diharapkan (lebih baik), Gambar 2.18.

Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan

1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
5 h=3
h=2 h=4
6
Gambar 2.18 Fungsi heuristik kedua kasus 8-puzzle.

o Menghitung total gerakan yang diperlukan untuk mencapai tujuan; jumlah yang
lebih kecil adalah yang diharapkan (lebih baik), Gambar 2.19.

Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan

1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=2 h=4 5 h=4
6
Gambar 2.19 Fungsi heuristik ketiga kasus 8-puzzle.

A. Pembangkitan & Pengujian (Generate And Test)


Pada prinsipnya metode ini merupakan penggabungan antara depth-first search dengan
pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu
keadaan awal. Nilai pengujian berupa jawaban ‘ya’ atau ‘tidak’.
Algoritma:
1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau
lintasan tertentu dari keadaan awal).
2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan
cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih
dengan kumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah yang pertama.

Contoh 2.3: Traveling 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 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti
terlihat pada Gambar 2.20.

A 8 B
3 4
7 5

D 6 C

Gambar 2.20 Contoh kasus TSP.

Disini, penyelesaian dengan menggunakan generate & test dilakukan dengan


membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan
abjad, yaitu:
 A–B–C–D
 A–B–D–C
 A–C–B–D
 A–C–D–B
 Dan seterusnya (Gambar 2.21).

A B C D

B C D

C D B D C B

D C D B B C
Gambar 2.21 Metode Generate dan Test

Misalkan pertama-tama kita mulai dari node A. Kita pilih sebagai keadaan awal adalah
lintasan ABCD dengan panjang lintasan (=19). Kemudian kita lakukan backtracking
untuk mendapatkan lintasan ABDC (=18). Lintasan ini kita bandingkan dengan lintasan
ABCD, ternyata ABDC < ABCD, sehingga lintasan terpilih adalah ABDC. Kita lakukan
backtracking lagi untuk mendapatkan lintasan ACBD (=12), ternyata ACBD < ABDC,
maka lintasan terpilih sekarang adalah ACBD. Demikian seterusnya hingga kita temukan
solusi yang sebenarnya. Tabel 2.5 menunjukkan proses pencarian tersebut.
Dari Tabel 2.5 dapat dilihat bahwa pada akhir pencarian, kita peroleh lintasan terpendek
adalah A-C-B-D atau D-B-A-C dengan panjang lintasan sebesar 12.
Salah satu kelemahan dari metode generate & test ini adalah perlu membangkitkan
semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang
cukup besar dalam pencariannya.

Tabel 2.5 Alur pencarian dengan generate & test pada TSP.
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. ACDB 13 ACBD 12
5. ADBC 16 ACBD 12
6. ADCB 18 ACBD 12
7. BACD 17 ACBD 12
8. BADC 21 ACBD 12
9. BCAD 15 ACBD 12
10. BCDA 18 ACBD 12
11. BDAC 14 ACBD 12
12. BDCA 13 ACBD 12
13. CABD 15 ACBD 12
14. CADB 14 ACBD 12
15. CBAD 20 ACBD 12
16. CBDA 16 ACBD 12
17. CDAB 21 ACBD 12
18. CDBA 18 ACBD 12
19. DABC 20 ACBD 12
20. DACB 15 ACBD 12
21. DBAC 15 ACBD 12
22. DBCA 12 ACBD atau DBCA 12
23. DCAB 17 ACBD atau DBCA 12
24. DCBA 19 ACBD atau DBCA 12
B. Pendakian Bukit (Hill Climbing)
Metode ini hampir sama dengan metode pembangkitan & pengujian, hanya saja proses
pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan
berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa
fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil
terhadap keadaan-keadaan lainnya yang mungkin.

B.1. Simple Hill Climbing


Algoritma:
1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti;
dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak
ada operator baru yang akan diaplikasikan pada keadaan sekarang:
(a.) Cari operator yang belum pernah 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.

Pada simple hill climbing ini, ada 3 masalah yang mungkin, yaitu:
 Algoritma akan berhenti kalau mencapai nilai optimum local.
 Urutan penggunaan operator akan sangat berprngaruh pada penemuan solusi.
 Tidak diijinkan untuk melihat satupun langkah sebelumnya.

Contoh 2.4: Traveling Salesman Problem dengan simple hill climbing.


Disini 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.
(19) ABC
Tk 1,2 D Tk 1,3
Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4

(17) BAC ACB ABD DBC ADC CBA


Tk 1,2 D D C A B D
Tk 4,1
(15) Tk 2,3 Tk 3,4 Tk 2,4 Tk 1,3

ABC BCA BAD DAC BDC CAB


D D C B A D
Tk 1,2 Tk 2,3 Tk 1,3
Tk 3,4 Tk 4,1 Tk 2,4
(20) (18) (17) (14)

CBA BAC BCD DCA BDA ACB


D D A B CTk 4,1 D
Tk 2,4 Tk 1,3
Tk 1,2 Tk 2,3 Tk 3,4
(15) (21) (13)

DBA BAD BDC CDA BCA ADB


C C A B D C
Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3
(12)

DBC BCD BDA ADC BAC CDB


A A C B D A
Tk 1,2 Tk 2,3 Tk 1,3
Tk 3,4 Tk 4,1 Tk 2,4
(19) (15) (19) (15) (16)

BDC DCB DBA ABC DAC CBD


A A C D B A
Gambar 2.22 Metode Simple Hill Climbing dengan 6 operator.

Operator yang akan kita gunakan, adalah menukar urutan posisi 2 kota dalam suatu
lintasan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar
n!
posisi urutan 2 kota, maka kita akan mendapatkan sebanyak:
2! (n  2)!

4!
Sehingga kalau ada 4 kota, kita bisa memperoleh:  6 kombinasi.
2! (4  2)!

Keenam kombinasi ini akan kita pakai semuanya sebagai operator, yaitu:
 Tukar1,2 (menukar urutan posisi kota ke-1 dengan kota ke-2).
 Tukar2,3 (menukar urutan posisi kota ke-2 dengan kota ke-3).
 Tukar3,4 (menukar urutan posisi kota ke-3 dengan kota ke-4).
 Tukar4,1 (menukar urutan posisi kota ke-4 dengan kota ke-1).
 Tukar2,4 (menukar urutan posisi kota ke-2 dengan kota ke-4).
 Tukar1,3 (menukar urutan posisi kota ke-1 dengan kota ke-3).
Pada Gambar 2.22 terlihat bahwa, pada keadaan awal, lintasan terpilih adalah ABCD
(=19). Pada level pertama, hill climbing akan mengunjungi BACD (=17) yang ternyata
memiliki nilai heuristik lebih kecil dibandingkan dengan ABCD (17<19), sehingga BACD
menjadi pilihan selanjutnya dengan operator terpakai Tukar1,2. Pada level kedua, hill
climbing akan mengunjungi ABCD. Karena operator Tukar1,2 sudah digunakan oleh
BACD, maka dipilih node yang lain yaitu BCAD (=15). Karena nilai heuristik BCAD lebih
kecil dibanding dengan BACD (15<17), maka node BCAD akan menjadi pilihan
selanjutnya dengan operator Tukar2,3. Kemudian hill climbing akan mengunjungi CBAD
(=20). Karena nilai heuristik CBAD lebih besar jika dibanding dengan BCAD (20>17),
maka dipilih node lain. Pencarian menuju ke node BACD, karena operator Tukar2,3
sudah pernah digunakan oleh BCAD, maka dipilih node lain. Kunjungan berikutnya ke
node BCDA (=18). Nilai inipun masih lebih besar dari nilai heuristic BCAD, sehingga
dipilih node lain. Node yang dikunjungi berikutnya adalah DCAB (=19). Nilai heuristik
DCAB ternyata juga lebih besar dibanding dengan BCAD, sehingga pencarian dilanjutkan
di node lainnya lagi, yaitu BDAC (=14). Nilai heuristik ini sudah lebih kecil daripada nilai
heuristik node BCAD (14<15), maka sekarang node ini yang akan diekplorasi. Pencarian
pertama ditemukan node DBAC (=21), yang lebih besar daripada nilai BDAC. Nilai
heuristik yang lebih kecil diperoleh pada node BDCA (=13). Sehingga node BDCA ini
akan diekplorasi. Pencarian pertama sudah mendapatkan node dengan nilai heuristik
yang kebih kecil, yaitu DBCA (=12). Sehingga node ini diekplorasi juga. Dari hasil
ekplorasi dengan pemakaian semua operator, ternyata sudah tidak ada node yang
memiliki nilai heuristik yang lebih kecil dibanding dengan nilai heuristik DBCA, sehingga
sebenarnya node DBCA (=12) inilah lintasan terpendek yang kita cari (SOLUSI).
Misalkan kita tidak menggunakan semua operator, melainkan kita hanya menggunakan
4 operator pertama saja, 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).
maka pencarian dengan simple hill climbing ini dapat dilihat pada Gambar 2.23. Lintasan
terpendek yang diperoleh adalah B-C-A-D yaitu sepanjang 15. Disini kita akan terjebak
pada nilai minimum lokal yang disebabkan oleh kurangnya operator yang kita gunakan.
Kita tidak dapat memperoleh nilai minimum globalnya yaitu sebesar 12.

(19)
ABC
Tukar 1,2 D
Tukar 3,4 Tukar 4,1
Tukar 2,3
(17)
BAC ACB ABD DBC
D D C A
Tukar 3,4
Tukar 1,2 Tukar 2,3 Tukar 4,1
(15)

ABC BCA BAD DAC


D D
Tukar 3,4
C B
Tukar 1,2 Tukar 2,3 Tukar 4,1
(20) (17) (18) (17)

CBA BAC BCD DCA


D D A B

Gambar 2.23. Metode Simple Hill Climbing dengan 4 operator.

B.2. Steepest-Ascent Hill Climbing


Steepest-ascent hill climbing sebenarnya hampir sama dengan simple hill climbing,
hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya
dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan operator
tidak menentukan penemuan solusi.
Algoritma:
1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti;
dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan
pada keadaan sekarang.
a. Tentukan SUCC sebagai nilai heuristik terbaik dari successor-successor.
b. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang:
i. Gunakan operator tersebut dan bentuk keadaan baru.
ii. Evaluasi keadaan baru tersebut. Jika merupakan tujuan, keluar. Jika bukan,
bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai heuristic
keadaan baru tersebut sebagai SUCC. Namun jika tidak lebih baik, nilai SUCC
tidak berubah.
c. Jika SUCC lebih baik daripada nilai heuristik keadaan sekarang, ubah node SUCC
menjadi keadaan sekarang.

Pada steepest-ascent hill climbing ini, ada 3 masalah yang mungkin, yaitu:
 Local optimum: keadaan semua tetangga lebih buruk atau sama dengan keadaan
dirinya.
 Plateau: keadaan semua tetangga sama dengan keadaan dirinya.
 Ridge: local optimum yang lebih disebabkan karena ketidakmampuan untuk
menggunakan 2 operator sekaligus.

Contoh 2.5: Traveling Salesman Problem dengan steepest ascent hill climbing.

(19) ABC
Tk 1,2 D
Tk 4,1
Tk 1,3
Tk 2,3 Tk 3,4 Tk 2,4
(17) (12) (18) (12) (18) (20)

BAC ACB ABD DBC ADC CBA


Tk 1,2 D D
Tk 3,4 Tk 4,1
C
Tk 2,4 Tk 1,3
A B D
(15) Tk 2,3 (13)
(19) (19) (16) (15)

CAB ABC ACD DCB ADB BCA


D D B A C D
Gambar 2.24 Metode Steepest Ascent Hill Climbing.

Pada Gambar 2.24, terlihat bahwa, keadaan awal, lintasan terpilih adalah ABCD (19).
Pada level pertama, hill climbing akan memilih nilai heuristik terbaik dari keenam
succesor yang ada, yaitu: BACD(17), ACBD(12), ABDC(18), DBCA(12), ADCB (18) atau
CBAD(20). Tentu saja yang terpilih adalah ACBD, karena memiliki nilai heuristik paling
kecil (=12). Dari ACBD ini akan dipilih nilai heuristik terbaik dari succesornya yaitu:
CABD(15), ABCD(19), ACDB(13), DCBA(19), ADBC(16) atau BCAD(15). Ternyata dari
keenam successor tersebut memiliki nilai heuristik yang lebih besar disbanding dengan
ACDB. Sehingga tidak akan ada perubahan nilai keadaan (tetap ACDB). Hasil yang
diperoleh, lintasannya adalah ACDB (12).
Contoh 2.6: 8-puzzle dengan steepest ascent hill climbing.
Pada permainan 8-puzzle, keadaan awal dan tujuan adalah sebagai berikut:

KEADAAN
AWAL TUJUA
2 3 N
1 2 3
1 8 4 8 4
7 6 5 7 6 5

Gambar 2.25 8-puzzle dengan steepest ascent hill climbing.

Operator yang digunakan untuk menggerakkan dari satu keadaan ke


keadaan berikutnya adalah:
 Ubin kosong ke kanan
 Ubin kosong ke kiri
 Ubin kosong ke atas
 Ubin kosong ke bawah

Dengan menggunakan bentuk pohon untuk merepresentasikan ruang keadaan,


gunakanlah metode Stepest Ascent Hill Climbing untuk mencari langkah-
langkah yang harus ditempuh dari keadaan awal sampai mendapatkan tujuan.
Fungsi heuristik yang digunakan adalah jumlah ubin yang menempati posisi
yang benar.
2 3
1 8 4
7 6 5
h=
kanan
5 kiri bawah

2 3 2 3 2 8 3
1 8 4 1 8 4 1 4
7 6 5 7 6 5 7 6 5
h= h= h=
kanan bawah
4 6 5
2 3 1 2 3
1 8 4 8 4
7 6 5 7 6 5
h= h=
5 atas 7 kanan bawah

2 3 1 2 3 1 2 3
1 8 4 8 4 7 8 4
Gambar 2.26 Penyelesaian 8-puzzle dengan steepest ascent hill climbing.
7 6 5 7 6 5 6 5
h= h= h=
6
Pada Gambar 2.26 terlihat bahwa semula
8 ada 3 operator6 yang bisa digunakan, yaitu
ubin kosong digeser ke kanan, kiri dan bawah. Masing-masing kondisi hasil dari
implementasi operator memberikan nilai heuristik 4, 6, dan 5. Nilai heuristik terbesar
adalah 6, sehingga kondisi kedua yang dipilih. Pada tahap kedua, operator yang bisa
digunakan hanya 2, yaitu ubin kosong digeser ke kanan dan ke bawah. masing-masing
dengan nilai heuristik 5 dan 7. Nilai heuristik yang dihasilkan adalah 7, dan kondisi ini
dipilih. Pada tahap ketiga, ada 3 operator yang digunakan, yaitu ubin kosong digeser ke
atas, kanan, dan bawah. Masing-masing kondisi memiliki nilai heuristik 6, 8, dan 6.
Karena nilai 8 merupakan solusi, maka pencarian telah berakhir.

Anda mungkin juga menyukai