Vous êtes sur la page 1sur 47

Automates & Langages

Frdric Olive 1
2010 / 2011

1. LIF/CMI, 39 rue joliot Curie, 13453 Marseille - 04 13 55 13 16 frederic.olive@lif.univ-mrs.fr

Table des matires


Introduction
1

Langages rguliers
1.1 Alphabets - Mots - Langages
1.2 Langages rguliers . . . . .
1.3 Expressions rgulires . . .
1.4 Automates finis dterministes

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

Rsiduels - Minimisation
2.1 Langages rsiduels . .
2.2 Automate des rsiduels
2.3 Congruence de Nerode
2.4 Minimisation . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

21
. 21
. 22
. 24
. 26

Le Thorme de Kleene
3.1 Automates finis non dterministes . . . .
3.2 Equivalence des AFN et des AFD . . . .
3.3 Des expressions rgulires aux automates
3.4 Des automates aux expressions rgulires
3.5 Lemme de ltoile . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

Bibliographie

9
9
13
14
16

31
31
34
38
40
45
47

Introduction
Quels sont les problmes susceptibles dun traitement informatique ? Cette
interrogation est fondamentale pour lInformatique. Dune certaine manire, elle
revient demander quel est lobjet de cette discipline. De plus, elle revt une dimension tout fait pratique : linformaticien appel crire un programme doit
sassurer que le traitement du problme qui loccupe est effectivement automatisable. Ce point est plus litigieux quil ny parait : on peut facilement exhiber deux
problmes trs voisins, dont lun relve dun algorithme standard, alors quon sait
de lautre quaucun programme ne pourra jamais le rsoudre. Mais lapproche de
cette question pratique ncessite le recours des outils thoriques. Essentiellement
parce que pour identifier les problmes qui acceptent un traitement algorithmique,
il nous faut dfinir rigoureusement les deux concepts en jeu : celui de problme
et celui dalgorithme. Le premier nopposera pas grande rsistance : nous lui rglerons mme son compte avant la fin de cette introduction ! Pour le deuxime, ce
sera une autre paire de manches. dire vrai, nous nauront pas de trop de ce cours
pour donner un premier aperu de la manire dont les thoriciens lont formalis.
Venons-en donc la premire interrogation : quest-ce quun problme ? On
distingue plusieurs grandes familles de problmes : les problme dvaluation,
doptimisation, dapproximation, dnumration, de comptage, de dcision. Les
plus importantes sont sans doute celles des problme dvaluation, pour lesquels
on cherche calculer la valeur dune fonction sur diffrentes entres, et celle des
problmes de dcision, o lon veut dterminer si les entres vrifient une proprit fixe. Par exemple, le calcul du pgcd de couples dentiers pris en entre
constitue un problme dvaluation. A contrario, dterminer si un x IN pris en
entre est premier est un problme de dcision.
Quelle que soit la famille considre, il est important de noter quun problme dinformatique comporte une infinit dinstances. Cest dans ce cadre
que prend sens la notion dalgorithme. Ainsi, il serait absurde dimaginer un al5

TABLE DES MATIRES

gorithme rpondant la seule question : 132 683 est-il premier ? . 1 Cest lorsquun problme comporte un nombre abitrairement grand dinstances que lautomatisation de son traitement devient utile et pertinente. Ce qui est crucial dans la
mthode de multiplication que nous connaissons tous, par exemple, cest quelle
permette de calculer le produit de deux nombres quelconques, selon une recette qui sapplique de la mme manire, quels que soient les nombres en jeu. . .
Par ailleurs, dans le contexte de formalisation qui est le notre, on ne perd pas
de gnralit se restreindre aux problmes de dcision. Si lon parvient donner
une dfinition rigoureuse de cette classe de problmes, la formalisation des autres
familles sen suivra aisment. Par consquent, dans ce cours le terme problme signifiera problme de dcision . Ce que nous exprimons encore en
crivant que pour nous, tout problme est de la forme :
Entre : x I ;
Question : x satisfait-il la proprit P ?
o I dsigne un ensemble quelconque, dont les lments sont appels instances
ou entres du problme, et P est une proprit des lments de I .
Une dernire considration permettra de finaliser notre dfinition du concept
de problme. Il est facile de se convaincre quun programme ne manipule des objets abstraits que par le biais dune reprsentation de ces objets. Et la manire
dont il opre est lie cette reprsentation. Ainsi, lalgorithme de multiplication
voqu plus haut est intimement li la reprsentation dcimale des entiers. (Pour
vous en convaincre, essayez dappliquer cet algorithme des nombres crits en
caractres Romain !) Les entres dun problme dinformatique sont donc les codages dobjets abstraits, plutt que ces objets eux-mmes. Et un codage nest rien
dautre quun mot sur un alphabet donn (assorti de rgles permettant den dcoder la signification). En somme, pour un programme, une instance dun problme
est toujours un mot. Et rsoudre le problme consiste dcider si cette entre
appartient lensemble des mots qui satisfont une certaine proprit P. Or un
ensemble de mots, cest exactement ce que nous appellerons bientt un langage
formel. Ainsi, pour un informaticien, rsoudre un problme cest reconnaitre
un langage, cest dire identifier les mots qui le constituent. Avec la notation
introduite plus haut, un problme sera donc toujours associ un langage L et
sexprimera sous la forme :

1. La rponse est non, puisque 132 683 = 277 479.

TABLE DES MATIRES

Entre : un mot x ;
Question : x appartient-il au langage L ?
Ceci clt notre entreprise de formalisation du concept de problme, sous rserve de se mettre bien daccord sur ce que nous appelons langage . Cest lun
des objectifs de ce cours.
Nous lavons annonc, la question quest-ce quun algorithme ? est autrement plus difficile clarifier. Les termes algorithme, programme, procdure,
se rfrent tous lide de succession doprations atomiques, selon un ordre qui
dpend des objets pris en entre. Dans le cas de lalgorithme de multiplication
usuel, par exemple, les oprations atomiques sont les produits de deux nombres
infrieurs 9 (facile excuter, ds lors que lon connait les tables de multiplication), et la squence de produits lmentaires effectuer dcoule facilement de
lcriture dcimale des nombres multiplier. La gnralisation de ces considrations, en vue de dfinir le mot algorithme, mne la notion de modle de
calcul . Un modle de calcul est un objet mathmatique form densembles, de
fonctions, de relations , qui abstrait les proprits voques plus haut en dfinissant une notion trs simple dopration atomique et en prcisant scrupuleusement
comment ces oprations se succdent sur une entre donne pour former un calcul.
Tenter de prciser davantage ces aspects nous emmnerait trop loin. Concluons
simplement en annonant que les automates, qui sont au cur de ce cours, forment
prcisment un premier exemple le plus simple qui soit de modle de calcul.

Chapitre 1
Langages rguliers
1.1

Alphabets - Mots - Langages

Dfinition 1 (Alphabet et mots). Un alphabet V est un ensemble fini et non vide.


Les lments de V sont appels lettres, caractres ou symboles. Un mot sur un
alphabet V est une suite finie, eventuellement vide, de symboles de V . Lensemble
des mots sur V est not V . Le mot vide (suite vide) est not . La longueur
dun mot w V est le nombre de symboles qui le composent. On la note |w|.
En particulier : || = 0.
E XEMPLE . Lensemble V = {a, b, c, 0, 1} est un alphabet. Les suites 00, abab et
aabcc001 sont des mots sur V , de longueurs respectives 2, 4 et 8.
Pour u V et i |u|, on note u[i] le ime symbole de u. On dit que u scrit
a1 . . . an sur V si u[1] = a1 , . . . , u[n] = an . Deux mots u, v sont gaux si |u| = |v| et si
pour tout i = 1, . . . , |u| : u[i] = v[i]. Si u scrit a1 . . . an sur V et si 1 i j |u|, on
note u[i.. j] le facteur de u compris entre le ime et le jme caractre de u. Autrement
dit : u[i.. j] = ai . . . a j .
Pour tout mot w et toute lettre a, on note |w|a le nombre doccurences de a
dans w. Autrement dit : |w|a = card {i IN t.q. w[i] = a}.
Dfinition 2 (Concatenation des mots). Le concatn de deux mots u et v est
le mot obtenu en juxtaposant le mot v la suite du mot u. On note u.v le mot
obtenu ou, plus simplement, uv. Ainsi, si u et v scrivent respectivement u1 . . . um
et v1 . . . v p sur un alphabet V , alors uv = u1 . . . um v1 . . . v p .
9

10

Chapitre 1.

Langages rguliers

Lopration de concatnation est clairement associative : pour tous u, v, w V ,


(uv)w = u(vw). De plus, le mot vide en est llment neutre : pour tout u V ,
u = u = u. Litration de lopration de concatnation sur un mot w permet
dobtenir les puissances de w : w0 , w1 , w2 , . . . Formellement, on dfinit par rcurrence :
w0 = et n IN, wn+1 = wwn .
Dfinition 3 (Facteur, prfixe, suffixe). Un mot u est un facteur dun mot w V
sil existe , V tels que w = u . Si de plus = (i.e. w = u ), u est dit
prfixe, ou facteur gauche, de w. Si = (i.e. w = u), u est dit suffixe, ou facteur
droit, de w.
E XEMPLES .
Soit w = aabccaa. Alors bcc est un facteur de w ; aabc est un prfixe de w ;
caa est un suffixe de w ; aa est la fois prfixe et suffixe de w.
Pour tout mot w, et w sont la fois prfixe et suffixe de w.
Les proprits qui suivent rsultent trs directement des dfinitions vues plus
haut. Malgr leur caractre dvidence, nous les regroupons dans un lemme pour
nous y rfrer facilement par la suite :
Lemme 4 Soient u, v, x, y des mots sur un alphabet V , et a V une lettre. Alors :
1. |uv| = |u| + |v|.
2. |uv|a = |u|a + |v|a .
3. pour tout i |uv| : (uv)[i] = u[i] si i |u|, v[i |u|] sinon.
4. (xu = yv et |x| |y|) x est prfixe de y et v est suffixe de u.
5. (xu = yv et |x| = |y|) x = y et u = v.
6. |u| = 0 ssi u = .
7. |u| n ssi x, y V tels que u = xy et |x| = n et |y| 0.
Preuves inductives. Le lemme suivant et son corollaire fournissent un outil trs
utile pour tablir des proprits des mots sur un alphabet fix.
Lemme 5 Si un sous-ensemble X de V satisfait :
(i) X
(ii) u X, a V : au X

1.1 Alphabets - Mots - Langages

11

alors X = V .
P REUVE . Il sagit dtablir que tout u V appartient X. Montrons cela par
rcurrence sur la longueur de u : Si |u| = 0, alors u = et donc u X par (i).
Supposons la proprit vraie pour tout mot de longueur un entier n 0 fix. Soit
alors u un mot de longueur n + 1. Puisque n + 1 > 0, u peut scrire u = ax, o a
est une lettre et x est un mot de longueur n. Par hypothse de rcurrence, on peut
affirmer que x X. Mais alors, en appliquant (ii), on a aussi u = ax X. Ainsi,
lhypothse de rcurrence est vraie au rang 0 et sa validit au rang n entrane sa
validit au rang n + 1. Par consquent, elle est vraie pour tout n IN : cest le
rsultat cherch.

Etant donne une proprit P portant sur les mots de V , convenons de noter
P(u) le fait quun mot u satisfait la proprit P.

Corollaire 6 (Preuves inductives). Soit P une proprit dfinie sur V et telle


que :
P() et
si u satisfait P, alors il en va de mme de au pour tout a V .
Alors P est vraie de tout u V .
P REUVE . Il suffit de constater que lensemble X = {u V t.q. P(u)} vrifie les
conditions (i) et (ii) du Lemme 5. Par consquent X = V , ce qui signifie bien que
tout u V satisfait P.


Le miroir dun mot w V , not wR , est le mot obtenu en inversant lordre des
lettres de w. Autrement dit, si w scrit w = w1 . . . wn sur V , alors wR = wn . . . w1 .
Un palindrome est un mot w tel que w = wR .
E XEMPLES .
abbaaR = aabba ; 100R = 001.
ressasser, eluparcettecrapule, 10101 et xyyx sont des palindromes.
Dfinition 7 (Langage formel). Un langage formel sur un alphabet V est une
partie de V . Autrement dit, cest un ensemble de mots sur V .
E XEMPLES .
Les ensembles {00, 01, 110, 1010} et {w {0, 1} t.q. |w|1 = 1} sont des
langages sur lalphabet {0, 1}. Le premier est fini, le second infini (il contient,
par exemple, la suite infinie de mots : 1, 01, 001, 0001, . . . ).

12

Chapitre 1.

Langages rguliers

Lensemble des critures dentiers en base 10 est un langage sur lalphabet


{0, 1, . . . , 9}.
Pour tout alphabet V , les ensembles V , {} et sont des langages sur V .
Le dernier est appel langage vide. On prendra garde ne pas confondre le
langage vide, qui ne contient aucun mot, et le langage {}, qui contient le
mot vide.
Les oprations sur les langages sont les oprations usuelles sur les ensembles :
union, intersection, diffrence, complmentaire. cela sajoute la concatnation
des langages, dfinie par extension de la concatnation des mots :
Dfinition 8 (Concatnation des langages). si L, L0 sont deux langages sur un
alphabet V , le concatn des langages L et L0 est le langage
LL0 = {uv t.q. u L, v L0 }.
Litration de cette opration sur un langage L permet dobtenir les puissances
de L : L0 , L1 , L2 , . . . Formellement, on dfinit par rcurrence :
L0 = {} et n IN, Ln+1 = LLn .
Enfin, on appelle fermeture de Kleene (ou ltoile) du langage L, le langage :
L =

Ln .

n0

Ainsi L est-il constitu des mots de de V qui sobtiennent par concatnation dun
nombre quelconque (eventuellement nul) de mots de L. On appelle toile stricte
de L lensemble des mots obtenus par concatnation dun nombre non nul de mots
de L. On note L+ ce langage. Autrement dit :
L+ =

Ln .

n1

Notons que quel que soit le langage L, sa fermeture de Kleene L contient


(puisque {} = L0 L ). En particulier : .
E XEMPLE . Soient L = {ab, ba} et L0 = {aa, b} deux langages sur {a, b}. Alors :
LL0 = {abaa, abb, baaa, bab}, L0 = {}, L1 = LL0 = L{} = L, L2 = LL1 = LL =
{abab, abba, baab, baba}, etc.
Dfinition 9 (Clture pour la concatnation). Un langage L V est clos pour
la concatnation si pour tous x, y V : x, y L xy L.

1.2 Langages rguliers

13

Lemme 10 Pour tout langage L, L est le plus petit langage contenant L et clos
pour la concatnation.
P REUVE . Montrons dabord que L est bien clos pour la concatnation : si x, y
L , alors il existe n, p IN tels que x Ln et y L p . Autrement dit, il existe
x1 , . . . , xn L et y1 , . . . , y p L tels que x = x1 . . . xn et y = y1 . . . y p . Par consquent
xy = x1 . . . xn y1 . . . y p Ln+p L . Par ailleurs, si L0 est un langage contenant L et
clos pour la concatnation, on a, pour tout n IN : x1 , . . . , xn L, x1 . . . xn L0 .
S

Do : Ln L0 pour tout n, et donc L = n Ln L0 .
Lemme 11 Soient A, B,C trois langages sur un alphabet V . Alors :
(AB)C = A(BC).
(A B)C = AC BC.
(A B)C AC BC et linclusion rciproque est fausse en gnral.
A B A B .
(A ) = A .
(A B) = (A B ) .
P REUVE . Exercice.

Le miroir dun langage L, not LR , est lensemble des miroirs des mots de L.
Autrement dit : LR = {wR t.q. w L}.

1.2

Langages rguliers

Soit P(V ) lensemble des parties de V , cest--dire lensemble des langages


dalphabet V . Lunion, la concatnation des langages et la fermeture de Kleene
sont des oprations darits respectives 2, 2 et 1 sur P(V ). La classe des langages
rguliers est dfinie inductivement partir de ces opration et des atomes , {},
{a}, a V . Plus prcisment :
Dfinition 12 (Langages rguliers). Lensemble REG des langages rguliers sur
un alphabet V est le plus petit des sous-ensembles X de P(V ) qui satisfont :
1. X, {} X et {a} X pour chaque a V ;
2. si A, B X, alors A B, AB et A sont dans X.

14

Chapitre 1.

Langages rguliers

Autrement dit, REG est le plus petit ensemble de langages sur V qui contienne
le langage vide et tous les langages rduit un mot de longueur 1, et qui soit clos
pour lunion, la concatnation et la fermeture de Kleene. Ou encore : les langages
rguliers sont les langages obtenus partir des atomes , {} et {a}, a V ,
par un nombre fini dapplications des trois oprations prcites.
E XEMPLES .
- Pour tout mot u V , le langage {u} est rgulier. En effet, si u scrit
a1 . . . an sur V , alors le langage {u} scrit comme la concatnation {u} = {a1 }
{a2 } . . . {an }. La rgularit de {u} se dduit alors de celle de chaque {ai } et du
fait que REG est clos pour la concatnation des langages.
- Tout langage fini est rgulier. En effet, un ensemble fini de mots L = {u1 , . . . , uk }
scrit : L = {u1 } {u2 } {u3 } {un }. Cest donc une union finie de langages rduits un seul mots et on a vu que de tels langages sont rguliers. La
conclusion dcoule du fait que REG est clos pour lunion.
- Lensemble de tous les mots, V , est rgulier. Si V = {a1 , . . . , a p }, il dcoule
du rsultat prcdent que le langage {a1 , . . . , a p } est rgulier. Mais V nest autre
que la fermeture de Kleene de ce langage, et la conclusion dcoule de la fermeture
de REG pour cette opration.
- Sur lalphabet {a, b}, lensemble {an b p | n, p IN} des mots qui scrivent
comme une suite de a suivie dune suite de b, est rgulier. En effet : le langage {an | n IN} = {a} est rgulier, comme fermeture de Kleene du langage
rgulier {a} ; pour la mme raison, {b p | p IN} = {b} est rgulier. Le langage
{an b p | n, p IN}, concatn des deux prcdents, est alors rgulier, par fermeture
de REG pour la concatnation.

1.3

Expressions rgulires

Dfinition 13 (Expressions rgulires). Lensemble ER des expressions rgulires sur un alphabet V est le plus petit des langages L sur lalphabet V {+, , , }
qui satisfont :
1. L, L et a L pour chaque a V ;
2. si , L, alors + , et sont dans L.
A chaque expression rgulire sur V on associe un langage sur V selon les
modalits suivantes :
1. L() = ; L() = {} ;

1.3 Expressions rgulires

15

2. L(a) = {a} pour tout a V ;


3. L( + ) = L() L( ) ;
4. L( ) = L()L( ) ;
5. L( ) = L() .
Le langage ainsi associ une expression rgulire est dit dnot par .
E XEMPLES .
{an b p , n, p 0} est dnot par a b .
{aabcn , n 0} est dnot par aabc .
{a1 , . . . , ak } est dnot par (a1 + + ak ) ;
(a + b) a(a + b) dnote le langage {w {a, b} t.q. |w|a 1}.
Thorme 14 Un langage est rgulier si, et seulement si, il est dnot par une
expression rgulire. Autrement dit :
REG = {L() | ER}.

P REUVE . : il sagit de montrer que tout langage rgulier est dnot par une
expression rgulire. On sappuie sur la dfinition inductive de REG. Lassertion
est clairement vraie des atomes de cette dfinition : le langage est dnot par
lexpression rgulire ; le langage {} est dnot par lexpression rgulire ;
pour tout a V , le langage {a} est dnot par lexpression rgulire a. Soient
maintenant A, B deux langages dnots par des expressions rgulires , . Alors
A B, AB, A sont eux aussi dnots par des expressions rgulires, savoir,
respectivement : + , , . Ceci clt la preuve de la premire inclusion.
: nous devons montrer que pour toute expression rgulire , le langage
L() est rgulier. On sappuie sur la dfinition inductive de lensemble des expressions rgulires. Lassertion est clairement vraie des atomes de cette dfinition :
L(), L() et L(a) (a V ) sont rguliers. Supposons maintenant que les langages
L() et L( ) associs deux expressions rgulires et soient rguliers. Alors
les langages associs aux expressions + , et valent respectivement :
L() L( ), L()L( ) et L() . Ces langages sont rguliers, puisque L() et
L( ) le sont et puisque REG est ferm pour lunion, la concatnation et la fermeture de Kleene. Ceci clt la preuve inductive de linclusion .

Dfinition 15 (Expressions rgulires quivalentes). Deux expressions rgulires
, sont dites quivalentes si elles dnotent le mme langage. On note alors
.

16

Chapitre 1.

Langages rguliers

Les proprits des oprations usuelles sur les langages se transcrivent en proprits des oprations portant sur les expressions rgulires. Voici les principales :
Proposition 16 Soient , , trois expressions rgulires sur un alphabet V . On
a:
1. + +
2.
3.
4. + +
5. ( ) ( )
6. ( + ) + + ( + )
7. ( + ) +
8. ( + ) +
9. +
10.
11.
12. +
P REUVE . Exercice.

Concluons cette section par une dernire notation : on notera souvent + lexpression . Clairement, L( + ) = L()+ .

1.4

Automates finis dterministes

Dans lintroduction de ce cours, nous avons voqu la notion de reconnaissance des langages dont limportance tient au fait quelle permet de formaliser
tous les problmes de dcision susceptibles dintresser les informaticiens. Rappelons que reconnatre un langage, cest dcider pour nimporte quel mot sil appartient ou non au langage. Le propos de cette section, cest de montrer que la
reconnaissance des langages rguliers est un problme facile, en ce quil peut tre
rsolu par un modle particulirement simple de machines : les automates
finis.
Lautomate fini dterministe est un modle de calcul rudimentaire comportant :

1.4 Automates finis dterministes

17

- un ruban dentre sur lequel est crit le mot analyser. Ce ruban est divis en
case, et le mot dentre est stock raison dune lettre par case.
- une tte de lecture, qui parcourt les cases du ruban en examinant leur contenu ;
- une unit de contrle, laquelle parviennent les informations collectes par la
tte de lecture. Lunit de contrle est caractrise par lensemble des tats dans
lesquels elle peut se trouver et par son programme, appel fonction de transition de
lautomate, qui lui permet dvoluer dun tat un autre. Cette volution dpend
de ltat courant de lunit de contrle mais aussi du caractre transmis par la tte
de lecture.
Ce dispositif est illustr Figure 1.4. Pour conclure cette description informelle,
prcisons la manire dont lautomate fonctionne et le biais par lequel il renvoit sa
rponse positive ou ngative quant lappartenance du mot dentre un langage fix : parmi les tats possibles de lUC, lun est qualifi dinitial, et certains
sont dits acceptant. Lorsquil dmarre son calcul sur une entre w, lautomate est
dans ltat initial et la tte de lecture est positionne sur la premire lettre de w.
Puis il lit une par une les lettres de w, en changeant dtat au gr des caractres
lus. Lorsque la tte de lecture a scann la dernire lettre de w, le calcul sarrte.
Le mot lu est alors considr comme accept par lautomate si ltat de lUC
lissue du calcul est un tat acceptant.
w1 w2 w3

...

wn

Ruban dentre
Tte de lecture

Unit de contrle

F IGURE 1.1 Un automate fini


Voici la dfinition formelle :
Dfinition 17 (Automate fini dterministe). Un automate fini dterministe (AFD
en abrg) est un quintuplet (V, Q, , q0 , F), o :
1. V est un alphabet,
2. Q est un ensemble fini dont les lments sont appels tats de lautomate,
3. : Q V Q est une fonction dite fonction de transition,
4. q0 Q est un tat dsign appel tat initial, et

18

Chapitre 1.

Langages rguliers

5. F est une partie de Q dont les lments sont appels tats acceptants ou
tats finaux.
a

Si p, q Q et a V , on notera souvent (p, a) = q sous la forme p q, ou


A

mme p q sil ny a pas dambigut sur lautomate sous-jacent. Si un mot


w scrit w1 . . . wn sur lalphabet V , on appelle calcul de A sur w partir de p
lunique suite dtats p1 , p2 , . . . , pn telle que :
w

n
1
2
p = p1
p2
. . .
pn .

Ltat pn est alors appel rsultat du calcul. On dit aussi que le calcul de A sur w
w
partir de p termine dans ltat pn . On note p q le fait que le calcul de A sur
w

w partir de p termine en q. Si X est une partie de Q, on note de plus p X le


fait que le calcul de A sur w partir de p rsulte en un tat appartenant X.
Dans le cas particulier de ltat initial q0 , on appellera simplement calcul de
A sur w (sans mentionner q0 ) le calcul de A sur w partir de q0 . On dit que w est
accept par A si le calcul de A sur w termine dans un tat acceptant. Le langage
accept (ou reconnu) par A est lensemble des mots w V accepts par A . On
le note L(A ). Autrement dit :
w

L(A ) = {w V | q0 F}.
Pour dcrire un automate, il faut dabord en prciser lalphabet, lensemble des
tats, ltat initial et les tats finaux. Il y a ensuite plusieurs manires de spcifier
sa fonction de transition. La plus immdiate, puisque son domaine est fini, cest
den donner une description extensive. Ainsi, on pourra considrer un AFD A =
(V, Q, , q0 , F) dfini par : V = {a, b}, Q = {p1 , p2 , p3 }, q0 = p1 , F = {p3 }, et
dont la fonction de transition est donne explicitement sous la forme :
(p1 , a) = p2 (p1 , b) = p1
(p2 , a) = p3 (p2 , b) = p1
(p3 , a) = p3 (p3 , b) = p1
ou encore, avec les conventions dcriture tablies plus haut, sous la forme :
a

: p1 p2 p1 p1
p2 p3 p2 p1
p3 p3 p3 p1

1.4 Automates finis dterministes

19

On choisira le plus souvent de condenser ces critures sous forme dun tableau,
appel table de transition de lautomate :
a b
p1 p2 p1
p2 p3 p1
p3 p3 p1
Dans certains cas, on prfrera donner la table de passage de lautomate, qui
prcise, pour chaque tat, les symboles qui permettent daccder aux autres tats :
 p1 p2 p3
p1 b a
p2 b a
p3 b a
La flche situe au coin de ce tableau en prcise le sens de lecture : ainsi, le
symbole situ lintersection de la deuxime ligne et de la troisime colonne
indique que lautomate peut passer de ltat p1 ltat p2 en lisant la lettre a (i.e.,
a
a
il existe une transition p1 p2 ). La transition inverse, p2 p1 , nexiste pas.
Enfin, la description que nous utiliserons le plus frquement passe par la reprsentation du graphe de lautomate : celui-ci sobtient en dessinant un cercle
tiquet par q pour chaque tat q de lautomate, puis en reprsentant chaque trana
sition p q par une flche tiquete par a joignant les cercles correspondant
aux tats p et q. On convient de plus de double-cercler les tats finaux et de
pointer dune flche sans origine ltat initial. Ce qui donne, pour lautomate pris
en exemple plus haut, le graphe suivant :
b

p1
Y

p2

p3

Cette reprsentation offre deux avantages : dabord, elle donne une description exhaustive de lautomate : alphabet, tats, fonction de transition, mais aussi
tat initial et tats finaux. Ensuite, elle permet une visualisation trs intuitive du
fonctionnement de lautomate : pour simuler son calcul sur un mot w = w1 . . . wn
donn, il suffit de parcourir le graphe, partir de ltat initial, conformment au
chemin dict par la suite de lettres w1 , . . . , wn . Il est facile de voir, par exemple,
que le calcul de cet automate sur le mot babaa scrit :
b

p1 p1 p2 p1 p2 p3

20

Chapitre 1.

Langages rguliers

Du coup, on voit immdiatement que ce mot est accept par lautomate, puisque
p3 est un tat final. Par contre, le calcul de lautomate sur aaba donne la suite
a

p1 p2 p3 p1 p2 ,
et ce mot est refus par lautomate, puisque p2 nest pas final. En fait, avec un
tout petit peu dexprience, on se convainc que lautomate ainsi dcrit accepte
exactement les mots de {a, b} qui se terminent pas deux a conscutifs.
Pour fixer les ides, terminons par un nouvel exemple : on considre lautomate daphabet V = {a, b, c}, densemble dtats Q = {1, 2, 3, 4}, dtat initial
q0 = 1, densemble dtats acceptants F = {4}, et dont la fonction de transition
est donne en extention par :
(1, a) = 1 (1, b) = 2 (1, c) = 1
(2, a) = 3 (2, b) = 2 (2, c) = 1
(3, a) = 1 (3, b) = 2 (3, c) = 4
(4, a) = 4 (4, b) = 4 (4, c) = 4
ou encore, par :
a

: 1 1 1 2 1 1
2 3 2 2 2 1
3 1 3 2 3 4
4 4 4 4 4 4
Alors la table de transition, la table de passage et le graphe de cet automate sont
les suivants :
a b c
 1 2 3 4
1 1 2 1
1 ac b
2 3 2 1
2 c b a
3 1 2 4
3 a b c
4 4 4 4
4 abc
a,c

*/

1S

b
c

2S

b
a
b

a,b,c

Chapitre 2
Rsiduels - Minimisation
2.1

Langages rsiduels

Dfinition 18 (Langage rsiduel). On appelle rsiduel dun langage L V par


rapport un mot u V , le langage : L/u = {v V tel que uv L}. Autrement
dit, L/u est lensemble des mots de L commenant par u auxquels on a retir ce
prfixe u.
E XEMPLE . Si L = aa(bb + c) , alors L/a = a(bb + c) , L/b = L/c = .
Lemme 19 Soient X,Y V , u, v V et a V . On a :
1. X/uv = (X/u)/v
2. (X Y )/u = (X/u) (Y /u)
3. si
/ X : (XY )/a = (X/a)Y
4. si X : (XY )/a = (X/a)Y Y /a
5. n > 0 : X n /a = (X/a)X n1
6. X /u = (X/a)X
P REUVE . Exercice.

Dfinition 20 (Les langages Lq ). Pour chaque tat q Q dun automate A =


(V, Q, , q0 , F), on note Lq lensemble des mots w tels que le calcul de A sur w
w
partir de q termine dans un tat acceptant. Autrement dit : Lq = {w V | q F}.
En particulier, Lq0 = L(A ).
21

22

Chapitre 2.

Rsiduels - Minimisation

Lemme 21 Soient A = (V, Q, , q0 , F) un AFD et L = L(A ). Pour tous u V


et q Q on a : si (q0 , u) = q alors L/u = Lq .
u

ux

P REUVE . x L/u ssi ux L ssi q0 F ssi q0 q F ssi q F ssi x Lq . 


Dfinition 22 (Automate complet). Un automate dterministe A = (V, Q, , q0 , F)
est dit complet si sa fonction de transition est dfinie sur chaque couple (p, a)
Q V .
Corollaire 23 Soit A = (V, Q, , q0 , F) un automate dterministe complet. Alors :
{L/w, w V } = {Lq , q Q}.
En particulier, le nombre de rsiduels de L(A ) est fini et infrieur card (Q).
Remarque 24 Lhypothse A complet est imprative, comme en tmoigne
lautomate suivant sur lalphabet {a, b} :
a

t b /

pour lequel on a card (Q) = 2 alors que le langage reconnu, a b, admet trois
rsiduels distincts : a b, et .

2.2

Automate des rsiduels

Lorsquun langage na quun nombre fini de rsiduels, on peut lui associer un


automate particulier, appel automates des rsiduels de L .
Dfinition 25 (Automate des rsiduels). Soit L V un langage tel que {L/w, w
V } est fini. Lautomate des rsiduels de L est lautomate dterministe AL =
(V, Q, , q0 , F) dfini par :
Q = {L/w, w V } ;
(L/w, a) = L/wa pour tous w V , a V .
q0 = L ;
F = {L/w, w L} ;
Lemme 26 Lautomate des rsiduels de L reconnat L.

2.2 Automate des rsiduels

23

P REUVE . Il est facile de voir que (q0 , u) = (L, u) = L/u. Par consquent, (q0 , u)
F ssi L/u {L/w, w L} ssi w L tel que L/u = L/w. Puisque nous cherchons
prouver que u L ssi (q0 , u) F, nous sommes ramens la question suivante :
A-t-on : u L w L tel que L/u = L/w ?
Limplication est claire (il suffit de prendre w = u). Pour limplication rciproque, rappelons que L/u = L/w signifie : pour tout x V , ux L wx L.
En particulier, w = w L entrane u L, et donc, u L. Ceci clt la dmonstration.

E XEMPLE . Les rsiduels du langage L dnot par lexpression rgulire ab + ba
sont
1. L = L/,
2. b = L/a = L/ab,
3. a = L/b = L/ba,
4. = L/aa = L/bb.
Ce qui donne pour L lautomate des rsiduels suivant :
b

?b

a,b

>
b

a g
a

Thorme 27 (Thorme de M YHILL -N ERODE). Un langage est reconnaissable


si, et seulement si, il na quun nombre fini de rsiduels.
P REUVE . Un langage reconnaissable a un nombre fini de rsiduels, par le Corollaire 23. Rciproquement, pour tout langage L comportant un nombre fini de
rsiduels, on peut construire son automate des rsiduels, suivant la Dfinition 25,
et cet automate reconnat L, comme tabli au Lemme 26.


On sait quun langage reconnaissable L V est reconnu non par un, mais
par une infinit dautomates dterministes. Chacun de ces automates a un nombre

24

Chapitre 2.

Rsiduels - Minimisation

dtats strictement positif. Lorsquon construit un automate reconnaissant L, on


est particulirement intress ce quil comporte un nombre dtats aussi petit que
possible. Pour conclure cette section, nous montrons que lautomate des rsiduels
satisfait cette requte.
Dfinition 28 (Automate minimal). Soit L V un langage reconnaissable. Lautomate minimal de L est, parmi les automates dterministes complets reconnaissant L, celui qui minimise le nombre dtats.
Proposition 29 Lautomate minimal dun langage reconnaissable est son automate des rsiduels.
P REUVE . Soient L un langage reconnaissable et AL = (V, Q, , q0 , F) son automate des rsiduels. Alors Q = {L/w, w V } et card (Q) est donc exactement le
nombre de rsiduels de L. Mais par ailleurs, ce nombre minore le nombre dtats
de tout automate dterministe complet qui reconnat L (Corollaire 23). Donc AL
est complet (voir Dfinition 25) et minimal en nombre dtats : cest lautomate
minimal de L.


2.3

Congruence de Nerode

Cette section et la prochaine sont consacres au problme suivant : tant donn


un langage L, dfini par exemple par une expression rgulire, nous savons dsormais calculer son automate minimal par la mthode des rsiduels. Quen est-il
lorsque le langage est spcifi non pas par une expression rgulire, mais par un
automate A qui le reconnat ? Il est alors gnralement difficile didentifier les
rsiduels de L sans calculer une expression rgulire qui le dnote, ou sans en
donner une description plus simple que la seule donne de lautomate. Revenir
une telle description pour ensuite calculer les rsiduels de L, puis lautomate des
rsiduels, serait trs coteux. Il est prfrable de procder directement, en calculant un automate minimal directement partir de lautomate initial A . Cest le
rle de l algorithme de minimisation , qui sera dcrit dans la Section 2.4. Pour
lheure, nous allons tablir quelques rsultats qui sous-tendent le fonctionnement
et la correction dudit algorithme.
Dfinition 30 (Relation dquivalence). Une relation dquivalence sur un ensemble X est une relation binaire sur X, cest--dire une partie R de X X, qui
est :

2.3 Congruence de Nerode

25

rflexive : xRx pour tout x X ;


symtrique : xRy yRx pour tous x, y X ;
transitive : (xRy et yRz) xRz pour tous x, y, z X.
Dfinition 31 (Congruence). Soit A = (V, Q, , q0 , F) un automate dterministe.
Une relation dquivalence sur Q est une congruence sur A si :
(i) elle est compatible avec : (p q) (a V : (p, a) (q, a)) ;
(ii) elle sature F : (p q) (p F q F).
Dfinition 32 (Automate quotient). Soit A = (V, Q, , q0 , F) un automate dterministe et une congruence sur A . Lautomate quotient de A par est not
A / et dfini par A / = (V, [ Q ], [ ], [ q0 ], [ F ]) o :
(i) [ Q ] = Q/ = {[q], q Q} ;
(ii) [ ]([q], a) = [ (q, a)] pour tout [q] [ Q ] et tout a V ;
(iii) [ q0 ] est la classe de q0 modulo ;
(iv) [ F ] = F/ = {[q], q F}.
Observons que la dfinition de [ ] est cohrente : si p et q sont deux reprsentants dune mme classe dquivalence (i.e. si p q), alors [ (p, a)] = [ (q, a)],
puisque est compatible avec (voir Df. 31(i)). Ceci permet de poser, sans
confusion, [ ]([q], a) = [ (q, a)]. De mme, la dfinition de [ F ] est cohrente,
puisque pour tout lment p dune classe [q] (i.e. pour tout p q), on a p F ssi
q F (voir Df. 31(ii)).
Lemme 33 Pour toute congruence sur un automate dterministe A on a :
L(A /) = L(A ).
a

P REUVE . Par dfinition de [ ] on a [p] [q] ssi p q pour tous [p], [q] [ Q ]
u
et tout a V . Il sensuit que [q0 ] [q] est un calcul de A / sur le mot u si, et
u
seulement si, q0 q est un calcul de A sur u. Comme de plus [q] [ F ] ssi q F,
on voit facilement que u tiquette un calcul acceptant de [ A ] si, et seulement si,
il tiquette un calcul acceptant de A . Ainsi, u L([ A ]) ssi u L(A ), ce qui
prouve le rsultat attendu.

Dfinition 34 (Congruence de N ERODE). Soit A = (V, Q, , q0 , F) un automate
dterministe. La congruence de N ERODE de A est la relation dquivalence
dfinie sur Q par :
p q si L p = Lq .

26

Chapitre 2.

Rsiduels - Minimisation

Il est facile de vrifier que est effectivement une congruence sur A . Notons
de plus que, par dfinition des langages L p , Lq :
p q si w V : (p, w) F (q, w) F
Proposition 35 Soit A un automate dterministe complet reconnaissant un langage L. Lautomate minimal AL de L est gal au quotient A /, o est la
congruence de Nerode de A .
P REUVE . Puisque est une congruence sur A , lautomate A / reconnat L
(Lemme 33). Reste montrer que lensemble [ Q ] des tats de A / est de cardinal minimal. Or, [ Q ] = {[q], q Q} et cet ensemble est clairement quipotent
{Lq , q Q} qui, nous lavons vu, concide avec {L/u, u V } (Corollaire 23).
Par consquent, card ([ Q ]) est gal au nombre de rsiduels de L, qui minimise
de nombre dtats de tout AFD complet qui reconnat L (Corollaire 23). Do le
rsultat.


2.4

Minimisation

Les considrations qui prcdent fournissent une stratgie pour construire lautomate minimal de L partir dun automate A = (V, Q, , q0 , F) qui reconnat L :
il nous faut identifier les classes dquivalence de la congruence de N ERODE sur
A puis fabriquer A / . Cette dernire tape est facile : elle se fait essentiellement
par fusion les tats quivalents de A . Lessentiel de la procdure de minimisation
consiste donc identifier les tats quivalents.
Rappelons que p, q Q satisfont p q si L p = Lq , cest dire si pour tout
u V : u L p u Lq . Considrons maintenant les relations dquivalence
suivantes, dfinies sur Q par "affaiblissement" de la congruence de N ERODE :
pour chaque n IN, on note V n = {u V , |u| n} et on dfinit la relation n
par : p n q ssi L p V n = Lq V n ou, de manire quivalente, par :
p n q ssi u V n : u L p u Lq .

(2.1)

On exprime alors n+1 en fonction de n en utilisant le fait que v V n+1 ssi v


V n ou v = au avec a V et u V n . Par consquent, p n+1 q ssi a V, u
V n : u L p u Lq et au L p au Lq . Or, pour tout p : au L p u

2.4 Minimisation

27

L (p,a) . Il sensuit que p n+1 q ssi pour tous a V et u V n : u L p u Lq


et u L (p,a) u L (q,a) . Ceci scrit finalement :
p n+1 q ssi (p n q et a V : (p, a) n (q, a)) .

(2.2)

Cette dernire quation permet de calculer pas pas les classes dquivalence
modulo n . On commence par identifier les tats 0 -quivalents. Lquation (2.1)
donne : p 0 q ssi u V 0 : u L p u Lq ssi L p Lq . Or L p
p F. Do : p 0 q ssi p, q F ou p, q
/ F. Ainsi, 0 dfinit deux classes
dquivalences exactement : F et Q \ F. partir de l, on peut dterminer les
classes dquivalence modulo 1 : deux tats satisfont p 1 q si p 0 q et si pour
tout a V , (p, a) 0 (q, a). Autrement dit, les classes de 1 sont obtenues en
sparant, dans chaque classe de 0 , les tats qui sont "envoys" par une mme
lettre sur des 0 -classes diffrentes. Ce mme raisonnement permet de calculer
2 partir de 1 , puis, de proche en proche, toutes les relations n . Le point
cl, pour obtenir la relation de N ERODE initiale, cest de constater quil existe
ncessairement un entier n tel que n et concident.
Proposition 36 Il existe n IN tel que pour tout i 0 : n = n+i = .
P REUVE .Exercice.

En guise dexemple, faisons tourner lalgorithme sur lautomate A suivant :


a,b

1
b

/
@

5
b

0 : {1, 2, 4, 5} ; {3, 6}.


1 : {1, 4} ; {2, 5} ; {3} ; {6}.
{1, 4} et {2, 5} sont spars par a ;
{3} et {6} sont spars par b.
2 : {1} ; {4} ; {2, 5} ; {3} ; {6}.
{1} et {4} sont spars par b.

3 t
@

a
b

4X

6 t

28

Chapitre 2.

Rsiduels - Minimisation

3 : 3 = 2 , do 2 = .
Lautomate quotient A / sobtient alors, conformment la Dfinition 32,
a
en fusionnant les tats quivalents et en transformant toute transition p q de
a

lautomate initial en une transition [p] [q] de lautomate quotient. Rappelons


de plus que ltat initial A / est la classe dquivalence de ltat initial de A et
que les tats finaux de A / sont les classes dquivalence des tats finaux de A .
On obtient ainsi pour A / :
a,b

a /

1T
b

3 t
/

? 25

a,b

6 t

Considrons un nouvel exemple, avec ce deuxime automate :


/

4I o

3
a

b I

2 ^o

b
a

5^


6
b

a ab8I


a

0 : {2, 4, 5, 6, 7, 9} ; {1, 3, 8}.


1 : {2, 4, 6} ; {5, 7, 9} ; {1, 3} ; {8}.
{2, 4, 6} et {5, 7, 9} sont spars par a ;
{1, 3} et {8} sont spars par a.
2 : {2, 4, 6} ; {5} ; {7, 9} ; {1, 3} ; {8}.
{5} et {7, 9} sont spars par b.
3 : {2} ; {4, 6} ; {5} ; {7} ; {9} ; {1, 3} ; {8}.
{2} et {4, 6} sont spars par b ;
{7} et {9} sont spars par b.
4 : {2} ; {4} ; {6} ; {5} ; {7} ; {9} ; {1, 3} ; {8}.
{4} et {6} sont spars par a.

2.4 Minimisation

29

5 : {2} ; {4} ; {6} ; {5} ; {7} ; {9} ; {1} ; {3} ; {8}.


{1} et {3} sont spars par b.
La relation 5 ne peut plus tre raffine : elle concide ncessairement avec la
relation . Les tats de lautomate initial sont deux deux non quivalents, ce qui
prouve que lautomate en question tait dj minimal.

Chapitre 3
Le Thorme de Kleene
3.1

Automates finis non dterministes

Nous allons considrer dans cette section une gnralisation des automates
finis. Cette gnralisation sloigne de lintuition labore prcdement de lautomate vu comme une formalisation simplifie dordinateur rels, parce quelle
comporte une part de non dterminisme, incompatible avec le comportement dun
programme. Pourtant, les automates finis non dterministes que nous allons introduire (AFN en abrg) constituent un outil trs efficace de description des langages formels, et nous ne tarderons pas en mesurer lutilit.
Informellement, les automates non dterministes sont obtenus en enrichissant
le fonctionnement des AFD de deux nouvelles capacits :
on autorise des transitions sur le mot vide (i.e., qui se font sans dplacement
de la tte de lecture sur le mot dentre),
on permet qu une lettre et un tat fixs correspondent plusieurs transitions. Ainsi, lorsquil est dans un tat p et quil lit une lettre a, lautomate
peut choisir de manire non dterministe dvoluer vers diffrents nouveaux
tats.
Formellement, les dfinitions des AFN et des AFD sont similaires : dans les
deux cas, il faut prciser un alphabet, un ensemble dtats, une fonction de transition, un tat initial et un ensemble dtats finaux. Elles diffrent cependant dans la
nature de la fonction de transition : dans un automate dterministe, la fonction de
transition associe tout couple constitu dun tat et dune lettre, un unique tat
q Q accessible en une transition. Dans un automate non dterministe, la fonction
prend un couple constitu dun tat et dune lettre ou du mot vide et lui associe un
31

32

Chapitre 3.

Le Thorme de Kleene

ensemble dtats q Q accessibles en une transition. Autrement dit, la fonction


de transition dun tel automate a pour prototype : : Q (V {}) P(Q).
Notant V = V {}, on peut finalement crire :
Un automate fini non dterministe est un quintuplet (V, Q, , q0 , F), o :
1. V est un alphabet,
2. Q est lensemble des tats de lautomate,
3. : Q V P(Q) est la fonction de transition de lautomate,
4. q0 Q est ltat initial, et
5. F est lensemble des tats acceptant ou finaux.
Les reprsentations des AFN prolongent de manire naturelle celles que nous
avions dtailles pour les AFD. Ainsi, la fonction de transition de lautomate non
dterministe A = (V, Q, , q0 , F) dfini par : Q = {q1 , q2 , q3 , q4 }, V = {0, 1}, q0 =
q1 , F = {q4 } et
(q1 , 0) = {q1 }
(q2 , 0) = {q3 }
(q3 , 0) =
(q4 , 0) = {q4 }

(q1 , 1) = {q1 , q2 }
(q2 , 1) =
(q3 , 1) = {q4 }
(q4 , 1) = {q4 }

(q1 , ) =
(q2 , ) = {q3 }
(q3 , ) =
(q4 , ) =

pourra scrire :
0

q2 {q3 }

q3

q4

: q1 {q1 } q1 {q1 , q2 } q1
q2 {q3 } q2
0

q3
0

q3 {q4 }

q4 {q4 } q4 {q4 }

Ou encore, via la table de transition et la table de passage de lautomate :


0
1

q1 {q1 } {q1 , q2 }
q2 {q3 }

{q3 }
q3
{q4 }

q4 {q4 } {q4 }

3.1 Automates finis non dterministes

33

 q1
q1 0, 1
ou q2
q3
q4

q2 q3 q4
1
0,

1
0, 1

Enfin, nous utiliserons largement la reprsentation par le graphe de lautomate :


0,1

0,1

/'

q1

q2

0,

q3

/'

q4

Une suite dtats p1 , . . . , pn est un calcul de A sur w partir de p si p1 = p et


sil existe une suite de symboles x1 , x2 , . . . , xn dans V telle que w = x1 . . . xn , et
x

n
1
2
p1
p2
. . .
pn .

On dit alors que le calcul considr termine dans ltat pn . Notons que le fait
marquant cest la possibilit pour un AFN, dadmettre plusieurs calculs sur w
partir de p.
Un calcul de A sur w est un calcul de A sur w partir de q0 . Un tel calcul est
dit acceptant sil termine dans un tat acceptant. La dfinition des AFN permettant
une multiplicit de calculs sur un mot fix, il peut se produire en particulier que
certains calculs sur w soient acceptants alors que dautres ne le sont pas. Do
limportance de la dfinition qui suit :
On dit que w est accept par A sil existe un calcul de A sur w qui termine
dans un tat acceptant. Le langage accept (ou reconnu) par A est lensemble
des mots w V accepts par A . On le note L(A ). Autrement dit, L(A ) est le
langage :
{w V | il existe un calcul acceptant de A sur w.}.
E XEMPLE . Considrons lautomate A suivant :
/

1 n
a

b
a

2I

a,b

Le mot baaa admet les calculs suivant, selon A :


b
a
a
a
1 2 2 2 2,

34

Chapitre 3.
b

Le Thorme de Kleene

1 2 2 2 3,
1 2 2 3 1.
Les deux premiers terminent dans un tat non acceptant. Par contre, le dernier est
un calcul acceptant et cela suffit pour affirmer que baaa L(A ).

3.2

Equivalence des AFN et des AFD

Dans cette section, nous montrons que les automates non dterministes reconnaissent les mmes langages que leurs analogues dterministes. Cette quivalence
est suprenante de prime abord : on aurait pu penser que les capacits supplmentaires dont bnficient les AFN leur permettraient de reconnaitre une plus large
classe de langages. Tel nest en fait pas le cas. Mais cest prcisment la robustesse de ce concept dautomate (cest--dire, la possibilit de modifier sensiblement la formulation du concept sans modifier lobjet quil recouvre) qui fonde la
pertinence de ce modle de calcul.
Rappelons que deux automates sont quivalents sils reconnaissent le mme
langage.
Thorme 37 Tout automate non dterministe est quivalent un automate dterministe.
E LMENTS DE PREUVE . Nous devons montrer que pour chaque automate non dterministe N = (V, Q, , q0 , F) il existe un automate dterministe D qui reconnait
le mme langage. La construction procde en deux tapes :
Dans un premier temps, on construit un AFN quivalent N ne comportant
plus d-transitions. Lide, pour ce faire, est de supprimer toutes les -transitions
a
et dajouter une transition p q, pour a V , chaque fois quil existe un chemin de p vers q dans le graphe de lautomate dont toutes les artes sont tiquetes
par , sauf une, qui est tiquete par a. Formellement, on introduit la notion dclture dun tat q Q comme tant lensemble E (q) des tats accessibles partir
de q par une suite d-transitions. En dautres termes, E (q) est le plus petit en
semble dtats qui contient q et tel que p E (q) et p p0 entranent p0 E (q).
On dfinit un nouvel AFN N 0 = (V, Q, q0 , 0 , F 0 ) sans -transitions en posant :
F 0 = {p Q | E (p) F 6= }

3.2 Equivalence des AFN et des AFD

35

et pour tout (p, a) Q V :


0 (p, a) =

{E (r) | r (q, a)}

qE (p)
a

Autrement dit, il y a une transition p p0 dans N 0 ssi il existe deux tats q et


r tels que, pour lautomate N : q est accessible partir de p par une suite da
transitions ; q r et p0 est accessible partir de r par une suite d-transitions.
N

On peut alors montrer facilement que N 0 est quivalent N ;


Reste liminer le non dterminisme. Ce qui prcde permet de supposer sans
perte de gnralit que N ne comporte pas d-transitions. Comment traiter les
a
transitions non dterministes, du type p {p1 , . . . , pk } ? Lide est de construire
un nouvel automate dans lequel lensemble {p1 , . . . , pk } reprsente un unique tat.
Autrement dit, dans ce nouvel automate, lensemble des tats est P(Q). Pour
simuler toutes les transitions de N , il faudra associer ltat {p1 , . . . , pk } du
nouvel automate lensemble des tats accessibles partir de nimporte lequel des
pi . Plus formellement, notons D = (V, QD , D , q0 , FD ) lautomate dfini par :
QD = P(Q), FD = {q P(Q) | q F 6= },
et pour tout (q, a) QD V :
D (q, a) =

(q, a).

qq

On montrerait sans difficult que cet automate clairement dterministe, au vu du


prototype de sa fonction de transition est quivalent N .
Nous verrons en TD que derrire cette ide de preuve se cache un algorithme
simple permettant de construire effectivement un AFD quivalent un AFN donn.

Il va de soi que la rciproque du Thorme 37 est vraie : les AFD tant des
cas particuliers dAFN, tout langage reconnu par un AFD est aussi reconnu par
un AFN. Il sensuit que la classe REC peut tre vue indiffremment comme la
classe des langages reconnus par un AFD ou par un AFN. Ce fait nous permettra
de prouver un rsultat fondamental du cours : lidentit des classes REC et REG.
Dans cette perspectives, commenons par prouver quelques proprits de clture
de la classe REC.

36

Chapitre 3.

Le Thorme de Kleene

Proposition 38 Lensemble REC est clos pour lunion, la concatnation des langages et la fermeture de Kleene. Autrement dit, si L1 et L2 sont reconnaissables,
alors L1 L2 , L1 L2 et L1 sont reconnaissables.
P REUVE . Soient donc L1 , L2 deux langages sur un alphabet V , reconnus, respectivement, par des automates finis A1 = (V, Q1 , 1 , s1 , F1 ) et A2 = (V, Q2 , 2 , s2 , F2 ).
Nous allons construire, partir de A1 et A2 , des automates reconnaissant les langages L1 L2 , L1 L2 et L1 , prouvant ainsi lappartenance de ces trois nouveaux
langages REC. Reprsentons ces automates en mettant uniquement en vidence
leur tat initial et leurs tats finaux :
A1

A2

F IGURE 3.1 Des automates reconnaissant L1 et L2 .


On obtient alors un AFN reconnaissant lunion L1 L2 en ajoutant un nouvel
tat, que lon dcrte initial, reli aux ancients tats initiaux de A1 et A2 par des
-transitions. Cette construction est illustre Figure 3.2.
A1

A2

F IGURE 3.2 Un AFN pour L1 L2 .


Formellement, ce nouvel automate peut tre dfini comme suit : A = (V, Q, , s, F)

3.2 Equivalence des AFN et des AFD

37

o s est un nouvel tat, Q = Q1 Q2 {s}, F = F1 F2 , et est donne par :

1 (q, a) si q Q1

2 (q, a) si q Q2
(q, a) Q V : (q, a) =
{s , s } si q = s et a =

1 2

si q = s et a V
Il est alors facile de montrer quun mot w est accept par A ssi il existe un calcul
w

de la forme s s0 q avec s0 {s1 , s2 } et q F, ou de manire quivalente,


A

A1

A2

ssi il existe un calcul de lune des formes s1 q avec q F1 ou s2 q avec


q F2 . Autrement dit, w est accept par A si, et seulement si, il est accept par
A1 ou par A2 . Ce qui montre bien que L(A ) = L1 L2 .
Suivant une mthode similaire, on construit un AFN reconnaissant L1 L2 en
supprimant le statut dtat acceptant des anciens tats finaux de A1 et en ajoutant
une -transition de chacun de ces tat vers lancien tat initial de A2 .
A1

A2

F IGURE 3.3 Un AFN pour L1 L2 .


Enfin, un AFN reconnaissant L1 est obtenu partir de A1 en ajoutant un nouvel
tat, qui devient ltat initial puis en ajoutant des -transitions partant de cet tat
et de chacun des tats finaux vers lancien tat initial.
A1

F IGURE 3.4 Un AFN pour L1 .


La preuve formelle que ces deux dernires constructions sont correctes (i.e.,
ralisent bien ce quelles prtendent raliser) est laisse au lecteur.


38

Chapitre 3.

Le Thorme de Kleene

Corollaire 39 Tout langage rgulier est reconnaissable par un automate fini. Autrement dit : REG REC.
P REUVE . Il sagit de montrer linclusion REG REC. Compte tenu de la dfinition inductive de REG (voir Dfinition 12), il suffit de prouver que :
(i) REC contient les langages , {} et {a} (pour chaque lettre a) ;
(ii) REC est clos pour lunion, la concatnation des langages et la fermeture de
Kleene.
Lassertion (ii) vient prcisment dtre tablie par le Thorme 38. Reste
donc prouver (i). Le rsultat est immdiat : est reconnu par lautomate rduit
un unique tat initial et non acceptant ; {} est reconnu par lautomate rduit
un unique tat initial et acceptant ; pour chaque lettre a, {a} est reconnu par lautomate deux tats, lun initial, lautre acceptant, admettant une unique transition
tiquete par a et joignant ltat initial ltat final.


3.3

Des expressions rgulires aux automates

Avant dtablir la rciproque du Corollaire 39, nous allons montrer que la


preuve de la Proposition 38 induit un algorithme simple pour construire lautomate reconnaissant le langage dnot par une expression rgulire fixe. Commenons par illustrer la mthode sur un exemple. Soit e lexpression rgulire,
sur lalphabet {a, b} :
e = a b + b a.
Pour construire un automate quivalent e (c--d reconnaissant le langage dnot
par e), on commence par construire les automates quivalents aux expressions
rgulire atomiques intervenant dans e (ici, a et b). Ce qui donne :
a /
AF pour a :
/
b /
AF pour b :
/
Puis on dtermine les automates quivalents aux "briques" suivantes de e,
en utilisant les modalites de construction dcrites dans la preuve de la Proposition 38. On obtient par exemple ici :

AF pour a :
Et donc :
AF pour a b :
/

3.3 Des expressions rgulires aux automates

39

On a de mme, par symmtrie :


AF pour b a :

Et on obtient finalement, avec la rgle de construction de lautomate associ


lunion de deux langages :
AF pour a b + b a :

/
I

Notons que lexpression rgulire e est aussi quivalente lautomate :

? Q
/

b
a

b
a /

Ceci tmoigne du fait que lalgorithme utilis plus haut ne garantit aucune
forme de "minimalit" de lautomate calcul. Mais du moins sommes nous assurs
de la correction de cet algorithme et de sa capacit, quelle que soit la complexit
de lexpression rgulire prise en entre, fournir un automate quivalent.

40

3.4

Chapitre 3.

Le Thorme de Kleene

Des automates aux expressions rgulires

Le but de cette section est de prsenter la construction "inverse" de celle qui


prcde : partant dun automate (dterministe), nous allons construire une expression rgulire quivalente. La possibilit deffectuer cette construction pour nimporte quel AFD aura pour consquence immdiate linclusion de la classe REC
dans la classe REG.
Pour commencer, il nous faut dfinir la notion de systme dquations associ
un automate. Soit A = (V, Q, , q0 , F) un automate fini dterministe. Rappelons
que pour un tat p Q, on note L p le langage :
w

L p = {w V | p q avec q F}.
Autrement dit, L p est lensemble des mots w tel que le calcul de A sur w partir
de p est acceptant. On peut aussi remarquer que L p serait le langage reconnu
par A si p tait son tat initial. En particulier, Lq0 (o q0 est ltat initial) est le
langage reconnu par lautomate. Supposons maintenant que V = {a, b} et que les
a

transitions partant dun tat p donn soient : p q et p r. Alors si p est non


final, un mot w admet un calcul acceptant partir de p si :
soit w = au, o u est un mot de V admettant un calcul acceptant partir de
q,
soit w = bu, o u est un mot de V admettant un calcul acceptant partir de
r.
Par consquent, on a :
L p = aLq bLr .
Si p est acceptant, on montre tout aussi facilement quun mot w est dans L p si et
seulement si w = ou w aLq bLr . Par consquent, on a dans ce cas :
L p = aLq bLr {}.
Notant X p une expression rgulire qui dnote L p , les quations qui prcdent
donnent lieu aux quations suivantes, entre expressions rgulires :
X p = aXq + bXr
X p = aXq + bXr +

si p
/F
si p F

Ceci se gnralise facilement : tant donns un AFD A = (V, Q, , q0 , F) et p Q,


ak
a1
si les transitions dorigine p scrivent p
p1 , . . ., p
pk , o p1 , . . . , pk

3.4 Des automates aux expressions rgulires

41

Q et V = {a1 , . . . , ak }, alors les expressions rgulires qui dnotent les langages


L p , L p1 , . . . , L pk sont lies par lquation :
X p = a1 X p1 + + ak X pk si p
/ F,
ou par lquation
X p = a1 X p1 + + ak X pk + si p F.
Le systme dquations associ A est le systme obtenu en crivant les quations correspondant chaque tat p Q.
E XEMPLE . Lautomate suivant :
/

3
b

1
O

b
t a

/
@

4 t

est associ au systme dquations :

X1 = bX1 + aX4

X2 = aX1 + bX4
X = aX1 + bX2

3
X4 = bX4 +
Le point cl, dans la recherche de lexpression rgulire associe un automate A , cest que le systme dquations associ admet toujours une solution
(X1 , . . . , Xk ), et que cette solution se calcule facilement.
Lemme 40 (Lemme dA RDEN). Soient A, B deux langages sur V tels que
/ A.
Alors lquation
X = AX B
(3.1)
admet A B comme unique solution.
P REUVE . Dabord, A B est solution de (3.1) puisque A(A B) B = A+ B B =
A B. Ensuite, cest la plus petite des solutions : si X vrifie (3.1), une rcurrence
simple permet dtablir :
n 0 : X = An+1 X An B AB B

(3.2)

42

Chapitre 3.

Le Thorme de Kleene

Il sensuit que An B X pour tout n et donc que A B = n0 An B X.


Enfin, toute solution X de (3.1) est incluse dans A B. Considrons w X et
notons n = |w|. Par (3.2), w An+1 X An B B. Comme les mots de An+1 X
sont de longueur > n (puisque
/ A), on a w An B AB B A B.

S

Les mthodes de substitutions usuelles en algbre permettent alors dappliquer


ce lemme la rsolution de systmes dquations :
j

Corollaire 41 On considre des langages rgulier Ai , Bi , tels quaucun Ai ne


contienne . Alors le systme dquations :

1
1

X1 = A1 X1 An Xn B1
..
.

X = An X An X B
n
n
n n
1 1
admet une unique solution, qui est un n-uplet (L1 , . . . , Ln ) de langages rguliers.
Ainsi, pour le systme voqu plus haut :

X1 = bX1 + aX4

X2 = aX1 + bX4
X = aX1 + bX2

3
X4 = bX4 +

(1)
(2)
(3)
(4)

le jeu des substitutions permet dobtenir :


par (4) : X4 = b = b
par (1, 5) : X1 = b aX4 = b ab
par (5, 6) : X3 = ab ab + bb

(5)
(6)
(7)

Or le langage reconnu par lautomate est lensemble des mots qui admettent un
calcul acceptant partir de ltat initial. Autrement dit, L(A ) = L3 et lautomate
est quivalent lexpression rgulire qui dnote L3 , cest--dire ab ab + bb .
Ce procd se gnralise de la faon suivante : soit A un automate dterministe (V, Q, , q0 , F). On suppose que V = {a1 , . . . , ak } et Q = {1, . . . , n}, et on
crit les quations (E1 ), . . . , (En ) associ aux tats de A :

X1 = i=1 ai X (1,ai ) + 1 (E1 )


..
.

Xn = ki=1 ai X (n,ai ) + n (En )

3.4 Des automates aux expressions rgulires

43

o i = si ltat i est acceptant, sinon. On rsoud alors le systme en appliquant lalgorithme suivant :
1
2
3
4

pour i = 1, . . . , n faire
si Xi apparait dans le membre droit de lquation (Ei ) alors
Ecrire (Ei ) sous la forme Xi = Xi + ;
Remplacer (Ei ) par lquation Xi = ;
fin
Remplacer chaque occurence de Xi par le membre droit de lquation
(Ei ) dans les quations (Ei+1 ), . . . , (En );
fin
/ A ce stade de lalgorithme, chaque quation (Ei ) exprime Xi en fonction de
Xi+1 , . . . , Xn . En particulier, (En ) permet dexprimer Xn comme une expression
rgulire constante. / ;

6
7

pour i = n 1, . . . , 1 faire
Calculer Xi en fonction des valeurs de Xi+1 , . . . , Xn ;
fin
retourner (X j ), o j est ltat initial.

E XEMPLE . Considrons lautomate dterministe A suivant :

2
x

y,z

4/

3 ^o

x
1 t

y
z
z

4 zj

On lui associe le systme dquations :


X1 =
X2 =
X3 =
X4 =

xX1 + yX3 + zX4


xX1 + yX3 + zX3
xX3 + yX2 + zX4
yX3 + zX4 +

44

Chapitre 3.

Le Thorme de Kleene

Lexcution de la boucle pour de la ligne 1 pour i = 1 donne :


X1 =
X2 =
X3 =
X4 =

x (yX3 + zX4 )
xx (yX3 + zX4 ) + yX3 + zX3
xX3 + yX2 + zX4
yX3 + zX4 +

Lexcution de la boucle pour de la ligne 1 pour i = 2 donne :


X1 =
X2 =
=
=
X3 =
X4 =

x (yX3 + zX4 )
xx (yX3 + zX4 ) + yX3 + zX3
(x+ y + y + z)X3 + x+ zX4
(x y + z)X3 + x+ zX4
xX3 + y((x y + z)X3 + x+ zX4 ) + zX4
yX3 + zX4 +

Lexcution de la boucle pour de la ligne 1 pour i = 3 donne :


X1 =
X2 =
X3 =
=
=
X4 =

x (yX3 + zX4 )
(x y + z)X3 + x+ zX4
xX3 + y((x y + z)X3 + x+ zX4 ) + zX4
(x + y(x y + z))X3 + (yx+ z + z)X4
(x + y(x y + z)) (yx+ z + z)X4 )
y(x + y(x y + z)) (yx+ z + z)X4 + zX4 +

Lexcution de la boucle pour de la ligne 1 pour i = 4 donne :


X1 =
X2 =
X3 =
X4 =
=
=

x (yX3 + zX4 )
(x y + z)X3 + x+ zX4
(x + y(x y + z)) (yx+ z + z)X4 )
y(x + y(x y + z)) (yx+ z + z)X4 + zX4 +
(y(x + y(x y + z)) (yx+ z + z) + z)X4 +
(y(x + y(x y + z)) (yx+ z + z) + z)

On obtient ainsi une valeur constante pour lexpression rgulire X4 :


X4 = (y(x + y(x y + z)) (yx+ z + z) + z) .
Par ailleurs, chaque Xi , pour i < 4, sexprime en fonction de Xi+1 , . . . , X4 . On va
donc pouvoir, en "remontant" de X4 X1 calculer les valeurs de chaque expression
rgulire inconnue. Cest le but de la boucle pour de la ligne 6. Lexcution de

3.5 Lemme de ltoile

45

cette boucle pour i = 3 donne : X3 = (x + y(x y + z)) (yx+ z + z)(y(x + y(x y +


z)) (yx+ z + z) + z) . On pourrait de mme calculer les valeurs de X2 et X1 en
fonction de celles X3 et X4 . Ce sera inutile ici : X3 est lexpression quivalent
lautomate, puisque 3 est ltat initial. Ainsi, L(A ) est-il dnot par
(x + y(x y + z)) (yx+ z + z)(y(x + y(x y + z)) (yx+ z + z) + z) .

Le thorme pricipal de ce chapitre se dduit immdiatement des corollaires 39


et 41 :
Thorme 42 (Thorme de K LEENE). Les langages rguliers et reconnaissables concident : REG = REC.

3.5

Lemme de ltoile

Thorme 43 (Lemme de ltoile). Soit L un langage rgulier. Il existe un entier


k tel que tout mot w L de longueur k peut scrire sous la forme w = xyz avec :
1. |xy| k,
2. |y| > 0,
3. xyi z L pour tout i 0.
P REUVE . Soient A un AFD reconnaissant L et k le nombre dtats de
A. Soit w = w1 . . . wn un mot de L de longueur n. Notons
w

n
1
2
q0
q1
. . .
qn

le calcul de A sur w. Si n k, ce calcul passe ncessairement deux fois par le


mme tat. Autrement dit, il existe qi , q j dans la suite ci-dessus tels que 0 i <
j n et qi = q j . Mais alors, pour chaque t 0, la suite
w

wi+1

wj

w j+1

i
n
1
q0
. . .
{qi . . . q j }t . . .
qn

wi+1

wj

est un calcul de A ({qi . . . q j }t dnote le fait que cette squence de calcul


est rpte t fois). Notons x = w1 . . . wi , y = wi+1 . . . w j et z = w j+1 . . . wn . Alors
xyt z L pour chaque t, et |xy| k, |y| > 0.


46

Chapitre 3.

Le Thorme de Kleene

Corollaire 44 {an bn , n 0} nest pas rgulier.


P REUVE . Exercice.

Corollaire 45 Soit A un automate dterministe k tats. Alors :


1. L(A ) 6= ssi L(A ) contient un mot de longueur < k.
2. L(A ) est infini ssi L(A ) contient un mot de longueur comprise entre k et
2k.
P REUVE . Exercice.

Bibliographie
[Aut92] J.-M. Autebert. Calculabilit et Dcidabilit : une Introduction. Collection ERI. Masson, 1992.
[Car08] O. Carton. Langages formels, Calculabilit et Complexit. Capes
Agreg. Vuibert, 2008.
[CLR94] T. Cormen, C. Leiserson, and R. Rivest. Introduction lalgorithmique.
Dunod, 1994.
[DW83] M.D. Davis and E.J. Weyuker. Computability, Complexity, and Langages. Academic press, 1983.
[HU79] J. Hopcroft and J. D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison-Wesley, 1979.
[Koz97] Dexter Kozen. Automata and computability. Springer-Verlag, New
York, 1997.
[Sip97]

M. Sipser. Introduction to the theory of computation. PWS Publishing


Company, 1997.

[Wol91] P. Wolper. Introduction la Calculabilit. Collection IIA. InterEditions,


1991.
[Xuo92] N.H. Xuong. Mathmatiques Discrtes et Informatique. Collection
LMI. Masson, 1992.
[Xuo04] N.H. Xuong. Informatique Thorique. Sciences Sup. Dunod, 2004.

Vous aimerez peut-être aussi