BCS313 L6 Epsilon in NFAs
BCS313 L6 Epsilon in NFAs
In the context of NFAs, ε marks state transitions that do not consume input. These
transitions thus express the non-determinism of the automaton. It's the empty string,
so a string of length zero.
When discussing the acceptance of ε, the symbol marks the empty string (this is
equivalent to the condition that an accepting state is reachable by a sequence of ε-
transitions from the start state). to avoid confusion, some authors use a different
symbol for the empty string (often λ).
The ε closure(P) is a set of states which are reachable from state P on ε-transitions.
Example
Find ε-closure for the following Non-deterministic finite automata (NFA) with
epsilon.
Solution
Solution −
The epsilon closure set of f2 consist of the elements − {f2, f3}. Therefore, the count
of the element in the closure set is 2.
Eliminating ε Transitions
NFA with ε can be converted to NFA without ε, and this NFA without ε can be
converted to DFA. To do this, we will use a method, which can remove all the ε
transition from given NFA. The method will be:
1. Find out all the ε transitions from each state from Q. That will be called as ε-
closure{q1} where qi ∈ Q.
2. Then δ' transitions can be obtained. The δ' transitions mean a ε-closure on δ
moves.
3. Repeat Step-2 for each input symbol and each state of given NFA.
4. Using the resultant states, the transition table for equivalent NFA without ε
can be built.
Example:
. ε-closure(q0) = {q0}
. ε-closure(q1) = {q1, q2}
. ε-closure(q2) = {q2}
Now the δ' transition on each input symbol is obtained as:
States a b
→q0 {q1, q2} Ф
*q1 Ф {q2}
*q2 Ф {q2}
State q1 and q2 become the final state as ε-closure of q1 and q2 contain the final
state q2. The NFA can be shown by the following transition diagram:
In this section, we will discuss the method of converting NFA to its equivalent DFA.
In NFA, when a specific input is given to the current state, the machine goes to
multiple states. It can have zero, one or more than one move on a given input symbol.
On the other hand, in DFA, when a specific input is given to the current state, the
machine goes to only one state. DFA has only one move on a given input symbol.
Let, M = (Q, ∑, δ, q0, F) is an NFA which accepts the language L(M). There should
be equivalent DFA denoted by M' = (Q', ∑', q0', δ', F') such that L(M) = L(M').
Step 2: Add q0 of NFA to Q'. Then find the transitions from this start state.
Step 3: In Q', find the possible set of states for each input symbol. If this set of states
is not in Q', then add it to Q'.
Step 4: In DFA, the final state will be all the states which contain F(final states of
NFA)
Example 1:
Solution: For the given transition diagram we will first construct the transition table.
State 0 1
→q0 q0 q1
q1 {q1, q2} q1
*q2 q2 {q1, q2}
Now we will obtain δ' transition for state q0.
. δ'([q0], 0) = [q0]
. δ'([q0], 1) = [q1]
The δ' transition for state q1 is obtained as:
. δ'([q2], 0) = [q2]
. δ'([q2], 1) = [q1, q2]
Now we will obtain δ' transition on [q1, q2].
State 0 1
→[q0] [q0] [q1]
[q1] [q1, q2] [q1]
*[q2] [q2] [q1, q2]
*[q1, q2] [q1, q2] [q1, q2]
The Transition diagram will be:
Example 2:
State 0 1
→q0 {q0, q1} {q1}
*q1 ϕ {q0, q1}
Now we will obtain δ' transition for state q0.
. δ'([q1], 0) = ϕ
. δ'([q1], 1) = [q0, q1]
Now we will obtain δ' transition on [q0, q1].
State 0 1
→[q0] [q0, q1] [q1]
*[q1] ϕ [q0, q1]
*[q0, q1] [q0, q1] [q0, q1]
The Transition diagram will be:
Suppose
. A = [q0]
. B = [q1]
. C = [q0, q1]
With these new names the DFA will be as follows:
Questions
1. Differentiate between epsilon and epsilon clossures
2. Define epsilon and show how it can be eliminated from an NFA
3. State the steps of converting from an NFA to DFA and use one example to
demonstrate the conversion