0% found this document useful (0 votes)
25 views25 pages

Theory of Automata or Computation Lect No 1

Uploaded by

shahzaibjillani4
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)
25 views25 pages

Theory of Automata or Computation Lect No 1

Uploaded by

shahzaibjillani4
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/ 25

Theory of Automata OR

Computation
Instructor
Hamza Naveed
Introduction of TOA/C
Definition of Automata Theory
• Automata theory is a branch of the theory of computation. It deals
with the study of abstract machines and their capacities for
computation. An abstract machine is called the automata.
• It includes the design and analysis of automata, which are
mathematical models that can perform computations on strings of
symbols according to a set of rules.
Theory of computation
• Theory of computation is the branch of computer science that studies
the nature and ranges of computation. It includes analysis and design
of algorithms computation systems, formal languages, automata
theory, compatibility theory, and complexity theory.
Major Course Content
• Introduction
• Automata – Introduction
• Regular Expression and Finite Automata
• CFG (Context Free Grammar)
• PDA (Pushdown Automata)
• Turing Machine
• Decidability
• Quick Links
Automata theory
• Automata theory (also known as Theory Of Computation) is a
theoretical branch of Computer Science and Mathematics, which
mainly deals with the logic of computation with respect to simple
machines, referred to as automata.
• Automata* enables scientists to understand how machines compute
the functions and solve problems. The main motivation behind
developing Automata Theory was to develop methods to describe and
analyze the dynamic behavior of discrete systems.
• Automata originated from the word “Automaton” which is closely
related to “Automation”.
Basic Terminologies of Theory of Computation

Symbol
• A symbol (often also called a character) is the smallest building
block, which can be any alphabet, letter, or picture.
a,b,c,d,0,1,…………………..
Alphabets (Σ):
• Alphabets are a set of symbols, which are
always finite.
Basic Terminologies of Theory of Computation

• String:
• A string is a finite sequence of symbols from some alphabet. A string is
generally denoted as w and the length of a string is denoted as |w|.
• Empty string is the string with zero occurrence of symbols, represented as ε.
• Number of Strings (of length 2) that can be generated over the alphabet
{a, b}: {aa, ab, ba, bb}
• Length of String |w| = 2
• Number of Strings = 4
• Conclusion: For alphabet {a, b} with length n, number of strings can be
generated = 2n.
Closure Representation in TOC
• L+: It is a Positive Closure that represents a set of all strings except
Null or ε-strings.
• L*: It is “Kleene Closure“, that represents the occurrence of certain
alphabets for given language alphabets from zero to the infinite
number of times. In which ε-string is also included.
Closure Representation in TOC
Example:
(a) Regular expression for language accepting all combination of g's
over Σ={g}:
R = g*
R={ε, g, gg, ggg, gggg, ggggg,...}
(b) Regular Expression for language accepting all Positive
combination of g's over Σ={g} :
R = g+
R={g, gg, ggg, gggg, ggggg, gggggg,...}
Closure Representation in TOC
Example:
Input String: "GFG".
Σ* =
{ ε,"GFG","GGFG","GGFG","GFGGGGGGGG","GGGGGGGGFFFF
FFFFFGGGGGGGG",...}
(Kleene Star is an infinite set but if we provide any grammar rules then
it can work as a finite set. Please note that we can include ε string also
in given Kleene star representation.)
Basic Terminologies of Theory of Computation
Language
• A language is a set of strings, chosen from some Σ* or we can say- ‘A
language is a subset of Σ* ‘. A language that can be formed over ‘ Σ ‘ can
be Finite or Infinite.
• Example of Finite Language:
L1 = { set of string of 2 }
L1 = { xy, yx, xx, yy }
• Example of Infinite Language:
L1 = { set of all strings starts with 'b’ }
L1 = { babb, baa, ba, bbb, baab, ....... }
Applications of various Automata
• Automata is a machine that can accept the Strings of a Language
L over an input alphabet Σ . So far, we are familiar with the Types of
Automata. Now, let us discuss the expressive power of Automata and
further understand its Applications.
Expressive Power of various Automata
The Expressive Power of any machine can be determined from the class or
set of Languages accepted by that Machine. Here is the increasing sequence
of expressive power of machines:

FA<DPDA<PDA<LBA<TM

As we can observe that FA is less powerful than any other machine. It is


important to note that DFA and NFA are of same power because every NFA
can be converted into DFA and every DFA can be converted into NFA . The
Turing Machine i.e. TM is more powerful than any other machine
(i) Finite Automata (FA) equivalence:
Finite Automata ≡ PDA with finite Stack ≡ TM with finite tape ≡ TM
with unidirectional tape ≡ TM with read only tape

(ii) Pushdown Automata (PDA) equivalence:


PDA ≡ Finite Automata with Stack

(iii) Turing Machine (TM) equivalence:


Turing Machine ≡ PDA with additional Stack ≡ FA with 2 Stacks
Applications of Finite Automata (FA)
• For the designing of lexical analysis of a compiler.
• For recognizing the pattern using regular expressions.
• For the designing of the combination and sequential circuits using
Mealy and Moore Machines.
• Used in text editors.
• For the implementation of spell checkers.
• Can be used as a model for learning and decision making.
• Can parse text to extract information and structure data.
Applications of Push Down Automata (PDA)
• For designing the parsing phase of a compiler (Syntax Analysis).
• For implementation of stack applications.
• For evaluating the arithmetic expressions.
• For solving the Tower of Hanoi Problem.
• Can be used in software engineering, to verify and validate the
correctness of software models.
• Can be used in network protocols, to parse and validate incoming
messages and to enforce specific message formats.
Applications of Push Down Automata (PDA)
• Can be used in cryptography, to implement secure algorithms for
encryption and decryption.
• Used in string matching and pattern recognition, to search for specific
patterns in input strings.
• Used in XML parsing.
• Used in natural language processing applications like parsing
sentences, recognizing parts of speech, and generating syntax trees.
• Used in automatic theorem proving and formal verification.
• Used in formal verification of hardware and software systems.
Applications of Linear Bounded Automata (LBA)

• For implementation of genetic programming.


• For constructing syntactic parse trees for semantic analysis of the
compiler.
• For recognition of context-sensitive languages.
• Used in game theory to model and analyze interactions between
agents.
Applications of Turing Machine (TM)
• For solving any recursively enumerable problem.
• For understanding complexity theory.
• For implementation of neural networks.
• For implementation of Robotics Applications.
• For implementation of artificial intelligence.
• Used as a theoretical model to analyze the time and space complexity
of algorithms.
Applications of Turing Machine (TM)
• Used in computational biology to model and analyze biological
systems.
• Used in artificial intelligence as a model for learning and decision
making.
• Used to study the relationship between classical computing and
quantum computing.
• Used in digital circuit design to model and verify the behavior of
digital circuits.
• Used in human-computer interaction to model and analyze the
interaction between humans and computers.
Introduction of Finite Automata
• Finite Automata(FA) is the simplest machine to recognize patterns. It is
used to characterize a Regular Language, also analyze and recognize
Natural language Expressions.
• The finite automata or finite state machine is an abstract machine that has
five elements or tuples. It has a set of states and rules for moving from one
state to another, but it depends upon the applied input symbol. Based on the
states and the set of rules the input string can be either accepted or rejected.
• Basically, it is an abstract model of a digital computer that reads an input
string and changes its internal state depending on the current input symbol.
Every automaton defines a language i.e. a set of strings it accepts.
Figure shows the following features of automata:
1.Input
2.Output
3.States of automata
4.State relation
5.Output relation
A Finite Automata consists of the following:
• Q : Finite set of states.
• Σ : set of Input Symbols.
• q : Initial state.
• F : set of Final States.
• δ : Transition Function.

The formal specification of the machine is


{ Q, Σ, q, F, δ }
FA is characterized into two types:
1) Deterministic Finite Automata (DFA)
2) Nondeterministic Finite Automata(NFA)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy