• Aucun résultat trouvé

Équivalence entre DFA et NFA

Dans le document Théorie des langages et de la compilation (Page 71-94)

É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 012. 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 qF

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 qF

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 10 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 10 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+10(!+0+1)

R(2)12 10+10(!+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+10(!+0+1)

R(2)12 10+10(!+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 10(0+1) R(2)21

R(2)22 (0+1) The final regex forAis

R(2)12 =10(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

Dans le document Théorie des langages et de la compilation (Page 71-94)

Documents relatifs