Upload
meljun-cortes-mbampa
View
223
Download
0
Embed Size (px)
Citation preview
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
1/32
CSC 3130: Automata theory and formal languages
Andrej Bogdanov
http://www.cse.cuhk.edu.hk/~andrejb/csc3130
Regular expressions
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
2/32
Operations on strings
Given two strings s = a1an and t = b1bm, wedefine theirconcatenationst = a1anb1bm
We define snas the concatenation sssntimes
s = abb, t = cba st = abbcba
s = 011 s
3
= 011011011
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
3/32
Operations on languages
The concatenation of languages L1 and L2 is
Similarly, we write Ln forLLL(ntimes)
The union of languages L1L2 is the set of all
strings that are in L1 or in L2
Example:L1 = {01, 0}, L2 = {e, 1, 11, 111, }.What isL1L2 and L1L2?
L1L2 = {st: s L1, t L2}
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
4/32
Operations on languages
The star(Kleene closure) ofLare all stringsmade up of zero or more chunks from L:
This is always infinite, and always contains e
Example:L1 = {01, 0}, L2 = {e, 1, 11, 111, }.What isL1
* and L2*?
L* = L0L1L2
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
5/32
Constructing languages with operations
Lets fix an alphabet, say S = {0, 1} We can construct languages by starting with
simple ones, like {0}, {1} and combining them
{0}({0}{1})*all strings that start with
0
({0}{1}*)({1}{0}*)
0(0+1)*
01*+10*
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
6/32
Regular expressions
A regular expression overS is an expressionformed using the following rules:
The symbol is a regular expression
The symbol e is a regular expression
For every a S, the symbol a is a regular expression
IfRand S are regular expressions, so are RS, R+S and
R*.
Definition of regular language
A language is regularif it is represented
by a regular expression
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
7/32
Examples
1. 01* = {0, 01, 011, 0111, ..}
2. (01*)(01) = {001, 0101, 01101, 011101, ..}
3. (0+1)*
4. (0+1)*01(0+1)*
5. ((0+1)(0+1)+(0+1)(0+1)(0+1))*
6. ((0+1)(0+1))*+((0+1)(0+1)(0+1))*
7. (1+01+001)*(e+0+00)
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
8/32
Examples
Construct a RE overS= {0,1} that representsAll strings that have two consecutive 0s.
All strings except those with two consecutive0s.
All strings with an even numberof0s.
(0+1)*00(0+1)*
(1*01)*1* + (1*01)*1*0
(1*01*01*)*
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
9/32
Main theorem for regular languages
Theorem
A language is regularif and only if it is the
language of some DFA
DFA NFAregular
expression
regular languages
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
10/32
Proof plan
For every regular expression, we have to give aDFA for the same language
For every DFA, we give a regular expression forthe same language
eNFAregularexpression
NFA DFA
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
11/32
What is an eNFA?
An eNFA is an extension of NFA where sometransitions can be labeled by e
Formally, the transition function of an eNFA is a
function
d:Q (S {e}) subsets ofQ
The automaton is allowed to follow e-transitions
without consuming an input symbol
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
12/32
Example ofeNFA
q0 q1 q2e,b
a
a
eS = {a, b}
Which of the following is accepted by this eNFA:
aab, bab, ab, bb, a,e
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
13/32
M2
Examples: regular expression eNFA
R1 = 0
R2 = 0 + 1
R3 = (0 + 1)*
q0 q10
q0 q1
e
ee
e q2 q30
q4 q51
q0 q1eM2
e
e
e
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
14/32
General method
regular expr eNFA
q0
e q0
symbol a q0 q1a
RS q0 q1eMR MS
ee
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
15/32
Convention
When we draw a box around an eNFA: The arrow going in points to the start state
The arrow going out represents all transitions going
out of accepting states
None of the states inside the box is accepting The labels of the states inside the box are distinct from
all other states in the diagram
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
16/32
General method continued
regular expr eNFA
R+ S q0 q1
eMR
MSee
e
R* q0 q1eMR
e
ee
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
17/32
Road map
eNFA
regularexpression
NFA
DFA
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
18/32
Example ofeNFA to NFA conversion
q0 q1 q2e,b a
a
eeNFA:
Transition table of corresponding NFA:
states
inputs
a b
q0q1
q2
{q1, q2}{q0, q1, q2}
{q0, q1, q2}
Accepting states of NFA:{q0, q1, q2}
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
19/32
Example ofeNFA to NFA conversion
q0 q1 q2e,b a
a
eeNFA:
NFA: q0 q1 q2a, b
a
a
a
a, b
a
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
20/32
General method
To convert an eNFA to an NFA: States stay the same
Start state stays the same
The NFA has a transition from qi to qj labeled a iff the
eNFA has a path from qi to qj that contains onetransition labeled a and all other transitions labeled e
The accepting states of the NFA are all states that can
reach some accepting state ofeNFA using only e-
transitions
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
21/32
Why the conversion works
In the originale-NFA, when given input a1a2an theautomaton goes through a sequence of states:
q0 q1 q2 qm
Some e-transitions may be in the sequence:
q0 ... qi1 ... qi2 qin
In the new NFA, each sequence of states of theform:
qik ... qik+1
will be represented by a single transitionqik qik+1
because of the way we construct the NFA.
e e e e e ea1
a2
e eak+1
ak+1
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
22/32
Proof that the conversion works
More formally, we have the following invariant forany k 1:
We prove this by induction on k
When k = 0, the eNFA can be in more states,while the NFA must be in q0
After reading k input symbols, the set of
states that the eNFA and NFA can be in
are exactly the same
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
23/32
Proof that the conversion works
When k 1 (input is not the empty string) IfeNFA is in an accepting state, so is NFA
Conversely, if NFA is an accepting state qi, then some
accepting state ofeNFA is reachable from qi, so eNFA
accepts also
When k = 0 (input is the empty string)
The eNFA accepts iff one of its accepting states isreachable from q0
This is true iffq0 is an accepting state of the NFA
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
24/32
From DFA to regular expressions
eNFA
regularexpression
NFA
DFA
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
25/32
Example
Construct a regular expression for this DFA:
1
1
0
0
q1 q2
(0 + 1)*0 + e
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
26/32
General method
We have a DFA M with states q1, q2,qn We will inductively define regular expressions Rij
k
Rijk will be the set of all strings that take M from
qi to qjwith intermediate states going throughq1, q2, orqkonly.
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
27/32
Example
1
1
0
0
q1 q2
R110 = {e, 0} = e + 0
R120 = {1} = 1
R22
0 = {e, 1} = e + 1
R111 = {e, 0, 00, 000, ...}= 0*
R121 = {1, 01, 001, 0001, ...}= 0*1
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
28/32
General construction
We inductively define Rijk
as:Rii
0 = ai1+ ai2
+ + ait+ e
(all loops around qiand
e)
(all qi qj)
Rijk
= Rijk-1
+ Rikk-1
(Rkkk-1
)*Rkjk-1
a path in Mqi
qk
qj
Rij0 = ai1
+ ai2+ + ait if
ij
ai1,ai2
,,aitqi
qi qjai1,ai2,,ait
(fork > 0)
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
29/32
Informal proof of correctness
Each execution of the DFA using states q1, q2,qk will look like this:
qi qk qk qk qj
intermediate parts use
only states q1, q2, qk-1
Rikk-1 (Rkk
k-1)* Rkjk-1Rij
k-1 +
state qk is
never visited
or
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
30/32
Final step
Suppose the DFA start state is q1, and theaccepting states are F = {qj1 qj2
qjt}
Then the regular expression for this DFA is
R1j1n+ R1j2
n+ .. + R1jtn
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
31/32
All models are equivalent
eNFA
regular
expression
NFA
DFA
A language is regulariff it is accepted by aDFA, NFA, eNFA, or regular expression
7/31/2019 MELJUN CORTES -- AUTOMATA THEORY LECTURE - 3
32/32
Example
Give a RE for the following DFA using thismethod:
1
1
0
0
q0 q1