algorithms theory algorithms theory 11 11 shortest paths
play

Algorithms Theory Algorithms Theory 11 11 Shortest Paths Sh t - PowerPoint PPT Presentation

Algorithms Theory Algorithms Theory 11 11 Shortest Paths Sh t t P th Dr. Alexander Souza Winter term 11/12 1. Shortest-paths problem Directed graph G = (V, E) g p ( ) Cost function c : E R 2 1 3 3 3 1 4 4 4 4 2 2


  1. Algorithms Theory Algorithms Theory 11 11 – Shortest Paths Sh t t P th Dr. Alexander Souza Winter term 11/12

  2. 1. Shortest-paths problem Directed graph G = (V, E) g p ( ) Cost function c : E → R 2 1 3 3 3 −1 4 4 4 4 2 2 −6 −6 6 6 5 3 2 Winter term 11/12

  3. Distance between two vertices Cost of a path P Cost of a path P = v 0 v 1 v 0 , v 1 , ... , v l from u to v : v l from u to v : l − 1 ∑ ∑ = c c ( ( P P ) ) c c ( ( v v i v i v , , ) ) i i + 1 1 = i 0 Distance between u and v (not always defined): Distance between u and v (not always defined): dist ( u , v ) = inf { c ( P ) | P is a path from u to v } 3 Winter term 11/12

  4. Example 2 2 1 1 3 3 −1 1 4 4 2 2 −6 6 5 3 dist( dist( 1,2) = dist( dist( 3,1) = dist( dist( 1,3) = dist( dist( 3,4) = 4 Winter term 11/12

  5. 2. Single-source shortest paths problem Input: Input: network G = ( V E c ) network G ( V , E , c ), c : E → R, vertex s c : E → R vertex s Output: dist ( s , v ) for all v ∈ V Observation: The function dist satisfies the triangle inequality. For any edge ( u , v ) ∈ E : dist ( s,v ) ≤ dist ( s , u ) + c ( u , v ) u P ’ s P = P = shortest path from shortest path from s to to v v v P’ = shortest path from P shortest path from s to shortest path from shortest path from s to to u to u P 5 Winter term 11/12

  6. Greedy approach to an algorithm 1. Overestimate the function dist 1 Overestimate the function dist ⎧ = 0 if v s ⎨ ⎨ = = dist dist ( ( s s , v v ) ) ⎩ ∞ ≠ if v s 2. While there exists an edge e = ( u , v ) with dist ( s , v ) > dist ( s , u ) + c ( u , v ) dist ( s , v ) dist ( s , u ) c ( u , v ) set dist ( s , v ) ← dist ( s , u ) + c ( u , v ) 6 Winter term 11/12

  7. Generic algorithm 1. DIST[ s ] ← 0; [ ] ; 2. for all v ∈ V \ { s } do DIST[v] ← ∞ endfor; 3. while ∃ e = ( u , v ) ∈ E with DIST[ v ] > DIST[ u ] + c ( u , v ) do 4 4 . Choose such an edge e = ( u , v ); Ch h d ( ) 5. DIST[ v ] ← DIST[ u ] + c ( u , v ); 6. endwhile; Questions: 1. How can we efficiently check in line 3 if the triangle inequality is violated? 2. Which edge shall we choose in line 4? 7 Winter term 11/12

  8. Solution Maintain a set U of all those vertices that might have an outgoing edge Maintain a set U of all those vertices that might have an outgoing edge violating the triangle inequality. - Initialize U = { s } - Add vertex v to U whenever DIST[ v ] decreases. 1. Check if the triangle inequality is violated: U ≠ ∅ ? g q y 2. Choose a vertex from U and restore the triangle inequality for all outgoing edges (edge relaxation). 8 Winter term 11/12

  9. Refined algorithm 1. DIST[ s ] ← 0; 1 DIST[ s ] ← 0; 2. for all v ∈ V \ { s } do DIST[ v ] ← ∞ endfor; 3. U ← { s }; 4. while U ≠ ∅ do 5. Choose a vertex u ∈ U and delete it from U ; 6. 6 f for all e = ( u , v ) ∈ E do ll ( ) E d 7. if DIST[ v ] > DIST[ u ] + c ( u , v ) then 8. 8. DIST[ v ] ← DIST[ u ] c ( u , v ); DIST[ v ] ← DIST[ u ] + c ( u , v ); 9. U ← U ∪ { v }; 10. endif; 11 . endfor; 12. endwhile; 9 Winter term 11/12

  10. Invariant for the DIST values Lemma 1: For each vertex v ∈ V we have DIST[ v ] ≥ dist ( s v ) Lemma 1: For each vertex v ∈ V we have DIST[ v ] ≥ dist ( s , v ). Proof: (by contradiction) Let v be the first vertex for which the relaxation of an edge ( u , v ) yields DIST[ v ] < dist ( s v ) yields DIST[ v ] < dist ( s , v ). Then: DIST[ u ] + c ( u , v ) = DIST[ v ] < dist ( s , v ) ≤ dist ( s , u ) + c ( u , v ) 10 Winter term 11/12

  11. Important properties Lemma 2: Lemma 2: a) If v ∉ U, then for all ( v , w ) ∈ E : DIST[ w ] ≤ DIST[ v ] + c ( v , w ) b) Let s = v 0 , v 1 , ..., v l = v be a shortest path from s to v. If DIST[ v ] > dist ( s , v ) , then there exists v i , 0 ≤ i ≤ l -1, with v i ∈ U and DIST[ v i ] = dist ( s , v i ). U d DIST[ ] di t ( ) c) If G has no negative-cost cycles and DIST[ v ] > dist ( s , v ) for any c) If G has no negative cost cycles and DIST[ v ] dist ( s , v ) for any v ∈ V, then there exists a u ∈ U with DIST[ u ] = dist ( s , u ). d) If in line 5 we always choose u ∈ U with DIST[ u ] = dist ( s , u ), then the while-loop is executed only once per vertex. 11 Winter term 11/12

  12. Proof of Lemma 2 a) Induction on the number i of executions of while-loop a) Induction on the number i of executions of while loop i = 0: 12 Winter term 11/12

  13. Proof of Lemma 2 i > 0: i 0: 13 Winter term 11/12

  14. Proof of Lemma 2 b) b) 14 Winter term 11/12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend