This preview shows pages 1–10. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Part VI: Dealing with Hard Problems Lecture 16: Problem Classes P & NP Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI So far: techniques for designing efficient algorithms: divideandconquer, dynamicprogramming, greedyalgorithms. What happens if you can’t find an efficient algorithm for a given problem? Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI Blame yourself. I couldn’t find a polynomialtime algorithm; I guess I’m too dumb. Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI Show that noefficient algorithm exists. I couldn’t find a polynomialtime algorithm, because no such algorithm exists! Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI Showing that a problem has an efficient algorithm is, relatively, easy. “All’ that is needed is to demonstrate an algorithm. Proving that no efficient algorithm exists for a particular problem is difficult. Question How can we prove the nonexistence of something? We will now learn about NPComplete Problems, which provide us with a way to approach this question. Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI A very large class of thousands of practical problems for which it is not known if the problems have “efficient” solutions It is known that if any one of the NPcomplete problems has an efficient solution then all of the NPcomplete problems have efficient solutions Researchers have spent innumerable manyears trying to find efficient solutions to these problems and failed. So, NPComplete problems are very likely to be hard. What do you do: prove that your problem is NPComplete. Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI What do you actually do: I couldn’t find a polynomialtime algorithm, but neither could all these other smart people! Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Introduction to Part VI Lecture 15: Introduce the concepts that will permit us to discuss whether a problem is ‘hard’ or ‘easy’. Lecture 16: Introduce NPcompleteness and show how to prove that a problem is NPcomplete. Time permitting, we will also discuss what can you do for a NPcomplete problem (approximate algorithms). Reference : Chapter 34 of CLRS Lecture 16: Problem Classes P & NP Part VI: Dealing with Hard Problems Outline of Lecture 15 Objective: Introduce the concepts that will permit us to discuss whether a problem is ‘hard’ or ‘easy’. Input size of a problem. Optimization problems vs decision problems....
View Full
Document
 Spring '07
 ARYA
 Algorithms

Click to edit the document details