• Nem Talált Eredményt

# Minicourse on parameterized algorithms and complexity Part 2: Iterative compression

N/A
N/A
Protected

Ossza meg "Minicourse on parameterized algorithms and complexity Part 2: Iterative compression"

Copied!
102
0
0

Teljes szövegt

(1)

## Minicourse on parameterized algorithms and complexity Part 2: Iterative compression

D´aniel Marx (slides by Marek Cygan)

November 3, 2016

(2)

## What iterative compression is?

Iterative compression — main idea

Recursive approach exploiting instance structure exposed by a bit oversized 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.

2

(3)

## What iterative compression is?

Iterative compression — main idea

Recursive approach exploiting instance structure exposed by a bit oversized 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.

(4)

## Vertex Cover

Vertex Cover

Input: undirected G, integer k

Question: is there a subsetX V(G)of size at most k such that for eachuv E(G) we have{u,v} ∩X 6=∅.

3

(5)

## Vertex Cover

Vertex Cover

Input: undirected G, integer k

Question: is there a subsetX V(G)of size at most k such that for eachuv E(G) we have{u,v} ∩X 6=∅.

(6)

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

Vertex CoverCompression 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 useZ?

4

(7)

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

Vertex CoverCompression Input: undirected G, integer k,

vertex cover Z V(G) of size at most 2k Question: is there a vertex cover of size at mostk?

Where do we get Z from? How do we useZ?

(8)

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

Vertex CoverCompression Input: undirected G, integer k,

vertex cover Z V(G) of size at most 2k Question: is there a vertex cover of size at mostk?

Where do we get Z from?

How do we useZ?

4

(9)

Where do we getZ from?

Use polynomial time2-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.

(10)

Where do we getZ from?

Use polynomial time2-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.

5

(11)

Where do we getZ from?

Use polynomial time2-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.

(12)

Where do we getZ from?

Use polynomial time2-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.

5

(13)

Where do we getZ from?

Use polynomial time2-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.

(14)

How do we useZ?

Guess X Z =XZ (by branching into 2|Z|¬4k cases). Check if Z\XZ is independent and|XZN(Z \XZ)| ¬k.

Z

XZ Z \XZ

V \Z

N(Z\XZ)(V \Z)

6

(15)

How do we useZ?

Guess X Z =XZ (by branching into 2|Z|¬4k cases).

Check if Z\XZ is independent and|XZN(Z \XZ)| ¬k.

Z XZ

Z \XZ

V \Z

N(Z\XZ)(V \Z)

(16)

How do we useZ?

Guess X Z =XZ (by branching into 2|Z|¬4k cases).

Check if Z\XZ is independent and|XZN(Z \XZ)| ¬k.

Z XZ Z \XZ

V \Z

N(Z\XZ)(V \Z)

6

(17)

How do we useZ?

Guess X Z =XZ (by branching into 2|Z|¬4k cases).

Check if Z\XZ is independent and|XZN(Z \XZ)| ¬k.

Z XZ Z \XZ

V \Z

(18)

How do we useZ?

Guess X Z =XZ (by branching into 2|Z|¬4k cases).

Check if Z\XZ is independent and|XZN(Z \XZ)| ¬k.

Z XZ Z \XZ

V \Z N(Z\XZ)(V \Z)

6

(19)

How do we useZ?

We have obtained 2|Z|nO(1)¬4knO(1) time algorithm.

Can we improve the dependency on k to2k?

Notice that it would be enough to have |Z| ¬k+1, but so far we only have|Z| ¬2k.

(20)

How do we useZ?

We have obtained 2|Z|nO(1)¬4knO(1) time algorithm.

Can we improve the dependency on k to2k?

Notice that it would be enough to have |Z| ¬k+1, but so far we only have|Z| ¬2k.

7

(21)

How do we useZ?

We have obtained 2|Z|nO(1)¬4knO(1) time algorithm.

Can we improve the dependency on k to2k?

Notice that it would be enough to have |Z| ¬k+1, but so far we only have|Z| ¬2k.

(22)

## Vertex Cover

Vertex CoverCompression 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 mostk?

Idea: get Z from recursion!

8

(23)

## Vertex Cover

Vertex CoverCompression 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 mostk?

Idea: get Z from recursion!

(24)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively. IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, where X is a solution for I0. (G,k,Z) is VC Compression instance to solve.

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

9

(25)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively.

IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, where X is a solution for I0. (G,k,Z) is VC Compression instance to solve.

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

(26)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively.

IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, where X is a solution for I0. (G,k,Z) is VC Compression instance to solve.

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

9

(27)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively.

IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, whereX is a solution forI0.

(G,k,Z) is VC Compression instance to solve. Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

(28)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively.

IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, whereX is a solution forI0. (G,k,Z) is VC Compression instance to solve.

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

9

(29)

## Bootstrapping

How to getZ of size at most k+1?

Assume that an instance I = (G,k)without Z is given.

Pick any v V(G) and solveI0 = (G\ {v},k) recursively.

IfI0 is a NO-instance thenI is a NO-instance.

Otherwise set Z =X ∪ {v}, whereX is a solution forI0. (G,k,Z) is VC Compression instance to solve.

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

(30)

## Vertex Cover - summary

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

Reduction: Vertex Cover Vertex Cover Compression.

Vertex Cover Compression can be solved in time2|Z|nO(1), which leads to2knO(1) algorithm for VC.

10

(31)

## Vertex Cover - summary

Lemma

f(k)nc time algorithm for VC Compression impliesf(k)nc+1 time algorithm for VC.

Reduction: Vertex Cover Vertex Cover Compression.

Vertex Cover Compression can be solved in time2|Z|nO(1), which leads to2knO(1) algorithm for VC.

(32)

## 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.

11

(33)

## FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Input: a tournament (oriented clique)T, integerk Question: is there a subsetX V(T) of size at most k,

such that T \X is acyclic

(34)

## FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Input: a tournament (oriented clique)T, integerk Question: is there a subsetX V(T) of size at most k,

such that T \X is acyclic

12

(35)

## FVS in tournaments

Lemma

If a tournament contains a cycle, then it contains a3-cycle.

(36)

## FVS in tournaments

Lemma

If a tournament contains a cycle, then it contains a3-cycle.

13

(37)

## FVS in tournaments

Lemma

If a tournament contains a cycle, then it contains a3-cycle.

(38)

## FVS in tournaments

Lemma

If a tournament contains a cycle, then it contains a3-cycle.

This lemma implies a simple 3knO(1) branching algorithm.

By using iterative compression we will see how to improve the running time to2knO(1).

14

(39)

## FVS in tournaments

Lemma

If a tournament contains a cycle, then it contains a3-cycle.

This lemma implies a simple 3knO(1) branching algorithm.

By using iterative compression we will see how to improve the running time to2knO(1).

(40)

## FVS in tournaments

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

Feedback Vertex Set (FVS) in TournamentsCompression Input: a tournament (oriented clique)T, integerk

a FVSZ V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, such that T \X is acyclic

Lemma

f(k)nc time algorithm for FVST Compression impliesf(k)nc+1 time algorithm for FVST.

15

(41)

## FVS in tournaments

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

Feedback Vertex Set (FVS) in TournamentsCompression Input: a tournament (oriented clique)T, integerk

a FVSZ V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, such that T \X is acyclic

Lemma

f(k)nc time algorithm for FVST Compression impliesf(k)nc+1 time algorithm for FVST.

(42)

## FVS in tournaments

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

Feedback Vertex Set (FVS) in TournamentsCompression Input: a tournament (oriented clique)T, integerk

a FVSZ V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, such that T \X is acyclic

Lemma

f(k)nc time algorithm for FVST Compression impliesf(k)nc+1 time algorithm for FVST.

15

(43)

## 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) fori =1, . . . ,n, where Vi ={v1, . . . ,vi}.

Set X1 =∅, which is a solution forFVST(T[v1],k). For 2¬i ¬n do

Zi =Xi−1∪ {vi},

letXi be a solution toFVST Compression(T[Vi],k,Zi). if no solution found forT[Vi], then return NO.

(44)

## 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) fori =1, . . . ,n, whereVi ={v1, . . . ,vi}.

Set X1 =∅, which is a solution forFVST(T[v1],k). For 2¬i ¬n do

Zi =Xi−1∪ {vi},

letXi be a solution toFVST Compression(T[Vi],k,Zi). if no solution found forT[Vi], then return NO.

16

(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) fori =1, . . . ,n, whereVi ={v1, . . . ,vi}.

Set X1 =∅, which is a solution forFVST(T[v1],k).

For 2¬i ¬n do Zi =Xi−1∪ {vi},

letXi be a solution toFVST Compression(T[Vi],k,Zi). if no solution found forT[Vi], then return NO.

(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) fori =1, . . . ,n, whereVi ={v1, . . . ,vi}.

Set X1 =∅, which is a solution forFVST(T[v1],k).

For 2¬i ¬n do Zi =Xi−1∪ {vi},

letXi be a solution toFVST Compression(T[Vi],k,Zi).

if no solution found forT[Vi], then return NO.

16

(47)

## FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique)T, integerk

a FVSZ V(T) of size at most k+1

Question: is there a subsetX V(T) of size at most k, such that T \X is acyclic

By guessing a partitionZ =XZ]W, we get to the disjoint version.

Disjoint FVS in Tournaments Compression Input: a tournament (oriented clique)T, integerk

a FVSW V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, disjoint with W, such thatT \X is acyclic Lemma

Poly time algorithm for Disjoint FVST Compression implies 2knO(1) time algorithm for FVST Compression.

(48)

## FVS in tournaments

Feedback Vertex Set (FVS) in Tournaments Compression Input: a tournament (oriented clique)T, integerk

a FVSZ V(T) of size at most k+1

Question: is there a subsetX V(T) of size at most k, such that T \X is acyclic

By guessing a partitionZ =XZ]W, we get to the disjoint version.

Disjoint FVS in Tournaments Compression Input: a tournament (oriented clique)T, integerk

a FVSW V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, disjoint with W, such thatT \X is acyclic

Lemma

Poly time algorithm for Disjoint FVST Compression implies 2knO(1) time algorithm for FVST Compression.

17

(49)

## FVS in tournaments

Disjoint FVS in Tournaments Compression Input: a tournament (oriented clique)T, integerk

a FVSW V(T) of size at mostk+1

Question: is there a subsetX V(T) of size at most k, disjoint with W, such thatT \X is acyclic Lemma

Poly time algorithm for Disjoint FVST Compression implies 2knO(1) time algorithm for FVST Compression.

(50)

## Disjoint FVS in tournaments

Observation

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

18

(51)

## Disjoint FVS in tournaments

Simple reduction rules:

Reduction 1

IfT[W]is not acyclic, then answer NO.

Let A=V(T)\W (removable set). Reduction 2

If forv Athe graphT[W ∪ {v}]contains a cycle, then removev and reducek by one.

(52)

## Disjoint FVS in tournaments

Simple reduction rules:

Reduction 1

IfT[W]is not acyclic, then answer NO.

Let A=V(T)\W (removable set). Reduction 2

If forv Athe graphT[W ∪ {v}]contains a cycle, then removev and reducek by one.

19

(53)

## Disjoint FVS in tournaments

Simple reduction rules:

Reduction 1

IfT[W]is not acyclic, then answer NO.

Let A=V(T)\W (removable set).

Reduction 2

If forv Athe graphT[W ∪ {v}]contains a cycle, then removev and reducek by one.

(54)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

20

(55)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

(56)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

20

(57)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

(58)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

20

(59)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 3 1 1 2 3 1 5 2 5

3

0 0 1 1 2 3 5 5

(60)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 3 1 1 2 3 1 5 2 5

3

0 0 1 1 2 3 5 5

20

(61)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 3 1 1 2 3 1 5 2 5

3

0 0 1 1 2 3 5 5

(62)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 3 1 1 2 3 1 5 2 5

3

0 0 1 1 2 3 5 5

20

(63)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

(64)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

20

(65)

## Disjoint FVS in tournaments

W

A=V(T)\W

0 1 2 3 4 5

2

0 0 5 33 1 1 2 3 1 5 2 5

0 0 1 1 2 3 5 5

Consequently Disjoint FVST Compression may be reduced to

(66)

## 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 ofZ should be in a solution.

Solve a disjoint version of the problem, where given a solution W V(G) we look forX 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.

21

(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.

Branch into 2|Z|cases, guessing what part ofZ should be in a solution.

Solve a disjoint version of the problem, where given a solution W V(G) we look forX 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.

(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 ofZ should be in a solution.

Solve a disjoint version of the problem, where given a solution W V(G) we look forX 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.

21

(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 ofZ should be in a solution.

Solve a disjoint version of the problem, where given a solution W V(G) we look forX 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.

(70)

## General framework

Lemma

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

X

X⊆Z

ck−|X|=

k+1

X

i=0

k+1 i

!

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

22

(71)

## General framework

Lemma

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

X

X⊆Z

ck−|X|=

k+1

X

i=0

k+1 i

!

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

(72)

## 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.

23

(73)

## General framework

Remarks:

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

By default iterative compression addsn 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.

(74)

## General framework

Remarks:

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

By default iterative compression addsn 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.

23

(75)

## General framework

Remarks:

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

By default iterative compression addsn 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.

(76)

## General framework

Remarks:

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

By default iterative compression addsn 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.

23

(77)

## FVS

Feedback Vertex Set (FVS) Input: undirected G, integer k

Question: is there a subsetX V(G)of size at most k, such that G\X is a forest

(78)

## 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 FVSW V(G) of size at most k+1

Question: is there a subsetX V(G) of size at mostk, disjoint with W, such that G \X is a forest

25

(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.

Disjoint FVS Compression Input: undirected G, integer k

a FVSW V(G) of size at most k+1

Question: is there a subsetX V(G)of size at most k, disjoint with W, such that G \X is a forest

(80)

## FVS - reduction rules

Reduction 0

IfG[W]contains a cycle, return NO.

W (forest)

A (forest) v

We wantv to have­2 incident edges going to W.

26

(81)

## FVS - reduction rules

Reduction 0

IfG[W]contains a cycle, return NO.

W (forest)

A (forest)

v

We wantv to have­2 incident edges going to W.

(82)

## FVS - reduction rules

Reduction 0

IfG[W]contains a cycle, return NO.

W (forest)

A (forest) v

We wantv to have­2 incident edges going to W.

26

(83)

## FVS - reduction rules

Reduction 1

Remove all degree at most1 vertices from G.

(84)

## FVS - reduction rules

Reduction 2

If there isv A with deg(v) =2and at least one neighbor in A, then add an edge between neighbours ofv (even if there was one) and removev.

28

(85)

## FVS - reduction rules

W (forest)

A (forest) v (degA(v)¬1)

Any leaf v inA has now at least two edges toW.

(86)

## FVS - one more reduction rule

W (forest)

A (forest) v

Reduction 3

If forv A=V(G)\W the graphG[W ∪ {v}]contains a cycle, then removev and decrease k by one.

30

(87)

## FVS - one more reduction rule

W (forest)

A (forest) v

Reduction 3

If forv A=V(G)\W the graph G[W ∪ {v}]contains a cycle, then removev and decrease k by one.

(88)

## FVS - one more reduction rule

W (forest)

A (forest) v

Reduction 3

If forv A=V(G)\W the graph G[W ∪ {v}]contains a cycle, then removev and decrease k by one.

30

(89)

W (forest)

A(forest) v

v

v

(90)

## FVS branching

Formally, we branch into instances:

(G\ {v},k1,W), (G,k,W ∪ {v}).

Observation

A potentialπ(I) =k+ #cc(G[W])decreases in each branch.

32

(91)

## FVS branching

Formally, we branch into instances:

(G\ {v},k1,W), (G,k,W ∪ {v}).

Observation

A potentialπ(I) =k+ #cc(G[W])decreases in each branch.

W (forest) A(forest) v

v

v

(92)

## FVS branching

Formally, we branch into instances:

(G\ {v},k1,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 time4knO(1), consequently there is5knO(1) time algorithm for FVS.

32

(93)

## OCT

Odd Cycle Transversal (OCT) Input: undirected G, integer k

Question: is there a subsetX V(G)of size at most k, such that G\X is bipartite

(94)

## 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: bipartiteG = (V1,V2,E), integerk, a partial coloringf0 :V(G)→ {1,2,?}

Question: is there a subsetX V(G)of size at most k, and a proper coloring f ofG \X consistent withf0.

V1

V2

1 2 ?

1 2 ?

34

(95)

## OCT

Annotated Bipartite Coloring

Input: bipartiteG = (V1,V2,E), integerk, a partial coloringf0 :V(G)→ {1,2,?}

Question: is there a subsetX V(G)of size at most k, and a proper coloring f ofG \X consistent withf0.

V1

V2

1 2 ?

1 2 ?

(96)

## OCT

Annotated Bipartite Coloring

Input: bipartiteG = (V1,V2,E), integerk, a partial coloringf0 :V(G)→ {1,2,?}

Question: is there a subsetX V(G)of size at most k, and a proper coloring f ofG \X consistent withf0.

V1

V2

1 2 ?

1 2 ?

34

(97)

V1

V2

1 2 ?

1 2 ?

(98)

## 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 eache E(G\X) either both vertices are recolored, or none,

algorithm: find min cut between green and blue!

34

(99)

## 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 eache E(G\X) either both vertices are recolored, or none,

algorithm: find min cut between green and blue!

(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, for eache E(G\X) either both vertices are recolored, or none,

algorithm: find min cut between green and blue!

34

(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 eache E(G\X) either both vertices are recolored, or none,

(102)

## Summary

Iterative compression

Recursive approach exploiting instance structure exposed by a bit oversized solution.

We have seen it applied to:

Vertex Cover,

FVS in Tournaments, FVS,

OCT (sketch).

35

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Strongly Connected Subgraph on general directed graphs can be solved in time n O(k) on general directed graphs [Feldman and Ruhl 2006] ,. is W[1]-hard parameterized

On the other hand, parameterized complexity theory may help to justify the shield provided by computational complexity: if a problem belongs to one of the parameterized hardness

⇒ Transforming an Independent Set instance (G , k) into a Vertex Cover instance (G , n − k) is a correct polynomial-time reduction.. However, Vertex Cover is FPT, but Independent Set

Using parameterized reductions, this result can be transfered to other problems: for example, assuming the ETH, there is a no 2 o( √ k) ·| I | O(1) time algorithm for planar versions

If exists optimal LP solution that sets x v to 1, then exists optimal vertex cover that selects v..  Remove v from G and decrease k

Theorem: [Grohe, Grüber 2007] There is a polynomial-time algorithm that finds a solution of D ISJOINT DIRECTED CYCLES with OPT/̺(OPT) cycles for some nontrivial function ̺....

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:

The undirected approach does not work: the pushing lemma is not true.. Pushing Lemma (for