2. Ikhtisar
Kuliah Sebelumnya
Agen Penyelesai Persoalan
Contoh Persoalan
Definisi Formal Agen Penyelesai Persoalan
Teknik Pencarian
NUM & Kaelbling 27/26/2014
3. Kuliah sebelumnya
Apakah Inteligensi Buatan 4
pendekatan
Untuk kuliah kali ini, kita menggunakan pendekatan
“berperilaku secara rasional” (acting rationally)
Rasionalitas maha tahu sukses
Tidak menggunakan rasionalitas sempurna, tapi
rasionalitas terbatas
Agen Cerdas
Jenis lingkungan (6)
Jenis Agen (4)
NUM & Kaelbling 37/26/2014
4. Agen Penyelesai Persoalan
Desain sebuah agen:
Formulasikan persoalan cari solusi eksekusi
Penentuan tugas agen: Ingat PEAS
Persoalan: memenuhi tujuan (goal state)
Tugas agen: menemukan urutan aksi yang akan
membawa agen sampai ke tujuan (goal state)
4 komponen persoalan: kondisi awal, operator/ fungsi
suksesor, pengujian goal state, biaya untuk jalur yang
dipilih (path cost)
Pencarian: proses mencari urutan aksi
Solusi: urutan aksi dari kondisi awal ke kondisi tujuan
NUM & Kaelbling 47/26/2014
5. Penyelesaian Persoalan
Agen jenis ini, beberapa asumsi yang mendasari nya adalah sebagai berikut:
Agen mengetahui semua dinamika dunianya
Semua kemungkinan keadaan (states) lingkungan diketahui, semua aksi yang
mungkin juga sudah diberikan
Ketika agen tidak mengetahui dinamika kondisi lingkungan jenis agen yang bisa
belajar (learning)
Keadaan lingkungan terbatas, cukup sedikit untuk dienumerasi satu persatu
Ketika keadaan lingkungan sudah tidak terbatas lagi, kita menggunakan aturan
logika
Lingkungan di mana agen berada bersifat deterministik
Ketika lingkungan bersifat non-deterministik menggunakan uncertainty
(probablitas)
Agen mengetahui keadaan lingkungan saat ini
Ketika agen tidka mengetahui, maka kita menggunakan aturan logika dan
probabilitas
Ukuran kinerja untuk urutan keadaan adalah penjumlahan dari path yang
dihasilkan
Hanya sedikit persoalan dunia nyata yang menggunakan asumsi ini, tapi sebagai
awal materi kuliah untuk memberikan abstraksi penyelesaian persoalan,
asumsi tersebut sangat berguna agen menyelesaikan persoalan dengan
melakukan pencarian 5
6. Definisi Formal dari “Persoalan”
Pada saat mendesain agen untuk menyelesaikan persoalan, di awal kita harus
mendefinisikan persoalan secara formal agar mengetahui bagaimana agen
nanti harus menyelesaikan persoalan.
Sebuah persoalan memiliki empat komponen, yaitu:
Sekumpulan keadaan lingkungan (states): S
Ruang keadaan akan membentuk graf (simpul: state; busur: aksi)
Keadaan awal, keadaan tujuan
Operator (aksi): fungsi yang memetakan sebuah keadaan ke keadaan yang
lain: S S [deterministik]
Pengujian keadaan akhir: fungsi yang memetakan sebuah keadaan ke
suatu nilai boolean (benar/ salah): S { t,f }
Biaya jalur yang ditempuh: fungsi yang memetakan pasangan state dan
operator ke suatu bilangan real: (S,O)* real
Penjumlahan seluruh biaya jalur: Σ c(S,O)
Solusi dari persoalan: jalur pada graf
Kriteria untuk algoritma pencarian yang dibangun pada agen:
Waktu komputasi/ ruang pencarian
Kualitas solusi
NUM & Kaelbling 67/26/2014
8. Contoh Persoalan: Pencarian Rute pada suatu peta
Sebuah peta dapat dimodelkan sebagai suatu graf; di mana simpul graf
menyatakan kota dan busur graf menyatakan jalan. Ini adalah salah
satu bentuk abstraksi dari dunia nyata.
Peta memberikan dinamika lingkungan agen: dimulai dari kota X pada
peta dan memilih beberapa jalan untuk sampai ke kota Y.
Asumsi lingkungan:
Statik: tidak ada perubahan lingkungan saat menyelesaikan persoalan
Diskret: Banyaknya keadaan lingkungan terbatas (jumlah kota)
Deterministik: memilih sebuah jalan dari suatu kota, pasti akan
membawa ke satu kota tertentu
Teramati sepenuhnya: informasi mengenai keadaan lingkungan
lengkap, agen sedang berada di mana juga diketahui
Ukuran kinerja dari urutan states biasanya:
Jumlah jarak yang ditempuh
Jumlah waktu yang dipelrukan dari kota awal ke kota tujuan
NUM & Kaelbling 87/26/2014
9. Pencarian
NUM & Kaelbling 9
Sumber: Buku Diktat
utama Russell’s
S: sekumpulan kota
Kota awal: A (Arad)
Kota tujuan: B (Bucharest)
Pemeriksaan: s = B ?
Biaya jalur: waktu ~ jarak
A
118
T
S
O
Z
R
P
F
B
C
L
M
D
111
75
71 151 99
97
120
146 138
101
211
75
70
140 90
7/26/2014
10. Pencarian (Materi Penyegaran)
Pencarian Buta (UnInformed/Blind Search)
Lihat sekeliling, tidak tahu jalan mana yang mengarahkan ke kota tujuan
Tidak ada informasi tambahan selain yang disediakan oleh definisi persoalan (4
komponen persoalan)
Contoh: DFS, BFS, IDS, UCS , DLS
Pencarian dengan Tambahan Informasi (Informed Search)
Pencarian Heuristik
Agen mendapatkan informasi tambahan yang bisa berguna
Agen mengetahui apakah suatu keadaan (state) lebih menjanjikan untuk
sampai ke tujuan dibandingkan keadaan yang lain
Contoh: Greedy Best First Search, A*,
Pencarian Lokal (Local Search) untuk persoalan optimasi melebihi
pencarian klasik
Jalur ke tujuan tidak penting
Menggunakan memory yang cukup kecil
Dapat menemukan solusi yang masuk akal dalam ruang pencarian tidak
terbatas, sehingga algoritma sistematis sesuai untuk pencarian ini
Contoh: Hill-climbing search, simulated annealing search, Genetic
Algorithm
NUM & Kaelbling 107/26/2014
11. Inti algoritma Pencarian
Agenda: berisi daftar keadaan (states) yang akan di periksa
Pemilihan state dari agenda menentukan teknik pencarian
{Masukkan keadaan awal (initial state) ke dalam
agenda}
AddState(Agenda, initial-state)
iterate
{mengambil sebuah state dari agenda untuk
diperiksa}
GetState(Agenda, current-state)
stop: isGoal(current-state)
{pemeriksaan apakah state yang diperksa adalah state
tujuan}
if not isExpanded(current-state) then
{jika bukan goal state masukkan anak dari state
yang diperiksa ke dalam agenda}
ExpandState(current-state, Agenda)
NUM & Kaelbling 117/26/2014
13. Breadth-First Search (BFS)
NUM & Kaelbling 13
A ZA,SA,TA SA,TA,OAZ TA,OAZ,OAS,FAS,RAS
OAZ,OAS,FAS,RAS,LAT OAS,FAS,RAS,LAT FAS,RAS,LAT RAS,LAT,BASF
LAT,BASF,DASR,CASR,PASR BASF,DASR,CASR,PASR,MATL
Stop: B=goal, path: A S F B, path-cost = 450
A
118
T
S
O
Z
R
P
F
B
C
L
M
D
111
75
71 151 99
97
120
146 138
101
211
75
70
140 90
7/26/2014
14. Depth-First Search (DFS)
NUM & Kaelbling 14
A ZA,SA,TA OAZ, SA,TA SAZO,SA,TA FAZOS, RAZOS,SA,TA
BAZOSF, RAZOS,SA,TA
Stop: B=goal, path: A Z O S F B, path-cost = 607
A
118
T
S
O
Z
R
P
F
B
C
L
M
D
111
75
71 151 99
97
120
146 138
101
211
75
70
140 90
7/26/2014
15. Depth-Limited Search (DLS)
BFS menemukan tujuan dengan jumlah langkah minimum, tapi
ruang pencariannya eksponensial
DFS efisien dalam ruang pencarian, tapi tidak ada jaminan
mengenai panjangnya jalur yang dibutuhkan (bisa sampai
kedalaman yang sangat jauh, padahal tidak mengarah ke solusi)
Solusi: DFS-limited search (DFS dengan pembatasan
kedalaman)
DFS dengan kedalaman yang dibatasi, misal l
Simpul pada kedalaman l dianggap tidak memiliki simpul-
simpul anak
Persoalan: jika tujuan berada lebih dalam daripada l
Pembatasan kedalaman bisa ditentukan oleh pakar dalam
domain persoalan tersebut
NUM & Kaelbling 157/26/2014
16. Pesudo code Algoritma DLS
NUM & Kaelbling 16
Function DLS (problem, limit) returns solution/ cutoff/
failure
rec_DLS(make_node(init_state),problem,limit)
Function Rec_DLS (node,problem, limit) returns solution/
cutoff/ failure
if isGoal(node) then solution(node)
else if limit=0 then cutoff
else
cutoff_occured false
for each action in problem.Actions(node.State) do
child CHILD-Node(problem, node, action)
result rec_DLS(child,problem,limit-1)
if result=cutoff then cutoff_occured true
else if result≠failure then result
if cutoff_occured then cutoff
else failure
7/26/2014
17. Iterative Deepening Search (IDS)
NUM & Kaelbling 17
IDS: menerapkan DFS dari kedalaman level terendah, jika
tujuan belum ditemukan maka kedalaman ditambah satu,
terus dilakukan hingga tujuan dicapai
Asumsi: Sebagian besar simpul ada di kedalaman level
bawah, sehingga tidak menjadi persoalan jika pada
kedalaman level atas simpul-simpul dibangkitkan berulang
kali
Function Iterative-Deepening_Search(problem) returns
solution/ failure
for depth = 0 to do
result DLS(problem, depth)
if result ≠ cutoff then result
7/26/2014
18. IDS
NUM & Kaelbling 18
Depth=0: A: cutoff
Depth=1: A ZA,SA,TA ZA: cutoff, SA: cutoff, TA: cutoff
Depth=2: A ZA,SA,TA OAZ, SA,TA OAZ : cutoff FAS, RAS,TA
FAS : cutoff RAS : cutoff LAT LAT : cutoff
Depth=3: A ZA,SA,TA OAZ, SA,TA SAZO,SA,TA SAZO: cutoff
FAS, RAS,TA BASF, RAS,TA BASF
Stop: B=goal, path: A S F B, path-cost = 450
O
A
118
T
SZ
R
P
F
B
C
L
M
D
111
75
71 151 99
97
120
146 138
101
211
75
70
140 90
7/26/2014
19. Uniform Cost Search (UCS)
BFS dan IDS menemukan jalur dengan jumlah langkah
minimum
Jika banyaknya_langkah ≠ biaya, maka banyaknya langkah tidak
relevan jika diinginkan solusi optimal
Perlu dicari jalur terpendek, dengan menghitung jarak yang
ditempuh pada jalur terpilih
UCS:
Simpul pada agenda mencatat panjang jalur dari awal hingga
simpul tersebut
Simpul pada agenda, diurutkan berdasarkan simpul dengan
panjang total jalur minimum
Ambil jalur minimum yang ada pada antrian di agenda
Melakukan eksplorasi berddasarkan panjang jalur: memilih jalur
optimal
NUM & Kaelbling 197/26/2014
21. Best-first search
Ide: gunakan suatu fungsi evaluasi f(n) untuk setiap simpul
Fungsi tersebut memperkiraan tingkat “kedekatan dengan simpul
tujuan”
Simpul yang di pilih dari agenda untuk diperiksa adalah simpul dengan
tingkat kedekatan yang paling tinggi dan belum diperiksa sebelumnya
Implementasi:
Peletakan simpul di agenda diurutkan berdasarkan tingkat
kedekatan dengan simpul tujuan
Kasus khusus:
greedy best-first search
A*
NUM & Kaelbling 217/26/2014
23. Greedy best-first search
Fungsi Evaluasi f(n) = h(n) (heuristik) = perkiraan
biaya dari simpul n ke simpul tujuan
Contoh pada peta Romania, hSLD(n) = jarak jika ditarik
garis lurus dari simpul n ke simpul tujuan (Bucharest)
Greedy best-first search memeriksa simpul pada
agenda yang terlihat paling dekat dengan simpul
tujuan
NUM & Kaelbling 237/26/2014
25. A* search
Ide: menghindari pemeriksaan jalur yang sudah pasti
biaya nya ‘mahal’
Fungsi Evaluasi f(n) = g(n) + h(n)
g(n) = biaya jalur yang sudah dilewati dari simpul awal
ke simpul n (simpul yang sedang diperiksa)
h(n) = perkiraan biaya dari simpul n ke simpul tujuan
f(n) = perkiraan biaya total dari simpul awal ke simpul
tujuan melalui simpul n
NUM & Kaelbling 257/26/2014
27. Heuristik yang Bisa Diterima
Sebuah heuristik h(n) dapat diterima jika untuk setiap
simpul n, h(n) ≤ h*(n), di mana h*(n) adalah biaya
sesungguhnya untuk mencapai simpul tujuan dari
simpul n.
Heuristik yang dapat diterima tidak pernah melebihi
perkiraan biaya untuk mencapai simpul tujuan,
heuristik harus optimistik
Contoh: hSLD(n) (tidak pernah melebihi perkiraan
jarak sesungguhnya dari simpul n ke simpul tujuan)
Teorema: Jika h(n) dapat diterima, A* yang
menggunakan TREE-SEARCH akan optimal
NUM & Kaelbling 277/26/2014
28. Contoh heuristik yang tidak dapat
diterima
A* akan menemukan jalur optimal jika
h dapat diterima; h dapat diterima
ketika h tidak pernah melebihi
perkiraan.
Contoh di samping, h untuk simpul X
tidak dapat diterima.
Dalam persoalan pencarian rute, jarak
garis lurus dari suatu simpul ke
simpul tujuan adalah heuristik yang
bisa diterima
g(X)+h(X)=2+100=102
G(Y)+h(Y)=73+1=74
Jalur optimal tidak bisa
ditemukan!
Karena kita memilih Y
daripada X, padahal X
lebih optimal, namun
karena heuristik X
melebihi perkiraan, maka
jalur optimal tidak
ditemukan.
NUM & Kaelbling 28
x
1
2 73
1
y
h=0 h=0
h=100 h=1
7/26/2014
29. Pencarian Lokal (Local Search)
Diberikan setelah materi
Constraint Satisfaction Problem minggu
berikutnya
NUM & Kaelbling 297/26/2014