Problem-Solving Agent &
Search
Chastine Fatichah
Teknik Informatika
Institut Teknologi Sepuluh Nopember
November 2012
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
1 / 38
(KI092301)
Problem-Solving Agent
•
Goal-based agent
mempertimbangkan
action-action yang akan datang dan hasil
yang ingin dicapai
•
Agent problem solving
Menemukan
rangkaian tindakan (sequence action)
untuk mencapai tujuannya
•
Algoritma Uninformed
Tidak ada
informasi
untuk problem, hanya deskripsi
pada masalah tersebut
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
3 / 38
Mekanisme Kerja
Problem-Solving Agent
•
Perumusan tujuan (
goal formulation
): tentukan tujuan yang
ingin dicapai
•
Kondisi saat ini
•
Performance measure
•
Perumusan masalah (
problem formulation
): tentukan
tindakan (
action
) dan keadaan (
state
) yang
dipertimbangkan dalam mencapai tujuan
•
Pencarian solusi masalah (
searching
) : tentukan rangkaian
tindakan yang perlu diambil untuk mencapai tujuan
•
Input: problem, output: solusi dalam bentuk rangkaian tindakan
•
Pelaksanaan solusi (
execution
): laksanakan rangkaian
tindakan yang sudah ditentukan di tahap sebelumnya
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
5 / 38
Contoh Kasus : Romania
•
Seorang agent sedang berlibur dan
sekarang sedang di kota Arad Romania
•
Besok dia harus naik pesawat dari
Bucharest
•
Goal
dari agent sekarang adalah pergi ke
Bucharest
•
Action
yang tidak berhubungan dengan
goal akan dibuang -> decision agent
lebih sederhana
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
7 / 38
Contoh Kasus: Romania
(Agent & Environment)
•
Static
•
Tidak perlu memperhatikan perubahan yang
terjadi pada environment
•
Observable
•
Ada peta, initial state diketahui (di Arad)
•
Discreet
•
Enumeration action
•
Deterministic
•
Tidak bisa menangani terhadap hal-hal yang
tidak diperkirakan
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
9 / 38
Contoh Kasus: Romania
(Path Cost Solusi Agent)
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
11 / 38
Contoh Kasus: Vacuum Cleaner
•
Vacuum Cleaner
•
States
: Berada di salah satu dari
dua lokasi yang ada, yg masing2
mungkin bersih atau kotor. Jadi
jml kemungkinan state = 2 * 2
2
•
Initial State
?
•
Successor Function
?
.
•
Goal Test
?
•
Path Cost
?
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
13 / 38
Contoh Kasus: 8-Puzzles
•
8-Puzzles
•
State
: ?
•
Initial State
: ?
•
Successor Function
: ?
.
•
Goal Test
: ?
•
Path Cost
: ?
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
15 / 38
Contoh Kasus: 8-Queen
Problem
•
8-Queen Problem
•
State
: ? .
•
Initial State
: ? .
•
Successor Function
: ?
.
•
Goal Test
: ?
.
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
17
Real World Problem
•
Airline Travel Problem
•
Touring Problem
•
Traveling Salesman Problem
•
VLSI Layout
•
Robot Navigation
•
Automatic Assembly Sequencing
•
Internet Searching
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
19 / 38
Contoh Search Tree
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
21 / 38
Search Strategies
•
Strategy memilih node yang akan diexpand :
•
Completeness Menemukan solusi jika ada
•
Optimality Optimal solution (cost terkecil)
•
Time Complexity berapa lama menemukan
solusinya ?
•
Space Complexity berapa banyak memory yang
dibutuhkan ?
•
Time dan Space Complexity bisa dilihat dari
ukuran :
•
b maks branch factor
•
d depth dari solusi terkecil
•
m maks depth dari state space
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
23 / 38
Breadth-First Search (BFS)
A
B
C
G
D
E
F
A
B
C
G
D
E
F
B
D
E
C
G
F
•
Setelah Root di expand, selanjutnya
successor dari root, selanjutnya successor
dari successor mereka expand melebar
•
Mengimplementasikan fringe FIFO
E
F
G
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
25 / 38
Uniform Cost Search
•
Hampir sama dengan BFS melebar
•
Bedanya pada pemilihan node yang akan diexpand cost
terkecil
•
Fringe = queue berdasarkan cost terkecil
•
Jika masing-masing node memiliki cost yang sama = BFS
•
Complete
? Ya jika step cost >= Є (positif const)
•
Time
? O(b
C*/ Є
) ; C* = Optimal solution
•
Jumlah node dengan g <= cost optimal solution
•
Space
? O(b
C*/ Є
)
•
Jumlah node dengan g <= cost optimal solution
•
Optimal
? Ya, node diekspand urutan penambahan g(n)
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
27 / 38
Depth-Limited Search
•
Sama dengan DFS dengan deep limit
l
•
Implementasi dengan Rekursif
Function Depth-Limited-Search(problem,limit) return a solution or a failure/cutoff
return Recursive-DLS(Make-Node(Initial-State[problem]),problem,limit)
Function Recursive-DLS(node,problem,limit) return a solution or failure/cutoff
cutoff_occured? false
if Goal-Test[problem](State[node]) then return solution
else if Depth[node] = limit then return cutoff
else for each successor in Expand(node,problem) do
result recursive-DLS(successor,problem,limit)
if result cutoff then cutoff_occured? true
else if result <> failure then return result
if cutoff_occured? Then return cutoff
else return failure
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
29 / 38
Iterative-deepening Search
Limit = 0
A
A
A
Limit = 1
A
A
B
C
B
C
A
Limit = 2
A
B
C
B
D
E
D
D
E
E
B
C
F
G
F
F
G
G
C
A
Limit = 3
A
A
B
C
B
D
E
D
H
I
H
H
I
I
D
E
J
K
J
J
K
K
E
B
C
F
G
F
F
G
L
M
L
L
M
M
G
C
A
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
31 / 38
Bidirectional Search
•
Mencari dari 2 arah secara simultan
•
Motivasi b
d/2
+ b
d/2
jauh lebih kecil dari b
d
•
Misal d = 6, masing2 menggunakan BFS depth=3, b=10;
dengan bidirectional hanya 22.200 node sedang dengan
BFS standar mencapai 11.111.000 node
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
33 / 38
Menghindari Repeated States
•
Pada beberapa kasus, ada kemungkinan terjadi state
yang berulang looping
•
solveable problem unsolveable problem
•
Dibuat closed list menyimpan node yang sudah
diexpand
•
Node yang tidak bisa diexpand open list
Function Graph-Search(problem,fringe) return a solution or a failure
closed
empty set
fringe
Insert(Make-Node(Initial-State[problem]),fringe)
loop do
if empty ?(fringe) then return failure
node
Remove-First(fringe)
if Goal-Test[problem](State[node]) then return Solution(node)
if State[node] is not in closed then
add State[node] to closed
fringe
Insert-All(Expand(node,problem),fringe)
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
35
Ringkasan
•
Problem solving agents
•
Perumusan masalah state space
•
Pencarian solusi penelusuran search tree
•
Breadth-first search: completeness terjamin, tapi rakus memory
•
Uniform-cost search: mirip BFS, optimality terjamin jika cost path
untuk > 0
•
Depth-first search: Space complexity linier, tetapi tidak complete
(maupun optimal)
•
Depth-limited search: mirip DFS, tetapi kedalaman search dibatasi
sampai
•
Iterative-deepening search: lakukan DLS secara bertahap dengan =
0, 1, 2, . . ..
•
Pengulangan state bisa dihindari dengan mencatat state yang
sudah pernah dicoba
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
(KI092301)
12/7/2012
Problem-Solving Agent & Search @ Kecerdasan Buatan
38 / 38
Sumber :
1. Slide perkuliahan Stuart Russell's (Berkeley)
http://aima.cs.berkeley.edu/
2. Slide perkuliahan Sistem Cerdas Ruli Manurung (Universitas Indonesia)