# Klam value

In the parameterized complexity of algorithms, the klam value of a parameterized algorithm is a number that bounds the parameter values for which the algorithm might reasonably be expected to be practical. An algorithm with a higher klam value can be used for a wider range of parameter values than another algorithm with a lower klam value. The klam value was first defined by Downey and Fellows (1999), and has since been used by other researchers in parameterized complexity both as a way of comparing different algorithms to each other and in order to set goals for future algorithmic improvements.

## Definition

An algorithm is said to be fixed-parameter tractable if the number of elementary operations it performs has a bound of the form $O(n^{c})+f(k)$, where $n$ is some measure of the input size (such as the number of vertices in a graph), $k$ is a parameter describing the complexity of the input (such as the treewidth of the graph), $c$ is a constant that does not depend on $n$ or $k$, and $f$ is a computable function.
Given a time bound of this form, the klam value of the algorithm (or more properly of the time bound) is defined to be the largest value of $k$ such that $f(k)$ does not exceed "some reasonable absolute bound on the maximum number of steps of any computation". More precisely both Downey & Fellows (1999) and Niedermeier (1998) use the number 10$^{20}$ as this bound, and this has been followed by later researchers. To prevent artificially improving the klam value of an algorithm by putting more of its complexity into the $O(n^{c})$ part of the time bound, Downey & Fellows (1999) also limit $c$ to be at most three, valid for many known fixed-parameter tractable algorithms.

## Examples

Niedermeier (1998) cites the example of vertex cover, with its natural parameter (the number of vertices in the cover). At that time the best known parameterized time bound had $f(k)=O(k^{2}1.3248^{k})$. Solving $k^{2}1.3248^{k}=10^{20}$ gives a klam value of approximately 129. However, the $k^{2}$ part of the time bound can be simplified out of it, giving a bound of the form $O(1.3248^{k})$ with both a larger constant factor hidden in the O-notation and a larger base of the exponent hidden in its approximate decimal value. For a simple exponential bound $f(k)=c^{k}$such as this one, one can solve directly $k=20/\log _{10}c$ from which Niedermeier derives a klam value of approximately 165. Subsequent research has developed parameterized vertex cover algorithms with $f(k)=O(1.2738^{k})$ giving a klam value of approximately 190. That is, one can conclude from this analysis that vertex cover instances with cover size greater than 190 are out of reach of this algorithm, but instances whose cover size is sufficiently far below this limit are likely to be solvable.
Another example of a problem in which the klam value has been explicitly used as a goal for future research is the maximum leaf spanning tree problem, in which the goal is to find a spanning tree of a graph with as many leaf nodes as possible (parameterized by the number of leaves). Fellows et al. (2000) develop an algorithm for this problem which they compare using the klam value to previous work on the same problem: previous algorithms had klam values of 1 and 5, and theirs has a klam value of 16. However, they also suggest that it should be possible to provide improved algorithms for this problem with a klam value of at least 50. Although this remains open, several later papers have incrementally improved the klam value of this problem to 37.