SlideShare a Scribd company logo
Lecture 22:
The NP-Completeness Challenge
         Steven Skiena

Department of Computer Science
 State University of New York
 Stony Brook, NY 11794–4400

http://www.cs.sunysb.edu/∼skiena
Problem of the Day
Show that the Hitting Set problem is NP-complete:
Input: A collection C of subsets of a set S, positive integer k.
Question: Does S contain a subset S such that |S | ≤ k and
each subset in C contains at least one element from S ?
Techniques for Proving N P -completeness

1. Restriction – Show that a special case of your problem
   is N P -complete. E.g. the problem of finding a path of
   length k is really Hamiltonian Path.
2. Local Replacement – Make local changes to the structure.
   An example is the reduction SAT ∝ 3 − SAT . Another
   is showing isomorphism is no easier for bipartite graphs:




  For any graph, replacing an edge with makes it bipartite.
3. Component Design - These are the ugly, elaborate
   constructions
The Art of Proving Hardness
Proving that problems are hard is an skill. Once you get the
hang of it, it is surprisingly straightforward and pleasurable to
do. Indeed, the dirty little secret of NP-completeness proofs
is that they are usually easier to recreate than explain, in the
same way that it is usually easier to rewrite old code than the
try to understand it.
I offer the following advice to those needing to prove the
hardness of a given problem:
Make your source problem as simple (i.e.
restricted) as possible
Never use the general traveling salesman problem (TSP) as a
target problem. Instead, use TSP on instances restricted to the
triangle inequality. Better, use Hamiltonian cycle, i.e. where
all the weights are 1 or ∞. Even better, use Hamiltonian
path instead of cycle. Best of all, use Hamiltonian path on
directed, planar graphs where each vertex has total degree 3.
All of these problems are equally hard, and the more you
can restrict the problem you are reducing, the less work your
reduction has to do.
Make your target problem as hard as possible
Don’t be afraid to add extra constraints or weights or
freedoms in order to make your problem more general (at
least temporarily).
Select the right source problem for the right
reason
Selecting the right source problem makes a big difference is
how difficult it is to prove a problem hard. This is the first
and easiest place to go wrong.
I usually consider four and only four problems as candidates
for my hard source problem. Limiting them to four means
that I know a lot about these problems – which variants of
these problems are hard and which are soft. My favorites are:
 • 3-Sat – that old reliable. . . When none of the three
   problems below seem appropriate, I go back to the source.
 • Integer partition – the one and only choice for problems
   whose hardness seems to require using large numbers.
• Vertex cover – for any graph problems whose hardness
  depends upon selection. Chromatic number, clique, and
  independent set all involve trying to select the correct
  subset of vertices or edges.
• Hamiltonian path – for any graph problems whose
  hardness depends upon ordering. If you are trying to route
  or schedule something, this is likely your lever.
Amplify the penalties for making the undesired
transition
You are trying to translate one problem into another, while
making them stay the same as much as possible. The easiest
way to do this is to be bold with your penalties, to punish
anyone trying to deviate from your proposed solution. “If
you pick this, then you have to pick up this huge set which
dooms you to lose.” The sharper the consequences for doing
what is undesired, the easier it is to prove if and only if.
Think strategically at a high level, then build
gadgets to enforce tactics.
You should be asking these kinds of questions. “How can I
force that either A or B but not both are chosen?” “How can
I force that A is taken before B?” “How can I clean up the
things I did not select?”
Alternate between looking for an algorithm or
a reduction if you get stuck
Sometimes the reason you cannot prove hardness is that there
is an efficient algorithm to solve your problem! When you
can’t prove hardness, it likely pays to change your thinking at
least for a little while to keep you honest.
Now watch me try it!
To demonstrate how one goes about proving a problem hard,
I accept the challenge of showing how a proof can be built on
the fly.
I need a volunteer to pick a random problem from the 400+
hard problems in the back of Garey and Johnson.
The Problem
The Solution
Other N P -complete Problems

 • Partition - can you partition n integers into two subsets so
   that the sums of the subset are equal?
 • Bin Packing - how many bins of a given size do you need
   to hold n items of variable size?
 • Chromatic Number - how many colors do you need to
   color a graph?
 • N × N checkers - does black have a forced win from a
   given position?
Open: Graph Isomorphism, Factoring Integers.
Polynomial or Exponential?
Just changing a problem a little can make the difference
between it being in P or N P -complete:

           P                     N P -complete
           Shortest Path          Longest Path
           Eulerian Circuit Hamiltonian Circuit
           Edge Cover             Vertex Cover

The first thing you should do when you suspect a problem
might be NP-complete is look in Garey and Johnson,
Computers and Intractability.

More Related Content

PPTX
4th grade multi.div word problems and fractions pd
PPTX
3rd grade word problems and fractions pd
PPTX
Tsp is NP-Complete
PPTX
Np completeness
PPTX
Ads unit 3 ppt
PDF
P-Systems for approximating NP-Complete optimization problems
DOCX
Ca notes
PDF
NP Complete Problems in Graph Theory
4th grade multi.div word problems and fractions pd
3rd grade word problems and fractions pd
Tsp is NP-Complete
Np completeness
Ads unit 3 ppt
P-Systems for approximating NP-Complete optimization problems
Ca notes
NP Complete Problems in Graph Theory

Viewers also liked (15)

PPTX
P vs NP
PPTX
Np completeness-Design and Analysis of Algorithms
PDF
Unit7
PPT
lecture 27
PDF
Algorithm chapter 10
PPTX
An Education
PPT
Np cooks theorem
PPT
Np completeness h4
PPTX
np complete
PPTX
University timetable scheduling
PPT
Introduction to NP Completeness
PPT
PPTX
Vertex cover Problem
PPTX
NP completeness
PDF
Time Table Management System
P vs NP
Np completeness-Design and Analysis of Algorithms
Unit7
lecture 27
Algorithm chapter 10
An Education
Np cooks theorem
Np completeness h4
np complete
University timetable scheduling
Introduction to NP Completeness
Vertex cover Problem
NP completeness
Time Table Management System
Ad

Similar to Skiena algorithm 2007 lecture22 np completeness challenge (20)

PPTX
bcfbedbf-6679-4d5d-b8a5-7d4c9c48dba4.pptx
PPTX
DynamicProgramming.pptx
PPTX
it is a ppt discussing important topic of daa such as branch and bound.pptx
PPTX
Undecidable Problems and Approximation Algorithms
PDF
unit 4 of Unit 4 of design and analysis of algorithms
PPT
Knapsack problem using fixed tuple
PDF
Data Analysis and Algorithms Lecture 1: Introduction
PDF
Introduction to Support Vector Machines
PPT
Greedy_Backtracking graph coloring.ppt
PPTX
Introduction to dynamic programming
PDF
26 assumptions
PPTX
Data structure and algorithms lecture22 presentation
PPTX
04-Unit Four - OR.pptx
PPTX
811109685-CS3401-Algorithms-Unit-IV.pptx
PPTX
Undecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWER
PPT
NC-NETS Employability Skills: Problem Solving
PPTX
Backtracking algorithm with examples N-queens
PPT
bcfbedbf-6679-4d5d-b8a5-7d4c9c48dba4.pptx
DynamicProgramming.pptx
it is a ppt discussing important topic of daa such as branch and bound.pptx
Undecidable Problems and Approximation Algorithms
unit 4 of Unit 4 of design and analysis of algorithms
Knapsack problem using fixed tuple
Data Analysis and Algorithms Lecture 1: Introduction
Introduction to Support Vector Machines
Greedy_Backtracking graph coloring.ppt
Introduction to dynamic programming
26 assumptions
Data structure and algorithms lecture22 presentation
04-Unit Four - OR.pptx
811109685-CS3401-Algorithms-Unit-IV.pptx
Undecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWER
NC-NETS Employability Skills: Problem Solving
Backtracking algorithm with examples N-queens
Ad

More from zukun (20)

PDF
My lyn tutorial 2009
PDF
ETHZ CV2012: Tutorial openCV
PDF
ETHZ CV2012: Information
PDF
Siwei lyu: natural image statistics
PDF
Lecture9 camera calibration
PDF
Brunelli 2008: template matching techniques in computer vision
PDF
Modern features-part-4-evaluation
PDF
Modern features-part-3-software
PDF
Modern features-part-2-descriptors
PDF
Modern features-part-1-detectors
PDF
Modern features-part-0-intro
PDF
Lecture 02 internet video search
PDF
Lecture 01 internet video search
PDF
Lecture 03 internet video search
PDF
Icml2012 tutorial representation_learning
PPT
Advances in discrete energy minimisation for computer vision
PDF
Gephi tutorial: quick start
PDF
EM algorithm and its application in probabilistic latent semantic analysis
PDF
Object recognition with pictorial structures
PDF
Iccv2011 learning spatiotemporal graphs of human activities
My lyn tutorial 2009
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Information
Siwei lyu: natural image statistics
Lecture9 camera calibration
Brunelli 2008: template matching techniques in computer vision
Modern features-part-4-evaluation
Modern features-part-3-software
Modern features-part-2-descriptors
Modern features-part-1-detectors
Modern features-part-0-intro
Lecture 02 internet video search
Lecture 01 internet video search
Lecture 03 internet video search
Icml2012 tutorial representation_learning
Advances in discrete energy minimisation for computer vision
Gephi tutorial: quick start
EM algorithm and its application in probabilistic latent semantic analysis
Object recognition with pictorial structures
Iccv2011 learning spatiotemporal graphs of human activities

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Modernizing your data center with Dell and AMD
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Transforming Manufacturing operations through Intelligent Integrations
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
“AI and Expert System Decision Support & Business Intelligence Systems”
Mobile App Security Testing_ A Comprehensive Guide.pdf
KodekX | Application Modernization Development
NewMind AI Monthly Chronicles - July 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Modernizing your data center with Dell and AMD
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Transforming Manufacturing operations through Intelligent Integrations

Skiena algorithm 2007 lecture22 np completeness challenge

  • 1. Lecture 22: The NP-Completeness Challenge Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794–4400 http://www.cs.sunysb.edu/∼skiena
  • 2. Problem of the Day Show that the Hitting Set problem is NP-complete: Input: A collection C of subsets of a set S, positive integer k. Question: Does S contain a subset S such that |S | ≤ k and each subset in C contains at least one element from S ?
  • 3. Techniques for Proving N P -completeness 1. Restriction – Show that a special case of your problem is N P -complete. E.g. the problem of finding a path of length k is really Hamiltonian Path. 2. Local Replacement – Make local changes to the structure. An example is the reduction SAT ∝ 3 − SAT . Another is showing isomorphism is no easier for bipartite graphs: For any graph, replacing an edge with makes it bipartite.
  • 4. 3. Component Design - These are the ugly, elaborate constructions
  • 5. The Art of Proving Hardness Proving that problems are hard is an skill. Once you get the hang of it, it is surprisingly straightforward and pleasurable to do. Indeed, the dirty little secret of NP-completeness proofs is that they are usually easier to recreate than explain, in the same way that it is usually easier to rewrite old code than the try to understand it. I offer the following advice to those needing to prove the hardness of a given problem:
  • 6. Make your source problem as simple (i.e. restricted) as possible Never use the general traveling salesman problem (TSP) as a target problem. Instead, use TSP on instances restricted to the triangle inequality. Better, use Hamiltonian cycle, i.e. where all the weights are 1 or ∞. Even better, use Hamiltonian path instead of cycle. Best of all, use Hamiltonian path on directed, planar graphs where each vertex has total degree 3. All of these problems are equally hard, and the more you can restrict the problem you are reducing, the less work your reduction has to do.
  • 7. Make your target problem as hard as possible Don’t be afraid to add extra constraints or weights or freedoms in order to make your problem more general (at least temporarily).
  • 8. Select the right source problem for the right reason Selecting the right source problem makes a big difference is how difficult it is to prove a problem hard. This is the first and easiest place to go wrong. I usually consider four and only four problems as candidates for my hard source problem. Limiting them to four means that I know a lot about these problems – which variants of these problems are hard and which are soft. My favorites are: • 3-Sat – that old reliable. . . When none of the three problems below seem appropriate, I go back to the source. • Integer partition – the one and only choice for problems whose hardness seems to require using large numbers.
  • 9. • Vertex cover – for any graph problems whose hardness depends upon selection. Chromatic number, clique, and independent set all involve trying to select the correct subset of vertices or edges. • Hamiltonian path – for any graph problems whose hardness depends upon ordering. If you are trying to route or schedule something, this is likely your lever.
  • 10. Amplify the penalties for making the undesired transition You are trying to translate one problem into another, while making them stay the same as much as possible. The easiest way to do this is to be bold with your penalties, to punish anyone trying to deviate from your proposed solution. “If you pick this, then you have to pick up this huge set which dooms you to lose.” The sharper the consequences for doing what is undesired, the easier it is to prove if and only if.
  • 11. Think strategically at a high level, then build gadgets to enforce tactics. You should be asking these kinds of questions. “How can I force that either A or B but not both are chosen?” “How can I force that A is taken before B?” “How can I clean up the things I did not select?”
  • 12. Alternate between looking for an algorithm or a reduction if you get stuck Sometimes the reason you cannot prove hardness is that there is an efficient algorithm to solve your problem! When you can’t prove hardness, it likely pays to change your thinking at least for a little while to keep you honest.
  • 13. Now watch me try it! To demonstrate how one goes about proving a problem hard, I accept the challenge of showing how a proof can be built on the fly. I need a volunteer to pick a random problem from the 400+ hard problems in the back of Garey and Johnson.
  • 16. Other N P -complete Problems • Partition - can you partition n integers into two subsets so that the sums of the subset are equal? • Bin Packing - how many bins of a given size do you need to hold n items of variable size? • Chromatic Number - how many colors do you need to color a graph? • N × N checkers - does black have a forced win from a given position? Open: Graph Isomorphism, Factoring Integers.
  • 17. Polynomial or Exponential? Just changing a problem a little can make the difference between it being in P or N P -complete: P N P -complete Shortest Path Longest Path Eulerian Circuit Hamiltonian Circuit Edge Cover Vertex Cover The first thing you should do when you suspect a problem might be NP-complete is look in Garey and Johnson, Computers and Intractability.