Algoritma Dijkstra Perbandingan Macam-macam Tipe Algoritma Penentu Jarak Terpendek

genetika, algoritma semut, logika fuzzy, jaringan syaraf tiruan, pencarian tabu, simulated annealing.

2.4.1 Algoritma Dijkstra

Algoritma dijkstra, dinamai menurut penemunya, edsger dijkstra, adalah sebuah algoritma rakus greedy algorithm dalam memecahkan permasalahan jarak terpendek shortest path problem untuk mencari sebuah graf berarah directed graf dengan bobot-bobot sisi yang tidak bernilai negatif. Misalnya, bila vertices dari sebuah graf melambangkan kota-kota tersebut, maka algoritma dijkstra dapat digunakan untuk menemukan jarak terpendek antara 2 kota tersebut. Input algoritma ini adalah sebuah graf berarah yang berbobot weighted directed graf G dan sebuah sumber vertex s dalam G dan V adalah himpunan semua vertices dalam graf G. setiap sisi dari graf ini adalah pasangan vertices u,v yang melambangkan hubungan dari vertex u ke vertex v. himpunan semua tepi disebut E. Pseudocode Sumber http:www.id.wikipedia.orgwikiHuffAlgoritma_dijkstra Gambar 2.6 Pseudocode Algoritma dijkstra Sebagai contoh, carilah lintasan terpendek dari vertex a ke z dalam graf berbobot tersambung dan tidak berarah berikut berikut: a b c d e f g z 2 1 2 3 4 2 4 5 3 7 1 6 Gambar 2.7 Contoh Graf Berbobot Tersambung Hasil pelaksanaan baris ke 2-4 dari algoritma 2.6, La = 0, Lb = Lc = Ld = Le = Lf = Lg = Lz = ∞ . Pada baris ke 7 z tidak dilingkari. Kita lanjutkan ke baris 9, di mana kita memilih verteks a, verteks tak dilingkari dengan label terkecil, dan melingkarinya. Pada baris 11 dan 12 kita perbarui setiap verteks tak terlinkari, b dan f, yang berdekatan dengan a. Kita dapatlkan label-label baru Lb = min{ ∞ , 0+2} = 2, Lf = min{ ∞ , 0+1} = 1. Sampai pada bagian ini, kita kembali ke baris 7. Karena z tak dilingkari, kita lanjutkan ke baris 9, di mana kita memilih verteks f, verteks tak dilingkari dengan label terkecil, dan melingkarinya. Pada baris 12 dan 13 kita perbarui setiap label dari verteks tak dilingkari, d dan g, yang berdekatan dengan f. Kita dapatkan label-label baru Ld = min{ ∞ , 1+3} = 4, Lf = min{ ∞ , 1+5} = 6. Sampai pada bagian ini, kita kembali ke baris 7. Demikian seterusnya dan pada akhir algoritma, z dilabeli 5, menyatakan panjang lintasan terpendek dari a ke z adalah 5. Sebuah lintasan terpendek diberikan oleh a,b,c,z.

2.4.2 Algoritma Floyd-Warshall