Professional Documents
Culture Documents
DIJKSTRA
Kuliah ke 6 Strategi Algoritma
Algoritma Dijkstra diterapkan untuk mencari lintasan terpendek pada graf berarah. Namun, algoritma ini juga benar untuk graf tak berarah. Algoritma Dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan prinsip greedy. Prinsip greedy pada algoritma dijkstra menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukannya dalam himpunan solusi.
Misalkan sebuah graf berbobot dengan n buah simpul dinyatakan dengan matriks 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, juga menggunakan tabel S=[si], yang dalam hal ini: si = 1, jika simpul i termasuk ke dalam lintasan terpendek si = 0, jika simpul i tidak termasuk ke dalam lintasan terpendek dan tabel D=[di], yang dalam hal ini di = panjang lintasan dari simpul awal a ke simpul i
Matriks M=
Perhitungan lintasan terpendek dari simpul awal a = 5 ke semua simpul lainnya ditabulasikan sebagai berikut.
Lelaran Simpul yang dipilih Lintasan S 12345678 1 2 3 4 D 5 6 7 8
Inisial
00000000
1500
250
00001000
1500
250
5,6
00001100
1250
250
1150
1650
5,6,7
00001110
1250
250
1150
1650
5,6,4
00011110
2450
1250
250
1150
1650
5,6,8
00011111
3350
2450
1250
250
1150
1650
5,6,4,3
01111111
3350
2450
1250
250
1150
1650
5,6,4,3,2
01111111
3350
3250
2450
1250
250
1150
1650
Jadi, lintasan terpendek dari: 5 ke 6 adalah 5,6 dengan jarak = 250 5 ke 7 adalah 5,6,7 dengan jarak = 1150 5 ke 4 adalah 5,6,4 dengan jarak = 1250 5 ke 8 adalah 5,6,8 dengan jarak = 1650 5 ke 3 adalah 5,6,4,3 dengan jarak = 2450 5 ke 2 adalah 5,6,4,3,2 dengan jarak = 3250 5 ke1 adalah 5,6,8,1 dengan jarak = 3350
Algoritma
{langkah 0 inisialisasi: } for i 1 to n do si 0 di mai endfor {langkah1:} sa 1 {karena simpul a adalah simpul asal lintasan terpendek, jadisimpul a sudah pasti terpilih dalam lintasan terpendek} da {tidak ada lintasan terpendek dari simpul a ke a} {langkah 2, 3, , n-1: } for k 2 to n-1 do j simpul dengan sj = 0 dan dj minimal sj 1b{simpul j sudah terpilih ke dalam lintasan terpendek} {perbarui table d} for semua simpul i dengan si = 0 do if dj + mji < di then di dj + mji endif endfor endfor
Rinaldi Munir, 2010, Diktat Kuliah Strategi Algoritma ITB Gilles Brassard, 1996, Fundamental Of Algoritmh, Prentice Hall, New Jersey Cormen et al, 2009, Introduction to Algorithms : thrid edition, MIT
Referensi