Gambar 8.64
Perhatikan gambar diatas, bahwa lintasan terpendek dari 1 ke 2 berarti juga melalui
lintasan terpendek 1 ke 3 dan dari 1 ke 4.
Tinjau kembali graf berarah pada gambar di atas, dengan matriks ketetanggaan M
sebagai beriku:
j=1 2 3 4 5 6
i= 1 0 50 10 40 45
2 0 15 10
3 20 0 15
4 20 0 35
5 30 0
6 3 0
Sampai saat ini, sudah banyak algoritma mencari lintasan terpendek yang pernah
ditulis orang. Algoritma lintasan terpendekyang paling terkenal adalah Algoritma Dijkstra
yang ditemukan oleh Edger Wybe Dijkstra.Algoritma ini merupakan algoritma yang
palingterkenal untuk mencari lintasan terpendek. Algoritma Dijkstra diterapkan pada graf
berarah, tetapi selalubenar untuk graf tak-berarah.
Algoritma Dijsktra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini
menggunakan prinsip greedy. Prinsip greedy pada algoritma Disjkstra menyatakan bahwa
pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukkannya ke dalam
himpunan solusi.
Ada beberapa versi algoritma Dijkstra yang ditulis pada berbagai pustaka. Algoritma
yang dibahas di bawah ini adalah salah satu versinya.
Misalkan sebuah graf berbobot dengan n buah simpul dinyatakan dengan matriks
ketetanggaan M = [ mij ], yang dalam hal ini:
mij = bobot sisi (i,j) (pada graf tak-berarah (mij = mji )
mii = 0
mij = , jika tidak ada sisi dari simpul i ke simpul j.
Selain matriks M, kita juga menggunakan table S = [ si ] yang dalam hal ini,
si = 1, jika simpul i termasuk kedalam lintasan terpendek
si = 0, jika simpul i tidak termasuk kedalam lintasan terpendek
dan table D = [ di ] yang dalam hal ini,
di = panjang lintasan dari simpul awal a ke simpul i.
Boston(5)
1500
Chicago(4)
1200 250
San
Fransisco 800 1000 New
(2) Denver(3)
York(6)
1000
300
1400 900
1700
Los
Angeles
(1)
New 1000 Miami(7)
Orleans(8)