{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

# 27-lowerbounds - Algorithms Lecture 27 Lower Bounds[Sp'10...

This preview shows pages 1–2. Sign up to view the full content.

Algorithms Lecture 27: Lower Bounds [ Sp’10 ] It was a Game called Yes and No, where Scrooge’s nephew had to think of something, and the rest must find out what; he only answering to their questions yes or no, as the case was. The brisk fire of questioning to which he was exposed, elicited from him that he was thinking of an animal, a live animal, rather a disagreeable animal, a savage animal, an animal that growled and grunted sometimes, and talked sometimes, and lived in London, and walked about the streets, and wasn’t made a show of, and wasn’t led by anybody, and didn’t live in a menagerie, and was never killed in a market, and was not a horse, or an ass, or a cow, or a bull, or a tiger, or a dog, or a pig, or a cat, or a bear. At every fresh question that was put to him, this nephew burst into a fresh roar of laughter; and was so inexpressibly tickled, that he was obliged to get up off the sofa and stamp. At last the plump sister, falling into a similar state, cried out : “ I have found it out ! I know what it is, Fred ! I know what it is !” “ What is it ?” cried Fred. “ It’s your Uncle Scro-o-o-o-oge !” Which it certainly was. Admiration was the universal sentiment, though some objected that the reply to “ Is it a bear?” ought to have been “Yes;" inasmuch as an answer in the negative was sufficient to have diverted their thoughts from Mr Scrooge, supposing they had ever had any tendency that way. — Charles Dickens, A Christmas Carol (1843) 27 Lower Bounds 27.1 Huh? Whuzzat? So far in this class we’ve been developing algorithms and data structures to solve certain problems as quickly as possible. Starting with this lecture, we’ll turn the tables, by proving that certain problems cannot be solved as quickly as we might like them to be. Let T A ( X ) denote the running time of algorithm A given input X . For most of the semester, we’ve been concerned with the the worst-case running time of A as a function of the input size: T A ( n ) : = max | X | = n T A ( X ) . The worst-case complexity of a problem Π is the worst-case running time of the fastest algorithm for solving it: T Π ( n ) : = min A solves Π T A ( n ) = min A solves Π max | X | = n T A ( X ) . Any algorithm A that solves Π immediately implies an upper bound on the complexity of Π ; the inequality T Π ( n ) T A ( n ) follows directly from the definition of T Π . Just as obviously, faster algorithms give us better (smaller) upper bounds. In other words, whenever we give a running time for an algorithm, what we’re really doing—and what most computer scientists devote their entire careers doing 1 —is bragging about how easy some problem is. Now, instead of bragging about how easy problems are, we will argue that certain problems are hard , by proving lower bounds on their complexity. This is considerably harder than proving an upper bound, because it’s no longer enough to examine a single algorithm. To prove an inequality of the form 1 This sometimes leads to long sequences of results that sound like an obscure version of “Name that Tune”:

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

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}