Some problems are hard in general but become manageable when one special number â a parameter â stays small. Finding a small vertex cover (a set of vertices that touches every edge) is NP-hard, but if we know the answer uses at most k vertices, can we exploit that?
Kernelization says yes, in the strongest possible way. A kernelization algorithm is a polynomial-time procedure that takes a problem instance of size n and a parameter k, and produces an equivalent smaller instance â the kernel â whose size is bounded by some function f(k) that does not grow with n. Once you have the kernel, you can solve it by brute force (since it is tiny) and answer the original question.
The key point is that the shrinking step runs in polynomial time, so the overall algorithm is fixed-parameter tractable (FPT): total time is O( + g(k)) for some constant c and some possibly huge function g. If the parameter is small, the algorithm is fast even on enormous inputs.
Kernelization was formalized in the 1990s, most influentially by Buss and Goldsmith (1993) for vertex cover, and has since become one of the central tools of parameterized complexity theory â a field pioneered by Downey and Fellows in their landmark 1999 monograph.
Comments
Loading comments...