Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

Automata Theory

Lecture 1
About Instructor
Name: Qamar Askari
PhD(CS) in progress at NUCES-Lahore
Email: syedqamar@gift.edu.pk
Lecture’s Objective
Understanding of what we’re going to study in this course.
Theoretical Computer Sciences
TCS covers a wide variety of topics including

Algorithms, data structures, computational complexity, parallel and


distributed computation, probabilistic computation, quantum
computation, automata theory, information theory, cryptography,
program semantics and verification, machine learning, computational
biology, computational economics, computational geometry, and
computational number theory and algebra.

Reference: The ACM's Special Interest Group on Algorithms and Computation Theory (SIGACT)
Mathematics Theoretical Computer Sciences

Theory of Computation

Model of
Computation

Problem Solution

Algorithm

Complexity Theory

Automata Theory Computability Theory


Automata Theory
• It is the study of
• Abstract machines/Mathematical models/ Theoretical Models/Automata
• Computational problems

• Why to study Automata theory?


• Compiler designing
• Artificial Intelligence
• Parsing
Computational Problems
• Decision problem
• Search problem
• Counting problem
• Optimization problem
• Function problem
Computational Problems N - Number

• Decision problem
• Search problem Is Prime?

• Counting problem Model of Computation


• Optimization problem
• Function problem
Yes No
Computational Problems N - Number

• Decision problem
• Search problem Prime factors?

• Counting problem Model of Computation


• Optimization problem
• Function problem
Factor 1 ……. Factor n
Computational Problems N - Number

• Decision problem
• Search problem Prime factors?

• Counting problem Model of Computation


• Optimization problem
• Function problem

Total no. of nontrivial


prime factors
Computational Problems N1 - Number N2 - Number

• Decision problem
• Search problem GCD?

• Counting problem Model of Computation


• Optimization problem
• Function problem

GCD
Computational Problems N1 - Number N2 - Number

• Decision problem
• Search problem N1/N2

• Counting problem Model of Computation


• Optimization problem
• Function problem

Answer
Computational Model/Abstract Machine

N – A binary number

Step – 1: Formal definition of problem


Is odd number?

Model of Computation Rule: Output YES for all bit strings ending in 1.
L = {1, 01, 11, 001, 011, 101, 111, ……}  YES
L’ = {0, 00, 10, 000, 010, 100, 110, ……}  NO

Yes No
Computational Model/Abstract Machine

N – A binary number

Step – 2: Construction of Model


Is odd number?

Model of Computation
States Odd Even

Action/Transition Output
• 1 at odd
Yes No YES
• 0 at odd
• 1 at even
• 0 at even NO
Computational Model/Abstract Machine

N – A binary number

Step – 2: Construction of Model


Is odd number?
1
Model of Computation

Yes No
0
What we’re going to study?

• Even-Even • Regular expressions • Deterministic Finite automata


• anbn • Context free grammar • Non deterministic finite automata
• EQUAL • Context sensitive grammar • Transition graph
• Prime • Type 0 grammar • Pushdown automata
• Palindrome • Etc… • Turing machine
• Trailing count • Post machine
• Etc… • Etc…

Problems Expression Recognition


Finite Automata

Automata’s Glimpse
Regular Expressions

Context Free Grammar


Pushdown Automata

Turing Machine
Why a CS student need to study this
course?
One reason Step – 1: Formal definition of problem
Rule: Output YES for numbers ending in 1,3,5,7,9.
L = {1, 3, 5, 7, 9, 11, 13, 15, 17, ……}  YES
N – A Natural number
L’ = {2, 4, 6, 8, 10, 12, 14, 16, ……}  NO

Is odd number?
Step – 2: Construction of Model
Construct on board
Model of Computation

Yes No
Other reasons
1. It improves problem solving skills
2. It let us know how a real world problem can be mapped and solved
theoretically/mathematically
3. It allows us to solve our problems diagrammatically instead of writing a program for them

4. Vast application area


1. In different phases of compiler construction
2. Designing and checking behavior of digital circuits
3. In artificial intelligence like problem solving, NLP etc.

5. It becomes prerequisite to computability and complexity theories (a graduate level course)


which allow us to know up to what extent a problem is solvable and how costly it would be to
solve a problem.

You might also like