You are on page 1of 17

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
http://www.cs.rpi.edu/~moorthy/Courses/CSCI2400

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
Memory
CPU
output

Program memory

Fall 2006 Costas Busch - RPI 4


3
Example: f ( x)  x

temporary memory

input
CPU
output
Program memory
compute xx
2
compute x x
Fall 2006 Costas Busch - RPI 5
3
f ( x)  x

temporary memory
input
x2
CPU
output
Program memory
compute xx
2
compute x x
Fall 2006 Costas Busch - RPI 6
3
temporary memory f ( x)  x
z  2*2  4
f ( x)  z * 2  8
input
x2
CPU
output
Program memory
compute xx
2
compute x x
Fall 2006 Costas Busch - RPI 7
3
temporary memory f ( x)  x
z  2*2  4
f ( x)  z * 2  8
input
x2
CPU
f ( x)  8
Program memory output
compute xx
2
compute x x
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

You might also like