Penyelesaian Masalah Teknik Pencarian
description
Transcript of Penyelesaian Masalah Teknik Pencarian
![Page 1: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/1.jpg)
Pertemuan 4Kecerdasan BuatanPenyelesaian Masalah Teknik Pencarian
![Page 2: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/2.jpg)
2
Pendahuluan• Hubungan searching dengan AI ?
▫Sistem AI, khususnya problem-solving agent (salah satu jenis goal-based agent), diharapkan dapat memecahkan suatu masalah secara autonomous. Salah satu cara untuk melakukannya, adalah dng. mencari langkah-langkah yang dapat mengantarkannya ke solusi → menggunakan algoritma search.
• Pencarian solusi hanya bisa dilakukan setelah agent mengetahui apa yang dihadapinya, apa yang dicarinya → perlu problem definition.
• Secara kasar, simple problem-solving agent :Percept → Problem definition → Search for
solution → Action.
![Page 3: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/3.jpg)
3
Problem Definition
• Ada berbagai macam masalah (problem types).▫ Problem types :
Single-state problems. Satu aksi mengantarkan agent ke satu state lain. Dapat menggunakan uninformed & informed search.
Multiple-state problems. Satu aksi mengantarkan agent ke beberapa
kemungkinan state. Dapat menggunakan uninformed & informed search.
Contingency problems. Hasil dari suatu aksi sangat sukar untuk diprediksi,
agent mengetahui efek apa yg. mungkin ditimbulkan oleh aksi yg.dilakukannya.
Selama aksi dilakukan, sensing juga diperlukan. Umumnya menggunakan planning. Utk. kasus khusus
spt. pada game dng. 2 pemain dapat menggunakan metode-metode game playing.
![Page 4: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/4.jpg)
4
Problem Definition Exploration problems.
Agent sama sekali tidak mempunyai informasi mengenai efek dari aksi yg. dilakukannya.
Agent perlu bereksperiman & belajar. Dapat menggunakan metode learning yg. ada.
▫Problem definition & pencarian solusi yg. digunakan tergantung problem type-nya.
▫Saat ini yg. dibahas hanya single-state & multiple state problems.
• Dlm. mendefinisikan problem perlu menentukan : ▫State & aksi yg. dipilih (problem formulation) → perlu abstraksi, → sangat tergantung pada tujuan yg. akan dicapai
(goal formulation).
![Page 5: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/5.jpg)
5
Problem Definition• Problem definition (single-state problems) dapat
dinyatakan dalam :▫ Initial state :
Keadaan/state awal.▫ Operator :
Aksi yang mungkin dilakukan agent. Aksi tersebut-lah yg. mampu memindahkan agent dari satu state ke state lain yang masih berada dalam state space-nya (himpunan seluruh state yang dapat dicapai dari initial state melalui serangkaian aksi, merupakan gabungan antara initial state dng. state-state yg. dihasilkan oleh operator yg. ada).
▫ Goal test : Menentukan apakah goal space telah tercapai atau
belum. Solusi : path yg. menghubungkan intial state dng. goal
state.
![Page 6: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/6.jpg)
6
Problem Definition▫Path cost function (g):
Menentukan path mana (dlm. hal ini dapat dianggap juga rangkaian aksi) mana yg. lebih preferable.
• Problem definition utk. multiple-state problems hampir sama dng. problem definition utk. single-state problems, hanya saja state yg. ada berubah menjadi set of state. Beberapa perubahan:▫ Initial state menjadi : Initial state set.▫State space menjadi : State set space.▫Path menghubungkan set of states satu ke set of
states lain.▫Solusi : path yg. menghubungkan initial state
set ke set of goal states.
![Page 7: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/7.jpg)
7
Searching• Secara garis besar, searching dibedakan menjadi
:▫ Uninformed search (blind search).
Tidak ada informasi mengenai jarak/cost dari current state ke goal state.
▫ Informed search. Ada informasi mengenai jarak/cost dari current state
ke goal state.• Hal yg. perlu diperhatikan dlm. searching :
▫ Completeness: jk. solusi ada, apakah pasti akan ditemukan ?
▫ Optimallity: jk. ada > 1 solusi, apakah selalu solusi terbaik yg. diperoleh ?
▫ Time Complexity: waktu yg. dibutuhkan utk. mendpt. solusi.
▫ Space complexity: memory yg. dibutuhkan utk. melakukan searching.
![Page 8: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/8.jpg)
8
Searching•Dua teknik pencarian & pelacakan:
▫Pencarian buta (blind search) Pencarian melebar pertama (breadth-first
search) Pencarian mendalam pertama (depth-first
search)▫Pencarian terbimbing (heuristic search)
Pendakian bukit (hill climbing) Pencarian terbaik pertama (best first search)
![Page 9: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/9.jpg)
Depth-First Search (DFS)
Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori.
Struktur data: stack
![Page 10: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/10.jpg)
Kelebihan DFS adalah:
•Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
•Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.
![Page 11: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/11.jpg)
Kelemahan DFS adalah:
•Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
•Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
![Page 12: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/12.jpg)
Penelusuran Depth First Search untuk Water Jug Problem.
![Page 13: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/13.jpg)
Breadth-First Search (BFS)
•Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan.
•Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi.
•Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal).
![Page 14: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/14.jpg)
Breadth-First Search (BFS)
•BFS harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan.
•Struktur data: queue•Gambar berikut mengilustrasikan
pembangkitan pohon BFS untuk masalah Water Jug.
![Page 15: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/15.jpg)
Breadth-First Search (BFS)
![Page 16: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/16.jpg)
Pencarian Heuristic• Pencarian buta tidak selalu dapat diterapkan
dengan baik• Metode heuristic search diharapkan bisa
menyelesaikan masalah yang lebih besar.• Metode heuristic searcg menggunakan suatu
fungsi yang menghitung biaya perkiraan dari suatu simpul tertentu menuju ke simpul tujuan.
![Page 17: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/17.jpg)
Pencarian Heuristic•Ada 4 metode pencarian heuristic:
▫Pembangkit dan pengujian (generate & test)
▫Pendakian bukit (hill climbing)▫Pencarian terbaik pertama (best first
search)▫Simualated annealing
![Page 18: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/18.jpg)
Generate-and-Test
•Metode Generate-and-Test adalah metode yang paling sederhana dalam pencarian heuristic.
• Jika pembangkitan possible solution dikerjakan secara sistematis, maka prosedur akan mencari solusinya, jika ada. Tetapi jika ruang masalahnya sangat luas, mungkin memerlukan waktu yang sangat lama.
•Algoritma Generate-and-Test adalah prosedur DFS karena solusi harus dibangkitkan secara lengkap sebelum dilakukan test.
![Page 19: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/19.jpg)
Algoritma Generate-and-Test
1. Bangkitkan suatu kemungkinan solusi2. Uji untuk melihat apakah node tersebut benar-
benar merupakan solusinya dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.
3. Jika sokusi ditemukan, keluar. Jika tidak, ulangi langkah pertama.
![Page 20: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/20.jpg)
Kelemahan Generate-and-Test•Perlu membangkitkan semua
kemungkinan sebelum melakukan pengujian.
•Membutuhkan waktu yang lama dalam pencariannya.
![Page 21: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/21.jpg)
Hill Climbing•Hill Climbing berbeda Generate-and-Test,
yaitu pada feedback dari prosedur test untuk membantu pembangkit menentukan yang langsung dipindahkan dalam ruang pencarian.
•Dalam prosedur Generate & test , respon fungsi pengujian hanya ya atau tidak.
•Hill climbing, pengujian ditambahkan dengan aturan fungsi-fungsi yang menyediakan estimasi dari bagaimana mendekati state yang diberikan ke state tujuan atau prosedur pembangkit
![Page 22: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/22.jpg)
Hill Climbing
•Simple HC•Steepest-Ascent HC
![Page 23: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/23.jpg)
Algoritma Simple Hill Climbing1. Mulai dari keadaan awal, lakukan pengetesan, 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 sebagai keadaan awal.
3. Cari operator yang belum digunakan sebagai keadaan awal.
4. Evaluasi keadaan awal tersebut.5. Jika keadaan merupakan tujuan maka keluar.6. Jika bukan merupakan keadaan, namun nilainya lebih
baik daripada keadaan sekarang, makan jadikan keadaan baru tersebut menjadi keadaan sekarang.
7. Jika keadaan baru tidak lebih baik daripada keadaan sekarang maka lanjutkan iterasi.
![Page 24: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/24.jpg)
Pencarian jalur menggunakan Simple Hill Climbing
![Page 25: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/25.jpg)
Algoritma Steepest-Ascent HC:1. Mulai dari keadaan awal, lakukan pengetesan, 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 sebagai keadaan awal.
3. Tentukan SUCC sebagai nilai heuristic terbaik dari successor or successor
4. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang.
5. Gunakan operator tersebut dan bentuk keadaan baru.6. Evaluasi keadaan baru tersebut.7. Jika SUCC lebih baik daripada nilai heuristic keadaan
sekarang, ubah node SUCC menjadi keadaan sekarang.
![Page 26: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/26.jpg)
Steepest-Ascent HC•Steepest Ascent HC sebenarnya sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri
•Pada gambar di atas, terjadi ambiguitas dimana fungsi heuristik node E dan node F adalah sama. Misalkan dipilih F dan ternyata menemukan solusi di level 8. Padahal terdapat solusi lain yang lebih optimal di level 2.
•Hal ini dikatakan bahwa Steepest-Ascent Hill Climbing terjebak pada solusi lokal (local minima).
![Page 27: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/27.jpg)
Best First Search• Metode ini merupakan kombinasi dari metode
depth-first search dan metode breadth-first search dengan mengambil kelebihan dari kedua metode tersebut.
▫ Penentuan node berikutnya adalah yang terbaik yang pernah dibangkitkan.
▫ Menggunakan informasi Biaya perkiraan Biaya sebenarnya.
▫ Terdapat dua jenis: Greedy Best First Search = biaya perkiraan
f(n)=h(n) A*=f(n)=g(n)+h(n)
![Page 28: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/28.jpg)
Best First Search• Keuntungan:
▫ Memperoleh kembali node pada level lebih rendah meskipun node pada level terendah tersebut memiliki nilai heuristic lebih rendah.
• Untuk mengimplementasikan metode ini menggunakan graph keadaan, dibutuhkan 2 antrian yang berisi node-node, yaitu:
▫ OPEN, merupakan node yang telah dibangkitkan namun belum diuji.
▫ CLOSED, merupakn node yang telah dibangkitakn dan telah diuji.
![Page 29: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/29.jpg)
Algoritma Best First Search1. Tempatkan node awal A pada antrian OPEN2. Kerjakan langkah-langkah berikut hingga
tujuan atau antrian OPEN sudah kosong:1. Ambil node terbaik dari OPEN2. Bangkitkan semua successornya3. Untuk tiap-tiap successor kerjakan:
1. Jika node tersebut belum pernah dibangkitan sebelumnya, evaluasi node tersebut dan masukkan ke dalam OPEN
2. Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah parent jika lintasan baru lebih menjanjikan. Hapus node tersebut dari antrian OPEN.
![Page 30: Penyelesaian Masalah Teknik Pencarian](https://reader035.fdocument.pub/reader035/viewer/2022081418/568159f2550346895dc73ae3/html5/thumbnails/30.jpg)
•Thank’s u