Nama Anggota : Muhammad Mumtaz Ramadhan Achmad Sesar Balbo Syamil Taqiyuddin Ayyasy Naufaldy Purwanto 1910511102 1910511123 1910511126 1910511128 TUGAS BESAR SEMESTER GENAP TA. 2019/2020 Soal : 1. d. Tentukan jarak minimum (shortest path) dari simpul S → H dengan menggunakan algoritma Djikstra. 2. Tentukan urutan penelusuran graph berikut menggunakan: d. DFS 3. Tentukan urutan penelusuran graph berikut menggunakan BFS & DFS jika dimulai dari vertex: d. D Jawaban : 1. Pada awalnya, seluruh node x memiliki nilai dist[x] = ∞, dan visited[x] = false. Khusus untuk node s, kita mengetahui bahwa jarak terpendek untuk mencapai s dari s sendiri adalah 0. Oleh sebab itu, dist[s] = 0. Seluruh nilai pred[x] bisa kita isi −1, sebab tidak diketahui node mana yang dikunjungi sebelum x. Setelah inisialisasi selesai dilakukan, jalankan langkah-langkah berikut: 1. Pilih sebuah node yang belum dikunjungi dan memiliki dist terkecil. Sebut saja node ini sebagai u. 2. Apabila tidak ada lagi node yang belum dikunjungi, atau dist[u] bernilai ∞, artinya tidak ada lagi node yang dapat dikunjungi. Algoritma Dijkstra berakhir. 3. Karena u dikunjungi, maka set visited[u] = true. Kini dipastikan shortest path dari s menuju u adalah dist[u]. Diketahui pula edge {pred[u],u} merupakan edge yang perlu digunakan pada shortest path ke u. 4. Untuk setiap node v yang merupakan tetangga dari u, lakukan sebuah proses yang disebut "relax ". Proses relax untuk node u dan v adalah proses untuk memperbaharui jarak terpendek mencapai v, apabila ternyata mencapai v melalui u membutuhkan jarak yang lebih kecil. Dengan kata lain, dilakukan: dist[v] = min(dist[v],dist[u] +w[u][v]) Setiap kali dist[v] mengalami perubahan, ubah nilai pred[v] menjadi u. Sebab sejauh ini diketahui bahwa untuk mencapai v pada shortest path , node sebelumnya adalah u. 5. Kembali ke langkah 1. 6. Lakukan pengulangan tersebut sampai visited bernilai T(True) semua. Table berikut menunjukan shortest path mulai dari node S ke seluruh node lainnya. Dist visited Pred S 0 F -1 A ∞ F -1 B ∞ F -1 C ∞ F -1 D ∞ F -1 E ∞ F -1 F ∞ F -1 G ∞ F -1 H ∞ F -1 dist visited pred S 0 T -1 A B 10 14 F F S S C ∞ F -1 D ∞ F -1 E ∞ F -1 F ∞ F -1 G ∞ F -1 H ∞ F -1 dist visited pred S 0 T -1 A B C D 10 14 26 22 T F F F S S A A E ∞ F -1 F ∞ F -1 G ∞ F -1 H ∞ F -1 dist visited pred S 0 T -1 A B C D 10 14 26 22 T T F F S S A A E ∞ F -1 F 18 F B G ∞ F -1 H ∞ F -1 dist visited pred S 0 T -1 A B C D 10 14 26 22 T T F F S S A A E ∞ F -1 F 18 T B G ∞ F -1 H 29 F F dist visited pred S 0 T -1 A B C D E F 10 14 26 22 28 18 T T F T F T S S A A D B G ∞ F -1 H 29 F F dist visited pred S 0 T -1 A B C D E F G H 10 14 26 22 28 18 35 29 T T T T F T F F S S A A -1 B C F dist visited pred S 0 T -1 A B C D E F G H 10 14 26 22 28 18 35 29 T T T T T T F F S S A A D B C F dist visited pred S 0 T -1 A B C D E F G H 10 14 26 22 28 18 35 29 T T T T T T F T S S A A D B C F dist visited pred S 0 T -1 A B C D E F G H 10 14 26 22 28 18 35 29 T T T T T T T T S S A A D B C F Jadi jarak minimum (shortest path) dari simpul S → H dengan menggunakan algoritma Djikstra adalah 29 dengan melalui lajur S – B – F – H. 2. Urutan berdasarkan DFS : A – D – G – H – I – E – B – C – F 3. Urutan berdasarkan BFS = D – H – B – G – F – C – A – E Urutan berdasarkan DFS = D – H – G – E – A – C – F – B