16 - Dealing with hard problems - Problem classes P & NP

16 - Dealing with hard problems - Problem classes P...

Info iconThis preview shows pages 1–10. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the 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: divide-and-conquer, dynamic-programming, greedy-algorithms. 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 polynomial-time 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 no-efficient algorithm exists. I couldn’t find a polynomial-time 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 non-existence of something? We will now learn about NP-Complete 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 NP-complete problems has an efficient solution then all of the NP-complete problems have efficient solutions Researchers have spent innumerable man-years trying to find efficient solutions to these problems and failed. So, NP-Complete problems are very likely to be hard. What do you do: prove that your problem is NP-Complete. 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 polynomial-time 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 NP-completeness and show how to prove that a problem is NP-complete. Time permitting, we will also discuss what can you do for a NP-complete 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

Page1 / 57

16 - Dealing with hard problems - Problem classes P...

This preview shows document pages 1 - 10. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online