Introduction

advertisement
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
Costas Busch - LSU
memory
4
The different components of memory
temporary memory
input
CPU
output
Program memory
Costas Busch - LSU
5
Example:
f ( x)  x
3
temporary memory
input
CPU
output
Program memory
compute
xx
compute
x x
2
Costas Busch - LSU
6
f ( x)  x
temporary memory
3
input
x2
CPU
output
Program memory
compute
xx
compute
x x
2
Costas Busch - LSU
7
temporary memory
z  2*2  4
f ( x)  z * 2  8
f ( x)  x
3
input
x2
CPU
output
Program memory
compute
xx
compute
x x
2
Costas Busch - LSU
8
temporary memory
z  2*2  4
f ( x)  z * 2  8
f ( x)  x
3
input
x2
CPU
f ( x)  8
Program memory
compute
xx
compute
x x
output
2
Costas Busch - LSU
9
Automaton
temporary memory
Automaton
input
CPU
output
Program memory
Costas Busch - LSU
10
Automaton
temporary memory
Automaton
input
output
transition
state
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
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 Programming Languages
(medium computing power)
Costas Busch - LSU
15
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
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
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
NP-complete problems:
(Non-deterministic Polynomial time problems)
Believed to take exponential
time to be solved
Costas Busch - LSU
19
Download