• Tidak ada hasil yang ditemukan

SHORTEST PATH ALGORITHM (Dijkstra, Bellman-Ford)

N/A
N/A
Protected

Academic year: 2021

Membagikan "SHORTEST PATH ALGORITHM (Dijkstra, Bellman-Ford)"

Copied!
53
0
0

Teks penuh

(1)

SHORTEST PATH ALGORITHM

(Dijkstra, Bellman-Ford)

(2)

SHORTEST PATH ALGORITHM

2

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

(3)

Masalah Shortest Path

Terdapat sebuah graph berbobot (weighted graph) dan dua vertices u dan v, kita ingin menemukan sebuah path dengan bobot minimum antara u dan v.

 panjang path adalah penjumlahan dari bobot sisi-sisinya

(edges). Contoh :

Shortest path antara jakarta surabaya Aplikasi

(4)

Pengertian Shortest Path

4

Misalkan sebuah directed graph

G V,E

k

v

v

v

p

0

,

1

,....,

adalah

Bobot dari sebuah path

k i i i v v w p w 1 1,

(5)

Shortest Path Properties

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, maka bobot dari

p adalah

p v u

v

u

w

p

w

,

,

(6)

Shortest Path Properties

6

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

(7)

Syarat

Syarat yang harus dipenuhi oleh sebuah shortest path:

 Shortest path tidak memiliki cycle.  Sebuah shortest path memiliki

1

(8)

algoritma single source shortest path

8

Ada 2 macam algoritma yang digunakan dalam

memecahkan masalah single source shortest path, yaitu:

Algoritma Bellman Ford ialah algoritma yang digunakan

untuk memecahkan masalah single shortest path yang memiliki

edge dengan bobot negatif.

Algoritma Djikstra ialah algoritma yang digunakan untuk

memecahkan masalah single shortest path yang memiliki edge

(9)

DJIKSTRA

 Edsger Wybe Dijkstra lahir di Rotterdam 11 May 1930.

ibunya seorang ahli metematika dan ayahnya seorang ahli kimia .

 th 1956 Dijkstra lulus dari Universitas Leiden dalam

bidang mathematika dan teori fisika

 Th 1959 Dijkstra menerima PhD Universitas

Amsterdam untuk thesisnya yg berjudul

(10)

algoritma DIJKSTRA

10

Algoritma dijkstra adalah salah satu algoritma untuk

memecahkan masalah “ single source shortest path”

Pada algoritma dijkstra pemecahan masalah

diperuntukkan untuk sebuah Graph G=(V,E) yang

berbobot non negatif.

Diasumsikan w(i,j) ≥0 untuk masing-masing edge (i,j) Є

(11)

Metode algoritma DIJKSTRA

1.

Inisialisasi s (sumber)

Pilih salah satu vertex sebagai sumberMaka d(s) = 0

Beri label 0 pada vertex s

2.

Untuk masing-masing edge  e Є E

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)

(12)

12

3. e adalah edge untuk T yang mempunyai nilai P terkecil

 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 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)

Metode algoritma DIJKSTRA

14

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.

Label pada sebuah vertex adalah jarak dari s ke

(15)

Contoh 1

Tentukan shortest path dari A ke setiap v pada graph G

berikut:

A D C 7 10 6 4 8 5 2 15 9 B

(16)

Contoh 1(cont)

16

Spanning tree T kosong

1. Inisialisasi s (sumber)

pilih vertex A sebagai sumber.

S=A, maka d(A)=0. beri label 0 pada A 2. Untuk semua edge Є E,

i adalah endpoint yg sudah di label , i = A

j adalah endpoint yg belum dilabel j= B,C,D,EP(AB)=10, P(AC)=7, P(AE)=15

A D C E 7 10 6 4 8 5 2 15 9 B d(A)=0

(17)

Contoh 1(cont)

A D C E 7 10 6 4 8 5 2 15 9 B d(A)=0 d(C)=7

3 . AC yang mempunyai nilai P terkecil

sehingga C ditambahkan ke spanning tree T

 d(c)=P(AC)=7

(18)

Contoh 1(cont)

18

4. Kembali ke no 2

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 A D C E 7 10 6 4 8 5 2 15 9 B d(A)=0 d(C)=7 d(D)=9

(19)

Contoh 1(cont)

5. Kembali ke no 2

• 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 A D C E 7 10 6 4 8 5 2 15 9 B d(A)=0 d(C)=7 d(D)=9 d(B)=10

(20)

Contoh 1(cont)

20

5.

Kembali ke no 2

 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

6.

Semua vertex sudah

diberi label

7.

selesai

A D C E 7 10 6 4 8 5 2 15 9 B d(A)=0 d(C)=7 d(B)=10 d(D)=9 d(E)=13

(21)

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.

 Dijkstra's algorithm is almost identical to that of Prim's.The algorithm

begins at a specific vertex and extends outward within the graph, until all vertices have been reached.

 The only distinction is that

 Prim's algorithm stores a minimum cost edge

 whereas Dijkstra's algorithm stores the total cost from a source vertex to

(22)

contoh

(23)
(24)

contoh

(25)
(26)

contoh

(27)
(28)

soal

28

(29)

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

(30)

Ciri – ciri Algoritma Bellman-Ford :

30

 Bekerja walaupun terdapat edge dengan bobot negative.

 Harus directed edge (jika tidak graph akan memiliki cycle dengan

bobot negatif)

 Iterasi i menemukan seluruh shortest path dengan menggunakan i

edge.

(31)

Contoh algoritma bellman ford

BF(G,w,s) // G = Graph, w = weight, s=source Determine Single Source(G,s);

set Distance(s) = 0; Predecessor(s) = nil; for each vertex v in G other than s,

set Distance(v) = infinity, Predecessor(v) = nil;

for i <- 1 to |V(G)| - 1 do //|V(G)| Number of vertices in the graph for each edge (u,v) in G do

if Distance(v) > Distance(u) + w(u,v) then

set Distance(v) = Distance(u) + w(u,v), Predecessor(v) = u; for each edge (u,r) in G do

if Distance(r) > Distance(u) + w(u,r);

return false; //This means that the graph contains a cycle of negative weight //and the shortest paths are not well defined

(32)

Algoritma :

32

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

(33)

Teknik relaksasi

Untuk setiap vertex v Є V, d (v) adalah bobot upper bound sebuah shortest path dari s ke v, d(v) disebut

estimasi

(34)

relaksasi

34

1. pada algorithm Dijkstra dan algoritma shortest-paths untuk

directed acyclic graphs (DAG), setiap edge direlaksasi sekali.

(35)

Triangle Inequality

Lemma 1

Untuk setiap edge (u; v) Є E, mempunyai δ(s;v) ≤ δ(s;u)+w(u;v)

(36)

Upper-bound Property

36

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

(37)

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.

(38)

Path-relaxation Property

(39)

Applications in routing

 A distributed variant of Bellman-Ford algorithm is used in

the

Routing Information Protocol

(RIP). The algorithm is

distributed because it involves a number of nodes (routers)

within an

Autonomous system

, a collection of IP networks

typically owned by an ISP. It consists of the following steps:

 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.

(40)

Applications in routing

40

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.

(41)

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.

Pada tiap iterasi, harus dipertimbangkan edge mana yang akan

(42)

contoh

42

 • develop algorithm using the following working example

• use a table to show changes in estimates of distances and

predecessors

• initialize table — no predecessors

(43)

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)

(44)

contoh

44

show how we can use predecessor information to trace paths from source

(45)
(46)
(47)
(48)
(49)
(50)
(51)
(52)
(53)

Referensi

Dokumen terkait

Seminar Nasional Peranan Konservasi Flora Indonesia Dalam Mengatasi Dampak Pemanasan Global telah diselenggarakan pada tanggal 14 Juli 2009 di Kebun Raya “Eka Karya” Bali -

Kehilangan data pun juga sering terjadi, karena kertas yang digunakan dapat menjadi lusuh, terkena air, maupun tulisan yang sulit dibaca Dari kendala pengolahan data

Bab 2 membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis

Dari peta yang berupa isomass dapat dihitung estimasi volume tefra jatuhan yang dihasilkan, sedangkan dari data kontur isopach juga dapat digunakan untuk mengetahui tipe

Ayat 11 dan 12 bilang bahwa hanya jika orang kafir masuk islam mereka akan dianggap sebagai saudara (dalam iman) tapi jika mereka memutuskan utk.. mempraktekkan kebebasan

Satu perjanjian telah ditandatangani oleh Raffles dengan Temenggung Abdul Rahman dan Sultan Hussein pada 2 Ogos 1824 supaya SHTI dapat berkuasa di seluruh Singapura.

He glanced over at the dark shape of Cheney sprawled in the corner by the door, thinking that he didn’t need to be told to be careful; he was careful all the time anyway.. But he let

Tujuan jangka panjang penelitian adalah untuk mengetahui sejauh mana kualitas semen beku Sapi Simmental meliputi motilitas, viabilitas, Membran Plasma Utuh (MPU) dan Tudung