Você está na página 1de 20

Module : Mathmatiques pour Informatique

Automates finis et constructions


dautomates.




Aboubi Mehdi









2




Sommaire
Introduction ............................................................................................................................................. 3
I- Notions de langage ............................................................................................................................... 3
II- Automates finis .................................................................................................................................... 4
1. Diagramme de transitions ................................................................................................................ 4
2. Table de transitions .......................................................................................................................... 5
III- Automates finis dterministes ........................................................................................................... 6
IV- Automates finis non dterministes ................................................................................................... 8
Limite des automates finis .................................................................................................................. 10
V- Expressions rgulires ....................................................................................................................... 11
1. Union de deux langages .................................................................................................................. 12
2. Concatnation de deux langages .................................................................................................... 12
3. Fermeture dun langage ................................................................................................................. 12
4. Expressions rgulires .................................................................................................................... 13
5. Algbre des ensembles rguliers .................................................................................................... 14
VI- Algbre de Kleene ............................................................................................................................ 14
VII- Automate minimal .......................................................................................................................... 16
1. Rsiduel dun langage ..................................................................................................................... 16
2. Taille minimale dun automate ....................................................................................................... 16
3. Automate minimal .......................................................................................................................... 17
4. Minimisation ................................................................................................................................... 17
5. Construction de lautomate minimal .............................................................................................. 18
Conclusion ............................................................................................................................................. 20





3









Introduction :

Tout langage naturel, quil soit complexe ou rudimentaire, est form de la
combinaison de lettres, de mots et de phrases. Un mot est un ensemble de lettres
disposes cte cte ; une phrase est un ensemble de mots spars par des blancs ;
et un texte est un ensemble de phrases dont la composition donne le sens global du
document. Cependant, il existe des rgles bien spcifiques chaque langage qui
permettent de dterminer si un mot appartient au langage ou non, si lagencement
des mots constitue une phrase cohrente ou pas, et si les phrases constituent un
discours rationnel.
La thorie des langages dans le domaine informatique sinspire directement des
principes du langage naturel. Les notions dalphabet, de mot et de phrase y
reprsentent les mmes concepts.

I- Notions de langages :
Dfinition :
Un alphabet est un ensemble fini, non vide, de symboles. On le dnote
gnralement par .
La squence vide, reprsente par , peut tre aussi un lment de lalphabet ; par
contre, elle ne contient aucun symbole. Ainsi la concatnation de la squence vide et
dune squence non vide a aura pour rsultat la squence a :
a = a = a

Lensemble regroupant toutes les squences finies de symboles dun alphabet est
un ensemble infini dnombrable not *. Le symbole * reprsente la fonction de
fermeture qui, applique un ensemble non vide fini ou infini, permet dobtenir un
autre ensemble qui est infini.

Dfinition :
Soit un alphabet, on dnote par * lensemble de toutes les squences
finies de symboles de .

Autrement dit, lensemble * contient tous les mots de taille finie quil est possible de
4

former avec les lments de lalphabet . Prenons comme exemple un alphabet
contenant trois lments = {a, b, c} alors
*={, a, b, c, aa, ab, ac,, aaa, aab, , aaaa, aaab, }
Nous pouvons remarquer que la squence vide appartient lensemble * mme si
elle ne fait pas partie des lments de .
Nous pouvons noncer maintenant la dfinition dun langage :

Dfinition :
Un langage sur un alphabet est un sous-ensemble de lensemble *.

Ainsi, en prenant en considration lalphabet = {a, b, c}, nous pouvons affirmer
que L1 ={a, b, c, aa, bb, cc} et L2 ={, a, aa, aaa, aaaa} sont des langages sur
puisquils sont des sous-ensembles de *. Il serait utile de signaler que quelque soit
le langage, les mots quil contient sont toujours de longueur finie, bien que le langage
peut tre infini. De plus, la squence vide peut faire partie des lments dun langage
comme elle peut en tre omise.
La faon la plus nave de dfinir un langage est dnumrer tous les mots quil
contient. Par contre, cette approche nest pas toujours concevable surtout dans le
cas de langages infinis. La reprsentation la plus courante dun langage consiste en
sa modlisation travers les automates ou encore les expressions rgulires.

II- Automates finis :

Un langage, tel que dfini plus haut, est un ensemble de mots constitus
chacun de la concatnation des lments dun alphabet. De ce fait, pour reprsenter
un langage de manire efficace, il suffit de dfinir un modle qui permet de
dterminer si un mot appartient au langage ou pas. Ainsi, au lieu dnumrer tous les
mots du langage, nous nous assurons de lappartenance dun mot au langage en le
confrontant au diagramme de transitions reprsentant ce langage.

1. Diagramme de transitions :
Dfinition :
Un diagramme de transitions est une collection finie dtats, reprsents
sous forme de cercles, et de transitions, reprsentes sous forme darcs dirigs, tels
que :
chaque tat peut tre tiquet dune tiquette unique ;
un et un seul tat initial, reprsent par un cercle avec une petite flche () ;
un ou plusieurs tats finaux, reprsents par des cercles doubles (il peut ne pas y
avoir dtat final) ;
chaque arc relie deux tats (pas ncessairement diffrents) ;
chaque arc est tiquet avec un ou plusieurs symboles dun alphabet.

Pour illustrer cette dfinition, reprenons le langage L2 ={ , a, aa, aaa, aaaa,}
dfinit sur lalphabet = {a, b, c}. Il est constitu de tous les mots quil est possible de
former partir du symbole a. Il est vident que lon ne peut pas numrer la totalit
des mots de ce langage. La reprsentation de ce langage par un diagramme de
5

transitions est compose dun seul tat, la fois initial et final, et dune seule
transition tiquete avec le symbole a.


Diagramme de transition de L2

Tous les mots du langage L2 sont accepts par ce diagramme de transition et seuls
les mots du langage L2. En effet, pour chaque symbole a constituant un mot, le
diagramme se trouve dans un tat final, ce qui implique lacceptation du mot. La
prsence de la squence vide parmi lensemble des mots du langage justifie le fait
que ltat initial est en mme temps un tat final.
Prenons un autre exemple ; soit le langage L2 = {a, aa, aaa, aaaa,} qui reprsente
le mme ensemble de mots que L2 diminu de la squence vide. Le diagramme de
transitions de ce langage est le suivant :

Diagramme de transitions du langage L2


Nous pouvons observer que dans ce cas, ltat initial et ltat final sont dissocis.
Selon le langage que reprsente un diagramme de transitions, ce dernier peut avoir
plusieurs proprits diffrentes. Nous prsentons la notion dun diagramme
compltement dfini et celle dun diagramme non ambigu pour finalement dfinir la
proprit dun diagramme dterministe.

Dfinition :
Un diagramme de transitions sur un alphabet est dit compltement
dfini si, pour chaque symbole s et chaque tat e, il y a au moins une transition
tiquete par s qui quitte e.

Dfinition :
Un diagramme de transitions sur un alphabet est dit non ambigu
si, pour chaque symbole s et chaque tat e, il existe au plus une transition
quittant e et tiquete par s.

Dfinition :
Un diagramme de transitions dterministe sur un alphabet donn
est un diagramme compltement dfini et non ambigu.
6


Pour une exploitation pratique des diagrammes de transitions, il est plus commun
de passer par la forme tabulaire, qui est plus adapte tre utilise par un algorithme.
2. Table de transitions :
Dfinition :
Une table de transitions associe un diagramme de transitions non
ambigu est une matrice deux dimensions telle que :

La matrice a une ligne pour chaque tat du diagramme ;
elle a une colonne pour chaque symbole utilis comme tiquette dun arc du
diagramme ;
lentre de la nieme ligne et de la mieme colonne est ltat atteint dans le diagramme
de transitions en quittant ltat n par larc dont ltiquette est celle de la colonne
m. Si un tel tat nexiste pas, lentre contient le mot Erreur ;
la matrice contient une colonne ayant comme indice le caractre spcial de fin de
squence Fin. Les entres de cette colonne sont le mot Accepte, si ltat sur la
ligne correspondante est final, ou le mot Erreur si ltat nest pas final.



Prenons un exemple simple : soit le diagramme de la figure ci-dessous, dfini sur
lalphabet {a, b}; il reprsente le langage compos des mots forms uniquement avec
la lettre a ; les mots qui contiennent la lettre b ne font pas partie de ce langage.

Diagramme de transitions sur lalphabet {a,b}

La table de transition correspondant ce diagramme :




7





III- Automates finis dterministes :

Dfinition :
Un automate fini dterministe consiste en un quintuple de la forme
(S, , o, i, F) dont les composantes sont dfinies comme suit :
S est un ensemble fini dtat.
est lalphabet de lautomate.
o est la fonction de transition de S x dans S.
i S est ltat initial.
F _ S est lensemble des tats finaux.

Il faudrait faire la distinction entre diagramme de transitions et automate. En effet,
le diagramme de transitions nest que la reprsentation de la fonction de transition o
de lautomate. Cependant, il est courant de dire dun diagramme de transitions que
cest un automate cause du lien direct quil y a entre les deux notions.
Selon cette dfinition, nous pouvons dgager les diffrentes caractristiques
suivantes communes tout automate fini dterministe :

_ Pour chaque couple (p, x) S x , il existe un et un seul q S tel que o (p,x) = q.
_ tout automate fini dterministe correspond un diagramme de transitions
dterministe.
Ceci dcoule du fait que la fonction de transitions dun automate fini dterministe est
compltement dfinie et non ambigu.
_ Lappellation fini est utilise pour indiquer que lensemble dtats de lautomate
est fini, que son alphabet est fini et que son ensemble de transitions est aussi fini.
Les automates finis dterministes sont utiliss pour la reconnaissance dune certaine
classe de langage, pour cela il faudrait aussi dfinir formellement la notion
dacceptation dune squence de symboles dun alphabet par un automate fini
dterministe.

Dfinition :
Un automate fini dterministe M = (S, , o, i, F) accepte (ou reconnat)
une squence x1x2x3 xn (avec n N) si, et seulement si, il y a une squence
dtats s0,s1,s2,,sn tels que s0 = i, sn F, et pour j = 1,,n, o (sj-1, xj) = si.
Dans le cas contraire, on dit que lautomate rejette (ou refuse) la squence.
Autrement dit, lautomate reconnat une squence de symboles si, et seulement si, il
existe une suite darcs conduisant de ltat initial un tat final, et qui correspond la
8

lecture des symboles de la squence de gauche droite. Lexemple suivant prsente
le processus dacceptation dune squence par un automate.
Prenons un exemple pour illustrer lacceptation dune squence par un automate.
Soit lautomate A1 dcrit par le diagramme de transition prcdent . Son alphabet est
constitu de lensemble {a,b}. Soient les deux squences aaaa et abaa, et examinons
le processus dacceptation par lautomate.
La squence de reconnaissance de la squence aaab est donne dans le tableau
suivant :
la premire colonne indique la position de lecture dans la squence, et la deuxime
colonne indique ltat correspondant dans lequel se trouve lautomate.
Lecture Etat
aaaa s1
aaaa s3
aaaa s3
aaaa s3
aaaa s3

la fin de la lecture de la squence aaaa, lautomate se trouve dans ltat s3 qui est
un tat final, donc la squence est accepte. Par contre pour la squence abaa, on
peut voir dans le tableau suivant que lors de la fin de la lecture, lautomate se trouve
dans ltat s2, qui nest pas un tat final, et donc la squence est rejete.

Lecture Etat
abaa s1
abaa s3
abaa s2
abaa s2
abaa s2

Dfinition :
Soit M un automate fini dterministe qui a pour alphabet . Nous
dnotons par L(M) lensemble de toutes les squences de symboles reconnus par
lautomate M. Nous dirons que L(M) est le langage reconnu (ou accept) par
lautomate fini M.

Ainsi, en reprenant lautomate A1 prcdant, nous pouvons statuer que lensemble
des squences quil est capable daccepter est le langage L(A1) = {a
n
: n N}.
Le nombre de langages que lon peut reprsenter avec des automates finis
dterministes est assez rduit tant donn que leur dfinition est assez restrictive. De
ce fait, les automates dterministes ne sont pas adapts pour lanalyse de textes
informatiques tels que les programmes crits avec un langage de programmation
volu tel que le langage C.


IV- Automates finis non dterministes :

9

La dfinition des automates finis non dterministes saffranchit de la contrainte de
dterminisme impose par un diagramme compltement dfini et non ambigu. Cette
simplification amne une rduction du nombre dtats pour la reprsentation des
mmes langages que les automates dterministes. Un automate fini non dterministe
est dfini de la sorte :

Dfinition :
Un automate fini non dterministe consiste en un quintuple de la forme
(S, , , i, F). Voici la description des diffrentes composantes.
S est un ensemble fini dtats.
est lalphabet de la machine.
est un sous-ensemble de S x x S.
i S est ltat initial.
F _ S est lensemble des tats finaux.

La classe des langages reprsents par les automates non dterministes englobe la
classe des langages des automates dterministes. La seule diffrence entre les
dfinitions des deux automates consiste dans la dfinition de lensemble des
transitions. Pour les automates non dterministes, il ne sagit plus dune fonction de
transitions mais plutt dune relation dun sous-ensemble de S x x S.

Ainsi, la condition dacceptation des automates non dterministes est reformule
comme suit :

Dfinition :
Un automate fini non dterministe M = (S, , , i, F) accepte
(ou reconnat) la squence x1xn(n > 0) si, et seulement si, il existe une squence
dtats s0,,sn tels que s0 = i, sn F, et pour j = 1,,n, (sj-1, xj, sj) . Dans le cas
contraire, on dit que lautomate refuse la squence. On dnote par L(M) lensemble
des squences acceptes par M. On dit que L(M) est le langage reconnu (ou accept)
par M.

Autrement formul, un automate fini non dterministe M reconnat une squence s
sur un alphabet sil existe au moins un chemin travers les transitions qui mne de
ltat initial un tat final, correspondant la squence des symboles de la squence.
Par consquent, une squence est accepte sil est possible datteindre un tat final
en lisant toute la squence de symboles, mme sil y a dautres chemins qui mnent
des tats non finaux.
Soit lautomate fini non dterministe A2 ayant pour alphabet ={a,b} et dcrit par le
diagramme de transition de la figure ci-dessous.
Examinons les tapes dacceptation de la squence baaa par lautomate A2, et
lensemble des tats accessibles chaque tape.
10


Diagramme de transitions de lautomate A
2

Lecture Ensemble dtats
baaa {s1}
baaa {s2}
baaa {s2, s3, s4}
baaa {s2, s3, s5, s7}
baaa {s2, s3, s4, s5, s6}

La squence est accepte puisqu la fin de la lecture des symboles, lensemble des
tats contient les tats finaux s3 et s6. Par contre, si nous considrons la squence
baab, elle nest pas reconnue par lautomate puisque lensemble des tats atteints
la fin de la lecture des symboles ne contient aucun tat final.

Lecture Ensemble dtats
baab {s1}
baab {s2}
baab {s2, s3, s4}
baab {s2, s3, s5, s7}
baab {s2, s4, s7}

Exemple de dterminisation dun automate :


11

Dterminis, il devient :


Limite des automates finis :
La classe des langages reconnus par les automates finis se limite aux
langages rguliers, il nest donc pas possible pour un automate fini de reconnatre un
langage non rgulier.
En effet, si nous considrons les expressions parenthses, un automate fini ne peut
pas dterminer si le nombre des parenthses droite et gauche sont gaux ; cela
demanderait un nombre dtats suprieur au nombre de parenthses, ce qui mnerait
une explosion dtats si nous voulons reconnatre des expressions de taille
considrable. Cette limitation rside dans le fait quun automate fini nest pas en
mesure de comptabiliser le nombre de parenthses droite et gauche en cours de
lecture.


V- Expressions rgulires :

Les expressions rgulires permettent de reprsenter les langages rguliers
en utilisant des oprateurs dfinis sur lensemble des langages. Les oprations
introduites par les expressions rgulires concernent lunion, la concatnation et la
fermeture des langages rguliers. Nous commenons par dfinir les oprateurs qui
permettent de combiner les langages rguliers, nous passons ensuite la
prsentation des expressions rgulires et de leur utilisation.






12

1. Union de deux langages :
Soient deux langages rguliers L1 et L2, lunion des deux langages est
quivalente lunion de deux ensembles de squences. Le rsultat est un langage
rgulier qui englobe les squences de L1 et les squences de L2. Loprateur utilis
pour lunion de deux langages est le mme oprateur utilis pour lunion de deux
ensembles : L1 L2.

Thorme :
Lunion de deux langages rguliers L1 et L2 est aussi un langage rgulier.

2. Concatnation de deux langages :
Dfinition :
Soient L1 et L2 deux langages sur lalphabet . La concatnation de
L1 et L2, dnote par L1 L2, est dfinie comme suit :
L1 L2 ={w1w2 : w1 L1 . w2 L2}
Autrement dit, L1 L2 contient toutes les squences formes par la concatnation
dune squence de L1 avec une squence de L2.
titre dexemple, soit L1 = {a,b} et L2 = {c, ad} alors
L1 L2 = {ac, aad, bc, bad}
Thorme :
. La concatnation de deux langages rguliers L1 et L2 est aussi un
langage rgulier.

3. Fermeture dun langage :
Lopration de fermeture dun alphabet , dnote par *, est lensemble de
toutes les squences finies de symboles de . Lorsquelle est tendue aux langages
rguliers, elle est dfinie de la sorte :
Dfinition :
Soit L un langage. La fermeture de L, dnote L*, est lensemble des
squences formes en concatnant un nombre fini (0 ou plusieurs) de squences de
L.

Autrement dit,
L* = {w1 wn : n N . wi L pour tout i = 1 n}

Daprs cette dfinition, on remarque que c L*, pour tout langage L.
Plus clairement, si L1 = {a} alors L1* = {c, a, aa, aaa, aaaa, aaaaa, }.
De mme, si
L2 = {ab}
alors
L2* = {c, ab, abab, ababab, abababab, }
Aussi, si
L3 = {a, ab}
alors
13

L3* = {_c, a; ab, aa, aab, aba, abab, aaa, aaba, aabab, abaa,}.

Thorme :
La fermeture dun langage rgulier L est un langage rgulier.



4. Expressions rgulires :
Les expressions rgulires permettent de reprsenter les langages rguliers.
Elles sont essentiellement formes des symboles associs aux oprateurs
prcdemment dfinis sur lensemble des langages (union, concatnation, fermeture),
et des lments de lalphabet sur lequel elles sont dfinies.
Dfinition :
Une expression rgulire sur un alphabet se dfinit par les propositions
rcursives suivantes :
1. est une expression rgulire.
2. x est une expression rgulire, pour tout x .
3. Si p et q sont des expressions rgulires alors (p q) est une expression
rgulire.
4. Si p et q sont des expressions rgulires alors (p q) est une expression
rgulire.
5. Si p est une expression rgulire alors p* est aussi une expression rgulire.
6. Les seules expressions rgulires sont celles quon peut construire selon 1 5.

En reprenant ces dfinitions, nous dduisons les langages rguliers L(r) qui peuvent
tre reprsents par lexpression rgulire r.

Dfinition :
Soit une expression rgulire r et un alphabet . Le langage reprsent par r,
not L(r), est dfini par les propositions rcursives suivantes :
1. L() =
2. Pour tout x , L(x) = {x}
3. Si p et q sont deux expressions rgulires alors L((p q)) = L(p) L(q)
4. Si p et q sont deux expressions rgulires alors L((p q)) = L(p) L(q)
5. Si p est une expression rgulire alors L(p*) = (L(p))*


Remarque : Il faudrait faire la diffrence entre expressions rgulires et langages. En
effet une expression rgulire sur un alphabet est une squence de symboles
dcoulant de lunion de lalphabet avec un ensemble doprateurs : {,,*,}. Par
contre, un langage est un ensemble de squences de symboles de lalphabet .
Dailleurs, il est utile de noter que le langage vide () est reprsent par lexpression
rgulire () : L() =

Considrons lexpression rgulire r1 = ((a a)* (b b)*) et observons le langage
14

quelle reprsente :
L(r1) = L(((a a)* (b b)*))
= L((a a)*) L((b b)*)
= (L(a a))* (L(b b))*
= (L(a) L(a))* (L(b) L(b))*
= ({a} {a})* ({b} {b})*
= {aa}* {b}*
L(r1) = {a
2n
: n N} {b
n
: n N}

5. Algbre des ensembles rguliers :
Les langages rguliers sont par dfinition les langages reconnus par un
automate fini. Lensemble regroupant tous les langages rguliers est not REG

.
Lapproche algbrique concernant les langages rguliers, permet de dfinir un cadre
algbrique, dans lequel lutilisation des oprateurs sur les ensembles de langage
(union, concatnation, fermeture), sert manipuler des ensembles rguliers (ou
langages rguliers, ou vnements rguliers) sur un alphabet . Cette approche
contribue donc btir un lien entre les expressions rgulires et les automates finis.

Dfinition :
Lalgbre REG

des lments rguliers sur un alphabet fini est


une structure algbrique (R,, , * ,,{c}), o R _ P(*) contient tous les ensembles
{u}, pour tout u . Tout sous-ensemble L _ R est dit tre un ensemble rgulier sur
lalphabet fini .


VI- Algbre de Kleene :

Lalgbre de Kleene a t introduite afin de rpondre une question pose par
Stephen Cole Kleene qui se demandait alors sil existait une axiomatisation intgre et
complte de la thorie quationnelle de lalgbre des ensembles rguliers.
Dans cette section, nous prsentons laxiomatisation de Kozen car elle est
considre la plus gnrale, dans le sens o toutes les autres axiomatisations
intgres et compltes de la thorie quationnelle des ensembles rguliers forment
des sous-classes dalgbres de lalgbre de Kleene.


Dfinition :
Soit K un ensemble non vide dlments ; soient + et . deux oprations
binaires sur K,* une opration unaire sur K, et 0 et 1 deux constantes de K. Une
algbre de Kleene est une structure algbrique (K, +, ., *, 0, 1) telle que :
(K, +,., 0; 1) est un demi-anneau idempotent, cest--dire une structure
algbrique qui respecte les axiomes suivants :
a + (b + c) = (a + b) + c
a . 0 = 0 . a = 0
15

a + 0 = a
a . 1 = a
a + b = b + a
1 . a = a
a + a = a
a . (b . c) = (a . b) . c
a . (b + c) = a . b + a . c
(a + b) . c = a . c + b . c

a, b, c K.
(K, +, ., *, 0, 1) satisfait les formules suivantes :
1 + a . a* s a*
1 + a*. a s a_
b + a . x s x a*. b s x
b + x . a s x b . a* s x

a, b, x K, et o s est lordre partiel naturel sur le demi-anneau
idempotent (K, +,., 0; 1), cest--dire que a s b a + b = b.

En analyse de programmes, lalgbre de Kleene fournit un cadre thorique
intressant qui a aussi bien t utilis pour prouver lquivalence de programmes que
pour prouver la correction des optimisations de code ralises la compilation. Plus
prcisment, lattrait principal de cette algbre vient du fait que cette algbre permet
dabstraire facilement les programmes informatiques : ainsi, il est gnralement
convenu que la constante 0 correspond au programme halt, que la constante 1
correspond au programme skip, que loprateur binaire + correspond un choix non
dterministe entre deux programmes, que loprateur binaire + correspond la
squence de programmes et que loprateur unaire * correspond litration sur des
programmes. Cela devient dautant plus intressant lorsque lon considre une sous
classe des algbres de Kleene qui contient des tests atomiques, car il est possible de
reprsenter les programmes while. On peut alors dfinir une simple fonction de
traduction permettant de traduire des instructions de programmes en termes
algbriques :
p ; q( = p.q
if b then p else q( = b . p +b . q
if b then p( = b . p +b
while b do p( = (b . p)* .b

o p et q sont des actions atomiques, b est un test atomique etb est la ngation du
test b. Par exemple, avec cette fonction de traduction, le programme
if b then begin p; q end
else begin p; r end
se traduit en algbre de Kleene avec tests par le terme (b . p . q +b . p . r).

16

Une fois des programmes traduits en termes algbriques, il est alors possible
dutiliser les rgles de lalgbre pour prouver que deux termes sont gaux, et donc
que les programmes quils abstraient sont quivalents. Considrons lgalit suivante
(dans lexemple qui suit, pour simplifier la notation, nous notons a . b par ab) :
(bc +bc)(bpq +bpr) = (bc +bc)p(cq + cr)

Sous lhypothse que pc = cp, on peut prouver que cette galit est valide en
rduisant au mme terme ses termes de gauche et de droite :
(bc +bc)(bpq +bpr) (bc +bc)p(cq + cr)
= ( Distributivit de . sur + ) = ( Distributivit de . sur + )
bcbpq +bcbpq + bcbpr +bcbpr bcpcq +bcpcq + bcpcq +bcpcr
= ( Commutativit des tests ) = ( Hypothse pc = cp)
bbcpq +bbcpq + bbcpr +bbcpr bccpq +bccpq + bccpq +bccpr
= ( Axiomes a . a = a et a .a = 0 ) = ( Axiomes a . a = a et a .a = 0 )
bcpq +bcpr bcpq +bcpr

VII- Automate minimal :

1. Rsiduel dun langage :
Dfinition :
On appelle rsiduel dun langage L (on dit aussi quotient gauche) tout
langage de la forme u
-1
.L ={v , u,v L}.
On a (u.v)
-1
.L = v
-1
.(u
-1
.L).
Lensemble des rsiduels du langage L scrit :
Res(L) = {u
-1
.L, u *} P(P(*))

Exemple :
Soit L le langage des mots sur ={a,b} se terminant par aab. L a 4 rsiduels :
L = c
-1
.L = b
-1
.L = b
-1
.(L {ab}) = b
-1
.(L {c})
L {ab} = a
-1
.L = a
-1
.(L {c})
L {ab,b} = a
-1
.(L {ab}) = a
-1
.(L {ab,b})
L {c} = b
-1
.(L {ab,b})



2. Taille minimale dun automate :
Soit o = (Q, q
0,
F, o) un automate fini dterministe complet et accessible et q Q.
On note L
q
= {u A*, q.u F}.

Thorme :
Res(L(o)) = {L
q,
q Q}
Corollaire :
17

Tout automate fini dterministe complet accessible qui reconnat un langage L
possde au moins lres(L)l tats.

Corollaire :
Un langage rationnel admet un nombre fini de rsiduels.
Dmonstration :
Soit q Q : o est accessible et donc - w, q
0
.w = q. Alors
L
q
= {u, q.u F} = {u, q
0
.(w.u) F} = {u, w.u L(o)} = w
-1
.L(o) res(L(o)).
Inversement, soit u un mot et, puisque o est complet, soit q = q
0
.u : on a de mme
L
q
= u
-1
.L(o)

3. Automate minimal :
Soit L un langage ayant un nombre fini de rsiduels.

Dfinition :
Un automate des rsiduels est un automate fini dterministe complet et
accessible o = (res(L), L
,
F, o) o F est lensemble des rsiduels de L contenant c, et
o o(u
-1
.L, c) = c
-1
.(u
-1
.L) = (u.c)
-1
.L

Thorme :
Lautomate des rsiduels du langage L reconnat le langage L. Il est de taille
minimale parmi les automates finis dterministes complets et accessibles
reconnaissant L.

Corollaire :
Un langage est reconnaissable si et seulement si sil possde un nombre fini
de rsiduels.
Dmonstration :
Par rcurrence sur lwl, on montre que pour tout mot w, et tout rsiduel R = u
-1
.L ,
on a o*(R,w) = w
-1
.R = (u.w)
-1
.L.
Alors u L(o) o*(L,u) F u
-1
.L F c u
-1
.L u L



4. Minimisation :
Soit un automate fini dterministe donn, il nest pas vident de trouver le
langage quil reconnat et de calculer ses rsiduels.
Il faudrait donc un algorithme permettant de minimiser lautomate sans passer par la
description du langage reconnu. Cest lobjet de ltude qui suit : afin de minimiser le
nombre dtats, il convient de faire en sorte qu deux tats distincts qq
correspondent deux rsiduels distincts L
q
Lq.

18

4.1 Miroir et Minimisation :
Pour tout automate o, on note ici L(o,q,q) lensemble des mots u qui font
passer lautomate de ltat q ltat q : L(o, q, q) = {u A*, q q.u}.

Thorme :
Soit o un automate fini non dterministe mond (cest--dire sans tats inutiles)
ayant un seul tat initial q
0
.
o est dterministe si et seulement si, pour tous les tats q, les L(o, q
0
, q)
sont deux deux disjoints.

Si o est un automate, on notera ici A(o) lautomate dterministe sans
tat-puits (cest--dire mond) obtenu en appliquant o lalgorithme de
dterminisation par parties.
On a alors le thorme suivant qui signifie en particulier que c est un automate
minimal quivalent o :

Thorme :
Soit o un automate quelconque. Notons successivement | = o, = A(|),
o = et enfin c = A(). Alors c est un automate co-accessible, et, dans c, si q et q
sont deux tats distincts, L
q
L
q
.

5. Construction de lautomate minimal :

- On regroupe au sein dun mme tat les tats qui ne sont spars par aucun mot.
- Deux tats de lautomate initial seront donc dans des tats diffrents de lautomate
minimal sil existe un mot qui les spare.
- Ceci revient raliser une partition de lensemble des tats de lautomate initial.
- La construction se fait de manire itrative, en partant dune partition initiale qui est
affine au fur et mesure.
- La partition initiale consiste en deux parties : les tats dacceptation et les tats de
non acceptation (ces deux parties sont spares par c).
- Ltape fondamentale consiste prendre une partie G et un symbole a et tudier
les transitions des tats de G sur a.
- Si ces transitions conduisent des tats appartenant des parties diffrentes dans
la partition courante, alors on doit diviser G de faon que les transitions sur a depuis
chaque partie mnent des tats appartenant la mme partie de la partition
courante.
- Ce processus est rpt jusqu`a ce que plus aucune partie nait besoin dtre
divise.





19


Exemple :

La partition initiale H
0
consiste en deux groupes (E), ltat dacceptation et
(A, B, C, D), les tats de non-acceptation.

- La partie (E) tant compose dun seul tat, elle ne peut tre dcompose.
- La partie (A, B, C, D) nest pas spare par a.
- Par contre, sur le symbole b, A, B et C ont une transition vers des membres de
(A, B, C, D) tandis que D a une transition vers E
- (A, B, C, D) doit tre spar en deux parties : (A, B, C) et (D)


- (A, B, C) nest pas spare par a
- Par contre elle est spare par b en (A,C) et (B).
- Une nouvelle itration ne parviendra pas diviser (A, C), H
2
est donc la partition
finale.
20



Si lon choisit A comme reprsentant de (A, C), on obtient lautomate suivant :



Conclusion :
La base thorique de tout langage de programmation repose sur la thorie des
langages. Nous avons nonc les notions fondamentales de la thorie, sans
lesquelles, il serait difficile dassimiler le processus de compilation des programmes,
et par consquent les mthodes utilises pour latteinte de cet objectif.

Você também pode gostar