Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDoddy Darmadi Telah diubah "7 tahun yang lalu
1
Pencarian Heuristik (Heuristic Search)
2
A heuristic is a rule of thumb that may help
solve a given problem. Heuristics take problem knowledge into consideration to help guide the search within the domain.
3
1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 8-puzzle Keadaan Awal Tujuan
4
8-puzzle Langkah Awal ??? 4 operator yang dapat digunakan :
Ubin kosong digeser ke kiri Ubin kosong digeser ke kanan Ubin kosong digeser ke bawah Ubin kosong digeser ke atas 8-puzzle Langkah Awal ???
5
8-puzzle Informasi tambahan : Untuk jumlah ubin yang menempati
posisi yang benar : jumlah yang lebih tinggi lebih baik posisi yang salah : jumlah yang lebih kecil lebih baik Menghitung total gerakan yang diperlukan untuk mencapai tujuan : jumlah yang 8-puzzle
6
Pencarian Heuristik : Generate and Test Hill Climbing Best First Search Simulated Annealing
7
8 A B TSP 3 4 7 5 D C 6
8
Generate & Test Kombinasi DFS dan Backtracking Algoritma :
Bangkitkan suatu kemungkinan solusi 2. Uji untuk melihat apakah node tersebut benar-benar merupakan Jika solusi ditemukan, keluar. Jika tidak, ulangi langkah pertama Generate & Test
9
Hill Climbing Mirip dengan Generate & Test, hanya saja
proses pengujian dilakukan dengan fungsi heuristik Simple Hill Climbing Steepest Ascent Hill Climbing Hill Climbing
10
Simple Hill Climbing Algoritma : Mulai dari keadaan awal, lakukan
pengujian : jika merupakan tujuan, maka berhenti; jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal Simple Hill Climbing
11
Simple Hill Climbing Algoritma : Kerjakan langkah-langkah berikut
sampai solusi ditemukan, atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru Simple Hill Climbing
12
Simple Hill Climbing Algoritma : Evaluasi keadaan baru tersebut :
Jika keadaan baru merupakan tujuan, keluar Jika bukan tujuan, namun nilainya lebih baik dari keadaan sekarang, maka keadaan baru dijadikan keadaan sekarang Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi Simple Hill Climbing
13
Simple Hill Climbing TSP dengan Simple Hill Climbing
Operator yang akan digunakan : menukar urutan posisi 2 kota dalam suatu lintasan Ada 4 kota, sehingga kombinasi lintasan yang diperoleh sebanyak : Simple Hill Climbing
14
Simple Hill Climbing TSP dengan Simple Hill Climbing
Keenam kombinasi yang dijadikan operator : Tukar1,2 Tukar2,3 Tukar3,4 Tukar4,1 Tukar1,3 Tukar2,4 Simple Hill Climbing
15
Steepest Ascent Hill Climbing
Gerakan pencarian selanjutnya ditentukan berdasarkan nilai heuristik terbaik Urutan penggunaan operator tidak Menentukan penemuan solusi Steepest Ascent Hill Climbing
16
Steepest Ascent Hill Climbing
Algoritma : Mulai dari keadaan awal, lakukan pengujian : jika merupakan tujuan, maka berhenti; jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal Steepest Ascent Hill Climbing
17
Steepest Ascent Hill Climbing
Algoritma : Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan pada keadaan sekarang Tentukan SUCC sebagai nilai heuristik terbaik dari successor- successor Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang : Gunakan operator tersebut dan bentuk keadaan baru Steepest Ascent Hill Climbing
18
Steepest Ascent Hill Climbing
Algoritma : Evaluasi keadaan baru tersebut. Jika merupakan tujuan, keluar. Jika bukan, bandingkan nilai heuristiknya dengan SUCC. Namun jika tidak lebih baik, nilai SUCC tidak berubah Steepest Ascent Hill Climbing
19
Steepest Ascent Hill Climbing
Algoritma : Jika SUCC lebih baik daripada nilai heuristik keadaan sekarang, ubah node SUCC menjadi keadaan sekarang Steepest Ascent Hill Climbing
20
Best First Search Kombinasi dari DFS dan BFS
Pencarian diperbolehkan mengunjungi node pada level yang lebih rendah, jika node yang lebih tinggi memiliki nilai heuristik yang lebih buruk OR Graph Algoritma A* Best First Search
21
OR Graph Diperlukan 2 antrian yang berisi node-node, yaitu :
OPEN, berisi node-node yang sudah dibangkitkan, sudah memiliki fungsi heuristik namun belum diuji CLOSED, berisi node-node yang sudah diuji OR Graph
22
OR Graph Diperlukan fungsi heuristik yang akan
mengestimasi seberapa baik dibangkitkannya setiap node : g(n) : biaya yang dikeluarkan dari keadaan awal sampai ke node n h’(n) : estimasi tambahan biaya yang harus dikeluarkan dari node n sampai mendapatkan tujuan f‘(n) : kombinasi dari g(n) dan h’(n) OR Graph
23
OR Graph Algoritma : Tempatkan node awal A pada antrian OPEN
Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN sudah kosong : Ambil node terbaik dari OPEN Bangkitkan semua successornya OR Graph
24
OR Graph Algoritma : Untuk tiap-tiap successor kerjakan :
Jika node tersebut belum pernah dibangkitkan sebelumnya, evaluasi node tersebut dan masukkan ke OPEN Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah parent jika lintasan baru lebih menjanjikan. Hapus node tersebut dari antrian OPEN OR Graph
25
Algoritma A* Perbaikan dari metode best –first search
dengan memodifikasi fungsi heuristiknya. A* akan meminimumkan total biaya lintasan Algoritma A*
26
Algoritma A* Algoritma A : Set: OPEN={S} dan CLOSED={} dengan
S adalah node yang dipilih sebagai keadaan awal 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 Algoritma A*
27
Algoritma A* Algoritma A : d. Kerjakan untuk setiap anak n, yaitu n’ :
Jika n’ belum ada di OPEN atau CLOSED, maka : Masukkan n’ ke OPEN. kemudian set backpointer dari n’ ke n Hitung : h(n’) g(n’) = g(n) + c(n,n’); c(n,n’) adalah biaya dari n ke n’ c. f(n’) = g(n’) + h(n’) Algoritma A*
28
Algoritma A* Algoritma A : Jika n’ telah ada di OPEN atau CLOSED
dan jika g(n’) lebih kecil (untuk versi n’ yang baru), maka : Buang versi lama n’ Ambil n’ di OPEN, dan set backpointer dari n’ ke n Algoritma A*
29
Algoritma A* Algoritma A* merupakan pengembangan dari
algoritma A, dengan batasan h(n) ≤ h*(n) h(n) = biaya sebenarnya dari biaya minimal lintasan dari n ke sembarang tujuan g(n) = biaya sebenarnya dari biaya minimal lintasan dari S ke n f(n) = h(n) + g(n); biaya sebenarnya dari biaya minimum solusi lintasan dari S ke sembarang tujuan yang melalui n Algoritma A*
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.