20cs2054 - Introduction
20cs2054 - Introduction
THEORY OF COMPUTATION
Dr. T. Mathu,
Assistant Professor/ DSCS,
School of CST.
INTRODUCTION
• WHAT IS COMPUTATION?
– is any type of arithmetic or non-arithmetic
calculation that follows a well-defined model
(algorithm – step by step solution to a
problem)
Computations may be simple or complex
Examples of Computational Problems:
Multiplication of two numbers
Finding a word in the dictionary
Finding distance between two cities
Predicting weather, etc
COMPUTATIONAL DEVICES / COMPUTATION MODEL
5
• Turing’s goal is to describe precisely the
boundary between what a computing could
do and what it could not do.
ie. What kind of problems can be solved
and what cannot be solved
Computational
‘Models’
• To model the hardware of
a computer, we introduce
the notion of an
automaton (plural,
automata).
• An automaton is a
construct that possesses
all the indispensable
features of a digital
computer.
• It accepts input, produces
output, may have some
temporary storage, and
can make decisions in
transforming the input
into the output.
What is Automata Theory?
► Software
► Software for verifying systems of all types that have a finite number of
distinct states, such as communication protocols or protocols for secure
exchange of information.
• There are many systems or components such
as those enumerated above that may be
viewed as always being in one of a finite
number of states.
• The purpose of a state is to remember the
relevant portion of the system’s history.
Structural Representations
2. To study two important notations that play
an important role in the study of automata
and their applications but they are not
automaton-like.
• Grammars-- Grammars are useful models when
designing software that processes data with a
recursive structure
• Regular Expressions--denote the structure of
data especially text strings. (e.g. email address)
3. It is essential for the study of the limits of
computation ►What a computer can and
cannot do
►What is computable, ►Are you trying to write a non-
and what is not ? existing program?
►Can you make your program
more efficient?
►Analysis of algorithms
►Compilers
►Complexity Theory
►Circuit design
►Cryptography
13
Chomsky
Hierarchy
• Computation models
– Finite State
Automata
– Push Down
Automata
– Linear Bounded
Automata
– Turing Machines
COMPUTATION
CPU memory
temporary memory
input memory
CPU
output memory
Program memory
temporary memory
compute
temporary memory
input memory
CPU
output memory
Program memory
compute
compute
temporary memory
input memory
CPU
output memory
Program memory
compute
compute
input memory
temporary memory
CPU
compute
Automaton
temporary memory
Automaton
input memory
CPU
output memory
Program memory
Different Kinds of Automata
temporary memory
input memory
Finite
Automaton
output memory
input memory
Pushdown
Automaton
output memory
Example: Compilers for Programming Languages
(medium computing power)
Turing Machine
input memory
Turing Machine
output memory
Module 6: Undecidability
Halting Problem, Wicked Problem. Church-Turing thesis, Universal Turing
machine, the universal and diagonalization languages, reduction between
languages and Rice’s theorem, undecidable problems about languages.
Textbooks
1. John E. Hopcroft, Rajeev
Motwani and Jeffrey D.
Ullman, “Introduction to
Automata Theory, Languages,
and Computation”, 3rd
edition, Pearson Education
Asia. 2014, ISBN: 978-93-
325-3586-2.