Anda di halaman 1dari 46

Penyelesaian Masalah

dengan Pencarian
MAWAR HARDIYANTI, S.KOM
Materi
Pendahuluan
Definisi Pencarian
Pencarian Berbasis Tree (Pohon)
Pencarian Graph
Klasifikasi Metode Pencarian
Metode Pencarian Uninformed
Kinerja Pencarian Uninformed
Pendahuluan
Aspek penting dari kecerdasan adalah penyelesaian masalah berbasis tujuan (goal based
problem solving)
Banyak masalah dapat dirumuskan sebagai pencarian sederetan aksi yang mengarah ke tujuan
Komponen pencarian:
 Himpunan Status
 Satu atau lebih Operator
 Status mulai/awal
 Ujian untuk memeriksa status tujuan
Masalah yang baik
Dapat dideskripsikan dengan:
 initial state (status awal),
 operator/fungsi successor, fungsi yang dapat memindahan status x ke suatu status baru s(x). f(x) -> s(x)
 state space (ruang status), semua status yang dapat dicapai dari initial state setelah diberlakukan fungsi
f(x)
 path (jalur), urutan melalui ruang status
 path cost (biaya jalur), jumlah biaya dari setiap aksi sepanjang jalur
 goal test (uji tujuan), sudahkah berada di tujuan?
Definisi Pencarian
Pemeriksaan sistematis dari status-status untuk menemukan suatu jalur dari status awal ke
status tujuan.
Search space (ruang pencarian) terdiri dari himpunan status yang mungkin, dan operator yang
mendefinisikan sambungannya.
Solusi: Jalur dari status awal ke status yang memenuhi uji tujuan.
Ada 3 kelas teknik/metode:
 Menemukan suatu jalur awal ---> tujuan
 Menemukan jalur terbaik
 Buntu, tidak mendapatkan tujuan
Contoh 8 Puzzle
Status: lokasi ubin kosong dan lokasi 8 ubin bernomor
Operator (successor): ubin kosong bergerak ke kiri, kanan, atas dan bawah
Tujuan: cocokkan status yang diperoleh dengan status tujuan (goal)
Biaya Jalur: setiap langkah biayanya 1; biaya total sesuai panjang jalur.
Contoh: N-Ratu
Mengatur N Ratu pada papan catur N × N sehingga ratu-ratu tersebut tidak saling memakan

• Status: 0 s.d N Ratu yang diatur


pada papan catur
• Operator (successor): tempatkan
sebuah Ratu pada suatu kotak
kosong
• Goal (Tujuan): cocokkan status
dengan N Ratu pada papan catur
dan tidak saling makan
• Biaya jalur: 0.
Contoh: 3 Cewek dan 3 Kanibal
3 cewek dan 3 kanibal ada di sisi kiri sungai.
Semuanya harus menyeberang ke sisi kanan sungai, menggunakan boat yang hanya mampu
dinaiki 2 orang.
Jumlah kanibal tidak boleh melebihi jumlah cewek, di sisi sungai, kapanpun.
Bagaimana agar semuanya dapat menyeberang?
Status:
Jumlah cewek di sisi kiri
Jumlah kanibal di sisi kiri
Di sisi mana boat berada
Pencarian Berbasis Pohon
Himpunan semua jalur dalam ruang status dapat digambarkan sebagai graf node-node yang
terhubung.
Jejak jelajah pencarian dapat membentuk tree (pohon)
Istilah penting:
Root node (akar): mewakili node awal pencarian;
Leaf node (daun): node berhenti, tanpa anak;
Ancestor/descendant: node A adalah ancestor B jika A adalah induk B atau A adalah nenek dari
induknya B. Jika A adalah ancestor B, maka B dikatakan descendant (keturunan) dari A;
Branching factor: jumlah anak maksimum dari suatu node daun dalam pohon pencarian;
Path (jalur): jalur dalam pohon pencarian yang mewakili jalur lengkap jika itu bermula dengan node
awal dan berakhir dengan node tujuan. Jika tidak, disebut jalur partial.
Pencarian Berbasis Pohon
Suatu node dapat ditampilkan oleh struktur data berikut:
 Suatu deskripsi status;
 Suatu pointer ke induk dari node;
 Kedalaman dari node;
Operator yang membangkitkan node ini;
 Biaya jalur (jumlah biaya operator) diperoleh dari status awal (mulai).

Kerugian: dapat secara berulang mengunjungi node yang sama.


Solusi: simpan semua node yang telah dikunjungi tetapi perlu tambahan memory
Contoh
Pencarian berbasis Graph
Ruang status diwakili oleh graf G(V,E), dimana V adalah himpunan node dan E adalah himpunan
vertex dari satu node ke node lain.
Informasi pada tiap node:
 Suatu deskripsi status;
 Induk dari node;
 Operator yang membangkitkan node tersebut dari induknya;
 Informasi lain.
Contoh : Peta Yogyakarta
Penyesuaian bagi Graph
Status awal: Node yang ditunjuk sebagai node awal.
Ruang status: Awalnya, node awal S, ditulis V={S}. Kemudian S diexpand dan node yang
dibangkitkannya ditambahkan ke V dan E. Proses ini berlanjut sampai tujuan ditemukan;
Jalur : setiap node mewakili solusi parsial dari node awal untuk node yang diberikan. Dari node
ini ada banyak jalur yang mungkin yang mempunyai jalur parsial ini sebagai prefix-nya;
Biaya jalur: jumlah biaya vertex pada jalur solusi;
Uji tujuan: Uji diterapkan terhadap suatu status untuk menentukan jika node terkait adalah
tujuan & memenuhi semua kondisi tujuan;
Solusi: sederetan operator yang dikaitkan dengan suatu jalur dalam ruang status dari node awal
sampai node tujuan
Algoritma Pencarian Dasar
Pencarian_Umum(masalah, strategi)
Gunakan status awal dari masalah untuk mengawali pohon pencarian
Loop
If tidak ada node yang akan diexpand
Then return GAGAL;
Berdasarkan pada strategi, pilih node untuk perluasan;
terapkan uji tujuan;
If node adalah status tujuan then return SOLUSI
Else expand node tersebut dan tambahkan node-node yang dihasilkan dan vertex ke pohon pencarian.

End;
Klasifikasi Metode Pencarian
2 kategori utama:
◦ uninformed (blind) search;
◦ informed (heuristic) search.
Contoh Blind Search:
◦ breadth-first;
◦ depth-first;
◦ iterative deepening depth-first;
◦ bidirectional;
◦ branch and bound (uniform cost search).
Contoh Heuristc Search:
◦ hill climbing;
◦ beam search – greedy;
◦ best first search
◦ heuristics.
BFS (Bread First Search)
Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1
Mulai dari akar terus ke level 1 dari kiri ke kanan
Kemudian ke level selanjutnya hingga solusi ditemukan
Keuntungan
◦ Tidak akan menemui jalan buntu
◦ Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemuakan pasti yang
paling baik
◦ Jika ada satu solusi maka BFS akan menemukannya

Kelemahan
◦ Membutuhkan memori yang cukup banyak
◦ Membutuhkan waktu yang cukup lama
Depth First Search
Proses pencarian dilakukan pada semua anaknnya sebelum dilakukan pencarian ke node-node
yang selevel
Keuntungan
◦ Memori yang relatif kecil
◦ Secara kebetulan , akan menemukan solusi tanpa harus menguji lebih banyak lagi

Kekurangan
◦ Memungkinkan tidak ditemukannya tujuan yang diharapkan
◦ Hanya akan mendapatkan 1 solusi pada setiap pencarian
Contoh: 3 Cewek dan 3 Kanibal
3 cewek dan 3 kanibal ada di sisi kiri sungai.
Semuanya harus menyeberang ke sisi kanan sungai, menggunakan boat yang hanya mampu
dinaiki 2 orang.
Jumlah kanibal tidak boleh melebihi jumlah cewek, di sisi sungai, kapanpun.
Bagaimana agar semuanya dapat menyeberang?
Status:
Jumlah cewek di sisi kiri
Jumlah kanibal di sisi kiri
Di sisi mana boat berada
• Status dapat berbentuk: (Kiri(#C, #K), Boat, Kanan(#C, #K)
• Dapat disederhanakan menjadi: (#C, #K, Kr/Kn)
• Ada 5 kemungkinan aksi dari suatu status:
◦ – Satu cewek bergerak ke sisi kanan;
◦ – Dua cewek bergerak ke sisi kanan;
◦ – Satu kanibal bergerak ke sisi kanan;
◦ – Dua kanibal bergerak ke sisi kanan;
◦ – Satu kanibal dan satu cewek bergerak ke sisi kanan.
Keuntungan
◦ Tidak akan menemui jalan buntu
◦ Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemuakan pasti yang
paling baik
◦ Jika ada satu solusi maka BFS akan menemukannya

Kelemahan
◦ Membutuhkan memori yang cukup banyak
◦ Membutuhkan waktu yang cukup lama
Ruang Status
Solusi
Generate and test
(pembangkitan dan pengujian)
Metode yg paling sederhana dalam pencarian heuristik
Metode yang menghasilkan solusi dan harus dibangkitkan secara lengkap sebelum dilakukan
test.
Implementasi Jalur terpendek
Dari permasalahn tersebut diketahui bahwa
Keadaan awal = M
Goal = T
Solusi yang dicari adalah sebuah jalur yang diawali kota M dan diakhiri kota T.
LINTASAN dari M ke T
◦ M-A-B-C-E-T : 20 (terpendek)
◦ M-A-B-C-E-H-T :21
◦ M-D-C-E-T : 22
◦ M-D-C-E-H-T : 21

Karena tidak ada lagi iterasi dihentikan.


Agar sales menghemat biaya transport maka jalur yg dilewati adalah jalur M-D-C-E-T dengan jarak 20
Pendakian bukit
(Hill climbing)
Langkah :
1. mulai dari keadaan awal, lakukan pengujian. Jika merupakan tujuan maka berhenti, dan jika
tidak lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator
baru yang akan diaplikasikan pada keadaan sekarang.
3. Cari operator yang belum pernah digunakan , gunakan operator ini untuk mendapatkan
keadaan yang baru.
Hill climbing ada 2 :
1. Simple Hill Climbing
pencarian awal dimulai dilihat dari anak kiri. Apabila nilai heuristik anak kiri lebih baik maka dibuka untuk
pencarian selanjutnya. Jika tdk, cari dari kiri dst.

2. Steepest-Ascent Hill Climbing


tidak harus melihat anak kiri pertama kali, tetapi dengan mencari semua nilai heuristik yang lebih baik
pada node-node se level.
4. Evaluasi keadaan baru tersebut
a. Jika keadaan baru merupakan tujuan, keluar
b. Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru
tersebut menjadi keadaan sekarang.
c. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
3 masalah yg mungkin :
1. algoritma akan berhenti kalau mencapai nilai optimum lokal
2. urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi
3. Tidak diizinkan untuk melihat satupun langkah sebelumnya.
Implementasi pada puzzle - 8
Keadaan awal Goal
Ruang keadaan

1,1 1,2 1,3

2,1 2,2 2,3

3,1 3,2 3,3


Misal :
x = baris [1,2,3]
y = kolom = [1,2,3]
Jadi dalam hal ini ruang keadaan = semua kemungkinan posisi kotak pada puzzle-8
Ex : posisi kotak ke 7 pada keadaan awal adalah 3,1
Aturan :
Posisi kotak kosong (x,y)
x = baris kotak kosong
y = kolom kotak kosong
1. Gerakkan kotak kosong ke atas : if x>1 then (x-1,y)
2. Gerakkan kotak kosong ke bawah : if x<3 then (x+1,y)
3. Gerakkan kotak kosong ke kanan : if x<3 then (x,y+1)
4. Gerakkan kotak kosong ke kiri : if y>1 then (x, y-1)
Implementasi TSP
(Traveling Salesman Problem)
Seorang salesman mengunjungi 4 kota , yaitu A,B, C dan D
Jarak antara tiap-tiap kota sudah diketahui. Selesman tersebut ingin mencari rute terpendek di
mana setiap kota hanya boleh dikunjungi tepat 1 kali dan ia boleh memilih keadaan awalnya di
suatu kota dan keadaan akhirnya di kota lain.
Selesaikan permasalahan di atsan dg menggunakan metode :
Generate and test
Simple Hill climbing
Steepest hill climbing
Operator yang digunakan adlah operator yang bisa menghasilkan kombinasi lintasan kota yang
berbeda-beda, yaitu dengan cara menukar posisi masing-masing kota. Untuk mempermudah
penukaran posisi ,cukup menukar posisi 2 kota dapat yang dapat dihitung dengan rumus.
𝑛!
2! (𝑛 − 2)
Kombinasi operator, yaitu :
1. (1,2) : menukar posisi kota kesatu dg kota kedua
2. (1,3) : menukar posisi kota kesatu dg kota ketiga
3. (1,4) : menukar posisi kota kesatu dg kota keempat
4. (2,3) : menukar posisi kota kedua dg kota ketiga
5. (2,4) : menukar posisi kota kedua dg kota keempat
6. (3,4) : menukar posisi kota ketiga dg kota keempat
Latihan
Diketahui suatu rute perjalanan yang harus dialui oleh seorang sales dimana sales tersebut
harus melalui setiap kota dan kembali lagi ke kota asal. Jumlah kota yang harus dilalui adalah 5
kota dengann masing-masing jarak AB=100, AC=125, AD=100, AE=75, BC=50, BD= 125, BE=125,
CD=100, CE=125, DE= 50
Tujuan masalah diatas adalah mencari jarak (lintasan) terpendek bagi sales untuk mengunjungi
setiap kota. Tentukan lintasan terpendek dari permasalahan di atas jika diamsumsikan bahwa
sales tersebut memulai dari kota A dengan menggunakan metode Generate an test, simple hill
climbing , dan steepest hill climbing bagi permasalahan diatas.

Anda mungkin juga menyukai