Vous êtes sur la page 1sur 87

Th

eorie des langages

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 ont des applications importantes :


D
efinition de certains aspects des langages naturels ou artificiels
Description de machines physiques (circuits
electroniques, machines `
a
calculer, distributeur dobjets, etc.)
D
efinition de protocoles de communication dans des r
eseaux
Description de syst`
emes de commandes (comme le syst`
eme de commandes
dun ascenseur), etc.

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

Une paire (q, w ), o`


u q Q est un etat, et w est un alphabet est
appele une configuration.

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)

On dit alors quon lit la lettre 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

Reconnaissance dun mot

Reconnaissance dun mot par un automate


La reconnaissance dun mot w par un automate M (appelee aussi
ex
ecution dun automate M sur un mot w ) est la suite des configurations :
(q0 , w ) 7 (q1 , w1 ) 7 (q2 , w2 ) 7 . . . 7 (qn , )

Th
eorie des langages
N

10 / 51

Automates finis

Langage reconnu par un automate

Mot accept
e par un automate
Un mot w est accept
e par un automate si et seulement si

(q0 , w ) 7 (q, ) avec q F

Th
eorie des langages
N

11 / 51

Automates finis

Langage reconnu par un automate

Mot accept
e par un automate
Un mot w est accept
e par un automate si et seulement si

(q0 , w ) 7 (q, ) avec q F


Langage accept
e par un automate
Le langage accept
e par un automate M, note L(M), est defini par

L(M) = {w |(q0 , w ) 7 (q, ) avec q F }

Th
eorie des langages
N

11 / 51

Automates finis

Langage reconnu par un automate

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

Transition entre letat p et q : (p, a) = q


p

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

Est-ce que M1 reconnait aaba ? accepte aaba ?

Th
eorie des langages
N

15 / 51

Automates finis

Exemple
Automate M1
a
b
q0

q1
a

Est-ce que M1 reconnait aaba ? accepte aaba ?


Est-ce que M1 reconnait abba ? accepte abba ?

Th
eorie des langages
N

15 / 51

Automates finis

Exemple
Automate M1
a
b
q0

q1
a

Est-ce que M1 reconnait aaba ? accepte aaba ?


Est-ce que M1 reconnait abba ? accepte abba ?
Est-ce que M1 reconnait baab ? accepte baab ?

Th
eorie des langages
N

15 / 51

Automates finis

Exemple
Automate M1
a
b
q0

q1
a

Est-ce que M1 reconnait aaba ? accepte aaba ?


Est-ce que M1 reconnait abba ? accepte abba ?
Est-ce que M1 reconnait baab ? accepte baab ?
L(M1 ) = {w {a, b} |w ne contient pas deux b consecutifs}

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

Lautomate M2 est-il complet?


a,b

a
b

b
q0

q1

q2

a
Th
eorie des langages
N

19 / 51

Automates finis

Etats puits et poubelles


Etat puit
Un
etat puits est un etat q Q pour lequel toutes les transitions sont
de la forme (q, x) = q.

Th
eorie des langages
N

20 / 51

Automates finis

Etats puits et poubelles


Etat puit
Un
etat puits est un etat q Q pour lequel toutes les transitions sont
de la forme (q, x) = q.
Etat puits de M2 ?

Th
eorie des langages
N

20 / 51

Automates finis

Etats puits et poubelles


Etat puit
Un
etat puits est un etat q Q pour lequel toutes les transitions sont
de la forme (q, x) = q.
Etat puits de M2 ?
Etat poubelle
Un
etat poubelle est un etat puits non final.

Th
eorie des langages
N

20 / 51

Automates finis

Etats puits et poubelles


Etat puit
Un
etat puits est un etat q Q pour lequel toutes les transitions sont
de la forme (q, x) = q.
Etat puits de M2 ?
Etat poubelle
Un
etat poubelle est un etat puits non final.
Pour = {a, b}
a,b

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

Exemple : Pour M1 complete

L(q0 ) = aL(q0 ) + bL(q1 ) + 


L(q1 ) = aL(q0 ) + bL(q2 ) +  = aL(q0 ) + 

L(q2 ) = aL(q2 ) + bL(q2 ) + =

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

Automate fini non d


eterministe
Automate fini non d
eterministe
Un automate fini non d
eterministe est un quintuplet M =
hQ, , , S, F i o`
u
Q est un ensemble fini detats
est un ensemble fini de symboles (un alphabet)
(Q Q) est une relation de transitions
S Q est lensemble (fini) des etat initiaux
F Q est lensemble (fini) des etats finaux

Th
eorie des langages
N

28 / 51

Automates finis

Automate fini non d


eterministe
Automate fini non d
eterministe
Un automate fini non d
eterministe est un quintuplet M =
hQ, , , S, F i o`
u
Q est un ensemble fini detats
est un ensemble fini de symboles (un alphabet)
(Q Q) est une relation de transitions
S Q est lensemble (fini) des etat initiaux
F Q est lensemble (fini) des etats finaux

Differences avec un automate fini deterministe :


Plusieurs etats de depart possible
Ce nest plus une fonction de transition, mais une relation de transition.

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

Automate fini non d


eterministe

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

=
=
=
=

aL0 + bL0 + aL2 + bL1


bL3
aL3
aL3 + bL3 + 
Th
eorie des langages
N

31 / 51

Automates finis

Exemple : automate M3
Determinisons M3

L0

L1
L2

L3

=
=
=
=

aL0 + bL0 + aL2 + bL1


bL3
aL3
aL3 + bL3 + 

On sait que L(M3 ) = L0 . On a donc


L0
L0 + L2
L0 + L1
L0 + L2 + L3
L0 + L1 + L3
L0 + L1 + 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

mot w X , il existe une derivation (s, w ) 7 (q, ) telle que


soit q F et w L(M)
soit q 6 F et w 6 L(M)

Permet de pouvoir reconnaitre tous les mots de X qui ne sont pas


reconnus par 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

mot w X , il existe une derivation (s, w ) 7 (q, ) telle que


soit q F et w L(M)
soit q 6 F et w 6 L(M)

Permet de pouvoir reconnaitre tous les mots de X qui ne sont pas


reconnus par M.
M
ethode :
1. Determiniser et completer lautomate
2. Transformer tous les etats finaux en etats non finaux, et vice-versa
Th
eorie des langages
N

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

Automate avec transition instantan


ee

Automate avec transition instantan


ee
Une transition instantan
ee ou -transition permet de passer dun
etat `a un autre sans lire de symbole sur le ruban dentree.

Th
eorie des langages
N

37 / 51

Automates finis

Automate avec transition instantan


ee

Automate avec transition instantan


ee
Une transition instantan
ee ou -transition permet de passer dun
etat `a un autre sans lire de symbole sur le ruban dentree.
Une -transition permet dajouter `a un etat les comportements de letat
cible (transition et eventuellement etat final).

Th
eorie des langages
N

37 / 51

Automates finis

Exemple : transition instantan


ee
q4
a
q3


b
q5


q0

q2

q1

Th
eorie des langages
N

38 / 51

Automates finis

Union de deux automates

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 de deux automates

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 de deux automates

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 de deux automates

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 de deux automates

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

Transformation dun automate fini en


grammaire
Grammaire associ
ee `
a un automate fini
Pour tout automate M = hQ, , , q0 , F i, il existe une grammaire
lineaire `a droite qui gen`ere L(M).
G = hVG , G , PG , SG i, avec
G = lensemble des symboles terminaux
VG = Q lalphabet. Il y a donc un symbole non terminal pour
chaque etat de lautomate
SG = S, o`
u S est le symbole non terminal associe `
a q0
PG = {A wB|(A, w , B) } {A |A F }

Th
eorie des langages
N

47 / 51

Automates finis

Exemple
Automate M1 .
a
b
q0

q1
a

L(M1 ) : L0 = aL0 + bL1 + ; L1 = aL0 + 

Th
eorie des langages
N

48 / 51

Automates finis

Exemple
Automate M1 .
a
b
q0

q1
a

L(M1 ) : L0 = aL0 + bL1 + ; L1 = aL0 + 


GM1 = hVG , G , PG , SG i, avec VG

PG =

= {a, b, S, U}; G = {a, b}; SG = S;


S
S
S
U
U

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

Vous aimerez peut-être aussi