(Dijkstra, Bellman-Ford)
v0 , v1 ,...., vk
w p
w vi 1 , vi
i 1
V,E
Jika G tidak memiliki bobot, maka shortest pathnya diperoleh dari panjang path
yang paling minimal (jumlah edge-nya paling sedikit).
Jika G merupakan graph dengan bobot tertentu
Bobot dari p adalah
w p
w u, v
u ,v
Syarat
Syarat yang harus dipenuhi oleh sebuah shortest path:
Shortest path tidak memiliki cycle.
Sebuah shortest path memiliki
edge.
DIJKSTRA
Edsger Wybe Dijkstra lahir di Rotterdam 11 May 1930.
10
algoritma DIJKSTRA
Algoritma dijkstra adalah salah satu algoritma untuk
11
Inisialisasi s (sumber)
2.
12
Jika i adalah endpoint dari e yang sudah diberi label dan j adalah endpoint yang
belum diberi label maka p(i,j) adalah = d(i) + w(i,j)
Jika i adalah endpoint dari e yang sudah diberi label dan j adalah endpoint yang
belum diberi label maka tambahkan e dan vertex j ke tree T
d(j)=P(ij)
Beri label d(j) pada vertex j
4. Kembali ke no 2
13
Metode dijkstra
Metode algoritma DIJKSTRA menggunakan metode
relaksasi
Relaksasi (i,j,w)
Jika d(j)>d(i)+w(i,j)
Maka d(j) adalah d(i) + w(i,j)
Beri label d(j) pada j
14
masing vertex
15
Contoh 1
Tentukan shortest path dari A ke setiap v pada graph G
berikut:
10
A
15
6
5
9
C
2
8
16
Contoh 1(cont)
d(A)=0
10
A
7
C
15
5
2.
2
E
Inisialisai s (sumber)
9
8
17
Contoh 1(cont)
3 . AC yang mempunyai nilai P terkecil sehingga C
ditambahkan ke spanning tree T
d(A)=0
10
7
C
d(C)=7
18
15
6
5
2
8
d(c)=P(AC)=7
Beri label d (c) pada vertex c
Contoh 1(cont)
d(A)=0
A
7
C
d(C)=7
19
4.
10
15
6
5
2
8
Kembali ke no 2
D d(D)=9
P(AB)=10,P(AE)=15,
P(CB)=22,P(CD)=9,P(CE)=15
CD yg mempunyai nilai P terkecil, sehingga D
ditambahkan ke T
Beri label d(D)=9
Contoh 1(cont)
5.
Kembali ke no 2
d(A)=0
A
7
C
d(C)=7
20
d(B)=10
10
15
2
8
D d(D)=9
P(AB)=10,P(AE)=15,
P(CB)=22,P(CE)=15,P(DB)=15,P(DE)=13
AB yg mempunyai nilai terkecil,sehingga B
ditambahkan ke T
Beri label d(B) =10
Contoh 1(cont)
5.
Kembali ke no 2
d(A)=0
A
7
C
d(C)=7
d(B)=10
B
10
15
2
8
d(E)=13
21
D
d(D)=9
6.
7.
P(AE)=15,
P(CB)=22,P(CE)=15,P(DB)=15,P(DE
)=13, P(BE)=18
DE yg mempunyai nilai
terkecil,sehingga E ditambahkan ke T
Beri label d(E) =13
soal
Tentukan shortest path dari A ke D graph berikut :
22
23
24
25
26
27
28
29
30
31
32
33
Aplikasi dijkstra
Dijkstra's algorithm determines the distances (costs) between a
34
Aplikasi dijkstra
Dijkstra's algorithm is almost identical to that of Prim's.The
35
contoh
36
contoh
37
contoh
38
contoh
39
contoh
40
contoh
41
BELLMAN FORD
Algoritma ini merupakan pengembangan dari algoritma Djikstra,
Algoritma Bellman Ford akan benar jika dan hanya jika graph tidak
terdapat cycle dengan bobot negatif yang dicapai dari sumber s.
No cycle
Diasumsikan shortest
paths tidak mempunyai
cycles.
shortest path maksimum
mempunyai |V|-1 edge
42
negatif)
Iterasi i menemukan seluruh shortest path dengan menggunakan i edge.
Dapat mendeteksi cycle dengan bobot negatif jika ada.
43
44
Algoritma :
Bellman-Ford(G,w,s)
Inisialisasi single source(G,s)
for i=1 to |V[G]|-1
do for each edge (u,v) E[G]
do RELAX(u,v)
for each edge (u,v) E[G]
;
untuk mencek apakah ada atau tidak cycle dgn bobot negatif
45
Teknik relaksasi
Untuk setiap vertex
v V, d (v) adalah
bobot upper bound
sebuah shortest
path dari s ke v,
d(v) disebut
estimasi
shortest-path
46
relaksasi
1.
47
Triangle Inequality
Lemma 1
48
Upper-bound Property
Lemma 2
Kita selalu mempunyai d[v] (s;v) untuk seluruh vertices vV dan satu d[v]
achieves the value (s;v), yang tidak pernah berubah
Corollary 1
Jika tidak terdapat path dari s ke v, maka kita selalu mempunyai d[v] =
(s;v) = .
49
Convergence Property
Lemma 3 If s
u v is a shortest path in
G for some u; v V and if d[u] = (s;u) at
any time prior to relaxing edge (u;v), then
d[v] = (s;v) at all times afterward.
50
Path-relaxation Property
51
Applications in routing
A distributed variant of Bellman-Ford algorithm is used in the
52
Applications in routing
The main disadvantages of Bellman-Ford algorithm in this
setting are
Does not scale well
Changes in network topology are not reflected quickly since
53
54
Bellman-Ford, yaitu :
Shortest path tidak akan terdiri lebih dari V-1 edge dari graph yang
55
contoh
develop algorithm using the following working example
use a table to show changes in
estimates of distances and
predecessors
initialize table no
predecessors
56
contoh
Revise estimates of distances
Ulangi sebanyak v-1 kali
Untuk masing-masing edge (u, v) dalam graph, set d(v) =
min[d(v), d(u) + w(u, v)]
Jika jarak direvisi, tentukan vertex predecessor baru
edges dapat diambil dengan berbagai cara misalnya sesuai
dengan urutan abjad: (a, b), (a,c), (a, d), (b, a), (c, b), . . . , (s,
b)
57
contoh
contoh
59
w(u, v)
if so, we have a problem try to convince them with an
example:
show diagram when d(u) = 3, d(v) = 6, w(u, v) = 2
in such a case, algorithm returns the value false
60
contoh
61
contoh
62
contoh
63
contoh
Iterasi ke 1
64
Iterasi ke 2
65
contoh
Iterasi ke 3
66
Iterasi ke 4
67
contoh
Iterasi ke 5
68
Iterasi ke 6
69
contoh
Iterasi ke 7
70
contoh
Iterasi ke 8
71
72
73
74
75
76
77
78