Intermediate Topic 32 of 51 Theory & Discrete Math
Reductions
Transforming one problem into another to compare difficulty.
How it works
A reduction transforms instances of one problem A into instances of another problem B so that solving B solves A. If A reduces to B, then B is at least as hard as A. In computability, mapping reductions prove undecidability: if a known undecidable problem reduces to B, then B is undecidable. In complexity, polynomial-time reductions prove NP-hardness: reducing an NP-complete problem to B shows B is at least as hard. Turing reductions allow multiple calls to a solver for B.
Step-by-step walkthrough
- To compare difficulty, convert A to B.
- The transformation maps inputs of A to inputs of B.
- A solver for B then solves A.
- So A is no harder than B.
- Reductions prove undecidability and NP-hardness.
Where it is used
Proving the hardness of new problems, such as reducing 3-SAT to clique or independent set, designing algorithms by converting one problem to a known one, and showing equivalence of problems use reductions.
Common pitfall
The direction is the common mistake: to show B is hard you reduce a known hard problem to B, not the other way around. The transformation must be correct in both directions, yes to yes and no to no, and must be efficient for complexity results. Verify with small instances and prove the correctness of both directions.
Where it fits in the course
Reductions is topic 32 of 51 in Theory & Discrete Math, rated Intermediate. It follows Halting Problem. The next topic is Rice's Theorem.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Theory & Discrete Math quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Theory & Discrete Math quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Reductions?
Where do people use Reductions?
What is the most common mistake with Reductions?
What should I learn before this topic?
How can I practice it?
Is Reductions hard to learn?
How long does it take to learn Reductions?
Which topics are related to Reductions?
What should I study after Reductions?
Related topics
- Halting Problem (Theory & Discrete Math)
- Rice's Theorem (Theory & Discrete Math)
- Decidability (Theory & Discrete Math)
- Complexity Classes (Theory & Discrete Math)