You are on page 1of 18

CS 301

Theory of Automata
Computation
Activity
Time
What is Computation?
Computation

CPU memory

Courtesy Costas Busch - RPI 4


temporary memory

input memory
CPU
output memory

Program memory

Courtesy Costas Busch - RPI 5


3
Example: f ( x) = x

temporary memory

input memory
CPU
output memory
Program memory
compute x∗x
2
compute x ∗x
Courtesy Costas Busch - RPI 6
3
f ( x) = x

temporary memory
input memory
x=2
CPU
output memory
Program memory
compute x∗x
2
compute x ∗x
Courtesy Costas Busch - RPI 7
3
temporary memory f ( x) = x
z = 2*2 = 4
f ( x) = z * 2 = 8
input memory
x=2
CPU
output memory
Program memory
compute x∗x
2
compute x ∗x
Courtesy Costas Busch - RPI 8
3
temporary memory f ( x) = x
z = 2*2 = 4
f ( x) = z * 2 = 8
input memory
x=2
CPU
f ( x) = 8
Program memory output memory
compute x∗x
2
compute x ∗x
Courtesy Costas Busch - RPI 9
Activity time

Write a formal pseudo code of


the computation model discussed
Automaton
temporary memory

Automaton
input memory
CPU
output memory

Program memory

Courtesy Costas Busch - RPI 11


Automaton
temporary memory

Automaton
input

output
transition

state

CPU+ProgramMem = States + Transitions


Courtesy Costas Busch - RPI 12
Different Kinds of Automata
Automata are distinguished by the temporary memory

• Finite Automata: no temporary memory

• Pushdown Automata: stack

• Turing Machines: random access memory

Courtesy Costas Busch - RPI 13


Finite Automaton

temporary memory

input memory
Finite
Automaton
output memory

Example: Vending Machines


(small computing power)
Courtesy Costas Busch - RPI 14
Pushdown Automaton
Stack Push, Pop

input memory
Pushdown
Automaton
output memory

Example: Compilers for Programming Languages


(medium computing power)
Courtesy Costas Busch - RPI 15
Turing Machine

Random Access Memory

input memory
Turing
Machine
output memory

Examples: Any Algorithm


(highest computing power)
Courtesy Costas Busch - RPI 16
Power of Automata

Finite Pushdown Turing


Automata Automata Machine

Less power More power


Solve more
computational problems
Courtesy Costas Busch - RPI 17
Turing Machine is the most powerful
known computational model

Question: can Turing Machines solve


all computational problems?

Answer: NO
(there are unsolvable problems)
Courtesy Costas Busch - RPI 18

You might also like