Metode Pelacakan Buta
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER INDONESIA (STMIK-INDONESIA)
© 2011
Inteligensi Buatan (MKB6403)
Kuliah 4
Cara Kerja Problem-Solving Agent
1. Perumusan tujuan (goal formulation): tentukantujuan yang ingin dicapai
2. Perumusan masalah (problem formulation): tentukan tindakan (action) dan keadaan (state) yang dipertimbangkan dalam mencapai tujuanyang dipertimbangkan dalam mencapai tujuan
3. Pencarian solusi masalah (searching): tentukanrangkaian tindakan yang perlu diambil untukmencapai tujuan
4. Pelaksanaan solusi (execution): laksanakanrangkaian tindakan yang sudah ditentukan ditahap sebelumnya
10/19/2011 Metode Pelacakan Buta 2
Contoh Penelusuran Search Tree
• Mulai dari root node (Arad) sebagai current node
• Lakukan node expansion
• Pilih salah satu node yang di-expand sebagai current node
yang baru. Ulangi langkah sebelumnya
Arad
10/19/2011 Metode Pelacakan Buta 3
Arad
Sibiu ZerindTimisoara
Fagaras Oradea Rimnicu Vilcea
Algoritma Penelusuran Search Tree
function GENERAL-SEARCH(problem,fringe) returns solution or failure
fringe ← INSERT(MAKE-NODE(INITIAL-STATE(problem),fringe))loop do
if fringe is EMPTY than return failurenode ← REMOVE-FIRST(fringe)if GOAL-TEST(problem) applied to STATE(node) succeeds then return node
fringe ← INSERT-ALL(EXPAND(node,problem),fringe)
1. Pada awal, fringe = himpunan node yang mewakili initial state
2. Pilih satu node dari fringe sebagai current node. Jika fringe kosong, selesai dengan gagal
3. Jika node tsb . lolos goal test, selesai dengan sukses!
4. Jika tidak, lakukan node expansion terhadap current node tsb.
5. Ulangi langkah 2
10/19/2011 Metode Pelacakan Buta 4
fringe ← INSERT-ALL(EXPAND(node,problem),fringe)end
Strategi Pencarian
• Ada berbagai jenis strategi dalam melakukan
searching. Perbedaannya terdapat pada node
expansion-nya
• Search strategy dievaluasi berdasarkan:Search strategy dievaluasi berdasarkan:
– Completeness: apakah solusi (jika ada) pasti ditemukan?
– Time complexity: berapa lama untuk mencari solusi? atau
berapa banyak jumlah node yang di-expand?
– Space complexity: jumlah maksimum node di dalam
memori
– Optimality: apakah solusi dengan minimum cost pasti
ditemukan?
10/19/2011 Metode Pelacakan Buta 5
Jenis-jenis Strategi Pencarian
• Ada 2 jenis strategi pencarian:
– Uninformed strategy, hanya menggunakan
informasi dari definisi masalah
– Informed strategy, menggunakan informasi– Informed strategy, menggunakan informasi
lainnya
• Uninformed strategy dapat diterapkan secara
generik terhadap semua jenis masalah yang
bisa direpresentasikan dalam sebuah state
space
10/19/2011 Metode Pelacakan Buta 6
Jenis-jenis Uninformed Strategy
• Breadth-first Search (BFS)
• Depth-first Search (DFS)
• Depth-limited Search
• Iterative Deepening Search• Iterative Deepening Search
10/19/2011 Metode Pelacakan Buta 7
Breadth-first Search
• Prinsip breadth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“dekat” ke root → systema�c strategy
• Implementasi: fringe adalah sebuah queue, data struktur
FIFO (First In First Out)FIFO (First In First Out)
• Hasil node expansion (successor function) ditaruh di
belakang
10/19/2011 Metode Pelacakan Buta 8
Breadth-first Search
• Prinsip breadth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“dekat” ke root → systema�c strategy
• Implementasi: fringe adalah sebuah queue, data struktur
FIFO (First In First Out)FIFO (First In First Out)
• Hasil node expansion (successor function) ditaruh di
belakang
10/19/2011 Metode Pelacakan Buta 9
A
Breadth-first Search
• Prinsip breadth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“dekat” ke root → systema�c strategy
• Implementasi: fringe adalah sebuah queue, data struktur
FIFO (First In First Out)FIFO (First In First Out)
• Hasil node expansion (successor function) ditaruh di
belakang
10/19/2011 Metode Pelacakan Buta 10
A
B C
A
Breadth-first Search
• Prinsip breadth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“dekat” ke root → systema�c strategy
• Implementasi: fringe adalah sebuah queue, data struktur
FIFO (First In First Out)FIFO (First In First Out)
• Hasil node expansion (successor function) ditaruh di
belakang
10/19/2011 Metode Pelacakan Buta 11
A
B C
D E
A
B
Breadth-first Search
• Prinsip breadth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“dekat” ke root → systema�c strategy
• Implementasi: fringe adalah sebuah queue, data struktur
FIFO (First In First Out)FIFO (First In First Out)
• Hasil node expansion (successor function) ditaruh di
belakang
10/19/2011 Metode Pelacakan Buta 12
A
B C
D E F G
A
B C
Cari solusi dari Arad ke Bucharet dengan menggunakan BFS!
10/19/2011 Metode Pelacakan Buta 13
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 14
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 15
A
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 16
A
B C
A
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 17
A
B C
D E
A
B
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 18
A
B C
D E
A
B
H I
D
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 19
A
B C
D E
A
B
H I
D
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 20
A
B C
D E
A
B
H I J K
D E
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 21
A
B C
D E
A
B
H I J K
D E
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 22
A
B C
D E F G
A
B C
H I J K
D E
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 23
A
B C
D E F G
A
B C
H I J K L M
D E F
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 24
A
B C
D E F G
A
B C
H I J K L M
D E F
Depth-first Search
• Prinsip depth-first search:
Lakukan node expansion terhadap node di fringe yang paling
“jauh” dari root
• Implementasi: fringe adalah sebuah stack, data struktur LIFO
(Last In First Out)(Last In First Out)
10/19/2011 Metode Pelacakan Buta 25
A
B C
D E F G
A
B C
H I J K L M N O
D E F G
Cari solusi dari Arad ke Bucharet dengan menggunakan DFS!
10/19/2011 Metode Pelacakan Buta 26
Depth-limited Search
• Prinsip depth-limited search:
Sama seperti depth-first search dengan depth yang
terbatas.
• Contoh: Ada 20 kota dalam peta Rumania. Jika ada• Contoh: Ada 20 kota dalam peta Rumania. Jika ada
solusinya, maka length maksimum adalah 19.
10/19/2011 Metode Pelacakan Buta 27
Iterative Deepening Search
• Prinsip depth-first search:
Lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
10/19/2011 Metode Pelacakan Buta 28
Iterative Deepening Search
• Prinsip depth-first search:
Lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
10/19/2011 Metode Pelacakan Buta 29
Iterative Deepening Search
• Prinsip depth-first search:
Lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
10/19/2011 Metode Pelacakan Buta 30
Iterative Deepening Search
• Prinsip depth-first search:
Lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
10/19/2011 Metode Pelacakan Buta 31
Iterative Deepening Search
• Prinsip depth-first search:
Lakukan depth-limited search secara bertahap
dengan nilai l yang incremental
10/19/2011 Metode Pelacakan Buta 32
Cari solusi dari Arad ke Bucharet dengan menggunakan depth-
limited search dengan l = 3!
10/19/2011 Metode Pelacakan Buta 33