Écrire un NFA supprime la contrainte du déterminisme
mais nous montrons que pour tout NFANon peut construire un DFAD équivalent (càdL(D) =L(N)) et vice-versa.
on utilise la technique de laconstruction de sous-ensembles : chaque état deDcorrespond à un ensemble d’états deN
C(NFA) ⊆ C(DFA)
Théorème (Pour tout NFAN, il existe un DFADavecL(N) =L(D)) Preuve :
Soit un NFA N :
N=hQN,Σ, δN,q0,FNi définissons (construisons) le DFA D :
D=hQD,Σ, δD,{q0},FDi avec
QD={S|S⊆QN}(càd QD =2QN) FD ={S⊆QN |S∩FN 6=∅}
Pour tout S⊆QN et a∈Σ,
δD(S,a) =δN(S,a) (= [
p∈S
δN(p,a))
Notons que|QD|=2|QN|(bien qu’en général, beaucoup d’états soient inutiles car inaccessibles)
C(NFA) ⊆ C(DFA) (suite)
Exemple (NFANet DFADéquivalent)
b
5 états sont inaccessibles b
{q }
Les langages réguliers et expressions régulières Les automates finis Equivalence entre FA et RE
Exemple de!-NFA Exemple
Le!-NFAMaccepte l’ensemble des strings sur l’alphabet{0,1,2}qui correspond à l’expression régulière 0∗1∗2∗. et le diagramme de transition :
0 1 2
Les langages réguliers et expressions régulières Les automates finis
Configuration et langage accepté
Définition (Configuration d’un FA) Couple<q,w>∈ Q×Σ∗
Configuration initiale :<q0,w>où w est le string à accepter Configuration finale (qui accepte) :<q,!>avec q∈F
Définition (Changement de configuration)
<q,aw>#M<q",w>si
δ(q,a) =q"pour un DFA
q"∈δ(q,a)pour un NFA
q"∈δ(q,a)pour un NFA!avec a∈Σ∪{!}
#∗est la fermeture réflexo-transitive de#
Les langages réguliers et expressions régulières Les automates finis
Configuration et langage accepté
Définition (Configuration d’un FA) Couple<q,w>∈ Q×Σ∗
Configuration initiale :<q0,w>où w est le string à accepter Configuration finale (qui accepte) :<q,!>avec q∈F
Définition (Changement de configuration)
<q,aw>#M<q",w>si
δ(q,a) =q"pour un DFA
q"∈δ(q,a)pour un NFA
q"∈δ(q,a)pour un NFA!avec a∈Σ∪{!}
#∗est la fermeture réflexo-transitive de#
q0 q
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(NFA) ⊆ C(DFA) (fin)
Théorème (Pour tout NFAN, il existe un DFADavecL(N) =L(D)) Preuve (suite) :
On va montrer que L(D) =L(N) Il suffit de montrer par induction que :
δˆD({q0},w) = ˆδN(q0,w)
Base : (w=) :OKpar définition desδˆ Induction : (w=xa)
δˆD({q0},xa) def= δD(ˆδD({q0},x),a)
h.i= δD(ˆδN(q0,x),a)
cst= δN(ˆδN(q0,x),a)
def= ˆδ (q ,xa)
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(NFA) ⊆ C(DFA) (suite)
Exemple (NFANavecn+1 états qui a un DFADéquivalent à 2nétats) Exponential Blow-Up
There is an NFAN with n+ 1 states that has no equivalent DFA with fewer than 2n states
Start
Suppose an equivalent DFA D with fewer than 2n states exists.
D must remember the last n symbols it has read.
There are 2n bitsequences a1a2· · ·an
∃q, a1a2· · ·an, b1b2· · ·bn:q∈ˆδN(q0, a1a2· · ·an), q∈ˆδN(q0, b1b2· · ·bn),
75
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(NFA) = C(DFA)
+Flèches 1 + 2 :
e-NFA NFA
DFA RE
1 2
3 4
5 6
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(NFA) = C(DFA)
Théorème (Un langageLest accepté par un DFA si et seulement siLest accepté par un NFA)
Preuve :
si⇐voir théorème précédant seulement si⇒
Il suffit à partir du DFA D de construire un NFA N avec siδD(q,a) =p alorsδN(q,a) ={p}
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(-NFA) ⊆ C(DFA)
+ Flèche 3 :
e-NFA NFA
DFA RE
1 2
3 4
5 6
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(-NFA) ⊆ C(DFA)
Théorème (Pour tout-NFAE, il existe un DFADavecL(E) =L(D)) Preuve :
Soit un-NFA E :
E=hQE,Σ, δE,q0,FEi définissons (construisons) le DFA D :
D=hQD,Σ, δD,qD,FDi avec :
QD={S|S⊆QE∧S=eclose(S)}
qD=eclose(q0)
FD ={S|S∈QD∧S∩FE6=∅}
Pour tout S∈QDet a∈Σ,
C(-NFA) ⊆ C(DFA) (suite)
Exemple (-NFAExample:Eet DFA!-NFADéquivalent)E
q q q q q
DFA D corresponding to E
Start Example: !-NFAE
q q q q q
DFA Dcorresponding to E
Start
C(-NFA) ⊆ C(DFA)
Théorème (Pour tout-NFAE, il existe un DFADavecL(E) =L(D)) Preuve (suite) :
On va montrer que L(D) =L(E). Il suffit de montrer par induction que : δˆE({q0},w) = ˆδD(qD,w)
Base : (w=) :
δˆE({q0}, ) =eclose(q0) =qD = ˆδ(qD, ) Induction : (w=xa)
ˆδE({q0},xa) def de=ˆδE eclose(δE(ˆδE({q0},x),a))
h.i.= eclose(δE(ˆδD(qD,x),a))
cst= δD(ˆδD(qD,x),a)
def deˆδD
= δˆD(qD,xa)
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(-NFA) = C(DFA)
+Flèches 3 + 4 :
e-NFA NFA
DFA RE
1 2
3 4
5 6
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(-NFA) = C(DFA)
Théorème (Un langageLest accepté par un DFA si et seulement siLest accepté par un-NFA)
Preuve :
si⇐voir théorème précédent seulement si⇒
Il suffit à partir du DFA D de construire un-NFA E avec siδD(q,a) =p alorsδE(q,a) ={p}
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE)
+ Flèche 5 :
e-NFA NFA
DFA RE
1 2
3 4
5 6
C(DFA) ⊆ C(RE)
Théorème (Pour tout DFAD, il existe une RERavecL(R) =L(D)) Preuve :
Soit le DFA D=hQD,Σ, δ,q1,Fiavec : QD={q1,q2, . . . ,qn}
On définit l’expression régulièreRijkdécrivant l’ensemble des labels correspondants à tous lescheminsde D
partant de l’état qi
aboutissant à l’état qj
et ne traversant que des états de l’ensemble{q1, . . . ,qk} Theorem 3.4:For every DFAA= (Q,Σ,δ, q0, F) there is a regexR, s.t.L(R) =L(A).
Proof: Let the states of A be {1,2, . . . , n}, with 1 being the start state.
• Let R(k)ij be a regex describing the set of labels of all paths inA from statei to state j going through intermediate states{1, . . . , k}
only.
i
k
j
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE)
Théorème (Pour tout DFAD, il existe une RERavecL(R) =L(D)) Preuve : (suite)
On va définir Rijkde façon inductive. Notons que L“
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE)
Théorème (Pour tout DFAD, il existe une RERavecL(R) =L(D)) Preuve : (suite 2)
Induction :(de la définition de Rijk)
Rijk =Rijk−1+Rikk−1(Rkkk−1)∗Rkkj−1
Zero or more strings in
In In
j
string de R ik
k-1 string de R
kj 0 ou plus de strings de R
{
kkk-1 k-1{ {
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE)
Exemple (Pour le DFAExample: Let’s findA, construction de l’RER forA, where RavecL(R) =L(A)) L(A) ={x0y:x∈{1}∗ and y∈{0,1}∗}
1
Start 0 0,1
1 2
R(0)11 !+1 R(0)12 0 R(0)21 ∅
R(0)22 !+0+1
88
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE)
Quelques règles de simplification des RE (+R)∗=R∗
R+RS∗=RS∗
∅R=∅=R∅
∅+R=R+∅=R
C(DFA) ⊆ C(RE)
Exemple (Pour le DFAA, construction de l’RERavecL(R) =L(A))
R(0)11 !+1 R(0)12 0 R(0)21 ∅ R(0)22 !+0+1
R(1)ij =R(0)ij +R(0)i1 !R(0)11"∗R(0)1j
By direct substitution Simplified R(1)11 !+1+ (!+1)(!+1)∗(!+1) 1∗ R(1)12 0+ (!+1)(!+1)∗0 1∗0 R(1)21 ∅+∅(!+1)∗(!+1) ∅ R(1)22 !+0+1+∅(!+1)∗0 !+0+1
Par substitution directe Simplifié
C(DFA) ⊆ C(RE)
Exemple (Pour le DFAA, construction de l’RERavecL(R) =L(A))
Simplified R(1)11 1∗ R(1)12 1∗0 R(1)21 ∅ R(1)22 !+0+1
R(2)ij =R(1)ij +R(1)i2 !R(1)22"∗R2j(1)
By direct substitution R(2)11 1∗+1∗0(!+0+1)∗∅
R(2)12 1∗0+1∗0(!+0+1)∗(!+0+1) R(2)21 ∅+ (!+0+1)(!+0+1)∗∅
R(2)22 !+0+1+ (!+0+1)(!+0+1)∗(!+0+1) Simplifié
Par substitution directe
C(DFA) ⊆ C(RE)
Exemple (Pour le DFAA, construction de l’RERavecL(R) =L(A))
By direct substitution R(2)11 1∗+1∗0(!+0+1)∗∅
R(2)12 1∗0+1∗0(!+0+1)∗(!+0+1) R(2)21 ∅+ (!+0+1)(!+0+1)∗∅
R(2)22 !+0+1+ (!+0+1)(!+0+1)∗(!+0+1) Simplified
R(2)11 1∗
R(2)12 1∗0(0+1)∗ R(2)21 ∅
R(2)22 (0+1)∗ The final regex forAis
R(2)12 =1∗0(0+1)∗ Par substitution directe
Simplifié
La RE finale pour A est :
Les langages réguliers et expressions régulières Les automates finis Équivalence entre FA et RE Autres types d’automates finis Propriétés des langages réguliers Équivalence et minimisation d’automates finis
C(DFA) ⊆ C(RE) : Observations
La méthode fonctionne aussi avec des NFA ou-NFA Il y an3expressionsRijk
Chaque pas inductif quadruple la taille de l’expression Rijnpeut avoir une taille 4n
Pour tout{i,j} ⊆ {1, . . . ,n},Rijk utiliseRkij−1 donc on doit écriren2fois l’expressionRkkk−1
⇒Il faut trouver une méthode plus efficace : latechnique d’élimination d’états