Anda di halaman 1dari 30

Pertemuan 4

Kecerdasan Buatan
Penyelesaian Masalah
Teknik Pencarian
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.
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.
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).
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.
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.
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.
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)
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
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.
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).
Penelusuran Depth First Search untuk
Water Jug Problem.
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).
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.
Breadth-First Search (BFS)
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.
Pencarian Heuristic
• Ada 4 metode pencarian heuristic:
▫ Pembangkit dan pengujian (generate & test)
▫ Pendakian bukit (hill climbing)
▫ Pencarian terbaik pertama (best first search)
▫ Simualated annealing
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.
Algoritma Generate-and-Test
1. Bangkitkan suatu kemungkinan solusi
2. 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.
Kelemahan Generate-and-Test
• Perlu membangkitkan semua kemungkinan
sebelum melakukan pengujian.
• Membutuhkan waktu yang lama dalam
pencariannya.
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
Hill Climbing
• Simple HC
• Steepest-Ascent HC
Algoritma Simple Hill Climbing
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. 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.
Pencarian jalur menggunakan Simple Hill
Climbing
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.
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).
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)
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.
Algoritma Best First Search
1. Tempatkan node awal A pada antrian OPEN
2. Kerjakan langkah-langkah berikut hingga tujuan
atau antrian OPEN sudah kosong:
1. Ambil node terbaik dari OPEN
2. Bangkitkan semua successornya
3. 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.
• Thank’s u

Anda mungkin juga menyukai