Languages and Finite Automata

CS-300
Theory of Computation
2nd Sem 2017
Lecture 1
1
General Info for the Course
Instructor: Dr.Mohammad El-Bashir
Syllabus: tentative class schedule
can be found in course web page
Book: Introduction to the
Theory of Computation
Michael Sipser, 3rd edition
2nd Sem 2017
Lecture 1
2
Outline of the course contents
Computation
CPU
2nd Sem 2017
Lecture 1
memory
3
temporary memory
input
CPU
output
Program memory
2nd Sem 2017
Lecture 1
4
Example:
f ( x)  x
3
temporary memory
input
CPU
output
Program memory
2nd Sem 2017
compute
xx
compute
x x
2
Lecture 1
5
f ( x)  x
temporary memory
3
input
x2
CPU
output
Program memory
2nd Sem 2017
compute
xx
compute
x x
2
Lecture 1
6
temporary memory
z  2*2  4
f ( x)  z * 2  8
f ( x)  x
3
input
x2
CPU
output
Program memory
2nd Sem 2017
compute
xx
compute
x x
2
Lecture 1
7
temporary memory
z  2*2  4
f ( x)  z * 2  8
f ( x)  x
3
input
x2
CPU
f ( x)  8
Program memory
2nd Sem 2017
compute
xx
compute
x x
output
2
Lecture 1
8
Automaton
temporary memory
Automaton
input
CPU
output
Program memory
2nd Sem 2017
Lecture 1
9
Automaton
temporary memory
Automaton
input
output
transition
state
2nd Sem 2017
Lecture 1
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
2nd Sem 2017
Lecture 1
11
Finite Automaton
temporary memory
input
Finite
Automaton
output
Example: Elevators, Vending Machines
(small computing power)
2nd Sem 2017
Lecture 1
12
Pushdown Automaton
Temp.
memory
Stack
Push, Pop
input
Pushdown
Automaton
output
Example: Compilers for Programming Languages
(medium computing power)
2nd Sem 2017
Lecture 1
13
Turing Machine
Temp.
memory
Random Access Memory
input
Turing
Machine
output
Examples: Any Algorithm
(highest computing power)
2nd Sem 2017
Lecture 1
14
Power of Automata
Simple
problems
More complex
problems
Hardest
problems
Finite
Pushdown
Automata
Turing
Automata
Machine
Less power
More power
Solve more
computational problems
2nd Sem 2017
Lecture 1
15
Turing Machine is the most powerful
computational model known
Question: Are there computational
problems that a Turing Machine
cannot solve?
Answer: Yes
2nd Sem 2017
(unsolvable problems)
Lecture 1
16
Time Complexity of Computational Problems:
NP-complete problems
Believed to take exponential
time to be solved
P problems
Solved in polynomial time
2nd Sem 2017
Lecture 1
17