4.shortest Path Algorithm PDF
4.shortest Path Algorithm PDF
(Dijkstra, Bellman-Ford)
SHORTEST PATH ALGORITHM
Macam – macam shortest Path
Shortest path dapat dibedakan menjadi :
Single Source Shortest Path
Menentukan shortest path dari verteks sumber s Є V ke setiap verteks v Є V
Algoritma Dijkstra , Algoritma Bellman Ford
Single Destination Shortest Path
Menentukan shortest path ke suatu tempat t dari tiap verteks v
Single Pair shortest path
Menentukan shortest path dari u ke v jika diketahui pasangan u dan v
All pair shortest path
Untuk semua pasangan (u,v) ditentukan kemungkinan shortest pathnya. Floyd-Warshall
2
Masalah Shortest Path
Contoh :
Shortest path antara jakarta surabaya
Aplikasi
Internet packet routing
Flight reservations
Driving directions
3
Pengertian Shortest Path
Misalkan sebuah directed graph G V,E
adalah
k
w p w vi 1 , vi
i 1
4
Shortest Path Properties
w p w u, v
u ,v p
5
Shortest Path Properties
Property 1:
Sebuah subpath dari sebuah shortest path adalah sebuah shortest
path
Property 2:
Terdapat sebuah tree dari shortest paths dari start vertex ke seluruh
vertex lainnya
6
Syarat
Syarat yang harus dipenuhi oleh sebuah shortest path:
Shortest path tidak memiliki cycle.
Sebuah shortest path memiliki
V 1 edge.
7
algoritma single source shortest path
Ada 2 macam algoritma yang digunakan dalam
memecahkan masalah single source shortest path, yaitu:
8
DJIKSTRA
Edsger Wybe Dijkstra lahir di Rotterdam 11 May 1930.
ibunya seorang ahli metematika dan ayahnya seorang
ahli kimia .
9
algoritma DIJKSTRA
Algoritma dijkstra adalah salah satu algoritma untuk
memecahkan masalah “ single source shortest path”
10
Metode algoritma DIJKSTRA
1. Inisialisasi s (sumber)
Pilih salah satu vertex sebagai sumber
Maka d(s) = 0
Beri label 0 pada vertex s
11
Metode algoritma DIJKSTRA
4. Kembali ke no 2
12
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
13
Metode algoritma DIJKSTRA
Output algoritma dijkstra adalah spanning tree T, dimana
path dari vertex s (sumber) ke masing-masing vertex v
adalah sebuah shortest path dari s ke v dalam sebuah graph
G.
14
Contoh 1
Tentukan shortest path dari A ke setiap v pada graph G
berikut:
10
A B
15 6
7
5
9
C D
2
8 4
E
15
Contoh 1(cont)
d(A)=0
10
Spanning tree T kosong
A B 1. Inisialisasi s (sumber)
15 6 pilih vertex A sebagai sumber.
7
5 S=A, maka d(A)=0. beri label 0 pada A
9
C 2
D 2. Untuk semua edge Є E,
i adalah endpoint yg sudah di label , i = A
8 4 j adalah endpoint yg belum dilabel j= B,C,D,E
E
P(AB)=10, P(AC)=7, P(AE)=15
16
Contoh 1(cont)
3 . AC yang mempunyai nilai P terkecil
sehingga C ditambahkan ke spanning tree
d(A)=0 T
10
A B d(c)=P(AC)=7
15 6 Beri label d (c) pada vertex c
7
5
9
C D
2
d(C)=7
8 4
E
17
Contoh 1(cont)
d(A)=0
10 4. Kembali ke no 2
A B
P(AB)=10,P(AE)=15,
15 6
7 P(CB)=22,P(CD)=9,P(CE)=15
5
9 CD yg mempunyai nilai P
C D d(D)=9
2 terkecil, sehingga D ditambahkan
d(C)=7
8 4
ke T
E
Beri label d(D)=9
18
Contoh 1(cont)
5. Kembali ke no 2
d(A)=0 d(B)=10 • P(AB)=10,P(AE)=15,
10 P(CB)=22,P(CE)=15,P(DB)=15
A B
15 6
,P(DE)=13
7
9 5 • AB yg mempunyai nilai
C 2
D d(D)=9 terkecil,sehingga B ditambahkan
d(C)=7 ke T
8 4
E • Beri label d(B) =10
19
Contoh 1(cont)
5. Kembali ke no 2
d(A)=0 d(B)=10 P(AE)=15, P(CB)=22,
10 P(CE)=15,P(DB)=15,
A B
P(DE)=13, P(BE)=18
15 6
7 DE yg mempunyai nilai
5
9 terkecil,sehingga E
C D
2
d(D)=9
ditambahkan ke T
d(C)=7
8 Beri label d(E) =13
E 4
20
Aplikasi dijkstra
Dijkstra's algorithm determines the distances (costs) between a given
vertex and all other vertices in a graph.This may be useful to determine
alternatives in decision making.
21
contoh
22
contoh
23
contoh
24
contoh
25
contoh
26
contoh
27
soal
Tentukan shortest path dari A ke semua node pada graph berikut :
28
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
29
Ciri – ciri Algoritma Bellman-Ford :
30
Contoh algoritma bellman ford
31
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
do if d[v] > d[u] +w ((u,v)) ;
jika hasil algoritma yang diinginkan belum didapat
then return FALSE
return TRUE;
32
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
33
relaksasi
1. pada algorithm Dijkstra dan algoritma shortest-paths untuk
directed acyclic graphs (DAG), setiap edge direlaksasi sekali.
34
Triangle Inequality
Lemma 1
Untuk setiap edge (u; v) Є E, mempunyai δ(s;v) ≤
δ(s;u)+w(u;v)
35
Upper-bound Property
Lemma 2
Kita selalu mempunyai d[v] ≥ (s;v) untuk seluruh vertices vЄV
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) = ∞.
36
Convergence Property
37
Path-relaxation Property
38
Applications in routing
Each node calculates the distances between itself and all other
nodes within the AS and stores this information as a table.
Each node sends its table to all neighbouring nodes.
When a node receives distance tables from its neighbours, it
calculates the shortest routes to all other nodes and updates
its own table to reflect any changes.
39
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
updates are spread node-by-node.
Counting to infinity
40
algoritma Bellman Ford
Ada dua hal yang harus menjadi catatan pada algoritma
Bellman-Ford, yaitu :
Shortest path tidak akan terdiri lebih dari V-1 edge dari graph yang
bersangkutan, dengan asumsi tidak ada negative cycle.Jika terdapat
lebih dari V-1 edge pada shortest path, maka ada node yang dilewati
lebih dari satu kali.Hal tersebut akan mengakibatkan shortest path
tidak optimal.
41
contoh
• develop algorithm using the following working example
42
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)
43
contoh
44
penjelasan
45
46
47
48
49
50
51
52
HAPPY LEARNING !!