Unformatted text preview: Asymptotic analysis Graph Terminology and Algorithms
– e.g. what is max flow NPcomplete problems and reductions Matrix algebra
– e.g. what is the nullspace of a matrix Probability 15853 Page 1 15853 Page 2 Readings
– Chapters, papers, coursenotes, web documents – There is NO course textbook Just about every field uses algorithms
– Engineering, Physical sciences, Social sciences – Business, Medicine – Probably used more widely than Calculus Assignments
– About 6 assignments – Help grade 1 assignment Midterm and Final
– Takehome The level of sophistication has increased significantly in recent years Asymptotics becoming more important
– Linear programming (interiorpoint methods) – Factoring (numberfield sieve) –… 15853 Page 3 15853 Page 4 1 What are the 10 most useful applications of algorithms in the “Real World” Work in groups of 2 or 3. You have 5 minutes. Do cities use interesting algorithms for trash collection? RouteSmart Does your mailman use sophisticated algorithms to pick his routes? GeoRoute Does your janitor select the order of rooms using sophisticated algorithms? Probably not 15853 Page 5 15853 Page 6 Cryptography Error Correcting Codes – ssh, RSA, Rijdael, kerberos, … – ReedSolomon, tornadocodes, CDs Or “why theory is only of limited use in the real world” Note: all the following are partially true, so to protect the innocent (and guilty) I will refrain from using names, sometimes. Computational Biology/String Matching Linear and Integer Programming Satisfiability Nearest Neighbor Searching
15853 – MED, Suffix Trees, BLAST, Genome sequencing – Interior point methods, airline crew scheduling, … Page 7 15853 Page 8 2 or, yes there is some averagecase analysis, but it is irrelevant also. I care about my problem instances. Many solutions are of this form, but 1. understanding worst case helps understand what the bad examples are 2. there has been significant work on considering bounds given certain restrictions on data distributions 3. there has been significant work on studying what fraction of cases are hard. Characterizing input classes or properties and analyzing algorithms for those inputs Any ideas for graphs? Any ideas for sorting? Any ideas for point distributions? 15853 Page 9 15853 Page 10 Yes the RAM is not a perfect model, but 1. there are many results using various enhancements to the model (IO, cache, streaming). If you care about more accurate costs, consider results for these models. 2. most results do not change qualitatively across models. P vs. NP translates across most models 3. many great ideas come from simplified models that are later translated to more sophisticated models
15853 Page 11 No, theory is about formalizing models. Consider 1. cryptography
• what does it mean to be hard to break? – what is a publickey cryptosystem? – what is a zeroknowledge proof? 2. learning theory 3. information theory 4. graph theory
15853 Page 12 3 Today’s irrelevant problem might be tomorrow’s multibilliondollar industry. I mean, who cares about factoring numbers, or about Galois Fields, or about expander graphs? Sometimes, but 1. solving simplified version is often a step on the way to solve the full version. 2. solving a simplified version can help understand why the full version is hard 15853 Page 13 15853 Page 14 Many important results do use bigo analysis, but 1. There are many results that use exact analysis, sometimes just in highestorder term, e.g. 7n + O(log n) 2. Often algorithms with large constant factors are later improved, sometimes with trivial modifications 3. Sometimes the large constant factor is just in the proof (perhaps to simplify it), and not in the real algorithm. From Numerical Recipes (Press et. al. 1986)
“We close the chapter with a little entertainment, a bit of algorithmic prestidigitation and later in the same section
“This is fun, but let’s look at practicabilities: If you estimate how large N has to be before the difference between exponent 3 and exponent 2.807 is substantial enough to outweigh the bookkeeping overhead, arising from the complicated nature of the recursive Strassen algorithm, you will find that LU decomposition is in no immediate danger of coming obsolete.” 15853 Page 15 15853 Page 16 4 From an experimental paper (Bailey, Lee and Simon):
“For many years it was thought that [the level at which Strassen’s algorithm is more efficient] was well over 1000x1000. In fact, for some new workstations, such as the Sun4 and SGI IRIS 4D, Strassen is faster for matrices as small as 16x16. Most modern matrix libraries now supply Strassen as a choice
– IBM ESSL library – Cray Libraries – LAPACK library Cryptography Error Correcting Codes Computational Biology String Matching Linear/Integer Programming Satisfiability Nearest Neighbors 15853 Page 17 15853 Page 18 Key problems in the area
– Formal definitions – How they relate to practice Measures of “performance” beyond “Time”
– Quality of results – Generality – Simplicity Many algorithms
– Theory – Practice Transition from theory to practice
– Often an iterative process Key applications along with case studies Characterizing input
– Input data is rarely “worst case” or even “expected case” when the expectation is over all possible inputs. 15853 Page 19 15853 Page 20 5 ...
View
Full
Document
This note was uploaded on 01/26/2010 for the course COMPUTER S 15853 taught by Professor Guyblelloch during the Fall '09 term at Carnegie Mellon.
 Fall '09
 GuyBlelloch
 Algorithms

Click to edit the document details