Chapter Two Regular Expression
Chapter Two Regular Expression
Chapter Two
RE Introduction…
Example 2:
Write the regular expression for the language accepting all combinations of a's
except the null string, over the set ∑ = {a}
The regular expression has to be built for the language
L = {a, aa, aaa, ....}
This set indicates that there is no null string. So we can denote regular expression
as: R = a+
Cont’d
Example 3:
Write the regular expression for the language accepting all the string containing any
number of a's and b's.
The regular expression will be:
r.e. = (a + b)*
This will give the set as L = {ε, a, aa, b, bb, ab, ba, aba, bab, .....}, any combination of a
and b.
The (a + b)* shows any combination with a and b even a null string.
Examples of Regular Expression
Example 1:
Write the regular expression for the language accepting all the string which are starting
with 1 and ending with 0, over ∑ = {0, 1}.
In a regular expression, the first symbol should be 1, and the last symbol should be 0. The
r.e. is as follows:
R = 1 (0+1)* 0
Example 2:
Write the regular expression for the language starting and ending with a and having any
having any combination of b's in between.
The regular expression will be:
R = a b* b
Cont’d
Example 3:
Write the regular expression for the language starting with a but not having consecutive b's.
Solution: The regular expression has to be built for the language:
L = {a, aba, aab, aba, aaa, abab, .....}
Example 4:
Write the regular expression for the language accepting all the string in which any number of a's
is followed by any number of b's is followed by any number of c's.
Solution: As we know, any number of a's means a* any number of b's means b*, any number of
c's means c*.
R = a* b* c*
Conversion of RE to FA
To convert the RE to FA, we are going to use a method called the subset method.
This method is used to obtain FA from the given regular expression. This method is given
below:
Step 1: Design a transition diagram for given regular expression, using NFA with ε moves.
Step 2: Convert this NFA with ε to NFA without ε.
Step 3: Convert the obtained NFA to equivalent DFA.
Cont’d
Example 1:
Design a FA from given regular expression 10 + (0 + 11)0* 1.
Step 1
Step2
Cont’d
Step3
Step 4
Cont’d
Step5
Example2
The Arden's Theorem is useful for checking the equivalence of two regular expressions
as well as in the conversion of DFA to a regular expression.
Let us see its use in the conversion of DFA to a regular expression.
Following algorithm is used to build the regular expression form given DFA.
1. Let q1 be the initial state.
2. There are q2, q3, q4 ....qn number of states. The final state may be some qj where j<= n.
3. Let αji represents the transition from qj to qi.
4. Calculate qi such that
Cont’d
If P and Q are regular expressions over ∑ and P does not contain ɛ, the following
equation by R is given by:
R=Q+RP has unique solution i.e R=QP*
R=Q+QP*P ….replace R by QP*
R=Q(ɛ +P*P)…P*=(ɛ +P*P)
R=QP*
Example:
Solution:
Let us write down the equations
q1 = q1 0 + ε
Since q1 is the start state, so ε will be added, and the input 0 is coming to q1 from q1
hence we writeState = source state of input × input coming to it
Cont’d
q2 = q1 1 + q2 1
q3 = q2 0 + q3 (0+1)
q1 = q1 0 + ε
We can re-write it as q1 = ε + q1 0
Which is similar to R = Q + RP, and gets reduced to R = OP*.
Assuming R = q1, Q = ε, P = 0
We get :
q1 = ε.(0)*
q1 = 0* (ε.R*= R*)
Cont’d
q2 = 0* 1 + q2 1
q2 = 0* 1 (1)* (R = Q + RP → Q P*)
r = q1 + q2
= 0* + 0* 1.1*
r = 0* + 0* 1+ (1.1* = 1+)
Moore Machine
Moore machine is a finite state machine in which the next state is decided by the current
state and current input symbol.
The output symbol at a given time depends only on the present state of the machine.
Moore machine can be described by 6 tuples (Q, q0, ∑, O, δ, λ) where,
Q: finite set of states
q0: initial state of machine
∑: finite set of input symbols
O: output alphabet
δ: transition function where Q × ∑ → Q
λ: output function where Q → O
Example 1:
In the above Moore machine, the output is represented with each input state separated by /.
The output length for a Moore machine is greater than input by 1.
Input: 010
Transition: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
Output: 1110(1 for q0, 1 for q1, again 1 for q1, 0 for q2)
Example 2:
A Mealy machine is a machine in which output symbol depends upon the present input
symbol and present state of the machine.
In the Mealy machine, the output is represented with each input symbol for each state
separated by /.
The Mealy machine can be described by 6 tuples (Q, q0, ∑, O, δ, λ') where
Q: finite set of states
q0: initial state of machine
∑: finite set of input alphabet
O: output alphabet
δ: transition function where Q × ∑ → Q
λ': output function where Q × ∑ →O
Example 1:
Design a Mealy machine for a binary input sequence such that if it has a substring 101, the
machine output A, if the input has substring 110, it outputs B otherwise it outputs C.
Solution: For designing such a machine, we will check two conditions, and those are 101
and 110.
If we get 101, the output will be A. If we recognize 110, the output will be B. For other
strings the output will be C.
Now we will insert the possibilities of 0's and 1's for each state. Thus the Mealy machine
becomes:
Conversion from Mealy machine to Moore
Machine
In Moore machine, the output is associated with every state, and in Mealy machine, the output is given
along the edge with input symbol.
To convert Moore machine to Mealy machine, state output symbols are distributed to input symbol
paths.
But while converting the Mealy machine to Moore machine, we will create a separate state for every
new output symbol and according to incoming and outgoing edges are distributed.
The following steps are used for converting Mealy machine to the Moore machine:
Step 1: For each state(Qi), calculate the number of different outputs that are available in the transition
table of the Mealy machine.
Step 2: Copy state Qi, if all the outputs of Qi are the same. Break qi into n states as Qin, if it has n
distinct outputs where n = 0, 1, 2....
Step 3: If the output of initial state is 0, insert a new initial state at the starting which gives 1 output.
• For state q1, there is only one incident edge with output 0. So, we don't
need to split this state in Moore machine.
• For state q2, there is 2 incident edge with output 0 and 1. So, we will
split this state into two states q20( state with output 0) and q21(with
output 1).
• For state q3, there is 2 incident edge with output 0 and 1. So, we will
split this state into two states q30( state with output 0) and q31( state
with output 1).
• For state q4, there is only one incident edge with output 0. So, we don't
need to split this state in Moore machine.
Transition diagram for Moore machine will be:
Conversion from Moore machine to Mealy
Machine
In the Moore machine, the output is associated with every state, and in the mealy
machine, the output is given along the edge with input symbol.
The equivalence of the Moore machine and Mealy machine means both the
machines generate the same output string for same input string.
We cannot directly convert Moore machine to its equivalent Mealy machine
because the length of the Moore machine is one longer than the Mealy machine
for the given input.
To convert Moore machine to Mealy machine, state output symbols are distributed
into input symbol paths.
We are going to use the following method to convert the Moore machine to
Mealy machine.
Method for conversion of Moore machine to Mealy machine
Q a b Output(λ)
q0 q0 q1 0
q1 q0 q1 1
The equivalent Mealy machine can be obtained
as follows:
The equivalent Mealy machine can be obtained as follows:
λ' (q0, a) = λ(δ(q0, a))
= λ(q0)
=0
λ' (q0, b) = λ(δ(q0, b))
= λ(q1)
=1
The λ for state q1 is as follows:
Hence the transition table for the Mealy machine can be drawn as follows:
Thank you
Any Question???