A Naive Algorithm for Feedback Vertex Set Yixin Cao Department - - PowerPoint PPT Presentation

a naive algorithm for feedback vertex set
SMART_READER_LITE
LIVE PREVIEW

A Naive Algorithm for Feedback Vertex Set Yixin Cao Department - - PowerPoint PPT Presentation

A Naive Algorithm for Feedback Vertex Set Yixin Cao Department of Computing, Hong Kong Polytechnic University Symposium on Simplicity in Algorithms New Orleans, LA January 10,


slide-1
SLIDE 1

A Naive Algorithm for Feedback Vertex Set

Yixin Cao(操宜新)

Department of Computing, Hong Kong Polytechnic University 香港理工大學 電子計算學系

Symposium on Simplicity in Algorithms New Orleans, LA January 10, 2018

1 / 62

slide-2
SLIDE 2

The problem

Given a graph G and an integer k, the feedback vertex set problem asks for the deletion of at most k vertices to make G a forest.

2 / 62

slide-3
SLIDE 3

The problem

Given a graph G and an integer k, the feedback vertex set problem asks for the deletion of at most k vertices to make G a forest.

3 / 62

slide-4
SLIDE 4

Origin

The constraint satisfaction problem (CSP) asks for the assignment of values to variables to satisfy a set of constraints. [Freuder 1982]: can be solved in P-time when the constraint graph is a forest. [Dechter Pearl 1987]: one way to solve the constraint satisfaction problem is to

1 find first a minimum feedback vertex set V− of the constraint graph, 2 enumerate all possible assignments on them, and 3 then solve the remaining instance.

On an instance I on p variables, it takes O(p|V−| · |I|O(1)) time. [Pearl 1988]: A similar application for Bayesian inference.

4 / 62

slide-5
SLIDE 5

Origin

The constraint satisfaction problem (CSP) asks for the assignment of values to variables to satisfy a set of constraints. [Freuder 1982]: can be solved in P-time when the constraint graph is a forest. [Dechter Pearl 1987]: one way to solve the constraint satisfaction problem is to

1 find first a minimum feedback vertex set V− of the constraint graph, 2 enumerate all possible assignments on them, and 3 then solve the remaining instance.

On an instance I on p variables, it takes O(p|V−| · |I|O(1)) time. [Pearl 1988]: A similar application for Bayesian inference.

5 / 62

slide-6
SLIDE 6

Origin

The constraint satisfaction problem (CSP) asks for the assignment of values to variables to satisfy a set of constraints. [Freuder 1982]: can be solved in P-time when the constraint graph is a forest. [Dechter Pearl 1987]: one way to solve the constraint satisfaction problem is to

1 find first a minimum feedback vertex set V− of the constraint graph, 2 enumerate all possible assignments on them, and 3 then solve the remaining instance.

On an instance I on p variables, it takes O(p|V−| · |I|O(1)) time. [Pearl 1988]: A similar application for Bayesian inference.

6 / 62

slide-7
SLIDE 7

Origin

The constraint satisfaction problem (CSP) asks for the assignment of values to variables to satisfy a set of constraints. [Freuder 1982]: can be solved in P-time when the constraint graph is a forest. [Dechter Pearl 1987]: one way to solve the constraint satisfaction problem is to

1 find first a minimum feedback vertex set V− of the constraint graph, 2 enumerate all possible assignments on them, and 3 then solve the remaining instance.

On an instance I on p variables, it takes O(p|V−| · |I|O(1)) time. [Pearl 1988]: A similar application for Bayesian inference.

7 / 62

slide-8
SLIDE 8

Origin

The constraint satisfaction problem (CSP) asks for the assignment of values to variables to satisfy a set of constraints. [Freuder 1982]: can be solved in P-time when the constraint graph is a forest. [Dechter Pearl 1987]: one way to solve the constraint satisfaction problem is to

1 find first a minimum feedback vertex set V− of the constraint graph, 2 enumerate all possible assignments on them, and 3 then solve the remaining instance.

On an instance I on p variables, it takes O(p|V−| · |I|O(1)) time. [Pearl 1988]: A similar application for Bayesian inference.

8 / 62

slide-9
SLIDE 9

Low-degree vertices

u w x v A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

9 / 62

slide-10
SLIDE 10

Low-degree vertices

u w x v A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

10 / 62

slide-11
SLIDE 11

Low-degree vertices

u w x A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

11 / 62

slide-12
SLIDE 12

Low-degree vertices

u w x A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

12 / 62

slide-13
SLIDE 13

Low-degree vertices

u w x A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

13 / 62

slide-14
SLIDE 14

Low-degree vertices

u w x A vertex of degree 1 can always be safely deleted. A degree-2 vertex in a solution can always be replaced with one of its neighbors. If u and w are not adjacent, then we can delete v and add edge uw. this operation is called “smoothen.”

14 / 62

slide-15
SLIDE 15

15 / 62

slide-16
SLIDE 16

Greed ... is good. Greed is right. Greed works. Wall street

16 / 62

slide-17
SLIDE 17

Algorithms

[Erdős Pósa 1962]: A graph of minimum degree ≥ 3 has a cycle of length O(log n). A trivial O(log n) approximation: find a shortest cycle, remove all vertices. A nontrivial (log k)O(k)-time parameterized algorithm: after a polynomial kernel. Large-degree vertices [Becker Geiger 1996] [Bafna Berman Fujito 1999]: A greedy 2-approximation (Local ratio) [Chudak Goemans Hochbaum Williamson 1998]: A primal-dual interpretation [Fujito 1996]: Two new primal-dual algorithms

17 / 62

slide-18
SLIDE 18

Algorithms

Small-degree vertices [Erdős Pósa 1962]: A graph of minimum degree ≥ 3 has a cycle of length O(log n). A trivial O(log n) approximation: find a shortest cycle, remove all vertices. A nontrivial (log k)O(k)-time parameterized algorithm: after a polynomial kernel. Large-degree vertices [Becker Geiger 1996] [Bafna Berman Fujito 1999]: A greedy 2-approximation (Local ratio) [Chudak Goemans Hochbaum Williamson 1998]: A primal-dual interpretation [Fujito 1996]: Two new primal-dual algorithms

18 / 62

slide-19
SLIDE 19

Algorithms

Small-degree vertices [Erdős Pósa 1962]: A graph of minimum degree ≥ 3 has a cycle of length O(log n). A trivial O(log n) approximation: find a shortest cycle, remove all vertices. A nontrivial (log k)O(k)-time parameterized algorithm: after a polynomial kernel. Large-degree vertices [Becker Geiger 1996] [Bafna Berman Fujito 1999]: A greedy 2-approximation (Local ratio) [Chudak Goemans Hochbaum Williamson 1998]: A primal-dual interpretation [Fujito 1996]: Two new primal-dual algorithms

19 / 62

slide-20
SLIDE 20

Parameterized algorithms

Algorithms running in time O(f(k) · nO(1)), where k is a parameter (the solution size). f(k) Downey Fellows 1992 (2k + 1)k Bodlaender 1994 17(k4)! Raman et al. 2002 max{12k, (4 log k)k} Kanj et al. 2004 (2 log k + 2 log log k + 18)k Raman et al. 2006 (12 log k/ log log k + 6)k Dehne et al. 2005 10.6k Guo et al. 2006 37.7k Chen et al. 2008 5k C Chen Liu 2010 3.83k Kociumaka Pilipczuk 2014 3.62k All ck algorithms use technique “iterative compression.”

20 / 62

slide-21
SLIDE 21

Parameterized algorithms

Algorithms running in time O(f(k) · nO(1)), where k is a parameter (the solution size). f(k) Downey Fellows 1992 (2k + 1)k Bodlaender 1994 17(k4)! Raman et al. 2002 max{12k, (4 log k)k} Kanj et al. 2004 (2 log k + 2 log log k + 18)k Raman et al. 2006 (12 log k/ log log k + 6)k Dehne et al. 2005 10.6k Guo et al. 2006 37.7k Chen et al. 2008 5k C Chen Liu 2010 3.83k Kociumaka Pilipczuk 2014 3.62k All ck algorithms use technique “iterative compression.”

21 / 62

slide-22
SLIDE 22

Parameterized algorithms

Algorithms running in time O(f(k) · nO(1)), where k is a parameter (the solution size). f(k) Downey Fellows 1992 (2k + 1)k Bodlaender 1994 17(k4)! Raman et al. 2002 max{12k, (4 log k)k} Kanj et al. 2004 (2 log k + 2 log log k + 18)k Raman et al. 2006 (12 log k/ log log k + 6)k Dehne et al. 2005 10.6k Guo et al. 2006 37.7k Chen et al. 2008 5k C Chen Liu 2010 3.83k Kociumaka Pilipczuk 2014 3.62k All ck algorithms use technique “iterative compression.”

22 / 62

slide-23
SLIDE 23

Context

vertex cover feedback vertex set to kill edges cycles to make independent set (edgeless) forest (acyclic) treewidth 0 treewidth ≤ 1 approx 2 2 parameterized 1.2738k 3.62k the simplest nontrivial vertex deletion problem

23 / 62

slide-24
SLIDE 24

The Algorithm

24 / 62

slide-25
SLIDE 25

A vertex of the largest degree is highly likely in the solution v

25 / 62

slide-26
SLIDE 26

A vertex of the largest degree is highly likely in the solution, but not always. v

26 / 62

slide-27
SLIDE 27

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

27 / 62

slide-28
SLIDE 28

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

28 / 62

slide-29
SLIDE 29

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G right child: the vertex is not in the solution, hence put into F We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

29 / 62

slide-30
SLIDE 30

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

30 / 62

slide-31
SLIDE 31

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

31 / 62

slide-32
SLIDE 32

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

32 / 62

slide-33
SLIDE 33

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

33 / 62

slide-34
SLIDE 34

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

34 / 62

slide-35
SLIDE 35

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

35 / 62

slide-36
SLIDE 36

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

36 / 62

slide-37
SLIDE 37

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

37 / 62

slide-38
SLIDE 38

A branching algorithm

G, ∅ G − v, ∅ G − {v,u}, ∅ G − v, {u} G, {v} G − w, {u} G, {v,w}

each node has two parts, the graph G and the set F of permanent vertices. left child: the vertex is put into the solution, hence deleted from G We always choose the vertex with the largest degree in V (G) \ F to branch. The key of the analysis is to bound the number of nodes, which boils down to bouding the depth. We cannot go left more than k times. We’re hence focused on the right steps. Let’s fix an execution path.

38 / 62

slide-39
SLIDE 39

The Analysis

39 / 62

slide-40
SLIDE 40

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

40 / 62

slide-41
SLIDE 41

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

41 / 62

slide-42
SLIDE 42

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

42 / 62

slide-43
SLIDE 43

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

43 / 62

slide-44
SLIDE 44

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

44 / 62

slide-45
SLIDE 45

Elementary facts of trees

v

  • v∈V (T)

d(v) = 2|E(T)| = 2|V (T)|−2 L: leaves; V3: vertices of degree ≥ 3. −2 =

  • v∈L

(d(v)−2)+

  • v∈V (T)\L

(d(v)−2) =

  • v∈L

(−1)+

  • v∈V3

(d(v)−2) =

  • v∈V3

(d(v)−2)−|L|.

  • v∈V3

(d(v) − 2) = |L| − 2. For each v ∈ V−, either its degree is decreased from ≥ 3 to ≤ 2,

  • r leaves are produced to “balance the equation.”

This correlates deleted vertices and permanent vertices.

45 / 62

slide-46
SLIDE 46

The example

the first vertex x1 is put into V−, second u into F, then the deletion of each xi decreases its degree by two. u x1 x2 x3 x4 x5 x6 x7 x8

46 / 62

slide-47
SLIDE 47

Algorithm invariants

1 During the algorithm, the degree of no vertex can increase. 2 There is no vertex of degree 0 or 1 in the graph when a recursive call is made. 47 / 62

slide-48
SLIDE 48

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted..

48 / 62

slide-49
SLIDE 49

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted..

49 / 62

slide-50
SLIDE 50

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted. ⇒ d∗(u) ≥ d∗(xi).

50 / 62

slide-51
SLIDE 51

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted..

51 / 62

slide-52
SLIDE 52

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted..

52 / 62

slide-53
SLIDE 53

Key definitions and observations

u x1 x2 x3 x4 x5 decision points: x1 → u → x2 → x3 → x4 → x5. d(u) = 9; d∗(u) = 8 δ(u, x1) = 0; δ(u, x2) = δ(u, x3) = δ(u, x4) = 2; δ(u, x5) = 0

d∗(v): the degree of v at the moment it is put into V− or F. d(v) ≥ d∗(v) effective decrements of the degree of a vertex u ∈ F: from d∗(u) to 2. an effective decrement is incurred by xi ∈ V− if it is after deleting xi. δ(u, xi): #effective decrements of u ∈ F incurred by xi ∈ V−. δ(u, xi) may be larger than 1. δ(u, xi) > 0 ⇒ u ∈ F when xi is deleted..

53 / 62

slide-54
SLIDE 54

Lemmas

Lemma 1: For any u ∈ F and v ∈ V−, if δ(u, v) > 0 then d∗(u) ≥ d∗(v). Lemma 2:

u∈F δ(u, v) ≤ d∗(v) for each v ∈ V−.

|V−| =

  • v∈V−

1 =

  • v∈V−

d∗(v) d∗(v) ≥

  • v∈V−

1 d∗(v)

  • u∈F

δ(u, v) =

  • v∈V−
  • u∈F

δ(u, v) d∗(v) ≥

  • v∈V−
  • u∈F

δ(u, v) d∗(u) =

  • u∈F

1 d∗(u)

  • v∈V−

δ(u, v) =

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

1 3 = |F| 3 , Lemma 3: Therefore, an execution path leading to a solution has depth at most 4k. We terminate all execution paths after 4k steps ⇒ O(16k · n2).

54 / 62

slide-55
SLIDE 55

Lemmas

Lemma 1: For any u ∈ F and v ∈ V−, if δ(u, v) > 0 then d∗(u) ≥ d∗(v). Lemma 2:

u∈F δ(u, v) ≤ d∗(v) for each v ∈ V−.

|V−| =

  • v∈V−

1 =

  • v∈V−

d∗(v) d∗(v) ≥

  • v∈V−

1 d∗(v)

  • u∈F

δ(u, v) =

  • v∈V−
  • u∈F

δ(u, v) d∗(v) ≥

  • v∈V−
  • u∈F

δ(u, v) d∗(u) =

  • u∈F

1 d∗(u)

  • v∈V−

δ(u, v) =

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

1 3 = |F| 3 , Lemma 3: Therefore, an execution path leading to a solution has depth at most 4k. We terminate all execution paths after 4k steps ⇒ O(16k · n2).

55 / 62

slide-56
SLIDE 56

Lemmas

Lemma 1: For any u ∈ F and v ∈ V−, if δ(u, v) > 0 then d∗(u) ≥ d∗(v). Lemma 2:

u∈F δ(u, v) ≤ d∗(v) for each v ∈ V−.

|V−| =

  • v∈V−

1 =

  • v∈V−

d∗(v) d∗(v) ≥

  • v∈V−

1 d∗(v)

  • u∈F

δ(u, v) =

  • v∈V−
  • u∈F

δ(u, v) d∗(v) ≥

  • v∈V−
  • u∈F

δ(u, v) d∗(u) =

  • u∈F

1 d∗(u)

  • v∈V−

δ(u, v) =

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

1 3 = |F| 3 , Lemma 3: Therefore, an execution path leading to a solution has depth at most 4k. We terminate all execution paths after 4k steps ⇒ O(16k · n2).

56 / 62

slide-57
SLIDE 57

Lemmas

Lemma 1: For any u ∈ F and v ∈ V−, if δ(u, v) > 0 then d∗(u) ≥ d∗(v). Lemma 2:

u∈F δ(u, v) ≤ d∗(v) for each v ∈ V−.

|V−| =

  • v∈V−

1 =

  • v∈V−

d∗(v) d∗(v) ≥

  • v∈V−

1 d∗(v)

  • u∈F

δ(u, v) =

  • v∈V−
  • u∈F

δ(u, v) d∗(v) ≥

  • v∈V−
  • u∈F

δ(u, v) d∗(u) =

  • u∈F

1 d∗(u)

  • v∈V−

δ(u, v) =

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

1 3 = |F| 3 , Lemma 3: Therefore, an execution path leading to a solution has depth at most 4k. We terminate all execution paths after 4k steps ⇒ O(16k · n2).

57 / 62

slide-58
SLIDE 58

Epilogue

[Furst Gross McGeoch 1988] feedback vertex set on subcubic graphs is in P. [C. Chen Liu 2010] This can be extended to the setting d(v) ≤ 3 for v ∈ V (G) \ F. Only put vertices of degree ≥ 4 into F, then |V−| ≥

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

2 4 = |F| 2 . We terminate all execution paths after 3k steps ⇒ O(8k · n2).

58 / 62

slide-59
SLIDE 59

Epilogue

[Furst Gross McGeoch 1988] feedback vertex set on subcubic graphs is in P. [C. Chen Liu 2010] This can be extended to the setting d(v) ≤ 3 for v ∈ V (G) \ F. Only put vertices of degree ≥ 4 into F, then |V−| ≥

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

2 4 = |F| 2 . We terminate all execution paths after 3k steps ⇒ O(8k · n2).

59 / 62

slide-60
SLIDE 60

Epilogue

[Furst Gross McGeoch 1988] feedback vertex set on subcubic graphs is in P. [C. Chen Liu 2010] This can be extended to the setting d(v) ≤ 3 for v ∈ V (G) \ F. Only put vertices of degree ≥ 4 into F, then |V−| ≥

  • u∈F

d∗(u) − 2 d∗(u) ≥

  • u∈F

2 4 = |F| 2 . We terminate all execution paths after 3k steps ⇒ O(8k · n2).

60 / 62

slide-61
SLIDE 61

Final remark

Beauty is the first test: there is no permanent place in the world for ugly mathematics..

  • G. H. Hardy

To theorists: stop ignoring successful heuristic algorithms by pretending their nonexistence!

61 / 62

slide-62
SLIDE 62

thanks!

62 / 62