heuristic search
Post on 15-Feb-2016
84 Views
Preview:
DESCRIPTION
TRANSCRIPT
HEURISTIC SEARCH
Dian Eka R
Pencarian Heuristik (heuristic searching)? merupakan suatu strategi untuk
melakukan proses pencarian ruang keadaan (state space) suatu problema secara selektif,
yang memandu proses pencarian yang kita lakukan di sepanjang jalur yang memiliki kemungkinan sukses paling besar, dan mengesampingkan usaha yang bodoh dan memboroskan waktu.
Pencarian Heuristik (heuristic searching)? Heuristik adalah sebuah teknik
yang mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness
Pencarian Heuristik (heuristic searching)? Untuk dapat menerapkan heuristik
tersebut dengan baik dalam suatu domain tertentu, diperlukan suatu Fungsi Heuristik.
Fungsi heuristik ini digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Jenis-jenis Heuristic Searching ¨ Generate and Test. ¨ Hill Climbing. ¨ Best First Search. ¨ Alpha Beta Prunning. ¨ Means-End-Anlysis. ¨ Constraint Satisfaction
Metode Pencarian Heuristik
Bangkitkan - dan - Uji (Generate and Test) Pendakian Bukit (Hill Climbing)
1. Simple Hill Climbing2. Steepest=Ascent Hill Climbing
Pencarian Terbaik Pertama (Best First Search)1. Greedy Best First Search2. Algoritma A*
Generate and TestAlgoritma :1. Bangkitkan suatu kemungkinan solusi
(membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan awal)
2. Uji apakah node tsb adlh solusi dg membandingkan node tsb atau node akhir dr lintasan yg dipilih dg kumpulan tujuan yg diharapkan
3. Jika solusi ditemukan langkah–langkah tersebut dihentikan, jika tdk kembali langkah pertama
Generate and Test Jika pembangkitan atau pembuatan solusi–
solusi yang dimungkinkan dapat dilakukan secara sistematis, maka prosedur ini akan dapat segera menemukan solusinya, (bila ada).
Namun, jika ruang problema sangat besar, maka proses ini akan membutuhkan waktu yang lama.
Metode generate and test ini kurang efisien untuk masalah yang besar atau kompleks.
Contoh : TSP (Travelling Salesman Problem)
Seorang salesman ingin mengunjungi n kota. Jarak tiap kota sdh diket.Kita ingin mengetahui rute terpendek dimana setiap kota hanya boleh dikunjungi 1 kali. Misal ada 4 kota dg jarak sbb:
A
D
B
C
8
6
43
7 5
Penyelesaian :Membangkitkan solusi - solusi yg mungkin dg
menyusun kota – kota dalam urutan abjad, yaitu: A – B – C – D A – B – D – C A – C – B – D A – C – D – B DST
U/ mengetahui jumlah seluruh kombinasi abjad yg mkn mjd solusi adalah n!.
Pilih keadaan awal, mis ABCD dg panjang lintasan 19.
Lakukan backtracking u/ mdapatkan lintasan ABDC 18.
Bandingkan lintasan ABDC dg sblmnya, lintasan terpendek akan dipilih u/ dilakukan backtracking lagi.
Solusi terbaik adalah menemukan lintasan terpendek dari kota yg dilewati.
Dibuat Tabel :
Lanjutan tabel :
Kelemahan :
Membangkitkan semua kemungkinan sebelum dilakukan pengujian
Membutuhkan waktu yg cukup besar dalam pencariannya
Hill Climbing Hill climbing (mendaki bukit)
merupakan salah satu variasi metode Bangkitkan - dan - Uji (generate and test) dimana umpan balik yang berasal dari prosedur uji digunakan untuk memutuskan arah gerak dalam ruang pencarian (search).
Dalam prosedur Bangkitkan - dan - Uji yang murni, respon fungsi uji hanyalah ya atau tidak
Hill Climbing Dalam prosedur Hill Climbing,
fungsi uji dikombinasikan dengan fungsi heuristik yang menyediakan pengukuran kedekatan suatu keadaan yang diberikan dengan tujuan (goal).
Simple Hill Climbing
Algoritma :1. Mulai dr keadaan awal, lakukan pengujian: if tujuan mk stop,if tdk mk lanjutkan dg keadaan skrng sbg keadaan awal.2. Ulangi langkah berikut hingga solusi ditemukan atau sampai tdk ada operator baru yg diaplikasikan pd keadaan skrng: a. Pilih operator yg blm pernah digunakan, gunakan operator u/ mdptkan keadaan yg baru
Lanjutan……… b. Evaluasi keadaan baru tsbt : (i) If keadaan baru adlh tujuan, keluar (ii) If tdk, namun nilainya lbh baik dr keadaan skrng, mk jadikan keadaan baru tsbt mjd keadaan skrng (iii) If keadaan baru tdk lbh baik drpd keadaan skrng, mk lanjutkan iterasi
Penyelesaian : contoh kasus TSP
Operator yg digunakan adlh operator yg bisa menghasilkan kombinasi lintasan kota yg berbeda, yaitu dg menukar urutan posisi 2 kota dlm suatu lintasan.
Bila ada n kota maka kombinasi lintasan :
Jika dr soal terdapat 4 kota mk kombinasi ada 6 yaitu :
!2!2!nn
Lanjutan …….1. (1,2) tukar urutan posisi kota ke-1 dg kota ke-22. (2,3) tukar urutan posisi kota ke-2 dg kota ke-33. (3,4) tukar urutan posisi kota ke-3 dg kota ke-44. (4,1) tukar urutan posisi kota ke-4 dg kota ke-15. (2,4) tukar urutan posisi kota ke-2 dg kota ke-46. (1,3) tukar urutan posisi kota ke-1 dg kota ke-3
Pada pencarian ini, penggunaan urutan dari kombinasi harus konsisten.Stlh kombinasi ditentukan, gunakan algoritma pengerjaan sesuai aturan metode simple hill climbing. Mis keadaan awal adlh ABCD
Metode Simple Hill Climbing dg 6 operator
Lanjutan ……
Pencarian dilihat dari anak kiri, bila nilai heuristik anak kiri lbh baik mk dibuka utk pencarian slnjutnya, bila tdk baru melihat tetangga dari anak kiri tsbt.
Solusi yg dihasilkan adlh node DBCA (=12) lintasan terpendek dibanding yg lain.
Kelemahannya : 1. tdk semua solusi dpt ditemukan seperti pada metode generate and test (2 solusi).2. pembatasan kombinasi operator penemuan solusi yg tdk maksimal
Steepest-Ascent Hill Climbing Algoritma :
1. Mulai dr keadaan awal, lakukan pengujian: if tujuan mk stop,if tdk mk lanjutkan dg keadaan skrng sbg keadaan awal.2. Kerjakan hingga tujuan tercapai atau hingga iterasi tdk memberikan perubahan pd keadaan skrng: a. Tentukan SUCC sbg nilai heuristik terbaik dari successor – successor.
Lanjutan …… b. Kerjakan utk tiap operator yg digunakan o/ keadaan skrng : (i) Gunakan operator tsbt & bentuk keadaan baru. (ii) Evaluasi keadaan baru tsbt, if mrpk tujuan keluar. If tdk, bandingkan nilai heuristiknya dg SUCC. If lbh baik, jadikan nilai heuristik keadaan baru tsbt sbg SUCC, but if not good, nilai SUCC tdk berubah. c. If SUCC lbh baik drpd nilai heuristik keadaan skrng, ubah node SUCC mjd keadaan skrng
Masalah yg mkn timbul padaprosedur Hill Climbing :
Local optimum : adalah suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum lebih baik dari suatu keadaan lain yang jauh letaknya darinya
Sering muncul ketika sdh mendekati solusi.
Masalah yg mkn timbul padaprosedur Hill Climbing :
Plateau (Daratan): adalah suatu daerah datar dari ruang pencarian (search) dimana keadaan semua tetangga sama dgn keadaan dirinya
Ridge (Punggung) : local optimum yg lbh disebabkan karena ketidak mampuan u/ menggunakan 2 operator sekaligus.
Solusinya:1. Melakukan langkah balik (backtracking) ke
simpul yang lebih awal dan mencoba bergerak ke arah yang lain.
2. Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang pencarian yang baru.
3. Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini bersesuaian dengan bergerak ke beberapa arah sekaligus.
Penyelesaian : contoh kasus TSP
Operator tetap digunakan u/ mbangkit kemungkinan solusi.
Pencarian didasarkan pd nilai heuristik terbaik pd setiap level, bkn nilai heuristik pada node plng kiri (metode simple hill climbing)
Mis : dr contoh TSP kita ambil keadaan awal ABCD dg nilai heuristik (19). Nilai tsbt kita namai dg SUCC. Kmd lanjutkan pengerjaan sesuai dg algoritma dari steepest-ascent hill climbing.
Metode Steepest-Ascent Hill Climbing
Lanjutan …… Solusi yg diperoleh, lintasan ACBD dg
nilai heuristik 12.
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
Best First Search (Lanjutan) 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 perkiraanBagaimana 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.
Contoh
A B C D
16
100
10
( 20 , 10 ) ( 35 , 10 ) ( 55 , 10 ) ( 65 , 10 )
Dalam kasus pencarian rute terpendek, biaya sebenarnya adalah panjang jalanRaya yang sebenarnya. Sedangkan fungsi heuristiknya adalah garis lurus dari1 kota ke kota lainnya. Untuk itu,bisa digunakan rumus berikut :
dab = ( yb – ya )2 + ( xb – xa )2dAB = 15dBC = 20dCD = 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
Contoh
S
A
B
CD
E
G
FK
HL
MJ
10
10
102
53035
1520 4
0
52
25
40
50
5 40
90
30
40
80
25
n S A B C D E F G H J K L Mh’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70
Langkah 1
S
A
B
CD
E
10
10
253035
n S A B C D Eh’(n) 80 80 60 70 85 74
Langkah 2
S
A
B
CD
E
10
10
253035
n A C D E F Kh’(n) 80 70 85 74 70 30
FK5
0
5
Langkah 3
S
A
B
CD
E
10
10
253035
n A C D E F Gh’(n) 80 70 85 74 70 0
FK5
0
5
G30
SOLUSI
S
A
B
CD
E
10
10
253035
FK5
0
5
G30
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
Romania with step costs in km
Greedy best-first search example
Greedy best-first search example
Greedy best-first search example
Greedy best-first search example
Properties of greedy best-first search Complete? No – can get stuck in loops,
e.g., Iasi Neamt Iasi Neamt Time? O(bm), but a good heuristic can give
dramatic improvement Space? O(bm) -- keeps all nodes in
memory Optimal? No
(expand the minimal path cost but cant be not optimal)
Algoritma A*(Admissible Heuristic ) Berbeda dg Greedy, algoritma ini akan
menghitung fungsi heuristic dengan cara menambahkan biaya sebenarnya dengan biaya perkiraan.
Heuristik adalah kriteria, metoda, atau prinsip-prinsip untuk menentukan pilihan sejumlah alternatif untuk mencapai sasaran dengan efektif.
Nilai heuristik dipergunakan untuk mempersempit ruang pencarian
Dengan heuristik yang benar, maka A* pasti akan mendapatkan solusi (jika memang ada solusinya) yang dicari.
Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A* lebih baik dari pada algoritma lainnya.
Namun heuristik masih merupakan estimasi / perkiraan biasa saja Sama sekali tidak ada rumus khususnya. Artinya, setiap kasus memiliki fungsi heuristik yang berbedabeda.
Algoritma A* ini bisa dikatakan mirip dengan algoritma Dijkstra, namun pada algoritma Dijkstra, nilai fungsi heuristiknya selalu 0 (nol) sehingga tidak ada fungsi yang mempermudah pencarian solusinya.
Algoritma A* Metode ini berdasarkan formula: f(n) = g(n) + h(n)Keterangan :h(n) = biaya estimasi dari node n ke tujuan.g(n) = biaya path / perjalananf(n) = solusi biaya estimasi termurah node
n untuk mencapai tujuan.(Russell, Stuart J and Norvig, Peter, 2003).
Langkah Algoritma A*1. Masukan node awal ke openlist2. Loop Langkah – langkah di bawah ini :
a. Cari node (n) dengan nilai f(n) yang paling rendah dalam open list. Node ini sekarang menjadi current node. b. Keluarkan current node dari openlist dan masukan ke close list
Langkah Algoritma A* c. Untuk setiap tetangga dari current node lakukan
berikut : • Jika tidak dapat dilalui atau sudah ada dalam close list, abaikan. • Jika belum ada di open list . Buat current node parent dari node tetangga ini. Simpan nilai f,g dan h dari node ini. • Jika sudah ada di open list, cek bila node tetangga ini lebih baik, menggunakan nilai g sebagai ukuran. Jika lebih baik ganti parent dari node ini di openlist menjadi current node, lalu kalkulasi ulang nilai g dan f dari node ini.
Langkah Algoritma A* d. Hentikan loop jika :
• Node tujuan telah ditambahkan ke openlist, yang berate rute telah ditemukan. • Belum menemukan node goal sementara open list kosong atau berarti tidak ada rute.3. Simpan rute. Secara ‘backward’, urut mulai darinode goal ke parent-nya terus sampai mencapai node awal sambil menyimpan node ke dalam sebuah array.
Berikut adalah langkah langkah dalam metode A* :
Open vertex utama (Opened vertex : A5) Kunjungi vertex yang di open dengan nilai terkecil (A5) Open vertex dibawahnya (B4, C4, D6 => Opened vertex
menjadi : B4, C4, D6) Kemudian close vertex yang telah dikunjungi (Closed vertex:
A5, Opened vertex: B4, C4, D6 ) Urutkan vertex sesuai value, jika value sama maka urutkan
vertex berdasarkan labelnya (Opened vertex : B4, C4, D6) Kunjungi vertex dengan value dan label yang terkecil (Vertex
B4) –> Seperti langkah 2 Open vertex di bawahnya (E5, F5 => Opened vertex
menjadi :C4 , D6, E5, F5) –> seperti langkah 3 dst sampai hasilnya ketemu
Contoh
S
A
B
CD
E
G
FK
HL
MJ
10
10
102
53035
1520 4
0
52
25
40
50
5 40
90
30
40
80
25
n S A B C D E F G H J K L Mh’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70
Langkah 1
S
A
B
CD
E
10
10
253035
n S A B C D Eh’(n) 80 80 60 70 85 74
g(n) 0 10 25 30 35 10
f(n) 80 90 85 100 120 84
Langkah 2n A B C D Jh’(n) 80 60 70 85 100
g(n) 10 25 30 35 30
f(n) 90 85 100 120 130
S
A
B
CD
E
J
10
10
253035
1520
Langkah 3
n A C D J F Kh’(n) 80 70 85 100 70 30
g(n) 10 30 35 30 30 75
f(n) 90 100 120 130 100 105
S
A
B
CD
E
FK
J
10
10
253035
1520
50
510
Langkah 4
n C D J F K Gh’(n) 70 85 100 70 30 0
g(n) 30 25 30 25 75 100
f(n) 100 110 130 95 105 100
S
A
B
CD
E
FK
J
10
10
253035
1520
50
510
90
G
Langkah 5
n C D J K Gh’(n) 70 85 100 30 0
g(n) 30 25 30 65 100
f(n) 100 110 130 95 100
S
A
B
CD
E
FK
J
10
10
253035
1520
50
510
90
G
40
Langkah 6
n C D J Gh’(n) 70 85 100 0
g(n) 30 25 30 95
f(n) 100 110 130 95
S
A
B
CD
E
FK
J
10
10
253035
1520
50
510
90
G
40
30
Solusi
S
A
B
CD
E
FK
J
10
10
253035
1520
50
510
90
G
40
30
S - A - B - F - K - GDengan Total Jarak = 95
A* search example
A* search example
A* search example
A* search example
A* search example
A* search example
Properties of A* Complete? Yes (unless there are
infinitely many nodes with f ≤ f(G) ) Time? Exponential Space? Keeps all nodes in memory Optimal? Yes
Kesimpulan Algoritma A* lebih baik dalam
melakukan pencarian heuristic daripada Greedy Best First Search karena dapat mengasilkan solusi yang optimal
top related