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, Algoritma A* o Simulated annealing search
Salah satu hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian (search)
Breadth-First Search
Disebut juga pencarian melebar
Semua node pada level n akan dilacak terlebih dahulu sebelum melacak 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 Jika 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 dalam satu 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 C FAlgoritma Breadth-First Search
1. Buat variabel NODE_LIST dan tetapkan sebagai keadaan awal. 2. Kerjakan langakh-langkah berikut ini, sampai tujuan tercapai atau
NODE_LIST dalam keadaan kosong :
a.Hapus elemen pertama dari NODE_LIST, sebut dengan nama E. Jika NODE_LIST kosong, keluar.
b.Pada setiap langkah yang aturannya cocok dengan E, kerjakan : i. Aplikasikan aturan tersebut untuk membentuk keadaan baru. ii. Jika keadaan awal adalah tujuan yang diharapkan,
sukses dan keluar.
iii. Jika tidak demikian, tambahkan keadaan awal yang baru tsb pada akhir NODE_LIST.
Breadth-First Search
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
0,0 0,3 4,0 4,0 0,0 3,0 0,0 0,3 3,3 0,3 3,0 4,2 0,2 4,0 3,3 0,0 4,2 2,0 4,3 0,0 1,3 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.
Jika 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
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 C F
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 b2. Pada level 3 diekspansi sebanyak b3.
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
Analisis Kompleksitas Waktu
If a goal node is found on depth dof the tree, all nodes up till that depth are created.
m
G
b
d
Thus: O(bd)
QUEUE contains all and nodes. (Thus : 4) .
In General: bd
• Largest number of nodes in QUEUE is reached on the level dof
the goal node.
G
m
b
d
G
Breadth-First Search
Analisis Kompleksitas Ruang
Secara umum, BFS cocok untuk pencarian
dengan lintasan kecil.
Breadth-First Search
0,0
0,3
4,0
4,0
0,0
3,0
0,0
0,3
3,3
0,3
3,0
4,2
0,2
4,0
3,3
0,0
4,2
2,0
4,3
0,0
1,3
Dst-nyaDepth-First Search
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 = bm + bm-1 + … + 1 = bm+1 -1
• 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 don’t 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 bd.
- In some cases, DFS can be faster than BFS. However, the worse case is still O(bm).
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
Perbandingan BFS 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 identikNo
Complete ? Yes,
jika tree berhinggaNo
b – maks jumlah cabang
d – level kedalaman
m – kedalaman maksimum
19
Disebut juga metode Heuristic
(‘rule of thumb’, ‘hints’)
Merupakan pendekatan metode pelacakan dalam AI
(Greedy) Best-first Search
A* search
Hill climbing
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 dengan tujuan.
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, dibutuhkan 2 antrian :
o OPEN, yang berisi node-node yang sudah dibangkitkan,
dan sudah memiliki heuristik tetapi belum diuji. Umumnya merupakan antrian yang berisi elemen-elemen dengan nilai heuristik tinggi.
(Greedy) Best-First Search
Romania with step costs in km
374
329 253
Problem : Posisi Anda di Arad. Tentukan lintasan untuk mencapai Bukharest
Node 1 yang diekspansi adalah Sibiu, karena terdekat dengan tujuan daripada Zerind dan Timisoara
•Faragas menghubungkan langsung ke tujuan.
Pada contoh tersebut, greedy best first search menggunakan heuristik hSLD(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.
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-31
5-
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. Jika merupakan tujuan, STOP. Jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
b) Kerjakan iterasi berikut hingga ditemukan solusi atau sampai tidak ada operator baru yang bisa diaplikasikan pada keadaan sekarang :
Cari operator yang belum pernah digunakan untuk mendapat operator baru
Evaluasi keadaan baru tersebut :
o Jika keadaan baru merupakan tujuan, keluar.
o Jika bukan tujuan, tapi nilainya lebih baik dari keadaan sekarang, maka
jadikan sebagai keadaan baru tsb menjadi keadaan sekarang.
o Jika keadaan baru tidak lebih baik dari keadaan sekarang, lanjutkan
iterasi
Note : - Algoritma berhenti jika sudah mencapai nilai optimum - Tidak diijinkan melihat satupun langkah sebelumnya
A B C D 8 7 6 5 4 3
Hill Climbing Search
Seorang salesman akan mengunjungi 4 kota. Jarak 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.
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)
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
Keenam kombinasi ini akan dipakai semuanya
sebagai operator, yaitu
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
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
Referensi
45 Aris Marjuni, Materi Ajar: Artificial Intelligence, 2005