Network Flow Algorithms: Applications and Techniques, Lecture notes of Algorithms and Programming

[Week 11] Flow Networks II -- Disjoint Paths, Network Connectivity, Circulation Problems, etc

Typology: Lecture notes

2018/2019

Uploaded on 06/15/2019

kefart
kefart 🇺🇸

4.4

(11)

55 documents

1 / 54

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
The University of Sydney Page 1
Quiz 3
Wednesday 12 June at PNR 310 6pm.
2.5 hours
Closed book
Calculator non-programmable allowed
6 questions
Allocate your time/effort to a question according to its marks
MCQ 24th May 2019
Assignment 3 due by May 26th at 11:59pm
There will be questions with check boxes where single or multiple choices could be correct.
Mark will only be awarded ONLY if correct choice(s) ticked.
Final Exam
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Partial preview of the text

Download Network Flow Algorithms: Applications and Techniques and more Lecture notes Algorithms and Programming in PDF only on Docsity!

Quiz 3

  • Wednesday 12 June at PNR 310 6pm.
  • 2.5 hours
  • Closed book
  • Calculator non-programmable allowed
  • 6 questions
  • Allocate your time/effort to a question according to its marks
  • MCQ 24

th

May 2019

  • Assignment 3 due by May 26th at 11:59pm
  • There will be questions with check boxes where single or multiple choices could be correct.
  • Mark will only be awarded ONLY if correct choice(s) ticked.

Final Exam

Flow networks II:

Applications

Recap: Minimum Cut Problem

  • Flow network
    • Abstraction for material flowing through the edges.
    • G = (V, E) = directed graph, no parallel edges.
    • Two distinguished nodes: s = source, t = sink.
    • c(e) = capacity of edge e.

s

t

capacity

source sink

Recap: Flows

capacity

flow

s

t

Value = 24

s

t

  • Definition: An s-t flow is a function that satisfies:
    • For each e ∈ E: (capacity)
    • For each v ∈ V – {s, t}: (conservation)
  • Definition: The value of a flow f is:

f ( e )

e in to v

∑ =^ f^ ( e )

e out of v

0 ≤ f ( e ) ≤ c ( e )

v ( f ) = f ( e )

e out of s

∑.

The University of Sydney Page 7

Recap: Cuts

Definitions:

  • An s-t cut is a partition (A, B) of V with s ∈ A and t ∈ B.
  • The capacity of a cut (A, B) is:

s

t

Capacity = 10 + 5 + 15

A

cap ( A , B ) = c ( e )

e out of A

The University of Sydney Page 8

s

t

A

Capacity = 9 + 15 + 8 + 30

s

t

Definitions:

  • An s-t cut is a partition (A, B) of V with s ∈ A and t ∈ B.
  • The capacity of a cut (A, B) is: cap (^ A ,^ B )^ =^ c ( e )

e out of A

Recap: Cuts

Recap: Residual Graph

  • Original edge: e = (u, v) ∈ E.
    • Flow f(e), capacity c(e).
  • Residual edge.
    • "Undo" flow sent.
    • e = (u, v) and e

R

= (v, u).

  • Residual capacity:
  • Residual graph: G f

= (V, E f

).

  • Residual edges with positive residual capacity.
  • E

f

= {e : f(e) < c(e)} ∪ {e

R

: c(e) > 0}.

u 17 v

capacity

u 11 v

residual capacity

residual capacity

flow

c f

( e ) =

c ( e ) − f ( e ) if eE

f ( e ) if e

R

E

Ford-Fulkerson Algorithm

Ford-Fulkerson(G,s,t) {

foreach e ∈ E

f(e) ← 0

G

f

← residual graph

while (there exists augmenting path P in G

f

f ← Augment(f,P)

update G

f

return f

Augment(f,P) {

b ← bottleneck(P,f)

foreach e =(u,v) ∈ P {

if e is a forward edge then

increase f(e) in G by b

else (e is a backward edge)

decrease f(e) in G by b

return f

Recap: Ford-Fulkerson Algorithm

s

10 5 t

G:

s

10 5 t

G

f

:

X

X

X

X^2

Flow value = 8

s

5 t

s

5 t

Recap: Max-Flow Min-Cut Theorem

  • Augmenting path theorem: Flow f is a max flow if and only if

there are no augmenting paths in the residual graph.

  • Max-flow min-cut theorem: The value of the max flow is equal

to the value of the min cut. [Ford-Fulkerson 1956]

  • Integrality. If all capacities are integers then every flow value

f(e) and every residual capacities c

f

(e) remains an integer

throughout the algorithm.

7.6 Disjoint Paths

Disjoint path problem:

Given a digraph G = (V, E) and two nodes s and t, find the max

number of edge-disjoint s-t paths.

Definition: Two paths are edge-disjoint if they have no edge in

common.

s

Edge Disjoint Paths

t

Max flow formulation: assign unit capacity to every edge.

Edge Disjoint Paths

s t

Max flow formulation: assign unit capacity to every edge.

Theorem: Max number edge-disjoint s-t paths equals max flow value.

Proof: ⇒

  • Suppose there are k edge-disjoint paths P

,... , P

k

.

  • Set f(e) = 1 if e participates in some path P

i

; else set f(e) = 0.

  • Since paths are edge-disjoint, f is a flow of value k.

Edge Disjoint Paths

s t