Handout 13

Handout 13 - Mehran Sahami CS103B Handout #13 January 28,...

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

View Full Document Right Arrow Icon
Mehran Sahami Handout #13 CS103B January 28, 2009 Managing a Bestiary of Algorithms: Complexity Classes and NP-Completeness Thanks to Maggie Johnson for some portions of this handout. A Quick Introduction to NP-Completeness Imagine that you have decided to go on a skiing adventure across the Sierras. Since there are no McDonalds between Yosemite and Lee Vining, you will need to bring all your food with you in your pack (um, yes, did I forget to mention that you are backpacking across the Sierras?!). On this trip, taste is a secondary consideration. What matters is how much your food weighs and how many calories it contains. After raiding your kitchen (or your dorm dining hall), you discover that you have roughly 200 different food items. Each item has a certain weight and contains a certain number of calories: 1. Snickers Bar 200 calories 100 grams 2. Diet Coke 1 calorie 200 grams ... 200. Dry Spaghetti 500 calories 450 grams Given this selection of food, your task is to find the best subset that maximizes the number of calories, but falls within the weight limit you can carry in your pack (say 15kg). One algorithm that definitely produces a solution is to simply try every possible combination. Unfortunately, there are 2 200 such combinations, and the Sierras would erode away before that algorithm terminates. Always a bummer when that happens. Is there another algorithm that runs in reasonable time ( i.e ., a polynomial, as opposed to exponential, number of steps in the size of the input)? If there is, no one has found it yet. This might make you suspect that no polynomial time solution exists, but no one has ever been able to prove that either. This problem, known as the Knapsack Problem, is an example of a general class of problems called the NP-complete problems. These are problems for which no polynomial time solution currently exists, but it is unproven whether the problems necessarily require exponential time. In fact, there is currently a $1 million prize 1 for first person who can either find a polynomial time solution to an NP-complete problem, or prove that such a problem can only be solved with an exponential time algorithm. Sounds like something to consider as a summer project… Characterizing Function Growth Rates In studying algorithms, we have seen functions and big-Oh notation used to characterize the running time of algorithms. There are some important terms used to classify problems, based on 1 The “P vs. NP” problem is one of seven “Millennium Prize Problems” that have been named by The Clay Mathematics Institute (CMI) of Cambridge, Massachusetts as worthy of a $1 million prize. You may find more information about all seven Millennium Prize Problems at the web site: http://www.claymath.org/millennium/
Background image of page 1

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

View Full DocumentRight Arrow Icon
- 2 - the running time of the algorithms that solve those problems. First, we review the different categories of functions for big-Oh notation below. The big-Oh functions that involve n as an exponent (n! or 2
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 8

Handout 13 - Mehran Sahami CS103B Handout #13 January 28,...

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

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