A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

Polynomial Many-One Reductions

Graduate Depth 100 in the knowledge graph ☐ I know this ☆ Set as goal
21topics build on this
502prerequisites beneath it
See this on the map →
Boolean Satisfiability, Cook-Levin, and ReductionsNP-Completeness and Cook-Levin Theorem→→BPP: Bounded Error Probabilistic Polynomial TimeThe Polynomial Hierarchy
reductions hardness complexity-classes

Core Idea

A polynomial many-one reduction from L₁ to L₂ is a polynomial-time computable function f where x ∈ L₁ ⟺ f(x) ∈ L₂, formalizing 'problem L₁ is no harder than L₂.' If L₂ is polynomial-solvable and L₁ reduces to L₂, then L₁ is solvable in polynomial time. NP-completeness is defined via such reductions: a problem is NP-complete if in NP and all NP problems reduce to it. Reductions form the backbone of complexity theory, transferring difficulty between problems.

Explainer

You have already seen reductions used to prove NP-completeness, and you know how SAT reductions work in practice. A polynomial many-one reduction (also called a Karp reduction) is the precise formal tool underlying all of that work. The idea is deceptively simple: to reduce problem A to problem B, you build a polynomial-time function f that transforms every instance x of A into an instance f(x) of B, such that x is a yes-instance of A if and only if f(x) is a yes-instance of B. You never run B's solver — you just translate the question.

The "many-one" in the name means the function f maps inputs to outputs but need not be injective: many different inputs to A can map to the same input for B. The "polynomial" means f must be computable in polynomial time, ensuring the translation itself is efficient. This is critical because if f took exponential time to compute, the reduction would be useless for complexity classification — you would have already spent more time than a brute-force search.

The power of reductions flows in two directions. In the easy direction, if you know how to solve B efficiently and you can reduce A to B, then you can solve A efficiently: compute f(x) in polynomial time, then solve f(x) using B's algorithm in polynomial time. In the hard direction — and this is how reductions are most often used — if you know A is hard (say, NP-complete) and you can reduce A to B, then B must be at least as hard as A. If B were easy, you could solve A easily via the reduction, contradicting A's hardness. This is exactly how NP-completeness proofs work: you take a known NP-complete problem, reduce it to your target problem, and conclude the target is NP-hard.

A concrete example: to show that CLIQUE is NP-hard, you reduce 3-SAT to CLIQUE. Given a 3-SAT formula, you construct a graph where each literal in each clause becomes a vertex, edges connect compatible literals from different clauses, and the formula is satisfiable if and only if the graph contains a clique of size k (the number of clauses). The construction runs in polynomial time, the equivalence holds in both directions, and the reduction is complete. Notice that you never solve either problem — you just show that an efficient CLIQUE solver would imply an efficient 3-SAT solver, which would imply P = NP.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Finite State Machines (FSMs) → Deterministic Finite Automata (DFA) → Nondeterministic Finite Automata (NFA) → Two-Way Finite Automata → NFA to DFA Conversion (Subset Construction) → DFA Properties and Minimization Algorithms → Regular Languages: Definition and Characterization → Context-Free Grammars (CFGs) → Pushdown Automata (PDA) → Equivalence of CFGs and Pushdown Automata → Closure Properties of Context-Free Languages → Limitations of Context-Free Languages → Pumping Lemma for Context-Free Languages → Turing Machines → Variants of Turing Machines and Equivalence → Nondeterministic Time Complexity and NP → The P vs. NP Problem → Complexity Class P: Polynomial Time → Complexity Class NP: Nondeterministic Polynomial Time → NP-Completeness and Cook-Levin Theorem → The Cook-Levin Theorem → Boolean Satisfiability, Cook-Levin, and Reductions → Polynomial Many-One Reductions

Longest path: 101 steps · 502 total prerequisite topics

Prerequisites (2)

Leads To (2)