*copyleft*1 Ade Ariyani A Agung Taufiqurrahman Annas Firdausi Hario Adit W Kartika Anindya P Kelompok XII Implementation of Dijkstra’s Shortest Path Algorithm
*copyleft*2 Graf (Review) Apa itu graf ??? Cara untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut
*copyleft*3 Sejarah Graf Jembatan Königsberg Gambar 1 (a) Jembatan Königsberg, dan (b) Graf yang merepresentasikan jembatan Königsberg
*copyleft*4 Definisi Graf Graf G didefinisikan sebagai pasangan himpunan (V, E) V = himpunan tidak kosong dari vertex. = {v 1, v 2, …,v n } E = himpunan edge yang menghubungkan sepasang vertex. = {e 1, e 2, …,e n } atau dapat ditulis singkat notasi G = {V, E}
*copyleft*5 Jenis-jenis Graf Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf : 1. Simple Graph 2. Unsimple Graph (multigraph dan pseudograph )
*copyleft*6 Jenis-jenis Graf (cont.) Berdasarkan jumlah vertex pada suatu graf : 1. Limited Graph 1. Unlimited Graph
*copyleft*7 Jenis-jenis Graf (cont.) Berdasarkan orientasi arah pada edge : 1. Undirected Graph 1. Directed Graph atau Digraph
*copyleft*8 Shortest Path Problem Shortest path problem merupakan salah satu persoalan optimasi Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph) Asumsi yang kita gunakan disini adalah bahwa semua bobot bernilai positif
*copyleft*9 Apa Itu Djikstra's Algorithm ? mencari shortest path antara 2 titik dalam sebuah graph digunakan dalam single-source shortest path problem berjalan dengan running time O(n log m)
*copyleft*10 Bagaimana Cara Kerjanya? menggunakan beberapa struktur data implementasinya: Set dan Map representasi struktur data: d menyimpan perkiraan terbaik ata shortest path dari suatu vertex ke source p(pi) menyimpan predecessor dari tiap vertex yang berada dalam shortest path dari source
*copyleft*11 Bagaimana Cara Kerjanya (cont.) S sebuah set dari vertex yang sudah settled Q set dari vertex yang masih unsettled.
*copyleft*12 Dijkstra’s Algorithm contoh pengaplikasiannya o node a sebagai source o mula-mula masukkan a ke set Q (node terdekat adalah a) o a dimasukkan ke set S
*copyleft*13 Dijkstra’s Algorithm o b adalah best distance sementara dari source a (d(b) = 4) o Lalu π(b) di-set ke a, b ditambahkan ke set Q o Begitu juga untuk node c
*copyleft*14 Dijkstra’s Algorithm o Ternyata, jarak dari source jika melalui c lebih pendek daripada langsung ke b o d(b) di-update menjadi 3, π(b) diset ke c o d(d) diset 7, π(d) diset ke c
*copyleft*15 Dijkstra’s Algorithm o Ternyata path yang lebih pendek ditemukan untuk d d(d) = 7 > d(b) + [b,d] = = 4 d(d) menjadi 4, dan π(d) ke b. o d ditambahkan ke set Q o Pada titik ini, algoritma berakhir
*copyleft*16 Dijkstra’s Algorithm Hasil akhir dari implementasi algoritma Dijkstra pada graph ini
*copyleft*17 Distributed Dijkstra’s Algorithm Distributed Dijkstra's algorithm: sebuah parallelisasi dari Dijkstra's algorithm Ide dari Distributed Dijkstra’s Algorithm untuk mencari jarak terpendek adalah fakta bahwa menyimpan informasi dalam sebuah verteks I mengenai verteks yang besebelahan dengan tujuan, adalah sama dengan mengawasi perubahan sebuah shortest-path tree dimana I menjadi rootnya.
*copyleft*18 Distributed Dijkstra’s Algorithm (cont.) network link & verteks (prosesor) verteks-verteks menjalankan algoritma tersebar untuk mencari jarak terpendek antar verteks how ? berkomunikasi dengan pengiriman pesan melalui link-link dan dengan mengacu pada perubahan dari Routing Table
*copyleft*19 Implementation Telephone Network
*copyleft*20 Implementation (Cont.) Internet protocol Link-state routing: agar router dapat memilih jarak terpendek untuk mencapai tujuan dalam network
*copyleft*21 Closure and Conclusion What Is Distributed Dijkstra’s Algorithm ? A naive parallelization of Dijkstra's algorithm Distribusi tugas satu tugas ke banyak orang
*copyleft*22 What is the difference? selektor - selektor terdistribusi yang mengidentifikasi sebuah grafik terdistribusi sintaks sama, tapi mekanisme berbeda: property map berupa distributed property map possibility to show reproccessing
*copyleft*23 What is the benefit ? Time Efisiensi Availibility
*copyleft*24 What is the weakness ? terjadi Bottleneck, hanya ada satu verteks yang punya jarak minimum causing more work contra with the benefit negatif edges infinite loop