Intruduction To Theory of Computation
Intruduction To Theory of Computation
3
Theory of Computation: A Historical
Perspective
• Alan Turing studies Turing machines
1930s • Decidability
• Halting problem
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?
14
What do we study in Theory of Computation?
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
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