Professional Documents
Culture Documents
Automates finis
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr
Th
eorie des langages
N
1 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
2 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
3 / 51
Automates finis
Introduction
Automate fini : machine abstraite qui effectue des calculs en utilisant une
memoire de taille bornee.
Il nest pas possible daugmenter la taille de la memoire au del`
a de cette
borne
Les tailles des donnees et des resultats peuvent etre superieurs `
a cette
borne puisque les donnees sont lues et les resultats produits
progressivement au cours du calcul
La longueur dun calcul peut aussi etre superieure `
a la taille de la memoire
de lautomate
Celui-ci passe alors n
ecessairement plusieurs fois par un m
eme
etat de sa
m
emoire
Th
eorie des langages
N
4 / 51
Automates finis
Introduction
Les automates finis peuvent etre utilises pour calculer des fonctions, ou
pour reconnatre des langages.
Th
eorie des langages
N
5 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
6 / 51
Automates finis
Automate fini d
eterministe
Automate fini d
eterministe
Un automate fini d
eterministe est un quintuplet M = hQ, , , q0 , F i
o`
u
Q est un ensemble fini detats
est un ensemble fini de symboles (un alphabet)
: Q Q est une fonction de transitions
q0 Q est letat initial
F Q est lensemble (fini) des etats finaux
Th
eorie des langages
N
7 / 51
Automates finis
Automate fini d
eterministe
Automate fini d
eterministe
Un automate fini d
eterministe est un quintuplet M = hQ, , , q0 , F i
o`
u
Q est un ensemble fini detats
est un ensemble fini de symboles (un alphabet)
: Q Q est une fonction de transitions
q0 Q est letat initial
F Q est lensemble (fini) des etats finaux
Th
eorie des langages
N
7 / 51
Automates finis
D
erivation
Configuration d
erivable en une
etape
Soit M un automate, q, q 0 Q deux etats, w , w 0 deux mots et
(q, w ), (q 0 , w 0 ) les deux configurations correspondantes.
On dit que la configuration (q 0 , w 0 ) est d
erivable en une
etape de la
configuration (q, w ) par M, note (q, w ) 7 (q 0 , w 0 ), si
w = xw 0 , avec x
M est dans letat q
q 0 = (q, x)
Th
eorie des langages
N
8 / 51
Automates finis
D
erivation
Configuration d
erivable
Soit M un automate, q, q 0 Q deux etats, w , w 0 deux mots et
(q, w ), (q 0 , w 0 ) les deux configurations correspondantes.
On dit que la configuration (q 0 , w 0 ) est d
erivable de la configuration
0
0
(q, w ) par M, note (q, w ) 7 (q , w ), si k 0 et k configurations
(qi , wi ), 1 i k telles que
(q, w ) = (q1 , w1 )
(q 0 , w 0 ) = (qk , wk )
i, 1 i k, (qi , wi ) 7 (qi+1 , wi+1 )
Th
eorie des langages
N
9 / 51
Automates finis
Th
eorie des langages
N
10 / 51
Automates finis
Mot accept
e par un automate
Un mot w est accept
e par un automate si et seulement si
Th
eorie des langages
N
11 / 51
Automates finis
Mot accept
e par un automate
Un mot w est accept
e par un automate si et seulement si
Th
eorie des langages
N
11 / 51
Automates finis
ATTENTION
Plut
ot que langage accepte par un automate M, on parle souvent
de langage reconnu par lautomate M. Il sagit pourtant toujours de
lensemble des mots acceptes par lautomate, et non pas les mots reconnus par lautomate.
Th
eorie des langages
N
12 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
13 / 51
Automates finis
Notations
Etat initial
q0
Etat final (2 notations possible)
q
Th
eorie des langages
N
14 / 51
Automates finis
Exemple
Automate M1
a
b
q0
q1
a
Th
eorie des langages
N
15 / 51
Automates finis
Exemple
Automate M1
a
b
q0
q1
a
Th
eorie des langages
N
15 / 51
Automates finis
Exemple
Automate M1
a
b
q0
q1
a
Th
eorie des langages
N
15 / 51
Automates finis
Exemple
Automate M1
a
b
q0
q1
a
Th
eorie des langages
N
15 / 51
Automates finis
Exemple
Automate M1
a
b
q0
q1
a
Th
eorie des langages
N
15 / 51
Automates finis
Exemple
Automate M2
a,b
a
b
b
q0
q1
q2
Th
eorie des langages
N
16 / 51
Automates finis
Exemple
Automate M2
a,b
a
b
b
q0
q1
q2
a
Est-ce que M2 reconnait abba ? accepte abba ?
Th
eorie des langages
N
16 / 51
Automates finis
Exemple
Automate M2
a,b
a
b
b
q0
q1
q2
a
Est-ce que M2 reconnait abba ? accepte abba ?
Est-ce que M2 reconnait aaba ? accepte aaba ?
Th
eorie des langages
N
16 / 51
Automates finis
Exemple
Automate M2
a,b
a
b
b
q0
q1
q2
a
Est-ce que M2 reconnait abba ? accepte abba ?
Est-ce que M2 reconnait aaba ? accepte aaba ?
L(M2 ) = {w {a, b} |w contient deux b consecutifs}
Th
eorie des langages
N
16 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
17 / 51
Automates finis
Automate complet
Automate complet
Un automate est complet si pour tout etat q Q il existe une
transition pour chaque lettre de lalphabet .
q Q, x , (q, x) est defini
Th
eorie des langages
N
18 / 51
Automates finis
Exemple
= {a, b}
Lautomate M1 est-il complet?
a
b
q0
q1
a
a
b
b
q0
q1
q2
a
Th
eorie des langages
N
19 / 51
Automates finis
Th
eorie des langages
N
20 / 51
Automates finis
Th
eorie des langages
N
20 / 51
Automates finis
Th
eorie des langages
N
20 / 51
Automates finis
q0
Th
eorie des langages
N
20 / 51
Automates finis
Automates
equivalents
Automates
equivalents
Deux automates M et M 0 sont
equivalents si et seulement si L(M) =
L(M 0 ).
Th
eorie des langages
N
21 / 51
Automates finis
Automates
equivalents
Automates
equivalents
Deux automates M et M 0 sont
equivalents si et seulement si L(M) =
L(M 0 ).
Propri
et
e
Pour tout automate fini, il existe un automate fini complet equivalent
Th
eorie des langages
N
21 / 51
Automates finis
Automates
equivalents
Automates
equivalents
Deux automates M et M 0 sont
equivalents si et seulement si L(M) =
L(M 0 ).
Propri
et
e
Pour tout automate fini, il existe un automate fini complet equivalent
Si lautomate nest pas complet, on le compl`ete en ajoutant un etat
poubelle
Th
eorie des langages
N
21 / 51
Automates finis
Exemple
Lautomate M1 .
a
b
q0
q1
a
Th
eorie des langages
N
22 / 51
Automates finis
Exemple
Automate M1 .
a
b
q0
q1
a
Automate M1 complete
a,b
a
b
q0
b
q1
q2
a
Th
eorie des langages
N
22 / 51
Automates finis
Automates complets
Propri
et
e
Pour un automate complet, la reconnaissance dun mot ne bloque
jamais.
(q0 , w ) 7 (q1 , w1 ) 7 (q2 , w2 ) 7 . . . 7 (qn , )
On a deux possibilites
Soit qn F , et w est un mot accepte
Soit qn 6 F , et w nest pas un mot accepte
Th
eorie des langages
N
23 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
24 / 51
Automates finis
Langage g
en
er
e par un automate
Un automate peut
etre vu comme un m
ecanisme d
ecrivant, ou
g
en
erant, un langage
Th
eorie des langages
N
25 / 51
Automates finis
Langage g
en
er
e par un automate
Un automate peut
etre vu comme un m
ecanisme d
ecrivant, ou
g
en
erant, un langage
Langage g
en
er
e`
a partir dun
etat par un automate
Le langage g
en
er
e `
a partir dun
etat q par un automate M, note
L(q) est lensemble des mots acceptes `a partir de cet etat.
L(q) = Lq = {w |(q, w ) 7 (q 0 , ) et q 0 F }
Th
eorie des langages
N
25 / 51
Automates finis
Langage g
en
er
e par un automate
Un automate peut
etre vu comme un m
ecanisme d
ecrivant, ou
g
en
erant, un langage
Langage g
en
er
e`
a partir dun
etat par un automate
Le langage g
en
er
e `
a partir dun
etat q par un automate M, note
L(q) est lensemble des mots acceptes `a partir de cet etat.
L(q) = Lq = {w |(q, w ) 7 (q 0 , ) et q 0 F }
Langage g
en
er
e par un automate
Le langage g
en
er
e par un automate M est defini par
L(M) = L(q0 )
Th
eorie des langages
N
25 / 51
Automates finis
Langage g
en
er
e par un automate
Un automate peut
etre vu comme un m
ecanisme d
ecrivant, ou
g
en
erant, un langage
Langage g
en
er
e`
a partir dun
etat par un automate
Le langage g
en
er
e `
a partir dun
etat q par un automate M, note
L(q) est lensemble des mots acceptes `a partir de cet etat.
L(q) = Lq = {w |(q, w ) 7 (q 0 , ) et q 0 F }
Langage g
en
er
e par un automate
Le langage g
en
er
e par un automate M est defini par
L(M) = L(q0 )
Remarque : Soit q un etat poubelle. L(q) = .
Th
eorie des langages
N
25 / 51
Automates finis
Syst`
eme d
equations d
efinissant un langage
Equation d
efinissant un langage g
en
er
e`
a partir dun
etat
Le langage genere `a partir dun etat q par un automate M est defini
par une
equation de la forme :
X
L(q) = Lq = (
x.L((q, x))) + d(L(q))
x
o`
u d(A) =
si 6 A
si A
Th
eorie des langages
N
26 / 51
Automates finis
Syst`
eme d
equations d
efinissant un langage
Equation d
efinissant un langage g
en
er
e`
a partir dun
etat
Le langage genere `a partir dun etat q par un automate M est defini
par une
equation de la forme :
X
L(q) = Lq = (
x.L((q, x))) + d(L(q))
x
o`
u d(A) =
si 6 A
si A
car L(q2 ) =
car q2 est un etat poubelle
Th
eorie des langages
26 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
27 / 51
Automates finis
Th
eorie des langages
N
28 / 51
Automates finis
Th
eorie des langages
N
28 / 51
Automates finis
Exemple
Automate M3
q1
a,b
q0
a,b
q3
a
a
q2
abb L(M3 )
Th
eorie des langages
N
29 / 51
Automates finis
Exemple
Automate M3
q1
a,b
q0
a,b
q3
a
a
q2
abb L(M3 )
Th
eorie des langages
N
29 / 51
Automates finis
Propri
et
e
Pour tout automate fini non deterministe M, il existe un automate fini
deterministe M 0 equivalent.
L(M) = L(M 0 )
Th
eorie des langages
N
30 / 51
Automates finis
Exemple : automate M3
q1
a,b
a,b
b
b
q0
q3
a
a
q2
Determinisons M3
L0
L1
L2
L3
=
=
=
=
31 / 51
Automates finis
Exemple : automate M3
Determinisons M3
L0
L1
L2
L3
=
=
=
=
=
=
=
=
=
=
a(L0 + L2 ) + b(L0 + L1 )
a(L0 + L2 + L3 ) + b(L0 + L1 )
a(L0 + L2 ) + b(L0 + L1 + L3 )
a(L0 + L2 + L3 ) + b(L0 + L1 + L3 ) +
a(L0 + L2 + L3 ) + b(L0 + L1 + L3 ) +
L0 + L2 + L3
Th
eorie des langages
N
32 / 51
Automates finis
Exemple : automate M3
L0
L0 + L2
L0 + L1
L0 + L2 + L3
On obtient lautomate
= a(L0 + L2 ) + b(L0 + L1 )
= a(L0 + L2 + L3 ) + b(L0 + L1 )
= a(L0 + L2 ) + b(L0 + L2 + L3 )
= a(L0 + L2 + L3 ) + b(L0 + L2 + L3 ) +
suivant :
01
b
b
a
023
a,b
a
02
Th
eorie des langages
N
33 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
34 / 51
Automates finis
Compl
ementation
Compl
ementation
Pour tout automate fini M, il existe un automate fini M 0 tel que
L(M 0 ) = L(M)
Th
eorie des langages
N
35 / 51
Automates finis
Compl
ementation
Compl
ementation
Pour tout automate fini M, il existe un automate fini M 0 tel que
L(M 0 ) = L(M)
Int
er
et : pour tout automate complet et deterministe M, et pour tout
Th
eorie des langages
N
35 / 51
Automates finis
Compl
ementation
Compl
ementation
Pour tout automate fini M, il existe un automate fini M 0 tel que
L(M 0 ) = L(M)
Int
er
et : pour tout automate complet et deterministe M, et pour tout
35 / 51
Automates finis
Exemple : Compl
ementation
Automate M1 complete
a,b
a
b
q0
b
q1
q2
Th
eorie des langages
N
36 / 51
Automates finis
Exemple : Compl
ementation
Automate M1 complete
a,b
a
b
q0
b
q1
q2
a
Automate complementaire `
a M1 complete
a,b
a
b
b
q0
q1
q2
a
Th
eorie des langages
N
36 / 51
Automates finis
Th
eorie des langages
N
37 / 51
Automates finis
Th
eorie des langages
N
37 / 51
Automates finis
b
q5
q0
q2
q1
Th
eorie des langages
N
38 / 51
Automates finis
Union
Soit deux automates finis A1 et A2 . Il existe un automate fini qui
reconnait L(A1 ) L(A2 ).
Th
eorie des langages
N
39 / 51
Automates finis
Union
Soit deux automates finis A1 et A2 . Il existe un automate fini qui
reconnait L(A1 ) L(A2 ).
Pour calculer lunion de deux automates, il faut calculer lequation qui
correspond `a chacun des langages.
Th
eorie des langages
N
39 / 51
Automates finis
Exemple : Union
M4
M5
a,b
a
b
2
3
a
Th
eorie des langages
N
40 / 51
Automates finis
Exemple : Union
M4
M5
a,b
b
2
3
a
L(M4 )
L0
L1
= aL1
= aL1 + bL1 +
L(M5 )
L2
L3
= aL2 + bL3
= aL2 + bL3 +
Th
eorie des langages
N
40 / 51
Automates finis
Exemple : Union
a,b
b
2
3
a
L(M4 )
L0
L1
= aL1
= aL1 + bL1 +
L0 + L2
1 + L2
L1 + L3
L(M4 ) L(M5 ) = L0 + L2
L3
L2
L(M5 )
=
=
=
=
=
=
L2
L3
= aL2 + bL3
= aL2 + bL3 +
a(L1 + L2 ) + bL3
a(L1 + L2 ) + b(L1 + L3 ) +
a(L1 + L2 ) + b(L1 + L3 ) +
L1 + L2
aL2 + bL3 +
aL2 + bL3
Th
eorie des langages
N
40 / 51
Automates finis
Exemple : Union
L0 + L2
L1 + L2
L(M4 ) L(M5 )
L3
L2
=
=
=
=
a(L1 + L2 ) + bL3
a(L1 + L2 ) + b(L1 + L3 ) +
aL2 + bL3 +
aL2 + bL3
Th
eorie des langages
N
41 / 51
Automates finis
Exemple : Union
L0 + L2
L1 + L2
L(M4 ) L(M5 )
L3
L2
0+2
=
=
=
=
a
a(L1 + L2 ) + bL3
a(L1 + L2 ) + b(L1 + L3 ) +
aL2 + bL3 +
aL2 + bL3
1+2
a,b
b
a
b
b
Th
eorie des langages
N
41 / 51
Automates finis
Intersection
Soit deux automates finis A1 et A2 qui reconnaissent L(A1 ) et L(A2 ).
Alors, il existe un automate fini qui reconnait L(A1 ) L(A2 ).
Th
eorie des langages
N
42 / 51
Automates finis
Intersection
Soit deux automates finis A1 et A2 qui reconnaissent L(A1 ) et L(A2 ).
Alors, il existe un automate fini qui reconnait L(A1 ) L(A2 ).
L(A1 ) L(A2 ) = L(A1 ) L(A2 )
Th
eorie des langages
N
42 / 51
Automates finis
Produit
Soit deux automates finis A1 et A2 qui reconnaissent L(A1 ) et L(A2 ).
Alors, il existe un automate fini qui reconnait L(A1 ).L(A2 ).
Th
eorie des langages
N
43 / 51
Automates finis
Exemple : Produit
a,b
b
2
3
a
L(M4 )
L0
L1
= aL1
= aL1 + bL1 +
L(M5 )
L2
L3
= aL2 + bL3
= aL2 + bL3 +
Th
eorie des langages
N
44 / 51
Automates finis
Exemple : Produit
a,b
b
2
3
a
L(M4 )
L0
L1
= aL1
= aL1 + bL1 +
L(M4 ).L(M5 ) = L0 L2
L0 L2
L1 L2
L1 L2 + L2
L1 L2 + L3
L(M5 )
L2
L3
= aL2 + bL3
= aL2 + bL3 +
= aL1 L2
= aL1 L2 + bL1 L2 + L2
= aL1 L2 + bL1 L2 + aL2 + bL3
= a(L1 L2 + L2 ) + b(L1 .L2 + L3 )
= a(L1 L2 + L2 + L2 ) + b(L1 L2 + L3 + L3 )
= a(L1 L2 + L2 ) + b(L1 L2 + L3 ) +
Th
eorie des langages
N
44 / 51
Automates finis
Exemple : Produit
L0 .L2
L1 .L2
L(M4 ).L(M5 )
L1 L2 + L3
= aL1 .L2
= a(L1 .L2 ) + b(L1 .L2 + L3 )
= a(L1 .L2 ) + b(L1 .L2 + L3 ) +
Th
eorie des langages
N
45 / 51
Automates finis
Exemple : Produit
L0 .L2
L1 .L2
L(M4 ).L(M5 )
L1 L2 + L3
0.2
= aL1 .L2
= a(L1 .L2 ) + b(L1 .L2 + L3 )
= a(L1 .L2 ) + b(L1 .L2 + L3 ) +
a
1.2
a
1.2+3
Th
eorie des langages
N
45 / 51
Automates finis
Automates finis
Introduction
Formalisation
Representation et exemples
Automates complets
Langage genere par un automate
Automate fini non deterministe
Operations sur les automates
Automates finis et langages
Th
eorie des langages
N
46 / 51
Automates finis
Th
eorie des langages
N
47 / 51
Automates finis
Exemple
Automate M1 .
a
b
q0
q1
a
Th
eorie des langages
N
48 / 51
Automates finis
Exemple
Automate M1 .
a
b
q0
q1
a
PG =
aS
bU
aS
Th
eorie des langages
N
48 / 51
Automates finis
Transformation
dune
grammaire
lin
eaire `
a droite en automate
Automate associ
e`
a une grammaire lin
eaire `
a droite
Pour toute grammaire lineaire `a droite G = hVG , G , PG , SG i, il existe
un automate M = hQ, , , S, F i qui reconnat L(G ).
Q : Un etat pour chaque symbole non terminal. Letat initial est
letat correspondant `
a laxiome SG
F : Les etats finaux sont les etats dont les non terminaux associes ont
une r`egle du type A
Il est ensuite possible de construire le syst`eme dequation
correspondant `
a lautomate
Th
eorie des langages
N
49 / 51
Automates finis
Exemple
G = hVG , G , PG , SG i, avec VG = {a, b, S, U}; G = {a, b}; SG = S;
S bS
S aU
S b
PG =
U aS
U bU
Th
eorie des langages
N
50 / 51
Automates finis
Exemple
G = hVG , G , PG , SG i, avec VG = {a, b, S, U}; G = {a, b}; SG = S;
S bS
S aU
S b
PG =
U aS
U bU
Th
eorie des langages
N
50 / 51
Automates finis
Exemple
G = hVG , G , PG , SG i, avec VG = {a, b, S, U}; G = {a, b}; SG = S;
S bS
S aU
S b
PG =
U aS
U bU
G 0 = hVG0 , 0G , PG0 , SG0 i, avec VG0 = {a, b, S, U, V }; 0G = {a, b}; SG0 = S;
S bS
S aU
S bV
PG =
V
U aS
U bU
Th
eorie des langages
N
50 / 51
Automates finis
Exemple
G 0 = hVG0 , 0G , PG0 , SG0 i, avec VG0 = {a, b, S, U, V }; 0G = {a, b}; SG0 = S;
S bS
S aU
S bV
PG =
V
U aS
U bU
Th
eorie des langages
N
51 / 51
Automates finis
Exemple
G 0 = hVG0 , 0G , PG0 , SG0 i, avec VG0 = {a, b, S, U, V }; 0G = {a, b}; SG0 = S;
S bS
S aU
S bV
PG =
V
U aS
U bU
Automate M.
b
a
V
U
a
b
Th
eorie des langages
N
51 / 51