130 likes | 345 Views
Speed part 6. Barb Ericson Georgia Institute of Technology May 2006. 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
E N D
Speedpart 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? 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