CSC4890 Introduction to the Theory of Computation Costas

  • Slides: 19
Download presentation
CSC-4890 Introduction to the Theory of Computation Costas Busch - LSU 1

CSC-4890 Introduction to the Theory of Computation Costas Busch - LSU 1

General Info about Course Instructor: Konstantin (Costas) Busch Books • Introduction to the Theory

General Info about Course Instructor: Konstantin (Costas) Busch Books • Introduction to the Theory of Computation, Michael Sipser • An Introduction to Formal Languages and Automata, Peter Linz Costas Busch - LSU 2

Course Goals Provide computation Models Analyze power of Models Answer Intractability questions: What computational

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? Costas Busch - LSU 3

A widely accepted model of computation CPU Costas Busch - LSU memory 4

A widely accepted model of computation CPU Costas Busch - LSU memory 4

The different components of memory temporary memory input CPU output Program memory Costas Busch

The different components of memory temporary memory input CPU output Program memory Costas Busch - LSU 5

Example: temporary memory input CPU output Program memory compute Costas Busch - LSU 6

Example: temporary memory input CPU output Program memory compute Costas Busch - LSU 6

temporary memory input CPU output Program memory compute Costas Busch - LSU 7

temporary memory input CPU output Program memory compute Costas Busch - LSU 7

temporary memory input CPU output Program memory compute Costas Busch - LSU 8

temporary memory input CPU output Program memory compute Costas Busch - LSU 8

temporary memory input CPU Program memory output compute Costas Busch - LSU 9

temporary memory input CPU Program memory output compute Costas Busch - LSU 9

Automaton temporary memory Automaton input CPU output Program memory Costas Busch - LSU 10

Automaton temporary memory Automaton input CPU output Program memory Costas Busch - LSU 10

Automaton temporary memory Automaton input output transition state CPU+Program. Mem = States + Transitions

Automaton temporary memory Automaton input output transition state CPU+Program. Mem = States + Transitions Costas Busch - LSU 11

Different Kinds of Automata are distinguished by the temporary memory • Finite Automata: no

Different Kinds of Automata are distinguished by the temporary memory • Finite Automata: no temporary memory • Pushdown Automata: stack • Turing Machines: random access memory Costas Busch - LSU 12

Memory affects computational power: More flexible memory results to The solution of more computational

Memory affects computational power: More flexible memory results to The solution of more computational problems Costas Busch - LSU 13

Finite Automaton temporary memory input Finite Automaton output Example: Elevators, Vending Machines, Lexical Analyzers

Finite Automaton temporary memory input Finite Automaton output Example: Elevators, Vending Machines, Lexical Analyzers (small computing power) Costas Busch - LSU 14

Pushdown Automaton Temp. memory Stack Push, Pop input Pushdown Automaton output Example: Parsers for

Pushdown Automaton Temp. memory Stack Push, Pop input Pushdown Automaton output Example: Parsers for Programming Languages (medium computing power) Costas Busch - LSU 15

Turing Machine Temp. memory Random Access Memory input Turing Machine output Examples: Any Algorithm

Turing Machine Temp. memory Random Access Memory input Turing Machine output Examples: Any Algorithm (highest known computing power) Costas Busch - LSU 16

Power of Automata Simple problems More complex problems Hardest problems Finite Pushdown Automata Turing

Power of Automata Simple problems More complex problems Hardest problems Finite Pushdown Automata Turing Automata Machine Less power More power Solve more computational problems Costas Busch - LSU 17

Turing Machine is the most powerful known computational model Question: can Turing Machines solve

Turing Machine is the most powerful known computational model Question: can Turing Machines solve all computational problems? Answer: NO (there are unsolvable problems) Costas Busch - LSU 18

Time Complexity of Computational Problems: P problems: (Polynomial time problems) Solved in polynomial time

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 Costas Busch - LSU 19