Presentation is loading. Please wait.

Presentation is loading. Please wait.

Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online

Similar presentations


Presentation on theme: "Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online"— Presentation transcript:

1 Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar pawan.kumar@ecp.fr Slides available online http://cvn.ecp.fr/personnel/pawan/

2 Questions? Solutions for the knapsack problems?

3 Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

4 Arc Disjoint s-t Paths v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Set of s-t Paths with no common arcs

5 s-t Cut v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s C = out-arcs(U)s in U t not in U

6 An Interesting Operation on Digraphs v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P

7 v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Reverse the arcs of P An Interesting Operation on Digraphs

8 v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1 An Interesting Operation on Digraphs

9 Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

10 Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0, v 4 } |out-arcs(U)| decreases by 1.

11 Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0, v 4 } |out-arcs(U)| decreases by 2.

12 Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0 } |out-arcs(U)| decreases by 1.

13 Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0 } |out-arcs(U)| decreases by 1. Unknown decrease in cut size. Cannot construct an algorithm.

14 Another Example v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U Corresponds to minimum s-t cut … of size 3

15 Another Example Corresponds to minimum s-t cut … of size 3 Why is (v 2,v 6 ) not included? v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

16 Find an s-t Path v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

17 Find an s-t Path v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

18 Reversing vs. Removing v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

19 Reversing vs. Removing Reduces minimum s-t cut … by 1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

20 Reversing vs. Removing Reduces minimum s-t cut … by 1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

21 Reversing vs. Removing v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

22 Reversing vs. Removing Reduces minimum s-t cut … by 2 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

23 Reversing vs. Removing Reduces minimum s-t cut … by 2 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

24 Reversing vs. Removing Removing the arcs doesn’t decrease cut size by a constant Reversing the arcs does decrease cut size by a constant A simple algorithm made possible by reversing

25 Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

26 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P

27 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P

28 v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1 Algorithm

29 v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

30 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

31 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

32 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

33 Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P No more s-t paths Size of minimum cut = 0 Size of minimum cut for original digraph = 3

34 Algorithm While there exist s-t paths Find an s-t path P Reverse the arcs of P End U is the set of vertices reachable by s in the end Minimum s-t cut = out-arcs(U)

35 Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

36 Computational Complexity While there exist s-t paths Find an s-t path P Reverse the arcs of P End O(m) O(m 2 )

37 Analysis D i is the digraph after i iterations. D 0 = D. A i is the set of all arcs that are reversed in D i. B i = A i “union” {i arcs from t to s}. (V,B i ) is Eulerian. Mathematical induction over iterations Proof?

38 Analysis Trivial for i = 0. (V, B i “union” arcs(P) “union” (t,s)) is Eulerian Assume (V,B i ) is Eulerian. Mathematical induction over iterations Remove pairs of arcs (u,v) and (v,u) where (u,v) is in B i, (v,u) is in arcs(P). (V, B i+1 ) is EulerianCompute of arc disjoint paths


Download ppt "Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online"

Similar presentations


Ads by Google