Anda di halaman 1dari 77

Pemecahan

Masalah
dengan
Pencarian
(Agen Tunggal)

Dian Eka R

Ruang Masalah
Keadaan Awal (Initial State)



Tujuan (Goal)
Teknik Searching Dalam AI
Digunakan untuk mencari solusi dari
suatu permasalahan
Langkahnya adalah dengan
mendefinisikan terlebih dahulu
Ruang Masalah (State)nya.



Contoh agen yang memiliki
tujuan
8 puzzle : untuk mencapai konfigurasi
bahw baris teratas daari puzzle terisi
dengan ubin 1,2,3


Representasi formulasi
Permasalahan
Setiap permasalahan akan dapat
direpresentasikan dengan grap terarah
Keadaaan akan digambarkan dalam
node
Aksi yang diijinkan digambarkan sebagai
sebuah arah(arc)

Contoh terdapat graph yang menunjukkan
kota
Graph keadaan
Graph keadaan dengan node M menunjukkan keadaan
awal, node T adalah tujuan. Ada 4 lintasan dari M ke T :
M-A-B-C-E-T
M-A-B-C-E-H-T
M-D-C-E-T
M-D-C-E-H-T
Lintasan buntu atau lintasan yang tidak sampai ke tujuan :
M-A-B-C-E-F-G
M-A-B-C-E-I-J
M-D-C-E-F-G
M-D-C-E-I-J
M-D-I-J
Struktur pohon digunakan untuk
menggambarkan keadaan secara hirarkis.
Node yg terletak pada level-o disebut akar.
Node akar : menunjukkan keadaan awal &
memiliki beberapa percabangan yang terdiri
atas beberapa node yg disebut anak .
Node-node yg tidak memiliki anak disebut
daun menunjukkan akhir dari suatu
pencarian, dapat berupa tujuan yang
diharapkan (goal) atau jalan buntu (dead
end).

Example: Romania
On holiday in Romania; currently in Arad.
Flight leaves tomorrow from Buchares
Formulate goal:
be in Bucharest
Formulate problem:
states: various cities
actions: drive between cities
Find solution:
sequence of cities, e.g., Arad, Sibiu, Fagaras,
Bucharest
Example: Romania
Single-state problem formulation
A problem is defined by four items:

1. initial state e.g., "at Arad"
2. actions or successor function S(x) = set of actionstate pairs
<action,successor(state)>
e.g., S(Arad) = {<Arad Zerind, Zerind>, }

3. goal test, can be
explicit, e.g., x = "at Bucharest"
implicit, e.g., Checkmate(x)
4. path cost (additive)
Assign numeric cost to each path
e.g., sum of distances, number of actions executed, etc.
c(x,a,y) is the step cost, assumed to be 0

A solution is a sequence of actions leading from the initial state
to a goal state
Solution quality is measured by the path cost function




Example: The 8-puzzle









states? locations of tiles
actions? move, blank, left, right, up, down
goal test? = goal state (given)
path cost? 1 per move

[Note: optimal solution of n-Puzzle family is NP-hard]


untuk mendeskripsikan masalah dengan
baik harus :
1. Mendefinisikan suatu ruang keadaan (state
space)
2. Menetapkan satu atau lebih keadaan awal (initial
state)
3. Menetapkan satu atau lebih tujuan (goal state)
4. Menetapkan kumpulan aturan (action)

Studi Kasus : Masalah Galon
Air(A Water Jug Problem)
4 liter
3 liter
Kran air
Bagaimana caranya bisa didapatkan air dengan ukuran
tepat 2 liter di Galon A ???
A B
Penyelesaian :

1. Identifikasi ruang keadaan (state space)
Permasalahan ini dapat digambarkan sebagai
himpunan pasangan bilangan bulat :
x = jumlah air yg diisikan ke ember 4 galon (ember A)
y = jumlah air yg diisikan ke ember 3 galon (ember B)
Ruang keadaan = (x,y) sedemikian hingga x
{0,1,2,3,4} dan y {0,1,2,3}

2. Keadaan awal & tujuan
Keadaan awal : kedua ember kosong = (0,0)
Tujuan : ember 4 galon berisi 2 galon air = (2,n)
dengan sembarang n
3. Keadaan ember
Keadaan ember bisa digambarkan sebagai
berikut :


Aturan-aturan diasumsikan
kita dapat mengisi ember air itu dari
pompa air,
membuang air dari ember ke luar,
menuangkan air dari ember yang satu ke
ember yang lain.


Representasi ruang keadaan dengan
pohon pelacakan
Pencarian suatu solusi dapat dilukiskan dengan
menggunakan pohon.
Tiap-tiap node menunjukkan satu keadaan. Jalur
dari parent ke child ,menunjukkan 1 operasi.
Tiap node memiliki node child yg menunjukkan
keadaan yg dapat dicapai oleh parent.



Masalah
PETANI,KAMBING,SERIGALA,SAYURAN,PERAHU

Seorang petani akan menyeberangkan
seekor kambing,seekor serigala,sayuran
dengan sebuah perahu yg melalui sungai.
Perahu hanya bisa memuat petani & satu
penumpang yg lain (kambing, serigala, atau
sayuran).
Jika ditinggalkan petani tersebut, maka
sayuran dimakan kambing dan kambing
akan dimakan serigala.
Penyelesaian :

1. Identifikasi ruang keadaan
Permasalahan ini dapat dilambangkan dengan (jumlah
kambing,jumlah serigala,jumlah sayuran,jumlah perahu).
Contoh : daerah asal (0,1,1,1) = daerah asal tidak ada
kambing,ada serigala, ada sayuran,ada perahu

2. Keadaan awal & tujuan
Keadaan awal, pada kedua daerah :
daerah asal = (1,1,1,1)
daerah seberang = (0,0,0,0)
Keadaan tujuan, pada kedua daerah :
daerah asal = (0,0,0,0)
daerah seberang = (1,1,1,1)


Jenis Teknik Searching
Blind Search ( Un-Informed Search )
- Breadth First Search ( BFS )
- Depth First Search ( DFS )
- Uniform Cost Search ( UCS )
- Depth Limited Search ( DLS )
- Iterative Deepening Search ( IDS )
- Bi-Directional Search ( BDS )

Heuristic Search ( Informed Search )
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). Tetapi BFS harus
menyimpan semua node yang pernah
dibangkitkan. Hal ini harus dilakukan untuk
penelusuran balik jika solusi sudah
ditemukan.
Breadth-First Search
Metode pencarian dapat dilihat sbb:
Keuntungan BFS:
1. Tidak akan menemui jalan buntu
2. If ada solusi,mk breadth first seacrh akan
menemukannya. If lbh dr satu, maka solusi min
akan ditemukan.
Kelemahan BFS:
1. Membutuhkan memori yg ckp banyak, krn
menyimpan semua node dalam satu pohon
2. Membutuhkan waktu yg ckp lama, krn
menguji n
level u/ mdptkan solusi pd level yg ke-(n+1)
0,0
4,0 0,3
1,3 4,3 3,0
1,0
3,3
4,2
Penanganan Masalah Galon Air dg BFS
Galon B diisi tepat 2 l
air
Breadth-first search
Expand shallowest unexpanded node
Implementation:
fringe is a FIFO queue, i.e., new successors
go at end
Breadth-first search
Expand shallowest unexpanded node

Implementation:
fringe is a FIFO queue, i.e., new successors go at
end

Breadth-first search
Expand shallowest unexpanded node

Implementation:
fringe is a FIFO queue, i.e., new successors
go at end

Breadth-first search
Expand shallowest unexpanded node

Implementation:
fringe is a FIFO queue, i.e., new successors
go at end

Gambar berikut mengilustrasikan
pembangkitan pohon BFS untuk masalah
Water Jug.
Pembangkitan suksesor dari suatu node
bergantung pada urutan dari Aturan
Produksi yang dibuat.
Jika urutan dari aturan 4 ditukar dengan
aturan 5, maka pohon BFS yang
dibangkitkan juga akan berubah.

Pohon Breadth First Search untuk Water Jug Problem
Properties of breadth-first search
Complete? Yes (if b is finite)
Time? 1+b+b
2
+b
3
+ +b
d
+ b(b
d
-1) = O(b
d+1
)
Space? O(b
d+1
) (keeps every node in
memory)
Optimal? Yes (if cost = 1 per step)

Space is the bigger problem (more than time)
Depth First Search
Metode pencarian dapat dilihat sbb:
Keuntungan :
1. Membutuhkan memori relatif kecil, krn
hanya node node pd lintasan yg aktif
saja yg disimpan
2. Scr kebetulan, metode ini akan
menemukan solusi tanpa hrs menguji lbh
banyak
Kerugian :
1. Memungkinkan tdk ditemukannya tujuan
yg
diharapkan
2. Hanya akan mendapat solusi pd setiap
pencarian
0,0
4,0 0,3
1,3 4,3 3,0
1,0
3,3
4,2
Penanganan Masalah Galon Air dg DFS
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
Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node
Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node
Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front

Properties of depth-first search
Complete? No: fails in infinite-depth spaces,
spaces with loops
Modify to avoid repeated states along path
complete in finite spaces

Time? O(b
m
): terrible if m is much larger than d
but if solutions are dense, may be much faster
than breadth-first
Space? O(bm), i.e., linear space!
Optimal? No
Depth-limited search
= depth-first search with depth limit l,
i.e., nodes at depth l have no successors

Recursive implementation:
Iterative deepening search
o Prinsipnya: lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
Strategi ini menggabungkan manfaat DFS dan BFS: space
complexity linier & completeness terjamin
Lakukan depth-limited search dengan l = 0,1,2, sampai
tidak cutoff
Iterative deepening search l =0
Iterative deepening search l =1
Iterative deepening search l =2
Iterative deepening search l =3
Iterative deepening search
Number of nodes generated in a depth-limited search to
depth d with branching factor b:
N
DLS
= b
0
+ b
1
+ b
2
+ + b
d-2
+ b
d-1
+ b
d


Number of nodes generated in an iterative deepening
search to depth d with branching factor b:
N
IDS
= (d+1)b
0
+ d b^
1
+ (d-1)b^
2
+ + 3b
d-2
+2b
d-1
+ 1b
d


For b = 10, d = 5,

N
DLS
= 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111

N
IDS
= 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456


Overhead = (123,456 - 111,111)/111,111 = 11%
Sekilas strategi IDS ini kelihatan tidak efisien atau
boros: banyak node digenerate ulang!
IDS sebenarnya malah lebih cepat daripada BFS
(jika tree memiliki depth besar)




(root node tidak dihitung krn dianggap initial
state)
Pada umumnya Iterative deepening search
adalah uninformed search strategy terbaik jika
state space besar dan kedalaman solusi (d)
tidak diketahui
Properties of iterative
deepening search
Complete? Yes

Time? (d+1)b
0
+ d b
1
+ (d-1)b
2
+ + b
d
=
O(b
d
)

Space? O(bd)

Optimal? Yes, if step cost = 1
Summary of algorithms


5. Berikan keadaan awal, tujuan, suksesor dan biaya
, berikan formulasi problem yang menurut anda
paling tepat
6. Temukan solusinya,
tunjukkan langkahnya