Академический Документы
Профессиональный Документы
Культура Документы
abb
A = ({e
0
, e
1
, e
2
, e
3
}, {a, b}, , e
0
, {e
3
}) o` u est deni par :
Etat
Symbole dentree
a b
0 1 0
1 1 2
2 1 3
3 1 0
Representation schematique :
debut
\
0
a
\
1
b
a
_
\
2
b
_ `
a
\
3
`
b
_ `
) (e, a) = e
o` u a , u
et e, e
E.
Conguration suivant
Une conguration K
A
K
telle que
K
i
A
K
i +1
pou chaque i {0, 1, . . . , r 2}.
AFD AFN Operations Lemme de pompage Reconnaisseur Denition Exemple Conguration Acceptation 6/ 36
Acceptation
Un automate ni lit lentree une seule fois en passant la tete de lecture
de gauche `a droite sans se retourner. Lautomate accepte un mot sil
arrive dans un etat dacceptation apr`es avoir lu le mot au total.
Denition
Le langage L est accepte par un AFD A si L est deni par
L = L(A) = {m
|(m, e
0
)
A
(, e), e F}
Exemple
A = ({e
0
, e
1
}, {a, b}, , e
0
, {e
0
})
a b
e
0
e
0
e
1
e
1
e
1
e
1
L(A) = {a
n
|n N}
AFD AFN Operations Lemme de pompage Denition Exemple Acceptation Graphe 7/ 36
Automate ni Non Deterministe
Un automate ni non deterministe (AFN) est deni par
A = (E, , , e
0
, F) o` u
E est un ensemble ni detats
est un ensemble ni de symboles dentree
(E ) E est une relation de transition
e
0
est un etat de depart
F E est lensemble des etats dacceptation
Au contraire dun AFD, une transition dun AFN (e, a) peut avoir
plusieurs valeurs : (e, a) Z.
En consequence, pour un AFN A une conguration suivant nest plus
uniquement determinee : (au, e)
A
(u, e
) e
(e, a) o` u a ,
u
et e, e
E.
AFD AFN Operations Lemme de pompage Denition Exemple Acceptation Graphe 8/ 36
Exemple
En reprenant lexpression reguli`ere (a|b)
abb
A = ({e
0
, e
1
, e
2
, e
3
}, {a, b}, , e
0
, {e
3
}) o` u est deni par :
Etat
Symbole dentree
a b
0 {0, 1} {0}
1 {2}
2 {3}
Representation schematique :
debut
\
0
a
\
1
b
\
2
b
\
3
Exemples de chanes reconnues : abb, aaaaabb, abbabb, abaababb
AFD AFN Operations Lemme de pompage Denition Exemple Acceptation Graphe 9/ 36
Acceptation
Le langage L est accepte par un AFN A si L est deni par
L = L(A) = {m
|(m, e
0
)
A
(, e), e F}
On voit facilement que par denition chaque AFD est aussi un AFN.
Dautre part, generalement un AFN nest pas toujours un AFD.
AFD AFN Operations Lemme de pompage Denition Exemple Acceptation Graphe 10/ 36
Graphe de transition
La fonction de transition dun AFD ou la relation de transition dun AFN
peuvent etre representees par un graphe oriente appele graphe de
transition.
Les noeuds du graphe sont les etats de lautomate et les arcs sont
etiquetes comme suit
il y a un arc (e, e
dans un AFD ou e
\
2
a,b
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 11/ 36
Construire un AFN `a partir dune expression reguli`ere
Pour toute expression reguli`ere r on peut construire un AFN qui reconnat
le meme langage. On construit lautomate par induction sur la syntaxe :
a
a
R
1
R
2
R
1
R
2
R
1
| R
2
R
1
G
G
G
G
G
G
w
w
w
w
w
w
H
H
H
H
H
H
R
2
v
v
v
v
v
v
R
R
1
_ `
,
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 12/ 36
Exemple
Lexpression reguli`ere (a | b)
?
?
?
?
?
?
?
?
?
?
?
?
a
b
b
b
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 13/ 36
Theor`eme de Rabin et Scott
Pour tout AFN A il existe un AFD A
).
Demonstration
Soit A = (E, , , e
0
, F) un AFN. On construit un AFD
A
= (E
, ,
, e
0
, F
) comme suit :
E
:= P(E)
e
0
:= {e
0
}
F
:= {X E | X F = }
Pour tout X E et tout a :
(X, a) :=
xX
(x, a)
Pour demontrer que la construction est correcte il faut montrer que
L(A) = L(A
).
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 14/ 36
Algorithme
Initialisation : E
:= {{e
0
}}, T := {{e
0
}}
Tant que T =
Choisir un element S T
Pour tout symbole a
Calculer letat S
=
S
eS
(e, a)
Si S
et le valuer par a
T := T \ S
Exemple
\
0
b
\
1
a
\
2
b
\
3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E
= {{e
0
}} T = {{e
0
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
}
\
0
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E
= {{e
0
}} T = {{e
0
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
}
\
0
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E
= {{e
0
}} T = {{e
0
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
}
\
0
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E
= {{e
0
}} T = {{e
0
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
} {e
0
}
\
0
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E
= {{e
0
}} T = {{e
0
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
} {e
0
}
\
0
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E = {{e
0
}, {e
0
, e
1
}} T = {{e
0
}, {e
0
, e
1
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
} {e
0
}
{e
0
, e
1
}
\
0
a
` _
0, 1
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E = {{e
0
}, {e
0
, e
1
}} T = {{e
0
}, {e
0
, e
1
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
}
\
0
a
b
` _
0, 1
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 15/ 36
Exemple
E = {{e
0
}, {e
0
, e
1
}} T = {{e
0
, e
1
}}
S := {e
0
}
S
:= (e
0
, a) = {e
0
}
S
donc on
ne lajoute pas
({e
0
}, a) = {e
0
}
S
:= (e
0
, b) = {e
0
, e
1
}
S
donc on lajoute
({e
0
}, b) = {e
0
, e
1
}
On supprime {e
0
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
}
\
0
a
b
` _
0, 1
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}} T = {{e
0
, e
1
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
}
\
0
a
b
` _
0, 1
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}} T = {{e
0
, e
1
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
}
\
0
a
b
` _
0, 1
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
1
}, {e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
1
}, {e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
1
}, {e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
1
}, {e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
1
}, {e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 16/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
1
}
S
:= (e
0
, a) (e
1
, a) =
{e
0
, e
2
}
S
donc on lajoute
({e
0
, e
1
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b) =
{e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
1
}, b) = {e
0
, e
1
}
On supprime {e
0
, e
1
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
= {{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}} T = {{e
0
, e
2
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
2
}, {e
0
, e
1
, e
3
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
2
}, {e
0
, e
1
, e
3
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 17/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
2
}
S
:= (e
0
, a) (e
2
, a) =
{e
0
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, a) = {e
0
}
S
:= (e
0
, b) (e
2
, b) =
{e
0
, e
1
, e
3
}
S
donc on lajoute
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
} {e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
} {e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
} {e
0
, e
2
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {{e
0
, e
1
, e
3
}}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
} {e
0
, e
2
} {e
0
, e
1
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
a
`
b
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 18/ 36
Exemple
E
=
{{e
0
}, {e
0
, e
1
}, {e
0
, e
2
}, {e
0
, e
1
, e
3
}}
T = {}
S := {e
0
, e
1
, e
3
}
S
:= (e
0
, a) (e
1
, a)
(e
3
, a) = {e
0
, e
2
}
S
donc on
ne lajoute pas
({e
0
, e
1
, e
3
}, a) = {e
0
, e
2
}
S
:= (e
0
, b) (e
1
, b)
(e
3
, b) = {e
0
, e
1
}
S
donc on
ne lajoute pas
({e
0
, e
2
}, b) = {e
0
, e
1
, e
3
}
On supprime {e
0
, e
2
} de T
e a b
{e
0
} {e
0
} {e
0
, e
1
}
{e
0
, e
1
} {e
0
, e
2
} {e
0
, e
1
}
{e
0
, e
2
} {e
0
} {e
0
, e
1
, e
3
}
{e
0
, e
1
, e
3
} {e
0
, e
2
} {e
0
, e
1
}
\
0
a
b
` _
0, 1
a
` _
0, 2
_ `
a
\ __ ` _
0, 1, 3
a
`
b
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 19/ 36
Suppression des -transitions
Si on gen`ere lAFN avec lalgorithme de la section precedente, il faut
enlever les -transitions lors de la creation dun AFD. Pour cela on denit
quelques fonctions.
Denitions
fermeture(e) : ensemble des etats de lAFN accessibles depuis
letat e de lAFN par des -transitions uniquement.
fermeture(T) : ensemble des etats de lAFN accessibles depuis
un etat e appartenant `a T par des -transitions uniquement.
Transiter (T, a) : Ensemble des etats de lAFN vers lesquels il existe
une transition sur le symbole dentree a `a partir dun etat e
appartenant `a T.
Algorithme
Il sut de remplacer dans lalgorithme precedent les
eS
(e, a) par
fermeture(Transiter (S, a)) et initialiser E
et T par fermeture(e
0
).
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 20/ 36
Exemple
Prenons lexemple precedent : (a | b)
=
=
=
=
=
=
.
0
.
1
=
=
=
=
=
=
.
6
.
7
a
.
8
b
.
9
b
.
10
.
4
b
.
5
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 21/ 36
.
2
a
.
3
B
B
B
B
.
0
.
1
|
|
|
|
B
B
B
B
.
6
.
7
a
.
8
b
.
9
b
_
10
.
4
b
.
5
|
|
|
|
.
C
a
.
A
a
b
.
B
a
.
D
a
.
b
.
E
_
a
Exemple
A = fermeture(e
0
) = {0, 1, 2, 4, 7}
f (Transiter (A, a)) = f ({3, 8}) = {1, 2, 3, 4, 6, 7, 8} = B
f (Transiter (A, b)) = f ({5}) = {1, 2, 4, 5, 6, 7} = C
f (Transiter (B, a)) = f ({3, 8}) = B
f (Transiter (B, b)) = f ({5, 9}) = {1, 2, 4, 5, 6, 7, 9} = D
f (Transiter (C, a)) = f ({3, 8}) = B f (Transiter(C, b)) = f ({5}) = C
f (Transiter(D, a)) = f ({3, 8}) = B
f (Transiter (D, b)) = f ({5, 10}) = {1, 2, 4, 5, 6, 7, 10} = E
f (Transiter (E, a)) = f ({3, 8}) = B f (Transiter (E, b)) = f ({5}) = C
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 22/ 36
Description des langages reguliers
Theor`eme : Soit un alphabet et L un langage sur . Alors les
proprietes suivantes sont equivalentes :
L est un langage regulier, cest `a dire quil y a une grammaire
reguli`ere G telle que L = L(G).
Il existe une expression reguli`ere r denotant L.
Il existe un AFN A tel que L = L(A).
Il existe un AFD A
).
Les demonstrations dequivalence sont basees sur des transformations
constructives.
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 23/ 36
Theor`eme de Myhill-Nerode
Le theor`eme de Myhill-Nerode donne une condition necessaire et
susante pour quun langage soit regulier.
Typiquement on utilise ce theor`eme pour verier si un langage est
regulier ou non.
Denition
Soit L
un langage. La relation R
L
sur
, soit xw L et yw L, soit xw / L et yw / L.
On peut montrer que R
L
est une relation dequivalence sur
.
Le nombre de classes dequivalences dune relation R est appelee indice
de R.
Theor`eme
Un langage L
(m, e)
A
(, e
), o` u e, e
E et
m
.
Cest `a dire
(m, e) = e
.
Letat e
de lAFD A si
(m, e) F
(m, e
) / F
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 26/ 36
Etape 1
Construire une partition initiale de lensemble des etats avec deux
groupes : les etats dacceptation F et les etats de non-acceptation E \ F.
Exemple
\
2
a
\
3
a
b
.
\
0
a
b
\
1
a
v
v
v
v
v
v
v
v
b
H
H
H
H
H
H
H
H
\
4
a
\
5
a
Etape 2
Appliquer la procedure ci-dessous an de construire une nouvelle partition
n
.
Pour chaque groupe G de faire :
Partitionner G en sous-groupes de mani`ere que deux etats e et f de
G soient dans le meme sous-groupe si et seulement si pour tout
symbole a , les etats e et f ont des transitions sur a vers des
etats du meme groupe de . Au pire un etat formera un groupe `a lui
seul.
remplacer G dans
n
par tous les sous-groupes ainsi formes.
Etape 3
Si
n
= , alors soit
f
= et continuer `a letape 4, sinon repeter letape
2 avec =
n
.
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 28/ 36
Exemple
Notre partition etait : = {2, 5}, {0, 1, 3, 4}.
Soit G
1
= {2, 5} et G
2
= {0, 1, 3, 4}.
symbole 2 5 0 1 3 4
a G
2
G
2
G
2
G
1
G
2
G
1
b G
2
G
2
G
2
G
2
G
2
G
2
Les transitions de tous les etats de G
1
vont vers les memes groupes,
donc G
1
nest pas divise en sous groupes.
Par contre dans G
2
il y a des dierences entre {0, 3} et {1, 4}. On
obtient donc une nouvelle partition :
n
= {2, 5}, {0, 3}, {1, 4}.
On recommence letape 2 sur cette partition.
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 29/ 36
Exemple
Notre nouvelle partition est :
n
= {2, 5}, {0, 3}, {1, 4}.
Soit G
1
= {2, 5}, G
2
= {0, 3} et G
3
= {1, 4}.
symbole 2 5 0 3 1 4
a G
2
G
2
G
2
G
2
G
1
G
1
b G
3
G
3
G
3
G
3
G
3
G
3
Les transitions de tous les etats de tous les groupes vont vers les
memes groupes, donc ils ne sont pas divises en sous groupes.
On peut passer `a letape 4 avec
f
= {2, 5}, {0, 3}, {1, 4}.
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 30/ 36
Etape 4
Choisir un etat dans chaque groupe de la partition
f
en tant que
representant de ce groupe. Les representants seront les etats de lAFD
reduit A
.
Soit e un etat representatif, et supposons que dans lautomate
original A il y ait une transition de e vers f sur a. Soit r le
representant du groupe de f (r peut etre egal `a f ). Alors A a une
transition de e vers r sur a.
Letat de depart de A
b
\
1
a
\
2 b
_ `
a
AFD AFN Operations Lemme de pompage ER vers AFN AFN vers AFD Minimisation dun AFD 32/ 36
Etape 5
Si A
satisfaisant :
m = uvw
|uv| n
|v| 1
uv
i
w L pour chaque entier i 0
Utilisation
Utilise pour montrer quun langage nest pas regulier.
AFD AFN Operations Lemme de pompage 34/ 36
Demonstration
Soit L un langage regulier, A un AFD tel que L = L(A), et n le nombre
detats de A.
Prenons un mot m L tel que |m| n.
Il existe donc au moins un etat de A par lequel on passe plusieurs
fois lors de la reconnaissance de m.
Soit q le premier etat par lequel on passe pour la deuxi`eme fois.
Soit u le sous-mot tel que (u, e
0
)
A
(, q)
Soit v et w les deux sous-mots tels que (vw, q)
A
(w, q) avec
|v| 1 (possible car on passe plusieurs fois par q).
Comme q est le seul etat visite plus dune fois apr`es la
reconnaissance de uv, on en deduit que |uv| n.
On a (u, e
0
)
A
(, q) et (vw, q)
A
(w, q), donc par transitivite
on peut avoir (v
i
w, q)
A
(w, q) et (uv
i
w, q)
A
(w, q) i N,
donc uv
i
w L i N.
AFD AFN Operations Lemme de pompage 35/ 36
Lemme de pompage
On va montrer que le langage L = {0
k
1
k
|k N} nest pas regulier.
Supposons le langage regulier et aboutissons `a une contradiction. Pour
cela on va construire un mot en utilisant le Lemme et montrer quil nest
pas dans le langage.
En utilisant le fameux entier n du lemme, on utilise le mot 0
n
1
n
qui
appartient bien `a L.
Dapr`es la premi`ere propriete, uvw = 0
n
1
n
.
Dapr`es la seconde propriete |uv| n, donc uv = 0
m
, avec m n.
Dapr`es la troisi`eme propriete |v| 1. Donc v = 0
|v|
et |v| 1.
Dapr`es la quatri`eme propriete uv
2
w L.
Or uv
2
w = 0
p
0
n
avec p > q car le second v a ajoute des 0, mais pas
de 1. Et ce mot ne peut pas appartenir `a L par la denition de L.
L nest donc pas regulier.
AFD AFN Operations Lemme de pompage 36/ 36
Ensembles non reguliers
On ne peut pas decrire certains langages par des expressions reguli`eres.
On ne peut pas utiliser les expressions reguli`eres pour decrire des
constructions equilibrees ou imbriquees.
Par exemple, lensemble des chanes de parenth`eses equilibrees ne peut
pas etre decrit par des expressions reguli`eres. Dun autre cote, ce langage
peut etre specie par une grammaire hors contexte.
Des chanes repetees ne peuvent pas etre decrites par des expressions
reguli`eres. Lensemble {wcw | w (a | b)