ArticleslgStudy

computer science

Fully polynomial-time approximation scheme

Fully polynomial-time approximation scheme is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Fully polynomial-time approximation scheme rather than just read about it. In short: A fully polynomial-time approximation scheme (FPTAS) is an algorithm for finding approximate solutions to function problems, especially optimization problems. An FPTAS takes as input an instance of the problem and a parameter ε > 0.

Key takeaways

  • Fully polynomial-time approximation scheme belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Fully polynomial-time approximation scheme to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Fully polynomial-time approximation scheme from memory before moving on to harder problems.

Reference excerpt

A fully polynomial-time approximation scheme (FPTAS) is an algorithm for finding approximate solutions to function problems, especially optimization problems. An FPTAS takes as input an instance of the problem and a parameter ε > 0. It returns as output a value which is at least 1 − ε {\displaystyle 1-\varepsilon } times the correct value, and at most 1 + ε {\displaystyle 1+\varepsilon } times the correct value. In the context of optimization problems, the correct value is understood to be the value of the optimal solution, and it is often implied that an FPTAS should produce a valid solution (and not just the value of the solution). Returning a value and finding a solution with that value are equivalent assuming that the problem possesses self reducibility. Importantly, the run-time of an FPTAS is polynomial in the problem size and in 1/ε. This is in contrast to a general polynomial-time approximation scheme (PTAS). The run-time of a general PTAS is polynomial in the problem size for each specific ε, but might be exponential in 1/ε. The term FPTAS may also be used to refer to the class of problems that have an FPTAS. FPTAS is a subset of PTAS, and unless P = NP, it is a strict subset.

Relation to other complexity classes All problems in FPTAS are fixed-parameter tractable with respect to the standard parameterization. Any strongly NP-hard optimization problem with a polynomially bounded objective function cannot have an FPTAS unless P=NP. However, the converse fails: e.g. if P does not equal NP, knapsack with two constraints is not strongly NP-hard, but has no FPTAS even when the optimal objective is polynomially bounded.

Converting a dynamic program to an FPTAS Woeginger presented a general scheme for converting a certain class of dynamic programs to an FPTAS.

Input The scheme handles optimization problems in which the input is defined as follows:

The input is made of n vectors, x1,...,xn. Each input vector is made of some a {\displaystyle a} non-negative integers, where a {\displaystyle a} may depend on the input. All components of the input vectors are encoded in binary. So the size of the problem is O(n+log(X)), where X is the sum of all components in all vectors.

Extremely-simple dynamic program It is assumed that the problem has a dynamic-programming (DP) algorithm using states. Each state is a vector made of some b {\displaystyle b} non-negative integers, where b {\displaystyle b} is independent of the input. The DP works in n steps. At each step i, it processes the input xi, and constructs a set of states Si. Each state encodes a partial solution to the problem, using inputs x1,...,xi. The components of the DP are:

A set S0 of initial states. A set F of transition functions. Each function f in F maps a pair (state,input) to a new state. An objective function g, mapping a state to its value. The algorithm of the DP is:

Let S0 := the set of initial states. For k = 1 to n do: Let Sk := {f(s,xk) | f in F, s in Sk−1} Output min/max {g(s) | s in Sn}. The run-time of the DP is linear in the number of possible states. In general, this number can be exponential in the size of the input problem: it can be in O(n Vb), where V is the largest integer than can appear in a state. If V is in O(X), then the run-time is in O(n Xb), which is only pseudo-polynomial time, since it is exponential in the problem size which is in O(log X). The way to make it polynomial is to trim the state-space: instead of keeping all possible states in each step, keep only a subset of the states; remove states that are "sufficiently close" to other states. Under certain conditions, this trimming can be done in a way that does not change the objective value by too much. To formalize this, we assume that the problem at hand has a non-negative integer vector d = (d1,...,db), called the degree vector of the problem. For every real number r>1, we say that two state-vectors s1,s2 are (d,r)-close if, for each coordinate j in 1,...,b: r − d j ⋅ s 1 , j ≤ s 2 , j ≤ r d j ⋅ s 1 , j {\displaystyle r^{-d_{j}}\cdot s_{1,j}\leq s_{2,j}\leq r^{d_{j}}\cdot s_{1,j}} (in particular, if dj=0 for some j, then s 1 , j = s 2 , j {\displaystyle s_{1,j}=s_{2,j}} ). A problem is called extremely-benevolent if it satisfies the following three conditions:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Fully polynomial-time approximation scheme

Start with the simplest possible case. Write down what Fully polynomial-time approximation scheme claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Fully polynomial-time approximation scheme before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Fully polynomial-time approximation scheme ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Fully polynomial-time approximation scheme

In research
Fully polynomial-time approximation scheme appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Fully polynomial-time approximation scheme in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Fully polynomial-time approximation scheme is common in secondary-school and first-year university syllabi. It links to neighbouring topics Approximation algorithms, Complexity classes, so understanding it makes those chapters shorter.
In everyday life
Look for Fully polynomial-time approximation scheme outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Fully polynomial-time approximation scheme in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Fully polynomial-time approximation scheme means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Fully polynomial-time approximation scheme out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Fully polynomial-time approximation scheme in simple terms?

A fully polynomial-time approximation scheme (FPTAS) is an algorithm for finding approximate solutions to function problems, especially optimization problems. An FPTAS takes as input an instance of the problem and a parameter ε > 0.

Why does Fully polynomial-time approximation scheme matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Fully polynomial-time approximation scheme?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Fully polynomial-time approximation scheme.

Tags

  • Approximation algorithms
  • Complexity classes

Keep exploring