Top Banner
ALGORITMA DIJKSTRA Kuliah ke 6 Strategi Algoritma Teknik Informatika Universitas Ahmad Dahlan
26

ALGORITMA DIJKSTRA

Mar 23, 2016

Download

Documents

ar_g_us

ALGORITMA DIJKSTRA. Kuliah ke 6 Strategi Algoritma. Teknik Informatika Universitas Ahmad Dahlan. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ALGORITMA  DIJKSTRA

ALGORITMA DIJKSTRA

Kuliah ke 6Strategi Algoritma

Teknik InformatikaUniversitas Ahmad Dahlan

Page 2: ALGORITMA  DIJKSTRA

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.

Page 3: ALGORITMA  DIJKSTRA

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 = 0mij = ∞ , jika tidak ada sisi dari simpul I ke

simpul jSelain matriks M, juga menggunakan tabel S=[si],

yang dalam hal ini:si = 1, jika simpul i termasuk ke dalam lintasan terpendeksi = 0, jika simpul i tidak termasuk ke dalam

lintasan terpendekdan tabel D=[di], yang dalam hal ini

di = panjang lintasan dari simpul awal a ke simpul i

Page 4: ALGORITMA  DIJKSTRA

ContohGraf yang menyatakan beberapa kota di Amerika

Page 5: ALGORITMA  DIJKSTRA

Matriks M=

Page 6: ALGORITMA  DIJKSTRA

Perhitungan lintasan terpendek dari simpul awal a = 5 ke semua simpul lainnya ditabulasikan sebagai berikut.

Lelaran Simpul yang dipilih

Lintasan S D

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Inisial - - 0 0 0 0 0 0 0 0 ∞ ∞ ∞ 1500 0 250 ∞ ∞

1 5 5 0 0 0 0 1 0 0 0 ∞ ∞ ∞ 1500 ∞ 250 ∞ ∞

2 6 5,6 0 0 0 0 1 1 0 0 ∞ ∞ ∞ 1250 ∞ 250 1150 1650

3 7 5,6,7 0 0 0 0 1 1 1 0 ∞ ∞ ∞ 1250 ∞ 250 1150 1650

4 4 5,6,4 0 0 0 1 1 1 1 0 ∞ ∞ 2450 1250 ∞ 250 1150 1650

5 8 5,6,8 0 0 0 1 1 1 1 1 3350 ∞ 2450 1250 ∞ 250 1150 1650

6 3 5,6,4,3 0 1 1 1 1 1 1 1 3350 ∞ 2450 1250 ∞ 250 1150 1650

7 2 5,6,4,3,2 0 1 1 1 1 1 1 1 3350 3250 2450 1250 ∞ 250 1150 1650

Page 7: ALGORITMA  DIJKSTRA

Jadi, lintasan terpendek dari:5 ke 6 adalah 5,6 dengan jarak = 2505 ke 7 adalah 5,6,7 dengan jarak = 11505 ke 4 adalah 5,6,4 dengan jarak = 12505 ke 8 adalah 5,6,8 dengan jarak = 16505 ke 3 adalah 5,6,4,3 dengan jarak =

24505 ke 2 adalah 5,6,4,3,2 dengan jarak =

32505 ke1 adalah 5,6,8,1 dengan jarak =

3350

Page 8: ALGORITMA  DIJKSTRA

CONTOH ALGORITMA DIJKSTRA

Page 9: ALGORITMA  DIJKSTRA
Page 10: ALGORITMA  DIJKSTRA
Page 11: ALGORITMA  DIJKSTRA
Page 12: ALGORITMA  DIJKSTRA
Page 13: ALGORITMA  DIJKSTRA
Page 14: ALGORITMA  DIJKSTRA
Page 15: ALGORITMA  DIJKSTRA
Page 16: ALGORITMA  DIJKSTRA
Page 17: ALGORITMA  DIJKSTRA
Page 18: ALGORITMA  DIJKSTRA
Page 19: ALGORITMA  DIJKSTRA
Page 20: ALGORITMA  DIJKSTRA
Page 21: ALGORITMA  DIJKSTRA

Algorima Dijkstra dinyatakan dalam notasi pseudo-code sebagai berikut:

procedure Dijkstra(input m: matriks, a: simpul awal){Mencari lintasan terpendek dari simpul awal a ke

semua simpul lainnya. Masukan: matriks (m) dari graf berbobot G dan simpul awal a. Keluaran: lintasan terpendek dari a ke semua simpul lainnya }

Deklarasis1, s2,…, sn : integerd1, d2,…, dn : integeri, j, k : integer

Page 22: ALGORITMA  DIJKSTRA

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 thendi ← dj + mji

endifendfor

endfor

Page 23: ALGORITMA  DIJKSTRA

Penerapan Algoritma Dijkstra pada Jaringan Komputer

Jaringan komputer dapat dimodelkan sebagai sebuah graf, dengan setiap simpul menyatakan sebuah komputer/router dan sisi di dalam graf menyatakan saluran komunikasi (sering disebut link). Setiap sisi mempunyai label nilai ( yang disebut bobot). Bobot tersebut dapat menyatakan jarak geografis(dalam km), kecepatan transfer data, waktu pengiriman).

Page 24: ALGORITMA  DIJKSTRA

Lanjutan (Penerapan Algoritma Dijkstra pada Jaringan Komputer)

Mencari lintasan terpendek dari router asal ke router tujuan dapat diartikan sebagai menentukan lintasan terpendek dari simpul asal ke simpul tujuan di dalam graf yang merepresentasikan jaringan komputer tersebut. Algoritma Dijkstra adalah algoritma yang banyak digunakan untuk mencari lintasan terpendek.

Page 25: ALGORITMA  DIJKSTRA
Page 26: ALGORITMA  DIJKSTRA

Referensi • 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