Algoritma
Dijkstra
Oleh Ryan Aunur Rassyid (112010057)
Universitas Islam Lamongan - Mata Kuliah Analisa Algoritma
Pada Tahun 1959
Edsger W. Dikstra
Mempublikasikan jurnal Numerische
Mathematik yang berjudul
“A Note on Two Problems in
Connexion with Graphs”
dimana saat itu digambarkan sebagai
Algoritma Greedy (tamak).
Menurut Wikipedia, Algoritma Dijkstra
adalah sebuah Algoritma Greedy yang dipakai
dalam memecahkan permasalahan jarak
terpendek (shortest path) untuk sebuah
directed graph dengan bobot garis yang
bernilai non-negatif.
Lanjutan
Algoritma Dijkstra merupakan salah satu varian bentuk algoritma populer dalam
pemecahan persoalan yang terkait dengan masalah optimisasi dan bersifat sederhana.
Algoritma ini menyelesaikan masalah sebuah lintasan terpendek (panjang minimum)
dari vortex A ke vortex Z dalam graph berbobot, bobot tersebut adalah bilangan
bernilai non-negatif yang dalam simbol matematikanya adalah [0, Infinity).
Pencarian Heuristic
Suatu fungsi yang menghitung biaya perkiraan
(estimasi) dari suatu simpul tertentu menuju ke simpul
tujuan disebut Fungsi Heuristic.
Algoritma Dijkstra akan melakukan kalkulasi terhadap
semua kemungkinan estimasi terkecil dari setiap titik.
Graph Model
Untuk menggambarkan rute antara satu titik
dengan titik yang lain, maka titik dan rute ini
divisualiasikan ke dalam bentuk Graphical
Model.
Pseudocode
fungsi Dijkstra(Graf, asal):
Q adalah himpunan titik
for each v in Graf:
jarak[v] ← Infinity
sebelum[v] ← Undefined
tambahkan v ke dalam Q
jarak[asal] ← 0;
while Q tidak kosong:
u ← titik dalam Q dengan nilai jarak[u] terkecil
hapus u dari Q
for each tetangga v dari u: // hanya v yang masih dalam Q
alt ← jarak[u] + jarak_antara(u, v)
if alt < jarak[v]:
jarak[v] ← alt
sebelum[v] ← u
return jarak[], sebelum[]
Algoritma Dijkstra
submber: wikipedia
Contoh Soal
Terdapat Graph Model seperti
disamping ini. Berapakah jarak
terpendek dari titik A menuju ke
titik G?
Dari sini Ke sini
Contoh Soal
V A B C D E F G
A 0A 5A 4A ∞ ∞ ∞ ∞
C 5A 4A 12C 15C ∞ ∞
B 5A 12C 15C 11B ∞
F 12C 15C 11B 27F
D 12C 15D 27F
E 15D 21E
G 21E
Jadi hasil rute terpendek dari titik A
ke titik G adalah
A - C - D - E - G
Contoh
Implementasi
Algoritma Dijkstra melakukan kalkulasi
bobot terkecil dari satu node ke node yang
lain. Dijkstra menghitung lintasan
berdasarkan jarak terpendek yang ditempuh
tiap-tiap kota. Lalu jarak terpendek yang
didapat tersebut akan dikalkulasikan untuk
menghitung estimasi penggunaan bahan
bakar dari mobil dinas yang dipakai.
https://unisbank.ac.id/ojs/index.php/sendi_u/article/view/5988
Contoh
Implementasi
Algoritma Dijkstra melakukan kalkulasi rute
tercepat yang dapat ditempuh dari titik awal
(pengguna) ke titik kumpul evakuasi (green
area) terdekat yang tersedia. Pada
implementasinya persimpangan jalan raya
yang menjadi titik nodenya.
https://publikasiilmiah.ums.ac.id/xmlui/handle/11617/4392
Sekian,
Terima Kasih

Algoritma Dijstra

  • 1.
    Algoritma Dijkstra Oleh Ryan AunurRassyid (112010057) Universitas Islam Lamongan - Mata Kuliah Analisa Algoritma
  • 2.
    Pada Tahun 1959 EdsgerW. Dikstra Mempublikasikan jurnal Numerische Mathematik yang berjudul “A Note on Two Problems in Connexion with Graphs” dimana saat itu digambarkan sebagai Algoritma Greedy (tamak).
  • 3.
    Menurut Wikipedia, AlgoritmaDijkstra adalah sebuah Algoritma Greedy yang dipakai dalam memecahkan permasalahan jarak terpendek (shortest path) untuk sebuah directed graph dengan bobot garis yang bernilai non-negatif.
  • 4.
    Lanjutan Algoritma Dijkstra merupakansalah satu varian bentuk algoritma populer dalam pemecahan persoalan yang terkait dengan masalah optimisasi dan bersifat sederhana. Algoritma ini menyelesaikan masalah sebuah lintasan terpendek (panjang minimum) dari vortex A ke vortex Z dalam graph berbobot, bobot tersebut adalah bilangan bernilai non-negatif yang dalam simbol matematikanya adalah [0, Infinity).
  • 5.
    Pencarian Heuristic Suatu fungsiyang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan disebut Fungsi Heuristic. Algoritma Dijkstra akan melakukan kalkulasi terhadap semua kemungkinan estimasi terkecil dari setiap titik.
  • 6.
    Graph Model Untuk menggambarkanrute antara satu titik dengan titik yang lain, maka titik dan rute ini divisualiasikan ke dalam bentuk Graphical Model.
  • 7.
    Pseudocode fungsi Dijkstra(Graf, asal): Qadalah himpunan titik for each v in Graf: jarak[v] ← Infinity sebelum[v] ← Undefined tambahkan v ke dalam Q jarak[asal] ← 0; while Q tidak kosong: u ← titik dalam Q dengan nilai jarak[u] terkecil hapus u dari Q for each tetangga v dari u: // hanya v yang masih dalam Q alt ← jarak[u] + jarak_antara(u, v) if alt < jarak[v]: jarak[v] ← alt sebelum[v] ← u return jarak[], sebelum[] Algoritma Dijkstra submber: wikipedia
  • 8.
    Contoh Soal Terdapat GraphModel seperti disamping ini. Berapakah jarak terpendek dari titik A menuju ke titik G? Dari sini Ke sini
  • 9.
    Contoh Soal V AB C D E F G A 0A 5A 4A ∞ ∞ ∞ ∞ C 5A 4A 12C 15C ∞ ∞ B 5A 12C 15C 11B ∞ F 12C 15C 11B 27F D 12C 15D 27F E 15D 21E G 21E Jadi hasil rute terpendek dari titik A ke titik G adalah A - C - D - E - G
  • 10.
    Contoh Implementasi Algoritma Dijkstra melakukankalkulasi bobot terkecil dari satu node ke node yang lain. Dijkstra menghitung lintasan berdasarkan jarak terpendek yang ditempuh tiap-tiap kota. Lalu jarak terpendek yang didapat tersebut akan dikalkulasikan untuk menghitung estimasi penggunaan bahan bakar dari mobil dinas yang dipakai. https://unisbank.ac.id/ojs/index.php/sendi_u/article/view/5988
  • 11.
    Contoh Implementasi Algoritma Dijkstra melakukankalkulasi rute tercepat yang dapat ditempuh dari titik awal (pengguna) ke titik kumpul evakuasi (green area) terdekat yang tersedia. Pada implementasinya persimpangan jalan raya yang menjadi titik nodenya. https://publikasiilmiah.ums.ac.id/xmlui/handle/11617/4392
  • 12.