Cse 421 algorithms
Download
1 / 17

CSE 421 Algorithms - PowerPoint PPT Presentation


  • 53 Views
  • Uploaded on

CSE 421 Algorithms. Richard Anderson Lecture 21 Shortest Path Network Flow Introduction. Announcements. Friday, 11/18, Class will meet in CSE 305 Reading 7.1-7.3, 7.5-7.6 Section 7.4 will not be covered. Find the shortest paths from v with exactly k edges. 7. y. v. 5. 1. -2. -2.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CSE 421 Algorithms' - kelsie-wilkinson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Cse 421 algorithms

CSE 421Algorithms

Richard Anderson

Lecture 21

Shortest Path

Network Flow Introduction


Announcements
Announcements

  • Friday, 11/18, Class will meet in CSE 305

  • Reading 7.1-7.3, 7.5-7.6

    • Section 7.4 will not be covered



Express as a recurrence
Express as a recurrence

  • Optk(w) = minx [Optk-1(x) + cxw]

  • Opt0(w) = 0 if v=w and infinity otherwise


Algorithm version 1
Algorithm, Version 1

foreach w

M[0, w] = infinity;

M[0, v] = 0;

for i = 1 to n-1

foreach w

M[i, w] = minx(M[i-1,x] + cost[x,w]);


Algorithm version 2
Algorithm, Version 2

foreach w

M[0, w] = infinity;

M[0, v] = 0;

for i = 1 to n-1

foreach w

M[i, w] = min(M[i-1, w], minx(M[i-1,x] + cost[x,w]))


Algorithm version 3
Algorithm, Version 3

foreach w

M[w] = infinity;

M[v] = 0;

for i = 1 to n-1

foreach w

M[w] = min(M[w], minx(M[x] + cost[x,w]))


Algorithm 2 vs algorithm 3
Algorithm 2 vs Algorithm 3

7

y

v

5

1

-2

-2

3

1

x

3

z


Correctness proof for algorithm 3
Correctness Proof for Algorithm 3

  • Key lemma – at the end of iteration i, for all w, M[w] <= M[i, w];

  • Reconstructing the path:

    • Set P[w] = x, whenever M[w] is updated from vertex x

7

y

v

5

1

-2

-2

3

1

x

3

z


Negative cost cycle example
Negative Cost Cycle example

7

y

v

3

1

-2

-2

3

3

x

-2

z


If the pointer graph has a cycle then the graph has a negative cost cycle
If the pointer graph has a cycle, then the graph has a negative cost cycle

  • If P[w] = x then M[w] >= M[x] + cost(x,w)

    • Equal after update, then M[x] could be reduced

  • Let v1, v2,…vk be a cycle in the pointer graph with (vk,v1) the last edge added

    • Just before the update

      • M[vj] >= M[vj+1] + cost(vj+1, vj) for j < k

      • M[vk] > M[v1] + cost(v1, vk)

    • Adding everything up

      • 0 > cost(v1,v2) + cost(v2,v3) + … + cost(vk, v1)

v1

v4

v2

v3


Negative cycles
Negative Cycles negative cost cycle

  • If the pointer graph has a cycle, then the graph has a negative cycle

  • Therefore: if the graph has no negative cycles, then the pointer graph has no negative cycles


Finding negative cost cycles
Finding negative cost cycles negative cost cycle

  • What if you want to find negative cost cycles?


Network flow
Network Flow negative cost cycle


Network flow definitions
Network Flow Definitions negative cost cycle

  • Capacity

  • Source, Sink

  • Capacity Condition

  • Conservation Condition

  • Value of a flow


Flow example
Flow Example negative cost cycle

u

20

10

30

s

t

10

20

v


Residual graph
Residual Graph negative cost cycle

u

u

15/20

0/10

5

10

15

15/30

s

t

15

15

s

t

5

5/10

20/20

5

20

v

v


ad