160 likes | 365 Views
CS 273 Introduction to the Theory of Computation Fall 2006. Margaret Fleck mfleck@cs.uiuc.edu Madhusudan Parthasarathy ( Madhu ) madhu@cs.uiuc.edu. Theory of Computation. - What can be computed? - Can a computer solve any problem, given enough time and disk-space?. Computability.
E N D
CS 273Introduction to the Theory of ComputationFall 2006 Margaret Fleck mfleck@cs.uiuc.edu Madhusudan Parthasarathy ( Madhu ) madhu@cs.uiuc.edu
Theory of Computation - What can be computed? - Can a computer solve any problem, given enough time and disk-space? Computability • - How fast can we solve a problem? • How little disk-space can we use • to solve a problem Complexity • What problems can we solve given • really very little space? • (constant space) Automata
Complexity Automata Theory of Computation What problems can a computer solve? Not all problems!!! Eg. Given a C-program, we cannot check if it will not crash! Verification of correctness of programs is hence impossible! (The woe of Microsoft!) Computability
Complexity Automata Theory of Computation What problems can a computer solve? Even checking whether a C-program will halt/terminate is not possible! input n; assume n>1; No one knows while (n !=1) { whether this if (n is even) terminates on n := n/2; on all inputs! else n := 3*n+1; } 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. Computability
Computability Theory of Computation • How fast can we compute a function? • How much space do we require? • Polynomial time computable • Non-det Poly Time (NP) • Approximation, Randomization • Functions that cannot be computed fast: • Applications to security • Encrypt fast, • Decryption cannot be done fast • RSA cryptography, • web applications Complexity Automata
Theory of Computation I N C R E A S I N G C O M P L E X I T Y What can we compute? -- Most general notions of computability -- Uncomputable functions Computability What can we compute fast? -- Faster algorithms, polynomial time -- Problems that cannot be solved fast: * Cryptography Complexity What can we compute with very little space? -- Constant space (+stack) * String searching, language parsing, hardware verification, etc. Automata
Theory of Computation I N C R E A S I N G C O M P L E X I T Y Computability Complexity Automata: --- Foundations of computing --- Mathematical methods of argument --- Simple setting Automata
Theory of Computation I N C R E A S I N G C O M P L E X I T Y Computability Complexity Context-free languages --- Grammars, parsing --- Machines with stack --- Still a simple setting; but infinite state Automata
Theory of Computation I N C R E A S I N G C O M P L E X I T Y • Turing machines (1940s): • -- The most general notion of computing • -- The Church-Turing thesis • -- Limits to computing: • Uncomputable functions • Motivation from mathematics: • Can we solve any mathematical question • methodically? • Godel’s theorem: NO! • “Even the most powerful machines • cannot solve some problems.” Computability Complexity Automata
Theory of Computation I N C R E A S I N G C O M P L E X I T Y Turing machines: Weeks 13--15 Context-free languages: Weeks 9-12 Automata theory: Weeks 2 thro’ 8 Mathematical techniques: Week 1 Computability Complexity Automata