Basic Techniques II: Iterative Compression Marek Cygan Institute - - PowerPoint PPT Presentation

basic techniques ii iterative compression
SMART_READER_LITE
LIVE PREVIEW

Basic Techniques II: Iterative Compression Marek Cygan Institute - - PowerPoint PPT Presentation

Basic Techniques II: Iterative Compression Marek Cygan Institute of Informatics University of Warsaw 18th August 2014, Bdlewo Marek Cygan Iterative compression 1/36 What iterative compression is? Iterative compression - jist Recursive


slide-1
SLIDE 1

Basic Techniques II: Iterative Compression

Marek Cygan

Institute of Informatics University of Warsaw

18th August 2014, Będlewo

Marek Cygan Iterative compression 1/36

slide-2
SLIDE 2

What iterative compression is?

Iterative compression - jist Recursive approach exploiting instance structure exposed by a bit

  • versized solution.

Marek Cygan Iterative compression 2/36

slide-3
SLIDE 3

What iterative compression is?

Iterative compression - jist Recursive approach exploiting instance structure exposed by a bit

  • versized solution.

Solution compression:

1

First, apply some simple trick so that you can assume that a slightly too large solution is available.

2

Then exploit the structure it imposes on the input graph to construct an optimal solution.

Marek Cygan Iterative compression 2/36

slide-4
SLIDE 4

Vertex Cover - definition

Vertex Cover Input: undirected G, integer k Question: is there a subset X ⊆ V (G) of size at most k, such that for each uv ∈ E(G) we have {u, v} ∩ X = ∅.

Marek Cygan Iterative compression 3/36

slide-5
SLIDE 5

Vertex Cover - definition

Vertex Cover Input: undirected G, integer k Question: is there a subset X ⊆ V (G) of size at most k, such that for each uv ∈ E(G) we have {u, v} ∩ X = ∅.

Marek Cygan Iterative compression 3/36

slide-6
SLIDE 6

Vertex Cover - definition

Vertex Cover Input: undirected G, integer k Question: is there a subset X ⊆ V (G) of size at most k, such that for each uv ∈ E(G) we have {u, v} ∩ X = ∅. Equivalent question: does G have an independent set of size n − k.

Marek Cygan Iterative compression 3/36

slide-7
SLIDE 7

Additional input: oversized solution

We exemplify the iterative compression technique by showing 2knO(1) algorithm for Vertex Cover.

Marek Cygan Iterative compression 4/36

slide-8
SLIDE 8

Additional input: oversized solution

We exemplify the iterative compression technique by showing 2knO(1) algorithm for Vertex Cover. Vertex Cover Compression Input: undirected G, integer k, vertex cover Z ⊆ V (G) of size at most 2k Question: is there a vertex cover of size at most k?

Marek Cygan Iterative compression 4/36

slide-9
SLIDE 9

Additional input: oversized solution

We exemplify the iterative compression technique by showing 2knO(1) algorithm for Vertex Cover. Vertex Cover Compression Input: undirected G, integer k, vertex cover Z ⊆ V (G) of size at most 2k Question: is there a vertex cover of size at most k? Where do we get Z from? How do we use Z?

Marek Cygan Iterative compression 4/36

slide-10
SLIDE 10

Additional input: oversized solution

Where do we get Z from?

Marek Cygan Iterative compression 5/36

slide-11
SLIDE 11

Additional input: oversized solution

Where do we get Z from? Use polynomial time 2-approximation:

Marek Cygan Iterative compression 5/36

slide-12
SLIDE 12

Additional input: oversized solution

Where do we get Z from? Use polynomial time 2-approximation: Find any inclusionwise maximal matching M.

Marek Cygan Iterative compression 5/36

slide-13
SLIDE 13

Additional input: oversized solution

Where do we get Z from? Use polynomial time 2-approximation: Find any inclusionwise maximal matching M. If |M| > k, then no VC of size k exists.

Marek Cygan Iterative compression 5/36

slide-14
SLIDE 14

Additional input: oversized solution

Where do we get Z from? Use polynomial time 2-approximation: Find any inclusionwise maximal matching M. If |M| > k, then no VC of size k exists. Otherwise, set Z = V (M), we have |Z| 2k.

Marek Cygan Iterative compression 5/36

slide-15
SLIDE 15

Additional input: oversized solution

How do we use Z? Z V \ Z

Marek Cygan Iterative compression 6/36

slide-16
SLIDE 16

Additional input: oversized solution

How do we use Z? Guess X ∩ Z = XZ (by branching into 2|Z| 4k cases). Z XZ V \ Z

Marek Cygan Iterative compression 6/36

slide-17
SLIDE 17

Additional input: oversized solution

How do we use Z? Guess X ∩ Z = XZ (by branching into 2|Z| 4k cases). Z XZ Z \ XZ V \ Z

Marek Cygan Iterative compression 6/36

slide-18
SLIDE 18

Additional input: oversized solution

How do we use Z? Guess X ∩ Z = XZ (by branching into 2|Z| 4k cases). Z XZ Z \ XZ V \ Z N(Z \ XZ) ∩ (V \ Z)

Marek Cygan Iterative compression 6/36

slide-19
SLIDE 19

Additional input: oversized solution

How do we use Z? Guess X ∩ Z = XZ (by branching into 2|Z| 4k cases). Check if Z \ XZ is independent and |XZ ∪ N(Z \ XZ)| k. Z XZ Z \ XZ V \ Z N(Z \ XZ) ∩ (V \ Z)

Marek Cygan Iterative compression 6/36

slide-20
SLIDE 20

Additional input: oversized solution

How do we use Z? We have obtained 2|Z|nO(1) 4knO(1) time algorithm.

Marek Cygan Iterative compression 7/36

slide-21
SLIDE 21

Additional input: oversized solution

How do we use Z? We have obtained 2|Z|nO(1) 4knO(1) time algorithm. Can we improve the dependency on k to 2k?

Marek Cygan Iterative compression 7/36

slide-22
SLIDE 22

Additional input: oversized solution

How do we use Z? We have obtained 2|Z|nO(1) 4knO(1) time algorithm. Can we improve the dependency on k to 2k? Notice that it would be enough to have |Z| k + 1, but so far we only have |Z| 2k.

Marek Cygan Iterative compression 7/36

slide-23
SLIDE 23

Vertex Cover

Vertex Cover Compression Input: undirected G, integer k, vertex cover Z ⊆ V (G) of size at most k + 1 Question: is there a vertex cover of size at most k?

Marek Cygan Iterative compression 8/36

slide-24
SLIDE 24

Vertex Cover

Vertex Cover Compression Input: undirected G, integer k, vertex cover Z ⊆ V (G) of size at most k + 1 Question: is there a vertex cover of size at most k? Idea: get Z from recursion!

Marek Cygan Iterative compression 8/36

slide-25
SLIDE 25

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given.

Marek Cygan Iterative compression 9/36

slide-26
SLIDE 26

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given. Pick any v ∈ V (G) and solve I ′ = (G \ {v}, k) recursively.

Marek Cygan Iterative compression 9/36

slide-27
SLIDE 27

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given. Pick any v ∈ V (G) and solve I ′ = (G \ {v}, k) recursively. If I ′ is a NO-instance then I is a NO-instance.

Marek Cygan Iterative compression 9/36

slide-28
SLIDE 28

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given. Pick any v ∈ V (G) and solve I ′ = (G \ {v}, k) recursively. If I ′ is a NO-instance then I is a NO-instance. Otherwise set Z = X ∪ {v}, where X is a solution for I ′.

Marek Cygan Iterative compression 9/36

slide-29
SLIDE 29

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given. Pick any v ∈ V (G) and solve I ′ = (G \ {v}, k) recursively. If I ′ is a NO-instance then I is a NO-instance. Otherwise set Z = X ∪ {v}, where X is a solution for I ′. (G, k, Z) is VC Compression instance to solve.

Marek Cygan Iterative compression 9/36

slide-30
SLIDE 30

Bootstrapping

How to get Z of size at most k + 1? Assume that an instance I = (G, k) without Z is given. Pick any v ∈ V (G) and solve I ′ = (G \ {v}, k) recursively. If I ′ is a NO-instance then I is a NO-instance. Otherwise set Z = X ∪ {v}, where X is a solution for I ′. (G, k, Z) is VC Compression instance to solve. Lemma f (k)nc time algorithm for VC Compression implies f (k)nc+1 time algorithm for VC.

Marek Cygan Iterative compression 9/36

slide-31
SLIDE 31

Vertex Cover - summary

Lemma f (k)nc time algorithm for VC Compression implies f (k)nc+1 time algorithm for VC. Reduction: Vertex Cover → Vertex Cover Compression.

Marek Cygan Iterative compression 10/36

slide-32
SLIDE 32

Vertex Cover - summary

Lemma f (k)nc time algorithm for VC Compression implies f (k)nc+1 time algorithm for VC. Reduction: Vertex Cover → Vertex Cover Compression. Vertex Cover Compression can be solved in time 2|Z|nO(1), which leads to 2knO(1) algorithm for VC.

Marek Cygan Iterative compression 10/36

slide-33
SLIDE 33

Outline

1

Iterative compression - introduction.

2

Learning by example - vertex cover.

3

Learning by example - FVS in tournament.

4

Generic steps of the method.

5

5knO(1) algorithm for FVS.

6

3knO(1) algorithm for OCT - sketch.

Marek Cygan Iterative compression 11/36

slide-34
SLIDE 34

FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Input: a tournament (oriented clique) T, integer k Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic

Marek Cygan Iterative compression 12/36

slide-35
SLIDE 35

FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Input: a tournament (oriented clique) T, integer k Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic

Marek Cygan Iterative compression 12/36

slide-36
SLIDE 36

FVS in tournaments

Lemma If a tournament contains a cycle, then it contains a 3-cycle.

Marek Cygan Iterative compression 13/36

slide-37
SLIDE 37

FVS in tournaments

Lemma If a tournament contains a cycle, then it contains a 3-cycle.

Marek Cygan Iterative compression 13/36

slide-38
SLIDE 38

FVS in tournaments

Lemma If a tournament contains a cycle, then it contains a 3-cycle.

Marek Cygan Iterative compression 13/36

slide-39
SLIDE 39

FVS in tournaments

Lemma If a tournament contains a cycle, then it contains a 3-cycle. This lemma implies a simple 3knO(1) branching algorithm.

Marek Cygan Iterative compression 14/36

slide-40
SLIDE 40

FVS in tournaments

Lemma If a tournament contains a cycle, then it contains a 3-cycle. This lemma implies a simple 3knO(1) branching algorithm. By using iterative compression we will see how to improve the running time to 2knO(1).

Marek Cygan Iterative compression 14/36

slide-41
SLIDE 41

FVS in tournaments

Start with the recursive trick, reducing the problem to its compression version.

Marek Cygan Iterative compression 15/36

slide-42
SLIDE 42

FVS in tournaments

Start with the recursive trick, reducing the problem to its compression version. Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS Z ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic

Marek Cygan Iterative compression 15/36

slide-43
SLIDE 43

FVS in tournaments

Start with the recursive trick, reducing the problem to its compression version. Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS Z ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic Lemma f (k)nc time algorithm for FVST Compression implies f (k)nc+1 time algorithm for FVST.

Marek Cygan Iterative compression 15/36

slide-44
SLIDE 44

FVS in tournaments

Pf: this time we use induction (loop) - alternative to recursion. Let V (T) = {v1, . . . , vn}.

Marek Cygan Iterative compression 16/36

slide-45
SLIDE 45

FVS in tournaments

Pf: this time we use induction (loop) - alternative to recursion. Let V (T) = {v1, . . . , vn}. We want to solve FVST(T[Vi], k) for i = 1, . . . , n, where Vi = {v1, . . . , vi}.

Marek Cygan Iterative compression 16/36

slide-46
SLIDE 46

FVS in tournaments

Pf: this time we use induction (loop) - alternative to recursion. Let V (T) = {v1, . . . , vn}. We want to solve FVST(T[Vi], k) for i = 1, . . . , n, where Vi = {v1, . . . , vi}. Set X1 = ∅, which is a solution for FVST(T[v1], k).

Marek Cygan Iterative compression 16/36

slide-47
SLIDE 47

FVS in tournaments

Pf: this time we use induction (loop) - alternative to recursion. Let V (T) = {v1, . . . , vn}. We want to solve FVST(T[Vi], k) for i = 1, . . . , n, where Vi = {v1, . . . , vi}. Set X1 = ∅, which is a solution for FVST(T[v1], k). For 2 i n do

Zi = Xi−1 ∪ {vi}, let Xi be a solution to FVST Compression(T[Vi], k, Zi). if no solution found for T[Vi], then return NO.

Marek Cygan Iterative compression 16/36

slide-48
SLIDE 48

FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS Z ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic By guessing a partition Z = XZ ⊎ W , we get to the disjoint version.

Marek Cygan Iterative compression 17/36

slide-49
SLIDE 49

FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS Z ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, such that T \ X is acyclic By guessing a partition Z = XZ ⊎ W , we get to the disjoint version. Disjoint FVS in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS W ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, disjoint with W, such that T \ X is acyclic

Marek Cygan Iterative compression 17/36

slide-50
SLIDE 50

FVS in tournaments

Disjoint FVS in Tournaments Compression Input: a tournament (oriented clique) T, integer k a FVS W ⊆ V (T) of size at most k + 1 Question: is there a subset X ⊆ V (T) of size at most k, disjoint with W, such that T \ X is acyclic Lemma Poly time algorithm for Disjoint FVST Compression implies 2knO(1) time algorithm for FVST Compression.

Marek Cygan Iterative compression 17/36

slide-51
SLIDE 51

Disjoint FVS in tournaments

Observation For an acyclic tournament, there is a single topological ordering.

Marek Cygan Iterative compression 18/36

slide-52
SLIDE 52

Disjoint FVS in tournaments

Simple reduction rules:

Marek Cygan Iterative compression 19/36

slide-53
SLIDE 53

Disjoint FVS in tournaments

Simple reduction rules: Reduction 1 If T[W ] is not acyclic, then answer NO.

Marek Cygan Iterative compression 19/36

slide-54
SLIDE 54

Disjoint FVS in tournaments

Simple reduction rules: Reduction 1 If T[W ] is not acyclic, then answer NO. Let A = V (T) \ W (removable set). Reduction 2 If for v ∈ A the graph T[W ∪ {v}] contains a cycle, then remove v and reduce k by one.

Marek Cygan Iterative compression 19/36

slide-55
SLIDE 55

Disjoint FVS in tournaments

W A = V (T) \ W

Marek Cygan Iterative compression 20/36

slide-56
SLIDE 56

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5

Marek Cygan Iterative compression 20/36

slide-57
SLIDE 57

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5

Marek Cygan Iterative compression 20/36

slide-58
SLIDE 58

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5

Marek Cygan Iterative compression 20/36

slide-59
SLIDE 59

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2

Marek Cygan Iterative compression 20/36

slide-60
SLIDE 60

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 5 3 1 1 2 3 1 5 2 5

Marek Cygan Iterative compression 20/36

slide-61
SLIDE 61

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 3

Marek Cygan Iterative compression 20/36

slide-62
SLIDE 62

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 3

Marek Cygan Iterative compression 20/36

slide-63
SLIDE 63

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 3

Marek Cygan Iterative compression 20/36

slide-64
SLIDE 64

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 1 1 2 3 5 5

Marek Cygan Iterative compression 20/36

slide-65
SLIDE 65

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 1 1 2 3 5 5

Marek Cygan Iterative compression 20/36

slide-66
SLIDE 66

Disjoint FVS in tournaments

W A = V (T) \ W 1 2 3 4 5 2 1 1 2 3 5 5 Consequently Disjoint FVST Compression may be reduced to finding longest nondecreasing subsequence.

Marek Cygan Iterative compression 20/36

slide-67
SLIDE 67

General framework

Iterative compression schema: By using induction we can assume that a solution Z ⊆ V (G), |Z| k + 1 is given as part of input.

Marek Cygan Iterative compression 21/36

slide-68
SLIDE 68

General framework

Iterative compression schema: By using induction we can assume that a solution Z ⊆ V (G), |Z| k + 1 is given as part of input. Branch into 2|Z| cases, guessing what part of Z should be in a solution.

Marek Cygan Iterative compression 21/36

slide-69
SLIDE 69

General framework

Iterative compression schema: By using induction we can assume that a solution Z ⊆ V (G), |Z| k + 1 is given as part of input. Branch into 2|Z| cases, guessing what part of Z should be in a solution. Solve a disjoint version of the problem, where given a solution W ⊆ V (G) we look for X ⊆ V (G) \ W of size at most k.

Marek Cygan Iterative compression 21/36

slide-70
SLIDE 70

General framework

Iterative compression schema: By using induction we can assume that a solution Z ⊆ V (G), |Z| k + 1 is given as part of input. Branch into 2|Z| cases, guessing what part of Z should be in a solution. Solve a disjoint version of the problem, where given a solution W ⊆ V (G) we look for X ⊆ V (G) \ W of size at most k. cknO(1) time algorithm for the disjoint version implies (2c)knO(1) time algorithm for the general problem.

Marek Cygan Iterative compression 21/36

slide-71
SLIDE 71

General framework

Lemma cknO(1) time algorithm for the disjoint version implies (c + 1)knO(1) time algorithm for the general problem.

Marek Cygan Iterative compression 22/36

slide-72
SLIDE 72

General framework

Lemma cknO(1) time algorithm for the disjoint version implies (c + 1)knO(1) time algorithm for the general problem.

  • X⊆Z

ck−|X| =

k+1

  • i=0

k + 1

i

  • ck−i1i = (c + 1)k+1/c

Marek Cygan Iterative compression 22/36

slide-73
SLIDE 73

General framework

Remarks: To make induction work, we need to find a solution (answering YES/NO is not enough).

Marek Cygan Iterative compression 23/36

slide-74
SLIDE 74

General framework

Remarks: To make induction work, we need to find a solution (answering YES/NO is not enough). By default iterative compression adds n factor to the running time.

Marek Cygan Iterative compression 23/36

slide-75
SLIDE 75

General framework

Remarks: To make induction work, we need to find a solution (answering YES/NO is not enough). By default iterative compression adds n factor to the running time. Ex: show that for VC and FVST this factor can be reduced to O(k) (hint: use O(1)-approximation).

Marek Cygan Iterative compression 23/36

slide-76
SLIDE 76

General framework

Remarks: To make induction work, we need to find a solution (answering YES/NO is not enough). By default iterative compression adds n factor to the running time. Ex: show that for VC and FVST this factor can be reduced to O(k) (hint: use O(1)-approximation). Some natural problems are not vertex deletion closed.

Marek Cygan Iterative compression 23/36

slide-77
SLIDE 77

General framework

Remarks: To make induction work, we need to find a solution (answering YES/NO is not enough). By default iterative compression adds n factor to the running time. Ex: show that for VC and FVST this factor can be reduced to O(k) (hint: use O(1)-approximation). Some natural problems are not vertex deletion closed. Ex: reduce Connected Vertex Cover (CVC) to CVC-Compression.

Marek Cygan Iterative compression 23/36

slide-78
SLIDE 78

FVS

Feedback Vertex Set (FVS) Input: undirected G, integer k Question: is there a subset X ⊆ V (G) of size at most k, such that G \ X is a forest

Marek Cygan Iterative compression 24/36

slide-79
SLIDE 79

FVS

FVS is vertex deletion closed, so we can apply iterative compression schema and solving the following problem in time cknO(1) leads to (c + 1)knO(1) time algorithm for FVS.

Marek Cygan Iterative compression 25/36

slide-80
SLIDE 80

FVS

FVS is vertex deletion closed, so we can apply iterative compression schema and solving the following problem in time cknO(1) leads to (c + 1)knO(1) time algorithm for FVS. Disjoint FVS Compression Input: undirected G, integer k a FVS W ⊆ V (G) of size at most k + 1 Question: is there a subset X ⊆ V (G) of size at most k, disjoint with W, such that G \ X is a forest

Marek Cygan Iterative compression 25/36

slide-81
SLIDE 81

FVS - reduction rules

Reduction 0 If G[W ] contains a cycle, return NO.

Marek Cygan Iterative compression 26/36

slide-82
SLIDE 82

FVS - reduction rules

Reduction 0 If G[W ] contains a cycle, return NO. W (forest) A (forest)

Marek Cygan Iterative compression 26/36

slide-83
SLIDE 83

FVS - reduction rules

Reduction 0 If G[W ] contains a cycle, return NO. W (forest) A (forest) v We want v to have 2 incident edges going to W .

Marek Cygan Iterative compression 26/36

slide-84
SLIDE 84

FVS - reduction rules

Reduction 1 Remove all degree at most 1 vertices from G.

Marek Cygan Iterative compression 27/36

slide-85
SLIDE 85

FVS - reduction rules

Reduction 2 If there is v ∈ A with deg(v) = 2 and at least one neighbor in A, then add an edge between neighbours of v (even if there was one) and remove v.

Marek Cygan Iterative compression 28/36

slide-86
SLIDE 86

FVS - reduction rules

W (forest) A (forest) v (degA(v) 1)

Marek Cygan Iterative compression 29/36

slide-87
SLIDE 87

FVS - one more reduction rule

W (forest) A (forest) v

Marek Cygan Iterative compression 30/36

slide-88
SLIDE 88

FVS - one more reduction rule

W (forest) A (forest) v Reduction 3 If for v ∈ A = V (G) \ W the graph G[W ∪ {v}] contains a cycle, then remove v and decrease k by one.

Marek Cygan Iterative compression 30/36

slide-89
SLIDE 89

FVS - one more reduction rule

W (forest) A (forest) v Reduction 3 If for v ∈ A = V (G) \ W the graph G[W ∪ {v}] contains a cycle, then remove v and decrease k by one.

Marek Cygan Iterative compression 30/36

slide-90
SLIDE 90

FVS branching

W (forest) A (forest) v v v

Marek Cygan Iterative compression 31/36

slide-91
SLIDE 91

FVS branching

Formally, we branch into instances: (G \ {v}, k − 1, W ), (G, k, W ∪ {v}).

Marek Cygan Iterative compression 32/36

slide-92
SLIDE 92

FVS branching

Formally, we branch into instances: (G \ {v}, k − 1, W ), (G, k, W ∪ {v}). Observation A potential π(I) = k + #cc(G[W ]) decreases in each branch. W (forest) A (forest) v v v

Marek Cygan Iterative compression 32/36

slide-93
SLIDE 93

FVS branching

Formally, we branch into instances: (G \ {v}, k − 1, W ), (G, k, W ∪ {v}). Observation A potential π(I) = k + #cc(G[W ]) decreases in each branch. Lemma Disjoint FVS Compression can be solved in time 4knO(1), consequently there is 5knO(1) time algorithm for FVS.

Marek Cygan Iterative compression 32/36

slide-94
SLIDE 94

OCT

Odd Cycle Transversal (OCT) Input: undirected G, integer k Question: is there a subset X ⊆ V (G) of size at most k, such that G \ X is bipartite

Marek Cygan Iterative compression 33/36

slide-95
SLIDE 95

OCT

The heart of the solution for OCT by iterative compression is the following problem, which can be solved in polynomial time! Annotated Bipartite Coloring Input: bipartite G = (V1, V2, E), integer k, a partial coloring f0 : V (G) → {1, 2, ?} Question: is there a subset X ⊆ V (G) of size at most k, and a proper coloring f of G \ X consistent with f0.

Marek Cygan Iterative compression 34/36

slide-96
SLIDE 96

OCT

Annotated Bipartite Coloring Input: bipartite G = (V1, V2, E), integer k, a partial coloring f0 : V (G) → {1, 2, ?} Question: is there a subset X ⊆ V (G) of size at most k, and a proper coloring f of G \ X consistent with f0. V1 V2

Marek Cygan Iterative compression 34/36

slide-97
SLIDE 97

OCT

Annotated Bipartite Coloring Input: bipartite G = (V1, V2, E), integer k, a partial coloring f0 : V (G) → {1, 2, ?} Question: is there a subset X ⊆ V (G) of size at most k, and a proper coloring f of G \ X consistent with f0. V1 V2 1 2 ? 1 2 ?

Marek Cygan Iterative compression 34/36

slide-98
SLIDE 98

OCT

V1 V2 1 2 ? 1 2 ?

Marek Cygan Iterative compression 34/36

slide-99
SLIDE 99

OCT

V1 V2 1 2 ? 1 2 ? each blue vertex is either removed or recolored wrt V1 ⊎ V2,

Marek Cygan Iterative compression 34/36

slide-100
SLIDE 100

OCT

V1 V2 1 2 ? 1 2 ? each blue vertex is either removed or recolored wrt V1 ⊎ V2, each green vertex is removed or maintains color wrt V1 ⊎ V2,

Marek Cygan Iterative compression 34/36

slide-101
SLIDE 101

OCT

V1 V2 1 2 ? 1 2 ? each blue vertex is either removed or recolored wrt V1 ⊎ V2, each green vertex is removed or maintains color wrt V1 ⊎ V2, for each e ∈ E(G \ X) either both vertices are recolored, or none,

Marek Cygan Iterative compression 34/36

slide-102
SLIDE 102

OCT

V1 V2 1 2 ? 1 2 ? each blue vertex is either removed or recolored wrt V1 ⊎ V2, each green vertex is removed or maintains color wrt V1 ⊎ V2, for each e ∈ E(G \ X) either both vertices are recolored, or none, algorithm: find min cut between green and blue!

Marek Cygan Iterative compression 34/36

slide-103
SLIDE 103

Summary

Iterative compression Recursive approach exploiting instance structure exposed by a bit

  • versized solution.

We have seen it applied to: Vertex Cover, FVS in Tournaments, FVS, OCT (sketch).

Marek Cygan Iterative compression 35/36

slide-104
SLIDE 104

Exercises

1

Show that for VC and FVST default O(n) factor from iterative compression can be reduced to O(k) (hint: use O(1)-approximation).

2

Use iterative compression to obtain cknO(1) time algorithm for Connected Vertex Cover (note it is not vertex deletion closed).

3

Complete the 3knO(1) time algorithm for OCT.

4

Ex 4.3, 4.5, 4.8.

Marek Cygan Iterative compression 36/36

slide-105
SLIDE 105

Exercises

1

Show that for VC and FVST default O(n) factor from iterative compression can be reduced to O(k) (hint: use O(1)-approximation).

2

Use iterative compression to obtain cknO(1) time algorithm for Connected Vertex Cover (note it is not vertex deletion closed).

3

Complete the 3knO(1) time algorithm for OCT.

4

Ex 4.3, 4.5, 4.8. Thank you for your attention!

Marek Cygan Iterative compression 36/36