Files
NoteNextra-origin/content/CSE347/CSE347_L6.md
2025-09-17 14:27:46 -05:00

9.1 KiB

CSE347 Analysis of Algorithms (Lecture 6)

NP-completeness

P: Polynomial-time Solvable

P: Class of decision problems L such that there is a polynomial-time algorithm that correctly answers yes or not for every instance l\in L.

Algorithm "A decides $L$". If algorithm A always correctly answers for any instance l\in L.

Example:

Is the number n prime? Best algorithm so far: O(\log^6 n), 2002

Introduction to NP

  • NP$\neq$ Non-polynomial (Non-deterministic polynomial time)
  • Let L be a decision problem.
  • Let l be an instance of the problem that the answer happens to be "yes".
  • A certificate c(l) for l is a "proof" that the answer for l is true. [l is a true instance]
    • For canonical decision problems for optimization problems, the certificate is often a feasible solution for the corresponding optimization problem.

Example of certificates

  • Problem: Is there a path from s to t
    • Instance: graph G(V,E),s,t.
    • Certificate: path from s to t.
  • Problem: Can I schedule k intervals in the room so that they do not conflict.
    • Instance: l:(I,k)
    • Certificate: set of k non-conflicting intervals.
  • Problem: ISET
    • Instance: G(V,E),k.
    • Certificate: k vertices with no edges between them.

If the answer to the problem is NO, you don't need to provide anything to prove that.

Useful certificates

For a problem to be in NP, the problem need to have "useful" certificates. What is considered a good certificate?

  • Easy to check
    • Verifying algorithm which can check a YES answer and a certificate in poly(l)
  • Not too long: [$poly(l)$]

Verifier Algorithm

Verifier algorithm is one that takes an instance l\in L and a certificate c(l) and says yes if the certificate proves that l is a true instance and false otherwise.

V is a poly-time verifier for L is it is a verifier and runs in poly(|l|,|c|) time. (c=poly(l))

  • The runtime must be polynomial
  • Must check every problem constraint
  • Not always trivial

Class NP

NP: A class of decision problems such that exists a certificate schema c and a verifier algorithm V such that:

  1. certificate is poly(l) in size.
  2. V:poly(l) in time.

P: is a class of problems that you can solve in polynomial time

NP: is a class of problems that you can verify TRUE instances in polynomial time given a poly-size certificate

Millennium question

P\subseteq NP? NP\subseteq P?

P\subseteq NP is true.

Proof: Let L be a problem in P, we want to show that there is a polynomial size certificate with a poly-time verifier.

There is an algorithm A which solves L in polynomial time.

Certificate: empty thing.

Verifier: (l,c)

  1. Discard c.
  2. Run A on l and return the answer.

Nobody knows the solution NP\subseteq P. Sad.

Class of problem: NP complete

Informally: hardest problem in NP

Consider a problem L.

  • We want to show if L\subseteq P, then NP\subseteq P

NP-hard: A decision problem L is NP-hard if for any problem K\in NP, K\leq_p L.

L is at least as hard as all the problems in NP. If we have an algorithm for L, we have an algorithm for any problem in NP with only polynomial time extra cost.

MindMap:

K\implies L\implies sol(L)\implies sol(K)

Lemma P=NP

Let L be an NP-hard problem. If L\in P, then P=NP.

Proof:

Say L has a poly-time solution, some problem K in NP.

For any K\in NP, NP\subset P, P\subset NP, then P=NP.

NP-complete: L is NP-complete if it is both NP-hard and L\in NP.

NP-optimization: L is NP-optimization problem if the canonical decision problem is NP-complete.

Claim: If any NP-optimization problem have polynomial-time solution, then P=NP.

Is P=NP?

  • Answering this problem is hard.
  • But for any NP-complete problem, if you could find a poly-time algorithm for L, then you would have answered this question.
  • Therefore, finding a poly-time algorithm for L is hard.

NP-Complete problem

Satisfiability (SAT)

Boolean Formulas:

A set of Boolean variables:

x,y,a,b,c,w,z,... they take values true or false.

A boolean formula is a formula of Boolean variables with and, or and not.

Examples:

\phi:x\land (\neg y \lor z)\land\neg(y\lor w)

x=1,y=0,z=1,w=0, the formula is 1.

SAT: given a formula \phi, is there a setting M of variables such that the \phi evaluates to True under this setting.

If there is such assignment, then \phi is satisfiable. Otherwise, it is not.

Example: x\land y\land \neg(x\lor y) is not satisfiable.

A seminar paper by Cook and Levin in 1970 showed that SAT is NP-complete.

  1. SAT is in NP
    Proof:
    \exists a certificate schema and a poly-time verifier.
    c satisfying assignment M and v check that M makes \phi true.
  2. SAT is NP-hard. we can just accept it has a fact.

How to show a problem is NP-complete?

Say we have a problem L.

  1. Show that L\in NP.
    Exists certificate schema and verification algorithm in polynomial time.
  2. Prove that we can reduce SAT to L. SAT\leq_p L (NOT L\leq_p SAT) Solving L also solve SAT.

CNF-SAT

CNF: Conjugate normal form of SAT

The formula \phi must be an "and of ors"


\phi=\land_{i=1}^n(\lor^{m_i}_{j=1}l_{i,j})

l_{i,j}: clause

3-CNF-SAT

3-CNF-SAT: where every clauses has exactly 3 literals.

is NP complete [not all version of them are, 2-CNF-SAT is in P]

Input: 3-CNF expression with n variables and m clauses in the form:

number of total literals: 3m

Output: An assignment of the n variables such that at least one literal from each clauses evaluates to true.

Note:

  1. One variable can be used to satisfy multiple clauses.
  2. x_i and \neg x_i cannot both evaluate to true.

Example: ISET is NP-complete.

Proof:

Say we have a problem L

  1. Show that ISET\in NP
    Certificate: set of k vertices: $|S|=k\in poly(g)$
    Verifier: checks that there are no edges between them O(E k^2)
  2. ISET is NP-hard. We need to prove 3SAT\leq_p ISET
    • Construct a reduction from 3SAT to ISET.
    • Show that ISET is harder than 3SAT.

We need to prove \phi\in 3SAT is satisfiable if and only if the constructed G has an ISET of size \geq k=m

Reduction mapping construction

We construct an ISET instance from 3-SAT.

Suppose the formula has n variables and m clauses

  1. for each clause, we construct vertex for each literal and connect them (for x\lor \neg y\lor z, we connect x,\neg y,z together)
  2. then we connect all the literals with their negations (connects x and \neg x)

\implies

If \phi has a satisfiable assignment, then G has an independent set of size \geq m,

For a set S we pick exactly one true literal from every clause and take the corresponding vertex to that clause, |S|=m

Must also argue that S is an independent set.

Example: picked a set of vertices |S|=4.

A literal has edges:

  • To all literals in the same clause: We never pick two literals form the same clause.
  • To its negation.

Since it is a satisfiable 3-SAT assignment, x and \neg x cannot both evaluate to true, those edges are not a problem, so S is an independent set.

\impliedby

If G has an independent set of size \geq m, then \phi is satisfiable.

Say that S is an independent set of m, we need to construct a satisfiable assignment for the original \phi.

  • If S contains a vertex corresponding to literal x_i, then set x_i to true.
  • If contains a vertex corresponding to literal \neg x_i, then set x_i to false.
  • Other variables can be set arbitrarily

Question: Is it a valid 3-SAT assignment?

Your ISET S can contain at most 1 vertex from each clause. Since vertices in a clause are connected by edges.

  • Since S contains m vertices, it must contain exactly 1 vertex from each clause.
  • Therefore, we will make at least 1 literals form each clause to be true.
  • Therefore, all the clauses are true and \phi is satisfied.

Conclusion: NP-completeness

  • Prove NP-Complete:
    • If NP-optimization, convert to canonical decision problem
    • Certificate, Verification algorithm
    • Prove NP-hard: reduce from existing NP-Complete problems
  • 3-SAT Problem:
    • Input, output, constraints
    • A well-known NP-Complete problem
    • Reduce from 3-SAT to ISET to show ISET is NP-Complete

On class

NP-complete

p\in NP, if we have a certificate schema and a verifier algorithm.

NP-complete proof

P is in NP

what a certificate would looks like, show that if has a polynomial time o the problem size.

design a verifier algorithm that checks a certificate if it indeed prove tha the answer is YES and has a polynomial time complexity. Inputs: certificate and the problem input poly(|l|,|c|)=poly(|p|)

P is NP hard

select an already known NP-hard problem: eg. 3-SAT, ISET, VC,...

show that 3-SAT\leq_p p

  • present an algorithm that given any instance of 3-SAT (on the chosen NP hard problem) to an instance of p.
  • show that the construction is done in polynomial time.
  • show that if $p$'s instance answer is YES, then the instance of 3-SAT is YES.
  • show that if 3-SAT's instance answer is YES then the instance of p is YES.