Transcript Introduction
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 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 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 memory Costas Busch - LSU 4
The different components of memory temporary memory CPU input output Program memory Costas Busch - LSU 5
Example:
f
(
x
)
x
3 temporary memory CPU Program memory compute
x
x
compute
x
2
x
Costas Busch - LSU input output 6
f
(
x
)
x
3 temporary memory CPU Program memory compute
x
x
compute
x
2
x
Costas Busch - LSU
x
input 2 output 7
temporary memory
z
2 * 2 4
f
(
x
)
z
* 2 8
f
(
x
) CPU Program memory compute
x
x
compute
x
2
x
Costas Busch - LSU
x
input 2 output
x
3 8
temporary memory
z
2 * 2 4
f
(
x
)
z
* 2 8
f
(
x
) CPU Program memory compute
x
x
compute
x
2
x
Costas Busch - LSU
x
input 2
f
(
x
) output 8
x
3 9
Automaton
temporary memory Automaton input CPU output Program memory Costas Busch - LSU 10
Automaton
temporary memory Automaton input output state transition CPU+ProgramMem = States + Transitions Costas Busch - LSU 11
Different Kinds of Automata
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 problems Costas Busch - LSU 13
Finite Automaton temporary memory Finite Automaton input output Example: Elevators, Vending Machines, Lexical Analyzers (small computing power) Costas Busch - LSU 14
Temp.
memory Pushdown Automaton
Stack
Push, Pop Pushdown Automaton input output Example: Parsers for Programming Languages (medium computing power) Costas Busch - LSU 15
Turing Machine Temp.
memory Random Access Memory Turing Machine input output Examples: Any Algorithm (highest known computing power) Costas Busch - LSU 16
Simple problems Finite Automata
Power of Automata
More complex problems Hardest problems Pushdown Automata Turing Machine Less power Solve more More power computational problems Costas Busch - LSU 17
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: ( P olynomial time problems) Solved in polynomial time NP -complete problems: ( N on-deterministic P olynomial time problems) Believed to take exponential time to be solved Costas Busch - LSU 19