1 / 13

Speed part 6

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

helia
Download Presentation

Speed part 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Speedpart 6 Barb Ericson Georgia Institute of Technology May 2006 Georgia Institute of Technology

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. Comparing Computers • How would you compare two computer advertisements? Georgia Institute of Technology

  10. 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

  11. 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

  12. 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

  13. 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

More Related