Theory of Computation Notes
Theory of Computation Notes
in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 1
.c
se
tu
be
.in
What is TOC?
In theoretical computer science, the theory of computation is the branch that deals with whether and
how efficiently problems can be solved on a model of computation, using an algorithm. The field is
divided into three major branches: automata theory, computability theory and computational complexity
theory.
In order to perform a rigorous study of computation, computer scientists work with a mathematical
abstraction of computers called a model of computation. There are several models in use, but the most
commonly examined is the Turing machine.
Automata theory
In theoretical computer science, 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.
This automaton consists of
states (represented in the figure by circles),
and transitions (represented by arrows).
As the automaton sees a symbol of input, it makes a transition (or jump) to another state, according to its
transition function (which takes the current state and the recent symbol as its inputs).
Uses of Automata: compiler design and parsing.
www.csetube.in
www.csetube.in
(A) =A
A A =
Logic relations:
a b = > 7a U b
7(ab)=7a U 7b
Relations:
Let a and b be two sets a relation R contains aXb.
Relations used in TOC:
Reflexive: a = a
Symmetric: aRb = > bRa
Transition: aRb, bRc = > aRc
If a given relation is reflexive, symmentric and transitive then the relation is called equivalence relation.
.c
se
tu
be
.in
Deductive proof: Consists of sequence of statements whose truth lead us from some initial statement
called the hypothesis or the give statement to a conclusion statement.
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 2
be
.c
se
tu
.in
www.csetube.in
se
tu
be
.in
www.csetube.in
.c
Proof by Contradiction:
H and not C implies falsehood.
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 3
tu
be
.in
Languages :
se
The languages we consider for our discussion is an abstraction of natural languages. That is, our focus here is
on formal languages that need precise and formal definitions. Programming languages belong to this category.
Symbols :
.c
Symbols are indivisible objects or entity that cannot be defined. That is, symbols are the atoms of the world of
languages. A symbol is any single object such as , a, 0, 1, #, begin, or do.
Alphabets :
An alphabet is a finite, nonempty set of symbols. The alphabet of a language is normally denoted by
more than one alphabets are considered for discussion, then subscripts may be used (e.g.
sometimes other symbol like G may also be introduced.
Example :
Strings or Words over Alphabet :
A string or word over an alphabet
www.csetube.in
. When
etc) or
www.csetube.in
Example : 0110, 11, 001 are three strings over the binary alphabet { 0, 1 } .
Length of a string :
The number of symbols in a string w is called its length, denoted by |w|.
Example : | 011 | = 4, |11| = 2, | b | = 1
Convention : We will use small case letters towards the beginning of the English alphabet to denote symbols
of an alphabet and small case letters towards the end to denote strings over an alphabet. That is,
(symbols) and
.in
are strings.
and
Let
be
tu
Example : Consider the string 011 over the binary alphabet. All the prefixes, suffixes and substrings of this
string are listed below.
se
.c
Note that x is a prefix (suffix or substring) to x, for any string x and is a prefix (suffix or substring) to any
string.
A string x is a proper prefix (suffix) of string y if x is a prefix (suffix) of y and x y.
In the above example, all prefixes except 011 are proper prefixes.
, we use
as follows:
= e, if n = 0 ; otherwise
= 011011011,
= 011 and
Powers of Alphabets :
We write
(for some integer k) to denote the set of strings of length k with symbols from
= { w | w is a string over
www.csetube.in
. In other words,
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Name: Automata
Period: 3
is denoted by
. That is,
be
.in
Unit No: I
of
tu
contains all the strings that can be generated by iteratively concatenating symbols from
The set
number of times.
= { a, b }, then
se
Example : If
any
.c
, then
that is
Please note that if
. It may look odd that one can proceed from the empty
set to a non-empty set by iterated concatenation. But there is a reason for this and we accept this convention
is denoted by
. That is,
Note that
Reversal :
is a language.
Example :
www.csetube.in
www.csetube.in
1. F is the empty language.
2.
is a language for any
3.
4.
5.
Convention : Capital letters A, B, C, L, etc. with or without subscripts are normally used to denote languages.
Set operations on languages : Since languages are set of strings we can apply set operations to
languages. Here are some simple examples (though there is nothing new in it).
Union : A string
iff
L2
x L1
string,
iff
{ 1, 01, 110 } = { 01 }
x L1 and x L2
be
Intersection
.in
or
is the universe that a complement is taken with respect to. Thus for a language L,
Complement : Usually,
}.
tu
se
Example :
Let L = {
| n is an integer }. Then
1.
2.
, is defined as:
.c
= {
| n is an integer }.
= { xy |
and
and
}.
1.
2.
in general.
3.
www.csetube.in
is defined as
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 3
Iterated concatenation of languages : Since we can concatenate two languages, we also repeat this to
concatenate any number of languages. Or we can concatenate a language with itself any number of times. The
se
tu
be
.in
denotes the concatenation of L with itself n times. This is defined formally as follows:
operation
and so on.
is defined as follows :
.c
= ( Union n in N )
=
is the set of all strings derivable by any number of concatenations of strings in L. It is also useful to
Thus
define
www.csetube.in
www.csetube.in
= {e}
{a, ab}
=
= {a, ab}
Note : is in
.c
se
tu
be
.in
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
Period: 4
(Generates)
Grammar
of
(Recognizes)
Language
Automata
.in
An automata is an abstract computing device (or machine). There are different varities of such abstract
machines (also called models of computation) which can be defined mathematically.
Every Automaton fulfills the three basic requirements.
be
.c
tu
Every automaton consists of some essential features as in real computers. It has a mechanism for
reading input. The input is assumed to be a sequence of symbols over a given alphabet and is placed
on an input tape(or written on an input file). The simpler automata can only read the input one symbol
at a time from left to right but not change. Powerful versions can both read (from left to right or right to
left) and change the input.
The automaton can produce output of some form. If the output in response to an input string is binary
(say, accept or reject), then it is called an accepter. If it produces an output sequence in response to
an input sequence, then it is called a transducer(or automaton with output).
The automaton may have a temporary storage, consisting of an unlimited number of cells, each
capable of holding a symbol from an alphabet ( whcih may be different from the input alphabet). The
automaton can both read and change the contents of the storage cells in the temporary storage. The
accusing capability of this storage varies depending on the type of the storage.
The most important feature of the automaton is its control unit, which can be in any one of a finite
number of interval states at any point. It can change state in some defined manner determined by a
transition function.
se
www.csetube.in
www.csetube.in
.c
se
tu
be
.in
integral (or remain in the same state) as defined by the transition function. The transition function is based on
the current state, input symbol read, and the content of the temporary storage. At the same time the content of
the storage may be changed and the input read may be modifed. The automation may also produce some
output during this transition. The internal state, input and the content of storage at any point defines the
configuration of the automaton at that point. The transition from one configuration to the next ( as defined by
the transition function) is called a move. Finite state machine or Finite Automation is the simplest type of
abstract machine we consider. Any system that is at any point of time in one of a finite number of interval state
and moves among these states in a defined manner in response to some input, can be modeled by a finite
automaton. It doesnot have any temporary storage and hence a restricted model of computation.
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 5
Finite Automata
.in
Automata (singular : automation) are a particularly simple, but useful, model of computation. They were initially
proposed as a simple model for the behavior of neurons.
be
Let us first give some intuitive idea about a state of a system and state transitions before describing finite
automata.
Informally, a state of a system is an instantaneous description of that system which gives all relevant
information necessary to determine how the system can evolve from that point on.
tu
Transitions are changes of states that can occur spontaneously or in response to inputs to the states. Though
transitions usually take time, we assume that state transitions are instantaneous (which is an abstraction).
se
Some examples of state transition systems are: digital systems, vending machines, etc.
A system containing only a finite number of states and transitions among them is called a finite-state transition
system.
.c
Finite-state transition systems can be modeled abstractly by a mathematical model called finite automation
Informally, a DFA (Deterministic Finite State Automaton) is a simple machine that reads an input string -- one
symbol at a time -- and then, after the input has been completely read, decides whether to accept or reject the
input. As the symbols are read from the tape, the automaton can change its state, to reflect how it reacts to
what it has seen so far. A machine for which a deterministic code can be formulated, and if there is only one
unique way to formulate the code, then the machine is called deterministic finite automata.
A tape to hold the input string. The tape is divided into a finite number of cells. Each cell holds a
symbol from .
A tape head for reading symbols from the tape
A control , which itself consists of 3 things:
o finite number of states that the machine is allowed to be in (zero or more states are
designated as accept or final states),
o a current state, initially set to a start state,
o a state transition function for changing the current state.
An automaton processes a string on the tape by repeating the following actions until the tape head has
traversed the entire string:
www.csetube.in
www.csetube.in
1.
2.
The tape head reads the current tape cell and sends the symbol s found there to the control. Then the
tape head moves to the next cell.
he control takes s and the current state and consults the state transition function to get the next state,
which becomes the new current state.
Once the entire string has been processed, the state in which the automation enters is examined. If it is an
accept state , the input string is accepted ; otherwise, the string is rejected . Summarizing all the above we can
formulate the following formal definition:
Deterministic Finite State Automaton : A Deterministic Finite State Automaton (DFA) is a 5-tuple :
is the next state transition function (which is total ). Intuitively, is a function that
tells which state to move to in response to an input, i.e., if M is in state q and sees input a, it moves to
.in
be
state
Acceptance of Strings :
tu
2.
se
1.
in Q such that
for all
3.
.c
The language accepted or recognized by a DFA M is the set of all strings accepted by M , and is denoted by
i.e.
That is,
is the state the automation reaches when it starts from the state q and finish processing the
string w. Formally, we can give an inductive definition as follows:
The language of the DFA M is the set of strings that can take the start state to one of the accepting states i.e.
L(M) = {
={
| M accepts w }
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 5
.in
Example 1 :
tu
be
se
It is a formal description of a DFA. But it is hard to comprehend. For ex. The language of the DFA is any string
over { 0, 1} having at least one 1
.c
We can describe the same DFA by transition table or state transition diagram as following:
Transition Table :
w/0 or in the i/p string. There can be any no. of 0's at the
on label 0 indicates it ). Similarly there can be any no. of 0's & 1's in any order
www.csetube.in
www.csetube.in
Transition table :
It is basically a tabular representation of the transition function that takes two arguments (a state and a symbol)
and returns a value (the next state).
.in
be
A state transition diagram or simply a transition diagram is a directed graph which can be constructed as
follows:
For each state in Q there is a node.
2.
5.
. Put
Here is an informal description how a DFA operates. An input to a DFA can be any string
a pointer to the start state q. Read the input string w from left to right, one symbol at a time, moving the
6.
.c
se
3.
4.
tu
1.
7.
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 6
.in
Definition : Let S be an alphabet. The regular expressions are defined recursively as follows.
i)
is a RE
ii)
is a RE
be
Basis :
tu
, a is RE.
iii)
If
and
.c
i)
ii)
iii)
iv)
se
Recursive Step :
Closure : r is RE over only if it can be obtained from the basis elements (Primitive REs) by a finite no of
applications of the recursive step (given in 2).
Example : Let = { 0,1,2 }. Then (0+21)*(1+ F ) is a RE, because we can construct this expression by
applying the above rules as given in the following step.
Steps
RE Constructed
Rule Used
1
1
Rule 1(iii)
2
3
Rule 1(i)
1+
www.csetube.in
www.csetube.in
4
1.
2.
be
) and L(
) respectively, then
) = L(
se
)=L(
) L(
) L(
)) = L(
iv) (
and
.c
iii)
} i.e. L( ) = { } .
tu
4. If
ii)
3.
i)
.in
Notation : If r is a RE over some alphabet then L(r) is the language associate with r . We can define the
language L(r) associated with (or described by) a REs as follows.
={
={
= L(0)*L(0) L(1)
, 0,00,000,........} {0}
{1}
, 0,00,000,........} {0,1}
Precedence Rule
Consider the RE ab + c. The language described by the RE can be thought of either L(a)L(b+c) or
L(ab) L(c) as provided by the rules (of languages described by REs) given already. But these two
represents two different languages lending to ambiguity. To remove this ambiguity we can either
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 6
.in
be
ii) It is also important to note that concatenation & union (+) operators are associative and union operation is
commutative.
Using these precedence rule, we find that the RE ab+c represents the language L(ab)
grouped as ((ab)+c).
se
tu
We can, of course change the order of precedence by using parentheses. For example, the language
represented by the RE a(b+c) is L(a)L(b+c).
Example : The RE ab*+b is grouped as ((a(b*))+b) which describes the language L(a)(L(b))*
Example : The RE (ab)*+b represents the language (L(a)L(b))*
L(b)
L(b).
.c
Example : It is easy to see that the RE (0+1)*(0+11) represents the language of all strings over {0,1} which are
either ended with 0 or 11.
Example : The regular expression r =(00)*(11)*1 denotes the set of all strings with an even number of 0's
denotes
r,
Solution : Every string in L(r) must contain 00 somewhere, but what comes before and what goes before is
completely arbitrary. Considering these observations we can write the REs as (0+1)*11(0+1)*.
Example : Considering the above example it becomes clean that the RE (0+1)*11(0+1)*+(0+1)*00(0+1)*
represents the set of string over {0,1} that contains the substring 11 or 00.
www.csetube.in
www.csetube.in
Example : Consider the RE 0*10*10*. It is not difficult to see that this RE describes the set of strings over {0,1}
that contains exactly two 1's. The presence of two 1's in the RE and any no of 0's before, between and after the
1's ensure it.
Example : Consider the language of strings over {0,1} containing two or more 1's.
Solution : There must be at least two 1's in the RE somewhere and what comes before, between, and after is
completely arbitrary. Hence we can write the RE as (0+1)*1(0+1)*1(0+1)*. But following two REs also represent
the same language, each ensuring presence of least two 1's somewhere in the string
i) 0*10*1(0+1)*
ii) (0+1)*10*10*
L(r) = {
.in
be
Solution : Though it looks similar to ex ., it is harder to construct to construct. We observer that, whenever
a 1 occurs, it must be immediately followed by a 0. This substring may be preceded & followed by any no of
0's. So the final RE must be a repetition of strings of the form: 000100.00 i.e. 0*100*. So it looks like the
RE is (0*100*)*. But in this case the strings ending in 1 or consisting of all 0's are not accounted for. Taking
these observations into consideration, the final RE is r = (0*100*)(1+ )+0*(1+ ).
tu
Alternative Solution :
The language can be viewed as repetitions of the strings 0 and 01. Hence get the RE as r = (0+10)*(1+
is a shorter expression but represents the same language.
se
).This
.c
Recall that, language that is accepted by some FAs are known as Regular language. The two concepts : REs
and Regular language are essentially same i.e. (for) every regular language can be developed by (there is) a
RE, and for every RE there is a Regular Langauge. This fact is rather suprising, because RE approach to
describing language is fundamentally differnet from the FA approach. But REs and FA are equivalent in their
descriptive power. We can put this fact in the focus of the following Theorem.
This Theorem has two directions, and are stated & proved below as a separate lemma
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 6
RE to FA :
REs denote regular languages :
Lemma : If L(r) is a language described by the RE r, then it is regular i.e. there is a FA such that
.in
L(M) L(r).
Proof : To prove the lemma, we apply structured index on the expression r. First, we show how to
be
Basis :
Case (i) :
. Then
. Then
se
tu
Use of NFAs is helpful in the case i.e. we construct NFAs for every REs which are represented by
transition diagram only.
Case (ii) :
.c
Formally
Since the start state is also the accept step, and there is no any transition defined, it will accept the only string
and nothing else.
www.csetube.in
www.csetube.in
Formally,
where
for
or
Induction :
and
and
and
.in
, respectively i.e.
se
tu
be
and
Each has an initial state and a final state. There are four cases to consider.
. We construct FA
as follows :
, from
.c
and give
www.csetube.in
and
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Name: Automata
Period: 6
final state of
and
and
and
is the only
. [ Formal Construction]
and
and give
.in
Unit No: I
of
be
by following transition of
tu
or
se
consuming any input. WLOG, assume that, it enters the start state of
.c
Say,
WLOG, say
or
Therefore when
process the string w , it starts at the initial state and enters the final state when w
w thus takes
. Therefore
must accept
-transition to
to accept
and taking
consuming input
. Hence proved
&
www.csetube.in
. We construct FA
from
www.csetube.in
to
o
2.
final state of
.in
- transition from
Add
be
1.
.
All the moves of
can accept
. Hence if any
.c
accepted by
se
of
and
tu
3.
namely
. Hence
accepts
is
can be
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 7
be
.in
tu
In contrast to a DFA, the next state is not necessarily uniquely determined by the current state and
input symbol in case of an NFA. (Recall that, in a DFA there is exactly one start state and exactly one
transition out of every state for each symbol in ).
This means that - in a state q and with input symbol a - there could be one, more than one or zero next
state to go, i.e. the value of
is a subset of Q. Thus
which means
- transitions :
.c
se
In an -transition, the tape head doesn't do anything- it doesnot read and it doesnot move. However, the state of
the automata can be changed - that is can go to zero, one or more states. This is written formally as
Acceptance :
starting from at least one start state leads to an accept state- otherwise, the
. Alternatively, we can say that,
www.csetube.in
www.csetube.in
from some start state to some accept state. Since there is no mechanism for determining which state to start
-transitions) in response to an input symbol we
in or which of the possible next moves to take (including the
can think that the automation is having some "guessing" power to chose the correct one in case the input is
accepted
{0, 1}* | The 3rd symbol from the right is 1}. The following four-
The m/c is not deterministic since there are two transitions from state
transition) from
on both 0 & 1.
must satisfy |
be
L?
(Of course,
and
.in
whose 3rd symbol from the right is a 1, there exists a sequence of legal transitions leading
any string
on any input until the 3rd symbol from the right is encountered.
.c
se
tu
&
in the next two steps on any input 0 or 1. But if the 3rd symbol from the right is
at that point, because of no transition defined
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 7
where Q,
be
.in
tu
From the discussion of the acceptance by an NFA, we can give the formal definition of a language accepted by
an NFA as follows :
Removing -transition:
such that
.c
se
If
- transitions do not increase the power of an NFA . That is, any - NFA ( NFA with transition), we can
always construct an equivalent NFA without -transitions. The equivalent NFA must keep track where the
NFA goes at every step during computation. This can be done by adding extra transitions for removal of
every - transitions from the - NFA as follows.
If we removed the
- transition
from the
which are reachable from state q (in the - NFA ) on same input symbol q. This
state on input symbol
will allow the modified NFA to move from state p to all states on some input symbols which were possible in
case of -NFA on the same input symbol. This process is stated formally in the following theories.
Theorem if L is accepted by an
accepting the same language L
Proof:
Let
be the given
with
We construct
www.csetube.in
without
transitions
www.csetube.in
for all
and
and
.c
se
tu
be
.in
Where,
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 8
.in
be
i.e.
tu
, then
.c
Basis :
se
by definition of
But
with
By definition of extension of
By inductions hypothesis.
Assuming that
By definition of
Since
www.csetube.in
www.csetube.in
To complete the proof we consider the case
i.e.
then
wherever
If
is not in F ), then
(and thus
state in N ( by the construction of N' and N ).
If
Let
in F ), thus
. If w cannot lead to
harm in making
in N , then
.c
se
tu
Transition Diagram
be
Also, if (
with
constrains a state in F.
.in
When
- moves
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Since
se
tu
Period: 8
.in
Name: Automata
be
Unit No: I
of
and
and
.c
Since
we add moves
www.csetube.in
and
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 9
-closures:
The concept used in the above construction can be made more formal by defining the -closure for a state (or
a set of states). The idea of -closure is that, when moving from a state p to a state q (or from a set of states
-moves that could be made after the
.in
-closures:
be
-closures:
now be written as
se
tu
.c
It is worth noting that a DFA is a special type of NFA and hence the class of languages accepted by DFA s is a
subset of the class of languages accepted by NFA s. Surprisingly, these two classes are in fact equal. NFA s
appeared to have more power than DFA s because of generality enjoyed in terms of -transition and multiple
next states. But they are no more powerful than DFA s in terms of the languages they accept.
Proof: A DFA is just a special type of an NFA . In a DFA , the transition functions is defined from
as follows.
i. e
If
and
www.csetube.in
and
be a DFA .
www.csetube.in
If
such that
Then it is clear from the above construction of N that there is a sequence of states (in N)
such that
and hence
and
Hence ,
There are
.in
Given any NFA we need to construct as equivalent DFA i.e. the DFA need to simulate the behaviour of the
NFA . For this, the DFA have to keep track of all the states where the NFA could be in at every step during
processing a given input string.
possible subsets of states for any NFA with n states. Every subset corresponds to one of the
possibilities that the equivalent DFA must keep track of. Thus, the equivalent DFA will have
states.
be
The formal constructions of an equivalent DFA for any NFA is given below. We first consider an NFA without
transitions and then we incorporate the affects of transitions later.
without
as follows
.c
i.e.
se
Given an
transitions.
tu
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Unit No: I
Name: Automata
of
Period: 9
.in
and
for all
be
where
tu
That is,
.c
se
To show that this construction works we need to show that L(D)=L(N) i.e.
Or,
Basis If
=0, then w =
So,
by definition.
www.csetube.in
www.csetube.in
Let
, then
with
.in
Now,
be
Now, given any NFA with -transition, we can first construct an equivalent NFA without -transition and then
use the above construction process to construct an equivalent DFA , thus, proving the equivalence of NFA s
and DFA s..
It is also possible to construct an equivalent DFA directly from any given NFA with
the concept of -closure in the above construction.
tu
-transition by integrating
se
- closure :
In the equivalent DFA , at every step, we need to modify the transition functions
.c
by
-closure
Besides this the initial state of the DFA D has to be modified to keep track of all the states that can be reached
from the initial state of NFA on zero or more -transitions. This can be done by changing the initial state
to
-closure (
).
It is clear that, at every step in the processing of an input string by the DFA D , it enters a state that
corresponds to the subset of states that the NFA N could be in at that particular point. This has been proved in
the constructions of an equivalent NFA for any -NFA
www.csetube.in
www.csetube.in
R/TP/02
Lecture Plan
Code & Name of Subject: CS2303, Theory of Computation
Issue: C Rev.01
Page
Name: Automata
Period: 9
.in
Unit No: I
of
be
tu
- closures
.c
se
There will be
states (representing all possible subset of states) in the equivalent DFA . The transition
table of the DFA constructed by using the subset constructions process is produced here.
www.csetube.in
(since
in the
be
.in
www.csetube.in
are not accessible and hence can be removed. This gives us the
.c
se
tu
1.
It is interesting to note that we can avoid encountering all those inaccessible or unnecessary states in the
equivalent DFA by performing the following two steps inductively.
2.
- closure (
Following these steps in the above example, we get the transition table given below
0
www.csetube.in
. compute