Topics in Combinatorial Optimization Orlando Lee Unicamp 14 de - - PowerPoint PPT Presentation

topics in combinatorial optimization
SMART_READER_LITE
LIVE PREVIEW

Topics in Combinatorial Optimization Orlando Lee Unicamp 14 de - - PowerPoint PPT Presentation

Topics in Combinatorial Optimization Orlando Lee Unicamp 14 de maio de 2014 Orlando Lee Unicamp Topics in Combinatorial Optimization Agradecimentos Este conjunto de slides foram preparados originalmente para o curso T opicos de


slide-1
SLIDE 1

Topics in Combinatorial Optimization

Orlando Lee – Unicamp 14 de maio de 2014

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-2
SLIDE 2

Agradecimentos

Este conjunto de slides foram preparados originalmente para o curso T´

  • picos de Otimiza¸

c˜ ao Combinat´

  • ria no primeiro

semestre de 2014 no Instituto de Computa¸ c˜ ao da Unicamp. Preparei os slides em inglˆ es simplesmente porque me deu vontade, mas as aulas ser˜ ao em portuguˆ es (do Brasil)! Agradecimentos especiais ao Prof. M´ ario Leston Rey. Sem sua ajuda, certamente estes slides nunca ficariam prontos a tempo. Qualquer erro encontrado nestes slide ´ e de minha inteira responsabilidade (Orlando Lee, 2014).

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-3
SLIDE 3

r-arborescences

Let D = (V , A) be a digraph and let r ∈ V be a designated root.

  • Definition. A subdigraph B of D containing r is an r-arborescence

if every vertex in B is reachable from r and B is minimal with this property.

  • Definition. A packing of spanning r-arborescences of D is a

collection of pairwise arc-disjoint spanning r-arborescences in D.

  • Theorem. (Edmonds, 1973) Let D = (V , A) be a digraph and let

r ∈ V be a designated root. Then the maximum size of a packing

  • f spanning r-arborescences is equal to the size of a minimum

r-cut.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-4
SLIDE 4

Minimum weight r-arborescences

Let D = (V , A) be a digraph, let r ∈ V be a designated root and let c : A → R+ be an arc capacity function. Let B(D, r) the set of spanning r-arborescences of D. Consider the following LP problem: min

  • a∈A c(a)x(a)

s.a x(B) 1 for every B ∈ B(D, r), x(a) 0 for every a ∈ A. An optimum integral solution of this LP problem is a minimum weight r-cut.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-5
SLIDE 5

Packing of capacitated r-arborescences

The dual of the LP problem is: max

  • B∈B(D,r) yB

s.a

  • B:a∈B yB c(a)

for every a ∈ A, y B 0 for every B ∈ B(D, r). We say that a feasible dual solution is a c-packing. We want to find a c-packing that maximizes

B∈B(D,r) y B.

When y is integral, y B can be interpreted as a multiplicity or number of copies of B. In the integral case, we wish to find a maximum size collection of r-cuts such that each arc a belongs to at most c(a) members of this collection.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-6
SLIDE 6

Edmonds’ theorem

  • Theorem. (Edmonds, 1973) Let D = (V , A) be a digraph, let

r ∈ V be a designated root and let c : A → Z+ be an arc capacity

  • function. Then the minimum weight of an r-cut is equal to the

maximum size collection of r-cuts such that each arc a belongs to at most c(a) members of this collection. The result follows from Edmonds’ packing arborescence theorem by creating c(a) copies of each arc a of D. The proof above does not yield a polynomial algorithm for finding a maximum c-packing.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-7
SLIDE 7

Edmonds’ theorem

Let Pr-cut(D) := conv{χC : C is an r-cut} and let P↑

r-cut(D) be the dominant of Pr-cut(D), namely,

P↑

r-cut(D) := Pr-cut(D) + RA +.

  • Theorem. Let D = (V , A) be a digraph and let r ∈ V be a

designated root. Then the system x(B) 1 for every B ∈ B(D, r), x(a) 0 for every a ∈ A is TDI. Moreover it determines P↑

r-cut(D).

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-8
SLIDE 8

How to find a maximum c-packing?

Let n := |V | and m := |A|. We will describe a polynomial algorithm due to Gabow and Manu (1998) for finding a maximum c-packing. Their algorithm uses at most m + n − 2 distinct spanning r-arborescences in the c-packing. Previously, other polynomial algorithms were known for this problem but they could use O(mn) distinct spanning r-arborescences in the c-packing. Lee and Leston (2013) described a polynomial algorithm for finding a maximum c-packing using at most m − n + 2 distinct spanning r-arborescences. The only tight examples we know consist of digraphs with two vertices and several parallel arcs.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-9
SLIDE 9

Terminology

Let λ(D, c) := min{c(δin(X)) : X is an ¯ r-set}, that is, λ(D, c) is the minimum weight of an r-cut in (D, c). A c-packing is a mapping y : B(D, r) → R+ such that

  • B∈B(D,r):a∈B y B c(a) for each arc a ∈ A. A c-packing is

maximum if it maximizes

B∈B(D,r) y B.

For a function f : U → R+ let f + := {u ∈ U : f (u) > 0} be the support of f . So y + denotes the set of r-arborescences used in a c-packing y.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-10
SLIDE 10

Terminology

By the previous results we have that a maximum c-packing and a minimum r-cut satisfy

  • B∈B(D,r)

y B = λ(D). Moreover, if c is integral then y can be chosen integral. First we describe a combinatorial polynomial algorithm for the maximum fractional c-packing, that is, we do not require y to be integral. Later we describe a polynomial algorithm for finding a maximum integral c-packing.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-11
SLIDE 11

Fractionally removable arborescences

Let D+ := D[c+] be subdigraph of D obtained by deleting all the arcs with weight zero. Note that no zero arc can be used in any arborescence of a c-packing. Moreover, λ(D, c) = λ(D+, c+). Let B ⊆ c+. Let min c|B := min{c(a) : a ∈ B}. For 0 α min c|B consider the weighted digraph (D, c − αχB). In plain English, we subtract α from the weight of each arc in B. Or equivalently, we remove B with multiplity α from (D, c). How much can we remove?

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-12
SLIDE 12

Fractionally removable arborescences

We define the capacity of B as α(B) := max{α : α min c|B, λ(D, c − αχB) = λ(D, c) − α}. Note that we may have α(B) = 0. A spanning r-arborescence B is fractionally removable if α(B) > 0.

  • Lemma. Let B ⊆ c+ (that is, min c|B > 0). Then α(B) = 0 if and
  • nly if there exists an ¯

r-set X such that c(δin(X)) = λ(D, c) and din

B (X) > 1.

So an arborescence B is fractionally removable if and only if B enters each tight set X exactly once.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-13
SLIDE 13

Naive greedy method

GreedyMethod(D, c)

  • 1. if c = 0

2. then return y = 0

  • 3. let B be a fractionally removable spanning r-arborescence
  • 4. α ← α(B)

⊲ α > 0

  • 5. y ← GreedyMethod(D, c − αχB)
  • 6. yB ← y B + α
  • 7. return y

We will prove that a fractionally removable r-arborescence exists and the greedy algorithm finds a c-packing with at most m spanning r-arborescences. This will require some work though.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-14
SLIDE 14

Laminar families

A family of sets L ⊆ 2V is laminar if X ∩ Y = ∅

  • r

X ⊆ Y

  • r

Y ⊆ X for every X, Y ∈ L.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-15
SLIDE 15

Laminar families

  • Lemma. A laminar family of nonempty subsets of V has at most

2n − 1 members. The algorithm keeps a laminar family L ⊆ 2V −r of nonsingleton ¯ r-sets such that X ∈ L ⇒ c(δin(X)) = λ(D, c), that is, every member of L is a tight set. Note that |L| n − 2. Key idea: in each step the algorithm constructs a spanning r-arborescence B ⊆ c+ that enters each tight set in L exactly once. If B is fractionally removable, then we remove α(B) copies of B and recursively find a maximum (c − αχB)-packing. Otherwise, we enlarge the laminar family L.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-16
SLIDE 16

Building an r-arborescence

Rough idea let X be a maximal set of L and contract X find a spanning r-arborescence B′ of the resulting digraph let (u, v) be the unique arc of B′ entering X recursively find a spanning v-arborescence B′′ of D[X] return B′ ∪ B′′ Next we describe more precisely the algorithm.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-17
SLIDE 17

Building an r-arborescence

BuildArb(D, L, r)

  • 1. if V (D) = {r} or L = ∅

2. then return an r-arborescence B of D

  • 3. let X be a maximal set of L
  • 4. F ← {Y ∈ L : Y ⊆ X}
  • 5. contract X onto a single vertex vX
  • 6. let D′ be the resulting digraph
  • 7. L′ ← L \ F
  • 8. B′ ← BuildArb(D′, L′, r)
  • 9. let (u, vX) be the unique arc of B′ entering vX
  • 10. let (u, v) be the corresponding arc in D entering X
  • 11. B′′ ← BuildArb(D[X], F − {Y ∈ F : v ∈ Y }, v)
  • 12. return B′ ∪ B′′

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-18
SLIDE 18

Building an r-arborescence

Note that λ(D, c) > 0 implies that din

D+(X) 1 for every ¯

r-set. Thus D+ contains a spanning r-arborescence. The same holds for D[X].

  • Theorem. Given a laminar family L of nonsingleton ¯

r-sets of D, BuildArb returns a spanning r-arborescence of D such that din

B (X) = 1 for every X ∈ L in O(m) time.

The correctness follows by induction. We skip the details about the complexity. (Exercise.)

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-19
SLIDE 19

Uncrossing

Let L a laminar family of ¯ r-sets and let U be an ¯ r-set. Let LU denote the family of the maximal sets of L which intersect U. We need the following uncrossing procedure. Uncross(L, U)

  • 1. Z ← U ∪ LU
  • 2. L′ ← L ∪ {Z}
  • 3. return L′
  • Claim. L′ is laminar. (Why?)

Note that we may have Z ∈ L, so this operation may not enlarge

  • L. We will show that in the main algorithm, U is chosen so that

Z ∈ L.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-20
SLIDE 20

Fractional packing – a sophisticated greedy method

FractionalPack(D, c, r)

  • 1. y ← 0
  • 2. L ← ∅
  • 3. while λ(D, c) > 0 do

4. B ← BuildArb(D+, L, r) 5. α ← α(B) ⊲ possibly α = 0 6. c ← c − αχB 7. if min c|B > 0 ⊲ no arc of B became zero 8. then 9. let U be a minimal ¯ r-set with c(δin(U)) = λ(D, c) and din

B (X) > 1

10. L ← Uncross(L, U) 11. else 12. y B ← α

  • 13. return y

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-21
SLIDE 21

Correctness

At each iteration the algorithm decreases λ(D, c) by α (possibly zero) and add a spanning r-arborescence to the packing with multiplicity α. Thus, when the algorithm halts (with λ(D, c) = 0), y is a c-packing with the desired value. We will prove the following.

  • Lemma. (Uncrossing lemma) If U is chosen as in line 9 of

FractionalPack, then Uncross(L, U) returns a laminar family L′ of tight sets such that L ⊂ L′.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-22
SLIDE 22

Correctness

Suppose for the moment that the uncrossing lemma holds. So L can be enlarged at most n − 2 times. An iteration which does not enlarge L makes some arc become zero. This can happen at most m − n + 1 times before the last iteration (because the last arborescence contains n − 1 arcs). Thus the number of iterations is at most (m − n + 1) + 1 + (n − 2) = m. Mreover, the number of distinct arborescences used in the packing is (m − n + 1) + 1 because every time an arc becomes zero, one arborescence was found (and we count also the last arborescence).

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-23
SLIDE 23

Some notation

  • Notation. For convenience, let c(X) := c(δin(X)).

For subsets X, Y of V let dD(X, Y ) the number of arcs with one end in X \ Y and the other in Y \ X. Analogously, let c(X, Y ) the sum of weights of the arcs with one end in X \ Y and the other in Y \ X.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-24
SLIDE 24

Proof of uncrossing lemma

Let L a laminar family of ¯ r-sets and let X be an ¯ r-set. Let LU denote the family of the maximal sets of L which intersect X. Uncross(L, U) ⊲ U is a tight set

  • 1. Z ← U ∪ LU
  • 2. L′ ← L ∪ {Z}
  • 3. return L′
  • Claim. For any Y ∈ LU, Y ∩ U and Y ∪ U are tight sets. In

particular, Z is a tight set. Morever, for any Y , Y ′ ∈ LU we have that c(Y , U) = 0 and c(Y \ U, Y ′ \ U) = 0.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-25
SLIDE 25

Submodularity of c(δin(.))

Let X and Y be two subsets of V . Let c(X, Y ) the total weight of the arcs with one end in X \ Y and other in Y \ X. We need the following observation. For any subsets of vertices X and Y of D we have c(X) + c(Y ) = c(X ∩ Y ) + c(X ∪ Y ) + c(X, Y ). Y X

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-26
SLIDE 26

Proof of uncrossing lemma

Proof of claim. Let λ := λ(D, c). Then for any Y ∈ LU we have λ + λ = c(Y ) + c(U) = c(Y ∩ U) + c(Y ∪ U) + c(Y , U) λ + λ. Thus Y ∩ U and Y ∪ U are tight sets and c(Y , U) = 0. Similarly, for any Y , Y ′ ∈ LU we have λ + λ = c(Y ∪ U) + c(Y ′ ∪ U) = c((Y ∪ U) ∩ (Y ′ ∪ U)) + c((Y ∪ U) ∪ (Y ′ ∪ U)) + c(Y ∪ U, Y ′ ∪ U) λ + λ. Thus c(Y ∪ U, Y ′ ∪ U) = c(Y \ U, Y ′ \ U) = 0. Using induction we have that Z = U ∪ LU is a tight set.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-27
SLIDE 27

Proof of uncrossing lemma

Uncross(L, U) ⊲ U is a tight set

  • 1. Z ← U ∪ LU
  • 2. L′ ← L ∪ {Z}
  • 3. return L′

Now it remains to prove that Z ∈ L. We claim that din

B (Z) din B (U).

(∗) Since din

B (U) > 1 by the choice of U, this implies din B (Z) > 1 and

hence Z ∈ L (by the construction of B). So it suffices to prove (∗).

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-28
SLIDE 28

Proof of uncrossing lemma

For any Y ∈ LU we have din

B (Y ∩ U) = 1.

(1) In fact, by the Claim we have c(Y ∩ U) = λ. So if (1) does not hold, then Y ∩ U is a tight set with din

B (Y ∩ U) > 1, contradicting

the minimality of U. For any Y , Y ′ ∈ LU we have din

B (Y , U) = dB(Y \ U, Y ′ \ U) = 0.

(2) This also follows from the Claim because every arc of B has positive weight.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-29
SLIDE 29

Proof of uncrossing lemma

Now we are ready to prove that din

B (Z) din B (U).

(∗) We exhibit an injection from δin

B (U) to δin B (Z) as follows.

Let a ∈ δin

B (U).

If a enters Z we map a to itself. If a does not enter Z, then there exist Y ∈ LU such thay a leaves Y \ U. By (2) it follows that a leaves Y \ U and enters Y ∩ U. By (1) a is the unique of B entering Y ∩ U. Since some arc a′ ∈ B must enter Y , (1) implies that a′ leaves ¯ Y and enters Y \ U. By (2) a′ leaves ¯ Z and enters Y \ U. We map a to a′. This is clearly an injection. This concludes the proof of (∗) and hence the uncrossing lemma follows.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-30
SLIDE 30

Correctness

  • Theorem. Let D = (V , A) be a digraph, let r ∈ V be a designated

root and let c : A → R+ be an arc capacity function. Then FractionalPack(D, c, r) returns a fractional c-packing with value λ(D, c) such that |y +| m.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-31
SLIDE 31

How to compute α(B)?

Let B an r-arborescence. Recall that α(B) = max{α : α min c|B, λ(D, c − αχB) = λ(D, c) − α}. Equivalently, α(B) is the largest α min c|B such that (c − αχB)(X) = c(X) − αdin

B (X) λ(D, c) − α,

for every ¯ r-set X.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-32
SLIDE 32

How to compute α(B)?

α(B) is the largest α min c|B such that (c − αχB)(U) = c(U) − αdin

B (U) λ(D, c) − α

for every ¯ r-set U. If din

B (U) = 1 then there is no restriction on α because

c(U) λ(D, c). If din

B (U) > 1 then the inequality holds if and only if α αU

where αU := c(U) − λ(D, c) din

B (U) − 1

. Note that αU = 0 if and only if U is a tight set.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-33
SLIDE 33

How to compute α(B)?

Capacity(B)

  • 1. α ← min c|B
  • 2. while λ(D, c − αχB) < λ(D, c) − α do

3. let δin(U) be a minimum r-cut in (D, c − αχB) ⊲ line 2 4. α ← αU

  • 5. return α and U

Note that U is actually computed in line 2. If the test in line 2 holds then din

B (U) > 1 and so there is no division by zero when

computing αU. It remains to show that the algorithm halts. We will show that this happens in at most |B| = n − 1 iterations.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-34
SLIDE 34

How to compute α(B)?

Capacity(B)

  • 1. α ← min c|B
  • 2. while λ(D, c − αχB) < λ(D, c) − α do

3. let δin(U) be a minimum r-cut in (D, c − αχB) 4. α ← αU

  • 5. return α and U

We claim that the sequence of values of α computed is strictly decreasing. Note that if λ(D, c − αχB) < λ(D, c) − α in line 2, then α > αU. So α is replaced by a smaller value in line 4.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-35
SLIDE 35

How to compute α(B)?

Capacity(B)

  • 1. α ← min c|B
  • 2. while λ(D, c − αχB) < λ(D, c) − α do

3. let δin(U) be a minimum r-cut in (D, c − αχB) 4. α ← αU

  • 5. return α and U

We claim that for any ¯ r-set X with din

B (X) din B (U) we have

αX αU. In fact, c(X) − αdin

B (X) c(U) − αdin B (U) because δin(U) is a

minimum ¯ r-cut. Moreover, (α − αU)din

B (X) (α − αU)din B (U)

because αU < α and din

B (X) din B (U). Adding both inequalities

implies the result.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-36
SLIDE 36

How to compute α(B)?

Capacity(B)

  • 1. α ← min c|B
  • 2. while λ(D, c − αχB) < λ(D, c) − α do

3. let δin(U) be a minimum r-cut in (D, c − αχB) 4. α ← αU

  • 5. return α and U

Thus for any ¯ r-set X with din

B (X) din B (U) we have αX αU.

Since the sequence of values αU is strictly decreasing, so is the sequence of values din

B (U). Since din B (U) < |B| this implies that

there is at most |B| = n − 1 iterations.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-37
SLIDE 37

How to compute α(B)?

Capacity(B)

  • 1. α ← min c|B
  • 2. while λ(D, c − αχB) < λ(D, c) − α do

3. let δin(U) be a minimum r-cut in (D, c − αχB) 4. α ← αU

  • 5. return α and U
  • Theorem. Given an r-arborescence B, Capacity computes α(B)

in time O(n2m log(n2/m)).

  • Proof. A minimum ¯

r-cut in (D, c − αχB) can be computed by an algorithm of Hao and Orlin. This algorithm has complexity O(nm log(n2/m)). The result follows.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-38
SLIDE 38

Finding a minimal U

Recall that in algorithm FractionalPack we find a minimal ¯ r-set U such that c(U) = λ (U is tight) and din

B (U) > 1.

A set U0 returned by Capacity(B) satisfies these properties except for the minimality. We can eliminate this requirement if we replace the line that computes U (in FractionalPack) by the following two lines: let X be a minimal set of L with din

B (U0 ∩ X) > 1

U ← U0 ∩ X

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-39
SLIDE 39

Finding a minimal U

let X be a minimal set of L with din

B (X ∩ U0) > 1

U ← U0 ∩ X Since U0 is tight, so is U = U0 ∩ X by submodularity. Also din

B (U) > 1 by the choice of X. We remark that in the original

algorithm, the minimality of U was only used to establish that for any Y ∈ LU we have din

B (Y ∩ U) = 1.

(1) So let Y ∈ LU where U = U0 ∩ X. Thus, Y ⊂ X. Therefore, Y ∩ U = Y ∩ U0. The minimality of X implies that din

B (Y ∩ U0) = 1 and (1) holds.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-40
SLIDE 40

Fractional packing – second version

FractionalPack(D, c, r)

  • 1. y ← 0
  • 2. L ← ∅
  • 3. while λ(D, c) > 0 do

4. B ← BuildArb(D+, L, r) 5. (α, U0) ← Capacity(B) ⊲ possibly α = 0 6. c ← c − αχB 7. if min c|B > 0 ⊲ no arc of B became zero 8. then 9. let X be a minimal set of L ∪ {V } with din

B (U0 ∩ X) > 1

10. U ← U0 ∩ X 11. L ← Uncross(L, U) 12. else 13. y B ← α

  • 14. return y

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-41
SLIDE 41

Finding one removable r-arborescence

We describe now an algorithm that given (D, c), finds an r-arborescence B ⊆ c+ such that λ(D, c − χB) = λ(D, c) − 1. We will use algorithm when we describe the more complicated algorithm for finding a maximum integral c-packing. The algorithm is a refinement of Lov´ asz’ proof of Edmonds’ arborescence theorem. For convenience, we let λ := λ(D, c) and let c − B := c − χB (we will not change c).

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-42
SLIDE 42

Partial r-arborescence

The algorithm keeps a (partial) r-arborescence B such that λ(D, c − B) λ − 1. (3) Initially B consists of one arc leaving r and at each iteration we try to extend B by adding an arc while mantaining (3). When B becomes spanning, then (3) holds with equality and the algorithm returns B.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-43
SLIDE 43

Partial r-arborescence

The algorithm also keeps a laminar family L of ¯ r-sets such that, if X ∈ L then (c − B)(X) = λ − 1

  • r

c(X) = λ. (4) We say that an ¯ r-set X is dangerous if the first equality holds. Note that if X is dangerous, then X − V (B) = ∅. Note also that no arc in δin(X) can be used to extend B. Initially L = ∅. Throughout the execution the only operation the algorithm performs on L is Uncross(L, U) where U is a dangerous ¯ r-set.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-44
SLIDE 44

Uncrossing (again)

Uncross(L, U) ⊲ U is dangerous

  • 1. Z ← U ∪ LU
  • 2. L′ ← L ∪ {Z}
  • 3. return L′
  • Lemma. (Uncrossing lemma 2) Let U be a dangerous set. Then Z

is dangerous. Moreover, for any Y ∈ LU we have (c − B)(Y ) = (c − B)(Y ∩ U) and (c − B)(Y , U) = 0.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-45
SLIDE 45

Uncrossing (again)

  • Proof. Let c′ := c − B. Let Y ∈ LU.

Suppose first that c′(Y ∩ U) c′(Y ). Then c′(Y ) + (λ − 1) = c′(Y ) + c′(U) = c′(Y ∩ U) + c′(Y ∪ U) + c′(Y , U) c′(Y ) + (λ − 1). Thus c′(Y ) = c′(Y ∩ U), Y ∪ U is dangerous and c′(Y , U) = 0.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-46
SLIDE 46

Uncrossing (again)

Let us show that c′(Y ∩ U) c′(Y ). If c′(Y ) = λ − 1, this is

  • bvious. So suppose that c′(Y ) λ. Since Y ∈ L, then

c′(Y ) = c(Y ) = 0 and din

B (Y ) = 0. Since B is an r-arborescence,

this implies din

B (Y ∩ U) = 0. So c′(Y ∩ U) = c(Y ∩ U) λ.

Finally, using the fact that Y ∪ U is dangerous and induction, we have that Z is dangerous.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-47
SLIDE 47

Extending the arborescence

We want to find an arc a leaving V (B) that does not enter any dangerous set of L (we say that a avoids all dangerous sets of L).

  • Lemma. Suppose B is not spanning. Then there exists some arc

a ∈ δout(V (B)) that avoids all dangerous sets of L.

  • Proof. Let c′ := c − B. Suppose that every arc of δout(V (B))

belongs to a dangerous set. Let X be a minimal dangerous set in

  • L. We claim that there exists some arc a = (u, v) ∈ c+ with

u ∈ X ∩ V (B) and v ∈ X − V (B). Otherwise, c(X − V (B)) = c′(X − V (B)) c′(X) = λ − 1, which is a contradiction.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-48
SLIDE 48

The algorithm

Grow(D, c, r, L) ⊲ c > 0, L laminar family of tight sets

  • 1. B ← any arc leaving r
  • 2. while B is not spanning do

3. let a ∈ δout(V (B)) that avoids all dangerous sets of L 4. if λ(D, c − (B ∪ {a})) λ − 1 5. then B ← B ∪ {a} 6. else 7. U ← minimal ¯ r-set entered by a with c′(U) = λ − 1 8. L ← Uncross(L, U)

  • 9. return B, L

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-49
SLIDE 49

Correctness

The set U in line 7 can be found in the following way. Let a = (s, t). Add an arc from s to r with infinite capacity. Using a MaxFlow MinCut algorithm one can find a minimum st-cut δin(U) with U minimal. Note that r ∈ U. Thus U is an ¯ r-set as required. We will prove the following.

  • Theorem. Given (D, c) with c integral and λ(D, c) > 0,

Grow(D, c) returns an r-arborescence B such that λ(D, c − χB) = λ(D, c) − 1.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-50
SLIDE 50

Correctness

Suppose first that in every iteration Grow either adds an arc to B

  • r enlarge L. The latter can occur at most n − 2 times. This

shows that B eventually becomes spanning. When it adds an arc a, it keeps λ(D, c − (B ∪ {a})) λ − 1. So in the end, λ(D, c − χB) = λ(D, c) − 1. So it remains to show that if the algorithm does not add arc a to B then it enlarges L through uncrossing.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-51
SLIDE 51

Correctness

Uncross(L, U) ⊲ U is dangerous

  • 1. Z ← U ∪ LU
  • 2. L′ ← L ∪ {Z}
  • 3. return L′

If a was not added to B then λ(D, c − (B ∪ {a})) < λ − 1. Thus U exists. By the uncrossing lemma (2), we have that Z is

  • dangerous. Also U is not a singleton. We will show that a enters

Z implying that Z ∈ L. Suppose a = (u, v) does not enter Z. Since a enters U, there exists some Y ∈ LU such that u ∈ Y \ U. By the uncrossing lemma, (c − B)(Y , U) = 0 and so v ∈ Y ∩ U. Since Y ∈ L and din

B (Y ) > 0, we have (c − B)(Y ) = λ − 1 By the uncrossing

lemma, (c − B)(Y ∩ U) = (c − B)(Y ) = λ − 1. This contradicts the minimality of U.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-52
SLIDE 52

A slight modification of Grow

We now change Grow in order to use it in algorithm for finding an integral c-packing. In this version, we also give as input an r-arborescence B such that λ(D, c − B) < λ(D, c). The algorithm then finds another removabe r-arborescene and add one new set to the laminar family L. The idea is the following. Think of B as sequence of arcs ordered such that each prefix corresponds to an r-arborescence. We find a maximal prefix J of B such that λ(D, c − J) λ − 1. So if a is the next arc in the sequence B, then λ(D, c − (J ∪ {a})) > λ − 1. Thus there exists some (minimal) ¯ r-set U entered by a with (c − J)(U) = λ − 1. We then execute Uncross(L, U). Finally we extend J to a spanning r-arborescence B′ such λ(D, c − B′) = λ − 1. This is always possible as we have seen in algorithm Grow.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-53
SLIDE 53

FastGrow

FastGrow(D, c, B, r, L) ⊲ think of B as a sequence

  • 1. find a maximal prefix J such that λ(D, c − J) λ − 1
  • 2. let a be the arc following J in the sequence
  • 3. U ← minimal ¯

r-set entered by a with (c − J)(U) = λ − 1

  • 4. L ← Uncross(L, U)
  • 5. find a spanning r-arborescence B′ ⊃ J such that

λ(D, c − B′) = λ − 1

  • 6. return B′, L.

Remark: in line 5, B′ can be found exactly as in Grow. Just note that only property we require from B in the main loop of Grow is that λ(D, c − B) λ − 1 and J satisfies this.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-54
SLIDE 54

Integral c-packing

After all this preparation, we are finally ready to describe an algorithm for finding a maximum c-packing. The algorithm we present is not exactly the same as described by Gabow and Manu, but I think it is easier to understand. Roughly, the idea is the following. We find any r-arborescence B such that din

B (X) = 1 for every X ∈ L (BuildArb). Let

k := ⌊α(B)⌋. Let c′ := c − kχB. If some arc became zero then we iterate again. Otherwise, note that λ(D, c′ − B) > λ − 1 by the definiton of α(B). We then apply FastGrow(D, c′, B, L). This adds one arborescence to the packing and enlarge the laminar family.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-55
SLIDE 55

Integral c-packing

IntegralPack(D, c, r)

  • 1. y ← 0
  • 2. L ← ∅
  • 3. while λ(D, c) > 0 do

4. B ← BuildArb(D+, L, r) 5. k ← ⌊α(B)⌋ ⊲ possibly k = 0 6. c ← c − kχB 7. y B ← k 8. if min c|B > 0 ⊲ no arc of B became zero 9. then 10. (B′, L) ← FastGrow(D, c, B, r, L) 11. y B′ ← y B′ + 1

  • 12. return y

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-56
SLIDE 56

Integral c-packing

  • Theorem. Given D, c and r, IntegralPack returns a maximum

c-packing that uses at most m + n − 2 distinct spanning r-arborescences. We have discussed correctness above. Let us prove the upperbound on the number of r-arborescences.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-57
SLIDE 57

Integral c-packing

We add one set to the laminar family when no arc becomes zero. This can happen at most n − 2 times. When this happens we add at least one and at most two arborescences to the packing. An iteration which does not enlarge L makes some arc become

  • zero. This can happen at most m − n + 1 times before the last

iteration (because the last arborescence contains n − 1 arcs). In each of these iterations, one arborescence is added to the packing. Thus the total number of distinct arborescences added is at most (m − n + 1) + 1 + 2(n − 2) = m + n − 2. This concludes the proof.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-58
SLIDE 58

Complexity

We left out several details of complexity of the algorithms. As we have seen, in several parts we need to compute minimum cuts to find tight sets. This makes the algorithm inefficient, to say the least. On the other hand, all the steps can be done in polynomial time. We skipped most of these details to concentrate on the main ideas

  • f the algorithm. The most striking is the use of the laminar family

to bound the number of iterations and the number of arborescences.

Orlando Lee – Unicamp Topics in Combinatorial Optimization

slide-59
SLIDE 59

References

H.N. Gabow and K.S. Manu, Packing algorithms for arborescences (and spanning trees) in capacitated graphs, Mathematical Programming 82 (1998), 83–109.

  • O. Lee and M. Leston-Rey, A faster algorithm for packing

branchings in digraphs. Submitted.

Orlando Lee – Unicamp Topics in Combinatorial Optimization