intelijensia buatan - 03 agen pencarian (searching agent)
Post on 02-Jul-2015
358 Views
Preview:
DESCRIPTION
TRANSCRIPT
Kuliah: Inteligensi Buatan http://kuliahkita.com/kelas/intelijensia-buatan/
Nur Ulfa Maulidevi
Ikhtisar Kuliah Sebelumnya
Agen Penyelesai Persoalan
Contoh Persoalan
Definisi Formal Agen Penyelesai Persoalan
Teknik Pencarian
NUM & Kaelbling 2 7/26/2014
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 3 7/26/2014
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 4 7/26/2014
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
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 6 7/26/2014
Pencarian Rute: Contoh Peta Negara Rumania
NUM & Kaelbling 7 7/26/2014
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 8 7/26/2014
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
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 10 7/26/2014
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 11 7/26/2014
Pencarian Buta (Uninformed Search)
NUM & Kaelbling 12 7/26/2014
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
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
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 15 7/26/2014
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
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
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
S 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
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 19 7/26/2014
Pencarian dengan Tambahan Informasi (Informed Search)
NUM & Kaelbling 20 7/26/2014
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 21 7/26/2014
Contoh Peta Romania dengan biaya jarak dalam km
NUM & Kaelbling 22 7/26/2014
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 23 7/26/2014
Contoh Greedy best-first search
NUM & Kaelbling 24 7/26/2014
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 25 7/26/2014
Contoh A* search
NUM & Kaelbling 26 7/26/2014
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 27 7/26/2014
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
Pencarian Lokal (Local Search) Diberikan setelah materi Constraint Satisfaction Problem minggu berikutnya
NUM & Kaelbling 29 7/26/2014
top related