Discrete Optimization MA2827 Fondements de l’optimisation discrète https://project.inria.fr/2015ma2827/ Material from M. Pawan Kumar, E. Demaine.

Slides:



Advertisements
Similar presentations
1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
Advertisements

NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Concept of Completeness and hardness for a complexity class Definition.
Complexity class NP Is the class of languages that can be verified by a polynomial-time algorithm. L = { x in {0,1}* | there exists a certificate y with.
The Theory of NP-Completeness
1 NP-Complete Problems. 2 We discuss some hard problems:  how hard? (computational complexity)  what makes them hard?  any solutions? Definitions 
Complexity 11-1 Complexity Andrei Bulatov NP-Completeness.
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Definition of complexity class NP –Nondeterministic computation –Problems.
Transitivity of  poly Theorem: Let ,  ’, and  ’’ be three decision problems such that   poly  ’ and  ’  poly  ’’. Then  poly  ’’. Proof:
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
The Theory of NP-Completeness
NP-Complete Problems Problems in Computer Science are classified into
NP-complete and NP-hard problems
Analysis of Algorithms CS 477/677
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Chapter 11: Limitations of Algorithmic Power
Toward NP-Completeness: Introduction Almost all the algorithms we studies so far were bounded by some polynomial in the size of the input, so we call them.
Complexity Issues Mark Allen Weiss: Data Structures and Algorithm Analysis in Java Lydia Sinapova, Simpson College.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
P, NP, and NP-Complete Suzan Köknar-Tezel.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
The Theory of NP-Completeness 1. What is NP-completeness? Consider the circuit satisfiability problem Difficult to answer the decision problem in polynomial.
Polyhedral Optimization Lecture 1 – Part 2 M. Pawan Kumar Slides available online
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
Prabhas Chongstitvatana1 NP-complete proofs The circuit satisfiability proof of NP- completeness relies on a direct proof that L  p CIRCUIT-SAT for every.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
CSC401 – Analysis of Algorithms Chapter 13 NP-Completeness Objectives: Introduce the definitions of P and NP problems Introduce the definitions of NP-hard.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
Unit 9: Coping with NP-Completeness
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
1 Chapter 34: NP-Completeness. 2 About this Tutorial What is NP ? How to check if a problem is in NP ? Cook-Levin Theorem Showing one of the most difficult.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
Design and Analysis of Algorithms - Chapter 101 Our old list of problems b Sorting b Searching b Shortest paths in a graph b Minimum spanning tree b Primality.
1.1 Chapter 3: Proving NP-completeness Results Six Basic NP-Complete Problems Some Techniques for Proving NP-Completeness Some Suggested Exercises.
NP-Completeness (Nondeterministic Polynomial Completeness) Sushanth Sivaram Vallath & Z. Joseph.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
CSE 589 Part V One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important. Bertrand Russell.
Discrete Optimization Lecture 6 – Part 2 M. Pawan Kumar
Fundamentals of Informatics Lecture 14 Intractability and NP-completeness Bas Luttik.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
Discrete Optimization Lecture 4 M. Pawan Kumar
NP-Completness Turing Machine. Hard problems There are many many important problems for which no polynomial algorithms is known. We show that a polynomial-time.
Discrete Optimization Lecture 4 – Part 1 M. Pawan Kumar
NP-completeness NP-complete problems. Homework Vertex Cover Instance. A graph G and an integer k. Question. Is there a vertex cover of cardinality k?
NPC.
CSC 413/513: Intro to Algorithms
1 Ch 10 - NP-completeness Tractable and intractable problems Decision/Optimization problems Deterministic/NonDeterministic algorithms Classes P and NP.
Discrete Optimization Lecture 6 – Part 1 M. Pawan Kumar
1 CPSC 320: Intermediate Algorithm Design and Analysis July 30, 2014.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
COSC 3101A - Design and Analysis of Algorithms 14 NP-Completeness.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
More NP-Complete and NP-hard Problems
Chapter 10 NP-Complete Problems.
Richard Anderson Lectures NP-Completeness
Richard Anderson Lecture 26 NP-Completeness
Discrete Optimization
Richard Anderson Lecture 26 NP-Completeness
NP-Completeness Yin Tat Lee
ICS 353: Design and Analysis of Algorithms
Richard Anderson Lecture 25 NP-Completeness
Chapter 34: NP-Completeness
NP-Complete Problems.
Prabhas Chongstitvatana
NP-Completeness Yin Tat Lee
Richard Anderson Lecture 25 NP Completeness
Presentation transcript:

Discrete Optimization MA2827 Fondements de l’optimisation discrète Material from M. Pawan Kumar, E. Demaine

Outline Preliminaries – Random Access Machine (RAM) – Polynomial-time Algorithm – Decision Problems P, NP, and NP-Complete Problems

Given an array f with elements = 0,1 strings RAM executes a set of instructions Each instruction can – Read entries from prescribed positions – Perform arithmetic operation on read entries – Write answers to prescribed positions Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Instructions numbered 0, 1, …, t Variable z 0 stores the instruction to execute Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Instructions numbered 0, 1, …, t Stop if z 0 > t Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Read instruction – z i := f(z j ) Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Write instruction – f(z i ) := z j Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Add instruction – z i := z j + z k Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Subtract instruction – z i := z j - z k Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Multiply instruction – z i := z j z k Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Divide instruction – z i := z j / z k Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Increment instruction – z i := z i + 1 Random Access Machine

Given an array f with elements = 0,1 strings Finite set of variables z 0, z 1, …, z k Initially, z i = 0 and f contains input Binarize instruction – z i := 1, if z i > 0 – z i := 0, otherwise Random Access Machine

z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 0 z 2 = 0 z 3 = 0 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 0 z 2 = 10 z 3 = 0 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 0 z 2 = 10 z 3 = 0 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 0 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 0 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 3 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 3 z 4 = 0

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 3 z 4 = 13

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 1 z 2 = 10 z 3 = 3 z 4 = 13

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 2 z 2 = 10 z 3 = 3 z 4 = 13

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 2 z 2 = 10 z 3 = 3 z 4 = 13

Random Access Machine z 2 := f(z 1 ) z 1 := z 1 +1 z 3 := f(z 1 ) z 4 := z 2 + z 3 z 1 := z 1 +1 f(z 1 ) := z Array f z 1 = 2 z 2 = 10 z 3 = 3 z 4 = 13

Outline Preliminaries – Random Access Machine (RAM) – Polynomial-time Algorithm – Decision Problems P, NP, and NP-Complete Problems

Input size = Number of bits b Polynomial time algorithm – Number of instructions = t – t is bounded by a polynomial in b – Good algorithm – Efficient algorithm Polynomial Time Algorithm

Preliminaries – Random Access Machine (RAM) – Polynomial-time Algorithm – Decision Problems (Answered by ‘yes’ or ‘no’) P, NP, and NP-Complete Problems Reduction Outline

Finite set Σ called alphabet of size ≥ 2 – {0,1} – {a,b,c,d,e,…,x,y,z} Set Σ* of all finite length strings (called words) – 0, 1, 00, 01, 10, 11, 000,…. – discrete, optimization Size of word size(w) = number of letters – size(00) = 2 – size(discrete) = 8 Decision Problem

Problem Π is a subset of Σ* – All words with the answer “yes” Informal problem – Given input word x  Σ*, does x  Π ? Polynomial-time solvable problem Π – There exists a polynomial-time algorithm for the informal problem – Polynomial in size(x) Decision Problem

Shortest Path v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 1 },{v 0,v 3 },{v 1,v 2 },{v 2,v 3 },{v 2,v 4 },{v 3,v 4 }}, {3,5,5,4,6,1}, v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 3,v 4,v 2 }  Σ*

Shortest Path v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 1 },{v 0,v 3 },{v 1,v 2 },{v 2,v 3 },{v 2,v 4 },{v 3,v 4 }}, {3,5,5,4,6,1}, v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 3,v 2 }  Σ*

Shortest Path v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 1 },{v 0,v 3 },{v 1,v 2 },{v 2,v 3 },{v 2,v 4 },{v 3,v 4 }}, {3,5,5,4,6,1}, v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 1,v 2 }  Σ*

Shortest Path v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 1 },{v 0,v 3 },{v 1,v 2 },{v 2,v 3 },{v 2,v 4 },{v 3,v 4 }}, {3,5,5,4,6,1}, v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 1,v 2 }  Π

Shortest Path v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 1 },{v 0,v 3 },{v 1,v 2 },{v 2,v 3 },{v 2,v 4 },{v 3,v 4 }}, {3,5,5,4,6,1}, v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 3,v 4 }  Π Given graph G and path P, is P a shortest path in G?

Hamiltonian Circuit v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v Circuit consisting of all vertices

Hamiltonian Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v Has a Hamiltonian Circuit ✔

Hamiltonian Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v Has a Hamiltonian Circuit ✖ Given graph G, is the graph Hamiltonian?

Hamiltonian Graph v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 3 },{v 1,v 3 },{v 2,v 1 },{v 3,v 0 },{v 3,v 4 },{v 4,v 2 }},  Σ*

Hamiltonian Graph v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 3 },{v 1,v 0 },{v 2,v 1 },{v 3,v 0 },{v 3,v 4 },{v 4,v 2 }},  Σ* v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v

Hamiltonian Graph v 0,v 1,v 2 … v n  Σ {  Σ 0,1,2, … N  Σ }  Σ,  Σ {v 0,v 1,v 2,v 3,v 4,v 5 }, {{v 0,v 3 },{v 1,v 0 },{v 2,v 1 },{v 3,v 0 },{v 3,v 4 },{v 4,v 2 }},  Π v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v4v4 v4v

Preliminaries P, NP, and NP-Complete Problems Outline

P Polynomial-time solvable problem Π – There exists a polynomial-time algorithm that decides whether x  Σ* belongs to Π or not. – Polynomial in size(x) P = {all Π, Π is polynomial time solvable} For example – Shortest path with +ve lengths  P – Shortest path with no –ve length circuit  P

NP Π  NP – There exists a problem Π’  P – There exists a polynomial p – There exists an x, size(x) ≤ p(size(w)) such that – w  Π if and only if wx  Π’ Polynomial-time checkable ‘certificate’ For example – Hamiltonian graph problem  NP

NP Relationship between P and NP? P is a subset of NP – “P = NP or not” is an open problem – One of Clay Institute’s Millennium Prize problems For example – Shortest path with +ve lengths  NP – Shortest path with no –ve length circuit  NP

NP-Complete Hardest problems in NP – All problems in NP can be reduced to an NP-complete problem Π is reducible to Λ – There exists a polynomial time algorithm – Given w, returns x – w  Π if and only if x  Λ If Λ  P then Π  P

NP-Complete Hardest problems in NP – All problems in NP can be reduced to an NP-complete problem Π is reducible to Λ – There exists a polynomial time algorithm – Given w, returns x – w  Π if and only if x  Λ If Λ  NP then Π  NP

NP-Complete Hardest problems in NP – All problems in NP can be reduced to an NP-complete problem Π is reducible to Λ – There exists a polynomial time algorithm – Given w, returns x – w  Π if and only if x  Λ If Λ  NP-complete and Λ  P, then P = NP

Image Courtesy of E. Demaine P, NP, EXP, etc.

Outline Reduction – “SAT” is reducible to “3-SAT” – “3-SAT” is reducible to “Partition” – “Partition” is reducible to “Hamiltonian Path” NP-hard Problems NP-completeness of SAT

Alphabet Σ containing variables x 1,x 2,…,x n And special symbols (, ), ∧, ∨,~ And not containing 0 and 1 A variable is a Boolean expression Boolean Expression

Alphabet Σ containing variables x 1,x 2,…,x n And special symbols (, ), ∧, ∨,~ And not containing 0 and 1 If v and w are Boolean expressions then – (v ∧ w) is a Boolean expression Boolean Expression

Alphabet Σ containing variables x 1,x 2,…,x n And special symbols (, ), ∧, ∨,~ And not containing 0 and 1 If v and w are Boolean expressions then – (v ∨ w) is a Boolean expression Boolean Expression

Alphabet Σ containing variables x 1,x 2,…,x n And special symbols (, ), ∧, ∨,~ And not containing 0 and 1 If v and w are Boolean expressions then – ~v is a Boolean expression – ~w is a Boolean expression Boolean Expression

Alphabet Σ containing variables x 1,x 2,…,x n And special symbols (, ), ∧, ∨,~ And not containing 0 and 1 For example, f(x 1,x 2,…,x n ) – ((x 2 ∧ x 3 ) ∨ ~(x 3 ∨ x 5 ) ∧ x 2 ) ∨ ~(x 2 ∧ x 5 ) – ~(~x 2 ∨ ~x 3 ) ∧ ~x 1 Boolean Expression

f(x 1,x 2,…,x n ) is satisfiable if – there exists an assignment x 1 = α 1, …, x n = α n – where α i  {0,1} – such that f(x 1,x 2,…,x n ) = 1 The following identities hold – 0 ∧ 0 = 0, 0 ∧ 1 = 0, 1 ∧ 0 = 0, 1 ∧ 1 = 1 – 0 ∨ 0 = 0, 0 ∨ 1 = 1, 1 ∨ 0 = 1, 1 ∨ 1 = 1 – ~0 = 1, ~1 = 0 – (0) = 0, (1) = 1 Satisfiability

Given the alphabet Σ Given the identities for 0 and 1 SAT is a subset of Σ* that is satisfiable Informal Problem – Given a Boolean expression w, is w satisfiable SAT

A special case of SAT Given variables x 1,x 2,…,x n  Σ – B 1 consists of x 1,~x 1,…,x n,~x n – B 2 consists of (w 1 ∨ … ∨ w k ), w i  B 1, 1≤k≤3 – B 3 consists of w 1 ∧ w 2 ∧ … ∧ w m, w i  B 2 – e.g., (x 1 ∨ ~x 2 ∨ x 3 ) ∧ (x 2 ∨ ~x 3 ∨ x 4 ) ∧ (~x 1 ∨ ~x 2 ) 3-SAT is the subset of B 3 that is satisfiable 3-SAT

x 1 = x 2 ∨ x 3 – (x 1 ∨ ~x 2 ) ∧ (x 1 ∨ ~x 3 ) ∧ (~x 1 ∨ x 2 ∨ x 3 ) x 1 = x 2 ∧ x 3 – (~x 1 ∨ x 2 ) ∧ (~x 1 ∨ x 3 ) ∧ (x 1 ∨ ~x 2 ∨ ~x 3 ) x 1 = ~x 2 – (x 1 ∨ x 2 ) ∧ (~x 1 ∨ ~x 2 ) SAT is reducible to 3-SAT

Example on the board (x 1 ∧ x 2 ) ∨ ~((~x 1 ∨ x 3 ) ∧ x 4 ∧ ~x 5 ) ∧ ~x 2 (Using new variables + truth table) SAT is reducible to 3-SAT

Outline Reduction – “SAT” is reducible to “3-SAT” – “3-SAT” is reducible to “Partition” – “Partition” is reducible to “Hamiltonian Path” NP-hard Problems NP-completeness of SAT

A special case of SAT Given variables x 1,x 2,…,x n  Σ – B 1 consists of x 1,~x 1,…,x n,~x n – B 2 consists of (w 1 ∨ … ∨ w k ), w i  B 1, 1≤k≤3 – B 3 consists of w 1 ∧ w 2 ∧ … ∧ w m, w i  B 2 – e.g., (x 1 ∨ ~x 2 ∨ x 3 ) ∧ (x 2 ∨ ~x 3 ∨ x 4 ) ∧ (~x 1 ∨ ~x 2 ) 3-SAT is the subset of B 3 that is satisfiable 3-SAT

A finite set X Partition of X is a collection of subsets – Mutually exclusive – Collectively exhaustive For example, X = {a,b,c,d,e,f} – {{a,b},{c},{d,e,f}} is a partition – {{a,b},{a,c},{d,e,f}} is not a partition – {{a,b},{c},{d,e}} is not a partition Partition

A finite set X Partition of X is a collection of subsets – Mutually exclusive – Collectively exhaustive Problem: Given collection of subsets C – Does C contain a partition of X? – Or not? Partition

f = w 1 ∧ w 2 ∧ … w m Bipartite undirected graph with V = V 1 U V 2 – V 1 are variables x 1,x 2,…,x n – V 2 are words w 1,w 2,…,w m Edges E = E 1 U E 2 – E 1 = {(w i,x j )}, x j  w i – E 2 = {(w i,x j )}, ~x j  w i 3-SAT is reducible to Partition

Collection C 1 of sets {w i } U E i – E i is non-empty – E i is a subset of edge set incident with w i Collection C 2 of sets {x j } U E j and {x j } U E’ j – E j is the set of all edges in E 1 incident with x j – E’ j is the set of all edges in E 2 incident with x j f is satisfiable iff C 1 U C 2 contains a partition 3-SAT is reducible to Partition

Outline Reduction – “SAT” is reducible to “3-SAT” (review) – “3-SAT” is reducible to “Partition” – “Partition” is reducible to “Hamiltonian Path” NP-hard Problems NP-completeness of SAT

A finite set X Partition of X is a collection of subsets – Mutually exclusive – Collectively exhaustive Problem: Given collection of subsets C – Does C contain a partition of X? – Or not? Partition

Digraph D = (V, A) Path P is Hamiltonian if – It traverses each vertex in V – All vertices in the path are distinct Problem: Given D – Does it contain a Hamiltonian Path? – Or not? Hamiltonian Path Connection to Shortest Path?

Partition Problem: Set X, Collection C – X = {1,2,…,k} – C = {C 1,C 2,…,C m } Let C i = {j 1,…,j t } Partition is reducible to Hamiltonian Introduce r 0 and s 0. Connect r m to s 0.

Partition Problem: Set X, Collection C – X = {1,2,…,k} – C = {C 1,C 2,…,C m } Let C i = {j 1,…,j t } Partition is reducible to Hamiltonian C has a partition iff G has Hamiltonian r 0 -s k path

Partition Problem: Set X, Collection C – X = {1,2,…,k} – C = {C 1,C 2,…,C m } Let C i = {j 1,…,j t } Partition is reducible to Hamiltonian Left as Exercise !!

Outline Reduction NP-hard Problems NP-completeness of SAT

NP-hard Need not be in NP – No polynomial-time checkable certificate – Not even a decision problem (e.g. optimization) At least as hard as NP-complete problems Λ  NP-hard – There exists Π  NP-complete – Π is reducible to Λ

NP-hard Image Courtesy of Wikipedia

Examples of NP-complete problems 3-Partition: given n integers, can you divide them into triples of equal sum? Travelling salesman problem Tetris Minesweeper, Sudoku SAT Knapsack (pseudopoly, not poly) …

Outline Reduction NP-hard Problems NP-completeness of SAT (todo)