suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space) Ruang keadaan : merupakan suatu ruang yang berisi semua keadaan yang mungkin
Optimality
Teknik pencarian
Pencarian buta (blind search) (Uninformed,
non-optimal) : tidak ada informasi awal yang digunakan dalam proses pencarian
Pencarian melebar pertama (Breadth First Search) Pencarian mendalam pertama (Depth First Search)
Uninformed, optimal:
Uniform-Cost
dahulu sebelum mengunjungi node-node pada level n+1 Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan
Algoritma Pencarian melebar pertama (Breadth First Search) : Prosedur breadth_first_search Inisialisasi : open = [start]; closed [ ] While open = [ ] do Begin Hapuskan keadaan paling kiri dari keadaan open, sebutlah keadaan itu dengan X; Jika X merupakan tujuan then return (sukses); Buatlah semua child dari X; Ambillah X dan masukkan pada closed; Eliminasilah setiap child X yang telah berada pada open atau closed, yang akan menyebabkan loop dalam search; Ambillah turunan di ujung kanan open sesuai urutan penemuan-nya; End;
memang ada) dan solusi yang ditemukan pasti yang paling baik Jika ada satu solusi maka bread-first search akan menemukannya
Algoritma Depth First Search : sprosedur depth_first_search inisialisasi: open = [Start]; closed = [] while open x [] do begin hapuskan keadaan berikutnya dari sebelah kiri open, sebutlah keadaan itu dengan X; jika X merupakan tujuan then return(sukses); buatlah semua child yang dimungkinkan dari X; ambilah X dan masukkan pada closed; eliminasilah setiap child X yang telah berada pada open atau closed, yang akan menyebabkan loop dalam search; ambilah child X yang tersisa di ujung kanan open sesuai urutan penemuannya; end
diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) tidak complete karena tidak ada jaminan menemukan solusi Hanya mendapat 1 solusi pada setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik tidak optimal
Uninformed, optimal
Uniform-Cost
Biaya lintasan sampai node N adalah jumlah biaya
akumulatif mulai dari node awal sampai node N: g(N) = biaya akumulatif semua
langkah
Cari biaya minimal sampai ke tujuan (goal)
14
Uniform-Cost Search
15
Uniform-Cost Search
16
Uniform-Cost Search
17
Uniform-Cost Search
18
Uniform-Cost Search
19
mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness) Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan
(membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal). Uji untuk melihat apakah node tersebut benarbenar merupakan solusinya dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama
(TSP) Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana setaip kota hanya boleh dikunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti gambar di bawah ini
A 3 7 D
8 4
B
A B C D D C B D C D B C B D B C B C D
5 C 6
Pencarian ke-
Lintasan
Panjang Lintasan
Lintasan Terpilih
1 2 3 4 5 Dst
19 18 12 13 16
19 18 12 12 12
pengujian hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan
1. Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
a. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum 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
mungkin:
Algoritma akan berhenti kalau mencapai nilai
optimum local Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi Tidak diijinkan untuk melihat satupun langkah sebelumnya
llintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin n! mencari kombinasi lintasan dengan menukar 2!(n 2)! posisi urutan 2 kota, maka kita akan mendapatkan sebanyak : atau sebanyak 6 kombinasi (lihat gambar di bawah). Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi
dalam 1 lintasan. Bila ada n kota, dan ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka akan didapat sebanyak
operator, 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 Tukar 2,4 = menukar urutan posisi kota ke 2 dengan kota ke 4