Many important problems are NP-complete; this means that, unless P = NP, we cannot have a polynomial-time (feasible) algorithm for solving all instances of this problem. For each such problem, there is an exhaustive search algorithm that requires exponential time.

How can we solve these problems faster? There are two main approaches to answering this question. The parameterized algorithm approach tries to find subclasses for which a feasible algorithm is possible--usually by introducing an integer-valued parameter such that for each value of this parameter, a feasible algorithm is possible for all the instances for which this parameter does not exceed this value. An alternative idea is to find an exponential algorithm--applicable to all the instances--that is faster than exhaustive search.

The authors show, rather unexpectedly, that these two seemingly unrelated approaches are actually strongly related: namely, in many cases, a successful parameterized algorithm can lead to a faster-than-exhaustive-search exponential algorithm. Specifically, the authors consider subset problems, that is, the problems of checking whether in a given *n*-element set there is a subset satisfying a given property. For example, we are given: a CNF formula with clauses of size at most *d*, weights assigned to all *n* variables, and the overall weight *W*; we want to check the existence of a satisfying vector for which the total weight of all true variables does not exceed *W*. For such problems, exhaustive search of all 2^{n} subsets takes time ≧2^{n}.

The corresponding parameterized problem is: given a set *X* and an integer *k*, can we add at most *k* elements to *X* and get a set with the desired property? It turns out that if this “extension” problem can be solved in time *O*(*c*^{k}⋅*n*^{C}) (for some constant *C*), then the original problem can be solved faster than in 2^{n} steps: namely, in time *O*((2-1/*c*)^{n}). The authors first prove the existence of a randomized algorithm with this computation time, and then use an innovative pseudo-random generator to design a deterministic algorithm with practically the same complexity: *O*((2-1/*c*)^{n+o(n)}).

The results are spectacular. For many problems for which no faster-than-exhaustive-search algorithm was previously known, such algorithms are produced. For many other problems, new exponential algorithms are generated that are faster than all previously known ones.