• SAT
    • given an expression in terms of:
      • Variables
      • and, not, or
      • if, iff
      • ()
    • Is there a set of input for the variables that will produce a 1 (or true)?
    • ((w → x ) ∨ ¬((¬ w ↔ y) ∨ z)) ∧ ¬ x
      • w = 0, x=0, y = 1, z = 1
      • ((0 → 0 ) ∨ ¬((¬ 0 ↔ 1) ∨ 1)) ∧ ¬ 0
      • (1 ∨ 0) ∧ 1
      • 1
      • So this equation is satisfiable.
    • Again, a 2n algorithm will solve this.
    • But is it in NP-Complete?
      • SAT ∈ NP, fairly easy
      • CIRCUIT-SAT ≤P SAT
        • The brute force approach to the reduction is not polynomial.
        • Show this.
        • Trick, use and of iff.
        • Show this.
  • After this, CLRS go on to show quite a few reductions
    • 3-CNF-SAT: is an expression in the form (x1 ∨ x2 ∨ ¬ x3) ∧ (x2 ∨ ¬ x4 ∨ x5) ∧ ... satisfiable?
    • SAT ≤P 3-CNF
    • A clique in a graph G is a set of completely connected vertexes.
    • Finding the maximum sized clique in a graph is the clique problem
    • CLIQUE: given a graph G does a clique of size k exist?
    • 3-CNF-SAT ≤P CLIQUE
    • CLIQUE ≤ P HAM-CYCLE
    • HAM-CYCLE ≤P TSP ...
    • Each proof is unique.