Anda di halaman 1dari 47

Metode Pencarian dan

Pelacakan 1
Pertemuan 4

Wahyu Supriyatin
Masalah dan Ruang Masalah
• Membangun sistem dengan mennyelesaikan masalah mengunakan
kecerdasan buatan :
1. Mendefinisikan masalah dengan tepat.
2. Menganalisis masalah dan mencari teknik penyelesaiannya.
3. Merepresentasikan pengetahuan untuk menyelesaikan masalah.
4. Memilih teknik penyelesaian masalah yang terbaik.
Masalah dan Ruang Masalah
• Cara mendefinisikan suatu masalah :
1. Mendefinisikan/membuat state space atau ruang masalah.
2. Menentukan keadaan awal (initial state).
3. Menentukan keadaan akhir (goal state).
4. Menentukan operator/aturan.
Contoh Masalah dan Ruang Masalah
• Contoh : “Masalah Petani, Kambing, Serigala dan Sayuran”
Seorang petani akan menyeberangkan seekor kambing, seekor serigala
dan sayuran dengan sebuah boat yang melalui sungai. Boat hanya bisa
memuat petani dan satu penumpang lain (kambing, serigala atau
sayuran). Jika ditinggalkan oleh petani tersebut, maka sayuran akan
dimakan oleh kambing dan kambing akan dimakan oleh serigala.
Bagaimana caranya agar petani, kambing, serigala dan sayuran dapat
selamat sampai di seberang sungai ?
Contoh Masalah dan Ruang Masalah
• Contoh : “Permainan Catur”
Yang harus ditentukan adalah :
1. Posisi awal pada papan catur, posisi awal setiap permainan catur selalu sama, yaitu
semua bidak diletakkan di atas papan catur dalam posisi, yaitu kubu putih dan
kubu hitam.
2. Aturan-aturan untuk menentukan gerakan secara legal, aturan sangat berguna
untuk menentukan suatu bidak bergerak dari suatu keadaan lain sesuai dengan
aturan yang ada.
3. Tujuan (Goal), tujuan yang diingin dicapai adalah kemenangan terhadap lawan
yang ditunjukan dengan posisi Raja yang tidak bisa bergerak lagi.
Cara Merepresentasikan Ruang Masalah
• Graph Keadaan
Cara Merepresentasikan Ruang Masalah
• Pohon Pelacakan
• Pohon AND/OR
Karakteristik Masalah/Problem
• Memilih motodepemecahan masalah yang tepat perlu dilakukan analisa masalah.
Karakteristik yang digunakan untuk menganalisa suatu masalah adalah :
1. Apakah masalah dapat dipilah dan dibagi menjadi sub masalah yang independent ?
2. Apakah ruang lingkup pembicaraan masalah dapat diperkirakan ?
3. Apakah solusi masalah yang baik telah dibandingkan dengan semua solusi yang
mungkin ?
4. Apakah basis pengetahuan yang digunakan untuk memecahkan maslaah bersifat
konsisten?
5. Apakah dibutuhkan informasi untuk memecahkan masalah yang dihadapi untuk
membatasi proses pencarian ?
Metode Pencarian dan Pelacakan
• Keberhasilan dari suatu sistem cerdas adalah kesuksesan dalam pencarian.
• Pencarian adalah suatu proses mencari solusi dari suatu permasalahan melalui
sekumpulan kemungkinan ruang keadaan (state space).
• Ruang keadaan merupakan suatu ruang yang berisi semua keadaan yang mungkin.
• Kriteria yang digunakan untuk mengukur performansi metode pencarian adalah :
1. Completeness : Apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada?
2. Time Complexity : Berapa lama waktu yang diperlukan?
3. Space Complexity : Berapa banyak memori yang diperlukan ?
4. Optimality : Apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat
beberapa solusi berbeda ?
Metode Pencarian dan Pelacakan
• Metode Pencarian Buta (Blind Search)
 Breadth First Search (Pencarian Melebar Pertama)
 Depth First Search (Pencarian Mendalam Pertama)

• Metode Pencarian Heuristik


 Generate And Test (Pembangkit dan Pengujian)
 Hill Climbing (Pendakian Bukit)
Metode Pencarian Buta
(Blind Search)
Metode Breadth First Search
(Pencarian Melebar Pertama)
• Metode breadth first search semua node pada level n akan dikunjungi
dahulu sebelum mengunjungi node pada level n+1.
• Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan.
Kemudia pindah ke level berikutnya dari kiri ke kanan sampai
ditemukan solusinya.
Gambaran Metode Breadth First Search
Algoritma Breadth First Search
Prosedur breadth_first_search Ambillah turunan diujung kanan open
sesuai urutan penemuan-nya;
Inisialisasi: open = [start]; closed [ ]
End.
While open = [ ] do
Begin
Hapuskan keadaan paling kiri dari keadaan open,
sebutlah keadaan itu dengan X;
If X merupakan tujuan then return (sukses);
Buatlah semua child dari X;
Ambillah X dan masukkan pada closed;
Eliminasilah setiap child X yang telah berada
pad aopen atau closed, yang akan
menyebabkan loop dalam search;
Algoritma Breadth First Search
• Traversal dimulai dari simpul v.
• Algoritma :
1. Kunjungi simpul v.
2. Kunjungi semua simpul yang bertetangga dengan simpul vterlebih dahulu.
3. Kunjungi simpul yang belum dikunjungi dan bertetangga dengan simpul
yang dikunjungi, demikian seterusnya.
• Jika graf berbentuk pohon berakar, semua simpul pada aras d dikunjungi
terlebih dahulu sebelum mengunjungi simpul pada aras d+1.
Keuntungan dan Kekurangan Metode
Breadth First Search
Keuntungan Kekurangan
• Tidak akan menemui jalan buntu. • Membutuhkan memori yang banyak
karena menyimpan semua node dalam
• Jika ada satu solusi maka breadth satu pohon.
first search akan menemukannya. • Membutuhkan waktu yang lama karena
menguji n level untuk mendapatkan
• Jika solusi lebih dari satu maka solusi pada level ke- (n+1).
solusi minimum yang ditemukan. • Ruang masalah yang besar sehingga
tidak cocok karena keterbatasan
kecepatan memori komputer.
Metode Depth First Search
(Pencarian Kedalam Pertama)
• Proses pencarian dilakukan padasemua anaknya sebelum dilakukan
pencarian ke node yang selevel.
• Pencarian dilakukan mulai dari node akar menuju ke level yang lebih
tinggi. Proses diulangi terus menerus hingga ditemukan solusinya.
Gambaran Metode Depth First Search
Algoritma Depth First Search
Prosedur depth_first_search Ambilah child X yang tersisa diujung kanan open
sesuai urutan penemuannya;
Inisialisasi: open = [Start]; closed = []
End
While open x [] do
Begin
Hapuskan keadaan berikutnya dari sebelah kiri open,
sebutlah itu denganX;
If 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;
Algoritma Depth First Search
• Traversal dimulai dari simoul v.
• Algoritma :
1. Kunjungi simpul v.
2. Kunjungi simpul w yang bertetangga dengan simpul v.
3. Ulangi DFS mulai dari simpul w.
4. Ketika mencapai simpul u, semua simpul yang bertetangga dengan simpul u telah
dikunjungi. Pencarian backtracking ke simpul terakhir yang dikunjungi.
5. Pencarian berakhir bila sudah tidak adalagi simpul yang belum dikunjungi yang
didapat dari simpul yang telah dikunjungi.
Keuntungan dan Kekurangan Metode
Depth First Search
Keuntungan Kekurangan
• Membutuhkan memori yang • Memungkinkan tidak
relative kecil, karena hanya node ditemukan tujuan yang
pada lintasan aktif yang disimpan. diharapkan.
• Metode depth first search akan • Hanya akan menemukan satu
menemukan solusi tanpa harus
solusi pada setiap pencarian.
menguji lebih banyak lagi dalam
ruang keadaan.
Contoh Beardth First Search dan Depth First
Search
• Traversal dari simpul 1 • Traversal dari simpul A
(Gambar a) (Gambar b)
Hasil
• Beardth First Search • Depth First Search
Gambar (a) : 1-2-3-4-5-6-7-8 Gambar (a) : 1-2-4-8-5-6-3-7
Gambar (b) : A-B-C-D-E-F-G-H-I Gambar (b) : A-B-E-H-I-F-C-G-C
Latihan Breadth First Search dan Depth
First Search
• Gunakan algoritma Breadth First
Search dan Depth First Search
untuk menentukan pohon
merentang (spanning tree) dari
Graf G, jika traversalnya di
simpul e.
Metode Pencarian Heuristik
Metode Pencarian Heuristik
• Heuristik adalah teknik yang digunakan untuk melakukan suatu
pencarian dengan mengorbankan kelengkapan (completeness)
• Heuristik digunakan untuk mencari masalah/problem dan menentukan
untuk mendapatkan solusi yang diinginkan.
Jenis Heuristic Searching
• Generate and Test
• Hill Climbing
• Best First Search
• Alpha Beta Prunning. Means End Analysis, Constraint Statisfaction,
Simulated Annealing
Generate and Test
• Metode pencarian yang merupakan penggabungan antara Depth First Search
dengan Pelacakan Backtracking (Bergerak ke belakang menuju ke keadaan awal).
• Algoritma Generate and Test:
1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau
lintasan tertentu dari keadaan awal).
2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan
cara membandingkan node terebut atau node akhir dari suatu lintasan yang dipilih
dengan kumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.
Contoh Generate and Test
Kasus Travelling Salesman
Problem (TSP)
Seorang salesman ingin mengunjungi n
kota. Jarak antara tiap-tiap kota
sudah diketahui. Kita ingin
mengetahui ruter terpendek dimana
setaip kota hanya boleh dikunjungi
tepat 1 kali. Misalkan ada 4 kota
dengan jarak antara tiap-tiap kota
seperti berikut ini :
Penyelesaian Metode
Generate and Test
Alur Pencarian Generate and Test
Pencarian Ke- Lintasan Panjang Lintasan Lintasan Terpilih Panjang Lintasan
Terpilih
1 ABCD 19 ABCD 19

2 ABDC 18 ABDC 18

3 ACBD 12 ACBD 12

4 ACDB 13 ACBD 12

5 ADCB 18 ACBD 12

6 ADBC 16 ACBD 12

Dst ...
Hasil Metode Generate and Test
• Total Pencarian = 24 lintasan
Kelemahan Generate and Test :
• Lintasan yang terpilih = ACBD 1. Harus membangkitkan semua
• Panjang lintasan yang terpilih = 12 kemungkinan
pengujian.
sebelum dilakukan

2. Membutuhkan waktu yang cukup


lama dalam pencarian.
Hill Climbing
• Metode pencarian yang mirip dengan metode Generate and Test tetapi
menggunakan fungsi heurustic.
• Generate pada keadaan berikutnya tergantung pada feedback dari test yang
dilakukan. Fungsi heuristic yang dilakukan menunjukkan seberapa baik nilai yang
akan diambil terhadap keadaan yang mungkin.
• Tiga masalah dalam Simple Hill Climbing :
1. Algoritma akan berhenti kalau mencapai nilai optimum local
2. Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi
3. Tidak diijinkan untuk melihat satupun langkah sebelumnya
Algoritma Simple Hill Climbing
• Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak
ada operator baru yang akan diaplikasikan pada keadaan sekarang :
1. Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan
keadaan yang baru.
2. Evaluasi keadaan baru tersebut :
 Jika keadaan baru merupakan tujuan, keluar
 Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan
keadaan baru tersebut menjadi keadaan sekarang.
 Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi
Contoh Simple Hill Climbing
• Kasus TSP (Traveling Salesmen Problem)
Ruang keadaan berisi semua kemungkinan lintasan yang mungkin.
Operator digunakan untuk menukar posisi kota yang bersebelahan.
Apabila ada n kota dan ingin mencari kombinasi lintasan maka dengan
cara menukar posisi urutan 2 kota, n kombinasi 2.
Kombinasi yang didapat sebanyak 6 kombinasi atau dengan
menggunakan rumus :
Kombinasi Simple Hill Climbing
• Tukar 1,2 : Tukar kota ke-1 dengan kota ke-2
• Tukar 2,3 : Tukar kota ke-2 dengan kota ke-3
• Tukar 3,4 : Tukar kota ke-3 dengan kota ke-4
• Tukar 4,1 : Tukar kota ke-4 dengan kota ke-1
• Tukar 2,4 : Tukar kota ke-2 dengan kota ke-4
• Tukar 1,3 : Tukar kota ke-1 dengan kota ke-3
Penyelesaian
Metode
Simple Hill
Climbing
Penyelesaian
Metode Simple
Hill Climbing
Hasil Metode Simpel Hill Climbing
• Panjang lintasan yang dihasilkan dari fungsi heuristic = 12
• Tahapan heuristic 6 kombinasi = level 5
• Jalur lintasan yang dipilih dengan fungsi heuristik = DBCA
Contoh Simple Hill Climbing
• Kasus game Number Puzzle Slider
Penyelesaian
Metode
Simple Hill
Climbing
Metode Steepest Ascent Hill Climbing
• Metode Steepest Ascent Hill Climbing sama dengan Simple Hill
Climbing, hanya saja gerakan pencarian tidak dimulai dari posisi paling
kiri. Pencarian selanjutnya dicari berdasarkan nilai heuristik terbaik
(Random Solution).
• Urutan penggunaan operator tidak menentukan penemuan solusi.
Algoritma Steepest Hill Climbing
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.
3. Tentukan SUCC sebagai nilai heuristic terbaik dari successorsuccessor.
4. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang:
5. Gunakan operator tersebut dan bentuk keadaan baru.
6. 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.
7. Jika SUCC lebih baik daripada nilai heuristic keadaan sekarang, ubah node SUCC menjadi keadaan sekarang.
Kekurangan
Steepest Hill Climbing
Kekurangan metode Steepest – Ascent Hill Climbing adalah :
1. Local Optimum : keadaan semua tetangga lebih buruk atau sama
dengan keadaan dirinya
2. Plateou : keadaan semua tetangga sama dengan keadaan dirinya
3. Ridgez Local Optimum yang lebih disebabkan karena
ketidakmampuan untuk menggunakan 2 operator
Contoh Steepest Hill Climbing
Kasus Travelling Salesman
Problem (TSP)
Seorang salesman ingin mengunjungi n
kota. Jarak antara tiap-tiap kota
sudah diketahui. Kita ingin
mengetahui ruter terpendek dimana
setaip kota hanya boleh dikunjungi
tepat 1 kali. Misalkan ada 4 kota
dengan jarak antara tiap-tiap kota
seperti berikut ini :
Penyelesaian
Metode
Steepest Hill Steepest Hill Climbing

Climbing
Hasil Metode Steepest Hill Climbing
• Panjang lintasan yang dihasilkan dari fungsi heuristic = 12
• Tahapan heuristic 6 kombinasi = level 2
• Jalur lintasan yang dipilih dengan fungsi heuristik = ACBD

Anda mungkin juga menyukai