0% found this document useful (0 votes)
14 views

Introduction

This document outlines a course on theory of computation. It introduces different types of automata like finite automata, pushdown automata and Turing machines which are distinguished by the type of memory they have. It discusses their power and ability to solve computational problems from simple to complex. Turing machines are shown to be the most powerful model.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Introduction

This document outlines a course on theory of computation. It introduces different types of automata like finite automata, pushdown automata and Turing machines which are distinguished by the type of memory they have. It discusses their power and ability to solve computational problems from simple to complex. Turing machines are shown to be the most powerful model.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

CSE3111

Theory of Computation

1
Outline of the course contents

Computation

CPU memory

2
temporary memory

input
CPU
output

Program memory

3
Example:

temporary memory

input
CPU
output
Program memory
compute

compute
4
temporary memory
input

CPU
output
Program memory
compute

compute
5
temporary memory

input

CPU
output
Program memory
compute

compute
6
temporary memory

input

CPU

Program memory output


compute

compute
7
Automaton
temporary memory

Automaton
input
CPU
output

Program memory

8
Automaton
temporary memory

Automaton
input

output
transition

state

9
Different Kinds of Automata
Automata are distinguished by the temporary memory

• Finite Automata: no temporary memory


recognizes Regular Languages .
• Pushdown Automata: stack
recognizes Context Free Languages .
• Turing Machines: random access memory
recognizes Computable Languages .

10
Finite Automaton

temporary memory

input
Finite
Automaton
output

Example: Elevators, Vending Machines


(small computing power)
11
Pushdown Automaton
Temp.
memory Stack Push, Pop

Pushdown input

Automaton
output

Example: Compilers for Programming Languages


(medium computing power)
12
Turing Machine

Temp.
memory Random Access Memory

input
Turing
Machine
output

Examples: Any Algorithm


(highest computing power)
13
Alan Turing - A Short Detour
Dr. Alan Turing is one of the founders of
Computer Science (he was an English
Mathematician). Important facts:
1. “Invented” Turing machines.
2. “Invented” the Turing Test.
3. Broke into the German submarine
transmission encoding machine “Enigma”.
4. Was arraigned for being gay and committed
suicide soon after.

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
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)

16
Time Complexity of Computational Problems:

NP-complete problems
Believed to take exponential
time to be solved

P problems
Solved in polynomial time

17
Some Questions
Q1: How do you prove that a language is
regular?
A1: By presenting an FA, , satisfying
.
Q2: Why is it important?
A2: Recognition of a regular language requires a
controller with bounded Memory.
Q3: How do you prove that a language is not
regular?
A3: Hard! to be answered on Week3 of the
course.
18
Wrap up
In this talk we:
1. Motivated the course.
2. Know different type of Automata
3. Learned how to deal with construction of
automata and how to come up with a
correctness argument.

19

You might also like