Speed part 6 Barb Ericson Georgia Institute of Technology May 2006 Georgia Institute of Technology Learning Goals • Computing Concepts – Introducing a combinatorial problem – Introducing the categories of algorithms • Class P • Intractable • Class NP – Understanding that there are algorithms that can't be written – Understanding how to compare computers to determine which would be faster Georgia Institute of Technology Combining Parts • What if we wanted to create a program that wrote songs – By combining musical parts – leave some out, put some in – Ignore differences in order (ab = ba) • How many combinations with 3 parts? – a, b, c, ab, bc, ac, abc, and empty • How many combinations with 4 parts? – a, b, c, d, ab, bc, cd, ac, ad, bd, etc • Can you find more combinations? Georgia Institute of Technology Processing Combinations • For any n parts there are 2n combinations – Ignoring order • What if we had 60 musical bits? – That is 260 combinations – 1, 152, 921, 504, 606, 846, 976 combinations • Imagine we can create each combination in a single step – On a 1.5 GHz processor that is 768, 614, 336 seconds or 24 years to execute! • Processing all combinations is O(2n) Georgia Institute of Technology Traveling Salesman Problem • You have 30 clients to visit – You want to find the shortest path so that you visit each one time during a trip – The best known algorithm for finding the shortest path is O(n!) (n factorial) • Factorial of 5 is 5 * 4 * 3 * 2 * 1 • Factorial of 6 is 6 * 5 * 4 * 3 * 2 * 1 • Factorial of n is n * (n – 1) * (n – 2) … to 1 • For 30 cities 30! is 265, 252, 859, 812, 191, 058, 636, 308, 480, 000, 000 – Which wouldn't finish executing in your lifetime! Georgia Institute of Technology Problem Classification • Class P – Has polynomial running time • Like linear or binary search • Intractable – Problems that we can't solve in a reasonable time with reasonable data • Like the combinations of sound parts problem • Class NP – Problems that seem intractable, but maybe there is a solution in Class P that we haven't found yet • Like the traveling salesman problem Georgia Institute of Technology Unsolved Problem in Computer Science • Is Class NP part of Class P? Or, are they completely separate? – If someone finds at least one algorithm to a Class NP problem that has polynomial running time • That would prove NP is part of P – Or someone has to prove that there is no algorithm for a class NP problem that can have a polynomial running time Georgia Institute of Technology An Algorithm that can't be Written • Can a program read another program and the input to that program and predict if it will ever stop (halt)? – This is known as the Halting Problem – Alan Turing proved that a general algorithm couldn't be written to cover all possible input • Using proof by absurdity in 1936 • Before computers were being built! • For particular programs and input you can write an algorithm that can tell if it will halt but there is no way to write a general algorithm that works on any program and input Georgia Institute of Technology Comparing Computers • How would you compare two computer advertisements? 2.53 GHz Intel Processor 256 MB SDRAM 80GB Hard Drive 15 inch display 16X CD/DVD 2.7 GHz AMD Processor 512 MB SDRAM 100 GB Hard Drive 17 inch display 48X CD/DVD Georgia Institute of Technology Processor Speed • 2.53 GHz is about 2.53 billion clock pulses per second – This doesn't mean that you can execute 2.53 instructions per second • Many instructions take more than one clock cycle • In general, a faster clock pulse means faster computation – Especially if the processor type is the same • How fast do you need? – It depends on the type of work you are doing • Word processing can be done on a slow machine • 3D Game playing improves on a faster processor Georgia Institute of Technology Storage • Fastest and most expensive is cache memory • Next fastest and next most expensive is RAM or SDRAM memory – 256MB is 256 million bytes – Programs and data must be in RAM during execution • This memory clears when the computer is off – Often the best investment is to increase the RAM • This will make your programs run faster • The hard drive is the slowest and cheapest memory – 80GB is 80 billion bytes – All files are stored on the hard disk – Getting a bigger hard disk can leave more room for virtual memory • Needed when RAM is full (swaps data in and out as needed) Georgia Institute of Technology Exercise • Find the details on at least two different kinds of computers in use at your school – Make suggestions for how to improve the speed of the computers • Compare at least two computer ads – Decide which would be best for you to use for school work – Decide which would be best for you for running computer games Georgia Institute of Technology Summary • There are three categories of algorithms – Class P • Like binary or linear search • Can be solved in polynomial time – Intractable • Problems that can't be solved in reasonable time with medium to large amounts of data • Like combinatorial problems – Class NP • Problems that seem intractable but maybe we haven't found the best algorithm yet • Like the traveling salesman problem • Machine speed is based on – The processor speed – The amount of each type of memory (cache, RAM, disk) • Adding RAM is often the cheapest way to improve application speed Georgia Institute of Technology