Theory of Automata or Computation Lect No 1
Theory of Automata or Computation Lect No 1
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