Anda di halaman 1dari 32

Kecerdasan Buatan

Metode Pencarian dan Pelacakan (Searching)

Metode Pencarian dan Pelacakan


Pencarian : 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

Metode Pencarian dan Pelacakan


Untuk mengukur perfomansi metode pencarian,

terdapat empat kriteria yang dapat digunakan


Completeness Time complexity Space complexity

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

Pencarian terbimbing (heuristic search) : adanya

informasi awal yang digunakan dalam proses pencarian


Pembangkit & pengujian (Generate and Test) Pendakian Bukit (Hill Climbing) Pencarian Terbaik Pertama (Best First Search)

Pencarian Buta (Blind Search)


Pencarian melebar pertama (Breadth First Search) Semua node pada level n akan dikunjungi terlebih

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

Pencarian Buta (Blind Search)


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;

Pencarian Buta (Blind Search)


Keuntungan Pencarian melebar pertama

(Breadth First Search)


Tidak akan menemui jalan buntu Menjamin ditemukannya solusi (jika solusinya

memang ada) dan solusi yang ditemukan pasti yang paling baik Jika ada satu solusi maka bread-first search akan menemukannya

Pencarian Buta (Blind Search)


Kelemahannya Pencarian melebar pertama

(Breadth First Search)


Membutuhkan memori yang cukup banyak Membutuhkan waktu yang cukup lama

Pencarian Buta (Blind Search)


Depth First Search Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri Proses pencarian dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel

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

Pencarian Buta (Blind Search)

Pencarian Buta (Blind Search)


Keuntungan Depth First Search
Memori yang relatif kecil Secara kebetulan, akan menemukan solusi tanpa

harus menguji lebih banyak lagi (waktu relatif cepat)

Pencarian Buta (Blind Search)


Kelemahan Depth First Search :

Memungkinkan tidak ditemukannya tujuan yang

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)

Contoh: Uniform-Cost Search

14

Uniform-Cost Search

15

Uniform-Cost Search

16

Uniform-Cost Search

17

Uniform-Cost Search

18

Uniform-Cost Search

19

Pencarian terbimbing (heuristic search)


Heuristik adalah sebuah teknik yang

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

Pencarian terbimbing (heuristic search)


Pembangkit & pengujian (Generate and Test) penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal

Pencarian terbimbing (heuristic search)


Algoritma Generate and Test :

Bangkitkan suatu kemungkinan solusi

(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

Pencarian terbimbing (heuristic search)


Contoh : Travelling Salesman Problem

(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

Alur pencarian dengan Generate and Test

Pencarian ke-

Lintasan

Panjang Lintasan

Lintasan Terpilih

Panjang Lintasan Terpilih

1 2 3 4 5 Dst

ABCD ABDC ACBD ACDB ADBC

19 18 12 13 16

ABCD ABDC ACBD ACBD ACBD

19 18 12 12 12

Pencarian terbimbing (heuristic search)


Rute terpendek dengan menggunakan Generate

and Test adalah ACBD atau DBCA yaitu 12

Pencarian terbimbing (heuristic search)


PENDAKIAN BUKIT (Hill Climbing)
hampir sama dengan metode pembangkitan dan

pengujian hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan

Pencarian terbimbing (heuristic search)


Algoritma Simple Hill Climbing

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

Pencarian terbimbing (heuristic search)


Pada simple hill climbing, ada 3 masalah yang

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

Pencarian terbimbing (heuristic search)


Contoh : TSP dengan Simple Hill Climbing

Disini ruang keadaan berisi semua kemungkinan

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

Operator yang akan digunakan adalah menukar urutan posisi 2 kota

dalam 1 lintasan. Bila ada n kota, dan ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka akan didapat sebanyak

Keenam kompbinasi ini akan dipakai semuanya sebagai

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

Lanjut Ke pertemuan 2.......

Anda mungkin juga menyukai