15.07.2013 Views

n - cs.unsyiah.ac.id. - Universitas Syiah Kuala

n - cs.unsyiah.ac.id. - Universitas Syiah Kuala

n - cs.unsyiah.ac.id. - Universitas Syiah Kuala

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

HEURISTIC SEARCH<br />

ì<br />

Irvanizam Zamanhuri, M.Sc<br />

Dr. Taufiq A. Gani, M.EngSc<br />

Jurusan Informatika<br />

<strong>Universitas</strong> <strong>Syiah</strong> <strong>Kuala</strong><br />

http://informatika.<strong>unsyiah</strong>.<strong>ac</strong>.<strong>id</strong>/irvanizam


Travelling Salesmen Problem<br />

ì Seorang salesman ingin mengunjungi sejumlah n<br />

kota. Akan dicari rute terpendek di mana se7ap kota<br />

hanya boleh dikunjungi tepat 1 kali.


Heuristic Search<br />

Pencarian buta 7dak selalu dapat diterapkan dengan baik,<br />

hal ini disebabkan waktu aksesnya yang cukup lama serta<br />

besarnya memori yang dibutuhkan<br />

Kelemahan ini dapat diatasi jika ada informasi tambahan<br />

(fungsi heuris7k) dari domain yang bersangkutan<br />

Heuris7c adalah<br />

Suatu proses yang mungkin dapat menyelesaikan suatu masalah tetapi<br />

7dak ada jaminan bahwa solusi yang dicari selalu dapat ditemukan<br />

Fungsi Heuris7k adalah fungsi yang melakukan pemetaan<br />

(mapping) dari diskripsi keadaan masalah (problema) ke<br />

pengukur kebutuhan, umumnya direpresentasikan berupa<br />

angka.


Heuristic Search<br />

AI menggunakan heuris7k dalam 2 situasi dasar :<br />

Persoalan/problema yang mungkin memiliki solusi eksak,<br />

namun biaya perhitungan untuk menemukan solusi tersebut<br />

sangat 7nggi dalam kebanyakan persoalan (seper7 catur),<br />

ruang keadaan bertambah secara luar biasa seiring dengan<br />

jumlah<br />

Persoalan yang mungkin 7dak memiliki solusi eksak karena<br />

ambiquitas (ke7dakpas7an) mendasar dalam pernyataan<br />

persoalan atau data yang tersedia, diagnosa medis<br />

merupakan salah satu contohnya.<br />

Heuris7k hanyalah sebuah cara menerka langkah<br />

berikutnya yang harus diambil dalam memecahkan suatu<br />

persoalan berdasarkan informasi yang ada/tersedia.


Metode Pencarian Heuristic<br />

ì Bangkitkan dan Uji (Generate and Test)<br />

ì HILL CLIMBING<br />

ì Simple Hill Climbing<br />

ì Steepest = Ascent Hill Climbing<br />

ì BEST FIRST SEARCH<br />

ì Greedy Best First Search<br />

ì Algoritma A*


Generate dan Test (1/2)<br />

ì Metode Generate-­‐and-­‐Test (GT) adalah<br />

metode yang paling sederhana dalam teknik<br />

pencarian heuris7k.<br />

ì Di dalam GT, terdapat dua prosedur pen7ng:<br />

ì Pembangkit (generate), yang membangkitkan semua<br />

solusi yang mungkin.<br />

ì Test, yang menguji solusi yang dibangkitkan tersebut.<br />

ì Algoritma GT menggunakan prosedur Depth<br />

First Search karena suatu solusi harus<br />

dibangkitkan secara lengkap sebelum dilakukan<br />

Test.


Generate dan Test (2/2)<br />

ì Dengan penggunaan memori yang sedikit, DFS<br />

bisa digunakan sebagai prosedur pembangkit<br />

yang menghasilkan suatu solusi.<br />

ì Prosedur Test bisa menggunakan fungsi<br />

heuris7k.


Algoritma Generate dan Test<br />

1. Bangkitkan suatu kemungkinan solusi. Solusi<br />

bisa berupa suatu keadaan (state) tertentu.<br />

Solusi juga bisa berupa sebuah jalur dari satu<br />

posisi asal ke posisi tujuan, seper7 dalam<br />

kasus pencarian rute dari satu kota asal ke<br />

kota tujuan.<br />

2. Tes apakah solusi yang dibangkitkan tersebut<br />

adalah sebuah solusi yang bisa diterima sesuai<br />

dengan kriteria yang diberikan.<br />

3. Jika solusi telah ditemukan, keluar. Jika belum,<br />

kembali ke langkah 1.


CONTOH KASUS<br />

TSP (Travelling Salesmen Problem)<br />

ì Seorang salesman ingin mengunjungi sejumlah n<br />

kota. Akan dicari rute terpendek di mana se7ap kota<br />

hanya boleh dikunjungi tepat 1 kali.<br />

ì Jarak antara 7ap-­‐7ap kota sudah diketahui.<br />

Misalkan ada 4 kota dengan jarak antara 7ap-­‐7ap<br />

kota seper7 terlihat pada gambar berikut.


CONTOH KASUS<br />

TSP(Travelling Salesmen Problem)<br />

ì Membangkitkan solusi-­‐solusi yang mungkin dengan<br />

menyusun kota-­‐kota dalam urutan abjad, yaitu :<br />

ì A – B – C – D<br />

ì A – B – D – C<br />

ì A – C – B – D<br />

ì A – C – D – B<br />

ì Dst<br />

ì Untuk mengetahui jumlah seluruh kombinasi abjad<br />

yang mungkin menjadi sebuah solusi à n!


CONTOH KASUS<br />

TSP(Travelling Salesmen Problem)<br />

ì Pilih keadaaan awal, misal ABCD dengan panjang<br />

lintasan 19<br />

ì Lakukan b<strong>ac</strong>ktr<strong>ac</strong>king untuk mendapatkan lintasan<br />

ABDC, misal panjang lintasan 18<br />

ì Bandingkan lintasan ABDC dengan sebelumnya,<br />

lintasan terpendek akan dipilih untuk dilakukan<br />

b<strong>ac</strong>ktr<strong>ac</strong>king lagi.<br />

ì Solusi terbaik adalah menemukan lintasan<br />

terpendek dari kota yang dilewa7.


CONTOH KASUS<br />

TSP(Travelling Salesmen Problem)<br />

ì Dibuat Tabel


CONTOH KASUS<br />

TSP(Travelling Salesmen Problem)


ì Kelemahan :<br />

Generate dan Test<br />

ì Membangkitkan semua kemungkinan sebelum<br />

dilakukan pengujian<br />

ì Membutuhkan waktu yang cukup besar dalam<br />

pencariannya


Hill Climbing<br />

ì Terdapat 2 jenis HC yang sedikit berbeda, yaitu<br />

Simple Hill Climbing (HC sederhana) dan Steepest-­‐<br />

Ascent Hill Climbing (HC dengan memilih<br />

kemiringan yang paling tajam/curam).<br />

ì Simple HC, langsung memilih new state yang<br />

memiliki jalur yang lebih baik (“curam”) daripada<br />

jalur-­‐jalur sebelumnya tanpa memperhitungkan<br />

jalur-­‐jalur lain yang lebih “curam”.<br />

ì Sedangkan Steepest-­‐Ascent HC, akan mengevaluasi<br />

semua state yang berada di bawah current state<br />

dan memilih state dengan jalur yang paling<br />

“curam”.


Simple Hill Climbing<br />

Algoritma<br />

Mulai dari keadaan awal, (ini*al state) lakukan pengujian,<br />

jika state (keadaan) merupakan goal state (tujuan) à berhen7<br />

jika state (keadaan) bukan merupakan goal state (tujuan) à lanjutkan<br />

dengan keadaan sekarang sebagai keadaan awal.<br />

Ulangi langkah berikut hingga solusi ditemukan atau sampai 7dak ada<br />

operator baru yang diaplikasikan pada keadaan sekarang<br />

Pilih operator yang belum pernah digunakan<br />

Gunakan operator untuk mendapatkan keadaan yang baru<br />

Evaluasi keadaan baru tersebut :<br />

Jika keadaan baru adalah tujuan à keluar<br />

Jika 7dak tetapi nilainya lebih baik dari keadaan sekarang, à jadikan<br />

keadaan baru tersebut menjadi keadaan sekarang<br />

Jika keadaan baru 7dak lebih baik dari keadaan sekarang à lanjutkan<br />

iterasi


Simple Hill Climbing<br />

Contoh Kasus : TSP<br />

Operator yg digunakan adalah operator yang bisa menghasilkan<br />

kombinasi lintasan kota yang berbeda, yaitu dengan menukar<br />

urutan posisi 2 kota dalam suatu lintasan.<br />

Bila ada n kota maka kombinasi lintasan :<br />

n!<br />

2! n ! 2<br />

( )!<br />

Jika dari soal terdapat 4 kota maka kombinasi ada 6 yaitu :<br />

1. (1,2) tukar urutan posisi kota ke-­‐1 dg kota ke-­‐2<br />

2. (2,3) tukar urutan posisi kota ke-­‐2 dg kota ke-­‐3<br />

3. (3,4) tukar urutan posisi kota ke-­‐3 dg kota ke-­‐4<br />

4. (4,1) tukar urutan posisi kota ke-­‐4 dg kota ke-­‐1<br />

5. (2,4) tukar urutan posisi kota ke-­‐2 dg kota ke-­‐4<br />

6. (1,3) tukar urutan posisi kota ke-­‐1 dg kota ke-­‐3


Simple Hill Climbing<br />

Contoh Kasus : TSP<br />

ì Pada pencarian ini, penggunaan urutan dari<br />

kombinasi harus konsisten. Setelah kombinasi<br />

ditentukan, gunakan algoritma pengerjaan sesuai<br />

aturan metode simple hill climbing. Misalnya<br />

keadaan awal adalah ABCD


Simple Hill Climbing<br />

Contoh Kasus : TSP dengan 6 operator<br />

7<br />

A 8 B<br />

3<br />

4<br />

D C<br />

6<br />

5


ì Keadaan awal, lintasan ABCD (=19).<br />

Penjelasan (1/2)<br />

ì Level pertama, hill climbing mengunjungi BACD (=17), BACD<br />

(=17) < ABCD (=19), sehingga<br />

ì BACD menjadi pilihan selanjutnya dengan operator Tukar<br />

1,2<br />

ì Level kedua, mengunjungi ABCD, karena operator Tukar 1,2<br />

sudah dipakai BACD, maka pilih node<br />

ì lain yaitu BCAD (=15), BCAD (=15) < BACD (=17)<br />

ì Level ke7ga, mengunjungi CBAD (=20), CBAD (=20) > BCAD<br />

(=15), maka pilih node lain yaitu<br />

ì BCDA (=18), pilih node lain yaitu DCAB (=17), pilih node<br />

lain yaitu BDAC (=14), BDAC (=14) < BCAD (=15)


Penjelasan (2/2)<br />

ì Level keempat, mengunjungi DBAC (=15), DBAC(=15) > BDAC (=14),<br />

maka pilih node lain yaitu<br />

ì BADC (=21), pilih node lain yaitu BDCA (=13), BDCA (=13) < BDAC (=14)<br />

ì Level kelima, mengunjungi DBCA (=12), DBCA (=12) < BDCA (=13)<br />

ì Level keenam, mengunjungi BDCA, karena operator Tukar 1,2 sudah<br />

dipakai DBCA, maka pilih node<br />

ì lain yaitu DCBA, pilih DBAC, pilih ABCD, pilih DACB, pilih CBDA<br />

ì Karena sudah 7dak ada node yang memiliki nilai heuris7k yang lebih<br />

kecil dibanding nilai heuris7k DBCA, maka node DBCA (=12) adalah<br />

lintasan terpendek (SOLUSI)


Simple Hill Climbing<br />

Contoh Kasus : TSP dengan 6 operator<br />

§ Pencarian dilihat dari anak kiri, bila nilai heuris7k anak<br />

kiri lebih baik, maka dibuka untuk pencarian selanjutnya,<br />

bila 7dak baru melihat tetangga dari anak kiri tersebut.<br />

§ Solusi yang dihasilkan adalah node DBCA (=12) à<br />

lintasan terpendek dibanding yang lain.<br />

§ Kelemahannya :<br />

1. 7dak semua solusi dapat ditemukan seper7<br />

pada metode generate and test (2 solusi).<br />

2. pembatasan kombinasi operator à<br />

penemuan solusi yang 7dak maksimal


Simple Hill Climbing<br />

§ Masalah-­‐masalah yang mungkin 7mbul pada prosedur Hill<br />

Climbing :<br />

§ Maksimum Lokal<br />

§ Suatu keadaaan yang lebih baik daripada semua tetangganya<br />

namum masih belum lebih baik dari suatu keadaan lain yang<br />

jauh letaknya darinya.<br />

§ Daratan (Plateau)<br />

§ Suatu daerah datar dari ruang pencarian (search) dimana<br />

semua himpunan keadaan tetangganya memiliki nilai yang<br />

sama.<br />

§ Punggung (R<strong>id</strong>ge)<br />

§ Suatu daerah ruang pencarian (search) yang lebih 7nggi<br />

daripada daerah sekitarnya, namun 7dak dapat dibalikkan oleh<br />

langkah-­‐langkah tunggal ke arah manapun.


ì Solusinya :<br />

Simple Hill Climbing<br />

ì Melakukan langkah balik (tr<strong>ac</strong>king) ke simpul yang<br />

lebih awal dan mencoba bergerak ke arah yang lain.<br />

ì Melakukan lompatan besar ke suatu arah untuk<br />

mencoba bagian ruang pencarian yang baru.<br />

ì Menerapkan dua atau lebih aturan sebelum<br />

melakukan uji coba. Ini bersesuaian dengan<br />

bergerak kebeberapa arah sekaligus.


STEEPEST – ASCENT HILL CLIMBING<br />

ì Hampir sama dengan simple hill climbing, hanya saja<br />

gerakan pencarian 7dak dimulai dari kiri, tetapi<br />

berdasarkan nilai heuris7k terbaik.


Keadaan awal, lintasan ABCD (=19).<br />

Level pertama, hill climbing memilih nilai heuristik<br />

terbaik yaitu ACBD (=12) sehingga ACBD menjadi<br />

pilihan selanjutnya.<br />

Level kedua, hill climbing memilih nilai heuristik terbaik,<br />

karena nilai heuristik lebih besar dibanding ACBD, maka<br />

hasil yang diperoleh lintasannya tetap ACBD (=12)


BEST FIRST SEARCH<br />

§ Merupakan kombinasi kelebihan teknik depth first search dan<br />

breadth first search dengan mengambil kelebihan dari kedua<br />

metode tersebut.<br />

§ Pencarian diperkenankan mengunjungi node yang ada di level yg<br />

lebih rendah jika ternyata node pada level yg lebih 7nggi ternyata<br />

memiliki nilai heuris7k yg buruk.<br />

§ Untuk mengimplementasikan metode ini, dibutuhkan 2 antrian<br />

yang berisi node-­‐node, yaitu :<br />

§ OPEN à berisi simpul-­‐simpul yang masih memiliki peluang<br />

(peluangnya masih terbuka) untuk terpilih sebagai simpul terbaik.<br />

§ CLOSED à berisi simpul-­‐simpul yang 7dak mungkin terpilih sebagai<br />

simpul terbaik (peluang untuk terpilih sudah tertutup).


BEST FIRST SEARCH<br />

§ Best First Search akan membangkitkan node berikutnya<br />

dari semua node yang pernah dibangkitkan.<br />

§ Pertanyaannya :<br />

Bagaimana menentukan sebuah node terbaik saat ini?<br />

Dilakukan dengan menggunakan biaya perkiraan<br />

Bagaimana caranya menentukan biaya perkiraan?<br />

Biaya perkiraan dapat ditentukan dengan fungsi<br />

heuris*c


Best First Search<br />

Fungsi Heuristic<br />

ì Suatu fungsi heuris7c dikatakan baik jika bisa<br />

memberikan biaya perkiraan yang mendeka7 biaya<br />

sebenarnya.<br />

ì Semakin mendeka7 biaya sebenarnya, fungsi<br />

heuris7c tersebut semakin baik.


100<br />

16<br />

A B C 10 D<br />

( 20 , 10 ) ( 35 , 10 ) ( 55 , 10 ) ( 65 , 10 )<br />

Dalam kasus pencarian rute terpendek, biaya sebenarnya<br />

adalah panjang jalan raya yang sebenarnya.<br />

Sedangkan fungsi heuristiknya adalah garis lurus dari<br />

Contoh<br />

1 kota ke kota lainnya. Untuk itu, bisa digunakan rumus berikut :<br />

d ab = ( y b – y a ) 2 + ( x b – x a ) 2<br />

d AB = 15<br />

d BC = 20<br />

d CD = 10


Algoritma Best First Search<br />

ì Greedy Best First Search<br />

ì Algoritma A*


Greedy Best First Search<br />

ì Algoritma ini merupakan jenis algoritma Best First<br />

Search yg paling sederhana<br />

ì Algoritma ini hanya memperhitungkan biaya<br />

perkiraan saja<br />

f(n) = h’(n)<br />

ì Karena hanya memperhitungkan biaya perkiraan<br />

yang belum tentu kebenarannya, maka algoritma<br />

ini menjadi Bdak opBmal


10<br />

E<br />

10<br />

S<br />

35<br />

A<br />

25<br />

30<br />

D<br />

B<br />

C<br />

5<br />

F<br />

50<br />

S -­‐ B -­‐ K -­‐ G<br />

K<br />

SOLUSI<br />

30<br />

G<br />

Dengan Total Jarak<br />

= 105


PENJELASAN<br />

ì Dari contoh di atas, Greedy akan menemukan<br />

solusi S-­‐B-­‐K-­‐G dengan total jarak 105<br />

ì Padahal ada solusi lain yg lebih op7mal, yakni<br />

S-­‐A-­‐B-­‐F-­‐K-­‐G dengan total jarak hanya 95<br />

ì Dari situ bisa disimpulkan bahwa Greedy Best First<br />

Search 7dak bisa menemukan solusi yang op7mal


ALGORITMA A*<br />

ì Berbeda dengan Greedy, algoritma ini akan menghitung<br />

fungsi heuris7c dengan cara menambahkan biaya sebenarnya<br />

dengan biaya perkiraan. Sehingga d<strong>id</strong>apatkan rumus :<br />

f(n) = g(n) + h’(n)<br />

ì g(n) = Biaya sebenarnya dari Node Awal ke Node n<br />

ì h’(n) = Biaya perkiraan dari Node n ke Node Tujuan<br />

ì Dengan perhitungan biaya seper7 ini, algoritma A* adalah<br />

complete dan opBmal


ALGORITMA A*<br />

ì Algoritma A* juga menggunakan dua senarai,<br />

yaitu :<br />

ì OPEN<br />

ì CLOSED<br />

ì Terdapat 7ga kondisi bagi se7ap suksessor yang<br />

dibangkitkan, yaitu :<br />

ì Sudah berada di OPEN<br />

ì Sudah berada di CLOSE<br />

ì T<strong>id</strong>ak berada di OPEN maupun CLOSE


ALGORITMA A*<br />

§ Jika Suksessor sudah pernah berada di OPEN, maka :<br />

§ Dilakukan pengecekan apakah perlu pengubahan parent<br />

atau 7dak tergantung pada nilai g nya melalui parent<br />

lama atau parent baru<br />

§ Jika melalui parent baru memberikan nilai g yang lebih<br />

kecil, maka dilakukan pengubahan parent.<br />

§ Jika pengubahan parent dilakukan, maka dilakukan<br />

perbaruan (update) nilai g dan f pada suksessor tersebut.<br />

§ Dengan perbaruan ini, suksessor tersebut memiliki<br />

kesempatan yang lebih besar untuk terpilih sebagai<br />

simpul terbaik


ALGORITMA A*<br />

ì Jika suksessor 7dak berada di OPEN maupun di<br />

CLOSED, maka :<br />

ì Suksessor tersebut dimasukkan ke dalam OPEN<br />

ì Tambahkan suksessor tersebut sebagai<br />

suksessornya best node.<br />

ì Hitung biaya suksessor tersebut dengan<br />

rumus f=g+h


10<br />

E<br />

S<br />

10<br />

35<br />

15<br />

20<br />

A<br />

25<br />

30<br />

D<br />

B<br />

C<br />

SOLUSI :<br />

J<br />

10<br />

5<br />

F<br />

50<br />

40<br />

90<br />

S -­‐ A -­‐ B -­‐ F -­‐ K -­‐ G<br />

Dengan Total Jarak = 95<br />

K<br />

30<br />

G


KESIMPULAN<br />

ì Algoritma A* lebih baik dalam melakukan<br />

pencarian heuris7c daripada Greedy Best First<br />

Search karena dapat mengasilkan solusi yang<br />

op7mal.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!