Presentation is loading. Please wait.

Presentation is loading. Please wait.

Negative-Weight edges:

Similar presentations


Presentation on theme: "Negative-Weight edges:"— Presentation transcript:

1 Negative-Weight edges:
Edge weight may be negative. negative-weight cycles– the total weight in the cycle (circuit) is negative. If no negative-weight cycles reachable from the source s, then for all v V, the shortest-path weight remains well defined,even if it has a negative value. If there is a negative-weight cycle on some path from s to v, we define = 2019/5/18 chapter25

2 a b -4 h i 3 -1 2 4 3 c d 6 8 5 -8 3 5 11 g s -3 e 3 f 2 7 j -6 Figure1 Negative edge weights in a directed graph.Shown within each vertex is its shortest-path weight from source s.Because vertices e and f form a negative-weight cycle reachable from s,they have shortest-path weights of Because vertex g is reachable from a vertex whose shortest path is ,it,too,has a shortest-path weight of Vertices such as h, i ,and j are not reachable from s,and so their shortest-path weights are , even though they lie on a negative-weight cycle. 2019/5/18 chapter25

3 Relaxation: The process of relaxing an edge (u,v) consists of testing whether we can improve the shortest path to v found so far by going through u and,if so,updating d[v] and [v]. RELAX(u,v,w) if d[v]>d[u]+w(u,v) then d[v]  d[u]+w(u,v) (based on Lemma 25.3) [v]  u 2019/5/18 chapter25

4 u v u v 2 2 5 9 5 6 RELAX(u,v) RELAX(u,v) u v u v 2 2 5 7 5 6 (a) (b)
Figure2 Relaxation of an edge (u,v).The shortest-path estimate of each vertex is shown within the vertex. (a)Because d[v]>d[u]+w(u,v) prior to relaxation, the value of d[v] decreases. (b)Here, d[v] d[u]+w(u,v) before the relaxation step,so d[v] is unchanged by relaxation. 2019/5/18 chapter25

5 Bellman-Ford algorithm:
The Bellman-Ford algorithm solves the single-source shortest-paths problem in the more general case in which edge weights can be negative. It report FALSE if a negative-weight circuit exists. 2019/5/18 chapter25

6 Continue: BELLMAN-FORD(G,w,s): INITIALIZE-SINGLE-SOURCE(G,s)
for i  1 to |V[G]| do for each edge (u,v)  E[G] (The order here is arbitrary) do RELAX(u,v,w) for each edge (u,v) E[G] do if d[v]>d[u]+w(u,v) then return FALSE return TRUE Time complexity: O(|V||E|). 2019/5/18 chapter25

7 6 7 9 2 5 -2 8 -3 -4 z u v x y (a) 2019/5/18 chapter25

8 u 5 v 6 8 -2 6 -3 8 7 z -4 2 7 7 8 9 x y (b) 2019/5/18 chapter25

9 u 5 v 6 4 -2 6 -3 8 7 z -4 2 7 7 2 9 x y (c) 2019/5/18 chapter25

10 u 5 v 2 4 -2 6 -3 8 7 z -4 2 7 7 2 9 x y (d) 2019/5/18 chapter25

11 u 5 v 2 4 -2 6 -3 8 7 z -4 2 7 7 -2 9 x y (e) 2019/5/18 chapter25

12 Proof: We prove it by induction on i.
Theorem: (hard) after the i-th iteration, the cost of a shortest path from s to any node v containing i edges is obtained. Proof: We prove it by induction on i. The theorem is true for i=1. The shortest path from s to v containing at most one edge is the the edge (s, v) (if exists). Assume that the theorem is true for i=k. Then we are going to show that the theorem is true for i=k+1. Let P: s-> v1-> v2 …->vm-> v be the shortest path from s to v containing at most k+1 edges. Then P1: s-> v1-> v2 …->vm must be the shortest path from s to vm containing at most k edges. By assumption, P1 has been obtained after (k)-th iteration. In the (k+1)-th iteration, we tried to RELAX(vm, v, w) on node vm. Thus, path P is obtained after the (k+1)-th iteration. 2019/5/18 chapter25

13 Corollary: If negative-weight circuit exists in the given graph, in the n-th iteration, the cost of a shortest path from s to some node v will be further reduced. Demonstrated by the following example. Note: For each iteration, the order of edges used does not effect the Theorem. However, the intermediate results may vary. The final results will be the same. 2019/5/18 chapter25

14 An example with negative-weight cycle
5 1 6 -2 8 7 7 9 2 2 5 -8 An example with negative-weight cycle 2019/5/18 chapter25

15 7 6 8 5 -2 1 2 9 -8 2019/5/18 chapter25

16 7 6 16 11 9 8 5 -2 1 2 -8 2019/5/18 chapter25

17 7 6 16 12 11 1 9 8 5 -2 2 -8 2019/5/18 chapter25

18 6 16 12 11 1 9 7 8 5 -2 2 -8 2019/5/18 chapter25

19 5 6 11 1 6 -2 8 7 12 7 9 2 6 15 2 5 -8 8 1 2019/5/18 chapter25

20 6 15 12 11 8 7 5 -2 1 2 9 -8 2019/5/18 chapter25

21 5 6 11 1 6 -2 8 7 12 7 9 2 5 15 2 5 -8 8 x 2019/5/18 chapter25

22 Exercise: use Bellman-Ford algorithm for the graph
5 -3 1 6 -2 8 7 7 9 2 2 5 -6 Exercise: use Bellman-Ford algorithm for the graph 2019/5/18 chapter25


Download ppt "Negative-Weight edges:"

Similar presentations


Ads by Google