Download - Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Transcript
Page 1: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Shortest Path Algorithms

Page 2: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Deliverables

Shortest Path Algorithms

Dijkstra Algorithm

Bellman Ford Algorithm

Ford Fulkerson

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 2

Page 3: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Definition

Given a Graph Path P= V1 V2 V3… Vk has weight

W(p) =

Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path weight from u to v is

δ(u, v) = min{ W(p) : P from u to v}

= ∞ if there is no path from u to v

Negative edge weights does not affect the definition of shortest path, however if there is a cycle containing negative edge weight then the shortest path does not exist and δ(u, v) = - ∞

Copyright @ gdeepak.com®

1

1)

1

( ~

k

i i

i

w V V

6/12/2012 6:29 PM 3

Page 4: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Optimal substructure property

• A sub path of a shortest path is a shortest path

• U to V has a shortest path including the sub path X to Y. If there is an alternative shortest path from x to y, then that should have been included in calculating shortest path from u to v.

Copyright @ gdeepak.com®

u x y v

Hypothetical shortest path

6/12/2012 6:29 PM 4

Page 5: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Triangle Inequality

• For all vertices u, v, x є V

• δ (u, v) ≤ δ(u, x) + δ (x, v)

Copyright @ gdeepak.com®

u

x

v δ(u,v)

δ(x,v) δ(u,x)

6/12/2012 6:29 PM 5

Page 6: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Single Source Shortest Path

From a given source vertex s є V find shortest path weight δ (s, v) for all v є V.

The best way to solve from a to b is no easier then solving from a to every one else.

Assuming No negative weights exist and w(u, v) ≥ 0

Means shortest paths exist provided path exist otherwise δ(u, v) = -∞

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 6

Page 7: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Greedy approach

1. Maintain set S of vertices whose shortest path distance from s is known s є S

2. At each step add to S one vertex v є {V-S} whose estimated distance from s is

minimum.

3. Update distance estimates of vertices adjacent to v.

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 7

Page 8: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

6/12/2012 6:29 PM 8

Page 9: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

• 0 ∞ ∞ ∞ ∞

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

0

s

6/12/2012 6:29 PM 9

Page 10: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

• 0 ∞ ∞ ∞ ∞

• 10 3 ∞ ∞

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

10

3

0

s

6/12/2012 6:29 PM 10

Page 11: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

• 0 ∞ ∞ ∞ ∞

• 10 3 ∞ ∞

• 7 11 5

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

7

3

11

5

0

s

6/12/2012 6:29 PM 11

Page 12: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

• 0 ∞ ∞ ∞ ∞

• 10 3 ∞ ∞

• 7 11 5

• 7 11

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

7

3

11

5

0

s

6/12/2012 6:29 PM 12

Page 13: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Dijkstra Example

• Q A B C D E

• 0 ∞ ∞ ∞ ∞

• 10 3 ∞ ∞

• 7 11 5

• 7 11

• 9

Copyright @ gdeepak.com®

A

B

C

D

E

10

3

2

1 4

2

9 7

8

7

3

9

5

0

s

6/12/2012 6:29 PM 13

Page 14: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Algorithm

• Dijkstra Algorithm(G,V,E) • d[s] 0 • for each v є V –{s} • do d[v] ∞ • S Φ • Q V • while Q ≠ Null • do u Extract-min(Q) • S S Union {u} • for each v є Adj(u) • do if d[v] > d[u] + w(u, v) • then d[v] d[v] + w(u, v) # implicit decrease key or relaxation step

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 14

Page 15: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Time Complexity

• Shortest path tree is union of all shortest path.

• Complexity = |v| extract-min + |E| decrease key

• For Array O(V2)

• For Binary heap O(V+E) lgV

• For Fibonacci Heap O(E+V lg V)

• Dijkstra is equivalent to a BFS if weights of all the edges are taken as one.

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 15

Page 16: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Algorithm

• Computes δ (s, v) from source vertex s є V to all vertices v є V or reports that a negative weight cycle exists

• Bellman_Ford(G, w, s) • D[s] 0 • For each v є V-{s} • do d[v] ∞ • For i 1 to |v|-1 • do for each edge (u, v) є E • do if d[v] > d[u] + w(u, v) • then d[v] d[u] + w(u, v) • For each edge (u, v) є E • do if d[v] > d[u] + w(u, v) • then report that a negative weight cycle exists • Else d[v] = δ (s, v)

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 16

Page 17: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Time Complexity

Nonnegative edge weights

Dijkstra’s algorithm: O(E + V lg V)

General

Bellman-Ford: O(VE)

DAG

One pass of Bellman-Ford: O(V + E)

Bellman Ford is Slower then Dijkstra but Dijkstra does not handle negative edge weights

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 17

Page 18: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

6/12/2012 6:29 PM 18

Page 19: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

0

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 19

Page 20: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

We start from #1, ∞ +2 is ∞ so no change

Then edge #2, ∞ +2 is ∞ so no change

Then edge #3, ∞ +1 is ∞ so no change

Then edge #4, 0 + (-1) is -1 which is less than ∞ so change to -1

Then edge #5, 0 +4 Which is less that ∞ so change it to 4

Then edge #6, ∞ +5 is ∞ so no change

Then edge #7, -1 +3 is 2 so change 4 to 2

Then edge #8, ∞ - 3 is ∞ so no change

6/12/2012 6:33 PM Copyright @ gdeepak.com® 20

Page 21: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

• 0 -1 ∞ ∞ ∞

• 0 -1 4 ∞ ∞

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

-1

0

4

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 21

Page 22: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

• 0 -1 ∞ ∞ ∞

• 0 -1 4 ∞ ∞

• 0 -1 2 ∞ ∞

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

-1

0

2

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 22

Page 23: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

• 0 -1 ∞ ∞ ∞

• 0 -1 4 ∞ ∞

• 0 -1 2 ∞ ∞

• 0 -1 2 ∞ 1

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

-1

0

2

1

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 23

Page 24: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

• 0 -1 ∞ ∞ ∞

• 0 -1 4 ∞ ∞

• 0 -1 2 ∞ ∞

• 0 -1 2 ∞ 1

• 0 -1 2 1 1

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

1

-1

0

2

1

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 24

Page 25: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Bellman Ford Example

• A B C D E

• 0 ∞ ∞ ∞ ∞

• 0 -1 ∞ ∞ ∞

• 0 -1 4 ∞ ∞

• 0 -1 2 ∞ ∞

• 0 -1 2 ∞ 1

• 0 -1 2 1 1

• 0 -1 2 -2 1

Copyright @ gdeepak.com®

A

B

E

C D

-1

3

4

2

5

2

1

-3

-2

-1

0

2

1

#1

#5 #8

#6

#4

#7

#2

#3

6/12/2012 6:29 PM 25

Page 26: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Few points

It is also possible to implement this algorithm in distributed systems because the relaxation step is local and can be independent of other parts.

Bellman ford is used a lot in internet to find the shortest path

If bellman ford fails to converge after |v-1| rounds then there is a negative edge cycle

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 26

Page 27: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

All Pairs Shortest Path

• Non Negative Edge Weights

• Dijkstra’s Algorithm |V| times: O(VE + V2lgV)

• Bellman Ford ( once from each vertex)

• Time O(V2E) so for Dense Graph O(v4)

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 27

Page 28: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Another Approach

Consider nXn adjacency matrix A=(aij) of the digraph and define

(dij)(m) =Weight of a shortest path from i to j that uses at

most m edges.

dij(0) = 0 if i=j

dij(0) = ∞ if i≠j

and for m= 1,2,…,n-1

(dij)(m) = mink

{(dik)(m-1) +akj}

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 28

Page 29: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

(dij)(m) = mink

{(dik)(m-1) +akj}

for m← 1 to n-1

do for i ← 1 to n

do for j ← 1 to n

do for k ← 1 to n

do if dij > dik + akj

then dij ← dik + akj

Complexity O(n4)

6/12/2012 6:29 PM Copyright @ gdeepak.com® 29

Relaxation Step

Page 30: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

No negative weight cycle means

δ (i, j) = dij(n-1)=dij

(n) =dij(n+1)=…

6/12/2012 6:29 PM Copyright @ gdeepak.com® 30

Page 31: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Similarity to Matrix Multiplication

Compute C=A . B, where C, A and B are n x n matrices: cij= 𝑎𝑖𝑘𝑏𝑘𝑗

𝑛𝑘=1

Time = O(n3) using the standard algorithm

There is an identical pattern in the All pair shortest Path if we map + to min and X to +

cij = mink{aik+bkj}

D(m)=D(m-1)XA

where A0= Identity Matrix= 1 ∞ ∞∞ 1 ∞∞ ∞ 1

= I= D0=dij(0)

6/12/2012 6:29 PM Copyright @ gdeepak.com® 31

Page 32: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Similarity to matrix multiplication

• (min,+) multiplication is associative and with real numbers.

• D1=D0.A=A1

• D2=D1.A=A2

• .

• .

• Dn-1=Dn-2.A=An-1 which is equal to δ (i,j)

• Time=O(n.n3) = O(n4) which is no better then the previous ones

6/12/2012 6:29 PM Copyright @ gdeepak.com® 32

Page 33: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Improved Matrix Multiplication

• A2k= AkXAk

• Computing A2, A4,…… in O(lgn) squaring's

• Time = O(n3lgn)

• It can be further improved with Strassen matrix multiplication.

• To detect negative weight cycle check the diagonal for negative values in O(n) additional time

6/12/2012 6:29 PM Copyright @ gdeepak.com® 33

Page 34: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Floyd Warshall Algorithm

cij(k)weight of a shortest path from i to j with intermediate

vertices belonging to the set {1, 2, …, k}

δ(i,j)=cij(n)=aij

6/12/2012 6:29 PM Copyright @ gdeepak.com® 34

Page 35: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Floyd-Warshall Recurrence

6/12/2012 6:29 PM Copyright @ gdeepak.com® 35

Page 36: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Floyd Warshall Recurrence

for k← 1 to n

do for i ← 1 to n

do for j ← 1 to n

do if cij > cik + ckj

then cij ← cik + ckj

• Complexity O(n3)

• It is simple and efficient

6/12/2012 6:29 PM Copyright @ gdeepak.com® 36

Relaxation

Page 37: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Reweighing of edges

Given a label h(v) for each v ∈ V, reweight each edge (u, v) ∈ E by ŵ(u, v) = w(u, v) + h(u) – h(v).

Then, all paths between the same two vertices are reweighted by the same amount

6/12/2012 6:29 PM Copyright @ gdeepak.com® 37

Page 38: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Johnson’s Algorithm

1. Find a vertex labelling h such that ŵ(u, v) ≥ 0 for all (u, v) ∈ E by using Bellman-Ford to solve the difference constraints h(v) – h(u) ≤ w(u, v), or determine that a negative-weight cycle exists. Time = O(VE). 2. Run Dijkstra’s algorithm from each vertex using ŵ. Time = O(VE + V2 lg V). 3. Reweight each shortest-path length ŵ(p) to produce the shortest-path lengths w(p) of the original graph. Time = O(V2). Total time = O(VE + V2 lg V).

6/12/2012 6:29 PM Copyright @ gdeepak.com® 38

Page 39: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Johnson’s algorithm

3 7

4

2

8

-4

6

1 -5

Page 40: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Johnson’s algorithm

3 7

4

2

8

-4

6

1 -5

s

0

0

0

0

0

Add a point s, with a weight 0 edge to each point

Page 41: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Johnson’s algorithm

-1

0 -5

-4 0

3 7

4

2

8

-4

6

1 -5

s

0

0

0

0

0

Implementation of the Bellman-Ford algorithm, a self-s starting shortest distance.

Page 42: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Apply Reweighing

• For edge (0,-4) with w(u, v) as -4 New weight is

w(u, v) + h(u) – h(v) which is [-4+ 0 – (-4) ] = 0

• For edge (0,-1) with w(u, v) as 3 New weight is

w(u, v) + h(u) – h(v) which is [3+ 0 – (-1) ] = 4

and so on

6/12/2012 6:40 PM Copyright @ gdeepak.com® 42

Page 43: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Johnson’s algorithm

-1

0 -5

-4 0

4 10

0

2

13

0

2

0 0

Done

reweighting

Page 44: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Interesting

• Longest path problem is NP-complete because of presence of positive weight cycles.

• DAG’s with negative weights can be done in O(e)

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 44

Page 45: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Questions, Comments and Suggestions

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 45

Page 46: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Question 1

Adding same weight to all the graph edges keeps the shortest path intact?

A) True

B) False

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 46

Page 47: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Question 2

Given a graph G = (V;E) with positive edge weights, the Bellman-Ford algorithm and Dijkstra’s algorithm can produce different shortest-path trees despite always producing the same shortest-path weights. Reason?

A) True

B) False

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 47

Page 48: Shortest Path Algorithms · Given a Graph Path P= V 1 V 2 V 3 … V k has weight W(p) = ¦ Shortest path from u to v is a path of minimum possible weight from u to v. Shortest path

Question 3

If all edges in a graph have distinct weights, then the shortest path between two vertices is unique.

• A) True

• B) False

Copyright @ gdeepak.com® 6/12/2012 6:29 PM 48