Anda di halaman 1dari 52

Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

ILK3235 – Kecerdasan Buatan


HO 05 - Problem Solving by Searching

Opim Salim Sitompul

Department of Information Technology


Universitas Sumatera Utara
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Outline

1 Pendahuluan
Contoh: Liburan di Romania
2 Search
3 Agen Penyelesaian Masalah
Formulasi Masalah
Menyelesaikan Masalah
Toy Problem: The vacuum cleaner agent
Toy Problem: The 8-puzzle
Toy Problem: The 8-queens problem
4 Tree Search Algorithm
5 Mengukur Kinerja Problem-Solving Algorithm
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Pendahuluan

Agen reflex mendasari tindakannya pada pemetaan


langsung dari state ke tindakan.
Tidak operasional jika berada di lingkungan yang
pemetaannya sangat besar untuk disimpan dan terlalu
lama untuk dipelajari.
Agen berbasis-goal mempertimbangkan tindakan masa
datang dan tingkat keinginan hasil yang akan diperoleh.
Salah satu agen berbasis-goal ini disebut
problem-solving agent.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Pendahuluan

Problem-solving agent menggunakan atomic


representation:
Keadaan dunia dipandang secara keseluruhan tanpa
memiliki struktur internal yang dapat dilihat oleh algoritma
penyelesaian masalah.
Agen cerdas diharapkan memaksimalkan performance
measure.
Pencapaiannya menjadi lebih sederhana apabila agen
dapat mengadopsi sebuah goal dan fokus untuk
memenuhinya.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Contoh: Liburan di Romania

Saat ini berada di Arad; Pesawat berangkat keesokan


harinya dari Bucharest.
Formulasi goal:
Sampai di Bucharest
Formulasi masalah:
States: berbagai kota
Actions: mengemudi antar kota

Penyelesaian:
Deretan kota,
misalnya:
Arad, Sibiu, Fagaras,
Bucharest
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Contoh: Liburan di Romania

Gambar 1: Romania
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Contoh: Liburan di Romania

Agen mengadopsi goal: mengemudi ke Bucharest dan


mempertimbangkan berangkat dari Arad.
Ada tiga jalan keluar dari Arad: ke arah Sibiu, ke arah
Timisoara, dan ke arah Zerind.
Tidak satupun yang membawa ke goal, sehingga jika si
agen tidak familier dengan geografi Romania, dia tidak
akan tahu jalan mana yang akan diambil.
Jika lingkungan tidak dikenal (unknown) tidak ada jalan
lain selain mencoba salah satu secara acak.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Contoh: Liburan di Romania

Lingkungan agen:
Observable: si agen selalu tahu tentang keadaan sekarang.
Diskrit: di sembarang state hanya ada sejumlah berhingga
tindakan yang dapat dipilih.
Known: si agen tahu state mana yang dicapai oleh tiap
tindakan.
Deterministik: setiap tindakan hanya memiliki tepat satu
hasil.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Contoh: Liburan di Romania

Andaikan si agen memiliki peta Romania.


Agen yang memiliki beberapa pilihan dengan nilai yang
tidak diketahui dapat memutuskan apa yang dilakukan:
Pertama-tama memeriksa deretan aksi berbeda yang
mungkin yang membawa ke state dengan nilai yang
diketahui,
Kemudian memilih deretan terbaik.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Search

Proses mencari sederetan tindakan yang membawa


kepada goal disebut search.
Algoritma search menerima input sebuah masalah dan
mengembalikan sebuah penyelesaian dalam bentuk
sederetan aksi.
Setelah penyelesaian diperoleh tindakan yang
direkomendasikan dapat dilaksanakan.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Agen Penyelesaian Masalah


Algorithm 1: Problem Solving Agent
function SIMPLE-PROBLEM-SOLVING-AGENT(Percept)
static:
seq, an action sequence, initially empty
state, some description of the current world state
goal, a goal, initially null
problem, a problem formulation
state ←UPDATE-STATE(state, percept)
if seq is empty then
problem ←FORMULATE-PROBLEM(state, goal)
seq ←SEARCH(problem)
action ←FIRST(seq)
seq ←REST(seq)
return an action
end function
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Formulasi Masalah

Sebuah masalah dapat didefinisikan secara formal oleh


lima komponen:
1 Initial State, dimana agen itu berada.
Contoh: In(Arad)
2 Actions, deskripsi tentang kemungkinan tindakan yang
tersedia bagi si agen.
Diberikan satu state s, ACTION(s) mengembalikan
sekumpulan tindakan yang akan dieksekusi di s.
Tiap-tiap tindakan disebut applicable dalam s.
Contoh: Tindakan applicable untuk In(Arad) adalah:
{Go(Sibiu), Go(Timisoara), Go(Zerind)}
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Formulasi Masalah

3 Transition model, sebuah deskripsi tentang apa yang


dilakukan tiap tindakan.
Ditentukan oleh sebuah fungsi RESULT(s, a) yang
mengembalikan state yang dihasilkan dari melakukan
tindakan a dalam state s.
Contoh:
RESULT(In(Arad), Go(Zerind)) = In(Zerind)
Initial state + actions + transition model → state space,
himpunan semua state yang dapat dicapai dari initial state
melalui sederetan tindakan.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Formulasi Masalah

4 Goal test, menentukan apakah satu state adalah goal state.

Contoh: In(Bucharest)
Kadangkala goal dinyatakan oleh sebuah sifat abstrak yang
bukan berupa daftar himpunan state secara eksplisit.
Dalam permainan catur, goal adalah mencapai sebuah state
yang disebut “checkmate”.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Formulasi Masalah

5 Path cost, fungsi yang memberikan harga numerik ke


masing-masing path.
Biaya sebuah path adalah jumlah biaya tindakan individual
sepanjang path tersebut.
Step cost mengambil tindakan a dalam state s untuk
mencapai state s’ dinotasikan dengan:
Contoh:
c(s, a, s’)
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Menyelesaikan Masalah

Elemen-elemen tersebut mendefinisikan suatu masalah


dan dapat dikumpulkan kedalam sebuah struktur data
tunggal yang diberikan sebagai input ke algoritma
problem-solving.
Penyelesaian pada suatu masalah adalah sebuah deretan
tindakan yang membawa dari initial state ke sebuah goal
state.
Kualitas penyelesaian diukur dengan path cost function,
dan sebuah penyelesaian optimal memiliki path cost
terendah di antara semua penyelesaian.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Menyelesaikan Masalah

Gambar 2: Romania dengan bobot path


Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

States: agen ada di salah satu dari dua lokasi,


masing-masing berdebu atau tidak berdebu.
Ada 2 × 22 = 8 state.
Untuk n lokasi: n × 2n state.
Initial state: sembarang state
Actions: Left, Right, dan Suck.
Transition Model: menghasilkan langkah sah yang
dihasilkan dari mencoba tiga tindakan (Left, Right, dan
Suck)
Goal test: memeriksa apakah semua ruang bersih
Path cost: setiap langkah berharga 1, sehingga path cost
adalah jumlah langkah dalam path.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

states?
actions?
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

states? ? integer dirt and robot location


actions?
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

states? ? integer dirt and robot location


actions? Left, Right, Suck
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

states? ? integer dirt and robot location


actions? Left, Right, Suck
goal test? no dirt at all locations
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The vacuum cleaner agent

states? ? integer dirt and robot location


actions? Left, Right, Suck
goal test? no dirt at all locations
path cost? 1 per action
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

States, deskripsi yang menyatakan lokasi masing-masing


dari delapan buah dan blank dari sembilan petak.
Initial state, sembarang state.
Actions, formulasi sederhana yang mendefinisikan
tindakan-tindakan berupa perpindahan ruang kosong: Left,
Right, Up, atau Down.
Transition model, diberikan sebuah state dan action,
mengembalikan state yang dihasilkan.
Goal test, memeriksa apakah state sesuai dengan
konfigurasi yang diinginkan
Path cost, setiap langkah bernilai 1.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

states?
actions?
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

states? locations of tiles


actions?
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

states? locations of tiles


actions? move blank left, right, up, down
goal test?
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

states? locations of tiles


actions? move blank left, right, up, down
goal test? goal state (given)
path cost?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-puzzle

states? locations of tiles


actions? move blank left, right, up, down
goal test? goal state (given)
path cost? 1 per move
Catatan: solusi optimal n-Puzzle adalah NP-hard
8-puzzle memiliki 9!/2 = 181.440 state yang dapat dicapai
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-queens problem

States, sembarang susunan dari 0 hingga 8 queens pada


papan catur.
Initial state, tidak ada queens di papan.
Actions, Tambahkan queen ke sembarang ruang kosong.
Transition model, mengembalikan papan dengan sebuah
queen diletakkan di petak tertentu.
Goal test, 8 queen ada di papan, tidak ada yang saling
menyerang.
Catatan: Ada sebanyak 64 × 63 × . . . × 57 ≈ 1.8 × 1014
kemungkinan sequence yang harus diselidiki.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-queens problem

states? sembarang susunan dari (0 ≤ n ≤ 8) queens, satu


per kolom di kolom terkiri, tidak ada queen yang saling
serang.
actions?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Toy Problem: The 8-queens problem

states? sembarang susunan dari (0 ≤ n ≤ 8) queens, satu


per kolom di kolom terkiri, tidak ada queen yang saling
serang.
actions? Tambahkan queen ke kolom kosong paling kiri
yang tidak diserang sembarang queen lain.
Catatan: state space berkurang dari 1.8 × 1014 menjadi
2.057
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Sebuah penyelesaian adalah suatu deretan tindakan.


Algoritma pencarian bekerja dengan mempertimbangkan
berbagai kemungkinan deretan tindakan.
Bermula pada initial state (root) membentuk sebuah
search tree.
Cabangnya adalah tindakan dan simpulnya adalah state
dalam state space masalah.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm


Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm


Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm


Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Fringe: kumpulan node yang telah dibuat tetapi belum


diekspansi. Masing-masing elemen fringe adalah leaf
node.

Himpunan semua leaf node yang tersedia untuk ekspansi


di sembarang titik tertentu disebut frontier (open list).
Proses mengekspansi node pada frontier berlanjut hingga
ditemukan penyelesaian atau tidak ada lagi state yang
akan diekspansi.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Semua algoritma pencarian menggunakan struktur dasar


ini, perbedaannya adalah bagaimana memilih state berikut
yang akan diekspansi, disebut search strategy.
Dalam search tree harus dihindari repeated state yang
dihasilkan oleh loopy path (secara umum disebut
redundant paths).
Kegagalam mendeteksi state berulang dapat mengubah
masalah linier menjadi eksponensial!
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Cara menghindari redundant paths adalah dengan


mengingat dimana berada.
Diimplementasikan dengan sebuah struktur data yang
disebut explored set (closed list) yang mengingat setiap
node yang telah diekspansi.
Node yang baru dihasilkan yang sama dengan node yang
telah dihasilkan (ada di explored set atau frontier ) dapat
dibuang dan tidak ditambahkan ke frontier.
Pendekatan ini diimplementasikan dalam bentuk graph
search.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm


Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Deretan search tree yang dihasilkan oleh graph search


pada masalah Romania.
Pada tiap tahap setiap path diperluas di tiap langkah.
Pada tahap ketiga kota paling utara (Oradea) menjadi
dead end: kedua successor-nya sudah dieksplorasi via
path lain.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Sifat pemisahan pada GRAPH-SEARCH.

Frontier (node putih) selalu memisahkan daerah


state-space yang telah dieksplorasi (node hitam) dari
daerah yang belum dieksplorasi (node abu-abu).
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Sifat pemisahan pada GRAPH-SEARCH.

Frontier (node putih) selalu memisahkan daerah


state-space yang telah dieksplorasi (node hitam) dari
daerah yang belum dieksplorasi (node abu-abu).
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Sifat pemisahan pada GRAPH-SEARCH.

Frontier (node putih) selalu memisahkan daerah


state-space yang telah dieksplorasi (node hitam) dari
daerah yang belum dieksplorasi (node abu-abu).
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Frontier perlu disimpan sedemikian hingga algoritma


search dapat dengan mudah memilih node berikut yang
diekspansi sesuai dengan strategi yang diinginkan.
Struktur data yang sesuai adalah queue.
Operasi pada queue:
EMPTY?(queue) mengembalikan true hanya jika tidak ada
lagi elemen dalam queue.
POP(queue) mengambil elemen pertama dari queue dan
mengembalikannya.
INSERT(element, queue) menyisipkan sebuah elemen dan
mengembalikan queue yang dihasilkan.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Tree Search Algorithm

Queue ditandai oleh urutan (order ) dimana node yang


disisipkan disimpan.
Ada tiga varian umum:
first-in, first-out atau FIFO queue, yang mengeluarkan
(pop) elemen terlama (oldest) queue;
last-in, first-out atau LIFO queue (a.k.a stack), yang
mengeluarkan (pop) elemen terbaru (newest).
priority queue, yang mengeluarkan (pop) elemen queue
dengan prioritas tertinggi menurut fungsi urutan tertentu.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Kinerja algoritma penyelesaian masalah dapat dievaluasi


dengan empat cara:
Completeness: apakah algoritma dijamin menemukan
penyelesaian jika penyelesaian itu ada?
Optimality: Apakah strategi selalu menemukan
penyelesaian paling murah (least-cost)?
Time complexity: berapa lama waktu yang diperlukan untuk
memperoleh penyelesaian?
Space complexity: Berapa besar memory yang diperlukan
untuk melakukan pencarian?
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Time dan space complexity diukur menggunakan ukuran


kerumitan persoalan:
Ukuran yang biasa digunakan adalah ukuran state space
graph:
|V | + |E|
dimana,
V adalah himpunan vertices (nodes) dari graph
E adalah himpunan edges (links).
Hal ini sesuai bilamana persoalan yang berbentuk graph
tersebut dapat diimplementasikan berupa struktur data
eksplisit pada program.
Misalnya: Peta Romania
Dalam AI sering sekali graph disajikan secara implisit oleh
initial state, action, dan transition model yang sering sekali
tidak berhingga.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Dalam AI sering sekali graph disajikan secara implisit oleh


initial state, action, dan transition model yang sering sekali
tidak berhingga.
Karena itu, kompleksitas disajikan dalam bentuk tiga
kuantitas berikut:
b: (branching factor ), jumlah maksimum dari successor
node.
d: (depth), kedalaman goal node terdekat.
m: (maximum), panjang maksimum sembarang path dalam
state space (boleh jadi ∞)
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Waktu dapat diukur dalam hal jumlah node yang dihasilkan


selama pencarian.
Space dihitung dalam bentuk jumlah maksimum node
yang disimpan di memory.
Biasanya kompleksitas waktu dan ruang dijabarkan pada
pencarian tree.
Untuk graph, jawabannya tergantung pada seberapa
redundant path dalam state space.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Untuk memeriksa keefektifan algoritma search dapat


dilakukan dengan menggunakan search cost yang hanya
tergantung pada time complexity.
Dapat juga mempertimbangkan penggunaan memory
(space complexity ).
Atau gabungan keduanya (total cost) yang merupakan
kombinasi search cost dan path cost dari penyelesaian
yang ditemukan.
Pendahuluan Search Agen Penyelesaian Masalah Tree Search Algorithm Mengukur Kinerja Problem-Solving Algorithm

Mengukur Kinerja Problem-Solving Algorithm

Untuk masalah mencari rute dari Arad ke Bucharest,


search cost adalah jumlah waktu yang diperlukan oleh
pencarian dan solution cost adalah panjang total path.
Jadi, untuk menghitung total cost, millisecond dan
kilometer haruslah ditambahkan.
Meskipun tidak ada “exchange rate” resmi, tetapi dalam hal
ini masuk akal untuk mengkonversi kilometer menjadi
millisecond dengan menggunaan estimasi rata-rata
kecepatan mobil.
Hal ini memungkinkan si agen untuk mencari titik
keseimbangan optimal, dimana komputasi lebih lanjut
untuk menemukan path terpendek menjadi kontra produktif.

Anda mungkin juga menyukai