An Efficient Fixed Parameter Algorithm for 3-Hitting Set Rolf Niedermeier Peter Rossmanith Presentation by: Rajiv Badi
3-Hitting Set Hitting Set problem for size three sets 3HS for short Input: A collection C of subsets of size three of a finite set S and a positive integer k Question: Is there a subset S' S,with |S'| <=k which allows S' to contain at least one element from each subset in C?
Motivation Computational Biology Problem of “cleaning up” data: Given a set of experimental data points, some of which are in conflict, is there a way to determine a minimum size set of data points such that, if “deleted” from the experimental data, this would remove (“explain”) all inconsistencies? Phylogeny
Why not 2-HS? 2-HS is the same as Vertex Cover 3-HS can be seen as Vertex Cover for hypergraphs, where there is a hyperedge between three instead of two vertices
Some solutions… Straightforward solution A search tree of size 3k Since each subset has to be covered by the hitting set, we have to take at least one of the three elements of a subset gives O(3k + n) Generalizes to d-Hitting set for constant d, yielding an O(dk + n) algorithm. Downey et al. have shown that 3HS can be solved using a O(2.5616k + n) algorithm.
Solution by Neidermeier and Rossmanith 3HS - O(2.270k + n) d-Hitting Set – O(ck +n) c = d -1 + O(d-1)
Approach Kernelization Bounded search tree Gives complexity of the form O(t(k)p(k) + q(n,k)) t(k) = size of search tree (number of nodes) p(k)= size of problem kernel q(n,k) = time for reduction to problem kernel Can be improved to O(t(k) + q(n,k)) using a general method by same authors to speed up fpt algorithms
Reduction to problem kernel There is a problem kernel of size O(k3) for 3HS, and it can be found in linear time Claim 1: There can be at most k size three subsets in the collection C that contain both x and y Claim 2: There can be at most k2 size three subsets in the collection C that contain x
Bounded Search Tree Simple Cases Subsets of size two Degree 3 Degree at least 4 Collection is 2-regular
Bounded ST: Step 1: Simple Cases Singletons, such as {x}, have to be taken into the hitting set If an element x S, that occurs in only one set, e.g., {x, a, b}, it suffices to consider {a, b} leading to the recursive call Bk If an element y is dominated by an element x, throw away occurrences of y, obtaining sets of size two or one in the given instance
Bounded ST: Step 2: Size two subsets If all subsets are of size two, Vertex Cover Consider {x, y} and {x, a, b} where x occurs only in these two sets If y is taken into the hitting set, subtree with Bk-1 leaves If x is taken into the hitting set, subtree with Bk-1 leaves
Bounded ST: Step 2 contd: Size two subsets x occurs in at least two sets of size two and one set of size three, that is, {x, y1}, {x, y2}, {x, a, b} If x is in, Tk-1 branch If x is not, Tk-2 branch {x, y}, {x, a, b}, {x, a, c} If x is not, y is, branching with a: Tk-2 branch If x is not, y is and a is not, b and c are in. Tk-3 branch
Bounded ST: Step 2 contd: Size two subsets {x, y}, {x, a ,b}, {x, c, d} If x is in, Tk-1 branch If x is not, and if a is, Bk-2 branch If x is not, and a is not, b is, Bk-2 branch
Bounded ST: Step 3: Degree 3 {x, a1, a2}, {x, b1, b2}, {x, c1, c2} There exists another element besides x that occurs in at least two of the three sets. So, let a1 = b1 c1 and a1 are in. Tk-2 branch c1 is and a1 is not. Tk-3 branch There is no such element. If x is in, Tk-1 branch If x is not, Bk-2
Bounded ST: Step 4: Degree at least 4 x occurs in at least 4 sets {x, a1, a2}, {x, b1, b2}, {x, c1, c2}, {x, d1, d2} If a1 = b1 If x is in, Tk-1 branch If x is not, and a1 is not. Tk-2 branch Else If x is not, Bk-3 branches
Bounded ST: Step 5: 2-Regular All sets of the form {x, a, b}, {x, c, d} If a is in, Bk-1 branch If x is in, Bk-1 branch Else, Bk-1 branch
Summarizing… 2Bk-1 Tk-1 +Tk-2 + Tk-3 Bk-2 + Tk-1 Bk ≤ max Tk ≤ max
Complexity 3HS = O(2.270k + n) d-HS = O(ck + n), where c = d-1+O(d-1) Unbounded subset size HS = W[2]-complete d 3 4 5 6 7 8 9 10 20 50 100 T(k) 2.41k 3.30k 4.23k 5.19k 6.16k 7.14k 8.12k 9.11k 19.05k 49.02k 99.01k
Thank You!