CSCI-2400
Models of Computation
Fall 2006 Costas Busch - RPI 1
General Info for the Course
Instructor: Moorthy
Syllabus: tentative class schedule
can be found in course web page
[Link]
Book: Introduction to the
Theory of Computation
Michael Sipser, 2nd edition
Fall 2006 Costas Busch - RPI 2
Outline of the course contents
Computation
CPU memory
Fall 2006 Costas Busch - RPI 3
temporary memory
input
External CPU
Memory
output
Program memory
Fall 2006 Costas Busch - RPI 4
Example: f ( x) x
3
temporary memory
input
CPU
output
Program memory
compute xx
compute x x
2
Fall 2006 Costas Busch - RPI 5
f ( x) x 3
temporary memory
input
x2
CPU
output
Program memory
compute xx
compute x x
2
Fall 2006 Costas Busch - RPI 6
temporary memory f ( x) x 3
z 2*2 4
f ( x) z * 2 8
input
x2
CPU
output
Program memory
compute xx
compute x x
2
Fall 2006 Costas Busch - RPI 7
temporary memory f ( x) x 3
z 2*2 4
f ( x) z * 2 8
input
x2
CPU
f ( x) 8
Program memory output
compute xx
compute x x
2
Fall 2006 Costas Busch - RPI 8
Automaton
temporary memory
Automaton
input
CPU
output
Program memory
Fall 2006 Costas Busch - RPI 9
Automaton
temporary memory
Automaton
input
output
transition
state
Fall 2006 Costas Busch - RPI 10
Different Kinds of Automata
Automata are distinguished by the temporary memory
• Finite Automata: no temporary memory
• Pushdown Automata: stack
• Turing Machines: random access memory
Fall 2006 Costas Busch - RPI 11
Finite Automaton
temporary memory
input
Finite
Automaton
output
Example: Elevators, Vending Machines
(small computing power)
Fall 2006 Costas Busch - RPI 12
Pushdown Automaton
Temp.
memory Stack Push, Pop
Pushdown input
Automaton
output
Example: Compilers for Programming Languages
(medium computing power)
Fall 2006 Costas Busch - RPI 13
Turing Machine
Temp.
memory Random Access Memory
input
Turing
Machine
output
Examples: Any Algorithm
(highest computing power)
Fall 2006 Costas Busch - RPI 14
Power of Automata
Simple More complex Hardest
problems problems problems
Finite Pushdown Turing
Automata Automata Machine
Less power More power
Solve more
computational problems
Fall 2006 Costas Busch - RPI 15
Turing Machine is the most powerful
computational model known
Question: Are there computational
problems that a Turing Machine
cannot solve?
Answer: Yes (unsolvable problems)
Fall 2006 Costas Busch - RPI 16
Time Complexity of Computational Problems:
NP-complete problems
Believed to take exponential
time to be solved
P problems
Solved in polynomial time
Fall 2006 Costas Busch - RPI 17