fullscreen
timer
qrcode
plickers
selector
edit
reset

intractibility 0 (8)

poly-time reductions

algorithm design patterns and antipatterns

Algorithm design patterns

Algorithm design antipatterns

classify problems according to computational requirements

Which problems will we be able to solve in practice?

Working definition: Those with polynomial-time algorithms

von Neumann (1953);
von Neumann (1953);
Nash (1955);
Nash (1955);
Gödel (1956);
Gödel (1956);
Cobham (1964);
Cobham (1964);
Edmonds (1965);
Edmonds (1965);
Rabin (1966)
Rabin (1966)

Theory: Definition is broad and robust (Turing machine, word RAM, uniform circuits, ...)

Practice: Poly-time algorithms scale to huge problems (constants tend to be small, e.g., \(3N^2\))

classify problems according to computational requirements

Which problems will we be able to solve in practice?

Working definition: Those with polynomial-time algorithms

yes probably no
shortest path longest path
min cut max cut
2-satisfiability 3-satisfiability
planar 4-colorability planar 3-colorability
bipartite vertex cover vertex cover
matching 3D-matching
primality testing factoring
linear programming integer linear programming

classify problems

Desiderata: Classify problems according to those that can be solved in polynomial time and those that cannot.

Example problems requiring (provably) exponential time (at least):

Frustrating news: huge number of fundamental problems have defied classification for decades.

polynomial-time reductions

Desiderata': Suppose we could solve problem \(Y\) in polynomial-time. What else could we solve in polynomial time?

Reduction: Problem \(X\) polynomial-time (Turing/Cook) reduces to problem \(Y\) if arbitrary instances of problem \(X\) can be solve using:

Oracle: computational model supplemented by special piece of hardware that solves instances of \(Y\) in a single step

[ Turing/Cook Reductions | Wikipedia 1, 2 ]

polynomial-time reductions

Desiderata': Suppose we could solve problem \(Y\) in polynomial-time. What else could we solve in polynomial time?

Reduction: Problem \(X\) polynomial-time (Turing/Cook) reduces to problem \(Y\) if arbitrary instances of problem \(X\) can be solve using:

Notation: \(X \leq_P Y\)

Note: We pay for time to write down instances of \(Y\) sent to oracle ⇒ instances of \(Y\) must be of polynomial size

Novice mistake: Confusing \(X \leq_P Y\) with \(Y \leq_P X\)

quiz: Intractibility

live view ]

Suppose that \(X \leq_P Y\). Which of the following can we infer?

  1. If \(X\) can be solved in polynomial time, then so can \(Y\)
  2. \(X\) can be solved in poly time iff \(Y\) can be solved in poly time
  3. If \(X\) cannot be solved in polynomial time, then neither can \(Y\)
  4. If \(Y\) cannot be solved in polynomial time, then neither can \(X\)

quiz: Intractibility

live view ]

Which of the following poly-time reductions are known?

  1. \( {\rm F{\small IND}\text{-}M{\small AX}\text{-}F{\small LOW}} \leq_P {\rm F{\small IND}\text{-}M{\small IN}\text{-}C{\small UT}} \)
  2. \( {\rm F{\small IND}\text{-}M{\small IN}\text{-}C{\small UT}} \leq_P {\rm F{\small IND}\text{-}M{\small AX}\text{-}F{\small LOW}} \)
  3. Both A and B
  4. Neither A nor B

Polynomial-time reductions

Design algorithms: If \(X \leq_P Y\) and \(Y\) can be solved in polynomial time, then \(X\) can be solved in polynomial time

Establish intractibility: If \(X \leq_P Y\) and \(X\) cannot be solved in polynomial time, then \(Y\) cannot be solved in polynomial time

Establish equivalence: If both \(X \leq_P Y\) and \(Y \leq_P X\), we use notation \(X \equiv_P Y\). In this case, \(X\) can be solved in polynomial time iff \(Y\) can be.

Bottom line: Reductions classify problems according to relative difficulty

×