Breadth/Depth First Search (BFS/DFS)�Pertemuan 9
1
Traversal Graf
🡺 Traversal graf: pencarian solusi
2
social graph
http://www.oreilly.de/catalog/9780596518172/toc.html
Web page network
Algoritma Pencarian Solusi
3
Representasi Graf dalam Proses Pencarian
Dalam proses pencarian solusi, terdapat dua pendekatan:
- graf direpresentasikan sebagai struktur data
- graf tidak tersedia sebelum pencarian, graf dibangun selama pencarian solusi
4
Graf Statis
5
Pencarian Melebar (BFS)
1. Kunjungi simpul v
2. Kunjungi semua simpul yang bertetangga dengan simpul v terlebih dahulu.
3. Kunjungi simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi, demikian seterusnya.
6
1
2
3
4
5
6
7
8
BFS: Struktur Data
aij= 0, jika simpul i dan simpul j tidak bertetangga.
2. Antrian q untuk menyimpan simpul yang telah dikunjungi.
3. Tabel Boolean, diberi nama “dikunjungi”
dikunjungi : array[l..n] of boolean
dikunjungi[i] = true jika simpul i sudah dikunjungi
dikunjungi[i] = false jika simpul i belum dikunjungi
7
8
BFS: Ilustrasi
9
1
2
3
4
5
6
7
8
Iterasi | V | Q | dikunjungi | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
Inisialisasi | 1 | {1} | T | F | F | F | F | F | F | F |
Iterasi 1 | 1 | {2,3} | T | T | T | F | F | F | F | F |
Iterasi 2 | 2 | {3,4,5} | T | T | T | T | T | F | F | F |
Iterasi 3 | 3 | {4,5,6,7} | T | T | T | T | T | T | T | F |
Iterasi 4 | 4 | {5,6,7,8} | T | T | T | T | T | T | T | T |
Iterasi 5 | 5 | {6,7,8} | T | T | T | T | T | T | T | T |
Iterasi 6 | 6 | {7,8} | T | T | T | T | T | T | T | T |
Iterasi 7 | 7 | {8} | T | T | T | T | T | T | T | T |
Iterasi 8 | 8 | {} | T | T | T | T | T | T | T | T |
Urutan simpul2 yang dikunjungi: 1, 2, 3, 4, 5, 6, 7, 8
10
BFS: Latihan
Iterasi | V | Q | | dikunjungi | |||||||
S | A | B | C | D | E | F | G | H | |||
Inisialisasi | S | {S} | T | F | F | F | F | F | F | F | F |
Iterasi 1 | S | {A,F} | T | T | F | F | F | F | T | F | F |
Iterasi ... | | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
Pencarian Mendalam (DFS)
11
1
2
3
4
5
6
7
8
DFS
12
DFS: Ilustrasi 1
DFS(8): DFS(4)
DFS(4): DFS(2)
DFS(2): DFS(5)
DFS(5): DFS(2)
DFS(2): DFS(1)
DFS(1): DFS(3)
13
1
2
3
4
5
6
7
8
DFS: Ilustrasi 2
14
1
2
3
4
5
6
7
8
DFS: Ilustrasi 2
15
1
2
3
4
5
6
7
8
Urutan simpul2 yang dikunjungi: 1, 2, 4, 8, 5, 6, 3, 7
DFS: Ilustrasi 3
16
1
2
3
4
5
6
7
8
DFS: Ilustrasi 3
DFS(8): DFS(5)
DFS(8): DFS(7)
17
1
2
3
4
5
6
7
8
Urutan simpul2 yang dikunjungi: 1, 2, 3, 6, 8, 4, 5, 7
Latihan
18
19
20
Contoh Graf Berarah
21
1
2
3
4
5
6
7
Contoh Lain
22
23
Penerapan BFS dan DFS: Citation Map
Citation Map:
24
Sumber: Teufel (1999), Argumentative Zoning
25
Penerapan BFS dan DFS: Web Spider
query
Penerapan BFS dan DFS: Web Spider
26
http://www.ibm.com/developerworks/web/library/wa-lucene2/
Arsitektur umum mesin pencari
Web Spider: Penjelajahan Web
27
http://introcs.cs.princeton.edu/java/16pagerank/
28
DFS dan BFS untuk penelusuran direktori (folder)
29
Pencarian dokumen di dalam direktori (folder) secara BFS
30
Pencarian dokumen di dalam direktori (folder) secara DFS
Pencarian Rute (Route Finding/Path Finding)
31
32
Path Finding BFS Vs DFS
33
Path Finding dengan BFS dan DFS: Latihan
34
Graf Dinamis
35
36
37
38
Biasanya Kompleksitas dari BFS dan DFS adalah O(bd)
39
40
--- Berlanjut Ke Mata Kuliah AI ---