Formal Foundations-II [Theory of Automata] Dr. Malik Jahan Khan Assistant Professor (Computer Science) malik.jahan@namal.edu.pk
Course Organization Text Book: Michael Sipser, “Introduction to Theory of Computation”, Course Technology, MIT Weights: Homeworks Formative Quizzes Formative Midterm 15% Final Exam 75%
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 than Turing machines (Finite State Automata, Pushdown Automata, . . . ), and specification means, such as grammars and regular expressions. NP-hardness = what cannot be efficiently computed
Course Goals Provide computation Models Analyze power of Models Answer Intractability questions: What computational problems can each model solve? Answer Time Complexity questions: How much time we need to solve the problems? Prof. Busch - LSU
A widely accepted model of computation memory CPU Prof. Busch - LSU
The different components of memory temporary memory input CPU output Program memory Prof. Busch - LSU
Example: temporary memory input CPU output Program memory compute Prof. Busch - LSU
temporary memory input CPU output Program memory compute compute Prof. Busch - LSU
temporary memory input CPU output Program memory compute compute Prof. Busch - LSU
temporary memory input CPU Program memory output compute compute Prof. Busch - LSU
Automaton temporary memory Automaton input CPU output Program memory Prof. Busch - LSU
Automaton CPU+ProgramMem = States + Transitions temporary memory input output transition state CPU+ProgramMem = States + Transitions Prof. Busch - LSU
Different Kinds of Automata Automata are distinguished by the temporary memory Finite Automata: no temporary memory Pushdown Automata: stack Turing Machines: random access memory Prof. Busch - LSU
Memory affects computational power: More flexible memory results to The solution of more computational problems Prof. Busch - LSU
Finite Automaton temporary memory input Finite Automaton output Example: Elevators, Vending Machines, Lexical Analyzers (small computing power) Prof. Busch - LSU
Pushdown Automaton Stack Push, Pop input Pushdown Automaton output Temp. memory Stack Push, Pop input Pushdown Automaton output Example: Parsers for Programming Languages (medium computing power) Prof. Busch - LSU
Turing Machine Random Access Memory input Turing Machine output Temp. memory Random Access Memory input Turing Machine output Examples: Any Algorithm (highest known computing power) Prof. Busch - LSU
Power of Automata Finite Automata Pushdown Automata Turing Machine Simple problems More complex problems Hardest problems Finite Automata Pushdown Automata Turing Machine Less power More power Solve more computational problems Prof. Busch - LSU
Turing Machine is the most powerful known computational model Question: can Turing Machines solve all computational problems? Answer: NO (there are unsolvable problems) Prof. Busch - LSU
Time Complexity of Computational Problems: P problems: (Polynomial time problems) Solved in polynomial time NP-complete problems: (Non-deterministic Polynomial time problems) Believed to take exponential time to be solved Prof. Busch - LSU