Anda di halaman 1dari 23

1

Search Strategy
Search Strategy
1. Metode Buta (Uninformed Search)
Breadth-first search
Depth-first search
2. Metode Terbimbing(Informed Search)
Greedy best-first search
Heuristic search
o Generate & Test
o Hill-climbing search : Simple, Steepest-Ascent
o Best-first search : OR Graph, AlgoritmaA*
o Simulated annealing search
Salah satuhal penting dalam menentukan keberhasilan sistem
cerdas adalah kesuksesandalampencarian(search)
Pada dasarnya ada 2 Teknik pencarian :
2
Breadth-First Search
Disebut juga pencarian melebar
Semua node pada level n akan dilacak terlebih dahulu sebelummelacak
node-node pada level n+1
Pencarian dimulai dari node level 0, menuju level 1 dari kiri ke kanan,
lalu menuju level 2 dari kiri ke kanan dst-nya, hingga ditemukan
solusi/tujuan.
Keuntungan :
o Tidak akan menemui jalan buntu
o J ika terdapat lebih dari satu solusi maka solusi dengan lintasan
minimum akan dipilih sebagai solusi terbaik.
Kelemahan :
o Membutuhkan memori yang cukup banyak, karena harus
menyimpan semua node dalamsatu pohon.
o Membutuhkan waktu yang cukup lama karena akan menguji n level
untuk mendapatkan solusi pada level n+1
Breadth-First Search
Move downwards, level by level, until
goal is reached.
S
A
D
B D A E
C E E B B F
D F
B
F C E A C
G
G
G G F C
3
Algoritma Breadth-First Search
1. Buat variabel NODE_LIST dan tetapkansebagai keadaanawal.
2. Kerjakan langakh-langkahberikut ini, sampai tujuan tercapai atau
NODE_LIST dalamkeadaankosong:
a.Hapus elemen pertama dari NODE_LIST, sebut dengan nama E.
J ika NODE_LIST kosong, keluar.
b.Pada setiap langkahyang aturannya cocok denganE, kerjakan:
i. Aplikasikan aturantersebut untuk membentuk keadaanbaru.
ii. J ika keadaanawal adalah tujuan yang diharapkan,
sukses dan keluar.
iii. J ika tidak demikian, tambahkankeadaanawal yang barutsb
pada akhir NODE_LIST.
Breadth-First Search
6
Initialize: Let Q = {S}
While Q is not empty
pull Q1, the first element in Q
if Q1 is a goal
report(success) and quit
else
child_nodes = expand(Q1)
eliminate child_nodes which represent
loops
put remaining child_nodes at the back of Q
end
Continue
Pseudocode for BFS
4
0,0
0,3
4,0
4,0 3,0 0,0
0,0 3,3 0,3
0,3 4,2 3,0
0,2 3,3 4,0
0,0 2,0 4,2
4,3 1,3 0,0
Dst-nya
Breadth-First Search
Depth-First Search
Pencarian dimulai dari node level 0, dilanjutkan ke node-node anaknya
sampai selesai, baru berpindah ke node-node yang selevel hingga
ditemukan solusi/tujuan.
J ika proses pencarian tidak menemukan solusi pada satu lintasan
maka akan dilakukan backtracking (pencarian mundur) ke node
sebelumnya untuk kemudian baru berpindah ke level berikutnya
(khususnya untuk node-node yang bercabang)
Keuntungan :
o Membutuhkan memori yang relatif kecil (bila dibanding BFS).
o Hanya node yg aktif saja yang disimpan.
o Pencarian solusi mungkin tidak harus memeriksa semua lintasan.
o Begitu pencarian menemukan satu solusi maka pencarian selesai.
Kelemahan :
o Hanya akan mendapatkan 1 solusi setiap kali pencarian.
o Solusi alternatif tidak menjadi perhatian
5
S
A
D
B D A E
C E E B B F
D F
B
F C E A C
G
G
G G F C
Depth-First Search
What about time complexity and space complexity ?
Misal diasumsikan ada 1 solusi pada pohon. Misal pohon
pelacakan memiliki cabang yg selalu sama yaitu b dan tujuan
dicapai pada level ke-d.
Antrian pertama memiliki 1 state dan pada level 1 akan
diekspansi sebanyak b.
Pada level 2 diekspansi sebanyak b
2
.
Pada level 3 diekspansi sebanyak b
3
.
Untuk kedalaman hingga level d maka diperoleh deret ekspansi :
1+ b + b
2
+ b
3
+ . . . . + b
d
O(b
d
)
Karena setiap lintasan tersimpan di memori maka
kompleksitas ruangnya akan setara dengan kompleksitas
waktu yaitu O(b
d
).
Breadth-First Search
6
Breadth-First Search
Analisis Kompleksitas Waktu
If a goal node is found on depth d of the tree, all nodes up till that
depth are created.
m
G
b
d
Thus: O(b
d
)
QUEUE contains all and nodes. (Thus : 4) .
In General: b
d
Largest number of nodes in QUEUE is reached on the level d of
the goal node.
G
m
b
d
G
Breadth-First Search
Analisis Kompleksitas Ruang
7
Secara umum, BFS cocok untuk pencarian
dengan lintasan kecil.
Breadth-First Search
0,0
0,3
4,0
4,0 3,0 0,0
0,0 3,3 0,3
0,3 4,2 3,0
0,2 3,3 4,0
0,0 2,0 4,2
4,3 1,3 0,0
Dst-nya
Depth-First Search
8
Initialize: Let Q = {S}
While Q is not empty
pull Q1, the first element in Q
if Q1 is a goal
report(success) and quit
else
child_nodes = expand(Q1)
eliminate child_nodes which represent loops
put remaining child_nodes at the front of Q
end
Continue
Depth-First Search
Pseudocode for DFS
Depth-First Search
Analisis Kompleksitas Waktu
In the worst case:
the (only) goal node may be on the right-most branch,
G
m
b
Time complexity = b
m
+b
m-1
+ +1=b
m+1
-1
Thus: O(b
m
)
b - 1
9
Largest number of nodes in QUEUE is reached in bottom left-
most node.
Example: m = 3, b = 3 :
...
QUEUE contains all nodes. Thus: 7.
In General: ((b-1) * m) +1
Order: O(m*b)
Depth-First Search
Analisis Kompleksitas Ruang
Good :
- Since we dont expand all nodes
at a level, space complexity is
modest. For branching factor b
and depth m, we require bm
number of nodes to be stored in
memory. This is much better
than b
d
.
- In some cases, DFS can be
faster than BFS. However, the
worse case is still O(b
m
).
Bad :
- If you have deep search
trees (or infinite which is
quite possible), DFS may
end up running off to infinity
and may not be able to
recover.
- Thus DFS is neither optimal
or complete.
Evaluation of DFS by four criteria :
Depth-First Search
18
10
PerbandinganBFS dan DFS
Criterion Breadth-first Depth-first
Time O(b
d
) O(b
m
)
Space O(b
d
) O(bm)
Optimal ? Yes, jika bobot tiap langkah identik No
Complete ? Yes, jika tree berhingga No
b maks jumlah cabang
d level kedalaman
m kedalaman maksimum
19
Disebut juga metode Heuristic
(rule of thumb, hints)
Merupakan pendekatan metode pelacakan dalamAI
(Greedy) Best-first Search
A* search
Hill climbing
Search Strategy: Informed Search
11
Metode yang didesain untuk mempersempit area pelacakan.
Berkaitan dengan pohon pelacakan (search tree), metode heuristik
akan memangkas ukuran lintasan-lintasan yang tidak vital
berdasarkan pengalaman atau informasi/keadaan awal.
Analogi : Ketika seorang penjaga pantai mencari seseorang yang
hilang di lautan, ia tidak perlu memeriksa seluruh isi lautan.
Kondisi sekitar pantai, arah dan kecepatan angin dsb dapat diguna
kan untuk membatasi area pelacakan.
Metode ini diharapkan akan menghemat sumber daya pelacakan.
Search Strategy: Informed Search
(Greedy) Best-First Search
Menelusuri node yang terdekat dengantujuan.
Fungsi evaluasi heuristik : f(n) =h(n)
f(n) : fungsi evaluasi heuristik
h(n) : estimasi nilai dari node n ke node tujuan.
Pada search tree, dibutuhkan2 antrian :
o OPEN, yang berisi node-node yang sudahdibangkitkan,
dan sudahmemiliki heuristik tetapi belumdiuji. Umumnya
merupakanantrianyang berisi elemen-elemendengannilai
heuristik tinggi.
o CLOSED, yang berisi node-node yang sudahdiuji
12
(Greedy) Best-First Search
Romania with step costs in km
374
329
253
Problem : Posisi Anda di Arad. Tentukanlintasanuntukmencapai Bukharest
menggunakanheuristikh
SLD
(n)=Straight-line Distance from n to Bukharest
13
Node 1 yang diekspansi adalah Sibiu, karena terdekat dengan tujuan
daripada Zerind danTimisoara
Ekspansi node berikutnya adalah Faragas, karena terdekat dengan tujuan
14
Faragas menghubungkanlangsungke tujuan.
Pada contoh tersebut, greedy best first search menggunakan heuristik
h
SLD
(n) menemukan solusi dengan melakukan ekspansi hanya pada node
yang dianggap terdekat dengan tujuan, sehingga estimasi biayanya minimum.
Akan tetapi solusi tsb tidak optimum, karena menuju Bukharest via Sibiu dan
Faragas ternyata 32 km lebih jauh dibanding via Rimnicu Vilcea dan Pitesti.
Arad Sibiu Faragas Bukharest : 450 km
Arad Sibiu Rimnicu Vilcea Pitesti Bukharest : 418 km
Lintasan tsb tidak dilalui karena nilai heuristik untuk Rimnicu Vilcea lebih tinggi
dibanfing Faragas.
(Greedy) Best-First Search
15
A* Search
Perbaikan dari metode (Greedy) best first search.
Fungsi evaluasi untuk node n : f(n) =g(n) +h(n)
g(n) : estimasi biaya/nilai dari node awal ke node n
h(n) : estimasi biaya/nilai dari node n ke node tujuan
A* search meminimalkan total biaya/nilai
5-
30
16
5-
31
5-
32
17
5-
33
5-
34
18
5-
35
Hill Climbing Search
Membangkitkan semua kemungkinan solusi dari keadaan awal.
Proses pengujian berdasarkan fungsi heuristik untuk menunjukkan
seberapa baik nilai estimasi yang diambil terhadap keadaan-keadaan lain
yang mungkin.
a) Mulai dari keadaan awal, lakukan pengujian. J ika merupakan tujuan, STOP.
J ika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
b) Kerjakan iterasi berikut hingga ditemukan solusi atau sampai tidak ada operator
baru yang bisa diaplikasikanpada keadaan sekarang :
Cari operator yang belumpernah digunakan untuk mendapat operator baru
Evaluasi keadaan baru tersebut :
o J ika keadaan baru merupakan tujuan, keluar.
o J ika bukan tujuan, tapi nilainya lebih baik dari keadaan sekarang, maka
jadikansebagai keadaan baru tsb menjadi keadaan sekarang.
o J ika keadaan baru tidak lebih baik dari keadaan sekarang, lanjutkan
iterasi
Note : - Algoritma berhenti jika sudah mencapai nilai optimum
- Tidak diijinkanmelihat satupun langkah sebelumnya
19
A B
C D
8
7
6
5
4 3
Hill Climbing Search
Seorang salesman akan mengunjungi 4 kota. J arak antar
Kota sudah diketahui. Kita ingin mengetahui rute terpendek
Dimana setiap kota hanya boleh dikunjungi tepat 1 kali.
Misal jarak antar kota diketahui seperti pada gambar tsb.
38
Solusi solusi yang mungkin dengan menyusun kota-
kota, misalnya :
A B C D : dengan panjang lintasan (=19)
A B D C : (=18)
A C B D : (=12)
A C D B : (=13)
dst
20
Ruang keadaan berisi semua kemungkinan
lintasan yang mungkin. Operator digunakan
untuk menukar posisi kota-kota yang
bersebelahan. Fungsi heuristik yang digunakan
adalah panjang lintasan yang terjadi.
Operator yang akan digunakan adalah menukar
urutan posisi 2 kota dalam 1 lintasan. Bila ada n
kota, dan ingin mencari kombinasi lintasan
dengan menukar posisi urutan 2 kota, maka
akan didapat sebanyak :
Tukar 1,2 =menukar urutan posisi kota ke 1 dengan kota ke 2
Tukar 2,3 =menukar urutan posisi kota ke 2 dengan kota ke 3
Tukar 3,4 =menukar urutan posisi kota ke 3 dengan kota ke 4
Tukar 4,1 =menukar urutan posisi kota ke 4 dengan kota ke 1
Tukar 2,4 =menukar urutan posisi kota ke 2 dengan kota ke 4
Tukar 1,3 =menukar urutan posisi kota ke 1 dengan kota ke 3
Keenamkombinasi ini akan dipakai semuanya
sebagai operator, yaitu
21
Kemungkinan solusi yang mungkin (ruang keadaan) :
A B C D
B C A
C D B
D C D
D C B
B B C
Fungsi heuristik : panjang lintasan yang terjadi
Operator digunakan untuk menukar posisi kota
yang bersebelahan. Misal :
T1,2 : Tukar posisi kota ke 1 dengan kota ke 2
dst
Hill Climbing Search
42
22
Level pertama, hill climbing mengunjungi BACD (=17), BACD (=17) <ABCD
(=19), sehingga BACD menjadi pilihan selanjutnya dengan operator Tukar 1,2
Level kedua, mengunjungi ABCD, karena operator Tukar 1,2 sudah dipakai
BACD, maka pilih node lain yaitu BCAD (=15), BCAD (=15) <BACD (=17)
Level ketiga, mengunjungi CBAD (=20), CBAD (=20) >BCAD (=15), maka pilih
node lain yaitu BCDA (=18), pilih node lain yaitu DCAB (=17), pilih node lain
yaitu BDAC (=14), BDAC (=14) <BCAD (=15)
Level keempat, mengunjungi DBAC (=15), DBAC(=15) >BDAC (=14), maka
pilih node lain yaitu BADC (=21), pilih node lain yaitu BDCA (=13), BDCA (=13)
<BDAC (=14) Level kelima, mengunjungi DBCA (=12), DBCA (=12) <BDCA
(=13)
Level keenam, mengunjungi BDCA, karena operator Tukar 1,2 sudah dipakai
DBCA, maka pilih node lain yaitu DCBA, pilih DBAC, pilih ABCD, pilih DACB,
pilih CBDA
Karena sudah tidak ada node yang memiliki nilai heuristik yang lebih kecil
dibanding nilai heuristik DBCA, maka node DBCA (=12) adalah lintasan
terpendek (SOLUSI)
Keadaan awal, lintasan ABCD (=19)
44
THE MOTIVATION
Bill gates, salah satu orang terkaya di dunia, mempunyai motto:
"Jika Anda terlahir miskin itu bukan kesalahan Anda,
tapi jika Anda mati miskin itu adalah kesalahan Anda".
Menurut Bill Gates ada 3 kunci sukses dalam usaha baru.
1. Berada di tempat yang tepat pada waktu yang tepat.
2. Memiliki visi di mana industri / bisnis Anda akan bekerja
3. Mengambil Aksi besar-besaran dan Segera. (Ini adalah waktu untuk bertindak).
23
Referensi
45
Aris Marjuni, Materi Ajar: Artificial Intelligence, 2005