Artificial Intelligence
Pertemuan 3
METODE PENCARIAN
(SEARCHING)
Pokok Bahasan
1. Blind 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)
2. Heuristic Search
• Generate and Test
• Hill Climbing (Simple Hill Climbing dan Steepest-Ascent Hill
Climbing)
• Best First Search (Greedy Best First Search) dan Algoritma A*
• Simulated Annealing
Metode Pelacakan / Pencarian (Searching)
Problem Solving :
Intellegent Agent Memecahkan Masalah
Problem Solving
• Pilih Jalan yang Mana ?
Problem Solving
Apakah masalah ini bisa dipecahkan?
YES / NO ?
Intelligent Agent
sensors
?
environment
agent
actuators
• Formulate Goal
• Formulate Problem
•States
•Actions
• Find Solution
Definisi Problem
• Initial State Liburan di Romania. Posisi
awal di Arad
• Actions(s) {a1, a2, a3, ...}
– Input = State Kota
– Hasil = Beberapa Action
• Result(s,a) s1 State baru (Kota-kota)
• GoalTest(s) T/F Bucharest
• Path Cost Function
Formulate Goal, Formulate Problem, Formulate Solusi
Pengorganisasian Masalah
• Tree Search Struktur Pohon
• Kemungkinan2 solusi dari setiap membentuk ruang
solusi (solution space).
• Ruang solusi diorganisasikan ke dalam struktur pohon.
• Pohon dinamis : pohon yang dibangun selama pencarian
solusi berlangsung, yaitu menyatakan status-status
persoalan pada saat pencarian solusi berlangsung.
• Pencarian solusi dilakukan dengan mengunjungi
(traversal) simpul-simpul di dalam pohon.
Teknik Pencarian dan Jenisnya
Teknik Search menentukan simpul mana yang dibuat lebih dulu dan mana
yang kemudian sampai ditemukannya simpul solusi.
Dari proses search dihasilkan diagram tree, sehingga perlu penjelasan
beberapa terminologi diagram tree seperti berikut :
• Simpul
• Level/Cabang
• Path
• Parent
• Child
• Root
• Leave
• Jumlah Ruang Simpul
• Langkah solusi (Solusi)
Metode Pencarian dan Pelacakan
Uninformed
tidak memanfaatkan informasi tertentu
Informed
memanfaatkan informasi tertentu
Informasi tertentu tersebut disebut Heuristik
berfungsi untuk mempercepat proses pencarian
Heuristik = Intelligent
6
Pencarian Melebar Pertama (Breadth-First
Search)
• Breadth-first search (BFS) melakukan
proses searching pada semua node yang
berada pada level atau hirarki yang sama
terlebih dahulu sebelum melanjutkan
proses searching pada node di level
berikutnya.
Contoh Breadth First Search
Dari gambar
disamping maka
solusinya adalah:
S–A–B–C–D–
E–F–H–G
Prosesnya sama-
sama lama dengan
Depth First Search
tetapi tingkat
kesalahannya lebih
tinggi.
Contoh Breadth First Search (1)
Algoritma :
1. Buat suatu variabel Node_List dan
tetapkan sebagai keadaan awal
2. Kerjakan langkah-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 suatu keadaan baru
ii Jika keadaan awal adalah tujuan
yang diharapkan, sukses dan keluar
Iii Jika Tidak, tambahkan keadaan
awal yang baru tersebut pada akhir
Node_List.
Contoh Breadth First Search (2)
Keuntungan :
- Tidak akan menemui jalan buntu
- Jika ada 1 solusi, maka BFS
akan menemukannya, Dan jika
ada lebih dari 1 solusi, maka
solusi minimum akan ditemukan.
Kelemahan :
- Membutuhkan memori yang
cukup banyak karena
menyimpan semua node dalam
satu pohon
- Membutuhkan waktu yang
cukup lama, karena akan
menguji n level untuk mendapatkan
solusi pada level yang ke (n+1)2
Contoh BFS 1: Kasus Travelling from ARAD To
Bucharest
Penyelesaian Contoh BFS : Kasus 1
Penyelesaian Contoh BFS : Kasus 1
Beberapa Kriteria dalam Strategi BFS
• Completeness
Apakah strategi tersebut menjamin penemuan jika
solusinya memang ada?
• Time complexity
Berapa lama waktu yang diperlukan?
• Space complexity
Berapa banyak memori yang diperlukan?
• Optimality
Apakah startegi tersebut menemukan solusi yang paling
baik jika terdapat beberapa solusi berbeda pada
permaslahan yang ada
Properties of BFS
• Completeness : Yes, if b is finite
• Time Complexity : 1+b+b2+…+bd = 0(bd), i.e.
exponential in d
• Space Complexity : 0(bd), keep every node in
memory
• Optimality : yes (assuming cost = 1 per step)
• Why keep every node in memory ? To avid revisiting
already-visited node, which may easily yield infinite loops
already
Time Complexity of BFS
d
b m
G
• Thus : O(bd)
Space Complexity of BFS
• Largest number of nodes in Queue is reached on
the level d of the goal node
d
b G m
S3:
3
S1: S2: 1 1
1 2 3 2 3 2
S8:
S6: 2
S4: S5: S7:
2 2 3 3 1
1 3 1 3 1 2 1 2 3
S9: S10:
3 1
2 2
1 3
Contoh Kasus Permainan 8-Puzzle
Solusi 8-Puzzle dengan BFS
2 1 6
4 8
7 5 3
up r ig h t
dow n le ft
2 6 2 1 6 2 1 6 2 1 6
4 1 8 4 5 8 4 8 4 8
7 5 3 7 3 7 5 3 7 5 3
le ft r ig h t le ft r ig h t dow n up up dow n
2 6 2 6 2 1 6 2 1 6 2 1 6 1 6 2 1 2 1 6
4 1 8 4 16 8 4 5 8 4 5 8 7 4 8 2 4 8 4 8 6 4 8 3
7 5 3 7 5 3 7 3 7 5 5 3 7 5 3 7 5 3 7 5
dow n
4 2 6
16 8 ... d a n s e te ru s n y a
7 5 3
Depth First Search (DFS)
• Proses pencarian dilakukan pada semua
anaknya sebelum dilakukan pencarian ke
node-node yang selevel.
• Pencarian dimulai dari node akar ke level
yang lebih tinggi. Proses diulangi terus
hingga ditemukan solusi.
Depth First Searching (DFS) 1
Solusi : S-A-D-A-E-F-E-G-B-H-B-I-J-I-K-C-L-N
Hill Climbing
• Merupakan metode pelacakan yang
mengkombinasikan pelacakan Generate
and Test dengan Backtracking.
• Untuk langkah awal pelacakan dengan
memilih node yang memiliki nilai terbaik
(fungsi heuristik).
Hill Climbing
• Kelebihan :
- Butuh memori kecil
- Menemukan solusi tanpa harus menguji lebih
banyak lagi
• Kelemahan :
- Mungkin terjebak dalam local optimum
- Perlu menemukan aturan yang tepat
Algoritma Hill Climbing
Solusi : S-C-B-G-I-G-H = 41
Contoh Travelling Salesman Problem
Seorang salesman ingin mengunjungi n kota. Jarak antara
tiap-tiap kota sudah diketahui. Ingin diketahui rute
terpendek dimana setiap kota hanya boleh dikunjungi
tepat 1 kali
A 8 B
3 4
7 5
D 6 C
Contoh Hill Climbing (1)
Solusi – solusi yang mungkin dengan menyusun
kota-kota dalam urutan abjad, misal :
A – B – C – D : dengan panjang lintasan (=19)
A – B – D – C : (=18)
A – C – B – D : (=12) A 8 B
A – C – D – B : (=13)
3 4
dst 5
7
D 6 C
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 :
Keenam kompbinasi ini akan dipakai semuanya sebagai operator,
yaitu :
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
•Keadaan awal, lintasan ABCD (=19).
Level pertama, hill climbing mengunjungi BACD (=17), BACD (=17) <
ABCD (=19), sehingga
BACD menjadi pilihan selanjutnya dengan operator Tukar 1,2
•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)
1 2 3 1 2 3
7 8 4 8 4
6 5 7 6 5
Langkah awal
TUJUAN
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=6 h=4 h=5
TUJUAN
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=6 h=4 h=5
Dari 3 operator yang digunakan diperoleh hasil pergeseran ubin
kosong ke kiri bernilai 6 (h=6) , pergeseran kosong ke kanan bernilai
4 (h=4) dan pergeseran ubin kosong ke atas bernilai 5 (h=5), sehingga
langkah selanjutnya yang harus dilakukan adalah menggeser ubin
kosong ke kiri
♦ Untuk jumlah ubin yang menempati posisi yang salah
Jumlah yang lebih kecil adalah yang diharapkan
(lebih baik)
TUJUAN
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=2 h=4 h=3
TUJUAN
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=2 h=4 h=3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5