751 likes | 1.91k Views
CS729 Automata and Complexity Theory. Course Organization. Text Book: SJ. E. Hopcroft, R. Motwani, and J. D. Ullman Introduction to Automata Theory, Languages, and Computation, Second Edition, Addison-Wesley, New York, 2001. The 5~8 assignments, midterm and Final.
E N D
CS729 Automata and Complexity Theory
Course Organization • Text Book: SJ. E. Hopcroft, R. Motwani, and J. D. Ullman Introduction to Automata Theory,Languages, and Computation, Second Edition,Addison-Wesley, New York, 2001. • The 5~8 assignments, midterm and Final. • Each section may have different quizzes. • Weights: As per university policy
What we will do • Automata = abstract computing devices • Turing studied Turing Machines (= computers)before there were any real computers • We will also look at simpler devices thanTuring machines (Finite State Automata, Pushdown Automata, . . . ), and specification means, such as grammars and regular expressions. • NP-hardness = what cannot be efficiently computed
Computation memory CPU Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory Courtesy Costas Busch - RPI
Example: temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU Program memory output memory compute compute Courtesy Costas Busch - RPI
Automaton temporary memory Automaton input memory CPU output memory Program memory Courtesy Costas Busch - RPI
Different Kinds of Automata • Automata are distinguished by the temporary memory • Finite Automata: no temporary memory • Pushdown Automata: stack • Turing Machines: random access memory Courtesy Costas Busch - RPI
Finite Automaton temporary memory input memory Finite Automaton output memory Example: Vending Machines (small computing power) Courtesy Costas Busch - RPI
Pushdown Automaton Stack Push, Pop input memory Pushdown Automaton output memory Example: Compilers for Programming Languages (medium computing power) Courtesy Costas Busch - RPI
Turing Machine Random Access Memory input memory Turing Machine output memory Examples: Any Algorithm (highest computing power) Courtesy Costas Busch - RPI
Power of Automata Finite Automata Pushdown Automata Turing Machine Less power More power Solve more computational problems Courtesy Costas Busch - RPI