Introduction
Introduction
Introduction
What is the Theory of Computation?
Tries to answer the following questions:
3
Introduction(Cont’d)
4
Complexity Theory
• Central Question in Complexity
Theory: Classify problems according
to their degree of “difficulty”. Give
a rigorous proof that problems that
seem to be “hard” are really “hard”.
6
Automata Theory
• Automata Theory deals with
definitions and properties of different
types of “computation models”.
7
Models of Computation
8
Computation
CPU memory
9
temporary memory
input
CPU
output
Program memory
10
3
Example: f ( x) x
temporary memory
input
CPU
output
Program memory
compute xx
2
compute x x
11
3
f ( x) x
temporary memory
input
x2
CPU
output
Program memory
compute xx
2
compute x x
12
3
temporary memory f ( x) x
z 2*2 4
f ( x) z * 2 8
input
x2
CPU
output
Program memory
compute xx
2
compute x x
13
3
temporary memory f ( x) x
z 2*2 4
f ( x) z * 2 8
input
x2
CPU
f ( x) 8
Program memory output
compute xx
2
compute x x
14
Automaton
temporary memory
Automaton
input
CPU
output
Program memory
15
Automaton
temporary memory
Automaton
input
output
transition
state
16
Different Kinds of Automata
Automata are distinguished by the temporary memory
17
Finite Automaton
temporary memory
input
Finite
Automaton
output
Pushdown input
Automaton
output
Temp.
memory Random Access Memory
input
Turing
Machine
output
22
What is Complexity Theory?
23
What is Complexity Theory?(Cont’d)
• Its “final” goals include the determination
of the complexity of any well defined
computational task.
Generally:
• Absolute Questions:
– How much time is needed to perform
the task?
– How much resources will be needed?
• Relative Questions:
– More difficult than other tasks?
– Are there “most difficult" tasks?
25
What is Complexity Theory?(Cont’d)
30
Algorithm Design & Analysis Vs
Complexity Theory (cont’d)
31
• Complexity Theory - prove that difficult
problems cannot be solved with modest
resources.