Title: Fixed parameter complexity of feedback set problems
1Fixed parameter complexityof feedback set
problems
- Thomas C. van Dijk
- SupervisorsDr. Hans L. BodlaenderDr. Gerard Tel
2Overview
- Introduction
- Feedback set problems
- Fixed parameter complexity
- Kernelization for Loop Cutset
- Algorithmic considerations
- Experimental evaluation
3Feedback Vertex Set
- Instance
- An undirected graph G (V,E)
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that G V-S is acyclic?
4Feedback set problems
Feedback vertex set
Feedback edge set
Feedback arc set
Directed feedback vertex set (and Loop Cutset)
5Feedback set problems
Feedback vertex set
Feedback edge setEasy spanning tree
Feedback arc set
Directed feedback vertex set (and Loop Cutset)
6Feedback set problems
Feedback vertex set
Feedback edge setEasy spanning tree
NP-COMPLETE
Feedback arc set
Directed feedback vertex set (and Loop Cutset)
7Typical complexity theory
- Natural problems tend to be either
- in P ? Nice
- NP-Complete ? Nasty
- How to solve nasty problems?
- Solve only small instances
- Dont actually solve the problem
- Approximate
- Exploit properties of certain instances
8Feedback Vertex Set
- Instance
- An undirected graph G (V,E)
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that G V-S is acyclic?
9Feedback Vertex Set
- Instance
- An undirected graph G (V,E)
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that G V-S is acyclic?
10Feedback Vertex Set
- Instance
- An undirected graph G (V,E)
- Parameter
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that G V-S is acyclic?
11Fixed parameter complexity
- Parameterized problems
- Asymptotic runtime in both n and k
- O( f(k) poly(n) ) ? Fixed
Parameter Tractable - O( n f(k) )
12Feedback set problems
Feedback vertex set
Feedback edge setEasy
NP-COMPLETE
Feedback arc set
Directed feedback vertex set
and Loop Cutset
13Feedback set problems Parameterized on size of
solution
Feedback vertex set
Feedback edge setEasy
Feedback arc set
Directed feedback vertex set
and Loop Cutset
14Feedback set problems Parameterized on size of
solution
Feedback vertex set Fixed parameter tractable
Feedback edge setEasy
Feedback arc set
Directed feedback vertex set
and Loop Cutset
15Feedback set problems Parameterized on size of
solution
Feedback vertex set Fixed parameter tractable
Feedback edge setEasy
and Loop Cutset
?
Feedback arc set
Directed feedback vertex set
- Not known to be FPT.
- Not known to be W1-hard.
- Even FPT ? W1 unknown. (Cf. P ? NP)
16Feedback vertex set FPT
- Feedback vertex set was already known to be fixed
parameter tractable - Almost directly from some deep theorems of fixed
parameter complexity - Not practical
- There are several FPT algorithms
- Practical?
17Kernelization
- Preprocessing with quality guarantee
- Polynomial time algorithm
- Input Graph G, parameter k
- Output Graph G, parameter k lt k,
- Such that
- G has a FVS of size at most k iff G has a
FVS of size at most k - G has O( s(k) ) vertices
18Polynomial size kernel ? FPT
- Kernelize to poly size in poly time, then solve
the kernel in whatever way - O( pt(n) f( ps(k) ) ) time
19Kernel for feedback vertex set
- Bodlaender 06
- Undirected Feedback Vertex Set has a kernel with
O( k3 ) vertices
20Kernel for feedback vertex set
- This thesis contribution
- Loop Cutset also has a kernelwith O( k3 )
vertices - More extensiveanalysis of thealgorithms
- Experimentalevaluation of thekernelizationsthe
y are practical
21Kernelization for Loop Cutset
22Loop Cutset
- Inference in probabilistic networks
- Directed acyclic graphs
- Pearls algorithm
- Only works on trees
- Cutset conditioning
- Only interested in small loop cutsets, because
conditioning is exponential
23Loop Cutset
- Instance
- An directed acyclic graph G (V,A)
- Parameter
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that for all simple loops, S contains a vertex
that is not a sink on that loop
24Loop Cutset
- Instance
- An directed acyclic graph G (V,A)
- Parameter
- An integer k
- Question
- Does there exist an S Vof size at most ksuch
that for all simple loops, S contains a vertex
that is not a sink on that loop
25Kernelization for Loop Cutset
- Transform to Blackout FVS
- Kernelize Blackout FVS
- Based on Bodlaenders FVS kernelization
- Transform back
26Blackout Feedback Vertex Set
- Instance
- An undirected graph G(V,E)
- A set X V of blacked out vertices
- Parameter
- An integer k
- Question
- Does there exist an S V-Xof size at most
ksuch that G V-S is acyclic
27Transform to Blackout FVS
- Split all vertices v into vin and vout
- Blackout all in vertices
28Transform to Blackout FVS
- Split all vertices v into vin and vout
- Blackout all in vertices
29Transform to Blackout FVS
- Split all vertices v into vin and vout
- Blackout all in vertices
30Kernelization overview
- A collection of rules
- A proof if none of the rules apply, thenthe
graph can have only O( k3 ) vertices - Complicated not in this presentation
- An algorithm
- just keep trying the rules until none apply
31Rules simple
- Islet
- Remove degree 0 vertices.
- Twig
- Remove degree 1 vertices.
- Triple edge
- Remove more-than-double edges.
32Degree two
- Originally bypass degree-two vertices
- For each degree-two vertex
- Exists optimal FVS that doesnt use itchoose
one of its neighbors
33Rule degree two
- Suppose v is a vertex with exactly two neighbors
x and y. - If v is blacked out, bypass it.
v
y
x
y
x
34Rule degree two
- Suppose v is a vertex with exactly two neighbors
x and y. - If v is allowed, and it has an allowed neighbor,
bypass v.
v
y
x
y
x
35Rule degree two
- Suppose v is a vertex with exactly two neighbors
x and y. - If v is allowed, x and y are both blacked out
- Leave it in there.
v
y
x
36Rule self-loop
- Suppose v has a self-loop.
- If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
37Rule self-loop
- Suppose v has a self-loop.
- If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
38Rule black double edge
- Suppose v has a double edge to a blacked out
vertex - If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
- Basically a self-loop
39Rule black double edge
- Suppose v has a double edge to a blacked out
vertex - If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
- Basically a self-loop
40Rule large double degree
- Suppose v has k1 double edges
- If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
41Rule large double degree
- Suppose v has k1 double edges
- If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
42Flower rule example, k 2
43Flower rule example, k 2
v
44Flower rule example, k 2
45Rule flower
- Suppose there are k1 cycles that are
vertex-disjoint except all include v. - If v is allowed, select it in the FVS.
- If v is blacked out, conclude No.
46Flower rule example, k 2
47Cascade of degree-2 rule
48Cascade of degree-2 rule
49Cascade of degree-2 rule
50Cascade of degree-2 rule
51Cascade of degree-2 rule
52Flower rule example, before
53Improvement rule example, k 2
54Improvement rule example, k 2
A
B
55Improvement rule example, k 2
A
B
56Rule improvement
- Suppose there are k2 vertex-disjoint paths
between vertices u and v. - If both are allowed, add a double edge (u,v).
- If only one is allowed, select it in the FVS.
- If both are blacked out, conclude No.
57Improvement rule example, k 2
A
B
58Improvement rule example, k 1
A
B
59Improvement rule example, k 1
A
B
60Large double degree, k 1
61Large double degree, k 1
62Rule blacked out component
- Suppose C is a connected component in GX
contract C into one vertex.
63Rule 2-approximation
- Suppose a 2-approximate FVS is larger than 2k
conclude No.
64Abdication rule example
65Abdication rule example
66Abdication rule example
67Abdication rule example
68Abdication rule example
69Abdication rule example 2
70Abdication rule example 2
71Abdication rule example 2
72Abdication rule example 2
73Abdication rule example 2
74Rule abdication
- Suppose a vertex v governs a piece X.
- If it has one edge into X, remove that edge.
- If it has multiple edges into X, select v in the
FVS.
75Rule overview
- Islet, Twig, Triple edge
- Degree two
- Self-loop, Black double edge, Flower
- Blacked out component
- Improvement
- 2-Approximation
- Abdication
76Transform back to Loop Cutset
- Possibly edges between
- Two allowed vertices
- An allowed and a blacked out vertex
- Not between two blacked out vertices
- Blacked out component rule
77Algorithmic considerations
78Algorithmic considerations
- A bunch of rules are they all required?
- The complicated ones are.
- Dropping any one of those size of output no
longer bounded in k. - The O(k3) size bound, is it tight?
- Yes.
- How to efficiently check for the rules?
79Justification of the rules
- The Flower rule is required
80Justification of the rules
- The Abdication rule is required
81Justification of the rules
- The 2-Approximation rule is required
- Consider a grid
- Degree-2 rule cuts the corners
82Justification of the rules
- The 2-Approximation rule is required
- Consider a grid
- Nothing else happens if k 3
83Justification of the rules
- The 2-Approximation rule is required
- Consider a grid
- Nothing else happens if k 3
- not Flower (just 2 petals)
84Justification of the rules
- The 2-Approximation rule is required
- Consider a grid
- Nothing else happens if k 3
- not Improvement (just 4 paths)
85Justification of the rules
- The 2-Approximation rule is required
- Consider a grid
- Only the 2-approximation
86Intuition why FVS is FPT
- For n?8, fixed k, instances become either
- Easy
- Because they are sparse
- Complicatedbut in a way that is easy to
recognize - There is no way this can be done with only k
vertices! - It is hard to make any complicated structure
without making lots of cycles
87Undirected vs Directed FVS
- Undirected FVS is fixed param tractable
- Directed FVS unknown, but seems harder
- Why? Intuition
- In a directed graph, it is easier to hide cycles
88Loop Cutsetis fixed param tractable
- Goes with Undirected FVS in this sense
- Intuition
- Loops are undirected
- The extra condition on how to break a loop
doesnt complicate matters enough - If a vertex is a sink on a loop, its neighbors
are not sinks on that loop.
89Experimental evaluation
90Implementation
- C
-
- Library ofEfficient Data structures and
Algorithms - By Algorithmic Solutions
- Quite nice
- Interesting experimental results
91Runtime on random graphs, k20
92Runtime on random graphs, k20
93Runtime on random graphs
94UAI06 Networkseffectiveness as heuristic
(histogram)
95UAI06 Networksruntime
96Effectiveness of the kernelization
- After kernelization, one still needs to solve the
problem on the kernel - So compare runtime of
- solve, versus
- kernelize and solve kernel
- Following data solve using a simple
branch-and-bound
97Effectiveness of the kernelization
98Effectiveness on UAI06 Networks
- Unfortunately, those are way too big to find an
optimal loop cutset for - Thousands of nodes
- Kernelization improves quality of heuristics?
99Summary
- Loop Cutset also has a kernelwith O( k3 )
vertices - More extensive analysis of the algorithms
- Experimental evaluation of the kernelizations
they are practical
100Summary
- Loop Cutset also has a kernelwith O( k3 )
vertices - More extensive analysis of the algorithms
- Experimental evaluation of the kernelizations
they are practical - Questions?
101Checking for the Flower rule
- If v is a flower with k petals, there is a
selection of edges where - v has 2k of its edges selected
- All other vertices have either 2 or none of their
edges selected
102Flower with 3 petals
0
0
2
2
2
0
2
2
6
2
2
2
0
2
2
0
2
2
103Checking for the Flower rule
- Reduce to perfect matchingin general graphs
- Then just use Edmonds algorithm
104Flower with 3 petals
0
0
2
2
2
0
2
2
6
2
2
2
0
2
2
0
2
2
1050,2-Matchting widget
- No edges selected (vertex not in petal)
1060,2-Matchting widget
- Two edges selected (vertex in petal)