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