Polynomial-time approximation scheme
In computer science (particularly algorithmics), a polynomial-time approximation scheme (PTAS) is a type of approximation algorithm for optimization problems (most often, NP-hard optimization problems).
A PTAS is an algorithm which takes an instance of an optimization problem and a parameter ε > 0Script error: No such module "Check for unknown parameters". and produces a solution that is within a factor 1 + εScript error: No such module "Check for unknown parameters". of being optimal (or 1 – εScript error: No such module "Check for unknown parameters". for maximization problems). For example, for the Euclidean traveling salesman problem, a PTAS would produce a tour with length at most (1 + ε)LScript error: No such module "Check for unknown parameters"., with Template:Mvar being the length of the shortest tour.[1]
The running time of a PTAS is required to be polynomial in the problem size for every fixed ε, but can be different for different ε. Thus an algorithm running in time O(n1/ε)Script error: No such module "Check for unknown parameters". or even O(nexp(1/ε))Script error: No such module "Check for unknown parameters". counts as a PTAS.
Variants
Deterministic
A practical problem with PTAS algorithms is that the exponent of the polynomial could increase dramatically as ε shrinks, for example if the runtime is O(n(1/ε)!)Script error: No such module "Check for unknown parameters".. One way of addressing this is to define the efficient polynomial-time approximation scheme or EPTAS, in which the running time is required to be O(nc)Script error: No such module "Check for unknown parameters". for a constant Template:Mvar independent of εScript error: No such module "Check for unknown parameters".. This ensures that an increase in problem size has the same relative effect on runtime regardless of what ε is being used; however, the constant under the big-O can still depend on ε arbitrarily. In other words, an EPTAS runs in FPT time where the parameter is ε.
Even more restrictive, and useful in practice, is the fully polynomial-time approximation scheme or FPTAS, which requires the algorithm to be polynomial in both the problem size Template:Mvar and 1/εScript error: No such module "Check for unknown parameters"..
Unless P = NP, it holds that FPTAS ⊊ PTAS ⊊ APX.[2] Consequently, under this assumption, APX-hard problems do not have PTASs.
Another deterministic variant of the PTAS is the quasi-polynomial-time approximation scheme or QPTAS. A QPTAS has time complexity npolylog(n)Script error: No such module "Check for unknown parameters". for each fixed ε > 0Script error: No such module "Check for unknown parameters".. Furthermore, a PTAS can run in FPT time for some parameterization of the problem, which leads to a parameterized approximation scheme.
Randomized
Some problems which do not have a PTAS may admit a randomized algorithm with similar properties, a polynomial-time randomized approximation scheme or PRAS. A PRAS is an algorithm which takes an instance of an optimization or counting problem and a parameter ε > 0Script error: No such module "Check for unknown parameters". and, in polynomial time, produces a solution that has a high probability of being within a factor εScript error: No such module "Check for unknown parameters". of optimal. Conventionally, "high probability" means probability greater than 3/4, though as with most probabilistic complexity classes the definition is robust to variations in this exact value (the bare minimum requirement is generally greater than 1/2). Like a PTAS, a PRAS must have running time polynomial in Template:Mvar, but not necessarily in εScript error: No such module "Check for unknown parameters".; with further restrictions on the running time in εScript error: No such module "Check for unknown parameters"., one can define an efficient polynomial-time randomized approximation scheme or EPRAS similar to the EPTAS, and a fully polynomial-time randomized approximation scheme or FPRAS similar to the FPTAS.[3]
As a complexity class
The term PTAS may also be used to refer to the class of optimization problems that have a PTAS. PTAS is a subset of APX, and unless P = NP, it is a strict subset. [2]
Membership in PTAS can be shown using a PTAS reduction, L-reduction, or P-reduction, all of which preserve PTAS membership, and these may also be used to demonstrate PTAS-completeness. On the other hand, showing non-membership in PTAS (namely, the nonexistence of a PTAS), may be done by showing that the problem is APX-hard, after which the existence of a PTAS would show P = NP. APX-hardness is commonly shown via PTAS reduction or AP-reduction.
See also
- Parameterized approximation scheme, an approximation scheme that runs in FPT time
References
External links
- Complexity Zoo: PTAS, EPTAS.
- Pierluigi Crescenzi, Viggo Kann, Magnús Halldórsson, Marek Karpinski, and Gerhard Woeginger, A compendium of NP optimization problems – list which NP optimization problems have PTAS.