ArticleslgStudy

science

Polynomial-time counting reduction

Polynomial-time counting reduction is a 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 Polynomial-time counting reduction rather than just read about it. In short: In the computational complexity theory of counting problems, a polynomial-time counting reduction is a type of reduction (a transformation from one problem to another) used to define the notion of completeness for the complexity class ♯P. These reductions may also be called polynomial many-one counting reductions or weakly parsimonious reductions; they are analogous to many-one reductions for decision problems and t…

Key takeaways

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

Reference excerpt

In the computational complexity theory of counting problems, a polynomial-time counting reduction is a type of reduction (a transformation from one problem to another) used to define the notion of completeness for the complexity class ♯P. These reductions may also be called polynomial many-one counting reductions or weakly parsimonious reductions; they are analogous to many-one reductions for decision problems and they generalize the parsimonious reductions.

Definition A polynomial-time counting reduction is usually used to transform instances of a known-hard problem X {\displaystyle X} into instances of another problem Y {\displaystyle Y} that is to be proven hard. It consists of two functions f {\displaystyle f} and g {\displaystyle g} , both of which must be computable in polynomial time. The function f {\displaystyle f} transforms inputs for X {\displaystyle X} into inputs for Y {\displaystyle Y} , and the function g {\displaystyle g} transforms outputs for Y {\displaystyle Y} into outputs for X {\displaystyle X} . These two functions must preserve the correctness of the output. That is, suppose that one transforms an input x {\displaystyle x} for problem X {\displaystyle X} to an input y = f ( x ) {\displaystyle y=f(x)} for problem Y {\displaystyle Y} , and then one solves y {\displaystyle y} to produce an output z {\displaystyle z} . It must be the case that the transformed output g ( z ) {\displaystyle g(z)} is a correct output for the original input x {\displaystyle x} . That is, if the input–output relations of X {\displaystyle X} and Y {\displaystyle Y} are expressed as functions, then their function composition must obey the identity X = g ∘ Y ∘ f {\displaystyle X=g\circ Y\circ f} . Alternatively, expressed in terms of algorithms, one possible algorithm for solving X {\displaystyle X} would be to apply f {\displaystyle f} to transform the problem into an instance of Y {\displaystyle Y} , solve that instance, and then apply g {\displaystyle g} to transform the output of Y {\displaystyle Y} into the correct answer for X {\displaystyle X} .

Relation to other kinds of reduction As a special case, a parsimonious reduction is a polynomial-time transformation f {\displaystyle f} on the inputs to problems that preserves the exact values of the outputs. Such a reduction can be viewed as a polynomial-time counting reduction, by using the identity function as the function g {\displaystyle g} .

Applications in complexity theory A functional problem (specified by its inputs and desired outputs) belongs to the complexity class ♯P if there exists a non-deterministic Turing machine that runs in polynomial time, for which the output to the problem is the number of accepting paths of the Turing machine. Intuitively, such problems count the number of solutions to problems in the complexity class NP. A functional problem Y {\displaystyle Y} is said to be ♯P-hard if there exists a polynomial-time counting reduction from every problem X {\displaystyle X} in ♯P to Y {\displaystyle Y} . If, in addition, Y {\displaystyle Y} itself belongs to ♯P, then Y {\displaystyle Y} is said to be ♯P-complete. (Sometimes, as in Valiant's original paper proving the completeness of the permanent of 0–1 matrices, a weaker notion of reduction, Turing reduction, is instead used for defining ♯P-completeness.) The usual method of proving a problem Y {\displaystyle Y} in ♯P to be ♯P-complete is to start with a single known ♯P-complete problem X {\displaystyle X} and find a polynomial-time counting reduction from X {\displaystyle X} to Y {\displaystyle Y} . If this reduction exists, then there exists a reduction from any other problem in ♯P to Y {\displaystyle Y} , obtained by composing a reduction from the other problem to X {\displaystyle X} with the reduction from X {\displaystyle X} to Y {\displaystyle Y} .

References

Worked examples

Example 1 — a first encounter with Polynomial-time counting reduction

Start with the simplest possible case. Write down what Polynomial-time counting reduction claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In 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 Polynomial-time counting reduction 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 Polynomial-time counting reduction 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 Polynomial-time counting reduction

In research
Polynomial-time counting reduction appears in 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 Polynomial-time counting reduction 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
Polynomial-time counting reduction is common in secondary-school and first-year university syllabi. It links to neighbouring topics Reduction (complexity), so understanding it makes those chapters shorter.
In everyday life
Look for Polynomial-time counting reduction 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 Polynomial-time counting reduction in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Polynomial-time counting reduction 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 Polynomial-time counting reduction out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Polynomial-time counting reduction in simple terms?

In the computational complexity theory of counting problems, a polynomial-time counting reduction is a type of reduction (a transformation from one problem to another) used to define the notion of completeness for the complexity class ♯P. These reductions may also be called polynomial many-one coun…

Why does Polynomial-time counting reduction matter?

Because it connects several 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 Polynomial-time counting reduction?

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 Polynomial-time counting reduction.

Tags

  • Reduction (complexity)

Keep exploring