0% found this document useful (0 votes)
22 views23 pages

Intruduction To Theory of Computation

Uploaded by

misssumaiya95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views23 pages

Intruduction To Theory of Computation

Uploaded by

misssumaiya95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Theory of Computation

 In theoretical computer science and mathematics, the


theory of computation is the branch that deals with
how efficiently problems can be solved on a model of
computation, using an algorithm.
 It not only includes computers (e.g. digital computers,
mechanical computers, quantum computers, DNA
computers, molecular computers, microfluidics-based
computers, analog computers, … ), but also anything
or any machine who does some sort of computations,
like calculators, abacuses, etc.
 It includes the fundamental mathematical properties
of computer hardware, software, and certain
applications thereof. 1
Theory of Computation
Book Recommendation:
1. Introduction to Theory of Computation
--- By Anil Maheshwari, Michiel Smid,

Carleton University, Ottawa, Canada, 2016.


2. Introduction to Languages and The Theory of Computation.
--By John C. Martin
North Dakota State University, 2010
2
What is Computation?
 Simply, computation is any type of calculation
that follows an algorithm.
 Computation is finding an answer by using
mathematics or logic.
 You can use a computer to do computations.
 But you can also do computations yourself
when you add, subtract, multiply, etc.

3
Theory of Computation: A Historical
Perspective
• Alan Turing studies Turing machines
1930s • Decidability
• Halting problem

• “Finite automata” machines studied


• Noam Chomsky proposes the
1940-1950s “Chomsky Hierarchy” for formal
languages

1969 Cook introduces “intractable” problems


or “NP-Hard” problems

Modern computer science: compilers,


1970- computational & complexity theory evolve
4
Theory of Computation: A Historical
Perspective
• Alan Turing studies Turing machines
1930s • Decidability
• Halting problem

• “Finite automata” machines studied


• Noam Chomsky proposes the
1940-1950s “Chomsky Hierarchy” for formal
languages

1969 Cook introduces “intractable” problems


or “NP-Hard” problems

Modern computer science: compilers,


1970- computational & complexity theory evolve
5
Theory of Computation: A Historical
Perspective
• Alan Turing studies Turing machines
1930s • Decidability
• Halting problem

• “Finite automata” machines studied


• Noam Chomsky proposes the
1940-1950s “Chomsky Hierarchy” for formal
languages

Cook introduces “intractable” problems


1969 or “NP-Hard” problems

Modern computer science: compilers,


1970- computational & complexity theory evolve
6
Theory of Computation: A Historical
Perspective
• Alan Turing studies Turing machines
1930s • Decidability
• Halting problem

• “Finite automata” machines studied


• Noam Chomsky proposes the
1940-1950s “Chomsky Hierarchy” for formal
languages

Cook introduces “intractable” problems


1969 or “NP-Hard” problems

Modern computer science: compilers,


1970- computational & complexity theory evolve
7
Problems Hierarchy

Problems
Alan Turing

Solvable Unsolvable

Stephen Kook
Tractable Intractable

8
Moore’s Law
 Moore's Law asserts that the speed of
computation of a single processor will
be double approximately every two
years. Informally, we can do twice as
much work in the same time (or the
same amount of work in half the time)
while cost of those will be halves.

9
Moore’s Law

10
11
Applications of Theory of
Computation
 Compiler construction
 Natural language processing
 Natural language Understanding
 Artificial intelligence
 Text processing and searching applications
 Cryptography, and so on.
 Complex Circuit design

12
Applications of Theory of
Computation
 Compiler design
 Artificial intelligence
 Natural language processing
 Natural language Understanding
 text processing and searching applications
 Cryptography, and so on.
 Circuit design

13
What do we study in Theory of Computation?

This course tries to answer the following


questions:
• What are the mathematical properties of computer
and hardware and software?
• What is a computation and what is an algorithm? Can
we give rigorous mathematical definitions of these
notions?
• What are the limitations of computers? Can
“everything” be computed?

14
What do we study in Theory of Computation?

The theory of computation can be divided into


the three areas:
 Complexity theory

 Computability theory

 Automata theory

15
Study in Complexity Theory
The main question asked in this area is
“What makes some problems
computationally hard and other problems
easy?”
• Informally, a problem is called “easy”, if it is efficiently
solvable (i.e. tractable problem).
• On the other hand, a problem is “hard”, if it cannot be
solved efficiently, or if we don’t know whether it can be
solved efficiently (i.e. intractable problem).
Efficiency is in terms of time and space.
16
Study in Computability Theory

 What is computable, and what is not?


i.e. what a computer can do and cannot do.
Example:
 Classify problems as
 Solvable
 unsolvable

17
Study in Automata Theory
 Automata theory is the study of abstract
machines and the computational problems
that can be solved using these machines.
These abstract machines are called
automata.

18
Study in Automata Theory
 Automata theory is the study of abstract
machines (or more appropriately, abstract
'mathematical' machines or systems) and
the computational problems that can be
solved using these machines. These
abstract machines are called automata.

19
20
21
22
Mathematical notations and Preliminary

23

You might also like