Presentation is loading. Please wait.

Presentation is loading. Please wait.

SINGLE-SOURCE SHORTEST PATHS. Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the.

Similar presentations


Presentation on theme: "SINGLE-SOURCE SHORTEST PATHS. Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the."— Presentation transcript:

1 SINGLE-SOURCE SHORTEST PATHS

2 Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the path begins is the source vertex. The vertex at which the path ends is the destination vertex. 0 39 511 3 6 5 7 6 s t x yz 2 2 1 4 3

3 Example Consider Source node 1 and destination node 7 A direct path between Nodes 1 and 7 will cost 14

4 Example A shorter path will cost only 11

5 Shortest-Path Variants Single-source single-destination (1-1): Find the shortest path from source s to destination v. Single-source all-destination(1-Many): Find the shortest path from s to each vertex v. Single-destination shortest-paths (Many-1): Find a shortest path to a given destination vertex t from each vertex v. All-pairs shortest-paths problem (Many-Many): Find a shortest path from u to v for every pair of vertices u and v. We talk about directed, weighted graphs

6 Shortest-Path Variants (Cont’d) For un-weighted graphs, the shortest path problem is mapped to BFS –Since all weights are the same, we search for the smallest number of edges BFS creates a tree called BFS-Tree

7 Shortest-Path Variants Single-source single-destination (1-1): Find the shortest path from source s to destination v. Single-source all-destination(1-Many): Find the shortest path from s to each vertex v. Single-destination shortest-paths (Many-1): Find a shortest path to a given destination vertex t from each vertex v. All-pairs shortest-paths problem (Many-Many): Find a shortest path from u to v for every pair of vertices u and v. No need to consider different solution or algorithm for each variant (we reduce it into two types)

8 Shortest-Path Variants Single-Source Single-Destination (1-1) -No good solution that beats 1-M variant -Thus, this problem is mapped to the 1-M variant Single-Source All-Destination (1-M) -Need to be solved (several algorithms) -We will study this one All-Sources Single-Destination (M-1) -Reverse all edges in the graph -Thus, it is mapped to the (1-M) variant All-Sources All-Destinations (M-M) -Need to be solved (several algorithms) -We will study it (if time permits)

9 Shortest-Path Variants Single-Source Single-Destination (1-1) -No good solution that beats 1-M variant -Thus, this problem is mapped to the 1-M variant Single-Source All-Destination (1-M) -Need to be solved (several algorithms) -We will study this one All-Sources Single-Destination (M-1) -Reverse all edges in the graph -Thus, it is mapped to the (1-M) variant All-Sources All-Destinations (M-M) -Need to be solved (several algorithms) -We will study it (if time permits)

10 Introduction Generalization of BFS to handle weighted graphs Direct Graph G = ( V, E ), edge weight fn ; w : E → R In BFS w(e)=1 for all e Î E Weight of path p = v 1  v 2  …  v k is

11 Shortest Path Shortest Path = Path of minimum weight δ(u,v)= min{ω(p) : u v}; if there is a path from u to v,  otherwise. p

12 Several Properties

13 1- Optimal Substructure Property Theorem: Subpaths of shortest paths are also shortest paths v 1,..i,.. j..,..,v k v 1 v k Let δ(1,k) = be a shortest path from v 1 to v k v i,...,v j v i v j Let δ(i,j) = be subpath of δ(1,k) from v i to v j for any i, j v i v jThen δ(I,j) is a shortest path from v i to v j

14 Proof: By cut and paste If some subpath were not a shortest path We could substitute a shorter subpath to create a shorter total path Hence, the original path would not be shortest path v2v2v2v2 v3 v3 v3 v3 v4 v4 v4 v4 v5v5v5v5 v6 v6 v6 v6 v7v7v7v7 1- Optimal Substructure Property v1v1v1v1 v0v0v0v0

15 Definition: δ(u,v) = weight of the shortest path(s) from u to v Negative-weight cycle : The problem is undefined –can always get a shorter path by going around the cycle again Positive-weight cycle : can be taken out and reduces the cost s v cycle < 0 2- No Cycles in Shortest Path

16 3- Negative-weight edges No problem, as long as no negative-weight cycles are reachable from the source (allowed)

17 4- Triangle Inequality Lemma 1: for a given vertex s in V and for every edge (u,v) in E, δ(s,v) ≤ δ(s,u) + w(u,v) Proof: shortest path s v is no longer than any other path. in particular the path that takes the shortest path s v and then takes cycle (u,v) s u v

18 Algorithms to Cover Dijkstra’s Algorithm Shortest Path is DAGs

19 Initialization Maintain d[v] for each v in V d[v] is called shortest-path weight estimate and it is upper bound on δ(s,v) INIT(G, s) for each v  V do d[v] ← ∞ π[v] ← NIL d[s] ← 0 Parent node Upper bound

20 Relaxation RELAX(u, v) if d[v] > d[u]+w(u,v) then d[v] ← d[u]+w(u,v) π[v] ← u  uv vu 2 2   Change d[v]  uv vu 2 2   When you find an edge (u,v) then check this condition and relax d[v] if possible No chnage

21 Algorithms to Cover Dijkstra’s Algorithm Shortest Path is DAGs

22 Non-negative edge weight Like BFS: If all edge weights are equal, then use BFS, otherwise use this algorithm Use Q = min-priority queue keyed on d[v] values Dijkstra ’ s Algorithm For Shortest Paths

23 DIJKSTRA(G, s) INIT(G, s) S←Ø> set of discovered nodes Q←V[G] while Q ≠Ø do u←EXTRACT-MIN(Q) S←S U {u} for each v in Adj[u] do RELAX(u, v)> May cause > DECREASE-KEY(Q, v, d[v]) Dijkstra ’ s Algorithm For Shortest Paths

24 Example: Initialization Step

25 Example 3    s uv yx 10 5 1 2 9 46 7 2

26 Example 2    s uv yx 10 5 1 3 9 46 7 2

27 Example 2    s y x 10 5 1 3 9 46 7 2 u v

28 Example 10    s uv y x 5 1 23 9 46 7 2

29 Example  u v    y x 10 5 1 23 9 4 6 7 2 s

30 Example u 5    v yx 10 1 23 9 46 7 2 s

31 Dijkstra’s Algorithm Analysis O(V) O(V Log V) Total in the loop: O(V Log V) Total in the loop: O(E Log V) Time Complexity: O (E Log V)

32 Algorithms to Cover Dijkstra’s Algorithm Shortest Path is DAGs

33 Key Property in DAGs If there are no cycles  it is called a DAG In DAGs, nodes can be sorted in a linear order such that all edges are forward edges –Topological sort

34 Single-Source Shortest Paths in DAGs Shortest paths are always well-defined in dags  no cycles => no negative-weight cycles even if there are negative-weight edges Idea: If we were lucky  To process vertices on each shortest path from left to right, we would be done in 1 pass

35 Single-Source Shortest Paths in DAGs DAG-SHORTEST PATHS(G, s) TOPOLOGICALLY-SORT the vertices of G INIT(G, s) for each vertex u taken in topologically sorted order do for each v in Adj[u] do RELAX(u, v)

36 Example  0  r s t u v w 5 27 –1 –2 61 3 2 4

37 Example  0  r s t u v w 5 27 –1 –2 61 3 2 4

38 Example  026  r s t u v w 5 27 –1 –2 61 3 2 4

39 Example  02664 r s t u v w 5 27 –1 –2 61 3 2 4

40 Example  02654 r s t u v w 5 27 –1 –2 61 3 2 4

41 Example  02653 r s t u v w 5 27 –1 –2 61 3 2 4

42 Example  02653 r s t u v w 5 27 –1 –2 61 3 2 4

43 Single-Source Shortest Paths in DAGs: Analysis DAG-SHORTEST PATHS(G, s) TOPOLOGICALLY-SORT the vertices of G INIT(G, s) for each vertex u taken in topologically sorted order do for each v in Adj[u] do RELAX(u, v) O(V+E) O(V) Total O(E) Time Complexity: O (V + E)


Download ppt "SINGLE-SOURCE SHORTEST PATHS. Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the."

Similar presentations


Ads by Google