Vous êtes sur la page 1sur 166

Faculte des sciences

Departement de mathematiques

Th
eorie des automates
et langages formels

a
b

1
c
a
d

c
b

3
a,c,d

a
d

a,b

d
c

7
c

5
b

d
2

a,b

b,c,d

Annee academique 20072008


Michel Rigo

9
a,b,c,d

Table des mati`


eres
Chapitre I. Mots et langages
1. Premi`eres definitions
2. Langages
3. Expressions reguli`eres et langages associes
4. Exercices

1
1
6
11
17

Chapitre II. Automates


1. Automates finis deterministes
2. Automates non deterministes
3. Stabilite des langages acceptes par automate
4. Produit dautomates
5. Exercices

23
23
25
35
39
41

Chapitre III. Langages reguliers et automates


1. Des expressions aux automates
2. Des automates aux expressions reguli`eres
3. Stabilite de la regularite
4. Crit`ere de non-regularite
5. Exercices

47
47
50
53
54
57

Chapitre IV. Automate minimal


1. Introduction
2. Congruence syntaxique
3. Automate minimal
4. Construction de lautomate minimal
5. Applications
6. Exercices

59
59
60
62
67
73
77

Chapitre V. Quelques complements sur les langages reguliers


1. Transduction
2. Recherche dun mot dans un texte
3. Fonction de complexite dun langage regulier
4. Monode syntaxique
5. Langages sans etoile
6. Exercices

81
81
84
88
95
100
104

Chapitre VI. Introduction aux langages algebriques


1. Premi`eres definitions

109
109

ii

Chapitre . Table des mati`eres

2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Arbres danalyse
Une illustration de lambiguite
Grammaires et langages reguliers
A propos de la hierarchie de Chomsky
Formes normales
Lemme de la pompe
Automates a` pile
Stabilite du caract`ere algebrique
Un theor`eme de Sch
utzenberger
Exercices

113
116
120
122
124
134
137
145
146
149

Bibliographie

153

Liste des figures

155

Index

159

CHAPITRE I

Mots et langages
Ce premier chapitre introduit quelques concepts fondamentaux de la
theorie des langages formels et de la combinatoire sur les mots.
1. Premi`
eres d
efinitions
D
efinition I.1.1. Un alphabet est un ensemble fini. Un alphabet sera en
general designe par une lettre grecque majuscule. Ainsi,

= {a, b, c}, = {, , , }, = {0, 1}, = {, , , }


sont des alphabets. Les elements dun alphabet sont appeles lettres ou symboles
eresse par letude de lADN utilisera un
Exemple I.1.2. Le biologiste int
alphabet a` quatre lettres {A, C, G, T } pour les quatre constituants des g`enes:
Adenine, Cytosine, Guanine et Thymine.
D
efinition I.1.3. Soit un alphabet. Un mot sur est une suite finie

(et ordonnee) de symboles. Par exemple, abbac et ba sont deux mots sur
lalphabet {a, b, c}. La longueur dun mot w est le nombre de symboles
constituant ce mot; on la note |w|. Ainsi,
|abbac| = 5 et |ba| = 2.
Lunique mot de longueur 0 est le mot correspondant a` la suite vide. Ce
mot sappelle le mot vide et on le note . Lensemble des mots sur est
note . Par exemple,
{a, b, c} = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .}.
D
efinition I.1.4. Si est une lettre de lalphabet , pour tout mot w =
w1 wk , on denote par

|w| = #{i {1, . . . , k} | wi = }


le nombre de lettres i apparaissant dans le mot w. Par exemple, |abbac| a =
2 et |abbac|c = 1.
Si lalphabet de cardinal n 1 est ordonne, on pourra le considerer
comme un n-uple = (1 , . . . , n ). On definit alors la fonction de Parikh
: Nn par
(w) = (|w|1 , . . . , |w|n ).
Le n-uple (w) est appele vecteur de Parikh de w. Il est clair que si n > 1,
alors nest pas injectif.
1

Chapitre I. Mots et langages

D
efinition I.1.5. Soit w = w1 w` un mot sur . Les mots

, w1 , w1 w2 , . . . , w1 w`1 , w1 w` = w
sont les prefixes de w. Un prefixe de w different de et de w est dit propre.
De facon semblable,
, w` , w`1 w` , . . . , w2 w` , w1 w` = w
sont les suffixes de w. Un suffixe de w est qualifie de propre sil diff`ere de
et de w. Soient 1 i j `. Le mot wi wj est un facteur du mot w. On
le note parfois w[i, j]. Une fois encore, on parle de facteur propre lorsque ce
dernier diff`ere de w et de . Lensemble des prefixes (resp. suffixes, facteurs)
de w est note Pref(w) (resp. Suff(w), Fac(w)).
Remarque I.1.6. On peut observer que puisque est un ensemble fini,

est denombrable1.
Rappelons la definition dun monode.
D
efinition I.1.7. Soient A un ensemble et : A A A une op
era-

tion binaire interne et partout definie. Lensemble A muni de loperation


poss`ede une structure de monode si les proprietes suivantes sont satisfaites.
I

Loperation est associative :


x, y, z A : (x y) z = x (y z).

Il existe un neutre (unique) e A tel que


x A : x e = e x = x.

Remarque I.1.8. Un monode (A, ) qui est tel que tout


element de A

poss`ede un inverse est un groupe.

Exemple I.1.9. Tout groupe est un monode; (N, +) est un monode qui

nest pas un groupe.


Profitons-en pour rappeler la definition dun morphisme de monodes.
D
efinition I.1.10. Soient (A, ) et (B, ) deux monodes de neutre re-

spectif eA et eB . Une application f : A B est un morphisme (ou encore


homomorphisme) de monodes si
(1)

x, y A : f (x y) = f (x)f (y)

et
(2)

f (eA ) = eB .
1En effet, les
elements de peuvent chacun etre caracterises par un nombre

fini dindices prenant leur valeur dans des ensembles denombrables (ici, il sagit meme
densembles finis, a
` savoir ).

I.1. Premi`eres definitions

Remarque I.1.11. Dans le cas dun homomorphisme de groupes, la condition (2) est une consequence directe de (1) et de lexistence dinverse au
sein des groupes2. Par contre, dans le cas de monodes, la condition (2) fait
bel et bien partie de la definition dun morphisme de monodes.
D
efinition I.1.12. Soit un alphabet. On d
efinit loperation de concatenation sur de la facon suivante. Pour tous mots u = u 1 uk et
v = v1 v` , ui , vi , la concatenation de u et v, notee u.v ou simplement
uv, est le mot

wi = u i
,1 i k
.
w = w1 wk+` o`
u
wk+i = vi , 1 i `

Ainsi, muni de loperation de concatenation est un monode de neutre


. En particulier, on definit la puissance n-i`eme dun mot w comme la
concatenation de n copies de w,
wn = w
w} .
| {z
n fois

On pose

w0

= .

Remarque I.1.13. Il est utile de remarquer que si # > 1, alors est

un monode non commutatif, i.e., il existe u, v tels que uv 6= vu.


Exemple I.1.14. Lapplication longueur

| | : N

est un morphisme de monodes entre ( , .) et (N, +). En effet,


u, v : |uv| = |u| + |v|
et || = 0.
Voici a` present quelques proprietes classiques de combinatoire des mots.
Proposition I.1.15. Deux mots u et v commutent sils sont puissances

dun meme troisi`eme, i.e., sil existe un mot w et des entiers i, j tels que
u = wi et v = wj .
D
emonstration. On proc`
ede par recurrence sur la longueur de uv. Si
|uv| = 0, le resultat est immediat. Supposons a` present le resultat satisfait
pour |uv| < n. Soient u, v tels que |uv| = n. On peut meme considerer
que u 6= et v 6= car sinon, le resultat serait trivial. Si |u| = |v|, alors
il est immediat que u = v. Sinon, on peut supposer que |u| < |v| (voir
figure I.1). D`es lors, il existe u0 tel que v = u0 u et |u0 | < |v|. Ainsi,
uv = uu0 u = vu = u0 uu et donc on trouve u0 u = uu0 . Puisque |uu0 | < |uv|,
on peut appliquer lhypoth`ese de recurrence. Il existe un mot w et des
entiers p, q tels que u = w p et u0 = wq . Pour conclure, on remarque que
v = u0 u = wp+q .
2pour tout x A, f (x) = f (e x) = f (e )f (x). Do`
u la conclusion en multipliant
A
A

par f (x)1 .

On utilisera
dor
enavant
la notation
multiplicative.

Chapitre I. Mots et langages

v
v

u
u

Figure I.1. uv = vu.




Remarque I.1.16. Noter que la r


eciproque du resultat ci-dessus est triv-

iale.
On a egalement le resultat plus general suivant.
Proposition I.1.17. Si x, y, z sont des mots tels que

xy = yz
avec x non vide, alors il existe des mots u, v et un entier k 0 tels que
x = uv, y = (uv)k u = u(vu)k et z = vu.

D
emonstration. Si |x| |y|, alors nous avons la situation suivante. Ainsi,

v
x

Figure I.2. xy = yz, |x| |y|.


il existe un mot v tel que x = yv (si |x| = |y|, alors v = ). Dans ce cas, on
peut prendre u = y et k = 0.
Si 0 < |x| < |y|, on proc`ede par recurrence sur |y|. Si |y| = 2 et
|x| = |z| = 1, on a
x y1 y2 = y1 y2 z,

x, z, y1 , y2

et on en deduit que x = y1 = y2 = z. Donc, u = y1 , v = et k = 1


conviennent. Supposons a` present la propriete satisfaite pour |y| n et
verifions-la pour |y| = n + 1. Puisque |x| < |y|, il existe un mot w tel que

y
y
x

z
w

Figure I.3. xy = yz, |x| < |y|.


y = xw. Ainsi, xy = yz se reecrit
xxw = xwz.

I.1. Premi`eres definitions

De l`a, on tire xw = wz avec |w| < |y| car |x| > 0. Soit |x| |w| et on
applique la premi`ere partie de la preuve, soit |x| < |w| et on peut d`es lors
appliquer lhypoth`ese de recurrence : il existe des mots u, v et un entier k
tels que
x = uv, w = (uv)k u = u(vu)k et z = vu.
Pour conclure, on remarque que
y = xw = uv(uv)k u = (uv)k+1 u.


D
efinition I.1.18. Soit w = w1 w` un mot, avec wi pour tout i.

Lentier k 1 est une periode de w si


wi = wi+k ,

i = 1, . . . , ` k.

On dit aussi que w est k-periodique. Un mot 1-periodiqe est constant. Par
exemple, le mot
abbabbabba
est 3-periodique.
Th
eor`
eme I.1.19 (Fine-Wilf3). Si un mot w poss`
ede deux periodes p et q

et si |w| p + q pgcd(p, q), alors pgcd(p, q) est aussi une periode de w.


D
emonstration. On peut supposer que |w| = p + q pgcd(p, q). En fait,
si le mot w est plus long, on consid`ere son prefixe v de longueur p + q
pgcd(p, q). Si lon montre que v poss`ede pgcd(p, q) comme periode, alors le
resultat setend a` w tout entier car w poss`ede dej`a p ou q comme periode.
On peut de plus supposer que d = pgcd(p, q) = 1, car sinon, en prenant
une lettre sur d dans w, on est presence de d mots constants de longueur
p/d + q/d 1 et on en tire la d-periodicite de w.
Soit w = w1 wp+q1 de longueur p + q 1 avec pgcd(p, q) = 1. Soit
lapplication f : {0, . . . , p + q 1} {0, . . . , p + q 1} definie 4 par

x + p si 0 x < q
f (x) =
x q si q x p + q 1.

On remarque que f est en fait une permutation de {0, . . . , p + q 1} qui


envoie [0, q 1] (resp. [q, p + q 1]) sur [p, p + q 1] (resp. [0, p 1]).
Montrons a` present que {f i (0) | i 0} decrit {0, . . . , p + q 1}. Soit j > 0
tel que f j (0) = 0 (un tel j existe toujours car f est une permutation et
se decompose donc en produit de cycles). Par definition meme de f , cela
signifie quil existe a, b N tels que j = a + b et ap bq = 0. Puisque
ap = bq et que p et q sont premiers entre eux, on en conclut que p|b, q|a et
3N. J. Fine, H. S. Wilf, Uniqueness theorems for periodic functions, Proc. Amer.

Math. Soc. 16 (1965), 109114.


4D
efinir f sur {0, . . . , p + q 1} et non sur {1, . . . , p + q 1} comme cela aurait pu
sembler naturel, nous sera bien utile. Au vu de la preuve, pourquoi ?

Chapitre I. Mots et langages

donc j p + q. Par consequent, la permutation de {0, . . . , p + q 1} induite


par f se compose dun unique cycle de longueur p + q.
Remarquons a` present que lapplication f est en relation etroite avec nos
hypoth`eses de periodicite : wi = wi+p pour tout 1 i < q et wj = wjq
pour tout q < j p + q 1. De ce qui prec`ede, on tire que w est un mot
constant (i.e. 1-periodique).


Exemple I.1.20. La borne donn


ee dans le theor`eme de Fine et Wilf est

optimale :
abaab
| {z } abaab
| {z } a
| {z } abaab
est 5-periodique, 13-periodique mais est de longueur 16 = 5+13pgcd(5, 13)
1.
Pour terminer cette section, on definit, par recurrence sur la longueur
de w, loperation miroir5 de la mani`ere suivante : si |w| = 0, alors w = et
wR = ; sinon |w| > 0 et w = u, , u et wR = uR . Si w est tel
que
wR = w,
alors w est un palindrome.
2. Langages
D
efinition I.2.1. Un langage sur est simplement un ensemble (fini ou

infini) de mots sur . En dautres termes, un langage est une partie de .


On distingue en particulier le langage vide 6 .
Exemple I.2.2. Consid
erons lalphabet = {a, b, c}. Lensemble

{a, aa, bbc, ccca, ababab}


est un langage fini. Lensemble L2a des mots sur comprenant un nombre
pair de a est aussi un langage (infini),
L2a = {, b, c, aa, bb, bc, cb, cc, aab, aac, aba, aca, . . . , abaacaaa, . . .}.

Lensemble Pal( ) forme des palindromes de est aussi un langage infini,


Pal( ) = {, a, b, c, aa, bb, cc, aaa, aba, aca, bab, bbb, bcb, cac, cbc, ccc,
aaaa, abba, acca, baab, bbbb, bccb, caac, cbbc, cccc, . . .}.

5On utilise la lettre R car la terminologie anglo-saxonne fait souvent r


eference au mot

reversal ou reverse. Dans la litterature, on trouve parfois la notation w.


e
6Ne pas confondre le langage vide ne contenant aucun
element et le langage {}
contenant uniquement le mot vide.

I.2. Langages

Soit lalphabet = {0, 1}. Lensemble constitue des ecritures binaires 7 des
entiers positifs pairs est un langage sur
{10, 100, 110, 1000, 1010, 1100, 1110, . . .}
de meme que le langage forme des ecritures binaires des nombres premiers
{10, 11, 101, 111, 1011, 1101, 10001, . . .}.
Passons a` present en revue quelques operations sur les langages. Tout
dabord, puisquun langage est un ensemble, on dispose des operations ensemblistes usuelles comme lunion, lintersection ou encore la complementation.
D
efinition I.2.3. Soient L, M deux langages. La concat
enation des

langages L et M est le langage

LM = {uv | u L, v M }.
En particulier, on peut definir la puissance n-i`eme dun langage L, n > 0,
par
Ln = {w1 wn | i {1, . . . , n}, wi L}
et on pose L0 = {}. Par exemple, si L = {a, ab, ba, ac}, alors

L2 = {aa, aab, aba, aac, abab, abba, abac, baa, baab,


baba, baac, aca, acab, acba, acac}.

Remarque I.2.4. Soit n 0. Lensemble des mots de longueur n sur

est n .

Proposition I.2.5. La concat


enation de langages est une operation asso-

ciative, elle poss`ede {} pour neutre, pour absorbant et est distributive a


`
droite et a
` gauche pour lunion, i.e., si L 1 , L2 , L3 sont des langages
L1 (L2 L3 ) = (L1 L2 )L3 ,
L1 {} = {}L1 = L1 ,
L1 = L1 = ,

L1 (L2 L3 ) = (L1 L2 ) (L1 L3 ),

(L1 L2 )L3 = (L1 L3 ) (L2 L3 ).

D
emonstration. Cest imm
ediat.


7Un mot w = w w {0, 1} repr


esente lentier n si n =
0
`

P`

wi 2i . En general,
on ne consid`ere que des mots dont le premier symbole w` diff`ere de 0. Par convention,
lentier zero est alors represente par le mot vide.
i=0

Chapitre I. Mots et langages

D
efinition I.2.6. Soit L . L
etoile de Kleene de L est donnee par

L =

Li .

i0

Ainsi, les mots de


sont exactement les mots obtenus en concatenant un
nombre arbitraire de mots de L.
Remarque I.2.7. On remarque que la notation introduite pr
ecedem-

ment est coherente puisquil sagit en fait de letoile de Kleene du langage


fini . On dit parfois que est le monode libre engendre par .
On rencontre parfois loperation L + definie par
[
L+ =
Li .
i1

Par exemple, si est un alphabet, alors + = \ {}. Dune mani`ere


generale, si L est un langage ne contenant pas le mot vide, alors L + =
L \ {}.
Proposition I.2.8. Soit L un langage. Le langage L est le plus

petit8 langage M tel que L, L M et M 2 M .

D
emonstration. Il est clair que L v
erifie les trois proprietes. Si M

satisfait les proprietes indiquees, nous devons montrer que L M . Puisque


L M et M 2 M , on en conclut que L2 M . De proche en proche, on
sapercoit que
Li M, i > 0.
Ceci conclut la preuve.

Le resultat suivant concerne les langages sur un alphabet unaire et


traduit en fait une propriete arithmetique elementaire.
Th
eor`
eme I.2.9. Soit L un langage arbitraire sur un alphabet unaire. Il
existe un langage fini F tel que L = F .
D
emonstration. Si L est fini, le r
esultat est immediat. Il suffit de prendre
F = L. Sinon, considerons le plus petit mot non vide a p , p 1, appartenant
a` L. Il est evident que {ap } L . Si cette inclusion est une egalite, alors
le resultat est demontre (F = {ap }). Sinon, soit aq1 le mot le plus court
appartenant a` L \ {ap } . D`es lors,

q1 = t1 p + r1 , avec 0 < r1 < p et t1 1.


En effet, q1 > p et q1 ne peut etre multiple de p. Nous avons a` present que
{ap , aq1 } L . On effectue le meme raisonnement. Si {a p , aq1 } 6= L , il
existe un mot le plus court aq2 appartenant a` L \ {ap , aq1 } tel que
q2 = t2 p + r2 , avec 0 < r2 < p, r2 6= r1 et t2 t1 .
8Le plus petit pour linclusion.

I.2. Langages

En effet, q2 > q1 et si r2 = r1 , alors on aurait


q2 = (t2 t1 ) p + t1 p + r1 .
| {z }
=q1

Cela signifierait alors que aq2 appartient a` {ap , aq1 } . On peut alors effectuer
la meme demarche avec {ap , aq1 , aq2 } et definir q3 si L 6= {ap , aq1 , aq2 } .
Cependant, on remarque quil y a au plus p 1 restes non nuls distincts lors
dune division euclidienne par p. Par consequent, on ne saurait effectuer ce
raisonnement indefiniment et finalement
L = {ap , aq1 , . . . , aqs }

avec s p 1.


D
efinition I.2.10. On peut
etendre les operations dobtention de prefixes,
suffixes et facteurs aux langages. Soit L un langage. On definit
[
Pref(L) =
Pref(w)
wL

comme lensemble des prefixes des mots du langage L. De la meme mani`ere,


on pose
[
[
Suff(L) =
Suff(w) et Fac(L) =
Fac(w).
wL

wL

Enfin, un langage L est prefixiel si Pref(L) = L. Il suffit donc de verifier que


tout prefixe dun mot de L est encore un mot de L. De la meme mani`ere, L
est suffixiel (resp. factoriel) si Suff(L) = L (resp. Fac(L) = L).
D
efinition I.2.11. Soit f un morphisme de monodes entre et . On

remarque que f est compl`etement caracterise par les images de f sur les symboles de . Si L est un langage sur , alors limage de L par le morphisme
f est
f (L) = {f (u) | u L}.
De la meme mani`ere, si M est un langage sur , alors limage inverse de M
par le morphisme f est
f 1 (M ) = {u | f (u) M }.
par

Exemple I.2.12. Soient = {a, b, c}, = {, } et f le morphisme d


efini

f (a) = , f (b) = , f (c) = .


Si L = {ab, bc, cb, aaab, aaac}, alors
f (L) = {, , }.
Si M = {, , }, alors

f 1 (M ) = {ab, ac, ba, ca, bab, bac, cab, cac}.

Dans notre exemple, pour tout , |f ()| = 1. Neanmoins, on peut


en toute generalite considerer un morphisme dont les images des lettres de
lalphabet dorigine seraient de longueurs differentes.

10

Chapitre I. Mots et langages

Remarque I.2.13. Il arrive, dans de nombreuses situations, quon distingue le cas o`


u il existe tel que f () = (on parle de morphisme effacant), du cas o`
u, pour tout , f () 6= (on utilise d`es lors lexpression
morphisme non effacant).

Dans la section precedente, on a introduit le miroir dun mot. Cette


operation setend naturellement aux langages.
D
efinition I.2.14. Le miroir dun langage L est

LR = {uR | u L}.
par

oture commutative dun langage L est definie


D
efinition I.2.15. La cl
Com(L) = {w | u L : , |w| = |u| }.

Cela signifie que Com(L) contient les mots obtenus en permutant les lettres
des mots de L. Par exemple, si L = {ab, bac, ccc}, alors
Com(L) = {ab, ba, abc, acb, bac, bca, cab, cba, ccc}.
En utilisant la fonction de Parikh introduite a` la definition I.1.4, il est clair
que
Com(L) = 1 (L).
Si L est un langage tel que Com(L) = L, alors L est dit commutatif.
Voici une derni`ere operation sur les mots et les langages.
D
efinition I.2.16. Le shuffle9 de deux mots u et v est le langage

u tt v = {u1 v1 un vn | u = u1 un , v = v1 vn , ui , vi , n 1}.

Par exemple10, si u = ab et v = cde, alors

u tt v = {abcde, acbde, acdbe, acdeb, cabde,

cadbe, cadeb, cdabe, cdaeb, cdeab}.

Le shuffle de deux langages se definit comme suit,


[
u tt v.
L tt M =
uL,
vM

9On pourrait tenter de traduire ce terme par m


elange. Nous avons choisi de con-

server la denomination anglo-saxonne.


10Nous avons pris ici deux mots nayant aucune lettre en commun pour rendre
lexemple plus simple. En toute generalite, on peut bien s
ur prendre des mots possedant les memes lettres.

I.3. Expressions reguli`eres et langages associes

11

3. Expressions r
eguli`
eres et langages associ
es
La notion dexpression reguli`ere est dusage frequent en informatique.
En effet, on a souvent recours aux expressions reguli`eres lorsquon desire
rechercher certains motifs recurrents. Un exemple banal est celui dun repertoire contenant divers fichiers :
> ls monrepertoire/
memoire.aux
memoire.tex
memoire.dvi
picture001.jpg
memoire.old
picture002.jpg
memoire.log
picture003.jpg

picture001.jpg
presentation.exe
price-list.txt
taches.txt

rapsody.jpg
raw.jpg

Si lutilisateur desire afficher uniquement les images au format JPEG et


comportant lextension .jpg, il aura par exemple recours a` une commande
comme
ls *.jpg
De la meme mani`ere, sil veut effacer tous les fichiers relatifs a` memoire, il
executera
rm m*
On pourrait imaginer, dans un repertoire plus fourni, vouloir selectionner
des fichiers dont les noms satisfont a` des crit`eres plus fins. Nous allons voir
comment definir ce genre de crit`eres dans le formalisme developpe lors des
precedentes sections.
D
efinition I.3.1. Soit un alphabet. Supposons que 0, e, +, ., (, ), sont

des symboles nappartenant pas a` . Lensemble R des expressions reguli`eres


sur est defini recursivement par
I
I
I

0 et e appartiennent a` R ,
pour tout , appartient a` R ,
si et appartiennent a` R , alors
( + ) appartient a` R ,
(.) appartient a` R ,
appartient a` R .

Exemple I.3.2. Si = {a, b}, voici quelques exemples dexpressions r


egu-

li`eres :

1 = (e + (a.b)),
2 = (((a.b).a) + b ) ,
3 = ((a + b) .(a.b)).
A une expression reguli`ere, on associe un langage grace a` lapplication 11
L : R 2

par
11La notation 2 d
esigne lensemble des parties de , cest-`
a-dire lensemble des

langages sur . On trouve parfois la notation P( ).

12

Chapitre I. Mots et langages

I
I
I

L(0) = , L(e) = {},


si , alors L() = {},
si et sont des expressions reguli`eres,
L[( + )] = L() L(),
L[(.)] = L()L(),
L( ) = (L()) .

Exemple I.3.3. Poursuivons lexemple I.3.2. On a

L(1 ) = {, ab},

L(2 ) = ({aba} {b} ) ,


L(3 ) = {a, b} {ab}.

D
efinition I.3.4. Un langage L sur est r
egulier sil existe une expression

reguli`ere R telle que

L = L().

Si et sont deux expressions reguli`eres telles que L() = L(), alors on


dit que et sont equivalentes.
` confondre une expression
Remarque I.3.5. Dans la suite, on sautorisera a
reguli`ere et le langage quelle represente. Si aucune confusion nest possible, on sautorisera egalement a` enlever les parenth`eses ou autres symboles
superflus. Par exemple,
(((b .a).(b .a)) .b ) = (b a b a) b
represente le langage forme des mots sur {a, b} comprenant un nombre pair
de a. On se convainc aisement que ce langage est aussi represente par
lexpression
b (a b a b ) .
Proposition I.3.6. Lensemble L(R ) des langages r
eguliers sur est la
plus petite famille de langages contenant le langage vide, les langages {}
reduits a
` une lettre ( ) et qui est stable pour les operations dunion, de
concatenation et detoile de Kleene.
D
emonstration. Par d
efinition de R et de L, il est clair que lensemble
des langages reguliers sur verifie les proprietes enoncees.
Soit A un ensemble de langages satisfaisant les proprietes enoncees. Nous
devons verifier que L(R ) A. Soit L un langage regulier. Il existe
R tel que L() = L. On proc`ede par recurrence sur la longueur 12 de
lexpression reguli`ere :
Si vaut 0, e ou ( ), alors L() vaut , {} = ou {}. Par
consequent, L appartient a` A.
12On peut d
efinir la longueur dune expression reguli`ere de la mani`ere suivante. Soient

, deux expressions reguli`eres. Si = 0, e ou ( ), alors || = 1. De plus,


|( + )| = || + || + 1, |(.)| = || + || + 1 et | | = || + 1.

I.3. Expressions reguli`eres et langages associes

13

Si = ( + ) avec et des expressions reguli`eres sur de longueur


inferieure a` celle de , alors on a
L() = L() L().
Par hypoth`ese de recurrence, L() et L() appartiennent a` A. Puisque A
est stable pour lunion, on en conclut que L appartient a` A.
Si = (.) ou = , on utilise le meme raisonnement.


Puisque nous avons decide de substituer des langages aux expressions


reguli`eres, les relations suivantes sont immediates.
eguli`ere. On a
Proposition I.3.7. Soit une expression r
I
I
I
I
I
I

+ = ,
e = e = ,
0 = 0 = 0,
( ) = ,
= 0 + 1 + + k + k+1 ,
( + ) = ( ) .

Dans le cas particulier dun alphabet unaire (i.e., contenant un seul


symbole), on dispose dune caracterisation des langages reguliers.
Proposition I.3.8. Soit = {}.

Les langages reguliers sur sont

exactement les langages de la forme

{ i | i A}

o`
u A N est une union finie de progressions arithmetiques.
Rappelons quune progression arithmetique est un ensemble de la forme
avec p, q N.

p + N.q = {p + n.q | n N}

Nous avons dej`a remarque (cf. exemple I.1.14) que


lapplication longueur est un morphisme de monodes entre ( , .) et (N, +).
Ici, lapplication
| | : {} N : n 7 n
D
emonstration.

est meme un isomorphisme13 de monodes. Lensemble P des unions finies


de progressions arithmetiques jouit des proprietes suivantes :
I
I
I

P (cas de lunion vide),


{1} P car {1} = 1 + N.0,
lunion de deux elements de P est encore un element de P (en
effet, lunion de deux unions finies de progressions arithmetiques
est encore une union finie de progressions arithmetiques),

13Un isomorphisme est un morphisme bijectif. Il est clair que nous avons une bijection

uniquement dans le cas dun alphabet unaire. En effet, si = {a, b}, alors |ab| = |ba| = 2
mais ab 6= ba et lapplication longueur nest donc pas injective.

14

Chapitre I. Mots et langages

la somme de deux elements de P est encore un element de P. Pour


le verifier, puisque P est stable pour lunion, il suffit de considerer
le cas de deux progressions arithmetiques p + N.q et r + N.s. Si
q = 0, alors
(p + N.q) + (r + N.s) = (r + p) + N.s P.
Si q > 0, alors
(p + N.q) + (r + N.s) =

0i<q

((p + r + i s) + N.q) P.

Il est clair que le membre de droite est inclus dans le membre de


gauche. Montrons lautre inclusion. Soit t (p + N.q) + (r + N.s).
Il existe m, n N tels que t = p + r + m q + n s. Si on effectue la
division euclidienne de n par q, il existe ` et i tels que
n = ` q + i, 0 i < q.
Par consequent,
t = p + r + m q + (` q + i) s = p + r + i s + (m + ` s) q
avec 0 i < q.

On peut definir letoile dune partie A de N par


A = {a1 + + an | n N et i {1, . . . , n}, ai A}.

En particulier, 0 appartient toujours a` A et ce, quel que soit A N. Ainsi,


lensemble P jouit encore dune cinqui`eme propriete.
I

Si A P, alors A P. Il suffit de le verifier pour une progression


arithmetique car si A, B N, alors, puisque laddition dans N est
commutative,
(A B) = A + B
et on a vu que P etait stable par addition. Par definition, il vient

(p + N.q) = {p + n1 q + + p + nj q | n1 , . . . , nj N, j > 0} {0}.


Si p = 0, (N.q) = {q} = N.q P. Si p > 0,
[
(p + N.q) = {0}
((p + i q) + N.p).
0i<p

Il est clair que le membre de droite est inclus dans le membre de


gauche. Verifions lautre inclusion. Soit j > 0. On a

p + n1 q + + p + nj q = p + (j 1) p + (n1 + + nj ) q.
En effectuant la division euclidienne de n 1 + +nj par p, on trouve
n1 + + nj = m p + i, avec 0 i < p
et donc
p + n1 q + + p + nj q = p + i q + (j 1 + m q) p
avec 0 i < p.

I.3. Expressions reguli`eres et langages associes

15

Supposons a` present que Q 2N est une famille de parties de N qui


contient et {1} et qui est stable pour lunion, la somme et letoile. Montrons
que P Q. Puisque Q est stable pour lunion, il suffit de montrer que les
progressions arithmetiques de la forme p + N.q, p, q N, appartiennent a` Q.
Puisque Q, on a = {0} Q. En outre, {1} Q et en utilisant le
fait que Q est stable pour laddition, on voit que {r} appartient a` Q pour
tout r > 0. On en deduit que, pour tous p, q N,
p + N.q = {p} + {q}

appartient a` Q.
On conclut en utilisant la proposition I.3.6 et le fait que lapplication
longueur est un isomorphisme entre (N, +) et ({} , .).


Corollaire I.3.9. Si L est un langage r


egulier sur un alphabet fini

arbitraire, alors lensemble

|L| = {|w| : w L} N
est une union finie de progressions arithmetiques.
D
emonstration. Soit une lettre de . On d
efinit le morphisme :

{}

par () = pour tout . Il est evident que (L) = {(w) | w


L} est un langage regulier sur un alphabet unaire et |L| = |(L)|. On
conclut grace a` la proposition precedente.

D
efinition I.3.10. Une partie X N est dite ultimement p
eriodique sil

existe N 0 et p > 0 tels que

n N, n X n + p X.
Le plus petit entier p satisfaisant une telle propriete est appele la periode de
X et le plus petit N correspondant est parfois appele la preperiode.
Proposition I.3.11. Une partie X N est ultimement p
eriodique si et

seulement si X est une union finie de progressions arithmetiques.

D
emonstration. Supposons quil existe N 0 et p > 0 tels que

n N, n X n + p X.
D`es lors, X sexprime comme une union finie de progressions arithmetiques,
[
  [

X=
{x}
(x + N.p) .
xX
x<N

xX
N x<N +p

Reciproquement, si
X=

n
[

i=1

(qi + N.pi ),

16

Chapitre I. Mots et langages

alors en posant p = ppcmi=1,...,n pi et N = maxi=1,...,n qi , il est clair que


n N, n X n + p X.


0 1 2 3 4
p

Figure I.4. Preperiode et periode.


Exemple I.3.12. Utilisons la proposition I.3.8 pour montrer que le langage
2

L = {an | n N}
nest pas regulier. En effet, si ce langage etait regulier, alors
|L| = {n2 | n N}
serait une union finie de progressions arithmetiques de la forme
A=

I
[

ri + N.si

i=1

avec au moins un des si non nul. Il est clair que la difference entre deux
elements consecutifs de A est majoree par une constante
C sup{r1 , . . . , rI , s1 , . . . , sI }

alors que la difference entre deux elements consecutifs (n + 1) 2 et n2 de A


est
2n + 1 , si n .
On peut facilement etendre ce raisonnement a` un langage de la forme
{aP (n) | n N}
o`
u P est un polynome a` coefficients naturels de degre au moins deux.
egulier. En
Exemple I.3.13. Le langage L = {an | n premier} nest pas r

effet, sil letait, lensemble des nombres premiers devrait etre ultimement
periodique14, disons de periode p et de preperiode N . Donc pour tout n
p + 1 suffisamment grand (i.e., n N ), lintervalle [n! + 2, n! + p + 1] devrait
contenir un nombre premier. Or
n! + 2, n! + 3, . . . , n! + p + 1
sont tous des nombres composes.

14Ben Green et Terence Tao ont r


ecemment (2004) demontre que lensemble des

nombres premiers contient des progressions arithmetiques arbitrairement longues, i.e.,


pour tout k, il existe d tels que p, p + d, . . . , p + k d soient premiers.

I.4. Exercices

17

4. Exercices
4.1. Mots et langages.
Exercice I.4.1. On d
efinit le miroir dun mot w , par recurrence sur

la longueur de w, de la mani`ere suivante : si w = , alors w R = ; sinon, il


existe et v tels que w = v et w R = v R . Montrer que cette
definition est equivalente a` celle qui suit : si w = , alors w R = ; sinon, il
existe et v tels que w = v et w R = v R . Demontrer que pour
tous u, v, w ,
(wR )R = w

et

(uv)R = v R uR .

emontrer que pour tous u, v, w , on a


Exercice I.4.2. D
uw = vw u = v
et
wu = wv u = v.
Exercice I.4.3. Soient x, y, u, v des mots sur un alphabet tels que xy =
uv. Demontrer que
I
I
I

si |x| > |u|, alors il existe w 6= tel que x = uw et v = wy,


si |x| = |u|, alors x = u et y = v,
si |x| < |u|, alors il existe w 6= tel que u = xw et y = wv.

Exercice I.4.4. Il est clair que pour tout mot w, #(Pref(w)) = |w| + 1.
Quelles sont les bornes (inferieures et superieures) exactes pour #(Fac(w)).
Exercice I.4.5. Soit = {a, b} un alphabet. Quels sont les mots w

pour lesquels w 2 = w3 ?

Exercice I.4.6. Soit = {a, b} un alphabet. Quels sont les mots w

pour lesquels il existe v tel que w3 = v 2 ?

Exercice I.4.7. Caract


eriser les mots w tels que w = w R (i.e., les palin-

dromes).
Exercice I.4.8. Soit L un langage. Si L = LR , cela implique-t-il

que tous les mots du langage sont des palindromes ? Justifier votre reponse
et envisager egalement le cas particulier dun alphabet unaire.

Exercice I.4.9. Soit le langage L {a, b} d


efini recursivement par les

trois conditions :
I
I
I

L,
si u appartient a` L, alors aaub appartient a` L,
un mot appartient a` L seulement sil peut etre obtenu a` partir de
la premi`ere r`egle et dun nombre fini dapplications de la deuxi`eme
r`egle.

Donner une definition implicite du langage L.

18

Chapitre I. Mots et langages

Exercice I.4.10. Soient un alphabet et L le langage d


efini recur-

sivement par les trois conditions :


I
I
I

L et pour tout , L,
si w appartient a` L, alors pour tout , w appartient a` L,
un mot appartient a` L seulement sil peut etre obtenu a` partir de
la premi`ere r`egle et dun nombre fini dapplications de la deuxi`eme
r`egle.

Quel est ce langage L ?


Exercice I.4.11. Soit L un langage. D
emontrer que

(L ) = L ,

L L = L ,

A-t-on toujours LL = L ?

L L {} = L = LL {}.

Exercice I.4.12. Soient L, M, N des langages sur un alphabet . Montrer

que L(M N ) LM LN . Montrer quen general, lautre inclusion est


fausse.
Exercice I.4.13. Soient L = {aa, bb} et M = {, b, ab}.
I

I
I
I

Enumerer les mots de LM et L tt M .


Enumerer les mots de M de longueur au plus trois.
Combien de mots de longueur 6 poss`ede le langage L ?
Combien de mots de longueur n N poss`ede le langage L ?

Exercice I.4.14. Soient L et M deux langages finis. A-t-on toujours

#L.#M = #(LM )

Justifier votre reponse.


Exercice I.4.15. Soient des alphabets disjoints et . Pour m, n N,

on note

Montrer que

t(m, n) := #(u tt v),

u m , v n .

t(m, n) = t(m, n 1) + t(m 1, n),

m, n > 0

et que t(m, 0) = t(0, m) = 1. Utiliser cette formule pour en deduire la valeur


de
#(abba tt cd).

Pour calculer t(m, n) au moyen de la formule donnee ci-dessus, combien


detapes sont necessaires ?
Exercice I.4.16. Soit = {a, b} un alphabet binaire. Un mot w est

sans carre sil ne contient aucun facteur de la forme xx avec x un mot non
vide. Enumerer tous les mots sans carre de . (Que se passe-t-il dans le
cas dun alphabet contenant plus de deux lettres ?)

I.4. Exercices

19

Exercice I.4.17. Soit un alphabet.

lequation
w = ui ,

Un mot w est primitif si

nest satisfaite pour aucun exposant i 2. On appelle racine primitive de


w, le plus petit mot u tel que w = ui , pour un i 1. Demontrer quun
mot est primitif si et seulement si il est egal a` sa propre racine primitive.

Exercice I.4.18. Deux mots u et v sur sont conjugu


es sil existe x, y

tels que u = xy et v = yx. Enumerer tous les conjugues du mot abbaa.


Montrer que la relation etre conjugue est une relation dequivalence sur
. Demontrer que si w est primitif, alors ses conjugues le sont aussi.
Exercice I.4.19. Soit lalphabet {, , , } o`
u chaque fl`eche represente
un deplacement dune unite dans le plan muni dun rep`ere orthonorme. Caracteriser lensemble des mots correspondant a` un deplacement du point de
coordonnees (0, 0) au point de coordonnees (1, 1). Meme question, mais
cette fois, on se restreint au deplacements dans le premier quadrant (on ne
peut se trouver en un point dont une des coordonnees serait strictement
negative).

4.2. Expressions r
eguli`
eres.
eguli`ere du langage forme des
Exercice I.4.20. Donner une expression r
mots de longueur au moins 2 sur {a, b} pour lesquels tous les a eventuellement presents prec`edent les b (eventuellement presents).
eme question que la precedente, mais cette fois, le mot
Exercice I.4.21. M
vide appartient au langage.
Exercice I.4.22. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui ne contiennent pas le facteur ba.
Exercice I.4.23. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent simultanement le facteur aa et le facteur bb.
Exercice I.4.24. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent le facteur aa ou le facteur bb, mais pas ces
deux facteurs simultanement.
Exercice I.4.25. Donner une expression r
eguli`ere du langage forme des

mots sur {a, b} qui contiennent exactement deux fois le facteur aa. (Suggestion : attention au facteur aaa).
eguli`ere du langage forme des
Exercice I.4.26. Donner une expression r
mots sur {a, b, c} qui ne contiennent pas deux a consecutifs.
Exercice I.4.27. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent le facteur aa exactement une fois.

20

Chapitre I. Mots et langages

Exercice I.4.28. Donner une expression r


eguli`ere du langage forme des
mots sur {a, b, c} qui debutent par a, contiennent exactement deux b et se
terminent par cc.
Exercice I.4.29. Donner une expression r
eguli`ere du langage forme des

mots sur {a, b, c} qui contiennent un nombre de a divisible par 3.


Exercice I.4.30. Donner une expression r
eguli`ere du langage forme des

mots sur {a, b} de longueur impaire et qui contiennent le facteur bb.


eguli`ere du langage forme des
Exercice I.4.31. Donner une expression r
mots sur {a, b} ayant au plus trois a.
Exercice I.4.32. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b, c} qui contiennent un nombre impair doccurences du facteur
ab.

eguli`ere du langage forme des


Exercice I.4.33. Donner une expression r
representations en base 3 des nombres pairs.
Exercice I.4.34. Donner une expression r
eguli`ere du langage forme des

representations en base 10 des nombres multiples de 5.


Exercice I.4.35. Soit un alphabet. Dans les expressions r
eguli`eres don-

nees ci-dessous, on sautorise a` utiliser lexpression + (avec R ) qui


est telle que L(+ ) = (L())+ = i>0 (L())i . Demontrer que
I

I
I
I
I

(ba)+ (a b + a ) = (ba) b a+ (b + e),


b+ (a b + e)b = b(b a + e)b+ ,
(a + b) = (a + b) b ,
(a + b) = (a + ba ) ,
(a + b) = (b (a + e)b ) .

Exercice I.4.36. Soit = {a, b}. V


erifier que

(ab)+ = (a b) \ ( aa + bb ).

4.3. Langages r
eguliers sur un alphabet unaire.
Exercice I.4.37. Exprimer |L()| comme une union finie de progressions
arithmetiques lorsque
I
I
I
I

= (ab) + bbb,
= (a(ba ) + a ) ,
= (ab)(ac(a + b)) ,
= ab(bbc) .

Exercice I.4.38. Construire une expression r


eguli`ere telle que
I
I

|L()| = 5 + N.3,
|L()| = N.7 (4 + N.5).

Exercice I.4.39. Le langage {an

3 +2n+1

| n N} est-il regulier ? Justifier.

I.4. Exercices

21

Exercice I.4.40. Le langage {a2n+1 | n N} est-il r


egulier ? Justifier.
Exercice I.4.41. Le langage {an | n P} o`
u P designe lensemble des

nombres premiers est-il regulier ? Justifier.

esultat obtenu a` lexercice precedent nest en rien


Remarque I.4.42. Le r
incompatible avec le cel`ebre theor`eme de Dirichlet qui stipule que si a et b
sont premiers entre eux (i.e., pgcd(a, b) = 1), alors la progression arithmetique a + N.b contient une infinite de nombres premiers.

CHAPITRE II

Automates
Nous avons vu au premier chapitre que les expressions reguli`eres permettent de generer ce que lon a decide dappeler les langages reguliers. Les
automates que nous allons introduire ici sont des machines permettant
de reconnatre exactement ces langages. En dautres termes, lensemble des
langages acceptes par automate fini concide avec lensemble des langages
reguliers.
1. Automates finis d
eterministes
D
efinition II.1.1. Un automate fini d
eterministe (ou AFD) est la donnee
dun quintuple
A = (Q, q0 , F, , )

o`
u

I
I
I
I
I

Q est un ensemble fini dont les elements sont les etats de A,


q0 Q est un etat privilegie appele etat initial,
F Q designe lensemble des etats finals,
est lalphabet de lautomate,
: Q Q est la fonction de transition de A.

Nous supposerons que est une fonction totale, i.e., que est defini pour
tout couple (q, ) Q (on parle alors dAFD complet).
Nous representons un AFD A de la mani`ere suivante. Les etats de A
sont les sommets dun graphe oriente et sont representes par des cercles. Si
(q, ) = q 0 , q, q 0 Q, , alors on trace un arc oriente de q vers q 0 et de
label

q q 0 .

Les etats finals sont reperes grace a` un double cercle et letat initial est
designe par une fl`eche entrante sans label. Enfin, si deux lettres et 0 sont
telles que (q, ) = q 0 et (q, 0 ) = q 0 , on sautorise a` dessiner un unique arc
portant deux labels separes par une virgule,
, 0

q q 0 .
Cette convention sadapte aisement a` plus de deux lettres.

23

24

Chapitre II. Automates

Exemple II.1.2. Lautomate A = (Q, q0 , F, , ) o`


u Q = {1, 2, 3}, q0 = 1,
F = {1, 2}, = {a, b} et o`
u la fonction de transition est donnee par

1
2
3

a
1
1
3

b
2
3
2

est represente a` la figure II.1.

a
1

Figure II.1. Un AFD.


etend naturelleD
efinition II.1.3. Soit A = (Q, q0 , F, , ) un AFD. On
ment la fonction de transition a` Q de la mani`ere suivante :
(q, ) = q
et
(q, w) = ((q, ), w), , w .

Le langage accepte par A est alors

L(A) = {w | (q0 , w) F }.

Si w L(A), on dit encore que A accepte le mot w (ou que w est accepte
par A).
Ainsi, le role fondamental dun automate est daccepter ou de rejeter
des mots. Un automate partitionne lensemble des mots sur en deux
sous-ensembles
L(A) et \ L(A).
Exemple II.1.4. Si on poursuit lexemple pr
ecedent, lautomate A de la

figure II.1 accepte le mot abbab car on a, partant de letat initial, le parcours
suivant au sein de A :
a

1 1 2 3 3 2 F.
Par contre, bba nest pas accepte par A car
b

1 2 3 3 6 F.
Exemple II.1.5. Lautomate A repr
esente a` la figure II.2 accepte exactement le langage forme des mots sur lalphabet {a, b} et contenant un nombre impair de a.

L(A) = {w {a, b} : |w|a 1

(mod 2)}.

II.2. Automates non deterministes

25

2
a

Figure II.2. Un automate fini deterministe.


Remarque II.1.6. Pour simplifier les notations, on sautorise a
` ecrire

q.w
au lieu de (q, w) si aucune confusion nest possible.
D
efinition II.1.7. A tout mot w de correspond une unique suite d
etats

de A correspondant au chemin parcouru lors de la lecture de w dans A. Cette


suite sappelle lexecution1 de w sur A. Ainsi, si w = w0 wk , avec wi ,
alors lexecution de w sur A est
(q0 , q0 .w0 , q0 .w0 w1 , . . . , q0 .w0 wk1 , q0 .w0 wk ).
Remarque II.1.8. On aurait pu aussi introduire des automates infinis en
nimposant pas la restriction a` lensemble detats Q detre fini. Les notions
dexecution ou de langage accepte se transposent a` ce cadre plus general.
(Nous verrons un peu plus loin que la notion dautomate minimal ne specifie a priori rien sur le caract`ere fini de lensemble detats.

2. Automates non d
eterministes
Le mod`ele dautomate fini non deterministe generalise le cas des AFD.
Comme nous le verrons bientot, le non-determinisme permet une plus grande
souplesse bien utile dans certaines situations.
D
efinition II.2.1. Un automate fini non d
eterministe (AFND) est la don-

nee dun quintuple


A = (Q, I, F, , )

o`
u
I
I
I
I
I

Q est un ensemble fini dont les elements sont les etats de A,


I Q est lensemble des etats initiaux,
F Q designe lensemble des etats finals,
est lalphabet de lautomate,
Q Q est une relation de transition (quon supposera
finie).

On peut d`es a` present noter plusieurs differences entre les AFD et AFND.
Dans le cas non deterministe, il est possible davoir plus dun etat intial; les
labels des arcs ne sont plus necessairement des lettres mais bien des mots
de et enfin, on na plus une fonction de transition mais une relation de
1La terminologie anglo-saxonne consacre le mot run.

26

Chapitre II. Automates

transition. Pour representer les AFND, nous utilisons les memes conventions
que pour les AFD.
Exemple II.2.2. Lautomate de la figure II.3 est un AFND ayant 1 et 3

a
1

a
a

ba

Figure II.3. Un AFND.


comme etats initiaux, 2 comme etat final et la relation de transition est
= {(1, a, 1), (1, a, 3), (1, ba, 2), (2, a, 1), (2, b, 3), (3, b, 2)}
e par un AFND A =
D
efinition II.2.3. Un mot w = w1 wk est accept
(Q, I, F, , ) sil existe q0 I, ` N \ {0}, v1 , . . . , v` , q1 , . . . , q` Q
tels que
(q0 , v1 , q1 ), (q1 , v2 , q2 ), . . . , (q`1 , v` , q` ) ,
w = v1 v `

q` F.

et

En dautres termes, cette condition signifie quil existe un chemin dans le


graphe associe a` A debutant dans un etat initial, de label w et se terminant
dans un etat final. Naturellement, le langage accepte par un AFND A est
lensemble des mots acceptes par A et se note encore L(A). Enfin, deux
AFND A et B sont dits equivalents si L(A) = L(B).
Exemple II.2.4. Si nous poursuivons lexemple II.2.2, le mot ab est ac-

cepte car 1 I, (1, a, 3) , (3, b, 2) et 2 F . Ceci se note schematiquement,


a
b
1 3 2.
A un mot, il peut correspondre plus dun chemin. Par exemple, au mot
baa, il correspond les chemins
b

3 2 1 1,
et

3 2 1 3
ba

1 2 1.

Ce sont les trois seules possibilites partant dun etat initial. Le mot baa
nest donc pas accepte par lautomate.
Remarque II.2.5. Dans la d
efinition dun AFND, rien nempeche davoir
des transitions vides du type

(q, , q 0 ) .

II.2. Automates non deterministes

27

On parle parfois de -transitions. En particulier, on suppose implicitement


que pour tout etat q dun AFND, on a
(q, , q) .
Exemple II.2.6. Consid
erons lAFND suivant. Cet automate accepte le

Figure II.4. Un AFND avec -transitions.


mot a car on a le chemin
a

1 2 1 F.
Observons encore quil nest pas possible depuis letat initial de lire des mots
debutant par b. Donc, contrairement a` la situation deterministe o`
u, a` chaque
mot correspondait exactement une execution, ici, on peut avoir pour un mot
donne plus dun chemin dans le graphe, voire meme aucun.
D
efinition II.2.7. Un AFND A = (Q, I, F, , ) est qualifi
e delementaire
si pour tout (q, w, q 0 ) ,
|w| 1.

Comme le montre le lemme suivant, on peut dans le cadre des AFND


se restreindre au cas dautomates elementaires. En effet, tout AFND est
equivalent a` un AFND elementaire.
Lemme II.2.8. Tout langage accept
e par un AFND est accepte par un
AFND elementaire.
D
emonstration. Soit A = (Q, I, F, , ) un AFND. Sil nest pas
elementaire, il existe au moins un mot w = w1 wk (k 2, wi ) et des etats
q, q 0 tels que
(q, w, q 0 ) .

Considerons de nouveaux etats q1 , . . . , qk1 nappartenant pas Q. Il est clair


que lautomate B = (Q0 , I, F, , 0 ) o`
u
Q0 = Q {q1 , . . . , qk1 }

et
0 =


\ {(q, w, q 0 )}
[

(q, w1 , q1 ), (q1 , w2 , q2 ), . . . , (qk2 , wk1 , qk1 ), (qk1 , wk , q 0 )

est tel que L(A) = L(B). En repetant cette procedure pour chaque transition
(q, w, q 0 ) telle que |w| > 1, on obtient (en un nombre fini detapes) un
automate elementaire acceptant le meme langage.


28

Chapitre II. Automates

Exemple II.2.9. Appliquons la m


ethode de construction donnee dans la
preuve du lemme precedent a` un exemple. Soit lAFND non elementaire A
represente a` la figure II.5.

aa
1

2
aba
b
ab
3

Figure II.5. Un AFND non elementaire A.


On obtient alors un automate elementaire equivalent a` A represente a`
la figure II.6, les etats supplementaires ne portant pas de numero.

a
3

Figure II.6. Un AFND elementaire equivalent a` A.

Il sagit dune
extension de la
notation q.w
introduite a
` la
remarque II.1.6

Remarque II.2.10. Soit A = (Q, I, F, , ) un AFND. Si R Q et


w , on note
R.w

lensemble des etats atteints a` partir des etats de R en lisant w. Par exemple,
avec lautomate de la figure II.4, {1}.a = {1, 2} car
a

1 2 et 1 2 1.
On a aussi pour cet automate, {1}.b = .
Dans le cas particulier de w = , on a toujours
R. R.
En effet, on suppose implicitement que pour tout etat q, (q, , q) (cf.
remarque II.2.5). Autrement dit, R. est lensemble des etats atteints depuis
les etats de R sans lire de lettres.
Si L est un langage sur , on pose
[
R.L =
R.w.
wL

II.2. Automates non deterministes

29

Le resultat suivant stipule que tout AFND est equivalent a` un AFD. En


dautres termes, lorsquon sinteresse a` lacceptation des mots dun langage,
un AFND nest pas plus puissant quun AFD.
Proposition II.2.11 (Rabin et Scott2). Tout langage accept
e par un AFND

est accepte par un AFD.


Vu le lemme II.2.8, on peut supposer disposer dun
AFND elementaire A = (Q, I, F, , ). Considerons lautomate fini deterministe
B = (2Q , Q0 , F, , )
D
emonstration.

ayant comme ensemble detats, lensemble des parties 3 de Q et tel que


I
I

letat initial Q0 est egal a` I., i.e., a` lensemble des etats de A


atteints a` partir des etats initiaux sans consommer de lettres;
lensemble des etats finals est
F = {G Q | G F 6= },

i.e., les etats finals de B sont les parties de Q contenant au moins


un etat final;
si G Q est un etat de B et w un mot non vide sur , alors on
definit la fonction de transition de B par
(G, w) = G.w.
De plus, on pose (G, ) = G.

Tout dabord, pour verifier quil sagit bien dun AFD, il suffit de montrer
que est bien une fonction de transition, i.e., que pour tous u, v ,
(G, uv) = ((G, u), v).
Si au moins un des deux mots u ou v est nul, la conclusion est immediate.
Sinon, nous devons montrer que
G.uv = (G.u).v.
Il est clair que le membre de droite est inclus dans le membre de gauche.
Lautre inclusion resulte du fait que lautomate est elementaire. En effet, cette propriete est indispensable. En guise dillustration, lautomate
represente a` la figure II.7 nest pas elementaire et {1}.ab = {3, 4}, {1}.a =
{2} et ({1}.a).b = {2}.b = 3 donc
{1}.ab 6 ({1}.a).b.
Pour un AFND elementaire, les arcs ayant des labels de longueur au plus
un, une telle situation ne peut se produire.
Il nous reste a` montrer que L(A) = L(B). On proc`ede par double
inclusion. Soit w appartenant a` L(A). Cela signifie quil existe dans A
2M. O. Rabin, D. Scott, Finite automata and their decision problems, IBM J. of

Research and Development 3 (1959), 114125.


3B est fini car #2Q = 2#Q et A est fini.

G.w d
esigne
lensemble des

etats atteints
a
` partir des
etats
de G en lisant w.

30

Chapitre II. Automates

ab
4
Figure II.7. Un automate non elementaire.
un chemin de label w debutant dans un etat initial de I (et meme dans un
etat de I.) et aboutissant dans un etat final de F . En dautres termes, par
definition de Q0 ,
Q0 .w F 6=

et (Q0 , w) appartient donc a` F.


Soit w appartenant a` L(B). Dans B, le chemin de label w debutant dans
Q0 aboutit dans un etat final de F, i.e.,
(Q0 , w) F.
Donc
(I.).w F 6=

ce qui signifie que w est accepte par A.

emonstration precedente nous fournit une methoRemarque II.2.12. La d


de (un algorithme) permettant de rechercher un automate deterministe acceptant exactement le meme langage quun AFND donne. On parle souvent
de la construction par sous-ensembles (en anglais, subset construction).
Comme nous allons le montrer sur des exemples, il est inutile de considerer
toutes les parties de Q. Seuls les etats qui peuvent etre atteints depuis Q 0
meritent detre consideres.
Exemple II.2.13. Soit lAFND repr
esente a` la figure II.8. On remarque
quil est elementaire. Sil ne letait pas, il faudrait tout dabord le rendre elementaire. On construit le tableau suivant de proche en proche, en

a
a

3
c

Figure II.8. Un automate fini non deterministe.

II.2. Automates non deterministes

31

linitialisant avec I. qui est ici


{1}. = {1}.
A chaque etape, pour un sous-ensemble X detats non encore traite, on
determine les valeurs de X. pour tout . La construction se termine
une fois que tous les sous-ensembles detats apparaissant ont ete pris en
compte.
X
X.a
X.b X.c
{1}
{1, 2, 3}

{1, 2, 3} {1, 2, 3} {2} {2, 3}

{2}

{2}

{2, 3}

{2} {2, 3}
La construction dun tel tableau peut etre facilitee en etablissant au prealable
la table de transition de lautomate. Ici, pour A, cette table est
q.a
q.b
q.c
{1, 2, 3}
2
2 {2, 3}

q
1
2
3

Si on pose A = {1}, B = {1, 2, 3}, C = , D = {2} et E = {2, 3}, alors on a


lautomate represente a` la figure II.9. Bien evidemment, les etats finals de

a
A

B
c

b,c

a,b,c

a,c

b
D
b

Figure II.9. AFD equivalent a` lAFND de la figure II.8.


cet automate sont les sous-ensembles detats de A qui contiennent 2 (le seul
etat final de A).
Exemple II.2.14. Consid
erons un AFND (elementaire) acceptant, comme

il est facile de le verifier, le langage a(ba) a . Cet automate est represente


a` la figure II.10. Ici, {1}. = {1, 2, 4}. Ainsi, la construction du tableau

32

Chapitre II. Automates

4
a
Figure II.10. un ANFD acceptant a(ba) a .

a
A

b
a,b

b
b
a

E
a

b
F

Figure II.11. un AFD acceptant a(ba) a .


donne
X.a X.b
X
A = {1, 2, 4} {3, 4}
B = {3, 4}
{4} {2}
C=

D = {4}
{4}

E = {2}
{3}

F = {3}

{2}
et on trouve lautomate de la figure II.11.
Remarque II.2.15. Il est clair que tout AFD est un cas particulier dAFND.
Par consequent, tout langage accepte par un AFD A est trivialement accepte
par un AFND (`a savoir A lui-meme). De la proposition II.2.11, nous concluons donc que les langages acceptes par les AFD et les AFND concident.

II.2. Automates non deterministes

33

Nous pourrons d`es lors, par la suite, parler dun langage accepte par un
automate fini (sans autre precision).
2.1. A propos de lexplosion exponentielle. Le nombre detats
peut crotre de mani`ere exponentielle lorsquon rend deterministe un AFND.
Dans certaines situations, cette explosion du nombre detats est inevitable
et ce, meme dans le cas dun alphabet unaire.
D
efinition II.2.16. On d
efinit un AFND Ak sur un alphabet unaire {a}
comme suit. Cet automate poss`ede un unique etat initial a` partir duquel
on peut se deplacer dans k boucles disjointes. Pour i = 1, . . . , k, la i-i`eme
boucle est un cycle de longueur pi o`
u pi represente le i-`eme nombre premier.
Les etats finals sont letat initial et un etat par cycle, de mani`ere telle que
le langage accepte par Ak soit

L(Ak ) = {an | n N.p1 N.p2 . . . N.pk } =: Lk .

Un exemple, dans le cas k = 3, est represente a` la figure II.12.

a
a

a
a

a
a

Figure II.12. Lautomate A3 .


e par lAFND Ak possedant
Proposition II.2.17. Le langage Lk accept

1 + p1 + p2 + + pk etats est accepte par un AFD ayant N = p 1 p2 pk


etats et aucun AFD ayant moins de N etats naccepte ce langage.

D
emonstration. Tout dabord, un AFD compos
e dun unique cycle de
longueur N convient. En effet, si on numerote les etats de cet automate
0, . . . , N 1, alors letat initial est 0 et les etats finals correspondent aux
indices i pour lesquels il existe j {1, . . . , k} tel que

i0

(mod pj ).

Il est clair quun tel AFD accepte exactement L k . Par exemple, dans le cas
o`
u k = 3, on a lAFD represente a` la figure II.13. Dans cet automate, est
final tout etat dont lindice est multiple de 2, 3 ou 5.
A present, supposons que B est un AFD acceptant L k et poss`edant
moins de N etats. Puisque lalphabet est unaire, cet automate est de la
forme suivante :

34

Chapitre II. Automates

1
11

7
13

17
19

23

29
Figure II.13. Un AFD acceptant L3 .

Figure II.14. Un AFD sur un alphabet unaire.


On parle parfois de mani`ere imagee, dautomate poele a
` frire (frying pan
automaton). Le cycle est de longueur ` 1 et le chemin menant au cycle
est de longueur c 0. Par hypoth`ese, on a ` < N . Par consequent, il
existe j {1, . . . , k} tel que pj soit premier avec ` (en effet, sinon, p 1 , . . . , pk
apparatraient tous dans la decomposition en facteurs premiers de ` et d`es
lors, on aurait ` N ). Par le theor`eme de Bezout, il existe f, g Z tels que
f pj + g ` = 1.
En dautres termes,
f pj 1

et donc
{m pj

(mod `)

(mod `) | m N} = {0, . . . , ` 1}.

On a bien s
ur aussi, quel que soit c,
(3)

{m pj c

(mod `) | m N} = {0, . . . , ` 1}.

Cela signifie que pour accepter les mots de la forme a n avec n = c + c0


multiple de pj , le cycle de lautomate B doit avoir tous ses etats finals. En
effet, c0 est de la forme m pj c, m N, et donc, vu (3), la lecture dun
tel mot an peut aboutir dans un etat quelconque du cycle. D`es lors, cet
automate B accepte tout mot at pour t c et en particulier, il accepte les
mots de longueur
pnk+1

II.3. Stabilite des langages acceptes par automate

35

pour n suffisamment grand. Or il est facile de voir que ces derniers mots
nappartiennent pas a` Lk . En effet, les puissances de pk+1 ne peuvent etre
multiples de p1 , . . . , pk . Ainsi, lautomate B ne peut accepter L k .

Remarque II.2.18. E. Bach et J. Shallit montrent 4 que


k
X
i=1

1
pi k 2 log k
2

alors quune minoration grossi`ere donne


p1 p k 2 k .
3. Stabilit
e des langages accept
es par automate
Nous montrons tout dabord que lensemble des langages acceptes par
un automate fini est stable pour les operations rationnelles (i.e., lunion, la
concatenation et letoile de Kleene).
es par deux autoProposition II.3.1. Si L et M sont les langages accept
mates finis, alors L M est aussi accepte par un automate fini.
D
emonstration. Repr
esentons symboliquement un automate fini A par
le schema donne a` la figure II.15. On represente uniquement les etats finals

q0
A

Figure II.15. Representation symbolique dun automate.


et letat initial. Pour ne pas alourdir le dessin, on ne represente aucune des
transitions. De plus, rien nempeche letat initial detre final. Considerer un
seul etat initial nest pas en soi une restriction. En effet, on peut ajouter
un nouvel etat q0 a` un automate. Cet etat est considere comme le seul etat
initial et on place une -transition depuis q 0 vers chacun des anciens etats
initiaux (qui perdent alors ce statut particulier). De la sorte, on obtient un
automate equivalent avec un seul etat initial.
Soient A et B deux automates finis5. Lautomate fini non deterministe represente a` la figure II.17 accepte L(A) L(B). Letat initial de cet
automate est un nouvel etat et les etats finals sont ceux de A et de B.

4cf. E. Bach et J. Shallit, algorithmic number theory, Vol.1, Efficient algorithms,

Foundations of Computing Series, MIT Press, 1996.


5Sans autre pr
ecision, on peut considerer des AFD ou des AFND.

36

Chapitre II. Automates

q0

Figure II.16. Considerer un unique etat initial nest pas


une restriction.

Figure II.17. Automate acceptant L(A) L(B).


es par deux autoProposition II.3.2. Si L et M sont les langages accept
mates finis, alors LM est aussi accepte par un automate fini.
D
emonstration. On utilise les m
emes conventions que dans la preuve de

la proposition precedente. Soient A et B deux automates finis. Lautomate


non deterministe represente a` la figure II.18 accepte L(A)L(B). Letat initial
de cet automate est letat initial de A et les etats finals sont ceux de B.

Figure II.18. Automate acceptant L(A)L(B).




Proposition II.3.3. Si L est accept


e par un automate fini, alors L lest

aussi.
D
emonstration. On emploie les m
emes conventions que dans la preuve de
la proposition II.3.1. Soit A un automate fini. Lautomate non deterministe

II.3. Stabilite des langages acceptes par automate

37

represente a` la figure II.19 accepte (L(A)) . Letat initial de cet automate


est un nouvel etat. Les etats finals sont ceux de A ainsi que le nouvel etat
initial (cela permet lacceptation du mot vide).

Figure II.19. Automate acceptant (L(A)) .




Les operations rationnelles ne sont pas les seules a` assurer la stabilite de


lensemble des langages acceptes par automate fini.
e par un automate
Proposition II.3.4. Soient L un langage accept

fini et f : un morphisme de monodes. Le langage f (L) est


aussi accepte par un automate fini.
D
emonstration. Soit A un automate fini. Sans perte de g
eneralite, on

suppose A elementaire6. Le morphisme f est compl`etement defini par les


valeurs quil attribue aux elements de . Le langage f (L) est accepte par
lautomate A0 construit a` partir de A o`
u lon remplace chaque arc de la
forme

q q 0
par

f ()

q q 0 .

Rien nassure que lautomate A0 soit encore deterministe (cela depend du


morphisme). Cependant, il est clair que f (L(A)) = L(A 0 ). En effet, si
w = w1 wk est accepte par A, il existe un chemin debutant dans letat
initial
wk
w2
w1
q2 qk1
qk
q1
q0
tel que qk soit un etat final de A. A ce chemin, il correspond dans A 0 le
chemin
f (w1 )
f (w2 )
f (wk )
q0 q1 q2 qk1 qk

et donc, f (w1 wk ) = f (w1 ) f (wk ) est accepte par A0 . Reciproquement,


a` tout mot v accepte par A0 , il correspond au moins un mot w accepte par
A tel que f (w) = v.

6Nous laissons au lecteur le soin de v


erifier que la construction proposee dans cette

preuve peut aussi etre utilisee dans le cas dun automate non elementaire.

38

Chapitre II. Automates

Proposition II.3.5. Si L est accept


e par un automate fini, alors

\ L est aussi accepte par un automate fini.

D
emonstration. Soit A un automate fini d
eterministe acceptant L (vu la
proposition II.2.11, il ne sagit pas dune veritable restriction). Si on inverse
les statuts final/non final de chacun des etats de A, on obtient un nouvel
automate acceptant exactement \ L(A).

ethode presRemarque II.3.6. Comme le montre lexemple suivant, la m


crite dans la preuve precedente requiert un automate deterministe. En effet,
lautomate de la figure II.20 est non deterministe et accepte le langage a(ba) .
Par contre, si on inverse le statut final/non final des etats, on obtient un

b
a
a
a,b

Figure II.20. Un AFND acceptant a(ba) .


automate acceptant {}a{a, b} . Ce dernier langage nest evidemment pas
le complementaire de a(ba) .
Proposition II.3.7. Si L est un langage accept
e par un automate fini, alors

LR

est aussi accepte par un automate fini.


D
emonstration. Soit A = (Q, I, F, , ) un AFND acceptant L. Lauto-

mate

AR = (Q, F, I, , R )
o`
u R est defini par
(q, w, q 0 ) (q 0 , wR , q) R ,

est un automate acceptant LR . En effet, si un mot est accepte par A, cela


signifie quil existe un chemin de label w debutant dans un etat de I et
aboutissant dans un etat de F . Ainsi, par definition dans A R , on a un
chemin de label w R debutant dans un etat de F (ensemble des etats initiaux
de AR ) et aboutissant dans un etat de I (ensemble des etats finals de A R ).
Ainsi, wR est accepte par AR . La reciproque sobtient de mani`ere analogue.


Remarque II.3.8. Grossi`


erement, on observe que A R est lautomate cons-

truit sur A o`
u on a retourne tous les arcs et inverse les statuts initial/final
des etats. Si A est un AFD, alors en general, A R est non deterministe. En

II.4. Produit dautomates

39

effet, si dans un AFD, on dispose de trois etats p, q, r tels que (p, a) = r et


(q, a) = r, alors dans lautomate miroir, on a
(r, a, p) et (r, a, q) .
Proposition II.3.9. Si L est accept
e par un automate fini, alors Pref(L)

est aussi accepte par un automate fini.


D
emonstration. Soit A = (Q, q0 , F, , ) un AFD acceptant L. Un
etat

q Q est dit coaccessible sil existe un mot w tel que q.w F . Nous
laissons au lecteur le soin de verifier que lautomate A 0 = (Q, q0 , F 0 , , ),
o`
u F 0 est lensemble des etats coaccessibles de A, accepte Pref(L).

Proposition II.3.10. Si L est accept


e par un automate fini, alors Suff(L)

est aussi accepte par un automate fini.


D
emonstration. Soit A = (Q, q0 , F, , ) un AFD acceptant L. Un
etat

q Q est dit accessible sil existe un mot w tel que q = q0 .w. Nous
laissons au lecteur le soin de verifier que lAFND A 0 = (Q, I, F, , ), o`
u
I est lensemble des etats simultanement accessibles et coaccessibles de A,
accepte Suff(L).


emonstration de cette derni`ere proposition


Remarque II.3.11. Une autre d
consiste a` remarquer que
Suff(L) = (Pref(LR ))R
et a` utiliser la proposition II.3.7
4. Produit dautomates
es par deux autoProposition II.4.1. Si L et M sont les langages accept
mates finis, alors L M est aussi accepte par un automate fini.
D
emonstration. Supposons que les automates finis d
eterministes A et B

poss`edent le meme alphabet7 . Ainsi,


(a)

(b)

A = (Q(a) , q0 , F (a) , , (a) ) et B = (Q(b) , q0 , F (b) , , (b) ).


Considerons lautomate P ayant
I

I
I

Q(a) Q(b) comme ensemble fini detats,


(a) (b)
(q0 , q0 ) comme etat initial,
F (a) F (b) comme ensemble detats finals

7Ceci est toujours possible car sils avaient des alphabets diff
erents, il suffirait de

considerer comme alphabet commun, lunion des deux alphabets.

40

Chapitre II. Automates

et dont la fonction de transition est definie par


: (Q(a) Q(b) ) (Q(a) Q(b) ) : ((q, q 0 ), ) 7 ( (a) (q, ), (b) (q 0 , )).

Les mots acceptes par P sont exactement les mots w tels que
(a)

(b)

((q0 , q0 ), w) F (a) F (b) ;

ceci est equivalent a`


(a)

(b)

(a) (q0 , w) F (a) et (b) (q0 , w) F (b)


et signifie que le langage accepte par P est L(A) L(B).

es par deux autoProposition II.4.2. Si L et M sont les langages accept


mates finis, alors L tt M est aussi accepte par un automate fini.
D
emonstration. Soient
(a)

(b)

A = (Q(a) , q0 , F (a) , (a) , (a) ) et B = (Q(b) , q0 , F (b) , (b) , (b) )


deux automates finis deterministes. Supposons dans un premier temps que
(a) (b) = .
Comme dans la preuve precedente, considerons un automate P ayant
I

I
I
I

Q(a) Q(b) comme ensemble fini detats,


(a) (b)
(q0 , q0 ) comme etat initial,
F (a) F (b) comme ensemble detats finals,
(a) (b) comme alphabet

et dont la fonction de transition : (Q (a) Q(b) )((a) (b) ) (Q(a) Q(b) )


est definie par
 (a)
( (q, ), q 0 ) si (a)
.
: ((q, q 0 ), ) 7
(q, (b) (q 0 , )) si (b)

Par construction, il est clair que L(P) = L(A) tt L(B). En effet, en lisant
un mot w, on ne peut atteindre un etat final de P que si apr`es avoir lu toutes
les lettres de (a) (resp. de (b) ) apparaissant dans w, on se trouve dans un
etat de P dont la premi`ere (resp. seconde) composante est dans F (a) (resp.
F (b) ).
Il nous reste a` envisager le cas o`
u les alphabets ne sont pas disjoints.
Dans cette situation, on peut remplacer, par exemple, (b) = {1 , . . . , n }
par un nouvel alphabet (b) = { 1 , . . . , n } de telle mani`ere que (a) (b) =
. On applique d`es lors la construction presentee ci-dessus. Pour terminer,
il suffit dappliquer le morphisme f : ( (a) (b) ) ((a) (b) ) defini
par
f ( i ) = i , i (b) et f () = , (a) .
On conclut en utilisant la proposition II.3.4.

II.5. Exercices

41

Exemple II.4.3. Consid


erons les langages a b et (cd) acceptes respec-

tivement par les deux AFD de la figure II.21. Les tables de transition sont

b
1

a,b
2

d
4

c
c

c,d

Figure II.21. AFD acceptant a b et (cd) .


q q.a q.b
1 1
2
2
2 3
3 3
3
Recherchons la table de transition
(a b ) tt (cd) ,
q
q.a
(1, 4) (1, 4)
(1, 5) (1, 5)
(1, 6) (1, 6)
(2, 4) (3, 4)
(2, 5) (3, 5)
(2, 6) (3, 6)
(3, 4) (3, 4)
(3, 5) (3, 5)
(3, 6) (3, 6)

q q.c q.d
4 5
6
4
5 6
6 6
6

de lautomate acceptant le langage


q.b
(2, 4)
(2, 5)
(2, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 4)
(3, 5)
(3, 6)

q.c
(1, 5)
(1, 6)
(1, 6)
(2, 5)
(2, 6)
(2, 6)
(3, 5)
(3, 6)
(3, 6)

q.d
(1, 6)
(1, 4)
(1, 6)
(2, 6)
(2, 4)
(2, 6)
(3, 6)
(3, 4)
(3, 6)

Les etats finals sont (1, 4) et (2, 4), letat initial est (1, 4). Si on renumerote
les etats de 1 a` 9 dans lordre du tableau, on a lAFD repris a` la figure II.22.
5. Exercices
Exercice II.5.1. Mod
eliser au moyen dun automate fini deterministe le
probl`eme du chou, de la ch`evre et du loup. Un berger doit faire traverser
une rivi`ere au moyen dune barque a` un chou, une ch`evre et un loup. La
barque etant petite pour les transporter tous, a` chaque trajet sur la rivi`ere,
il ne peut emporter quun seul des trois protagonistes. On ne peut laisser la
ch`evre et le chou (resp. le loup et la ch`evre) seuls sur une rive. Comment doit
faire le berger pour faire traverser les trois protagonistes sous les contraintes
indiquees. Avec la modelisation choisie, quel est le langage des deplacements
acceptables ?

42

Chapitre II. Automates

1
c
a
d

4
c

d
b

2
c

b,c,d

a,c,d

d
c

a,b

7
c

a,b

a,b,c,d

Figure II.22. AFD shuffle.


Exercice II.5.2. Soit lAFD A = (Q, 1, F, , ) o`
u Q = {1, 2, 3}, =

{a, b}, F = {3} et o`


u la fonction de transition est donnee par

1
2
3

a
1
3
3

b
2
.
2
1

Tracer le diagramme detats de A. Donner lexecution de A sur les mots


I
I
I
I

abba,
bbbabb,
bababa,
bbbaa.

Quel est le langage accepte par A (en donner une expression reguli`ere) ?
Exercice II.5.3. Soient les langages a b et {c}.

Construire un AFD
acceptant a b tt {c}. Pour ce faire, on construira au prealable un AFD sur
{a, b} acceptant le langage a b et un AFD sur {c} acceptant le langage {c}.
Si on note L la fonction qui a` n N associe le nombre de mots de longueur
n dans L,
L : N N : n 7 #(L n ).
Que vaut a b (n) ? Meme question pour a b tt {c} (n).

esentes a` la figure II.23. Construire


Exercice II.5.4. Soient les deux AFD repr
un AFD acceptant le shuffle des langages acceptes par ces deux automates.
Exercice II.5.5. Soit lAFND repr
esente a` la figure II.24.
I
I
I

Enumerer les elements de la relation de transition de lautomate.


Quelles sont toutes les executions possibles du mot aaabb dans cet
automate (en demarrant de lunique etat initial).
Le mot aaabb est-il accepte ?

II.5. Exercices

43

Figure II.23. Deux automates finis deterministes.

a
a

b
3
Figure II.24. Un AFND.
I
I

Rendre cet automate deterministe au moyen de la construction par


sous-ensembles detats.
Donner une expression reguli`ere du langage accepte par lautomate.

Exercice II.5.6. Rendre d


eterministe lautomate repris a` la figure II.25.

(Prendre garde aux -transitions.)

,a

2
b

a
4

Figure II.25. Un AFND a` rendre deterministe.


Exercice II.5.7. Remplacer lautomate repr
esente a` la figure II.26 par un
automate equivalent possedant un unique etat initial et un unique etat final.
Exercice II.5.8. Construire un AFND acceptant

(ab) + a .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
Exercice II.5.9 (Cet exercice pourra
etre passe en premi`ere lecture, et

repris apr`es avoir vu la notion dautomate minimal). Montrer que pour tout
n 1, le langage (a + b) b(a + b)n1 peut etre reconnu par un AFND a` n + 1
etats, mais que tout AFD acceptant ce langage poss`ede au moins 2 n etats.

44

Chapitre II. Automates

b
b
a

a
b
Figure II.26. Un AFND.
Exercice II.5.10. Construire un AFND acceptant

(abc) a .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
ecedent, construire un AFD
Exercice II.5.11. En utilisant lexercice pr
acceptant le langage
((abc) a )R .
Exercice II.5.12. Construire un AFND acceptant

(ba + bb) + (ab + aa) .


Si lautomate obtenu nest pas deterministe, le rendre deterministe.
Exercice II.5.13. Construire un AFND acceptant

(ab+ a)+ .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
Exercice II.5.14. Construire un AFD acceptant exactement les mots sur

{a, b} qui contiennent le facteur abba.


Exercice II.5.15. Construire un AFD acceptant exactement les mots sur

{a, b} pour lesquels tout facteur de longueur 4 contient au moins un a.


Exercice II.5.16. Soit L {a, b, c} un langage dont aucun mot ne com-

mence par a. Montrer que L est un langage accepte par un AFD si et


seulement si a L est aussi accepte par un AFD.
Exercice II.5.17. Soit = {a, b}. Construire un AFD acceptant le lan-

gage suivant
I
I
I
I
I

{w
{w
{w
{w
{w

: |w| 0 (mod 3)},


: |w|a 0 (mod 3)},
: |w| 1 (mod 3)},
: |w| 6 0 (mod 3)},
: |w|a 4},

II.5. Exercices

45

Exercice II.5.18. Construire un AFD acceptant le langage

{ai bj | i j

(mod 2)}.

D
efinition II.5.19. Soit p 2, tout entier n 1 se d
ecompose de mani`ere
unique comme

n=

`
X

ci pi ,

i=0

avec ci {0, . . . , p 1} et p` 6= 0.

Le mot c` c0 {0, . . . , p 1} est la representation en base p de lentier


n. Par convention, zero est represente par le mot vide. Cette mani`ere de
proceder fournit une bijection entre N et le langage
Lp = {} {1, . . . , p 1}{0, . . . , p 1} .

Exercice II.5.20. Soient k, m 2. D


emontrer que {k n (mod m) | n N}

est ultimement periodique.

Exercice II.5.21. Construire un AFD acceptant exactement les repr


esentations binaires des nombres pairs. (On suppose que 0 est represente par le
mot vide et pour des raisons de simplification, on autorise les zeros de tete
dans les representations, i.e., 000101 est par exemple une representation de
5.) Si besoin est, on permet de considerer les representations miroir.
Exercice II.5.22. M
eme question avec les representations binaires des

multiples de 4, 5, 6 ou 7.
Exercice II.5.23. Donner la table de transition dun automate fini d
eterministe reconnaissant les ecritures decimales des multiples de 6 (ou leur
miroir, si vous jugez la construction plus simple).
Remarque II.5.24. Ces trois derniers exercices montrent que tout crit`
ere
de divisibilite peut toujours etre reconnu par un automate fini et ce, quelle
que soit la base choisie pour les representations des entiers.
Exercice II.5.25. Soit = {0, 1}. Si u , alors on note 2 (u) lentier

represente par u en base 2. Par exemple,

2 (1101) = 13, 2 (001010) = 10.


On consid`ere lalphabet = . Construire un automate sur qui
reconnat le langage des couples (u, v) de mots de meme longueur tels que
2 (v) = 22 (u).
Pour obtenir des mots de meme longueur, on sautorise toujours a` placer des
zeros de tete dans les representations. Par exemple,


0 1 0 1 0
1 0 1 0 0
appartient au langage accepte. Comme dans les exercices precedents, par
souci de simplification, on pourra dans un premier temps considerer les
representations miroir.

46

Chapitre II. Automates

Exercice II.5.26. Dans le m


eme contexte que lexercice precedent, on note
= 3 . Construire un automate sur qui reconnat les triplets (u, v, w) de
mots de meme longueur tels que

2 (u) + 2 (v) = 2 (w).


Par exemple,

0 1 0 1 0
0 1 1 0 0
1 0 1 1 0
appartient au langage accepte. Comme dans les exercices precedents, par
souci de simplification, on pourra dans un premier temps considerer les
representations miroir.
Exercice II.5.27. M
eme question qu`a lexercice II.5.25, mais cette fois,

on impose
2 (v) = 32 (u).
esentations binaires des
Exercice II.5.28. Montrer que le langage des repr
nombres entiers divisibles par 4 est regulier, en donnant une expression
reguli`ere.
Montrer que le langage des representations binaires des nombres entiers
divisibles par 3 est regulier, en fournissant un automate fini deterministe
acceptant ce langage (ou son miroir, au choix).
Deduire des deux premiers points que le langage des representations
binaires des nombres entiers divisibles par 12 est regulier ? Justifier votre
reponse.

CHAPITRE III

Langages r
eguliers et automates
Le but premier de ce chapitre est de montrer que lensemble des langages
reguliers concide exactement avec lensemble des langages acceptes par automate fini. Nous allons donc faire le lien entre les notions introduites aux
deux premiers chapitres.
1. Des expressions aux automates
A toute expression reguli`ere , on peut associer un automate fini A de
telle sorte que L() = L(A). On proc`ede par recurrence sur la longueur de
.
I

Si = 0, les automates suivants acceptent tous deux le langage .

1 ,...,n
Figure III.1. AFD et AFND acceptant .
I

Si = e, les automates suivants acceptent le langage {}.

1 ,...,n

1 ,...,n

Figure III.2. AFD et AFND acceptant {}.


I

Si = , , les automates suivants acceptent le langage {}.

1 ,...,n
1 ,...,n

Figure III.3. AFD et AFND acceptant {}.


I

Si = ( + ), avec et des expressions reguli`eres de longueur


inferieure a` celle de , alors, par hypoth`ese de recurrence, on dispose de deux automates finis A et A acceptant respectivement
L() et L(). On conclut en utilisant la proposition II.3.1.
47

48

Chapitre III. Langages reguliers et automates

I
I

Si = (.), on utilise les memes raisonnements et la proposition


II.3.2.
Enfin, si = , on tire la meme conclusion en utilisant cette fois
la proposition II.3.3.

Ainsi, de proche en proche, on peut, etant donne une expression reguli`ere,


construire un automate acceptant le langage genere par lexpression.
Exemple III.1.1. Soit lexpression r
eguli`ere = (a ba b) a . Des auto-

mates acceptant L(a) = {a} et L(b) = {b} sont donnes par :

Figure III.4. AFND acceptant {a} et {b}.


En utilisant la proposition II.3.3, on construit un automate acceptant a :

Figure III.5. AFND acceptant {a} .


Pour des raisons de simplifications evidentes, nous allons considerer un automate equivalent acceptant aussi a :

a
Figure III.6. AFND equivalent acceptant {a} .
En utilisant la proposition II.3.2, on construit un automate acceptant a b :

Figure III.7. AFND acceptant {a} {b}.

III.1. Des expressions aux automates

49

En utilisant cette proposition une seconde fois, on obtient un automate


acceptant a ba b :

Figure III.8. AFND acceptant {a} {b}{a} {b}.


Et en simplifiant quelque peu, on a meme

a
b

Figure III.9. AFND equivalent acceptant {a} {b}{a} {b}.


Appliquons a` present la proposition II.3.3 a` ce dernier automate pour obtenir

a
b

Figure III.10. AFND acceptant ({a} {b}{a} {b}) .


La derni`ere etape consiste a` combiner lautomate ci-dessus avec celui
acceptant a au moyen de la proposition II.3.2.

a
b

Figure III.11. AFND acceptant ({a} {b}{a} {b}) {a} .

50

Chapitre III. Langages reguliers et automates

2. Des automates aux expressions r


eguli`
eres
Nous definissons tout dabord des automates generalises dont les arcs
ont comme label non pas des lettres de lalphabet mais des expressions
reguli`eres. Pour rappel, on note R , lensemble des expressions reguli`eres
sur .
D
efinition III.2.1. Un automate fini
etendu 1 (AFE) est la donnee dun

quintuple
A = (Q, q0 , F, , )

o`
u
I
I
I
I

Q est un ensemble fini detats,


q0 Q est letat initial,
F Q est lensemble des etats finals,
: Q Q R est la fonction detiquetage des transitions.

Si aucun transition entre q et q 0 nest explicitement definie, on pose


(q, q 0 ) = 0 si q 6= q 0 et (q, q 0 ) = e si q = q 0 .
esente a` la figure III.12 est un AFE.
Exemple III.2.2. Lautomate repr
On a (1, 2) = ab , (2, 2) = (a + ab), (2, 3) = bab, (1, 1) = (3, 3) = e et

a+ba
1

ab*

bab

Figure III.12. Un automate fini etendu (AFE).


(i, j) = 0 pour (i, j) {(1, 3), (2, 1), (3, 1), (3, 2)}.
D
efinition III.2.3. Un mot w est accept
e par un AFE A = (Q, q 0 , F, , )
si il existe des mots w1 , . . . , wn et des etats q1 , . . . , qn Q tels que
w = w1 w n ,

w1 L((q0 , q1 )), . . . , wn L((qn1 , qn ))


et qn F .
Par exemple, pour lAFE donne dans lexemple precedent, le mot w =
abbbbbabab est accepte car si on pose w 1 = abbbb, w2 = ba et w3 = bab, on
sapercoit que w1 L(ab ), w2 L(a + ba) et w3 L(bab).
D
efinition III.2.4. Le langage accept
e par un AFE est lensemble des

mots quil accepte. Deux AFE sont dits equivalents sils acceptent le meme
langage.
Remarque III.2.5. Un AFD est un cas particulier dAFE o`
u toutes les

transitions sont des expressions reguli`eres de la forme , . Ainsi, les


techniques decrites ci-apr`es peuvent sappliquer au depart dun AFD.
1En anglais, on trouve la d
enomination extended finite automaton.

III.2. Des automates aux expressions reguli`eres

51

Dans les lignes qui suivent, nous allons expliquer comment, au depart
dun AFE arbitraire, obtenir un AFE equivalent possedant uniquement deux
etats (un initial et un final). De cette mani`ere, il sera aise den deduire une
expression reguli`ere du langage accepte.
Le pivotage (Elimination dun etat qui nest ni initial, ni final).
Soit A = (Q, q0 , F, , ) un AFE. Pour tous p, q Q, on note r pq lexpression
reguli`ere (p, q). Soit q un etat de A tel que q 6= q 0 et q 6 F . Definissons
lAFE
A0 = (Q0 , q0 , F, , 0 )
o`
u Q0 = Q \ {q} et pour tous p, s Q0 ,

0 (p, s) = rps + rpq rqq


rqs .

Par construction, il est clair que A 0 est equivalent a` A.

rps

rqq

r pq

* r qs
rps + rpq rqq

s
p

rqs

Figure III.13. Le pivotage.


erons lAFE donne a` la figure III.14. Avec les
Exemple III.2.6. Consid

ab
1

2
b

3
b

4
Figure III.14. Un AFE avant elimination de letat 2.
notations precedentes, si on desire eliminer letat 2, on obtient
0 (1, 1)
0 (1, 3)
0 (1, 4)
0 (3, 1)
0 (3, 3)
0 (3, 4)
0 (4, 1)
0 (4, 3)
0 (4, 4)

=
=
=
=
=
=
=
=
=

r
r11 + r12 r22
21

r13 + r12 r22 r23


r
r14 + r12 r22
24
r
r31 + r32 r22
21
r
r33 + r32 r22
23
r
r34 + r32 r22
24
r
r41 + r42 r22
21
r
r42 + r42 r22
23

r44 + r42 r22 r24

= e + a b 0 = e
= ab + a b a
= 0 + a b b = ab b
= 0 + 0 b 0 = 0
= e + 0 b a = e
= b + 0 b b = b
= 0 + b b 0 = 0
= 0 + b b a = bb a
= e + b b b = bb b + e

52

Chapitre III. Langages reguliers et automates

En ne representant que les transitions differentes de 0 et differentes de


(q, q) = e, on obtient lAFE equivalent represente a` la figure III.15.

1
ab* b

ab+ab*a
bb* a

3
b

4
bb* b
Figure III.15. AFE equivalent apr`es elimination de letat 2.
Lalgorithme complet
Soit A = (Q, q0 , F, , ) un AFE.
(1.a) Obtention dun
etat initial non final et au quel on ne peut
aboutir. Si letat initial q0 est final ou si il existe q Q tel que2 (q, q0 ) 6= 0,
alors on ajoute un nouvel etat q00 a` lensemble Q detats et on pose (q 00 , q0 ) =
e. On redefinit q00 comme le nouvel etat initial.
(1.b) Obtention dun unique
etat final. Si #F > 1, cest-`a-dire, sil y
a plus dun etat final, on ajoute un nouvel etat f 0 et on pose (q, f 0 ) = e
pour tout q F . Ensuite, on redefinit {f 0 } comme nouvel ensemble detats
finals.
Ainsi, a` la fin de letape 1, on peut supposer disposer dun AFE equivalent A0 = (Q0 , q00 , {f 0 }, , 0 ) possedant un unique etat initial q 00 (non final
et auquel naboutit aucune transition) et un unique etat final f 0 .
(2) Fin ? Si Q0 = {q00 , f 0 }, alors une expression reguli`ere du langage accepte
par A0 est
rq00 f 0 (rf 0 f 0 )
o`
u rq00 f 0 = 0 (q00 , f 0 ) et rf 0 f 0 = 0 (f 0 , f 0 ). Lalgorithme sach`eve. Sinon, on
passe a` letape 3.
(3) Elimination dun
etat. Il existe q Q 0 \ {q00 , f 0 }. On elimine q de
A0 par la methode du pivot presentee ci-dessus. Apr`es pivotage, lensemble
detats est Q \ {q}. On recommence le point 2. A chaque etape, le nombre
detats decrot strictement. Par consequent, lalgorithme sach`eve toujours.
elimine le sommet
Exemple III.2.7. Poursuivons lexemple III.2.6. Si on
3 de lAFE represente a` la figure III.15, il vient
0 (1, 1)
0 (1, 4)
0 (4, 1)
0 (4, 4)

=
=
=
=

r
r11 + r13 r33
31
r
r14 + r13 r33
34
r
r41 + r43 r33
31
r
r44 + r43 r33
34

= e + (ab + ab a) e 0 = e
= ab b + (ab + ab a) e b
.
= 0 + (bb b) e 0 = 0
= bb b + (bb a) e b

2On ne tient pas compte du cas trivial (q , q ) = e. Par contre, si il existe r 6= e tel
0 0

que (q0 , q0 ) = r, alors on effectue la modification de lautomate.

III.3. Stabilite de la regularite

53

On obtient lautomate represente a` la figure III.16. Finalement une expres-

ab* b+(ab+ab* a)eb

4
bb* b+(bb* a)eb

Figure III.16. AFE equivalent apr`es elimination de letat 3.


sion reguli`ere du langage accepte par lautomate de depart est
(ab b + (ab + ab a) e b)(bb b + (bb a) e b) .
Puisqu`a toute expression reguli`ere , correspond un automate acceptant
le langage L() et qu`a tout langage L accepte par un automate correspond
une expression reguli`ere telle que L = L(), nous avons le resultat suivant.
Th
eor`
eme III.2.8 (Kleene). Un langage est r
egulier si et seulement si il

est accepte par un automate fini.




Remarque III.2.9. Dune certaine mani`


ere, on peut dire que les expres-

sions reguli`eres sont les generateurs des langages reguliers, alors que les
automates finis en sont les accepteurs.
3. Stabilit
e de la r
egularit
e
Th
eor`
eme III.3.1. Lensemble des langages r
eguliers est stable par union,

concatenation, etoile de Kleene, image par morphisme, miroir, passage au


complementaire, intersection et shuffle.
D
emonstration. Cela r
esulte immediatement des resultats demontres au

chapitre II concernant les langages acceptes par automate fini et du theor`eme


de Kleene.


Le resultat suivant est souvent utilise pour verifier que certains langages
ne sont pas reguliers.
Corollaire III.3.2. Si L est un langage r
egulier sur = { 1 , . . . , n }, alors

|L| = {|w| : w L} N est une union finie de progressions arithmetiques.


D
emonstration. Soit = {} un alphabet unaire. Lapplication

f : : i 7 , i {1, . . . , n}

est un morphisme de monodes preservant les longueurs, i.e., pour tout mot
w , |f (w)| = |w|. Par consequent,
|f (L)| = |L|.

54

Chapitre III. Langages reguliers et automates

Puisque L est regulier, par le theor`eme III.3.1, f (L) est un langage regulier
sur un alphabet unaire. Au vu de la proposition I.3.8, |f (L)| est une union
finie de progressions arithmetiques.


4. Crit`
ere de non-r
egularit
e
3

Soit L un langage regulier.


Il existe un entier ` tel que pour tout mot w satisfaisant |w| `, il existe
x, y, z tels que w = xyz et
Lemme III.4.1 (Lemme de la pompe).

I
I

|xy| `,
y 6= ,
xy z L.

D
emonstration. Puisque L est r
egulier, il est accepte par un AFD A =
(Q, q0 , F, , ) possedant ` etats. Un mot w = w 1 wn L de longueur n
correspond a` une execution passant par n + 1 etats q 0 , q1 , . . . , qn+1 ,
w

1
2
n
q0
q1
q2 qn
qn+1 F.

Puisque A poss`ede ` etats, si n `, alors au moins deux etats dans la


suite detats sont egaux. Soient q i et qj deux tels etats (on suppose que lon
consid`ere la premi`ere repetition de deux etats, i.e., q i = qj , 0 i < j n
et q0 , . . . , qj1 sont deux a` deux distincts). On a donc pour tout t 0,
lexecution suivante

t
w

[]t

wj

wi+1

wj

1
i
n


} qj

q0
| {z
| {z
} qi | {z
} qn+1 F

o`
u
signifie que la boucle est empruntee t fois. En posant x, y, z comme
indiques sur le schema, la conclusion en decoule.

x
q0

z
q i =q j

q n+1

Figure III.17. Le lemme de la pompe.




Le lemme de la pompe est tr`es souvent utilise pour demontrer que certains langages ne sont pas reguliers.
3En anglais, on trouve souvent lexpression pumping lemma. En fran
cais, on ren-

contre parfois, pour des raisons evidentes, la denomination lemme de letoile.

III.4. Crit`ere de non-regularite

55

Exemple III.4.2. Consid


erons une fois encore le langage
2

L = {an | n N}.
Nous avons dej`a montre dans lexemple I.3.12 que ce langage netait pas
regulier (en utilisant la proposition I.3.8). Utilisons ici le lemme de la pompe.
Si L etait regulier, il serait accepte par un AFD A ayant k etats. D`es lors,
2
le mot ak est accepte par A et cet automate comprend donc une boucle de
longueur i > 0 (car k 2 k). Par consequent, tout mot de longueur
k 2 + n i, n N

est accepte par A. Or, lensemble des carres parfaits ne contient aucune
progression arithmetique infinie. On en tire que le langage L ne peut etre
regulier.
Remarque III.4.3. Attirons lattention du lecteur sur le fait que des langages non reguliers peuvent neanmoins satisfaire la condition du lemme de la
pompe. En effet, soit L b un langage non regulier arbitraire. Le langage

{a}+ L {b}

satisfait le lemme de la pompe. Il suffit de prendre avec les notations du


lemme, ` = 1.
La version suivante du lemme de la pompe fournit une condition necessaire et suffisante pour quun langage soit regulier.
4

Un langage L
est regulier si et seulement si il existe une constante k > 0 telle que pour
tout mot w , si |w| k, alors il existe x, y, z tels que w = xyz,
y 6= et pour tout i 0 et pour tout v ,
Lemme III.4.4 (Lemme de la pompe, version forte).

wv L xy i zv L.

D
emonstration. La condition est n
ecessaire. Supposons que le langage

L est accepte par un AFD A = (Q, q0 , F, , ) possedant k etats. Tout mot


w = w1 w` de longueur ` k fournit une execution de la forme
w

2
`
1

q`
q1
q0

o`
u q0 est letat initial. Par un raisonnement analogue a` celui developpe dans
la preuve precedente, il existe 0 i < j ` tels que q i = qj et lautomate A
a donc une boucle. On pose x = w1 wi , y = wi+1 wj et z = wj+1 w`
(si i = 0, x = et si j = `, z = ). D`es lors, pour tout i 0,
(q0 , xy i z) = q`

et ainsi, pour tout i 0,

(q0 , xy i zv) = (q0 , xyzv) = (q0 , wv)

4Ce r
esultat est d
ua
` J. Jaffe (SIGACT News, 1978). Nous avons repris ici une preuve

extraite de S. Yu, Regular Languages, Handbook of formal languages, Springer, 1997.

56

Chapitre III. Langages reguliers et automates

ce qui signifie que


wv L xy i zv L.

Passons a` la reciproque et supposons quil existe une constante k > 0


telle que le langage L satisfasse les proprietes enoncees. Nous devons montrer
que L est regulier. Pour ce faire, nous allons construire un AFD A et verifier
que L = L(A). Soit A = (Q, q0 , F, , ) o`
u chaque etat de Q correspond a`

un mot w de longueur strictement inferieure a` k, i.e.,


Q = {qw | w et |w| < k}.

Letat initial de A est q et F = {qw | w L}. La fonction de transition est


definie par
I

si |w| < k 1, alors pour tout ,


(qw , ) = qw

si |w| = k1, alors pour tout , w est un mot de longueur k et


par hypoth`ese, il peut se decomposer en xyz avec y non vide et tel
que pour tout v , xyzv L si et seulement si xzv L. Il peut
y avoir plus dune telle decomposition (mais il y en a toujours au
moins une). Sil y a plus dune decomposition, on choisit celle pour
laquelle xy est le plus court (et si une ambigute subsiste encore, on
choisit parmi les decompositions ayant xy de longueur minimum,
celle o`
u y est le plus court). On pose
(qw , ) = qxz .
(On remarque que |xz| < k puisque y est non vide.)

Il nous reste a` montrer que L(A) = L. On proc`ede par recurrence sur la


longueur dun mot w . Par definition de lautomate A, il est clair quun
mot w de longueur strictement inferieure a` k appartient a` L si et seulement
si il appartient a` L(A). Soit n k. Supposons la propriete satisfaite pour
les mots de longueur inferieure a` n et verifions-la pour les mots w tels que
|w| = n. D`es lors, il existe w0 et v tels que
w = w0 v,

avec |w0 | = k.

Par definition de A, il existe x, z tels que


(q0 , w0 ) = (q0 , xz) = qxz ,

avec w0 = xyz, y 6=

et en particulier, w0 v = w appartient a` L si et seulement si xzv appartient


a` L. De plus, on a
(q0 , w0 v) = (q0 , xzv) = (qxz , v),
ce qui signifie que w0 v = w appartient a` L(A) si et seulement si xzv appartient a` L(A) (en effet, on atteint le meme etat de A). Or |xzv| < n (car y
non vide) et donc, par hypoth`ese de recurrence, xzv appartient a` L(A) si et
seulement si il appartient a` L. En conclusion, w L(A) w L.

III.5. Exercices

57

Remarque III.4.5. Nous voulons faire observer au lecteur que cette derni`
ere
proposition necessite une decomposition de w en xyz qui doit pouvoir etre
appliquee pour tout mot wv, v .

5. Exercices
5.1. Langages r
eguliers.
Exercice III.5.1. Soit le langage

L = {ab2 a3 b4 a2n1 b2n | n N}.


Ce langage est-il regulier ? Justifier.
Exercice III.5.2. Le langage {an bn | n N} est-il r
egulier ?

egulier ?
Exercice III.5.3. Le langage {an b2n | n N} est-il r
Exercice III.5.4. Le langage {w {a, b} : |w|a < |w|b } est-il r
egulier ?
n

Exercice III.5.5. Le langage {a2 | n N} est-il r


egulier ?
Exercice III.5.6. Soit le morphisme f : {a, b} {a, b} tel que

f (a) = b

et

f (b) = a.

Le langage L = {wf (w) | w {a, b} } est-il regulier ?


edant k etats, k 1. Demontrer que
Exercice III.5.7. Soit A un AFD poss

si le langage accepte par A ne contient aucun mot de longueur strictement


inferieure a` k, alors le langage accepte par A est vide.

Exercice III.5.8. Soit A un AFD poss


edant k etats, k 1. Demontrer
que si le langage accepte par A est fini, alors tout mot accepte w est tel que
|w| < k.
Exercice III.5.9. Soit un alphabet de taille au moins 2. Le langage des

palindromes sur est-il regulier ? Que se passe-t-il dans le cas particulier


dun alphabet unaire ?
Exercice III.5.10. Le langage {an bm an+m | m, n N} est-il r
egulier ?
Exercice III.5.11. Le langage form
e des mots sur {a, b} qui contiennent

deux fois plus de a que de b, i.e.,

L = {w {a, b} : |w|a = 2|w|b },


est-il regulier ? Que vaut (L) ?
Exercice III.5.12. Soient les alphabets = {a, b, c} et = {e, f } et un
langage L sur . On donne le morphisme h : tel que

h(a) = h(b) = e

et

h(c) = f.

Si h(L) est un langage regulier, peut-on en deduire que L est lui-meme


regulier, justifier ?

58

Chapitre III. Langages reguliers et automates

5.2. Langage accept


e par un automate.
Exercice III.5.13. D
eterminer une expression reguli`ere du langage accepte

par lautomate repris en figure III.18.

b
b
a

b
a,b
Figure III.18. Expression reguli`ere du langage accepte.
Exercice III.5.14. M
eme question que lexercice precedent pour lAFD
represente a` la figure III.19. Si les mots acceptes sont consideres comme des

0
1

1
0

0,1
Figure III.19. Expression reguli`ere du langage accepte.
representations en base 2 dentiers, en deduire les proprietes arithmetiques
de lensemble dentiers accepte.

CHAPITRE IV

Automate minimal
1. Introduction
Nous savons a` present quun langage est regulier si et seulement si il est
accepte par un automate fini (et en particulier, deterministe). Cependant,
plusieurs AFD peuvent accepter le meme langage. La question posee ici
est de rechercher parmi des automates equivalents, un automate qui serait,
selon un sens encore a` definir, canonique. Par exemple, les automates suivants acceptent tous le langage forme des mots ne comprenant pas deux a
consecutifs.

b b

a,b

b
a

a
b

a,b
a

a,b

b b
a

Figure IV.1. Trois AFD equivalents.


Il parat naturel de vouloir minimiser le nombre detats dun AFD acceptant un langage regulier donne. En effet, lors de constructions comme
le produit dautomates, il est preferable davoir peu detats a` traiter pour
diminuer la taille de lautomate resultant. Nous allons montrer qu`a isomorphisme pr`es, il nexiste quun seul AFD acceptant un langage donne
et possedant un nombre minimum detats. Notons encore que la notion
dautomate minimal peut etre definie pour un langage quelconque et pas
uniquement pour un langage regulier.

59

60

Chapitre IV. Automate minimal

2. Congruence syntaxique
D
efinition IV.2.1. Soit L un langage arbitraire. Si w est un mot

sur , on denote par w 1 .L lensemble des mots qui, concatenes avec w,


appartiennent a` L, i.e.,
w1 .L = {u | wu L}.

On definit une relation sur , notee L , de la mani`ere suivante. Pour tous


x, y ,
x L y x1 .L = y 1 .L.

En dautres termes, x L y si et seulement si pour tout mot w ,


xw L yw L.
efinition, la formule suivante est alors
Remarque IV.2.2. Avec une telle d

immediate (o`
u la somme represente lunion),

X
, si L
L=
( 1 .L) + (L),
avec (L) =
, sinon.

et J. H. Conway decrire both Taylors theorem and the mean value theorem.
Proposition IV.2.3. Soit L un langage. La relation L est une

relation dequivalence. Il sagit meme dune congruence 1 a


` droite, i.e.,
z , x L y xz L yz.
D
emonstration. Cest imm
ediat.

Remarque IV.2.4. On parle souvent pour L de la congruence de Nerode.

On note [w]L la classe dequivalence du mot w pour la relation L ,


[w]L = {u | u L w}.

Exemple IV.2.5. Soit le langage

L = {w {a, b} : |w|a 0

(mod 3)}.

Pour ce langage, on a par exemple


abbaba L aaa
b 6L ab
aba 6L bab
a L ababaa

car
car
car
car

abbaba1 .L = aaa1 .L = L
pour u = aa, bu 6 L et abu L
pour u = a, abau L et babu 6 L
a1 .L = ababaa1 .L = {w {a, b} : |w|a 2

(mod 3)}.

1Pour rappel, une congruence est une relation d


equivalence qui preserve les operations

de la structure algebrique consideree.

IV.2. Congruence syntaxique

61

En effet, pour w {a, b} ,

si |w|a 3 0, alors w 1 .L
et
[w]L
si |w|a 3 1, alors w 1 .L
et
[w]L
1
si |w|a 3 2, alors w .L
et
[w]L

=
=
=
=
=
=

{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}

:
:
:
:
:
:

Cet exemple nous montre quen general, w 1 .L 6= [w]L .

|u| 3
|u| 3
|u| 3
|u| 3
|u| 3
|u| 3

0}
0},
2}
1},
1}
2}.

D
efinition IV.2.6. Dans le cas dun AFD A = (Q, q 0 , F, , ), par analogie

avec la notation w 1 .L, on utilise la notation suivante. Si q Q est un etat


de A et si G Q est un sous-ensemble detats, on note q 1 .G, lensemble
des mots qui sont labels des chemins debutant en q et aboutissant dans un
etat de G, i.e.,
q 1 .G = {w | (q, w) G}.
On definit sur Q une relation dequivalence comme suit : si p, q Q, alors
p A q p1 .F = q 1 .F.

Remarque IV.2.7. Avec la notation que nous venons dintroduire, le langage accepte par lAFD A = (Q, q0 , F, , ) est simplement

q01 .F.

Lemme IV.2.8. Soit A = (Q, q0 , F, , ) un AFD acceptant un langage

L. Si q Q et w sont tels que L (q0 , w) = q, alors


q 1 .F = w1 .L.

D
emonstration. En effet, par d
efinition, q 1 .F = {u | (q, u) F }.

Or (q0 , w) = q. Ainsi, pour tout u q 1 .F , on a

(q0 , wu) = ((q0 , w), u) = (q, u) F

et donc wu appartient a` L(A) = L, cest-`a-dire, u appartient a` w 1 .L et


reciproquement.

q0

F
Figure IV.2. q 1 .F = w1 .L si (q0 , w) = q.


62

Chapitre IV. Automate minimal

Lemme IV.2.9. Soient L un langage et u, v deux mots sur . On

(uv)1 .L = v 1 .(u1 .L).


D
emonstration. Si w appartient a
` (uv)1 .L, cela signifie que uvw appar-

tient a` L. En dautres termes, vw appartient a` u 1 .L et ainsi w appartient


a` v 1 .(u1 .L). La demonstration de lautre inclusion est identique.


eration 1 .L, on trouve parfois une termiRemarque IV.2.10. Pour lop


nologie rappelant le calcul differentiel 2. On parle parfois de derive et lon
note D L pour 1 .L. La raison en est simple, il est clair que
D (L + M ) = D L + D M
et
D (LM ) = (D L) M + (L) D M
o`
u, une fois encore, somme et produit representent respectivement lunion
et la concatenation.
3. Automate minimal
Nous allons tirer parti de la congruence de Nerode introduite a` la section
precedente pour definir un automate particulier, a` savoir lautomate minimal du langage L. La definition peut a` premi`ere vue sembler artificielle,
mais nous allons montrer quainsi introduit, lautomate minimal jouit de
proprietes fort interessantes.
D
efinition IV.3.1. On d
efinit lautomate minimal

AL = (QL , q0,L , FL , , L )

dun langage L comme suit :


I

I
I
I

QL = {w1 .L | w },
q0,L = 1 .L = L,
FL = {w1 .L | w L} = {q QL | q},
L (q, ) = 1 .q, pour tous q QL , .

Grace au lemme IV.2.9, la fonction de transition de lautomate setend a`


QL par
L (q, w) = w1 .q , q QL , w .

Nous devons verifier que cette definition a un sens en montrant que la


fonction de transition ne depend pas du representant choisi. Ainsi, si un
etat de AL est de la forme x1 .L = y 1 .L (x, y ), alors x L y.
Puisque L est une congruence a` droite, pour tout , x L y et
donc (x)1 .L = (y)1 .L. En appliquant le lemme IV.2.9, on trouve bien
1 .(x1 .L) = 1 .(y 1 .L).
2cf. J. A. Brzozowski, Derivatives of regular expressions, J. of the Assoc. for Comp.

Machinery 11 (1964), 481494.

IV.3. Automate minimal

63

Remarque IV.3.2. Au vu de la d
efinition de L , il est clair que lensemble
des etats de A, {w 1 .L | w }, est en bijection avec lensemble quotient
/L = {[w]L | w }. En effet, a` chaque classe dequivalence [w] L pour
L correspond un etat w 1 .L de lautomate minimal AL et reciproquement.
Cest pour cette raison que, dans la litterature, on trouve egalement une
definition de lautomate minimal en termes des classes dequivalence de L .
Ainsi, on aurait pu definir lautomate minimal comme suit :
I
I
I
I

QL = {[w]L | w }
q0,L = []L
FL = {[w]L | w L}
L ([w]L , ) = [w]L .

Cette derni`ere definition est equivalente a` celle donnee en IV.3.1 car si [w] L
correspond a` w 1 .L, alors [w]L correspond a` (w)1 .L = 1 .(w1 .L).
Dans la suite, nous utiliserons principalement la definition de lautomate
minimal donnee en IV.3.1.
Remarquons encore que si x L y, alors
L (q0,L , x) = L (q0,L , y)
car il suffit de se rappeler que q0,L = L et d`es lors, il vient
L (q0,L , x) = x1 .L = y 1 .L = L (q0,L , y).
Exemple IV.3.3. Poursuivons lexemple IV.2.5. Il est facile de voir que

pour le langage L forme des mots sur {a, b} contenant un nombre de a


multiple de trois, la congruence de Nerode poss`ede trois classes dequivalence
[]L , [a]L et [aa]L .
Dit autrement, lautomate minimal A L a trois etats
1 .L, a1 .L et aa1 .L.

Pour definir la fonction de transition, on a


L (1 .L, a) = a1 .(1 .L) = a1 .L
L (1 .L, b) = b1 .(1 .L) = b1 .L = 1 .L
L (a1 .L, a) = a1 .(a1 .L) = aa1 .L
L (a1 .L, b) = b1 .(a1 .L) = ab1 .L = a1 .L
L (aa1 .L, a) = a1 .(aa1 .L) = aaa1 .L = 1 .L
L (aa1 .L, b) = b1 .(aa1 .L) = aab1 .L = aa1 .L

car L b
car a L ab
car L aaa
car aa L aab.

Si on note 1, 2, 3 les trois langages 1 .L = L, a1 .L, aa1 .L, on obtient


lautomate represente a` la figure IV.3.
Remarque IV.3.4. On observe que, dans la d
efinition de A L , les etats de

lautomate minimal de L sont des ensembles de mots. Dans lexemple precedent, on a un nombre fini detats et chaque etat correspond a` un ensemble
infini de mots.

64

Chapitre IV. Automate minimal

a
2

1
a

a
3
b

Figure IV.3. Un automate minimal.


Exemple IV.3.5. Consid
erons le langage L forme des mots sur {a, b} ayant
meme nombre de a que de b, i.e.,

L = {w {a, b} : |w|a = |w|b }.


Une application immediate du lemme de la pompe montre que ce langage
nest pas regulier. On peut neanmoins rechercher son automate minimal
puisque la relation L est definie pour tout langage L. On sapercoit que
le nombre de classes dequivalence pour la relation L est infini. En effet,
pour tout n Z,
cn := [ai bj ]L , avec i j = n

est une classe dequivalence et il est clair que si m 6= n, alors c m 6= cn . De


plus,
L ((ai bj )1 .L, a) = (ai+1 bj )1 .L = (ai bj1 )1 .L
et
L ((ai bj )1 .L, b) = (ai bj+1 )1 .L = (ai1 bj )1 .L.
(Dans les expressions ci-dessus, on ne consid`ere que les expressions pour
lesquelles les exposants sont positifs ou nuls.) Le seul etat final de lautomate
est (ai bi )1 .L = L. Lautomate minimal de L est represente a` la figure IV.4.

a
b

a
b

Figure IV.4. Lautomate minimal dun langage non regulier.


On peut dores-et-dej`a remarquer que pour ce langage non regulier, le
nombre detats de lautomate minimal est infini.
Proposition IV.3.6. Lautomate minimal dun langage L accepte L.
D
emonstration. En effet, soit w ,

w L(AL ) L (q0,L , w) FL w1 .L FL w L.

IV.3. Automate minimal

65

On a utilise le fait que


L (q0,L , w) = L (1 .L, w) = w1 .(1 .L) = (w)1 .L.


D
efinition IV.3.7. Un AFD A = (Q, q0 , F, , ) est accessible si pour tout
etat q Q, il existe un mot w tel que (q0 , w) = q.
Un AFD A = (Q, q0 , F, , ) est reduit si pour tous p, q Q,

p1 .F = q 1 .F entrane p = q.

En dautres termes, un AFD est reduit, si les langages acceptes depuis deux
etats distincts sont distincts ou encore si chaque classe dequivalence pour
la relation A sur Q est un singleton.
Le resultat suivant justifie lappellation minimal.
Th
eor`
eme IV.3.8. Soient L un langage et AL = (QL , q0,L , FL , , L )

son automate minimal. Si B = (Q, q0 , F, , ) est un automate accessible et


deterministe acceptant L, alors il existe une application : Q Q L telle
que
I
I
I
I

est surjectif,
(q0 ) = q0,L ,
, q Q : ((q, )) = L ((q), ),
(F ) = FL .

a
b
b

b b

b
a

a,b

a,b

Figure IV.5. Une application satisfaisant les proprietes


du theor`eme IV.3.8.
D
emonstration. Puisque B est accessible, pour tout
etat q Q, il exis-

te un mot w tel que (q0 , w) = q. Supposons tout dabord quune


application satisfaisant les proprietes enoncees existe. Dans ce cas 3,
(q) = ((q0 , w)) = L ((q0 ), w) = L (q0,L , w) = w1 .L = q 1 .F
3En particulier, ceci prouve que si une telle application existe, alors elle est unique.

On effectue
dabord
lanalyse.

66

Passons a
` la
synth`
ese.

Chapitre IV. Automate minimal

o`
u pour la derni`ere egalite, on a applique le lemme IV.2.8. Montrons a`
present que lapplication
: Q QL : q 7 q 1 .F
poss`ede les proprietes indiquees :
I

I
I

il est clair que est a` valeurs dans Q L car B etant accessible, il


est toujours possible decrire q 1 .F sous la forme w 1 .L pour un
certain w .
On a (q0 ) = q01 .F = L = q0,L .
Soient et q Q. Par definition de , on a tout dabord
((q, )) = ((q, ))1 .F

Si w est tel que (q0 , w) = q, alors (q0 , w) = (q, ) et par


le lemme IV.2.8,
((q, ))1 .F = (w)1 .L.
Par le lemme IV.2.9, (w)1 .L = 1 .(w1 .L) et si on applique a`
nouveau le lemme IV.2.8, w 1 .L = q 1 .F . Par consequent,
((q, )) = 1 .(q 1 .F ) = 1 .(q) = L ((q), ).
I

Montrons que est surjectif. Soit q Q L . Cet etat est de la forme


w1 .L pour un mot w . Soit r letat de B tel que (q0 , w) = r.
Il vient
(r) = r 1 .F = w1 .L = q.

Un etat q de B est final si et seulement si il existe w L tel que


(q0 , w) = q. Soit q un tel etat. Ainsi,
(q) = q 1 .F = w1 .L FL et (F ) FL .
Considerons a` present un etat q de A L tel que q FL . Puisque
est surjectif, il existe un etat p Q de B tel que (p) = p 1 .F = q.
Par definition de lautomate minimal, p 1 .F appartient a` FL si et
seulement si p1 .F ce qui signifie que p est un etat final de B.

Corollaire IV.3.9. Si L est un langage r


egulier accepte par un AFD B,

alors le nombre detats de B est minore par le nombre detats de A L .

D
emonstration. Cela d
ecoule immediatement de la surjectivite de lappli-

cation introduite a` la proposition precedente.




Proposition IV.3.10. Soit L un langage.

(i) Lautomate minimal AL = (QL , q0,L , FL , , L ) de L est accessible


et reduit.

IV.4. Construction de lautomate minimal

67

(ii) Soit B = (Q, q0 , F, , ) un automate deterministe accessible acceptant L. Cet automate est reduit si et seulement si lapplication
: Q QL definie au theor`eme IV.3.8 est une bijection. Dans ce
cas, les automates AL et B sont isomorphes.
D
emonstration. Lautomate minimal est accessible car un
etat quelconque de AL est de la forme w 1 .L pour un mot w et

L (q0,L , w) = w1 .L.

Par definition de lensemble detats Q L , il est clair que AL est reduit.


Si B est un automate accessible, lapplication : Q Q L introduite au
theor`eme IV.3.8 est surjective. Cette application est injective si et seulement
si pour tous p, q Q,
(p) = (q) p = q

ce qui se reecrit

p1 .F = q 1 .F p = q

et qui signifie que B est reduit.

egulier si et seulement si
Proposition IV.3.11. Un langage L est r

son automate minimal AL est fini.

D
emonstration. Si AL est fini, au vu de la proposition IV.3.6, L est

accepte par AL qui est en particulier un AFD. Par le theor`eme de Kleene,


L est regulier.
Passons a` la reciproque et supposons L regulier et accepte par un AFD
A que lon peut, sans aucune restriction, supposer accessible. D`es lors, au
vu du theor`eme IV.3.8, lautomate minimal de L est fini.

Ce dernier resultat peut se reenoncer comme suit.


Th
eor`
eme IV.3.12 (Myhill-Nerode). Un langage L est r
egulier si et seulement si la congruence L est dindice fini (i.e., poss`ede un nombre fini de
classes dequivalence).
D
emonstration. Cela r
esulte immediatement de la proposition precedente

et de la remarque IV.3.2.


4. Construction de lautomate minimal


La proposition IV.3.10 fournit un moyen de construire lautomate minimal dun langage regulier L a` partir dun AFD A acceptant L. En effet,
il suffit de pouvoir trouver un AFD accessible et reduit equivalent. Tout
dabord, il est facile de rendre un AFD donne accessible. Il suffit de passer
en revue les etats qui peuvent etre atteints depuis letat initial et deliminer
les autres etats (inaccessibles). Classiquement, un algorithme de recherche

68

Chapitre IV. Automate minimal

en profondeur suffit. On construit un arbre ayant pour racine letat initial de


A. Dans cet arbre, les fils dun noeud sont les etats accessibles depuis celuici et on arrete la construction lorsqu`a un niveau de larbre, il napparat
plus de nouveaux etats par rapport aux niveaux precedents.
La question qui se pose est donc de pouvoir determiner si un automate
fini deterministe donne A = (Q, q0 , F, , ) est reduit. Par definition de la
relation A sur Q, lautomate est reduit si pour tout couple (p, q) detats
avec p 6= q,
p 6A q.
En particulier, p 6A q sil existe un mot w tel que
(p, w) F et (q, w) 6 F
ou
(p, w) 6 F et (q, w) F.

On dit alors quun tel mot distingue les etats p et q ou encore que le couple
(p, q) est distingue. Dans lalgorithme qui suit, on notera N ` lensemble des
couples detats qui sont distingues par un mot de longueur ` et qui ne sont
distingues par aucun mot plus court.
Algorithme de recherche des
etats
equivalents
(1) Initialisation : lors de cette etape, on determine les couples detats
distingues par le mot vide (seul mot de longueur ` = 0).
I
I

On pose ` := 0.
Pour tout p F et tout q Q\F , la paire (p, q) est distinguee car le
mot vide appartient a` p1 .F mais pas a` q 1 .F . Soit N0 lensemble
de ces paires.

(2) Incrementation : on determine les couples detats distingues par un mot


de longueur ` + 1 et non distingues par un mot de longueur `.
I
I

Si N` = , lalgorithme sach`eve.
Sinon, pour chaque paire (p, q) N` , on passe en revue les paires
(r, s) avec r 6= s qui nappartiennent pas a` N 0 N` . Sil existe
tel que
(r, ) = p et (s, ) = q
ou
(s, ) = p et (r, ) = q,

alors la paire (r, s) est distinguee par un mot de longueur ` + 1.


Soit N`+1 lensemble de ces paires.
Remplacer ` par ` + 1 et repeter (2).

ecedent a` lAFD represente


Exemple IV.4.1. Appliquons lalgorithme pr
a` la figure IV.6.
La premi`ere etape donne le tableau suivant. Dans ce tableau, on denote
simplement par i lappartenance dun couple a` lensemble N i , i N. De

IV.4. Construction de lautomate minimal

69

b
a

b
4

3
a

b
a
5

Figure IV.6. Un AFD dont on recherche les etats equivalents pour A .


plus, par raison de symetrie, on sinteressera uniquement a` la partie situee
au dessus de la diagonale principale.
1 2 3 4 5 6
1 0
0
2
0 0
0
3

0
4
0
5
0
6

Puisque (1.a, 3.a) = (2, 6), (1.b, 6.b) = (1, 2), (3.a, 4.a) = (6, 5) et (4, 6) =
(5, 6), on a, a` la deuxi`eme etape, le tableau ci-dessous.
1 2 3
1 0 1
2
0
3

4
5
6

4 5
0
0
1 0
0

6
1
0
1
0

Lalgorithme sach`eve car (1.a, 4.a) = (2, 5), (1.b, 4.b) = (1, 1), (2.a, 5.a) =
(1, 4), (2.b, 5.b) = (3, 6), (3.a, 6.a) = (6, 6) et (3.b, 6.b) = (2, 2). On en
conclut que 1 A 4, 2 A 5 et 3 A 6.
Puisque nous pouvons supposer avoir un AFD A accessible, le theor`eme
IV.3.8 nous affirme que lautomate A se projette au moyen de lapplication
sur lautomate minimal du langage L accepte par A et que des etats de A
equivalents pour A sont envoyes sur un meme etat de A L . Ainsi, les etats
de AL vont correspondre aux classes dequivalence de A .
Toujours en vertu du theor`eme IV.3.8, les transitions de lautomate minimal sont definies par
L ((q), ) = ((q, ))
si (resp. L ) est la fonction de transition de A (resp. A L ). Traduit en
termes detats equivalents, cela signifie que si un etat de A L correspond a`

70

Chapitre IV. Automate minimal

une classe dequivalence [q]A pour la relation A , alors la lecture de depuis


cet etat dans AL conduit a` letat correspondant a` la classe [q.] A .
Exemple IV.4.2. Si nous continuons lexemple pr
ecedent, on a [1] A =

{1, 4}, [2]A = {2, 5} et [3]A = {3, 6}. Puisque dans lautomate de depart,
1.a = 2 et 1.b = 1, on a L ((1), a) = (2) et L ((1), b) = (1). Ceci
signifie que, dans lautomate minimal, la lecture de a (resp. b) depuis letat
correspondant a` {1, 4} conduit a` [2] A = {2, 5} (resp. [1]A = {1, 4}). En
continuant de la sorte, on obtient lautomate de la figure IV.7.

b
{1,4}

a
{2,5}

{3,6}

Figure IV.7. Un automate minimal.


esente a` la figure IV.8.
Exemple IV.4.3. Soit lAFD accessible A repr
Nous allons lui appliquer lalgorithme de recherche des etats equivalents pour

1
b

2
a
Figure IV.8. Un AFD accessible A.
montrer quil est reduit (et quil sagit donc dun automate minimal puisquil
est visiblement accessible). Avec les memes notations que precedemment,
on obtient rapidement le tableau suivant.
1 2 3
1 0 0
2
1
3

4
1
0
0

4.1. Une autre proc


edure de minimisation.
Proposition IV.4.4. Soit A un AFD acceptant un langage L. Si pour tout

automate B, (B) designe lautomate deterministe equivalent a


` B R obtenu
par construction des sous-ensembles detats, alors ((A)) est lautomate
minimal de L.

IV.4. Construction de lautomate minimal

71

D
emonstration. Si B est un AFD acceptant M , il est clair que (B) accepte M R et quil est accessible. En effet, dans la procedure de construction
par sous-ensembles, on ne consid`ere que les etats accessibles car on recherche
de proche en proche les etats atteints depuis letat initial. Il suffit d`es lors de
montrer que si B est un AFD accessible acceptant un langage M , alors (B)
est un AFD accessible et reduit acceptant M R . Dans ce cas, (A) sera un
AFD accessible acceptant LR et ((A)) sera un AFD accessible et reduit
acceptant (LR )R = L. On conclut alors par la proposition IV.3.10.
Soit B un AFD accessible. Montrons que (B) est reduit. Soient P, Q
deux etats de (B). Supposons que P 1 .F = Q1 .F (o`
u F designe lensemble
des etats finals de (B)). De par la construction par sous-ensembles, letat
P (resp. Q) est constitue detats 4 p1 , . . . , pr (resp. q1 , . . . , qs ) de B R et un
etat est final sil est un sous-ensemble detats de B R contenant un etat final
de B R (donc ici contenant letat initial q 0 de B, i.e., lunique etat final de
B R ).
Si w appartient a` P 1 .F, cela signifie que, dans (B), w est le label dun
chemin debutant dans P et aboutissant dans un etat final. Encore un fois,
de par la construction par sous-ensembles, cela signifie que dans B R on a un
chemin de label w debutant dans un des etats p i et aboutissant dans q0 . Ou
de mani`ere equivalente, dans B, w R est le label dun chemin debutant dans
q0 et aboutissant dans pi . Reciproquement, pour tout i {1, . . . , r}, si w
est label dun chemin dans B debutant dans q 0 et aboutissant dans pi , alors
dans (B), w R appartient a` P 1 .F . Autrement dit, on a

P 1 .F = (q01 .{p1 , . . . , pr })R


o`
u dans le membre de gauche (resp. de droite), on consid`ere lautomate
(B) (resp. B).
Dans B, pour tout i {1, . . . , r}, si q0 .w = pi , cela signifie quil appartient a` q01 .{p1 , . . . , pr } et puisque nous avons supposer que P 1 .F = Q1 .F,
on en deduit que w appartient a` q01 .{q1 , . . . , qs }. Il existe j {1, . . . , s} tel
que, dans B, q0 .w = pj . Or puisque B est deterministe, on trouve p i = qj et
P Q. On proc`ede de meme pour lautre inclusion et ainsi, P = Q.

Exemple IV.4.5. Appliquons la proposition pr


ecedente pour obtenir lau-

tomate minimal du langage accepte par lautomate represente a` la figure


IV.9. Tout dabord, lautomate miroir A R est donne par lautomate de la
figure IV.10. Pour rendre AR deterministe, on utilise la construction par
sous-ensembles. On trouve les ensembles detats
{2, 3}, {1}, {1, 2, 3, 4}, {4}, .
Si on renomme ces derniers 1, . . . , 5, on obtient lAFD accessible (A) represente a` la figure IV.11. Considerons a` present le miroir de ce dernier automate pour obtenir celui de la figure IV.12. Pour conclure, il nous reste a`
4Les automates B et B R ont le m
eme ensemble detats.

72

Chapitre IV. Automate minimal

b
a

2
a

b
a

a
4

b
Figure IV.9. Un AFD A.

b
a

1
b

a
3

2
a
4

a
b

Figure IV.10. Lautomate AR .

2
a

b
3

a
4

a,b

b
5

a,b

Figure IV.11. Lautomate (A).

1
b

a
3

a
4

a,b
Figure IV.12. Lautomate ((A))R .

a,b

IV.5. Applications

73

rendre cet automate deterministe en utilisant une fois encore la construction


par sous-ensembles. Les ensembles detats sont ici,
{2, 3}, {1, 3}, {3, 4}.
Une fois ces ensembles renommes 1, 2, 3, on obtient lautomate de la figure
IV.13 qui est lautomate minimal du langage accepte par lautomate A de
depart.

b
a,b

1
a
3

a
b

Figure IV.13. Lautomate ((A)).


5. Applications
Nous allons utiliser la theorie de lautomate minimal pour montrer que
lensemble des langages reguliers est stable par morphisme inverse. Nous
montrons egalement que lensemble des prefixes ou des suffixes dun langage
regulier est regulier. Enfin, la racine n-i`eme (que nous definirons le moment
voulu) dun langage regulier est encore un langage regulier.
Proposition IV.5.1. Soit f : un morphisme de monodes. Si

M est un langage regulier alors f 1 (M ) est aussi un langage regulier.


D
emonstration. Il suffit de montrer que lautomate minimal du langage
f 1 (M ) est fini. Soit w . On a

w1 .f 1 (M ) = {u | wu f 1 (M )}
= {u | f (wu) M }

= {u | f (w)f (u) M }

= {u | f (u) f (w)1 .M }
= f 1 (f (w)1 .M )

Or M est regulier donc son automate minimal est fini et f (w) 1 .M ne peut
prendre quun nombre fini de valeurs. On en conclut que, quel que soit
w , w1 .f 1 (M ) ne peut prendre quun nombre fini de valeurs. Ainsi,
lautomate minimal du langage f 1 .M est fini.


74

Chapitre IV. Automate minimal

Remarque IV.5.2. Profitons du r


esultat precedent pour enoncer, sans
demonstration5, un resultat assez etonnant concernant la representation des
langages reguliers. Pour tout langage regulier L sur un alphabet quelconque,
il existe des morphismes h1 , h2 , h3 , h4 tels que
1
L = h4 (h1
3 (h2 (h1 (a b)))).

On pourra comparer ce resultat avec le theor`eme de representation de ChomskySch


utzenberger pour les langages algebriques (cf. theor`eme VI.10.3).
Ce r
esultat nest pas
nouveau! Mais la preuve
est
el
egante.

egulier, alors Pref(L) est


Proposition IV.5.3. Si L est un langage r

aussi regulier.

D
emonstration. Il suffit de montrer que lautomate minimal du langage
Pref(L) est fini. Soit w . Il vient

w1 .Pref(L) = {u | wu Pref(L)}

= {u | v : wuv L}

= {u | v : uv w1 .L}
= Pref(w1 .L).

Le langage L etant regulier, w 1 .L ne peut prendre quun nombre fini de


valeurs. Par consequent, Pref(w 1 .L) ne prend aussi quun nombre fini de
valeurs et lensemble
{Pref(w1 .L) | w }
est fini.

Corollaire IV.5.4. Si L est un langage r


egulier, alors Suff(L) est

aussi un langage regulier.

D
emonstration. Il suffit de remarquer que

Suff(L) = (Pref(LR ))R .


Le resultat decoule de la proposition precedente et du fait que lensemble
des langages reguliers est stable par application du miroir.


Remarque IV.5.5. On pourra comparer ces deux derniers r


esultats avec
les propositions II.3.9 et II.3.10 et leur preuve.
D
efinition IV.5.6. Soit k 1. On d
efinit la racine k-i`eme dun langage

L par

k
L = {u | uk L}.

Exemple IV.5.7. Soit L = a b . Il est facile de v


erifier que

L = a b .

5Voir par exemple, le Handbook of formal languages, vol. 1, pour des r


eferences.

IV.5. Applications

75

On dispose du resultat suivant.


Proposition IV.5.8. Si L est un langage r
egulier, alors

k
L est aussi

un langage regulier.

Afin de demontrer ce resultat, nous avons besoin du lemme suivant.


Lemme IV.5.9. Soit L un langage r
egulier. Si p est un etat de lautomate

minimal de L donne dans la definition IV.3.1 alors p et


S(p) = {w | p = w1 .L}
sont deux langages reguliers.
D
emonstration. Puisque p est un
etat de lautomate minimal A L =
(QL , q0,L , FL , , L ), il existe w tel que p = w 1 .L. En dautres termes,

p = {u | wu L} = {u | L (q0,L , wu) FL }

ce qui signifie que ce langage est accepte par lAFD


(QL , L (q0,L , w), FL , , L )
et donc, ce langage est regulier.
Pour montrer que S(p) est regulier, il suffit une fois encore de verifier
que son automate minimal est fini. Soit u . Il vient
u1 .S(p) = {v | uv S(p)}

= {v | p = (uv)1 .L}

= {v | p = v 1 .(u1 .L)}.

Or L est regulier, son automate minimal est donc fini et u 1 .L ne peut


prendre quun nombre fini de valeurs distinctes. Par consequent,
{u1 .S(p) | u }
est un ensemble fini.


Nous pouvons a` present demontrer la proposition IV.5.8.


D
emonstration. Soit AL lautomate minimal de L ayant QL pour ensem-

ble detats. Montrons tout dabord que


[

k+1
L=
(S(p) k p).
pQL

Si u appartient a`
L, alors, par definition de la racine (k + 1)-i`eme, uu k
appartient a` L et donc uk appartient a` u1 .L. Si on pose p = u1 .L, cela

signifie que u appartient a` k p avec p QL . De plus, par definition meme


de S(p), u appartient egalement a` ce dernier ensemble.
Demontrons lautre inclusion. Si u appartient au membre de droite, cela
signifie que p secrit u1 .L et que uk appartient a` p. Par consequent, u k
appartient a` u1 .L et donc uk+1 appartient a` L.
k+1

76

Chapitre IV. Automate minimal

Pour conclure lapreuve, on proc`ede par recurrence sur k. Si k = 1,


alors par
hypoth`ese 1 L = L est regulier. Supposons a`
present que, si L est
k
k+1
regulier, L (k 1) est regulier et montrons que
L lest encore. Au
vu du lemme precedent, pour tout etat p Q L , p et S(p) sont reguliers.

Par hypoth`ese de recurrence, k p est regulier et donc S(p) k p est regulier


car il sagit de lintersection de deux langages reguliers. La formule donnee
ci-dessus ne fait ainsi intervenir quune union finie de langages
reguliers (en
k+1
effet, L est regulier et donc, QL est fini). Par consequent,
L est regulier.


Voici a` present quelques remarques concernant la complexite des algorithmes a` mettre en oeuvre pour rechercher lautomate minimal dun langage
regulier a` partir dun automate donne.
Remarque IV.5.10. On peut montrer que lalgorithme de recherche des

etats equivalents dans un AFD A est de complexite temporelle O(n 2 ), si n est


le nombre detats de lautomate A. En effet, en implementant lalgorithme
de mani`ere soigneuse, il suffit de passer en revue les n etats de A au plus n
fois. A la premi`ere etape, on tente de distinguer les etats de A en utilisant
le mot vide. A la deuxi`eme etape, on passe a` nouveau en revue les etats
que lon tente de distinguer au moyen de mots de longueur 1 et on rep`ete
loperation jusquaux mots de longueur n 1.
Il est possible6 dobtenir un algorithme de complexite temporelle en
O(n log n) en considerant quelques raffinements a` propos de la relation dequivalence A . Ces raffinements sortent du cadre introductif de ce cours.
edure de minimisation donnee a` la propoRemarque IV.5.11. La proc
sition IV.4.4 peut saverer co
uteuse car elle demande deux procedures de
determinisation et par consequent, le nombre detats peut subir une croissance doublement exponentielle dans le cas le moins favorable. Notons que si
L = LR , alors, dans la procedure donnee a` la proposition IV.4.4, lautomate
minimal de L est simplement (A) si A est un AFD accessible acceptant L.
Ainsi, en resume, pour une expression reguli`ere donnee, on construira
tout dabord un automate fini non deterministe acceptant le langage genere
par lexpression. Cet AFND contiendra en general des -transitions. Rappelons une fois encore que le non determinisme est un outil puissant permettant dexprimer facilement des langages aux specifications complexes. Ensuite, on rendra cet automate deterministe (avec le risque inevitable dune
explosion exponentielle du nombre detats). La procedure de determinisation fournit toujours un AFD accessible. Il ne reste plus alors qu`a reduire
lAFD en detectant les ensembles detats equivalents.
6cf. J.E. Hopcroft, An n log n algorithm for minimizing states in a finite automaton,

Theory of Machines and Computations, Academic Press, New-York, 189196, (1971).

IV.6. Exercices

77

6. Exercices
Exercice IV.6.1. Lautomate de la figure IV.14 est-il accessible et r
eduit? Autrement dit, sagit-il dun automate minimal ? Meme question

a,b

b
a

3
a

b
a

5
b

b
Figure IV.14. Un AFD.

avec lautomate de la figure IV.15. Pour ces deux automates, donner une

a,b
b

a
a

1
b

a
a

b
Figure IV.15. Un autre AFD.
expression reguli`ere du langage accepte.
Exercice IV.6.2. Donner (en utilisant une m
ethode au choix) lautomate

minimal des langages suivants :


I
I
I
I
I
I
I

a ba(bb) ,
(a + b) aba(a + b) ,
(ab + ba) ,
le langage forme des mots contenant le facteur aa ou bb,
le langage forme des mots contenant le facteur aa et bb,
(aab) (ba) ,
le langage forme des mots de (aab) (ba) qui sont de longueur paire.

78

Chapitre IV. Automate minimal

Exercice IV.6.3. Soit L = (ab + bab) . Quels sont les diff


erents ensembles

de la forme
w1 .L,

w {a, b} .

En deduire lautomate minimal de L.

Exercice IV.6.4. Montrer que L nest en g


eneral pas une congruence a`

gauche, i.e., il existe z tel que x L y et zx 6L zy.

Exercice IV.6.5. Soit L = {ab, aab, aba, ba, bb, aaa}. Quels sont les dif-

ferents ensembles de la forme

w1 .L,

w {a, b} .

En deduire lautomate minimal de L.


erents enExercice IV.6.6. Soit L = (a + b) abaaba. Quels sont les diff
sembles de la forme
w1 .L,

w {a, b} .

En deduire lautomate minimal de L.

Exercice IV.6.7. Soit L, le langage sur {a, b} des mots contenant exacte-

ment deux a. Quels sont les differents ensembles de la forme


w1 .L,

w {a, b} .

En deduire lautomate minimal de L.


eterministe A represente a` la figure
Exercice IV.6.8. Soit lautomate d

IV.16.

Rechercher lautomate minimal du langage accepte par A.

On

a,b

a
a

a
b

b
b

Figure IV.16. Un autre AFD dont on cherche le minimal.


procedera par deux methodes : la recherche des etats equivalents et la procedure ((A)).

IV.6. Exercices

79

Exercice IV.6.9. Soit le langage

L = {an bm | n, m N : n m}.
Caracteriser les etats de lautomate minimal de L et donner la table de
transition de cet automate.
Exercice IV.6.10. Soit lautomate fini d
eterministe A represente a` la fig-

ure IV.17. Rechercher les etats equivalents pour la relation A . En deduire

a,b

a
b
b

a
a

Figure IV.17. Recherche des etats equivalents.


lautomate minimal du langage accepte par A.
Exercice IV.6.11. On consid`
ere lalphabet = {a, b, c}.
I

Donner lautomate minimal du langage L = a b c (dans votre


reponse, justifier en quoi lautomate que vous proposez est minimal).
Quelles sont les classes dequivalence de pour la relation de
Nerode L et quels sont les differents ensembles de la forme w 1 .L,
w ?
La cloture commutative de L donnee par
com(L) = {w | v L, : |w| = |v| }
est-elle un langage regulier ? Justifier.

CHAPITRE V

Quelques compl
ements sur les langages r
eguliers
1. Transduction
Dans cette section, on definit la notion de transducteur qui, dune certaine mani`ere, peut etre vue comme une generalisation des morphismes. Ensuite, nous montrons que lensemble des langages reguliers est stable pour
limage et limage inverse par transduction.
D
efinition V.1.1. Un transducteur est un 6-uple T = (Q, q 0 , , , , )

o`
u Q, q0 , , sont definis comme dans le cas des AFD, est un alphabet
fini appele alphabet de sortie et : Q est la fonction de sortie.
(On supposera que est une fonction totale.) Un transducteur peut etre vu
comme un moyen pour definir des fonctions. Ainsi, a` chaque mot dentree
w = w1 w` , wi , le transducteur T associe un mot de sortie
T (w) donne par
(q0 , w1 ) ((q0 , w1 ), w2 ) ((q0 , w1 w2 ), w3 ) ((q0 , w1 w`1 ), w` ).

La representation sagitale dun transducteur se fait de la facon suivante.


Pour tous q, q 0 Q, , si (q, ) = q 0 et (q, ) = u , alors on note
/u

q q 0 .
Exemple V.1.2. Voici un exemple de transducteur.

b/b

Ici, = {a, b},

a/a

b/bc
1

2
a/a

Figure V.1. Un transducteur.


lalphabet de sortie est = {a, b, c} et la fonction de sortie est definie
par (1, a) = a, (1, b) = b, (2, a) = a et (2, b) = bc. Considerant le mot
w = bab, on a
b/b

a/a

b/bc

1 1 2 1

et donc T (w) = babc. Il est facile de voir que ce transducteur ins`ere un c


apr`es chaque occurrence de ab dans le mot dentree.
` valeurs dans , definie par le
Remarque V.1.3. La fonction sur et a
transducteur T , est souvent appelee fonction rationnelle.
81

82

Chapitre V. Quelques complements sur les langages reguliers

Exemple V.1.4. Si f : est un morphisme de monodes, cette

fonction peut etre aisement realisee par un transducteur possedant un unique


etat. En effet, il suffit de considerer le transducteur represente a` la figure
V.2.

/f()
1
Figure V.2. Un transducteur calculant le morphisme f .
Remarque V.1.5. Dans la litt
erature, on trouve dautres mod`eles plus

generaux de transducteurs, comme par exemple, des transducteurs construits non pas sur un AFD mais sur un AFND. Dans ce cas, le transducteur
ne definit plus une fonction de dans mais une relation (rationnelle),
i.e., une partie de . On peut aussi trouver des mod`eles dans lesquels
on precise des etats finals. Dans ce dernier cas, ne sont acceptes que les calculs dont la lecture du mot dentree conduit a` un etat final. Dans ce cours
introductif, nous avons decide de passer ces generalisations sous silence.
Lensemble des langages reguliers est stable par transduction.
egulier et T un transducTh
eor`
eme V.1.6. Soient L un langage r

teur. Le langage

T (L) = {T (w) | w L}

est regulier.
1

Soient A = (Q, q0 , F, , ) un AFD acceptant L et


T =
le transducteur donne dans lenonce. Nous allons
construire un AFND B = (Q00 , q000 , F 00 , , 00 ) acceptant exactement T (L).
On le definit comme suit :
D
emonstration.

(Q0 , q00 , , 0 , , )

I
I
I

Q00 = QQ0 ({}){0, 1, . . . , k} o`


u k = max,q0 Q0 | (q 0 , )|,
00
0
q0 = (q0 , q0 , , 0),
la relation de transition 00 Q00 Q00 contient les elements
suivants. Pout tout ,
((q, q 0 , , 0), , (q, q 0 , , 0)) 00 .

Si (q 0 , ) = y1 yj , alors pour tout i tel que 1 i j


((q, q 0 , , i 1), yi , (q, q 0 , , i)) 00

et
((q, q 0 , , j), , ((q, ), 0 (q 0 , ), , 0)) 00 .
1La preuve pr
esentee ici est issue de : J.-P. Allouche, J. Shallit, Automatic Sequences,

Theory, Applications, Generalizations, Cambridge University Press (2003).

V.1. Transduction

83

En particulier, si (q 0 , ) = alors
((q, q 0 , , 0), , ((q, ), 0 (q 0 , ), , 0)) 00 .

Enfin, F = {(q, q 0 , , 0) : q F }.

Lidee a` la base de cette definition est la suivante : si w T (L), il existe


x L tel que w = T (x). Supposons que x = x 1 xr , xt , et que wt
soit la sortie correspondant a` la lecture de x t dans T . En particulier, on a
w = w1 wr . Lautomate B peut deviner de mani`ere non deterministe sil
existe un mot x L produisant le mot w. En effet, la premi`ere composante
de Q00 permet de simuler le comportement de A. La deuxi`eme composante
simule le comportement de T . La troisi`eme composante de Q 00 est utilisee
pour memoriser la lettre = xt du mot x qui vient detre supposee. La
quatri`eme composante permet de savoir combien de lettres de w t ont dej`a
ete rencontrees. Cette derni`ere composante sert de compteur, initialise a`
zero et incremente dune unite a` chaque fois quune lettre de w t est lue.
Lorsque ce compteur atteint |wt |, on utilise une -transition pour reinitialiser
la troisi`eme composante a` et la quatri`eme a` 0. De plus, pour simuler
le comportement de A et T , la premi`ere composante passe a` (q, ) et la
deuxi`eme a` 0 (q 0 , ). Il nous suffit de montrer que
T (L) = L(B).
Soit w T (L). Il existe x = x1 xr L tel que T (x) = w. Comme
precedemment, wt est la sortie correspondant a` xt et on note kt = |wt |.
Lexecution de x dans A donne la suite detats
q0 = p 0 , p 1 , . . . , p r
o`
u pr F car x L. De facon semblable, la lecture de x dans T conduit a`
la suite
x1 /w1
x2 /w2
xr /wr
q00 = p00 p01 p02 p0r .

On note wt = wt1 wtkt . Ainsi, dans B, la lecture de w peut conduire a` la


suite detats
w1k

11
(p0 , p00 , x1 , 1) 1 (p0 , p00 , x1 , k1 )
(p0 , p00 , , 0) (p0 , p00 , x1 , 0)
{z
}
|

=q000

w2k

21
2 (p1 , p01 , x2 , k2 )
((p0 , x1 ), 0 (p00 , x1 ), , 0) (p1 , p01 , x2 , 0)
{z
}
|

..
.

=(p1 ,p01 ,,0)

0
(p2 , p2 , , 0) (p2 , p02 , x3 , 0)

wrk

r1
r (pr1 , p0r1 , xr , kr )
(pr1 , p0r1 , , 0) (pr1 , p0r1 , xr , 0)

(pr , p0r , , 0) F 00 .

Ceci prouve que le mot w = w11 w1k1 w21 w2k2 wr1 wrkr est accepte par B. Pour lautre inclusion, si w L(B), alors cela signifie que
partant de letat initial q000 , on dispose dun chemin conduisant a` un etat

84

Chapitre V. Quelques complements sur les langages reguliers

final de F 00 . Ainsi, par definition de B, on retrouve un mot x L tel que


T (x) = w et par consequent, w appartient bien a` T (L).

Remarque V.1.7. Au vu de lexemple V.1.4 et du th


eor`eme precedent, on
retrouve comme cas particulier, le fait que lensemble des langages reguliers
est stable par morphisme (cf. proposition II.3.4).

Lensemble des langages reguliers est aussi stable par image inverse par
transduction.
Proposition V.1.8. Soient L un langage r
egulier et T un transduc-

teur. Le langage
est regulier.

T 1 (L) = {x | T (x) L}

D
emonstration. Il est ais
e de construire un AFD acceptant T

1 (L)

a`
partir dun AFD A = (Q, q0 , F, , ) acceptant L et du transducteur T =
(Q0 , q00 , , 0 , , ) donne dans lenonce. Soit lAFD B = (Q 00 , q000 , F 00 , , 00 )
defini par
I
I
I
I

Q00 = Q0 Q,
q000 = (q00 , q0 ),
F 00 = Q0 F et
pour tout , 00 ((q 0 , q), ) = ( 0 (q 0 , ), (q, (q 0 , ))).

La premi`ere composante simule le transducteur T et la seconde composante


simule lautomate A sur la sortie produite par T . Ainsi, il est clair que
L(B) = T 1 (L).

2. Recherche dun mot dans un texte


Une application pratique des automates concerne la recherche dun mot
dans un texte. En effet, les traitements de textes que lon peut trouver sur
nimporte quelle plate-forme utilisent de mani`ere interne des algorithmes
bases sur la construction dautomates pour implementer les fonctions bien
utiles de recherche (find, find and replace, etc. . . ). A titre indicatif 2,
Tcl, Perl, Python, GNU Emacs, ed, sed, vi, la plupart des versions de grep
et certaines versions de egrep et awk utilisent des AFND. Par contre, la
majorite des versions de egrep et awk, lex et flex utilisent quant a` eux des
AFD.
Notre but est ici de rechercher les occurrences dun mot u dans un texte
T ecrit sur lalphabet (un texte etant une suite finie de symboles de ,
2
Pour plus de details, voir par exemple, J.E.F. Friedl, Mastering Regular Expressions,
OReilly.

V.2. Recherche dun mot dans un texte

85

il sagit simplement dun mot sur ). Ainsi, nous recherchons un AFD


acceptant le langage
L = u.
Pour ce faire, nous allons decrire lautomate minimal de ce langage. Les
etats sont de la forme w 1 .L avec w . Ainsi,
v w1 .L wv u.

Pour decrire les ensembles w 1 .L, il est utile dintroduire, pour tout prefixe
p de u, lensemble
Eu (p) = { | 0 , : p = 0 , u = 0 }
forme des suffixes de u qui, completes par un suffixe de p, donnent u. On
remarque quavec cette definition, u appartient toujours a` E u (p).
Soit v appartenant a` w 1 .L. Si |v| |u|, alors v appartient a` L car v
poss`ede u comme suffixe. On en conclut donc que w 1 .L L.
Sinon, |v| < |u|. Dans ce cas, on pose w,u comme etant le plus grand
suffixe de w qui soit prefixe de u. Il est clair que w,u et Eu (w,u ) dependent
uniquement de u et w.

w
u

Figure V.3. wv appartient a` u.


Exemple V.2.1. Avec les notations pr
ecedentes, si

w = aabbab

et

u = babbaab,

aabbab
| {z } baab

et

aabbab
| {z } abbaab

alors
w

appartiennent a` L = u. Ici, w,u = bab car

u=
bab baab
.
w = aab bab
De plus, on a
Eu (w,u ) = {baab, abbaab, u}

En effet, les suffixes de w,u sont , b, ab, bab. Parmi eux, bab et b sont
prefixes de u et on a les factorisations suivantes,
0

z}|{
bab baab
u = |{z}
w,u

et

z}|{ z}|{
u = |ba {z b } abbaab.
w,u

86

Chapitre V. Quelques complements sur les langages reguliers

Ainsi, on se convainc aisement que


w1 .L = L Eu (w,u ).
Si u = u1 u` , les prefixes de u sont
p0 = , p1 = u1 , . . . , p` = u1 u` .
Les etats de lautomate minimal de L sont donc les
L Eu (pi ), i {0, . . . , `}.
Au vu de ce qui prec`ede, il est clair que
L Eu (pi ) = p1
i .L.
Si on se rappelle la definition de lautomate minimal dun langage, on retrouve
les caracteristiques de celui-ci.
I

Letat initial est tel que


p1
i .L = L,

I
I

et donc i = 0. En effet, si 0 < i `, p1


i .L contient au moins un
mot de longueur strictement inferieure a` |u|, alors que L ne contient
que des mots de longueur au moins |u|.
Un etat est final si et seulement si p 1
etat
i .L. Donc, le seul
1
final est p` .L.
Recherchons la fonction de transition de lautomate. Si ,
alors par definition de L , on a
1
L (p1
i .L, ) = (pi ) .L.

De plus, si = ui+1 , alors pi = pi+1 . Sinon, 6= ui+1 et


(pi )1 .L = p1
j .L

o`
u pj est le plus grand prefixe de u qui soit suffixe de p i . (Definition somme toute assez naturelle au vu de la defintion des ensembles
Eu (p).)
Ainsi, pour un mot u donne, il est facile de construire la table de
lautomate. Nous convenons de noter i letat correspondant a` p 1
i .L.
Exemple V.2.2. Soit u = abbab. On a

i
0
1
2
3
4
5

pi

a
ab
abb
abba
abbab

(i, a)
1 car a = p1
1 car p1 suffixe de
1 car p1 suffixe de
4 car abba = p4
1 car p1 suffixe de
1 car p1 suffixe de

(i, b)
0 car p0 suffixe de b
aa
2 car ab = p2
aba
3 car abb = p3
0 car p0 suffixe de abbb
abbaa 5 car abbab = p5
abbaba 3 car p3 suffixe de abbabb

et on trouve lautomate represente a` la figure V.4. Si on doit ecrire un


programme detectant la premi`ere occurrence de abbab dans un texte fourni
en entree, il suffit de decreter que la procedure sarrete une fois letat 5

V.2. Recherche dun mot dans un texte

b
0

87

5
b

Figure V.4. Un automate detectant abbab.


atteint. Si on devait compter le nombre doccurrence du facteur abbab dans
un texte donne, on pourrait decider dincrementer un compteur dune unite
a` chaque fois que letat 5 serait atteint.
Remarque V.2.3. La construction de la table de transition de lautomate

seffectue en un temps proportionnel a` |u|. En effet, le nombre detats est


|u|+1 et pour chaque etat et chaque lettre de lalphabet, une seule operation
de comparaison de mots est necessaire pour determiner letat atteint. Une
fois la table de transition construite, la recherche dun mot dans un texte
T prend un temps proportionnel a` |T | puisque le texte T est lu lettre par
lettre dans lautomate.
etaillee dans cette secExemple V.2.4. En appliquant la construction d
tion, on peut construire aisement un automate reconnaissant la sequence
genetique agata. Cet automate est represente a` la figure V.5. De meme,

g,c,t
g,c,t
c,t
a

a
g

g,c,t

agata

a
c,t

Figure V.5. Un automate detectant agata.


pour rechercher le mot ananas dans un texte, on a lautomate de la figure
V.6. Sur cette derni`ere, toutes les transitions non representees aboutissent
a` letat initial, lalphabet etant {a, b, . . . , z}.

88

Chapitre V. Quelques complements sur les langages reguliers

a
n

Figure V.6. Un automate detectant ananas.


3. Fonction de complexit
e dun langage r
egulier
e du langage L
D
efinition V.3.1. Soit L . La fonction de complexit

est la fonction

L : N N : n 7 #(L n ).

Cette fonction associe donc a` n le nombre de mots de longueur n dans le


langage L.
Le but de cette section est detudier la fonction de complexite dun langage regulier. Le resultat principal est que la suite ( L (n))nN satisfait une
relation de recurrence lineaire a` coefficients constants.
Soit L un langage regulier accepte par un AFD A = (Q, q 0 , F, , ).
Il est clair que L (n) est le nombre de chemins de longueur n debutant dans
q0 et se terminant dans un etat final de F . Le probl`eme pose se ram`ene
donc a` un probl`eme de denombrement de chemins dans un graphe.
D
efinition V.3.2. Soit A = (Q, q0 , F, , ) un AFD. La matrice dadjacence

de A est la matrice donnee par

Mq,r = #{ | (q, ) = r},

q, r Q.

Exemple V.3.3. Consid


erons lautomate minimal du langage sur {a, b}
forme des mots ne contenant pas deux a consecutifs.

b
1

a,b
2

Figure V.7. AFD acceptant les mots ne contenant pas aa.


La matrice dadjacence de A est

1 1 0
1 0 1 .
0 0 2

Proposition V.3.4. Soient A = (Q, q0 , F, , ) un AFD et M sa matrice


dadjacence. Pour tous q, r Q et tout n N,

[M n ]q,r

est le nombre de chemins de longueur n joignant q a


` r.

V.3. Fonction de complexite dun langage regulier

89

D
emonstration. On proc`
ede par recurrence sur n. Si n = 0 ou n = 1, le
resultat est evident. Supposons la propriete satisfaite pour n et verifions-la
pour n + 1. Il vient
X
[M n+1 ]q,r = [M n .M ]q,r =
[M n ]q,s Ms,r .
sQ

[M n ]

Par hypoth`ese de recurrence,


q,s compte le nombre de chemins de
longueur n joignant q a` s. Or, il est clair que le nombre de chemins de
longueur n + 1 joignant q a` r sobtient a` partir des chemins de longueur n
joignant q et s et des chemins de longueur 1 joignant s a` r.

1
r

Figure V.8. Chemins de longueur n + 1 joignant q a` r.




Corollaire V.3.5. Soient A = (Q, q0 , F, , ) un AFD acceptant L et M

sa matrice dadjacence. On a

L (n) =

[M n ]q0 ,f .

f F

D
emonstration. Cest
evident.


Exemple V.3.6. Poursuivons lexemple V.3.3. Les premi`


eres puissances
de la matrice dadjacence de A sont

5 3 8
3 2 3
2 1 1
M 2 = 1 1 2 , M 3 = 2 1 5 , M 4 = 3 2 11 , . . .
0 0 16
0 0 8
0 0 4

Ainsi, on peut remarquer quil y a 2 chemins (resp. 1 chemin) de longueur


2 de letat 1 vers 1 (resp. 2). En sommant les deux, il y a donc 3 chemins
de longueur 2 appartenant au langage accepte par lautomate. Ou encore,
on trouve 8 mots de longueur 4 dans ce langage.

Nous allons a` present fournir une methode generale permettant de calculer L (n). En vertu du theor`eme de Cayley-Hamilton, toute matrice annule son polynome caracteristique 3 det(M I). Si #Q = k, la matrice
3On peut faire tout le raisonnement qui suit en consid
erant non pas le polyn
ome

caracteristique de M , mais son polyn


ome minimum.

90

Chapitre V. Quelques complements sur les langages reguliers

M est une matrice carree de dimension k et det(M I) est un polynome


monique a` coefficients entiers de degre k en . Ainsi, il existe c 1 , . . . , ck Z
tels que
M k = c1 M k1 + + ck I.
En multipliant les deux membres de cette egalite par M nk , on trouve pour
tout n k,
M n = c1 M n1 + + ck M nk .
Ceci signifie que les coefficients de M n satisfont une relation de recurrence
lineaire a` coefficients constants, i.e., pour tous q, r Q et tout n k,
[M n ]q,r = c1 [M n1 ]q,r + + ck [M nk ]q,r .

En consequence du corollaire V.3.5, il vient


L (n) = c1 L (n 1) + + ck L (n k),

n k.

Le probl`eme revient a` reussir a` exprimer L (n) sous la forme dune formule close. Cette question a` propos des suites lineaires recurrentes est en
toute generalite difficile a` resoudre. On dispose du resultat suivant que nous
donnons ici sans demonstration.
Proposition V.3.7. Soit k 1.Si une suite (u n )nN satisfait une relation

de recurrence lineaire a
` coefficients constants de la forme
un = c1 un1 + + ck unk , n k

et si 1 , . . . , r sont les racines de multiplicite m 1 , . . . , mr du polyn


ome caracteristique de la recurrence
X k c1 X k1 ck ,
alors il existe des polyn
omes Pi de degre strictement inferieur a
` mi ,
i {1, . . . , r}, tels que
un = P1 (n) n1 + + Pr (n) nr .

En particulier, les polyn


omes P1 , . . . , Pr sont enti`erement determines par les
conditions initiales u0 , . . . , uk1 .
Ainsi, ce theor`eme nous montre que rechercher une forme close pour
L (n) revient a` rechercher les racines dun polynome de degre k.
Exemple V.3.8. Poursuivons lexemple V.3.3. Le polyn
ome caracteris-

tique de la matrice dadjacence est donne par

1 1
0
det 1

1 = (2 )(2 1).
0
0 2
Ainsi, puisque

(2 )(2 1) = 3 + 32 2,

V.3. Fonction de complexite dun langage regulier

91

en vertu du theor`eme de Cayley-Hamilton, on a


M 3 = 3M 2 M 2I
et donc pour tout n 3,

M n = 3M n1 M n2 2M n3 .

En consequence du corollaire V.3.5, on a


L (n) = 3 L (n 1) L (n 2) 2 L (n 3),

n 3.

De plus,
L (0) = 1, L (1) = 2 et L (2) = 3
car , a, b, ab, ba, bb appartiennent a` L. Pour determiner une formule close
pour L (n), nous factorisons tout dabord le polynome caracteristique de la
relation de recurrence,

1+ 5
1 5
3
2
X 3X + X + 2 = (X 2)(X
)(X
).
2
2
En vertu de la proposition V.3.7, puisque les trois racines du polynome sont
simples, il existe trois constantes A, B, C telles que
!n
!n
1 5
1+ 5
n
+C
, n 3.
L (n) = A2 + B
2
2
Au vu des conditions initiales, on a le syst`eme suivant

1 = A + B +C

 


2 = 2A + B 1+2 5 + C 12 5
 
 

3 = 4A + B 1+ 5 2 + C 1 5 2
2
2

et on trouve

Par consequent,
(4)

5+3 5
53 5
A = 0, B =
et C =
.
10
10

5+3 5
L (n) =
10

!n
53 5
1+ 5
+
2
10

!n
1 5
.
2

Remarque V.3.9. La pr
esence dun puits, ou plus generalement dun etat
non coaccessible (i.e., depuis lequel on ne peut atteindre aucun etat final),
na pas dinfluence sur le nombre de mots de longueur n presents dans le
langage. Ainsi, il est commode dans les exercices de considerer un automate
emonde prive de tels etats. On pourrait ainsi reprendre lexercice precedent
en ne considerant dans lautomate de la figure V.7 que les etats 1 et 2.

Une autre methode fort utile dans le cadre des equations lineaires recurrentes consiste a` utiliser la notion de serie generatrice. Ainsi, si (u n )nN est
une suite, on note symboliquement
X
Fu (X) =
uk X k
k0

92

Chapitre V. Quelques complements sur les langages reguliers

la serie generatrice de cette suite. Il sagit dune mani`ere commode de coder


les elements de (un )nN . On peut definir la somme et le produit de deux
series formelles pour munir lensemble des series dune structure danneau.
Proposition V.3.10. Si (un )nN satisfait l
equation lineaire recurrente ho-

mog`ene de degre k
n 0,

un+k =

k
X

ai un+ki

i=1

avec comme conditions initiales u0 = b0 , . . . , uk1 = bk1 , alors la serie


generatrice Fu est la fraction rationnelle
Pk1
P
i
i+j
i=0 bi X
i+j<k ai bj X
Fu (X) =
P
1 ki=1 ai X i
D
emonstration. Il vient

Fu (X) =

un X n

n0

un+k X n+k +

n0

n0

i=1

ai un+ki

i=1

ai X i

i=1

k
X

ui X i

i=0

k
X X

k
X

k1
X

X n+k +

k1
X

bi X i

i=0

un+ki X n+ki +

k1
X

bi X i

i=0

n0

ai X i Fu (X)

ki1
X
j=0

uj X j +

k1
X

bi X i

i=0

On a utilise ci-dessus le fait quil sagit de sommations formelles et quil ny


a donc aucune objection a` permuter les differents symboles sommatoires.
Par consequent, on obtient
!
k ki1
k1
k
X
X
X
X
i
ai uj X i+j
bi X i
ai X
1
Fu (X) =
i=1

i=1

i=0

do`
u la conclusion car
k ki1
X
X
i=1 j=0

ai uj X i+j =

j=0

ai bj X i+j .

i+j<k


Pour obtenir une expression de (un )nN , il suffit de decomposer Fu en fractions simples puis de developper celles-ci en serie de puissances. Une fois
cela fait, il ne reste plus qu`a identifier les coefficients correspondants.
Nous allons illustrer cette technique sur un exemple.

V.3. Fonction de complexite dun langage regulier

93

Exemple V.3.11. R
esolvons lexemple V.3.3 en utilisant les series generatrices. Nous savons dej`a que

L (n) = 3 L (n 1) L (n 2) 2 L (n 3),
Considerons la serie generatrice
F (X) =

n 3.

L (n) X n .

n0

On a
F (X) =

L (n) X n + L (2) X 2 + L (1) X 1 + L (0) X 0

n3

n3

[3 L (n 1) L (n 2) 2 L (n 3)] X n + 3X 2 + 2X + 1

= 3X [F (X) L (0) L (1)X] X 2 [F (X) L (0)] 2X 3 F (X)


+3X 2 + 2X + 1

= (3X X 2 2X 3 )F (X) 2X 2 X + 1
et donc
F (X) =

2X 2 + X 1
(2X 1)(X + 1)

=
2X 3 + X 2 3X + 1
(2X 1)(X + 1+2 5 )(X +

.
1 5
2 )

Si on developpe F (X) en fraction rationnelles, on obtient

F (X) =
1+ 5
X+ 2
X + 12 5
et

De l`a, on tire

+
= 1

(1 5) + (1 + 5) = 2.

5 5
5+ 5
=
, =
.
10
10
Pour le developpement en serie de puissances, il est utile de rappeler les
relations suivantes
X
1
=
k X k.
1X
k0

et

X
1
1
1
=
D
=
k k1 X k1
x
(1 X)2

1X
k1

o`
u Dx est une derivation formelle . Dune mani`ere generale,
portionnel a`

Dxp1 11 X

1
(1 X)p

et il suffit donc de deriver formellement

4Les d
etails et les justifications sortent du cadre de ce cours.

est pro-

k0

Xk.

94

Chapitre V. Quelques complements sur les langages reguliers

Ainsi, sur notre exemple, il ne reste plus qu`a developper F (X) en serie de
puissances en utilisant la premi`ere relation pour obtenir
X
2
2

1
2
=

)k X k ,
(
=

2
1+ 5
1
+
X
1
+
5
1
+
5
1
+
5
X+
k0
1+ 5
2

et

X+

1 5
2

X
2
2
1
2

)k X k .
(
=
2
1 5 1 + 1 5 X
1 5 k0 1 5

En identifiant les coefficients, on trouve la formule close recherchee :

2
2
2
5+ 5
2
5 5
n
(
)
(
)n .
L (n) =
10 1 + 5 1 + 5
10 1 5 5 1
{z
} | {z } |
{z
} | {z }
|
53 5
10

1 5
2

5+3 5
10

1+ 5
2

On retrouve bien la solution donnee en (4) a` des reecritures algebriques pr`es.


Pour conclure cette section, on dispose encore du resultat suivant.

egulier accepte par un AFD accesProposition V.3.12. Soit L un langage r


sible A. Le polyn
ome minimum de la matrice dadjacence de A est divisible
par le polyn
ome minimum de la matrice dadjacence de lautomate minimal
AL de L.
D
emonstration. Soit M (resp. N ) la matrice dadjacence de lAFD accessible A = (Q, q0 , F, , ) (resp. de AL = (QL , q0,L , FL , , L )). Au vu du
theor`eme IV.3.8, pour tous p, q Q L et tout mot w de longueur k tel que
L (p, w) = q, il existe une application : Q Q L et des etats p0 et q 0 de Q
tels que

(p0 ) = p, (q 0 ) = q et L ((p0 ), w) = ((p0 , w)) = (q 0 ) = q.

q"

w
p

Figure V.9. Projection : Q QL sur AL .


Ainsi, il est clair que
[N k ]p,q =

q 0 1 (q)

[M k ]p0 ,q0 .

V.4. Monode syntaxique

95

En effet, puisque A est deterministe, on ne doit prendre en compte quun


seul p0 1 (p) car sinon, on compterait un meme mot plus dune fois.
Par consequent, si M annule un polynome 5, N lannule aussi. En particulier, M annule son polynome minimum donc N annule le polynome minimum de M . Pour conclure, il suffit de se rappeler que le polynome minimum
de N divise tout polynome annule par N .


4. Monode syntaxique
Lorsquon etudie les langages formels, certaines de leurs proprietes peuvent sexprimer en termes algebriques en introduisant la notion de monode
syntaxique. Le but de cette section est de fournir quelques rudiments concernant cet outil puissant6.
egulier ou non). On definit
D
efinition V.4.1. Soit L un langage (r

sur la relation suivante. Soient u, v . On a

u L v (x, y : xuy L xvy L).

Il est facile de verifier quil sagit dune relation dequivalence sur et meme
dune congruence (`a droite et a` gauche), i.e., pour tout ,
u L v (u L v et u L v).
On parle souvent de la congruence syntaxique L et on dit que u et v sont
syntaxiquement equivalents.
Dans cette section, on notera simplement [w] la classe dequivalence pour
L etant convenu que la relation L est sous-entendue. Nous allons voir
quon peut munir lensemble quotient / L , i.e., lensemble des classes
dequivalence pour L , dune structure de monode.
Soit loperation
: /L /L /L : ([x], [y]) 7 [x] [y]
definie par
[x] [y] = [z] si [x] [y] [z]

o`
u represente loperation de concatenation de langages 7. Verifions que
lapplication est bien definie en montrant que si x L x0 et si y L y 0 ,
5Soit P (z) = Pn a z i tel que P (M ) = 0.
i=0 i

En particulier, pour tous p0 , q 0 ,


i
0 0 = 0 et donc
0 0 = 0.
En permutant les
q 0 1 (q)
i=0 ai (M )p ,q
i=0 ai (M )p ,q
Pn
P
Pn
i
i
0
0
sommes, on obtient
a
(M
)
=
0
puis
a
(N
)p,q = 0 et donc
p ,q
i=0 i
q 0 1 (q)
i=0 i

Pn

Pn

P (N ) = 0.
6
En effet, on peut par exemple montrer quun langage peut sexprimer a
` partir
densembles finis en utilisant un nombre fini doperations dunion, de concatenation,
dintersection et de complementation (on parle alors a
` juste titre de langage sans etoile,
ou star-free) si et seulement si son monode syntaxique ne contient que des sous-groupes
triviaux. Ce resultat de nature algebrique est d
ua
` M.P. Sch
utzenberger.
7Op
eration tout a
` fait naturelle, puisquune classe dequivalence pour L est un ensemble de mots.

96

Chapitre V. Quelques complements sur les langages reguliers

alors xy L x0 y 0 . En effet, pour tous , , il vient

xy L x0 y L x0 y 0 L.

Remarque V.4.2. Il est


evident que

[x] [y] = [xy].


Proposition V.4.3. Muni de lop
eration , lensemble quotient / L

poss`ede une structure de monode.

D
emonstration. Le neutre est [], i.e., pour tout x , on a

[x] [] = [x].

De plus, loperation est associative, i.e., pour tous x, y, z ,


([x] [y]) [z] = [x] ([y] [z]).
Cela resulte de la remarque precedente.


D
efinition V.4.4. Le monode ( /L , ) est le monode syntaxique de L.

On note simplement le morphisme canonique

: /L : w 7 [w].
Le resultat suivant fournit un moyen explicite pour rechercher le monode
syntaxique dun langage.
Th
eor`
eme V.4.5. Soient L un langage et w, w 0 deux mots sur .

On a w L w0 si et seulement si pour tout etat q de lautomate minimal de


L, L (q, w) = L (q, w0 ).
D
emonstration. Supposons quil existe dans lautomate minimal de L,

un etat tel que


L (q, w) 6= L (q, w0 ).

Puisque lautomate minimal est reduit (cf. proposition IV.3.10), il existe


un mot z tel que L (L (q, w), z) soit final et L (L (q, w0 ), z) ne le soit
pas (ou reciproquement, mais par souci de simplification, nous supposerons
etre dans un tel cas de figure). De plus, lautomate minimal est accessible.
Cela signifie quil existe un mot x tel que L (q0,L , x) = q. Schematiquement, nous avons la situation suivante reprise en figure V.10. Par
consequent, xwz L et xw 0 z 6 L. Ainsi, les deux mots w et w 0 ne sont pas
syntaxiquement equivalents.
Passons a` la reciproque. Si pour tout etat q de A L , on a L (q, w) =
L (q, w0 ), alors pour tout mot x ,
L (q0,L , xw) = (q0,L , xw0 )

et d`es lors, puisque lautomate minimal est deterministe, pour tout y ,


on a
L (q0,L , xwy) = L (q0,L , xw0 y).

V.4. Monode syntaxique

97

z
w
x

q0

q
w
z

Figure V.10. Situation dans lautomate minimal.

q0

w
Figure V.11. Situation dans lautomate minimal.
Schematiquement, on a la situation representee a` la figure V.11 Ainsi, pour
tous x, y ,
xwy L xw 0 y L.

Soit AL = (QL , q0,L , FL , , L ) lautomate minimal dun langage L. A


tout mot w , il correspond une unique fonction f w : QL QL definie
par
fw : QL QL : q 7 L (q, w).
Pour un langage L donne, on note

HL = {fw | w }.
Muni de loperation de composition de fonctions, H L est un monode ayant
id pour neutre. On a fww0 = fw0 fw car pour tout q,
fww0 (q) = q.ww 0 = (q.w).w 0 = fw0 (fw (q)).

Corollaire V.4.6. Lapplication

R : /L HL : [w] 7 fw
est un isomorphisme de monodes.
D
emonstration. Cela r
esulte directement du theor`eme precedent. En

effet, deux mots w et w 0 sont syntaxiquement equivalents si et seulement si


ils ont la meme action sur tous les etats de Q L , cest-`a-dire, si fw = fw0 .


Le theor`eme V.4.5 a ete enonce pour un langage L arbitraire. Dans le


cas dun langage regulier, on obtient un monode syntaxique fini.
egulier si et seulement si son monode
Corollaire V.4.7. Un langage L est r
syntaxique est fini.

98

Chapitre V. Quelques complements sur les langages reguliers

D
emonstration. Si lautomate minimal AL de L est fini, lensemble QL
des etats de AL poss`ede un nombre fini n delements. Le nombre de fonctions
de Q dans Q est au plus nn et par consequent, le monode syntaxique de L
poss`ede au plus nn elements. Pour la reciproque, au vu du theor`eme V.4.5,
si L (q0 , w) 6= L (q0 , w0 ), alors w 6L w0 . Par consequent, le nombre detats
de lautomate minimal de L est majore par le nombre de classes du monode
syntaxique de L. De l`a, si /L est fini, alors lautomate minimal de L est
fini et le langage L est regulier.


Le corollaire V.4.6 permet de calculer la table du monode syntaxique


dun langage regulier L.
Exemple V.4.8. Consid
erons une fois encore lautomate minimal du langage forme des mots ne contenant pas deux a consecutifs. Les fonctions de

b
1

a,b
2

Figure V.12. AFD acceptant les mots ne contenant pas aa.


HL sont donnees par
q
1
2
3

f (q) fa (q) fb (q) faa (q) fab (q) fba (q)


1
2
1
3
1
2
2
3
1
3
3
2
3
3
3
3
3
3

Cet ensemble aurait pu contenir au plus 3 3 = 27 fonctions. Pour verifier


quil ny a pas dautres applications dans H L , on peut construire de proche
en proche un graphe fini de la mani`ere suivante. Si Q L = {1, . . . , n}, alors
on initialise la construction avec un unique sommet correspondant au n-uple
detats (1, . . . , n). Ensuite, on applique les fonctions f , , a` chaque
etat nouvellement cree. Si (q1 , . . . , qn ) est un etat du graphe, alors on trace
un arc de label joignant ce sommet au sommet (f (q1 ), . . . , f (qn )). La
procedure sarrete lorsque plus aucun nouvel etat nest cree. Lapplication
de cette procedure donne le graphe de la figure V.13.
Deux mots w et w 0 sont syntaxiquement equivalents si la lecture de ces
deux mots depuis letat initial aboutit dans un meme etat. En effet, par
construction du graphe, cela signifie que f w = fw0 et donc que les deux
mots ont tous deux la meme action sur les etats de lautomate minimal. Par
exemple, abba L a et bb L b.

V.4. Monode syntaxique

99

b
b

(1,1,3)

(1,2,3)
a

(2,3,3)

b
a
a
b

(2,2,3)
b

(1,3,3)

a
(3,3,3)

a,b

Figure V.13. Graphe associe a` HL .


Si on note fw simplement w, on obtient la table du monode HL muni
de loperation de composition :

a a
b
b
aa aa
ab ab
ba ba

a b aa ab ba
a b aa ab ba
aa ab aa aa a
ba b aa b ba
aa aa aa aa aa
a ab aa ab a
aa b aa aa ba

Au vu de lisomorphisme donne dans le corollaire V.4.6, il sagit egalement


de la table du monode syntaxique de L pour laquelle w represente alors [w].
Nous allons considerer un second exemple. Ceci saverera particuli`erement utile pour illustrer les resultats de la section suivante.
Exemple V.4.9. Consid
erons le langage L forme des mots comprenant
un nombre pair de a et de b. Lautomate minimal de L est represente a` la
figure V.14. En effectuant les memes developpements que dans lexemple
precedent, on obtient la table de multiplication du monode syntaxique de
L:
a b ab
a b ab
a a ab b
b b ab a
ab ab b a
On sapercoit que chaque element est idempotent et que le monode syntaxique de L est en fait un groupe (puisque chaque element poss`ede un inverse,
a` savoir lui-meme). Ce groupe est isomorphe a` un sous-groupe de S 4 des
permutations a` 4 elements constitue des permutations suivantes,

 
 
 

1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
,
,
,
.
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1

100

Chapitre V. Quelques complements sur les langages reguliers

a
1

2
a

a
3

4
a

Figure V.14. Automate minimal de L = {w :| |w| a


|w|b 0 (mod 2)}.
5. Langages sans
etoile
Cette section met en lumi`ere une application du monode syntaxique.
En effet, letude de ce dernier permet de determiner aisement si un langage
est ou non sans etoile. Commencons donc par definir ce que lon entend
par langage sans etoile.
D
efinition V.5.1. Un langage r
egulier L est dit sans etoile sil peut

etre obtenu a` partir de langages finis (ou vides) en appliquant un nombre


fini de fois des operations dunion, dintersection, de concatenation et de
complementation (par rapport a` ).
En resume, on sinterdit dutiliser letoile de Kleene.
Remarque V.5.2. Il serait facile de d
efinir les expressions reguli`eres sans

etoile permettant de generer exactement les langages reguliers sans etoile. Il


suffit pour cela dadapter les r`egles de construction donnees a` la definition
I.3.1.
Exemple V.5.3. Soit = {a, b}. Par exemple, est sans
etoile car il

sobtient comme

\ .

Le langage L des mots sur ne contenant pas le facteur aa est aussi sans
etoile. En effet,
L = \ ( aa )
et nous avons vu que etait lui-meme sans etoile. Enfin, le langage (ab)
est aussi sans etoile car
(ab) = \ (b + a + aa + bb ).
Comme le montre ce dernier exemple, il peut etre assez difficile de determiner si un langage donner peut ou non etre mis sous une forme sans etoile.

V.5. Langages sans etoile

101

En particulier, comment pouvons-nous demontrer quun langage regulier


donne nest pas sans etoile ?
Nous allons voir que la theorie du monode syntaxique permet de donner
un algorithme efficace pour repondre a` cette question.
Les resultats suivants sont dapplication dans tout semi-groupe fini. Rappelons quun semi-groupe est un ensemble muni dune operation (binaire,
interne et partout definie) associative 8. Dans un semi-groupe S, un element
e est qualifie de neutre si
s S, s e = s = e s.
De meme, un element e est qualifie de zero si
s S, s e = e = e s.
Proposition V.5.4. Si un semi-groupe poss`
ede un neutre (resp. un zero),

alors celui-ci est unique.


D
emonstration. Cest trivial.


Th
eor`
eme V.5.5. Soit (S, ) un semi-groupe fini. Pour tout a S, il
existe des entiers positifs m et r tels que a, . . . , a m , . . . , am+r1 soient distincts et mais tels que am+r = am . De plus, la restriction de loperation a
`
lensemble Ca = {am , . . . , am+r1 } forme un groupe cyclique dordre r.
D
emonstration. Puisque S est fini, parmi a, a 2 , . . . , a#S+1 au moins deux

elements sont egaux. Soient m, r 1 tels que a m = am+r soit la premi`ere


repetition dun meme element dans la liste donnee ci-dessus. En particulier,
a, . . . , am1 , am , . . . , am+r1 sont deux a` deux distincts.

a
a

a2

m+1

am
a m+r1

Figure V.15. Indice et periode.


Il est clair que am+t = am+s si et seulement si t s (mod r). Ainsi,
pour tous i, j 0,
am+i am+j = am+k o`
u k m+i+j

(mod r).

Ceci montre que le produit de deux elements de C a appartient encore a` Ca


(i.e., Ca forme un sous-semi-groupe).
8Un monode est un semi-groupe poss
edant un neutre.

102

Chapitre V. Quelques complements sur les langages reguliers

Il nous reste a` verifier que Ca est en fait un groupe cyclique en montrant


quil est isomorphe a` (Zr , +). Soit
: Ca Zr : am+i 7 m + i

(mod r).

Puisque m, m + 1, . . . , m + r 1 sont r entiers consecutifs, il est clair que


est une bijection. Il reste a` verifier quil sagit dun homomorphisme. Dune
part,
(am+i am+j ) = (a2m+i+j ) = 2m + i + j (mod r)
et dautre part,

(am+i ) + (am+j ) = m + i + m + j

(mod r).


D
efinition V.5.6. Soient S un semi-groupe et a S. Lentier m (resp.
r) dont il est question dans le theor`eme V.5.5 est appele lindice (resp. la
periode) de lelement a.
Exemple V.5.7. Prenons comme semi-groupe S, le monode syntaxique

obtenu dans lexemple V.4.8. Si, une fois encore, on sautorise a` noter
[w] simplement w, on trouve les periodes suivantes pour les elements du
monode,
indice m periode r
2

=
1
1
a a2 = aa a3 = aa
2
1
b
b2 = b
1
1
aa aa2 = aa
1
1
1
1
ab ab2 = ab
2
ba ba = ba
1
1
En guise de comparaison, considerons cette fois, le monode syntaxique
donne dans lexemple V.4.9. On trouve,
2 =
a a2 =
a3 = a
2
b b =
b3 = b
ab ab2 = ab3 = ab

indice m periode r
1
1
1
2
1
2
1
2

On voit donc dans le premier exemple que tous les elements sont de periode
1, ce qui nest pas le cas du second exemple.
Avant denoncer le resultat suivant, rappelons quun groupe est trivial
sil est restreint au seul neutre. Si S est un semi-groupe sans neutre (i.e., si
S est un semi-groupe qui nest pas un monode), on introduit le monode S 1
o`
u S 1 = S {1} avec 1, un nouvel element nappartenant pas S. On etend
loperation de S comme suit,
s S, 1 s = s = s 1.

Si S est un monode, on pose par convention S 1 = S.

V.5. Langages sans etoile

103

Th
eor`
eme V.5.8. Soit (S, ) un semi-groupe fini. Les conditions suivantes
sont equivalentes.

(i) Les sous-groupes de S maximaux (pour linclusion) sont triviaux.


(ii) Tout element de S est de periode 1.
(iii) Il existe n > 0 tel que pour tout a S, a n = an+1 .
D
emonstration. (i) (ii). Supposons que les seuls sous-groupes de S

sont triviaux. Avec les notations du theor`eme precedent, pour tout a S,


Ca est trivial. Ceci signifie en particulier que la periode de a vaut 1.
(ii) (iii). Supposons a` present que tout element de S est de periode
1 et notons #S = n. Soit a S. Nous allons montrer que a n = an+1 .
Parmi a, a2 , . . . , an+1 , on trouve au moins deux fois le meme element. Par
consequent, lindice i de a est au plus n. Or par hypoth`ese, a est de periode
1. Par consequent, on obtient
ai = ai+1 = = an = an+1

avec i n.

(iii) (i). Soient G un sous-groupe de S et x, y deux elements quelconques de G (pas necessairement distincts). Il existe a, b, c, d G tels que
ax = y,

xb = y,

cy = x,

yd = x.

De l`a, on tire x = cy = cxb et donc x = cn xbn . Enfin, on obtient


y = xb = cn xbn+1 = cn xbn = x
et le groupe est donc trivial puisquil est restreint a` un seul element.


D
efinition V.5.9. Un semi-groupe satisfaisant les propri
etes du theor`eme
precedent est qualifie daperiodique.
Exemple V.5.10. Au vu de lexemple V.5.7, le monode syntaxique de
lexemple V.4.8 est aperiodique. On pourrait verifier quil ne contient que
des sous-groupes triviaux. En effet, la restriction du produit aux ensembles

{}, {b}, {aa}, {ab}, {ba}


en font des groupes restreints a` un unique element idempotent. Il est clair
que si s est un element idempotent dun semi-groupe S, alors {s} est un
sous-groupe (trivial) de S.
Par contre, le monode syntaxique de lexemple V.4.9 nest pas aperiodique. En effet, nous avions dej`a remarque quil sagissait dun groupe. En
outre, la restriction du produit a` lensemble {, a} est aussi un groupe (non
trivial).
Le theor`eme precedent nous fournit un algorithme pour decider si un
semi-groupe fini est aperiodique.
Test du caract`
ere ap
eriodique dun semi-groupe.
(1) Choisir un element quelconque a S et calculer lensemble a + de
ses puissances successives.
(2) Trois cas peuvent se presenter:

Pensez a
` la table de
Cayley dun groupe.

104

Chapitre V. Quelques complements sur les langages reguliers

I
I
I

La periode de a nest pas 1. Lalgorithme sach`eve, S nest pas


aperiodique.
La periode de a est 1 et S = a+ . Lalgorithme sach`eve, S est
aperiodique.
La periode de a est 1 et S 6= a+ . Remplacer S par S \ a+ et repeter
(1).

Nous pouvons a` present enoncer le theor`eme de Sch


utzenberger caracterisant les langages sans etoiles.
Th
eor`
eme V.5.11 (Sch
utzenberger). Un langage regulier est sans etoile

si et seulement son monode syntaxique est aperiodique.


La preuve de ce resultat sort du cadre introductif de ce cours. On pourra
par exemple consulter louvrage de Lawson ou de Perrin (cf. bibliographie).
Corollaire V.5.12. D
eterminer si un langage regulier est sans etoile est

un probl`eme decidable algorithmiquement.


D
emonstration. Cest imm
ediat. On dispose dun algorithme pour tester
si un semi-groupe est aperiodique et le monode syntaxique dun langage
regulier peut etre calcule algorithmiquement.


Exemple V.5.13. Au vu de lexemple V.5.7, le langage form


e des mots sur
{a, b} ne contenant pas le facteur aa est sans etoile. Par contre le langage
forme des mots contenant un nombre pair de a et un nombre pair de b ne lest
pas. (Comparez ces deux exemples avec le resultat annonce dans lexercice
V.6.16.)

6. Exercices
6.1. Transduction.
Exercice V.6.1. Supposons que les positions des lettres dun mot soient
comptees de gauche a` droite. Ainsi,

w = w 1 w n , wi
pour un mot w de longueur n. Construire un transducteur T qui transforme
chaque a se trouvant en position de la forme 3i (resp. 3i + 1, 3i + 2) en abc
(resp. bac, aac) et chaque b se trouvant en position de la forme 3i (resp.
3i + 1, 3i + 2) en bca (resp. bac, bcb), i N. Donner une expression reguli`ere
du langage
T (a b ).
6.2. Probl`
emes de d
enombrement.
Exercice V.6.2. Soit L un langage. On d
enote par L (n), le nombre

de mots de longueur n appartenant a` L. Si $ est une lettre nappartenant


pas a` , verifier que
#[({$} tt L) ( {$})n ] = n L (n 1),

n 1.

V.6. Exercices

105

Utiliser ce resultat pour construire un langage regulier L tel que


L (n) = n2 .
Meme question avec cette fois, L (n) = n3 .
Exercice V.6.3. On consid`
ere le langage L forme des mots sur {a, b} ayant
un nombre impair de b.
I
I
I
I

Quel est lautomate minimal de L ?


Donner la matrice dadjacence de cet automate.
En deduire une relation de recurrence lineaire pour L (n).
Trouver une formule close pour L (n).

ere le langage L forme des mots sur {a, b, c}


Exercice V.6.4. On consid`

ne commencant pas par c et ne contenant pas le facteur ac.


I
I

Quel est lautomate minimal de L ?


Soit la serie generatrice
X
F (X) =
L (n) X n .
n0

Montrer que

1X
.
3X + 1
En deduire une formule close pour L (n).
F (X) =

X2

ere le langage L = a b .
Exercice V.6.5. On consid`
I
I
I
I

Quel est lautomate minimal de L ?


Donner la matrice dadjacence de cet automate.
En deduire une relation de recurrence lineaire pour L (n).
Montrer que la serie generatrice de L (n) est de la forme
1
F (X) =
(1 X)2

En developpant en serie de puissances, en conclure que L (n) =


n + 1.

Exercice V.6.6. On consid`


ere lalphabet = {a, b, c} et le langage regulier

sur forme des mots ne contenant pas le facteur aa. Ce langage est accepte par lautomate fini deterministe A = ({1, 2, 3}, 1, {1, 2}, , ) o`
u la
fonction de transition : {1, 2, 3} {1, 2, 3} est donnee par

1
2
3

I
I

a
2
3
3

b c
1 1
1 1
3 3.

Donner une relation de recurrence lineaire pour la suite L (n) =


#(L n ) comptant le nombre de mots de longueur n dans L.
Par une methode au choix, en deduire une formule close pour L (n).

106

Chapitre V. Quelques complements sur les langages reguliers

6.3. Monode syntaxique et langages sans


etoile.
Exercice V.6.7. Soit L un langage. D
emontrer que L est une union de

classes dequivalence pour la congruence syntaxique L .


esentant de chacune des
Exercice V.6.8. Soit L = a b . Donner un repr
classes dequivalence du monode syntaxique de L. On choisira, si possible,
un representant de longueur minimale dans chaque classe. Construire la
table de multiplication de ce monode. Le monode syntaxique est-il aperiodique?
Exercice V.6.9. M
eme question avec le langage L forme des mots sur
{a, b} comprenant un nombre pair de a. Sagit-il dun langage sans etoile ?

eme question avec le langage L forme des mots acExercice V.6.10. M


ceptes par lautomate dessine a` la figure V.16

b
1

a,b
a

a
a

4
b

5
b

Figure V.16. Un AFD dont on recherche le monode syntaxique du langage associe.


Exercice V.6.11. M
eme question avec le langage L forme des mots sur

{a, b} qui sont formes exclusivement de b en nombre impair ou qui comprennent un nombre de a qui est multiple strictement positif de 3. Montrer que
le monode syntaxique se decompose en deux sous-groupes cycliques dont on
donnera a` chaque fois un generateur.
Exercice V.6.12. On consid`
ere le langage accepte par lautomate de la

figure V.17. Apr`es avoir verifier que cet automate etait minimal, montrer
que le monode syntaxique de ce langage est isomorphe a` S 3 (le groupe des
permutations de {1, 2, 3}).
Exercice V.6.13. Pour les automates rep
eresentes a` la figure V.18, veri-

fier quils sont minimaux. Calculer la table de multiplication du monode


syntaxique et determiner dans chaque cas sil sagit dun langage sans etoile.
Exercice V.6.14. Pour le langage accept
e par lautomate de la figure V.19,

demontrer que

V.6. Exercices

107

b
b

a
a

b
b

a
a

Figure V.17. Un AFD dont on recherche le monode syntaxique.

6
a

a
7

a,b

2
a

Figure V.18. Deux AFD.

b
3

b
1

2
a

a
b

a
4
a,b
Figure V.19. Un AFD.

aba a, bab b, b3 a3 , a4 a3 , a3 b a3 , a2 ba a2 , ab3 a3 , ba3 a3 ,


ba2 b ab2 a, b2 ab b2 , a2 b2 a a2 b, a2 b3 a3 , ab2 a2 ba2 , ab2 ab ab2

et

b2 a3 a3 , b2 a2 b b2 a.

En deduire que a3 est un zero et que ces 16 relations peuvent se simplifer en


a3 b3 , aba a, bab b, ba2 b ab2 a, a2 b2 a a2 b, ab2 a2 ba2

108

Chapitre V. Quelques complements sur les langages reguliers

pour decrire compl`etement le monode syntaxique. Ainsi, ces 6 relations


donnent une representation bien plus succinte que la table de multiplication
du monode.
D
efinition V.6.15. Un AFD A est sans permutation sil nexiste aucun

mot w realisant une permutation non triviale dun sous ensemble detats de
A, i.e., sil nexiste pas de mot w et de sous-ensemble detats {q 1 , . . . , qr }
tels que
q1 .w = q1 , . . . , qr .w = qr
o`
u est une permutation de {1, . . . , r} distincte de lidentite.
Exercice V.6.16. D
emontrer quun langage regulier est sans etoile si et

seulement si son automate minimal est sans permutation.

CHAPITRE VI

Introduction aux langages alg


ebriques
Les chapitres precedents nous ont donnes un apercu assez complet des
langages reguliers et de leurs principales proprietes. En particulier, nous
avons constate, et ce a` plusieurs reprises, que des langages comme {a n bn |
n N}, pourtant relativement simples dun point de vue syntaxique,
netaient pas reguliers. Dans les pages qui suivent, nous allons presenter
une famille de langages qui sont generes par des methodes plus riches que
les expressions reguli`eres. Plus precisement, nous allons introduire la notion
de grammaire hors contexte. Un langage genere par une telle grammaire
sera dit algebrique (ou hors contexte). Historiquement, ces langages ont ete
introduits1 par N. Chomsky dans le but initial de formaliser les proprietes
grammaticales de langues naturelles comme langlais ou le francais. Il sest
avere par la suite que ces notions etaient particuli`erement bien adaptees a`
la syntaxe des langages de programmation.
1. Premi`
eres d
efinitions
Commencons par un exemple introductif presentant le concept de grammaire.
Exemple VI.1.1. Pour construire une phrase grammaticalement correcte
en francais, on peut proceder comme suit

PHRASE
SUJET
VERBE
COMPLEMENT
ARTICLE
NOM
ADJECTIF

SUJET VERBE COMPLEMENT


LUDOVIC | MICHEL | NICOLAS | THIERRY
VOIT | MANGE | PORTE
ARTICLE NOM ADJECTIF
UN | LE
LIVRE | PLAT | WAGON
BLEU | ROUGE | VERT

Ainsi, sans vouloir formaliser plus que necessaire, avec les r`egles donnees ci-dessus, on peut construire au moyen de substitutions successives des
phrases comme
NICOLAS PORTE UN LIVRE VERT
ou
MICHEL MANGE LE WAGON BLEU.
1N. Chomsky, On certain formal properties of grammars, Inform. and Control, 137

167, 1959.
109

110

Chapitre VI. Introduction aux langages algebriques

On peut formaliser cet exemple de la mani`ere suivante.


D
efinition VI.1.2. Soient V et deux alphabets finis (suppos
es disjoints).

Une grammaire hors contexte, ou grammaire algebrique, est la donnee dun


4-uple
G = (V, , P, S)
o`
u P V (V ) est un ensemble fini, appele lensemble des r`egles de
derivation (ou productions) de G et S V est le symbole initial de G. Les
elements de lalphabet V sont appeles variables (ou symboles non terminaux)
et les elements de lalphabet sont les symboles terminaux. Nous prendrons
generalement la convention de representer les symboles non terminaux par
des lettres majuscules et les symboles terminaux par des minuscules.
Soient A V une variable, w (V ) un mot et (A, w) P une r`egle
de derivation. On dit que A (resp. w) est le premier (resp. second) membre
de la production (A, w). Si A V est une variable et (A, w 1 ), . . . , (A, wn )
P sont des productions ayant A pour premier membre et o`
u w 1 , . . . , wn

(V ) , alors on note
A w 1 | w2 | | w n .

Si w peut secrire xAy avec A V et x, y (V ) , alors on note


w G z
lorsque z = xuy avec (A, u) P . On dit alors que z est obtenu grace a` une
derivation de longueur 1. En dautres termes, on a remplace dans w une
occurence dun non terminal A par le second membre u dune production
A u de G ayant A comme premier membre. Si G est sous-entendu, on
sautorise a` ecrire simplement au lieu de G . On note la fermeture
reflexive et transitive de . Ainsi, w z si z = w ou sil existe des mots
w1 , . . . , wn (V ) , n 0, tels que
w w1 w2 wn z.
Dans ce dernier cas, on dit que z est obtenu a` partir de w par une derivation
de longueur n + 1. Enfin, le langage genere par G est lensemble des mots
de qui sobtiennent par derivation a` partir du symbole initial S, i.e.,
L(G) = {w | S w}.

Un langage L est algebrique ou hors contexte sil existe une grammaire


hors contexte G = (V, , P, S) telle que L = L(G). Enfin, deux grammaires
G et H sont equivalentes si elles gen`erent le meme langage, i.e., si L(G) =
L(H).
Exemple VI.1.3. Soit la grammaire hors contexte G = (V, , P, S) o`
u
V = {S, A}, = {a, b}, et les productions de G donnees par
S AA
A AAA | bA | Ab | a .

VI.1. Premi`eres definitions

111

Le mot ababaa appartient a` L(G) car


S AA aA aAAA

abAAA abaAA ababAA ababaA ababaa.

A chaque etape, nous avons souligne le symbole non terminal substitue.


Ainsi, le mot ababaa est obtenu a` partir de S par une derivation de longueur
8. La suite des r`egles appliquees donnant lieu a` un mot donne nest pas
necessairement unique. En effet, on peut generer le mot ababaa a` partir du
symbole initial S de diverses facons :
S AA
S AA
S AA
AAAA
Aa
aA
aAAA
AAAa
aAAA
abAAA
AAbAa
aAAa
AAbaa
abAAa
abaAA
ababAA
AbAbaa
abAbAa
ababaA
Ababaa
ababAa
ababaa
ababaa
ababaa
Au vu de cet exemple, nous introduisons la notion de derivation la plus
a` gauche.
D
efinition VI.1.4. Soient G = (V, , P, S) une grammaire hors contexte,

w L(G) et
S x 1 A1 y1 x 2 A2 y2 x n An yn w

une derivation de longueur n + 1 telle que x i , Ai V et yi (V ) ,


pour tout i {1, . . . , n}. Alors, cette derivation est une derivation a
` gauche.
Cela signifie qu`a chaque etape, on a substitue la variable la plus a` gauche.
On definit de mani`ere semblable une derivation a
` droite. Comme le montre
une fois encore lexemple precedent, pour une grammaire G fixee, un mot
appartenant a` L(G) peut avoir plus dune derivation a` gauche 2. Il est aussi
clair que si un mot appartient a` L(G), il poss`ede au moins une derivation a`
gauche. Si tout mot de L(G) poss`ede exactement une derivation a` gauche,
alors la grammaire G est qualifiee de non ambigue. Un langage algebrique
est non ambigu sil existe une grammaire non ambigue qui le gen`ere. Nous
verrons a` la section 3 en quoi le caract`ere non ambigu est important dun
point de vue pratique3.

2On peut montrer que le nombre de d


erivations a
` gauche dun mot de L(G) est egal au

nombre de derivations a
` droite permettant dobtenir ce meme mot. Ainsi, il est equivalent
de definir une notion, comme le caract`ere non ambigu, sur le nombre de derivations a
`
gauche ou a
` droite.
3Pour plus dinformation a
` propos de lutilisation des grammaires dans lecriture
dun compilateur, voir par exemple la page http://dinosaur.compilertools.net/ o`
u
lon presente les outils Lex, Yacc, Flex et Bison

112

Chapitre VI. Introduction aux langages algebriques

Considerons encore deux autres exemples de grammaires.


Exemple VI.1.5. La grammaire ci-dessous g
en`ere exactement le langage

| n N}. Considerons G = (V, , P, S) o`


u V = {S}, = {a, b}, et
les productions de G donnees par
{an bn

S aSb | .

Ce langage est trivialement non ambigu. En effet, pour chaque mot w du


langage L(G) il existe une seule suite de r`egles de G permettant dobtenir
w a` partir de S.
Exemple VI.1.6 (Langage de Dyck). On consid`
ere lalphabet

= {a1 , a1 , . . . , an , an },
la grammaire G = (V, , P, S) o`
u V = {S, T } et les productions de P donnees par
S ST |
T a 1 S a1 | | a n S an .
Le langage genere par la grammaire G sappelle le n-i`eme langage de Dyck
et se note Dn . Il est facile de voir quil sagit exactement du langage forme
des mots bien parenth`eses lorsquon dispose de n niveaux de parenth`esage
(la j-i`eme parenth`ese ouvrante etant symbolisee par a j et la j-i`eme parenth`ese fermante correspondante par a j ). En guise dillustration, considerons
lalphabet = {( ), [ ]} forme de parenth`eses et de crochets et les productions
S ST |
T ( S ) | [ S ].
On obtient par exemple les mots suivants
S ST S(S) (S) ( ),
S ST S(S) ST (S) ST ( )

ST ( ) S[S]( ) S[S]( ) S[ ]( ) [ ]( ),

S ST S(S) S(ST ) S(S(S))

S(S(ST )) S(S(ST T )) ((( )( ))).

Noter que, dans un langage de Dyck, il ny a pas de preseance sur lordre des
differentes parenth`eses. Ainsi, les mots [( )] et ([ ]) sont tous deux valides.
Dans le cas de lalphabet = {a, a}, on peut encore montrer quun mot
w appartient au premier langage de Dyck D 1 si et seulement si les deux
conditions suivantes sont satisfaites
I
I

pour tout i {1, . . . , n}, |w|a = |w|a


pour tout prefixe u de w, |u|a |u|a .

VI.2. Arbres danalyse

113

2. Arbres danalyse
Dans cette section, nous allons montrer qu`a une derivation correspond
un arbre, appele arbre danalyse, et reciproquement, a` tout arbre danalyse
correspond au moins une derivation. Nous supposerons 4 quaucun second
membre des productions des grammaires rencontrees nest egal a` .
Pour rappel, en theorie des graphes, un arbre est un graphe connexe
sans cycle. Par commodite, nous allons preferer une definition recursive des
arbres. Soit E, un ensemble fini dont les elements sont appeles noeuds. Les
arbres de hauteur 0 sont les elements e de E. On les note (e, ) et e est
la racine de larbre. Si e E et A1 , . . . , An sont des arbres respectivement
de hauteur hi et de racine ei , i = 1, . . . , n, alors, en connectant e aux differents ei , on definit (e, (A1 , . . . , An )) comme etant un arbre de racine e, de
hauteur 1 + supi hi et de sous-arbres A1 , . . . , An . Dans cette definition, le nuple (A1 , . . . , An ) est ordonne. Ainsi, si est une permutation distincte de
lidentite, (e, (A1 , . . . , An )) 6= (e, (A(1) , . . . , A(n) )). On dit que les noeuds
e1 , . . . , en sont les fils de e (ou que e est le p`ere des e i ). Si f E appartient
a` un des sous-arbres Ai , alors f est un descendant de e (ou e est un ancetre
de f ). En particulier, la racine dun arbre de hauteur 0 na pas de fils (ce
qui explique la notation (e, )). Un arbre de racine e ayant trois sous-arbres
A1 , A2 , A3 est represente schematiquement a` la figure VI.1. La hauteur de

e2

e1

e3

A2
A3
A

Figure VI.1. Un arbre.


larbre A (resp. A1 , A2 , A3 ) est 5 (resp. 4, 2, 3).
D
efinition VI.2.1. Soit G = (V, , P, S) une grammaire hors contexte.

Pour tout A V , (A, ) est un arbre danalyse de G. Si A A 1 An


est une production de G, Ai V , et si A1 , . . . , An sont des arbres
danalyse de G de racine respective A 1 , . . . , An , alors (A, (A1 , . . . , An )) est
encore un arbre danalyse de G. Cette definition est recursive et permet de
construire de proche en proche5 les arbres danalyse de G.
4Nous verrons plus tard quil est toujours possible de se ramener a
` une telle situation.
5par hauteur croissante.

114

Chapitre VI. Introduction aux langages algebriques

Exemple VI.2.2. Poursuivons lexemple VI.1.3. Voici quelques arbres


danalyse de G representes a` la figure VI.2.

S
A

AAA

a
S

S
a

A
A

A
b

b
a

Figure VI.2. Des arbres danalyse.


D
efinition VI.2.3. Soit A un arbre danalyse de G. Le fruit de A, not
e

F(A), est un mot defini recursivement. Si larbre est de hauteur nulle, i.e.,
si A = (B, ), B V , alors F(A) = B. Sinon, il existe des arbres
danalyse A1 , . . . , An tels que A = (B, (A1 , . . . , An )). Dans ce cas, on pose
F(A) = F(A1 ) F(An ).
Loperation envisagee ici est bien evidemment la concatenation des fruits
respectifs des differents sous-arbres.
esentes a` la
Exemple VI.2.4. Si on reprend les arbres danalyse de G repr
figure VI.2, les fruits de ces arbres sont respectivement
A, S, a, AA, AAA, a, Ab, aab.
Il est clair qu`a une derivation correspond un arbre danalyse. On construit cet arbre de proche en proche a` partir de larbre danalyse (S, ). A
chaque fois quune variable est substituee, on greffe le sous-arbre correspondant a` la r`egle qui a ete appliquee. Considerons un exemple.
Exemple VI.2.5. Poursuivons lexemple VI.1.3. Nous avions obtenu la

derivation suivante du mot ababaa.


S AA aA aAAA

abAAA abaAA ababAA ababaA ababaa.

Pour chacune des productions considerees, on obtient de proche en proche


larbre danalyse represente a` la figure VI.3. Lorsquune production est
appliquee a` une variable donnee, on ajoute le sous-arbre correspondant a`
larbre danalyse dej`a obtenu. A chaque etape, le fruit de larbre est modifie
en consequence pour obtenir finalement un arbre de racine S et de fruit
ababaa.

VI.2. Arbres danalyse

115

S
A

a
S

A
a

b A

A
A

b A b A

b A
a

A
a

A
A

b A b A
a

A
A

b A b A a
a

Figure VI.3. Arbres danalyse provenant de derivations.


Reciproquement, a` un arbre danalyse de G de sommet S et de fruit w
appartenant a` , il correspond6 au moins une suite de r`egles produisant
w a` partir de S. Dans cet arbre, lorsque deux symboles non terminaux se
trouvent au meme niveau7, il nest pas possible de savoir quelle r`egle de
derivation est appliquee avant quelle autre. Par consequent, il ny a pas
unicite dans lordre dapplication des r`egles de la grammaire. Par exemple,
le dernier arbre de derivation obtenu a` la figure VI.3 et ayant ababaa pour
6Cette correspondance existe pour tout arbre danalyse, pas seulement ceux de racine

S et de fruit terminal. En effet, a


` tout arbre de racine A V et fruit w (V ) , il
correspond une suite de r`egles produisant w a
` partir de A.
7Dans un arbre, le niveau dun noeud est la longueur du chemin menant de la racine
a
` ce noeud.

116

Chapitre VI. Introduction aux langages algebriques

fruit correspond egalement a` la suite de r`egles


S AA AAAA AAbAA AAbAa

AAbaa aAbaa abAbaa ababaa.

Neanmoins, a` un arbre danalyse donne, il correspond une seule derivation a`


gauche. Cela revient a` parcourir larbre (de mani`ere recursive) comme suit
I
I

Si larbre est reduit a` la racine fin du parcours.


Sinon, A = (B, (A1 , . . . , An )) et parcourir, dans lordre, les sousarbres A1 , . . . , An .

Le parcours P dans larbre fournit la suite de r`egles a` appliquer pour obtenir


la derivation a` gauche.
Exemple VI.2.6. Consid
erons larbre represente a` la figure VI.4. A cet

S
A

b A

b A

b A
a

Figure VI.4. Un arbre danalyse.


arbre correspond lunique derivation a` gauche
S AA AAAA bAAAA baAAA baaAA baabAA
baabbAA babbaA babbaa.

Remarque VI.2.7. Une adaptation imm


ediate permet dobtenir la deriva-

tion a` droite associee a` un arbre. Si A = (B, (A 1 , . . . , An )) nest pas reduit


a` une racine, parcourir, dans lordre, les sous-arbres A n , . . . , A1 .
3. Une illustration de lambiguit
e
Considerons la grammaire G = (N, , P, E) o`
u N = {E, N, C} (on
utilise ici les lettres E, N et C comme dans Expression, Nombre et Chiffre),
= {+, , , /, (, ), 0, 1, . . . , 9}
et o`
u les r`egles sont

VI.3. Une illustration de lambiguite

117

E (E) | E + E | E E | E E | E/E | N
N C | NC
C 0 | 1 | | 9.
Cette grammaire gen`ere des expressions arithmetiques elementaires (on sautorise de plus, pour ne pas alourdir lexpose, a` ecrire des nombres commencant par 0).
Considerons le mot 1 2 + 3 appartenant au langage genere par cette
grammaire. Ce mot est obtenu par la derivation a` gauche
E E +E E E +E N E +E C E +E 1E +E

1N +E 1C +E 12+E 12+N 12+C


1 2 + 3.

A cette derivation correspond larbre danalyse represente a` la figure VI.5.


Le mot 1 2 + 3 est aussi obtenu par la derivation a` gauche

E
E
E

C
1

N
C
3

Figure VI.5. Un arbre danalyse pour 1 2 + 3.


E E E N E C E 1E 1E +E

1N +E 1C +E 12+E 12+N 12+C

1 2 + 3.

A cette derivation correspond larbre danalyse represente a` la figure VI.6.


Lorsquon dispose dun arbre danalyse 8 (que ce soit celui de la figure VI.5 ou
celui de la figure VI.6), le parcours recursif P de cet arbre o`
u lon consid`ere a`
chaque fois, en premier lieu, le sous-arbre le plus a` gauche, permet devaluer
8En g
eneral, lors de la phase de compilation dun programme, ou dans le cas plus
simple qui nous interesse ici, linterpretation dune formule, la premi`ere etape confiee a
`
lanalyseur est de determiner un arbre danalyse. Une fois larbre danalyse connu, on
peut specifier le sens a
` donner aux differents noeuds. La semantique est particuli`erement
simple dans le cadre decrit ici puisquil ne sagit que dexpressions arithmetiques. Pour
un programme a
` compiler, on pourrait imaginer devoir realiser lallocation de memoire,
ladressage de variables, etc...

118

Chapitre VI. Introduction aux langages algebriques

E
E

N
1

C
2

Figure VI.6. Un arbre danalyse pour 1 2 + 3.


les expressions envisagees. Si on consid`ere larbre de la figure VI.5, le sousarbre de gauche a pour valeur 1 2, celui de droite 3 et donc, la valeur
assignee a` larbre est
(1 2) + 3 = 2.

Par contre, si on consid`ere a` present larbre de la figure VI.6, le sous-arbre


de gauche a pour valeur 1 et celui de droite 2+3. D`es lors, la valeur assignee
est cette fois
1 (2 + 3) = 4.

Remarquons quil sagit une fois encore dune derivation a` gauche,


E E E 1 E 1 E + E 1 2 + 3.

Ainsi, suivant larbre choisi, les groupements de termes sont realises en partant de la gauche ou de la droite et la valeur assignee nest pas necessairement
la valeur attendue.
Si les operateurs nont pas la meme preseance, la grammaire proposee
peut regrouper un operateur de faible preseance avant un operateur de
preseance plus elevee. En effet, considerons le mot 2+35. A ce mot, il correspond les arbres danalyse representes a` la figure VI.7 . Ainsi, levaluation
de larbre de gauche fournit la valeur (2 + 3) 5 alors que pour larbre de
droite, on trouve 2 + (3 5).
Cet exemple montre bien le probl`eme que pose en pratique lutilisation
dune grammaire ambigue. En effet, le compilateur ou linterpreteur 9 na
pas les moyens de determiner quel arbre danalyse permet dassigner une
valeur correcte a` lexpression envisagee. Ainsi, lors de la specification dun
compilateur, il faut veiller a` employer une grammaire non ambigue.
Revenons sur le probl`eme des expressions arithmetiques. Lecueil principal de la grammaire presentee ci-dessus est quelle ne tient pas compte de
9Le r
ole dun compilateur est de transformer un code source en un autre code.
Par exemple, transformer un texte codant un programme ecrit en C en un code machine
intelligible par le processeur ou le syst`eme dexploitation ou encore, transformer un texte
comprenant des instructions LaTeX en un fichier .dvi affichable a
` lecran.

VI.3. Une illustration de lambiguite

119

E
E

E
E

5
2

C
5

Figure VI.7. Deux arbres danalyse pour 2 + 3 5.


lordre de preseance des operations a` effectuer. Pour y remedier et obtenir
une grammaire hors contexte non ambigue, nous proposons (sans preuve) la
grammaire suivante. Les symboles non terminaux sont E, T, F, N, C o`
u T et
F sont employes pour rappeler les mots Terme et Facteur. Les r`egles sont
E E+T | ET | T
T T F | T /F | F
F (E) | N
N C | NC
C 0 | 1 | | 9.
La distinction faite ici entre expressions, termes et facteurs force le groupement correct des operateurs a` differents niveaux de preseance. La figure VI.8
reprend les arbres danalyse des expressions 1 2 + 3 et 2 + 3 5.

E
E

N
C
5

1
Figure VI.8. Arbres danalyse de 1 2 + 3 et 2 + 3 5
pour une grammaire non ambigue.

120

Chapitre VI. Introduction aux langages algebriques

Signalons pour conclure, quon peut aisement enrichir cette derni`ere


grammaire dautres operateurs comme lexponentiation ou encore les fonctions trigonometriques, etc. . .
4. Grammaires et langages r
eguliers
Le but de cette section est de montrer que lensemble des langages
reguliers est un sous-ensemble (strict 10) de lensemble des langages algebriques.
Pour ce faire, nous allons utiliser la proposition I.3.6 en montrant que la
famille des langages algebriques contient le langage vide, les langages {},
, et est stable pour lunion, la concatenation et letoile de Kleene.
u lunique r`egle est
Remarque VI.4.1. La grammaire G = ({S}, , P, S) o`
S , , gen`ere le langage {}. De meme, si P = , le langage genere
est .
ebriques est stable pour
Proposition VI.4.2. Lensemble des langages alg
lunion.
D
emonstration. Soit G1 = (V1 , , P1 , S1 ) (resp. G2 = (V2 , , P2 , S2 ))
une grammaire generant L1 (resp. L2 ). On peut supposer que V1 V2 =
et que S 6 V1 V2 . La grammaire G = ({S} V1 V2 , , P, S) o`
u P contient
P1 P2 et la r`egle
S S 1 | S2 ,

gen`ere exactement L1 L2 . Les justifications sont laissees au lecteur a` titre


dexercice.

Proposition VI.4.3. Lensemble des langages alg


ebriques est stable pour

la concatenation.
D
emonstration. Avec les m
emes notations que dans la preuve precedente,

il suffit de considerer la r`egle supplementaire


S S 1 S2
pour generer le langage L1 L2 .


Proposition VI.4.4. Lensemble des langages alg


ebriques est stable pour
letoile de Kleene.
D
emonstration. Encore une fois en utilisant les m
emes notations, il suffit
de considerer la grammaire G = ({S} V 1 , , P, S) o`
u P contient P1 et la
r`egle supplementaire
S SS1 |

pour generer le langage L1 .

10Nous savons d
ej`
a que {a b | n N} est algebrique et non regulier.
n n

VI.4. Grammaires et langages reguliers

121

Corollaire VI.4.5. Lensemble des langages r


eguliers sur un alphabet fini
est un sous-ensemble de lensemble des langages algebriques.
D
emonstration. Cela r
esulte directement de la remarque VI.4.1, des trois
propositions precedentes et de la proposition I.3.6.


Il est possible de particulariser les grammaires hors contexte en specifiant


la forme des seconds membres de leurs productions. On peut meme specifier des grammaires generant exactement les langages reguliers. De telles
grammaires sont appelees grammaires reguli`eres.
D
efinition VI.4.6. Une grammaire hors contexte G = (V, , P, S) est

reguli`ere (`
a gauche) si toute production de G poss`ede une des trois formes
suivantes :
I
I
I

Aa
A Ba
A

o`
u A, B appartiennent a` V et a a` . De mani`ere equivalente, on se convainc
facilement11 quune grammaire est reguli`ere a` gauche si les seconds membres
de ses productions appartiennent tous a` V .
Une grammaire hors contexte est reguli`ere (`
a droite) si toute production
de G poss`ede une des trois formes suivantes :
I
I
I

Aa
A aB
A .

De meme, une grammaire est reguli`ere a` droite si les seconds membres de


ses productions appartiennent tous a` V .
Exemple VI.4.7. Soit la grammaire G = (V, , P, S) o`
u V = {S, A, B},
= {a, b} et o`
u les productions sont
S aB |
B bS | bA
A aA | .
Il est facile de voir que le langage genere par G est exactement

{} (ab) ab(a)
qui est regulier.
Nous donnons a` titre indicatif et sans demonstration le resultat suivant.
egulier si et seulement si il est genere
Proposition VI.4.8. Un langage est r
par une grammaire reguli`ere a
` gauche (resp. a
` droite).
11Par exemple, on peut remplacer une r`
egle de la forme A Bab par les r`egles

A B 0 b et B 0 Ba.

122

Chapitre VI. Introduction aux langages algebriques

Remarque VI.4.9. Signalons que les grammaires r


eguli`eres sont des cas
particuliers de grammaire dont les seconds membres des productions appartiennent tous a` V , i.e., les seconds membres contiennent au
plus une variable. Les grammaires possedant une telle propriete sont dites
lineaires.

5. A propos de la hi
erarchie de Chomsky
Dans ce cours, nous nous limitons volontairement a` letude des langages reguliers et des langages algebriques. A titre indicatif, nous presentons dautres types de grammaires plus generales permettant dobtenir de
nouvelles classes plus larges de langages. Ces differents types ayant ete introduits par Noam Chomsky, il est de coutume de parler de la hierarchie de
Chomsky.
D
efinition VI.5.1. Une grammaire G = (V, , P, S) de type 0, ou gram-

maire non restrictive, est la forme la plus generale de grammaire. Les alphabets V et et le symbole initial S sont definis comme dans le cas des
grammaires hors contexte. Une production de la forme u v precise quune
occurence du mot u 6= peut etre remplacee par v, avec u, v (V ) .
Remarque VI.5.2. Les grammaires hors contexte sont donc des cas particuliers de grammaire non restrictive. En effet, dans une grammaire hors
contexte, le premier membre des r`egles est reduit a` des mots dune lettre sur
lalphabet V .
Exemple VI.5.3. La grammaire non restrictive G = (V, , P, S) telle que
V = {S, A, C}, = {a, b, c} et dont les r`egles sont donnees par
S aAbc |
A aAbC |
Cb bC
Cc cc
n
n
n
gen`ere le langage {a b c | n N}. En effet,

aAbc aaAbCbc a(a)i A(bC)i bc a(a)i (bC)i bc = (a)i+1 b(Cb)i c

(a)i+1 (b)i+1 C i c (a)i+1 (b)i+1 (c)i+1 .

Remarque VI.5.4. On peut montrer quun langage L est g


enere par une

grammaire non restrictive si et seulement si L est recursivement enumerable 12


(i.e., accepte par une machine de Turing).
Dans la hierarchie de Chomsky, entre les grammaires hors contexte et
les grammaires non restrictives, il existe encore un type de grammaire.
D
efinition VI.5.5. Une grammaire non restrictive G = (V, , P, S) est de
type 1, aussi appelee grammaire dependant du contexte [Context-sensitive
grammar], si toutes les productions u v de G satisfont
12cf. le cours de calculabilit
e.

VI.5. A propos de la hierarchie de Chomsky

I
I

123

u, v (V ) \ {}
|u| |v|.

Si une grammaire satisfait cette derni`ere condition, on parle parfois de grammaire non contractante ou monotone car la longueur des mots produits crot
a` chaque application dune nouvelle r`egle.
Remarque VI.5.6. Une d
efinition equivalente de grammaire dependant
du contexte G = (V, , P, S) est de specifier les productions de P sous la
forme
N v

o`
u , (V ) , N V , v (V ) \ {}. De cette facon, on met
mieux en evidence le contexte dans lequel se trouve la variable N qui peut
avoir des effets differents suivant les elements qui lentourent. On pourrait
par exemple imaginer deux r`egles distinctes
1 N 1 1 v1 1 et 2 N 2 2 v2 2
avec v1 6= v2 si (1 , 1 ) 6= (2 , 2 ).
esentee dans lexemple VI.5.3 nest pas
Exemple VI.5.7. La grammaire pr
monotone a` cause des productions S et A . Il est facile de verifier
que la grammaire suivante gen`ere encore le meme langage,
S aAbc | abc
A aAbC | abC
Cb bC
Cc cc.
Cette derni`ere est bien une grammaire monotone dependant du contexte.
Remarque VI.5.8. Une fois encore, on peut montrer que tout langage

genere par une grammaire dependant du contexte est recursif 13 (i.e., decide
par une machine de Turing). Plus precisement, les langages generes par une
grammaire dependant du contexte sont exactement les langages decides par
les machines de Turing dont la memoire disponible est bornee de mani`ere
lineaire par la taille des donnees. En dautres termes, on ne sautorise pas un
ruban de longueur arbitraire mais a` chaque execution, la longueur du ruban
disponible est proportionnelle a` la taille des donnees fournies a` la machine
de Turing.
Le tableau suivant recapitule les divers faits enonces dans cette section.
13cf. le cours de calculabilit
e.

124

Chapitre VI. Introduction aux langages algebriques

generateur

langage

accepteur

0 grammaire non restrictive


1
2
3
tes

recursivement
machine de Turing
enumerable
grammaire dependant du contexte dependant du contexte machine de Turing
a` memoire lineaire
grammaire hors contexte
hors contexte
automates a` pile
expression reguli`ere
regulier
AFD
Les automates a` pile, accepteurs des langages algebriques, seront presendans une prochaine section.
Remarque VI.5.9. Au vu du tableau pr
ecedent, on dispose des inclusions

suivantes
Reg Lin Alg DP RE

o`
u les differentes abreviations designent respectivement lensemble des langages reguliers, lineaires (cf. remarque VI.4.9), algebriques, dependants du
contexte et recursivement enumerables.
Remarque VI.5.10. Le lecteur attentif pourrait
emettre une objection

quant a` la definition de grammaire dependant du contexte o`


u lon interdit
la production du symbole , alors que cette restriction nest pas presente
pour les grammaires hors contexte (qui sont cependant un cas particulier de
grammaires de type 1). En fait, comme nous allons le voir dans la section
suivante, on peut aussi se debarasser des r`egles A dans les grammaires
hors contexte. De plus, si une grammaire dependant du contexte doit effectivement pouvoir generer le mot vide, on se permet dutiliser une unique
r`egle S .
6. Formes normales
Lorsquon sinteresse a` un langage algebrique L donne, la grammaire
generant L nest pas necessairement unique. Ainsi, on peut desirer avoir
a` sa disposition une grammaire dont les r`egles poss`edent une forme particuli`ere. Lorsquon impose certaines restrictions sur les seconds membres des
productions, on parle de grammaire mise sous forme normale. Nous montrons dans cette section que de telles simplifications sont toujours possibles.
Rappelons que deux grammaires sont equivalentes si elles gen`erent le meme
langage.
6.1. Elimination des r`
egles A .
erivation produisant un mot terminal, il se
Exemple VI.6.1. Dans une d
peut quapparaissent des variables ne generant aucun symbole terminal. Ces
variables sont eliminees grace a` des r`egles de la forme A que nous appelerons -production. Un tel phenom`ene fait grossir inutilement la longueur
des mots intermediaires produits. Par exemple, considerons les r`egles

VI.6. Formes normales

125

S SaB | aB
B bB | .
La derivation a` gauche generant le mot aaa gen`ere trois B qui seront chacun
elimines par lapplication de la r`egle B . Ainsi, on a
S SaB SaBaB aBaBaB aaBaB aaaB aaa.
D
efinition VI.6.2. On appelle variable effa
cable toute variable A telle que

A .
Si une grammaire ne contient aucune variable effacable, alors u v entrane
|u| |v|. On est d`es lors en presence dune grammaire monotone (appliquer
une r`egle ne peut faire diminuer la longueur du mot obtenu).
Nous presentons maintenant un algorithme 14 permettant de detecter les
variables effacables. Posons
E0 = {A V | A P }.
Si E0 = , lalgorithme sach`eve et la grammaire ne poss`ede aucune variable
effacable. Sinon, pour i 0, on definit
Ei+1 = Ei {A V | w Ei : A w P }.

Puisque V est fini, la suite des Ei se stabilise. Il est clair que le plus grand
Ei apparaissant dans cette suite est lensemble des variables effacables. Une
condition darret pour lalgorithme revient a` tester legalite de E i et Ei+1 .
Proposition VI.6.3. Soit G = (V, , P, S) une grammaire hors contexte.
Il existe une grammaire G0 = (V 0 , 0 , P 0 , S 0 ) que lon peut construire effectivement15 telle que
I
I
I

G et G0 sont equivalentes,
S 0 napparat dans aucun second membre des productions de G 0 ,
si appartient a
` L(G) = L(G0 ), alors la seule variable effacable est
S 0 . Sinon, G0 ne contient aucune variable effacable.

D
emonstration. Si S apparat dans un second membre des productions

de G, on introduit une nouvelle variable S 0 . On definit V 0 comme etant


V {S 0 } et pour definir P 0 , on ajoute aux r`egles de P , la r`egle S 0 S. De
cette mani`ere, le nouveau symbole initial S 0 napparat dans aucun second
membre des productions. De plus, si S G w, alors S 0 G0 S G0 w.
Au vu de lalgorithme precedent, on sait determiner de mani`ere effective
lensemble E des variables effacables de G 0 . Toute r`egle de G0 de la forme
A w1 A1 w2 A2 wn An wn+1
14ayant une approche bottom-up.
15Cela signifie quil ne sagit pas dun th
eor`eme existentiel mais bien dun theor`eme

constructif. La preuve fournit une demarche, un algorithme, permettant dobtenir la


grammaire proposee.

126

Chapitre VI. Introduction aux langages algebriques

avec A V , A1 , . . . , An E, w1 , . . . , wn+1 ((V ) \ E) est remplacee


par les r`egles
A w1 x1 w2 x2 wn xn wn+1

o`
u chaque xi peut prendre la valeur Ai ou . Une r`egle est donc remplacee
par au plus 2n nouvelles r`egles. Il est clair que cette modification nalt`ere
pas le langage genere puisquon a eventuellement enleve, des seconds membres des productions, des variables effacables. (Remarquons quon ne peut
pas simplement supprimer ces variables car une variable effacable peut etre
utilisee dans la production dun mot terminal.)
La derni`ere etape revient a` supprimer (de facon recursive) les r`egles de
la forme A .
I

Supprimer les -productions, A , modifier P 0 en consequence,


si une variable A apparat uniquement comme premier membre
dune -production, leffacer des seconds membres des autres productions. Cette etape pouvant creer de nouvelles -productions,
repeter si necessaire le point precedent.

A la fin de cette procedure, si S 0 appartenait au depart a` E, il faut encore


ajouter la r`egle S 0 pour que la grammaire obtenue puisse egalement
generer .


egles sont
Exemple VI.6.4. Soit la grammaire dont les r`
S ACA
A aAaD | B | C
B bB | b
C cS |
D .
Puisque S apparat dans la production C cS, la premi`ere etape consiste
a` introduire une nouvelle variable S 0 et les r`egles deviennent
S0 S
S ACA
A aAaD | B | C
B bB | b
C cS |
D .
Appliquons lalgorithme de recherche des variables effacables. On trouve
E0 = {C, D}, E1 = {A, C, D}, E2 = {S, A, C, D} et E3 = {S 0 , S, A, C, D} = E.
En suivant la preuve precedente, on remplace les r`egles comme suit

VI.6. Formes normales

127

S0 S |
S ACA | CA | AA | AC | A | C |
A aAaD | B | C | aAa | aaD | aa |
B bB | b
C cS | c |
D .
Il ne reste plus qu`a eliminer les -productions. En particulier, puisque D
est le premier membre de lunique r`egle D , on peut supprimer D de
tous les seconds membres. On a
S0 S
S ACA | CA | AA | AC | A | C
A aAa | B | C | aa
B bB | b
C cS | c.
Cette derni`ere grammaire gen`ere le meme langage que la grammaire de depart a` lexception du mot vide (en effet, E). Pour obtenir une grammaire
equivalente, il suffit dajouter la r`egle S 0 .
Ainsi, on peut toujours se ramener a` une grammaire essentiellement
monotone. Ladjectif essentiellement stipule quon autorise lunique -production S permettant de generer le mot vide et que le symbole initial
S napparat dans aucun second membre des r`egles.
6.2. Elimination des r`
egles A B.
Remarque VI.6.5. Une r`
egle de la forme A B, A, B V , revient
simplement a` renommer une variable A en B. On dira dune telle r`egle quil
sagit dune 1-production. Dans le cas A A, on parle de 1-production
circulaire.
D
efinition VI.6.6. Soient A, A1 , . . . , An , B des variables dune grammaire
G. Une derivation de la forme

A A1 An B,
o`
u chaque production est une 1-production, est une chane.
Soit A une variable etant le premier membre dune 1-production. Lalgorithme suivant16 permet de determiner toutes les variables apparaissant dans
une chane debutant en A. Posons C 0 = {A} et C1 = . Pour i 0,
Ci+1 = Ci {C V | B Ci \ Ci1 : B C P }.
La procedure sarrete lorsque Ci = Ci+1 . On notera ce dernier ensemble
C(A). Une fois encore, puisque V est fini, lalgorithme sach`eve toujours.
Proposition VI.6.7. Soit G = (V, , P, S) une grammaire essentiellement

monotone. Il existe une grammaire equivalente G 0 ne contenant aucune 1production. De plus, cette grammaire peut etre obtenue de mani`ere effective.
16On utilise ici une approche top-down.

128

Chapitre VI. Introduction aux langages algebriques

D
emonstration. Cela d
ecoule immediatement de la constatation faite a`
la remarque VI.6.5. Pour toute variable A qui est le premier membre dune
1-production, les r`egles de la nouvelle grammaire G 0 qui ont pour premier
membre A sont de la forme A w o`
u
I

w 6 V ,
B C(A) : B w P .

De cette mani`ere, il est clair quon elimine les 1-productions sans pour autant
modifier le langage genere. (Attirons lattention du lecteur sur le fait que
A C(A). Ainsi, si A w P avec w 6 V , alors A w est encore une
r`egle de G0 .)
Si A est une variable napparaissant dans aucun premier membre des 1productions de G, les r`egles correspondantes de G et de G 0 sont identiques.
Les variables, lalphabet des symboles terminaux et le symbole initial de
G0 concident avec ceux de G.


Exemple VI.6.8. Poursuivons lexemple VI.6.4. Nous avions obtenu la


grammaire essentiellement monotone
S0 S |
S ACA | CA | AA | AC | A | C
A aAa | B | C | aa
B bB | b
C cS | c.
Les 1-productions sont S 0 S, S A, S C, A B et A C. Ainsi,
on trouve

C(S 0 ) = {S 0 , S, A, B, C}, C(S) = {S, A, B, C} et C(A) = {A, B, C}.


Par consequent, la nouvelle grammaire est
S 0 |{z}
| ACA | CA | AA | CA | aAa | aa | bB | b | cS | c
{z
} | {z } | {z } | {z }
|
0
S

S ACA | CA | AA | CA | aAa | aa | bB | b | cS | c
|
{z
} | {z } | {z } | {z }
S

A aAa | aa | bB | b | cS | c
| {z } | {z } | {z }
A

B bB|b
C cS|c.

On a simplement applique la methode fournie dans la preuve precedente.


Par exemple, puisque A B, A est le premier membre dune 1-production.
Ainsi, on doit considerer les seconds membres de toutes les productions des
elements de C(A) et qui ne sont pas restreints a` une unique variable. Les
accolades permettent de rappeler de quelle variable de C(A) proviennent les
r`egles qui ont ete ajoutees.

VI.6. Formes normales

129

Remarque VI.6.9. Il est assez ais


e de se convaincre que lapplication de
la procedure decrite ci-dessus a` une grammaire essentiellement monotone
fournit encore une grammaire essentiellement monotone.

6.3. Elimination des symboles inutiles.


D
efinition VI.6.10. Soit G = (V, , P, S) une grammaire hors contexte.
Un symbole x V est utile si il existe une derivation

S G uxv G w

avec u, v (V ) et w . Dans le cas contraire, x est dit inutile.


En dautres termes, un symbole terminal est utile sil apparat dans un mot
du langage genere et une variable est utile si elle contribue a` une derivation
permettant dobtenir, a` partir du symbole initial, un mot de .
Pour eliminer les symboles inutiles, nous allons proceder en deux parties. Tout dabord, nous detectons les variables permettant de generer des
mots formes de symboles terminaux. Lalgorithme est semblable a` celui
determinant les symboles effacables. Posons
T0 = {A V | w : A w P }.
Pour i 0, on definit

Ti+1 = Ti {A V | w (Ti ) : A w P }.

Puisque V est fini, la suite des Ti se stabilise. Soit T , lensemble des variables
permettant dobtenir un mot sur . Si A nappartient pas a` T , alors A est
inutile.
Proposition VI.6.11. Soit G = (V, , P, S) une grammaire. Avec les no-

tations introduites precedemment, il existe une grammaire equivalente G 0 ne


contenant que les variables de T . De plus, cette grammaire peut etre obtenue
de mani`ere effective.
D
emonstration. Il suffit de supprimer les r`
egles faisant intervenir une

variable de V \ T . Ainsi, lensemble des variables de G 0 est T , lensemble


des productions de G0 est
{A w P | A T, w (T ) }

et lalphabet des symboles terminaux de G 0 est lensemble des symboles


terminaux apparaissant dans les seconds membres des productions de G 0 .


egles sont
Exemple VI.6.12. Soit la grammaire dont les r`

130

Chapitre VI. Introduction aux langages algebriques

S AC | BS | B
A aA | aF
B CF | b
C cC | D
D aD | BD | C
E aA | BSA
F bB | b.
En appliquant lalgorithme precedent, on trouve
T0 = {B, F }, T1 = {S, A, B, F }, T2 = {S, A, B, E, F } = T.
En eliminant les r`egles faisant intervenir C ou D, on obtient
S BS | B
A aA | aF
B b
E aA | BSA
F bB | b.
Cette premi`ere etape nest pas suffisante pour eliminer compl`etement les
symboles inutiles. En effet, si on consid`ere lexemple suivant
S A
A Aa | bA | b
B b,
bien que la variable B appartienne a` T , elle ne joue aucun role dans les
derivations obtenues depuis S. En effet, B nest pas accessible depuis S.
Cela signifie que S 6 uBv, u, v (V ) , et donc B ne contribue a`
aucune derivation a` partir de S. La seconde etape permettant deliminer les
symboles inutiles consiste a` conserver uniquement les symboles accessibles.
D
efinition VI.6.13. Soit G = (V, , P, S) une grammaire hors contexte.

Une variable A est accessible si


S uAv

avec u, v (V ) . Sinon, A est inaccessible.


La detection des variables accessibles est comparable a` la recherche des
chanes. Soient A0 = {S} et A1 = . Pour i 0,
Ai+1 = Ai {B V | C Ai \ Ai1 , u, v (V ) : C uBv}.

La procedure sarrete lorsque Ai = Ai+1 et lensemble obtenu est clairement


lensemble des variables accessibles.
Proposition VI.6.14. Soit G = (V, , P, S) une grammaire. Il existe une

grammaire equivalente G0 ne contenant aucun symbole inutile. De plus, cette


grammaire peut etre obtenue de mani`ere effective.
D
emonstration. On applique tout dabord a
` G la proposition VI.6.11
pour obtenir une grammaire ne contenant que des variables permettant de

VI.6. Formes normales

131

produire des symboles terminaux. On applique ensuite lalgorithme precedent pour en determiner les variables accessibles depuis le symbole initial.
Tout r`egle faisant intervenir une variable non accessible peut etre supprimee.


Exemple VI.6.15. Poursuivons lexemple VI.6.12. On a

A0 = {S} et A1 = {S, B}.


En supprimant les symboles inaccessibles, on obtient
S BS | B
B b.
Remarque VI.6.16. On ne peut inverser impun
ement lordre des deux

algorithmes. Il faut tout dabord rechercher lensemble T des variables permettant dobtenir des symboles terminaux et ensuite eliminer les symboles
inaccessibles. En effet, considerons la grammaire simpliste
S a | AB
A b
B B.
Lensemble T est {S, A}, ainsi une premi`ere reduction donne
S a
A b.
Puisque A est inaccessible, il reste uniquement S a.
Par contre, si on recherche dabord les symboles accessibles, on trouve
A1 = {S, A, B}. La grammaire de depart reste inchangee puisquaucun
symbole nest inaccessible. Si on recherche ensuite les elements de T , on
trouve T = {S, A} et donc on obtient
S a
A b
qui na pas la forme voulue. En effet, dans cet ordre, lelimination des variables nappartenant pas a` T peut creer de nouvelles variables inaccessibles.
6.4. Forme normale de Chomsky.
D
efinition VI.6.17. Une grammaire hors contexte G = (V, , P, S) est

sous forme normale de Chomsky si les r`egles de G sont toutes de lune des
formes suivantes :
I
I
I

A BC o`
u A V , B, C V \ {S},
A a o`
u A V , a ,
S .

Linteret pratique de la mise sous forme de Chomsky est que les arbres
danalyse correspondants seront des arbres binaires 17 (i.e., le nombre de fils
dun noeud est au plus deux). Nous verrons aussi a` la section suivante que
17cf. un cours dintroduction a
` lalgorithmique pour le traitement systematique des

arbres binaires et des algorithmes associes.

132

Chapitre VI. Introduction aux langages algebriques

disposer dune forme normale pour les grammaires permet de simplifier les
developpements de certaines preuves.
Th
eor`
eme VI.6.18. Soit G = (V, , P, S) une grammaire hors contexte.
On peut construire de mani`ere effective une grammaire equivalente G 0 mise
sous forme normale de Chomsky.
D
emonstration. Au vu des sous-sections pr
ecedentes, on peut supposer

que G est essentiellement monotone et quelle ne contient aucune 1-production


ni symbole inutile. Ainsi, une r`egle de la grammaire G est de lune des formes
suivantes :
I
I
I

S ,
A a o`
u A V , a ,
A w o`
u A V , w ((V ) \ {S}) et |w| 2.

Les deux premiers types de r`egles satisfont la forme de Chomsky. Il nous


reste a` montrer comment remplacer le troisi`eme type de r`egles. Soit la r`egle
A w o`
u
w = w1 A1 w2 wn An wn+1 ,

avec wi , Ai V \ {S}.

Si wi 6= , on notera wi = wi,1 wi,`i avec wi,j . Sans changer le langage


genere, on peut remplacer la r`egle A w par les r`egles
A W1,1 W1,`1 A1 W2,1 Wn,`n An Wn+1,1 Wn+1,`n+1
W1,1 w1,1
..
.
Wn+1,`n+1 wn+1,`n+1
o`
u les Wi sont de nouvelles variables. Il reste simplement a` modifier la
premi`ere de ces nouvelles r`egles pour avoir une grammaire mise sous forme
de Chomsky. Si une r`egle est de la forme
A A1 An , n 3,
en faisant intervenir de nouvelles variables, on peut la remplacer par les
r`egles
A A 1 B1
B1 A 2 B2
..
.
Bn2 An1 An .

Exemple VI.6.19. Consid


erons la grammaire dont les r`egles sont

S SaB | aB
B bB | .
Pour pouvoir obtenir la forme normale de Chomsky, nous remplacons dabord
cette grammaire par une grammaire equivalente dont le symbole initial napparat dans aucun second membre et qui est essentiellement monotone

VI.6. Formes normales

133

S0 S
S SaB | aB | Sa | a
B bB | b.
Ensuite, on supprime les 1-productions et on obtient
S 0 SaB | aB | Sa | a
S SaB | aB | Sa | a
B bB | b
et on remarque quaucun symbole nest inutile. En introduisant de nouvelles
variables, on a tout dabord
S 0 SAB | AB | SA | a
S SAB | AB | SA | a
B B 0B | b
A a
B 0 b.
Enfin, pour obtenir des r`egles de longueur au plus deux, on a
S 0 ST | AB | SA | a
S ST | AB | SA | a
B B 0B | b
A a
B0 b
T AB.
6.5. Forme normale de Greibach.
D
efinition VI.6.20. Une grammaire hors contexte G = (V, , P, S) est
sous forme normale de Greibach si les r`egles de G sont toutes de lune des
formes suivantes :
I
I
I

A aA1 An avec A V , a , Ai V \ {S},


A a avec A V et a ,
S .

Linteret pratique de la mise sous forme normale de Greibach est qu`a


chaque derivation, on determine un prefixe de plus en plus long forme uniquement de symboles terminaux. Cela permet de construire plus aisement des
analyseurs permettant de retrouver larbre danalyse associe a` un mot genere.
Dans ce texte introductif, nous enoncons le resultat suivant.
Th
eor`
eme VI.6.21.

18

Soit G = (V, , P, S) une grammaire hors contexte.


On peut construire de mani`ere effective une grammaire equivalente G 0 mise
sous forme normale de Greibach.
18Le lecteur int
eresse trouvera par exemple plus de details dans T. A. Sudkamp,
Languages and Machines, An introduction to the Theory of Computer Science, 2e edition,
Addison-Wesley, (1998), pp. 140147.

134

Chapitre VI. Introduction aux langages algebriques

7. Lemme de la pompe
On dispose dun analogue du lemme de la pompe dans le cadre des
langages hors contexte.
Proposition VI.7.1 (Lemme de la pompe Th
eor`eme de Bar-Hillel). Soit
L un langage hors contexte. Il existe p N \ {0} tel que tout mot z L de
longueur |z| p peut secrire z = uvwxy, u, v, w, x, y avec |vwx| < p,
vx 6= et pour tout n N,

uv n wxn y L.

Pour obtenir ce resultat, nous allons tirer parti de la mise sous forme
normale de Chomsky. Neanmoins, on pourrait obtenir un resultat analogue
sans recourir a` cette simplification.
Lemme VI.7.2. Soit G = (V, , P, S) une grammaire hors contexte mise

sous forme normale de Chomsky. Si la derivation A w, w , a un


arbre danalyse de hauteur n, alors |w| 2 n1 .
D
emonstration. Puisque la grammaire est mise sous forme normale de
Chomsky, les seuls arbres danalyse 19 de hauteur 1 dont le fruit est forme de
symboles terminaux sont de la forme donnee a` la figure VI.9 et leurs fruits

Figure VI.9. Arbres danalyse de hauteur 1 pour une grammaire mise sous forme normale de Chomsky.
sont de longueur au plus 1. Supposons a` present le resultat satisfait pour
les arbres de hauteur au plus n et verifions-le pour les arbres de hauteur
n + 1. Pour obtenir un arbre de hauteur n + 1, on applique necessairement
une premi`ere r`egle de la forme A BC. Les sous-arbres de racine B et C
sont chacun de hauteur au plus n. Par hypoth`ese de recurrence, leurs fruits
respectifs sont de longueur au plus 2 n1 . Le fruit de larbre, obtenu par
concatenation des fruits des deux sous-arbres, a donc une longueur majoree
par 2.2n1 = 2n .


Par contraposition, ce resultat se reexprime comme suit.


Corollaire VI.7.3. Soit G = (V, , P, S) une grammaire hors contexte
mise sous forme normale de Chomsky. Si S w avec w et |w| > 2n1
19A la section 2, on a suppos
e que les seconds membres des productions netaient ja-

mais egaux a
` . Ici, nous autorisons une telle situation. Il est clair que cette generalisation
ne modifie en rien les developpements de la section 2.

VI.7. Lemme de la pompe

135

(donc en particulier, avec |w| 2n ), alors larbre danalyse associe a


` cette
derivation est de hauteur au moins n + 1.
Nous en arrivons a` present a` la preuve du lemme de la pompe.
D
emonstration. Sans restriction, nous pouvons supposer que la grammaire

est mise sous forme normale de Chomsky. Posons #V = m. Soit z un


mot genere par G de longueur au moins 2 m =: p. Au vu du corollaire
precedent, on dispose dun arbre danalyse de fruit z et de hauteur au moins
m + 1. Ainsi, cet arbre contient un chemin de longueur au moins m + 1
debutant en S et aboutissant en un symbole terminal. Une illustration de
cette situation est donnee a` la figure VI.10. Ce chemin de longueur m + 1

0
1
2
3
4

Figure VI.10. Un arbre danalyse pour une grammaire sous


forme de Chomsky.
passe par m + 2 sommets de larbre dont m + 1 sont des variables. Or
#V = m. Par consequent, ce chemin contient au moins deux fois la meme
variable A. Dans ce chemin, nous considerons les 2 occurrences de A, le plus
bas possible dans larbre (i.e., le plus loin de la racine). Schematiquement,
dans larbre danalyse de z, on a la situation representee a` la figure VI.11.
Ainsi, la grammaire contient les derivations

Figure VI.11. Un arbre danalyse avec A apparaissant deux fois.

136

Chapitre VI. Introduction aux langages algebriques

S uAy,

A vAx

et

A w.

Par consequent, en appliquant n fois la derivation centrale, on obtient


S uAy uvAxy uv n Axn y uv n wxn y

et les mots uv n wxn y appartiennent a` L(G) pour tout n N.


Pour terminer la demonstration du resultat, nous devons encore verifier
que |vwx| < p et vx 6= . Puisque la grammaire est sous forme de Chomsky,
la derivation A vAx doit necessairement debuter par une production de
la forme A BC. Supposons que la deuxi`eme occurrence de la variable A
provienne de B (on dispose dun raisonnement analogue pour lautre cas).
Ainsi,
A BC vArC vArs = vAx.

La variable C ne peut donner (en effet, seul S ). On en conclut que


x 6= et donc vx 6= . Le sous-arbre de racine A et de fruit vwx est de
hauteur au plus m (au vu du choix des deux occurrences de A prises le plus
bas possible). Par consequent, |vwx| 2 m1 < p.

Ce resultat peut etre utilise pour montrer que certains langages ne sont
pas algebriques.
Exemple VI.7.4. Le langage

L = {an bn cn | n N}
nest pas algebrique. Procedons par labsurde. Soit p lentier donne dans
lenonce du lemme de la pompe. Le mot z = a p bp cp est de longueur au
moins p. Il existe donc des mots u, v, w, x, y tels que
ap bp cp = uvwxy
avec |vwx| < p et vx 6= . Par consequent, vwx ne peut contenir simultanement des lettres a, b et c. Ceci contredit le fait que uv n wxn y doive
appartenir au langage pour tout n.
7.1. Th
eor`
eme de Parikh. Un autre resultat peut parfois saverer
utile pour verifier quun langage nest pas algebrique. Nous ne ferons ici que
denoncer le theor`eme de Parikh.
D
efinition VI.7.5. Un sous-ensemble M de N k est dit lin
eaire sil existe

p0 , p1 , . . . , ps Nk tels que
s
X
i pi | 1 , . . . , s N} = p0 + N.p1 + + N.ps .
M = {p0 +
i=1

On dit que p0 est la constante de M et les pi s, i 1, en sont les periodes.


Une union finie densembles lineaires est un ensemble semi-lineaire.
Th
eor`
eme VI.7.6 (Parikh). Si L {1 , . . . , k } est un langage alg
ebrique,

alors (L) est un ensemble semi-lineaire de N k .

VI.8. Automates a` pile

137

Remarque VI.7.7. La r
eciproque de ce resultat est fausse. En effet, nous
savons que le langage L = {an bn cn | n N} nest pas algebrique. Par contre,

1
(L) = N. 1

est semi-lineaire.

8. Automates `
a pile
Dune part, nous avons vu dans les sections precedentes que les grammaires hors contexte etaient utilisees pour generer les langages algebriques.
Dune certaine facon, les grammaires sont une generalisation des expressions
reguli`eres qui permettent quant a` elles de generer les langages reguliers.
Dautre part, nous avons montre que les automates finis acceptent exactement les langages reguliers. Lensemble des langages reguliers etant
un sous-ensemble strict de lensemble des langages algebriques, pour esperer
trouver lanalogue des automates finis, nous allons etendre les possibilites de
ces derniers par lajout dune pile. Un automate fini est, par definition, une
machine ne disposant que dune memoire finie (le nombre de configurations
qui peuvent etre memorisees est egal a` son nombre detats). Lajout dune
pile20 permet detendre les possibilites de memorisation, puisque, comme
nous allons le voir, la capacite de stockage dune pile peut etre arbitrairement grande.
Une pile est un dispositif du type21 dernier entre, premier sorti. On

c
b
a
Figure VI.12. Representation dune pile.
peut la representer a` laide dun mot fini. Par convention, on notera lalphabet
de pile . Une pile est donc un mot p . Les operations dont on dispose
pour une pile sont
I
I
I

tester si la pile est vide, i.e., determiner si p = ,


empiler,
depiler.

20Dispositif permettant de m
emoriser un nombre arbitraire de symboles appartenant

a
` un alphabet fini.
21LIFO : Last In First Out. Penser par exemple a
` une pile dassiettes.

138

Chapitre VI. Introduction aux langages algebriques

Si w est une pile, empiler le symbole est loperation


w 7 w.

Si w est une pile non vide, elle est de la forme w 0 , , w0 , et


depiler un symbole est loperation
w0 7 w0 .
On peut etendre ces notions a` des mots. Ainsi, empiler un mot u = u 1 u`
revient a` empiler successivement les lettres u 1 , . . . , u` . Partant de la pile w,
on obtient
w 7 u1 w 7 u2 u1 w 7 . . . 7 u` u1 w = uR w.
Remarque VI.8.1. Dans la suite, il faudra
etre attentif a` cette situation
faisant apparatre le miroir de u (cf., par exemple, la relation de transition
donnee dans la proposition VI.8.6).
D
efinition VI.8.2. Un automate a
` pile22 est la donnee dun sextuple A =

(Q, , , , q0 , F ) o`
u Q est un ensemble fini detats, est lalphabet de
lautomate, est lalphabet de pile,
Q Q

est la relation de transition de A, q 0 Q est letat initial et F Q lensemble


des etats finals. On suppose bien s
ur que est un ensemble fini. Une
configuration de lautomate a` pile est un triplet [q, w, p] de Q
dont le role est de coder letat q dans lequel se trouve lautomate, le mot w
restant a` lire et letat p de la pile. On passe de la configuration [q, w, p] a` la
configuration [q 0 , w0 , p0 ] si il existe une transition de A telle que
w = mw0 , p = xy, p0 = z R y

(q, m, x, q 0 , z) .

et

En dautres termes, on a lu m, on a depile x et empile z. La representation


sagittale correspondante est donnee a` la figure VI.13. Les autres conventions

m, x/z
q

Figure VI.13. Une transition dun automate a` pile.


sont analogues a` celles utilisees pour representer les automates finis. On
notera d`es lors cette transition par
[q, w, p] ` [q 0 , w0 , p0 ]
22Le mod`
ele presente ici est non deterministe. Le lecteur ayant dej`
a rencontre la notion dautomate fini pourra sapercevoir quon est en presence dune relation de transition
et non dune fonction de transition.

VI.8. Automates a` pile

139

et ` est la fermeture reflexive et transitive de `. Un mot w est accepte par


lautomate a` pile A si
[q0 , w, ] ` [q, , ]

avec q F.

Il est evident que le langage accepte par A est

L(A) = {w | q F : [q0 , w, ] ` [q, , ]}.

Deux automates a` pile sont equivalents sils acceptent le meme langage.


Exemple VI.8.3. Lautomate a
` pile represente a` la figure VI.14 accepte
exactement le langage {an bn | n N}. La pile dalphabet {A} y est utilisee

a, /A

b, A/

b, A/

Figure VI.14. Un automate a` pile acceptant {a n bn | n N}.


pour retenir le nombre de a qui ont ete lus (`a chaque a lu, un A est empile).
De plus, a` chaque b rencontre, on depile un A. Ainsi, on ne peut obtenir
une pile vide que si on a lu le meme nombre de a que de b. Remarquons
egalement quun mot contenant un facteur ba ne peut jamais etre accepte
par lautomate. De meme, on ne saurait lire plus de b que de a , car pour
pouvoir lire un b, il faut etre en mesure de depiler un A. Si les etats sont
notes 1 et 2, on a par exemple la suite de configurations
[1, aabb, ] ` [1, abb, A] ` [1, bb, AA] ` [2, b, A] ` [2, , ].
` pile est deterministe sil existe au plus
D
efinition VI.8.4. Un automate a
une transition resultant de chaque configuration. Par exemple, lautomate
donne a` la figure VI.14 est deterministe.
D
efinition VI.8.5. Un automate a
` pile est atomique ou elementaire si

chaque transition est de lune des quatre formes suivantes :


I
I
I
I

(p, , , q, ) : changement detat, sans aucune autre action


(p, , , q, ) : lecture dune lettre
(p, , , q, ) : depilement dune lettre
(p, , , q, ) : empilement dune lettre .

Il est clair quon peut remplacer un automate a` pile par un automate a` pile
elementaire en ajoutant de nouveaux etats (les constructions sont semblables
a` celles developpees dans le lemme II.2.8).
Proposition VI.8.6. Soit G = (V, , P, S) une grammaire hors contexte.

Lautomate a
` pile A = (Q, , , , q0 , F ) o`
u
I

Q = {q0 , f },
= V ,

140

Chapitre VI. Introduction aux langages algebriques

I
I

F = {f } et
la relation de transition est donnee par

{(q0 , , , f, S)} {(f, , A, f, w R ) | A w P } {(f, , , f, ) | },


accepte exactement le langage L(G).

, /S

, A/wR
, /

Figure VI.15. Automate acceptant L(G).


D
emonstration. Montrons tout dabord que si u , v (V ) et

[f, u, S] ` [f, , v],

alors il existe une derivation a` gauche telle que


S uv.
Nous prouvons ce resultat par recurrence sur le nombre m de transitions a`
effectuer pour passer de [f, u, S] a` [f, , v]. Si m = 0, alors u = et S = v
et il est clair que S S. Supposons le resultat satisfait pour m = t et
demontrons-le pour m = t + 1. Puisque les transitions de lautomate sont
de la forme (, /) ou (, A/w R ), il est clair que pour passer de [f, u, S] a`
[f, , v], il y a au moins une transition de la seconde forme 23. En particulier,
nous allons considerer la derni`ere fois o`
u lon applique une transition de ce
type dans la suite de configurations menant de [f, u, S] a` [f, , v]. Ainsi,
[f, u, S] ` [f, , v] se decompose en
[f, u, S] ` [f, r, Av 0 ] ` [f, r, wv 0 ] ` [f, , v]
|
{z
}
derni`ere application (,A/w R )

o`
u r est un suffixe de u, i.e., u = u0 r, car on a pu appliquer certaines
transitions de la forme (, /) pour lire un prefixe u 0 de u et o`
u wv 0 = rv car
pour lire r, puisquon applique uniquement des r`egles de la forme (, /),
il faut que wv 0 debute par r. Ainsi,
[f, u, S] = [f, u0 r, S] ` [f, r, Av 0 ] = [f, r, Av 0 ]
et donc
[f, u0 , S] ` [f, , Av 0 ].

Ayant dans ce dernier cas au plus t transitions, on peut appliquer lhypoth`ese


de recurrence : il existe une derivation a` gauche
S u0 Av 0 .

23En effet, on ne saurait appliquer la transition (, /) a


` la configuration [f, u, S]

puisquil faudrait depiler dune pile ne contenant que S.

VI.8. Automates a` pile

141

Or u0 appartient a` . Ainsi, si on applique la r`egle A w, on conserve


une derivation a` gauche et on obtient
S u0 Av 0 u0 wv 0 = u0 rv = uv.
La reciproque est egalement vraie. Sil existe une derivation a` gauche
S uv avec u et v V (V ) , alors [f, u, S] ` [f, , v]. Cette
partie se demontre de mani`ere semblable a` la premi`ere partie 24.
Il nous faut a` present prouver que L(A) = L(G). Si w appartient a`
L(A), cela signifie que [q0 , w, ] ` [f, , ]. Vu la forme de lautomate, on a
[q0 , w, ] ` [f, w, S] ` [f, , ].

Vu la premi`ere partie de la demonstration, il existe une derivation a` gauche


telle que S w et donc, L(A) L(G). Passons a` la reciproque. Si
w L(G), il existe une derivation (que lon peut supposer a` gauche) telle
que S w. Si cette derivation est de longueur au moins un, on applique
une derni`ere r`egle de la forme A y et on peut ecrire
S xAz xyz = w

avec x, z .

Par la deuxi`eme partie de la preuve, on a [f, x, S] ` [f, , Az]. Ainsi, dans


A, on a
[q0 , w = xyz, ] ` [f, xyz, S] ` [f, yz, Az].
De l`a, puisque (, A/y R ) est une transition de A, il vient
[f, yz, Az] ` [f, yz, yz] ` [f, , ]

o`
u pour conclure, on applique des transitions (, /) pour lire et depiler yz.


Remarque VI.8.7. Lautomate donn


e dans la proposition precedente nest

en general pas deterministe car lorsquon se trouve dans letat f et que la pile
a un sommet A, i.e., lorsque lon se trouve dans une configuration [f, w, Ap]
avec w et p , et si la grammaire G poss`ede deux r`egles de la
forme A w1 et A w2 , alors on peut considerer indifferemment les deux
transitions (, A/w1R ) ou (, A/w2R ).
Il nous faut a` present montrer que tout langage accepte par un automate
a` pile est algebrique. Nous allons pour ce faire associer a` un automate a`
pile, une grammaire dont les r`egles sont obtenues a` partir des transitions de
lautomate.
Soit A = (Q, , , , q0 , F ) un automate a` pile o`
u lon peut supposer que
Q ( {}) ( {}) Q ( {}).
Il est clair quil ne sagit pas dune veritable restriction (on autorise a` lire,
empiler ou depiler au plus une lettre; si lautomate na pas la forme voulue,
24Par r
ecurrence sur la longueur de la derivation.

142

Chapitre VI. Introduction aux langages algebriques

on peut par exemple le rendre elementaire). On peut ajouter de nouvelles


transitions a` sans modifier le langage accepte par lautomate. Ainsi, si
(qi , s, , qj , p) ,

avec s {}, p {},

alors pour tout A , on ajoute les transitions


(qi , s, A, qj , Ap).
En effet, cela revient a` depiler A puis a` lempiler a` nouveau (et ensuite
on empile p). Tout mot accepte par lautomate pour lequel on utilise une
transition du nouveau type aurait pu aussi etre accepte avec la transition
originale correspondante. Dans la suite, nous supposerons donc disposer
dun tel automate modifie que nous noterons encore A.
Construisons une grammaire G = (V, , P, S) o`
u lensemble V des variables est
{S} {hqi , A, qj i | qi , qj Q, A {}}.

Un element de la forme hqi , A, qj i va etre utilise pour symboliser une suite


de transitions permettant de passer de letat q i a` letat qj en depilant A. Les
r`egles de P sont de quatre types
I
I

S hq0 , , qi, pour tout q F ,


pour chaque transition de la forme
(qi , s, A, qj , B), s {}, A, B {},

on consid`ere les r`egles hqi , A, qi shqj , B, qi, pour tout q Q,


pour chaque transition de la forme
(qi , s, A, qj , AB), s {}, A, B ,

on consid`ere les r`egles hqi , A, qi shqj , B, q0 ihq0 , A, qi, pour tous


q, q 0 Q,
hq, , qi pour tout q Q.

Exemple VI.8.8. Reprenons lautomate a


` pile introduit dans lexemple
VI.8.3 dont les transitions sont

(1, a, , 1, A), (1, b, A, 2, ), (2, b, A, 2, ).


On y ajoute la transition (1, a, A, 1, AA) et on consid`ere la grammaire dont
les r`egles sont

VI.8. Automates a` pile

143

S h1, , 2i | h1, , 1i
h1, , 1i a h1, A, 1i
(1, a, , 1, A)
h1, , 2i a h1, A, 2i
h1, A, 1i b h2, , 1i
(1, b, A, 2, )
h1, A, 2i b h2, , 2i
h2, A, 1i b h2, , 1i
(2, b, A, 2, )
h2, A, 2i b h2, , 2i
h1, A, 1i a h1, A, 1i h1, A, 1i (1, a, A, 1, AA)
h1, A, 1i a h1, A, 2i h2, A, 1i
h1, A, 2i a h1, A, 1i h1, A, 2i
h1, A, 2i a h1, A, 2i h2, A, 2i
h1, , 1i
h2, , 2i
(On a indique a` chaque fois, de quelle transition provient la r`egle.) Le mot
aabb est accepte par lautomate car on a la suite de configurations
[1, aabb, ] ` [1, abb, A] ` [1, bb, AA] ` [2, b, A] ` [2, , ].
Ce mot est aussi genere par la grammaire en considerant la derivation
S h1, , 2i ah1, A, 2i aah1, A, 2ih2, A, 2i aabh2, , 2ih2, A, 2i
aabh2, A, 2i aabbh2, , 2i aabb.

Bien que cet exemple ne constitue en rien une preuve, on remarque que la
grammaire permet dune certaine facon de tenir compte des lettres lues dans
lautomate et de retenir letat de la pile.
Le resultat suivant peut aussi etre considere comme une consequence du
theor`eme de Chomsky-Sch
utzenberger (theor`eme VI.10.3). A la difference de
ce dernier, la preuve donnee ici est constructive : on associe une grammaire
de mani`ere canonique a` lautomate considere.
Proposition VI.8.9. Tout langage accept
e par un automate a
` pile A est

hors contexte.

D
emonstration. Nous supposons
etre dans les conditions donnees cidessus (i.e., nous disposons dun automate a` pile A modifie auquel on a
associe une grammaire G). Avec les notations qui prec`edent, nous devons
montrer que dans A, [q0 , w, ] ` [q, , ] avec q F si et seulement si il
existe une derivation de la grammaire G telle que S w.
Montrons tout dabord que si [qi , w, A] ` [qj , , ] avec A {},
alors il existe une derivation de G telle que hq i , A, qj i w. On proc`ede
par recurrence sur la longueur de la suite de configurations. Si celle-ci est
nulle, qi = qj , w = , A = et pour conclure, on remarque que hq i , , qi i
est une r`egle de G. Supposons le resultat acquis pour une suite de longueur
n et verifions-le pour une suite de longueur n + 1. Si [q i , w, A] ` [qj , , ]
avec une suite de n + 1 transitions, alors on peut decomposer cette suite

144

Chapitre VI. Introduction aux langages algebriques

en lapplication dune premi`ere transition suivie par n autres. On a deux


possibilites. Tout dabord
[qi , w, A] ` [qk , v, B] ` [qj , , ]
si w = sv et (qi , s, A, qk , B) , s {}. Par hypoth`ese de recurrence,
on a hqk , B, qj i v. De plus, a` la transition (qi , s, A, qk , B) correspond
notamment la r`egle hqi , A, qj i shqk , B, qj i. Ainsi,
hqi , A, qj i shqk , B, qj i sv = w.

Lautre situation a` envisager est


[qi , w, A] ` [qk , v, BA] ` [q` , y, A] ` [qj , , ]
o`
u la premi`ere transition est de la forme (q i , s, A, qk , AB), s {} et w =
sv, v = xy. La grammaire contient la r`egle hq i , A, qj i shqk , B, q` ihq` , A, qj i.
Puisque [qk , v, BA] ` [q` , y, A] et que v = xy, on en tire que [qk , x, B] `
[q` , , ]. Donc par hypoth`ese de recurrence, on a
hqk , B, q` i x

et

hq` , A, qj i y.

Do`
u
hqi , A, qj i shqk , B, q` ihq` , A, qj i sxy = w.

De l`a, on en conclut aisement que L(A) L(G).


Montrons a` present que si hqi , A, qj i w, w , A {},
alors [qi , w, A] ` [qj , , ]. On proc`ede une fois encore par recurrence sur
la longueur de la derivation. Sil sagit dune derivation de longueur un,
les seules r`egles de la grammaire donnant un symbole terminal sont de la
forme hq, , qi et on a bien [qi , , ] ` [qi , , ]. Supposons a` present la
propriete satisfaite pour les derivations de longueur au plus n et demontronsla pour les derivations de longueur n + 1. Si la premi`ere r`egle appliquee est
de la forme hqi , A, qj i shqk , B, qj i, alors on a
hqi , A, qj i shqk , B, qj i sv = w.

Par hypoth`ese de recurrence, [qk , v, B] ` [qj , , ]. De plus, par construction


de G, la r`egle hqi , A, qj i shqk , B, qj i provient de la transition (qi , s, A, qk , B)
et [qi , sv, A] ` [qk , v, B]. La seconde possibilite est que la premi`ere r`egle appliquee soit de la forme hqi , A, qj i shqk , B, qm ihqm , A, qj i. Dans ce cas, on
a
hqi , A, qj i shqk , B, qm ihqm , A, qj i w
avec

hqk , B, qm i x, hqm , A, qj i y

et

w = sxy.

On conclut en appliquant deux fois lhypoth`ese de recurrence. D`es lors,


L(G) L(A) et ceci termine la preuve.

Corollaire VI.8.10. Un langage est alg


ebrique si et seulement si il est

accepte par un automate a


` pile.

VI.9. Stabilite du caract`ere algebrique

145

D
emonstration. Cela r
esulte immediatement des propositions VI.8.6 et

VI.8.9.


Remarque VI.8.11. Dans le cadre des langages r


eguliers, nous avons montre que les ensembles des langages acceptes par automate fini deterministe ou
non deterministe concident. Ainsi, le caract`ere non deterministe napporte
rien du point de vue des langages acceptes (il apporte neanmoins des facilites de construction non negligeables). On peut naturellement se poser la
meme question dans le cas des langages algebriques. On peut montrer 25 que
la classe des langages acceptes par un automate a` pile deterministe est un
sous-ensemble strict des langages algebriques. Il sagit des langages prefixes.
Un langage L est prefixe si

u, v : u L, uv L v = .

Autrement dit, si un mot u est dans L, aucun prefixe propre de u nappartient


a` L.
9. Stabilit
e du caract`
ere alg
ebrique
Nous avons vu precedemment que lensemble des langages algebriques
etait stable pour lunion, la concatenation et letoile de Kleene. Nous allons
montrer ici que lintersection de deux langages algebriques nest en general
pas algebrique. Par consequent, le complementaire dun langage algebrique
nest en general pas algebrique. Neanmoins, lintersection dun langage algebrique et dun langage regulier est encore algebrique.
ebrique car il
Exemple VI.9.1. Le langage L = {an bn | n N}c est alg

sobtient comme la concatenation de deux langages algebriques (cf. proposition VI.4.3). De meme, le langage M = a {bn cn | n N} est aussi
algebrique. Il est clair que
L M = {an bn cn | n N}
nest pas algebrique. Ainsi, cet exemple montre que lensemble des langages
algebriques nest pas stable pour lintersection.
Remarque VI.9.2. Supposons que pour tout langage L , L alg
ebrique

entrane \ L algebrique. Dans ce cas, puisque

L M = \ (( \ L) ( \ M )),

on pourrait en conclure que lintersection de deux langages algebriques est


encore algebrique (en effet, nous savons que lunion de deux langages algebriques est algebrique, cf. proposition VI.4.2). Ainsi, lensemble des langages algebriques ne peut pas etre stable pour le passage au complementaire.
25Voir par exemple, J.-M. Autebert, Langages Alg
ebriques, etudes et recherche en

informatique, Masson, Paris, (1987).

146

Chapitre VI. Introduction aux langages algebriques

Th
eor`
eme VI.9.3. Soient R un langage r
egulier et L un

langage algebrique. Le langage L R est algebrique.

D
emonstration. Lid
ee de la demonstration consiste, tout comme dans

le cas de lintersection de deux langages reguliers, a` construire un automate produit simulant simultanement le comportement dun automate fini
deterministe acceptant R et dun automate a` pile acceptant L. Soient
A = (Q, q0 , F, , ) et A0 = (Q0 , , , 0 , q00 , F 0 ) deux tels automates o`
u A0
26
est suppose elementaire . On consid`ere lautomate a` pile
P = (Q Q0 , , , , (q0 , q00 ), F F 0 )
o`
u la relation de transition est donnee par
((qi , qi0 ), , x, (qj , qj0 ), y) si (qi , ) = qj et (qi0 , , x, qj0 , y) 0
et
((qi , qi0 ), , x, (qi , qj0 ), y) si (qi0 , , x, qj0 , y) 0 .

Il est facile de se convaincre que le langage accepte par P est exactement


L R. On conclut en utilisant la proposition VI.8.9.

ebriques est stable par morLemme VI.9.4. Lensemble des langages alg
phisme.
D
emonstration. Soient L un langage alg
ebrique genere par G =

(V, , P, S) et h : un morphisme. Nous supposerons de plus que


les trois alphabets V , et sont deux a` deux disjoints. Considerons la
grammaire G0 = (V , , P 0 , S) o`
u
P 0 = P { h() | }.

Il est clair que cette nouvelle grammaire gen`ere le langage h(L).




10. Un th
eor`
eme de Schu
tzenberger
Nous terminons ce chapitre par une caracterisation des langages acceptes par un automate a` pile. Ainsi, ce resultat montre en particulier quun
langage algebrique peut toujours sobtenir comme limage par un morphisme
de lintersection dun langage regulier et du langage forme de mots transformant la pile vide en elle-meme. Expliquons notre propos.
Dans cette section A = (Q, , , , q0 , F ) est un automate a` pile fixe une
fois pour toutes et suppose elementaire. Si = { 1 , . . . , k }, on consid`ere
lalphabet
= {e1 , . . . , ek , d1 , . . . , dk }

o`
u e1 , . . . , ek , d1 , . . . , dk sont de nouveaux symboles27. Si p represente
letat de la pile, les elements de agissent sur p comme suit :
26Il faut surtout ne pouvoir lire quau plus une lettre de a
` chaque transition.
27e comme empilement et d comme d
epilement

VI.10. Un theor`eme de Sch


utzenberger

I
I
I

147

, .p = p,
i {1, . . . , k}, ei .p = i p,
si p = i p0 , alors di .p = p0 .

Si x = x1 xn , on a x.p = x1 .( (xn1 .(xn .p)) ) pour autant


que ces operations puissent etre definies 28. En particulier, xy.p = x.(y.p),
x, y .
D
efinition VI.10.1. Avec les notations qui pr
ec`edent, on introduit le lan-

gage DA forme des mots qui transforment la pile vide en elle-meme, i.e.,
DA = {x | x. = }.

ebrique et genere par la gramProposition VI.10.2. Le langage DA est alg

maire dont les r`egles sont donnees par

S Sd1 Se1 S | | Sdk Sek S | 1 S | | m S | .


D
emonstration. Soit w DA . Montrons que S w par r
ecurrence

sur |w|. Si w = , le resultat est satisfait. Supposons le resultat acquis


pour les mots de longueur au plus ` et verifions-le pour les mots de longueur
` + 1. Si w `+1 , le resultat est immediat. Il suffit dappliquer ` + 1 r`egles
S t S. Nous pouvons donc supposer que w contient un symbole e i (que
nous prenons le plus a` droite possible dans w), i.e.,
w = uei z,

avec u , z .

Il est clair que z ne contient pas de symbole e j (par choix de ei ), mais il ne


peut non plus contenir des symboles d j (car w ne definirait pas une action
valide). De plus, a` ce symbole ei realisant lempilement de i , il correspond
exactement un symbole di le depilant (car w DA ). Ainsi, on a
w = xdi yei z,

avec x, y .

De l`a, on tire que x, y et z appartiennent a` D A . En appliquant trois fois


lhypoth`ese de recurrence, on a S x, S y, S z. On conclut en
remarquant que S Sdi Sei S xdi yei z = w.
Passons a` la reciproque et verifions que si S w, w , alors w
appartient a` DA . Pour tout p , on pose S.p = p. De cette facon, on
etend laction sur de a` ( {S}) . Montrons par recurrence sur la
longueur de la derivation que si S w, w ( {S}) , alors w.p = p
pour tout p . Si la derivation est de longueur nulle, on a bien S.p = p.
Supposons le resultat satisfait pour les derivations de longueur au plus k
et verifions-le pour une derivation de longueur k + 1. Ainsi, en mettant en
evidence la derni`ere r`egle appliquee, cette derivation se decompose en
S w1 Sw2 w.
28Par exemple, d e .p nest jamais d
efini et ce, quel que soit p. En effet, e1 empile 1
2 1

et on devrait ensuite depiler e2 qui ne se trouve pas au sommet de la pile.

148

Chapitre VI. Introduction aux langages algebriques

Si la derni`ere r`egle appliquee est de la forme S Sd i Sei S, alors w =


w1 Sdi Sei Sw2 et pour tout p , on a
w1 Sdi Sei Sw2 .p = w1 Sdi Sei S.(w2 .p) = w1 Sdi Sei .(w2 .p)
= w1 Sdi S.(i (w2 .p)) = w1 Sdi .(i (w2 .p)) = w1 S.(w2 .p)
= (w1 Sw2 ).p = p
o`
u, a` la derni`ere ligne, on a applique lhypoth`ese de recurrence. Si la derni`ere
r`egle appliquee est de la forme S i S, alors w = w1 i Sw2 et pour tout
p ,
w1 i Sw2 .p = w1 i S.(w2 .p) = w1 i .(w2 .p) = w1 .(w2 .p) = (w1 Sw2 ).p = p.
Enfin, si la derni`ere r`egle appliquee est de la forme S , w = w 1 w2 et
pour tout p ,
w1 w2 .p = (w1 Sw2 ).p = p.
Ceci conclut la preuve.


esentation de Chomsky-Sch
utzenberger).
Th
eor`
eme VI.10.3 (Thm. de repr
Soit L un langage accepte par un automate a
` pile A. Il existe un morphisme h : et un langage regulier R tel que
R
L = h(DA
R).

En particulier, L est algebrique.


D
emonstration. Puisque nous supposons A
elementaire, on peut voir cet

automate comme un automate fini sur lalphabet . En effet, il suffit de


remplacer les transitions par des arcs de label appartenant a` :
I
I
I
I

(p, , , q, ) devient p q,

(p, i , , q, ) devient p i q,
e
(p, , i , q, ) devient p i q,
d

(p, , , q, i ) devient p i q.

Par le theor`eme de Kleene, le langage R accepte par cet automate est


regulier. Soit w , un mot accepte par lautomate a` pile A. Cela signifie
que
[q0 , w, ] ` [q, , ], avec q F.

A ce mot, il correspond donc un chemin dans A de label W debutant


en q0 et aboutissant en q F . Puisque, pour etre accepte par lautomate,
la suite de configurations debute et se finit par une pile vide, il est clair
que W R appartient a` DA . De plus, W appartient a` R. On retrouve w en
appliquant a` W le morphisme

i 7 i
h : :
e 7
i
di 7 .

VI.11. Exercices

149

Ce morphisme est simplement defini pour effacer les lettres de \ . ReR R, alors on se convainc ais
ciproquement, si W appartient a` DA
ement
que h(W ) est un mot accepte par lautomate.


Exemple VI.10.4. On a repr


esente a` la figure VI.16 un automate a` pile

elementaire acceptant {an bn | n N}. Le langage regulier accepte par cet

e
A

b
b

d
A

dA

Figure VI.16. Automate elementaire acceptant {a n bn | n N}.


automate est
R = (a eA ) (b dA ) .
De plus, DA = {dnA enA | n N}. Ce langage est genere par la grammaire
S | dA SeA .
Par exemple, le mot a eA a eA b dA appartient a` R mais nappartient pas a`
R car le mot miroir d b e a e a ne transforme pas la pile vide en la
DA
A
A
A
pile vide, en effet: dA b eA a eA a. = A. Ainsi, a eA a eA b dA nappartient
R car
pas a` DA R. Par contre, le mot a eA b dA appartient a` R et a` DA
dA b eA a. = . Si on lui applique le morphisme h, on trouve
h(a eA b dA ) = ab
qui est bien un mot du langage.
11. Exercices
Exercice VI.11.1. D
eterminer une grammaire hors contexte generant les

langages
L = {wwR | w {a, b} }

et

M = {wcwR | w {a, b} }.
Exercice VI.11.2. D
ecrire une grammaire hors contexte generant les lan-

gages
{an bn cm | n, m N},
et

{an bm cm | n, m N}
{an bm | m > n 0}.

150

Chapitre VI. Introduction aux langages algebriques

Exercice VI.11.3. Le langage {ai bj ck | i 6= j ou i 6= k} est-il alg


ebrique ?

Justifier votre reponse.

Exercice VI.11.4. Le langage

L = {w {a, b, c} : |w|a = |w|b = |w|c }


est-il algebrique ? Justifier. Remarquer quil sagit, en particulier, de la
cloture commutative du langage {a n bn cn | n N}.
Exercice VI.11.5. Dans le plan muni dun rep`
ere orthonorme, on sym-

bolise un deplacement dune unite vers la droite (resp. la gauche, le haut,


le bas) par la lettre D (resp. G, H, B). Ainsi, une suite de deplacements
est representee par un mot sur {D, G, H, B}. Caracteriser le langage des
mots qui correspondent a` un deplacement de deux unites vers la droite. Ce
langage est-il algebrique ? Justifier.
Exercice VI.11.6. Soit le morphisme f tel que f (a) = b et f (b) = a. Le

langage
L = {wf (w) | w {a, b} }

est-il algebrique ?

Exercice VI.11.7. Le langage form


e des mots comprenant deux fois plus

de a que de b est-il algebrique ? Meme question avec le langage


L = {w {a, b} : |w|a = 2|w|b + 3}.
Exercice VI.11.8. Le langage des palindromes est-il alg
ebrique ? Justifier. Meme question en considerant uniquement les palindromes de longueur
paire.
Exercice VI.11.9. Donnez la description dun automate a
` pile determin-

iste acceptant le langage


{wcwR | w {a, b} }.
ecrire un automate a` pile acceptant le langage forme
Exercice VI.11.10. D
des palindromes sur lalphabet {a, b}. Meme question en considerant uniquement les palindromes de longueur paire.
Exercice VI.11.11. Quels sont les langages accept
es respectivement par

les automates a` pile suivants


Exercice VI.11.12. D
ecrire un automate a` pile acceptant le langage L

forme des mots sur {a, b} pour lesquels il existe un prefixe contenant (strictement) plus de b que de a, i.e.,
u, v {a, b} : w = uv et |u|b > |u|a .
Par exemple, baa, abba et abbaaa appartiennent a` L mais aab et ababab ny
appartiennent pas.

VI.11. Exercices

151

a, /AAA

a, /AAA
b, A/

b, A/

b, A/
a, /AAA

b, A/

b, A/
Figure VI.17. Automates a` pile.
Exercice VI.11.13. Montrer que si lautomate a
` pile A = (Q, , , , q 0 , F )

est elementaire alors les langages

Gp,q = {x | m : [p, m, x] ` [q, , ]},


sont reguliers. (Suggestion : exprimer
gages Gr,s , t .)

t 1 .G

p,q

p, q Q

a` laide des differents lan-

Exercice VI.11.14. Utiliser le lemme de la pompe pour montrer que les

langages suivants ne sont pas algebriques


I
I
I

{ak | k N}
{ai bj ci dj | i, j 0}
Lensemble des prefixes de longueur finie du mot infini
abaabaaab ban ban+1 b

ebriques ?
Exercice VI.11.15. Les langages suivants sont-ils alg
L = {ai b2i cj | i, j 0},

et

M = {aj bi c2i | i, j 0}
L M.
Exercice VI.11.16. Soit le langage

L = {ww | w {a, b} }.

Montrer que {a, b} \ L est algebrique mais que L ne lest pas.


Exercice VI.11.17. Fournir une grammaire hors contexte g
enerant le langage L = {ai bj cj d2i | i, j N}.
Exercice VI.11.18. Fournir une grammaire hors contexte g
enerant le langage forme des mots sur {a, b, c} qui commencent par a, se terminent par
bac et qui comprennent un nombre pair de c.
Exercice VI.11.19. Mettre sous forme essentiellement monotone la gram-

maire suivante (elimination des -productions)

152

Chapitre VI. Introduction aux langages algebriques

S ACA
A aAa | B | C
B bB | b
C cC | .
Si la grammaire obtenue contient des 1-productions, les eliminer elles aussi
pour obtenir une grammaire equivalente.
Exercice VI.11.20. Mettre sous forme essentiellement monotone la gram-

maire suivante (elimination des -productions)


S ABC
A aA |
B bB |
C cC | .
Quel est le langage genere par cette grammaire ?
Exercice VI.11.21. Mettre sous forme normale de Chomsky, la grammaire

suivante
S aABA | aBB
A bA | b
B cB | c.
Exercice VI.11.22. Mettre sous forme normale de Chomsky, la grammaire

suivante
S
A
B
C

A | ABa | AbA
Aa |
Bb | BC
CB | CA | bB.

Exercice VI.11.23. Fournir une grammaire non restrictive de type 0

generant le langage
{ww | w {a, b} }.

Meme question avec le langage

{w3 | w {a, b} }.

Bibliographie
[1] A. Aho, J. Ullman, Concepts fondamentaux de linformatique, Dunod, Paris, (1993).
[2] A. Aho, R. Sethi, J. Ullman, Compilers: Principles, Techniques, and Tools, AddisonWesley, (1986).
[3] J.-P. Allouche, J. Shallit, Automatic Sequences, Theory, Applications, Generalizations, Cambridge University Press, Cambridge, (2003).
[4] J.-M. Autebert, Langages algebriques, etudes et recherches en informatique, Masson,
Paris, (1987).
[5] J.-M. Autebert, J. Berstel, L. Boasson, Context-Free Languages and Pushdown Automata, Handbook of Formal Languagues, Vol. 1, Springer, (1997).
[6] E. Bach, J. Shallit, Algorithmic number theory, Efficient algorithms, Foundations of
Computing Series, MIT Press, Cambridge, MA, (1996).
[7] J. Berstel, L. Boasson, The set of minimal words of a context-free language is contextfree, J. Comput. System Sci. 55 (1997), 477488

[8] J. Berstel, C. Reutenauer, Les series rationnelles et leurs langages, Etudes


et
Recherches en Informatique, Masson, Paris, (1984).
[9] V. Berthe, Combinatoire des mots, cours de DEA, Univ. Montpellier II (2006).
[10] V. Bruy`ere, G. Hansel, C. Michaux, R. Villemaire, Logic and p-recognizable sets of
integers, Journees Montoises (Mons, 1992), Bull. Belg. Math. Soc. 1 (1994), 191238.
[11] J. H. Conway, Regular Algebra and Finite Machines, Mathematics Series, Chapman
and Hall, London, (1971).
[12] Ding-Zhu Du, Ker-I Ko, Problem solving in Automata, Languages, And Complexity,
John Wiley & Sons, (2001).
[13] S. Eilenberg, Automata, Languages, and Machines, Vol A., Academic Press, New
York-London, (1974).
[14] S. Eilenberg, Automata, Languages, and Machines, Vol B., Academic Press, New
York-London, (1976).
[15] B. Khoussainov, A. Nerode, Automata Theory and its Applications, Progress in Computer Science and Applied Logic, Vol. 21, Birkh
auser, Boston, (2003).
[16] M. V. Lawson, Finite Automata, Chapman & Hall/CRC Press, (2003).
[17] P. Lecomte, Algorithmitique et Calculabilite, notes de cours, Universite de Li`ege, 1996.
[18] P. Lecomte, M. Rigo, Numeration systems on a regular language, Theory Comput.
Syst. 34 (2001), 2744
[19] M. Lothaire, Algebraic Combinatorics on Words, Encyclopedia of Mathematics and
its Applications 90, Cambridge University Press, Cambridge, (2002).
[20] A. Mateescu, A. Salomaa, Formal Languages: an Introduction and a Synopsis, Handbook of Formal Languagues, vol. 1, Springer, (1997).
[21] D. Perrin, Finite Automata, Handbook of Theoretical Computer Science, J. van
Leeuwen Ed., Elsevier, (1990), 357.
[22] D. Perrin, Les debuts de la theorie des automates, Technique et Science Informatique
14 (1995), 409433.
[23] M. Rigo, Automates et numeration, Bull. Soc. Royale Sci. Li`ege 74 (2005), 249262.

[24] J. Sakarovitch, Elements


de theorie des automates, Vuibert, Paris, (2003).

153

154

Chapitre VI. Bibliographie

[25] A. Salomaa, Theory of Automata, International series of monograps on pure and


applied mathematics, Pergamon Press, Oxford, (1969).
[26] J. Shallit, Numeration systems, linear recurrences, and regular sets, Information and
Computation 113 (1994), 331347.
[27] T. A. Sudkamp, Languages and Machines, An Introduction to the Theory of Computer
Science, second edition, Addison-Wesley, Massachusetts, (1997).
[28] A. Szilard, S. Yu, K. Zhang, J. Shallit, Characterizing regular languages with polynomial densities, MFCS 1992, Lect. Notes in Comput. Sci. 629, 494503, Springer,
(1992).
[29] W. Thomas, Automata on infinite objects, in Handbook of theoretical computer science, Vol. B, 133191, Elsevier, Amsterdam, 1990.
[30] S. Yu, Regular Languages, Handbook of Formal Languagues, vol. 1, Springer, (1997).
[31] P. Wolper, Introduction a
` la calculabilite, InterEditions, Paris, (1991).

Liste des figures


I.1

uv = vu.

I.2

xy = yz, |x| |y|.

I.3
I.4

xy = yz, |x| < |y|.

Preperiode et periode.

16

II.1

Un AFD.

24

II.2

Un automate fini deterministe.

25

II.3

Un AFND.

26

II.4

Un AFND avec -transitions.

27

II.5

Un AFND non elementaire A.

28

Un AFND elementaire equivalent a` A.

28

Un automate non elementaire.

30

II.8

Un automate fini non deterministe.

30

II.9

AFD equivalent a` lAFND de la figure II.8.

31

II.6
II.7

II.10

un ANFD acceptant

II.11

un AFD acceptant

II.12

Lautomate A3 .

a(ba)

a(ba)

a .

a .

32
32
33

II.13

Un AFD acceptant L3 .

34

II.14

Un AFD sur un alphabet unaire.

34

II.15

Representation symbolique dun automate.

35

II.16

Considerer un unique etat initial nest pas une restriction. 36

II.17

36

II.18

Automate acceptant L(A) L(B).

Automate acceptant L(A)L(B).

36

II.19

Automate acceptant (L(A)) .

37

a(ba) .

II.20

Un AFND acceptant

II.21

AFD acceptant

a b

II.22

AFD shuffle.

42

II.23

Deux automates finis deterministes.

43

II.24

Un AFND.

43

II.25

Un AFND a` rendre deterministe.

43

et

(cd) .

155

38
41

156

Liste des figures

II.26

Un AFND.

44

III.1

AFD et AFND acceptant .

47

III.2
III.3
III.4
III.5

AFD et AFND acceptant {}.

47

AFND acceptant {a} et {b}.

48

AFD et AFND acceptant {}.


AFND acceptant

{a} .

III.6

AFND equivalent acceptant

III.7

AFND acceptant {a} {b}.

III.8

AFND acceptant

47
48

{a} .

{a} {b}{a} {b}.

{a} {b}{a} {b}.

48
48
49

III.9

AFND equivalent acceptant

III.10

49

III.11

AFND acceptant ({a} {b}{a} {b}) .

AFND acceptant

III.12

Un automate fini etendu (AFE).

50

III.13

Le pivotage.

51

III.14

Un AFE avant elimination de letat 2.

51

III.15

AFE equivalent apr`es elimination de letat 2.

52

III.16

AFE equivalent apr`es elimination de letat 3.

53

III.17

Le lemme de la pompe.

54

III.18

Expression reguli`ere du langage accepte.

58

III.19

Expression reguli`ere du langage accepte.

58

IV.1

Trois AFD equivalents.

59

IV.2

q 1 .F = w1 .L si (q0 , w) = q.

61

IV.3

Un automate minimal.

64

IV.4

Lautomate minimal dun langage non regulier.

64

IV.5

Une application satisfaisant les proprietes du theor`eme


IV.3.8.
65

IV.6

Un AFD dont on recherche les etats equivalents pour


A .

({a} {b}{a} {b}) {a} .

49
49

69

IV.7

Un automate minimal.

70

IV.8

Un AFD accessible A.

70

IV.9

Un AFD A.

AR .

IV.10

Lautomate

IV.11

Lautomate (A).

72
72
72

IV.12

Lautomate

((A))R .

72

IV.13

Lautomate ((A)).

73

IV.14

Un AFD.

77

Liste des figures

157

IV.15

Un autre AFD.

77

IV.16

Un autre AFD dont on cherche le minimal.

78

IV.17

Recherche des etats equivalents.

79

V.1

Un transducteur.

81

V.2

Un transducteur calculant le morphisme f .

82

u.

V.3

wv appartient a`

85

V.4

Un automate detectant abbab.

87

V.5

Un automate detectant agata.

87

V.6

Un automate detectant ananas.

88

V.7

AFD acceptant les mots ne contenant pas aa.

88

V.8

Chemins de longueur n + 1 joignant q a` r.

89

V.9

Projection : Q QL sur AL .

94

V.10

Situation dans lautomate minimal.

97

V.11

Situation dans lautomate minimal.

97

V.12

AFD acceptant les mots ne contenant pas aa.

98

V.13

Graphe associe a` HL .

99

Automate minimal de L = {w :| |w| a |w|b 0


(mod 2)}.

100

V.15

Indice et periode.

101

V.16

Un AFD dont on recherche le monode syntaxique du


langage associe.

106

V.17

Un AFD dont on recherche le monode syntaxique.

107

V.18

Deux AFD.

107

V.19

Un AFD.

107

VI.1

Un arbre.

113

VI.2

Des arbres danalyse.

114

VI.3

Arbres danalyse provenant de derivations.

115

VI.4

Un arbre danalyse.

116

VI.5

Un arbre danalyse pour 1 2 + 3.

117

Deux arbres danalyse pour 2 + 3 5.

119

V.14

VI.6
VI.7

Un arbre danalyse pour 1 2 + 3.

118

VI.8

Arbres danalyse de 1 2 + 3 et 2 + 3 5 pour une


grammaire non ambigue.
119

VI.9

Arbres danalyse de hauteur 1 pour une grammaire mise


sous forme normale de Chomsky.
134

VI.10

Un arbre danalyse pour une grammaire sous forme de


Chomsky.
135

158

Liste des figures

VI.11

Un arbre danalyse avec A apparaissant deux fois.

135

VI.12

Representation dune pile.

137

VI.13

Une transition dun automate a` pile.

138

VI.14

Un automate a` pile acceptant {a n bn | n N}.

139

VI.15

Automate acceptant L(G).

VI.16

Automate elementaire acceptant

VI.17

Automates a` pile.

{a n bn

| n N}.

140
149
151

Index

Pref(L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Pref(w). . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Suff(L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Suff(w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Notations
DA (pile vide) . . . . . . . . . . . . . . . . . . . 147
D L (derive) . . . . . . . . . . . . . . . . . . . . . 62
Eu (p) (recherche dun mot) . . . . . . . 85
F (etats finals) . . . . . . . . . . . . . . . . 23, 25
L (etoile de Kleene) . . . . . . . . . . . . . . 8
L+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Ln (puissance) . . . . . . . . . . . . . . . . . . . . . 7
Q (etats) . . . . . . . . . . . . . . . . . . . . . . 23, 25
S 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
AL (automate minimal) . . . . . . . . . . 62
(relation de transition) . . . . . . . . . 25
(fonction de transition) . . . . . . . . . 23
L (congruence syntaxique) . . . . . . 95
Ca (sous-groupe). . . . . . . . . . . . . . . . .101
HL (monode des transitions) . . . . . 97
Com(L) (cl
oture commutative) . . . . 10
Pal( ) (palindromes) . . . . . . . . . . . . . 6
(A) (determinise de AR ) . . . . . . . . 70
2 (valeur base 2) . . . . . . . . . . . . . . . . 45
(fonction de Parikh) . . . . . . . . . . . . . 1
L (complexite) . . . . . . . . . . . . . . . 42, 88
tt (shuffle) . . . . . . . . . . . . . . . . . . . . . . 10

L (congruence de Nerode) . . . . . . . 60

k
L (racine dun langage) . . . . . . . . . 74
(mot vide) . . . . . . . . . . . . . . . . . . . . . . . 1
-production . . . . . . . . . . . . . . . . . . . . 124
-transitions . . . . . . . . . . . . . . . . . . . . . . 27
|w| (longueur) . . . . . . . . . . . . . . . . . . . . . 1
|w| (nombre de lettres) . . . . . . . . . . . 1
q 1 .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
q0 (etat initial) . . . . . . . . . . . . . . . . . . . 23
wR (miroir). . . . . . . . . . . . . . . . . . . . . . . .6
w1 .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Fac(L). . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Fac(w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

A
adjacence (matrice) . . . . . . . . . . . . . . . 88
AFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
AFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
AFND. . . . . . . . . . . . . . . . . . . . . . . . . . . .25
algorithme
1-production . . . . . . . . . . . . . . . . . . 127
etats equivalents . . . . . . . . . . . . . . . 68
constr. par sous-ensembles . . . . . 30
obtention expression reguli`ere . . 52
semi-groupe aperiodique. . . . . . .103
symboles inutiles . . . . . . . . . . . . . . 129
variables effacables . . . . . . . . . . . . 125
alphabet . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
ancetre . . . . . . . . . . . . . . . . . . . . . . . . . . 113
arbre danalyse . . . . . . . . . . . . . . . . . . 113
fruit . . . . . . . . . . . . . . . . . . . . . . . . . . 114
automate
emonde . . . . . . . . . . . . . . . . . . . . . . . . 91
a
` pile . . . . . . . . . . . . . . . . . . . . . . . . . 138
elementaire . . . . . . . . . . . . . . . . . 139
atomique . . . . . . . . . . . . . . . . . . . 139
configuration . . . . . . . . . . . . . . . 138
determinsite . . . . . . . . . . . . . . . . 139
equivalent . . . . . . . . . . . . . . . . . . 139
accessible . . . . . . . . . . . . . . . . . . . . . . 65
complet . . . . . . . . . . . . . . . . . . . . . . . . 23
elementaire . . . . . . . . . . . . . . . . . . . . . 27
equivalent. . . . . . . . . . . . . . . . . . .26, 50
fini deterministe . . . . . . . . . . . . . . . . 23
fini etendu . . . . . . . . . . . . . . . . . . . . . 50
fini non deterministe . . . . . . . . . . . 25
159

160

Index

minimal . . . . . . . . . . . . . . . . . . . . . . . . 62
reduit . . . . . . . . . . . . . . . . . . . . . . . . . . 65
sans permutation. . . . . . . . . . . . . .108

Parikh (de) . . . . . . . . . . . . . . . . . . . . . . 1
rationnelle . . . . . . . . . . . . . . . . . . . . . 81
transition . . . . . . . . . . . . . . . . . . . . . . 23

Bar-Hillel (theor`eme de) . . . . . . . . . 134

grammaire
equivalente . . . . . . . . . . . . . . . . . . . . 110
algebrique . . . . . . . . . . . . . . . . . . . . .110
dependant du contexte . . . . . . . . 122
hors contexte . . . . . . . . . . . . . . . . . 110
lineaire. . . . . . . . . . . . . . . . . . . . . . . .122
monotone . . . . . . . . . . . . . . . . . . . . . 123
non contractante . . . . . . . . . . . . . . 123
non ambigue . . . . . . . . . . . . . . . . . . 111
non restrictive . . . . . . . . . . . . . . . . 122
production . . . . . . . . . . . . . . . . . . . . 110
reguli`ere . . . . . . . . . . . . . . . . . . . . . . 121
r`egle de derivation . . . . . . . . . . . . 110
symbole
non terminal . . . . . . . . . . . . . . . . 110
terminal . . . . . . . . . . . . . . . . . . . . 110
symbole initial . . . . . . . . . . . . . . . . 110
variable . . . . . . . . . . . . . . . . . . . . . . . 110
Greibach
forme normale . . . . . . . . . . . . . . . . 133

C
Chomsky
-Sch
utzenberger (theor`eme) . . . 148
forme normale . . . . . . . . . . . . . . . . 131
hierarchie (de) . . . . . . . . . . . . . . . . 123
cl
oture commutative . . . . . . . . . . . . . . 10
complexite . . . . . . . . . . . . . . . . . . . . . . . .88
congruence syntaxique . . . . . . . . . . . . 95
constante . . . . . . . . . . . . . . . . . . . . . . . .136
D
depiler . . . . . . . . . . . . . . . . . . . . . . . . . . 138
derivation . . . . . . . . . . . . . . . . . . . . . . . 110
a
` gauche . . . . . . . . . . . . . . . . . . . . . . 111
a
` droite . . . . . . . . . . . . . . . . . . . . . . . 111
descendant . . . . . . . . . . . . . . . . . . . . . . 113
Dyck (langage de) . . . . . . . . . . . . . . . 112
E
empiler . . . . . . . . . . . . . . . . . . . . . . . . . . 138
ensemble
lineaire. . . . . . . . . . . . . . . . . . . . . . . .136
semi-lineaire . . . . . . . . . . . . . . . . . . 136
ultimement periodique . . . . . . . . . 15
etat . . . . . . . . . . . . . . . . . . . . . . . . . . . 23, 25
accessible . . . . . . . . . . . . . . . . . . . . . . 39
coaccessible . . . . . . . . . . . . . . . . . . . . 39
final . . . . . . . . . . . . . . . . . . . . . . . . 23, 25
initial . . . . . . . . . . . . . . . . . . . . . . . 23, 25
etoile (lemme) . . . . . . . . . . . . . . . . . . . . 54
etoile de Kleene. . . . . . . . . . . . . . . . . . . .8
expression reguli`ere . . . . . . . . . . . . . . . 11
equivalente . . . . . . . . . . . . . . . . . . . . . 12
sans etoile. . . . . . . . . . . . . . . . . . . . .100
F
facteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
factoriel (langage) . . . . . . . . . . . . . . . . . 9
fils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
fonction
complexite (de) . . . . . . . . . . . . . . . . 88

I
indice . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
K
Kleene
etoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
theor`eme (de) . . . . . . . . . . . . . . . . . . 53
L
langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
accepte . . . . . . . . . . . . . . . . . 24, 26, 50
algebrique . . . . . . . . . . . . . . . . . . . . .110
commutatif. . . . . . . . . . . . . . . . . . . . .10
concatenation . . . . . . . . . . . . . . . . . . . 7
Dyck . . . . . . . . . . . . . . . . . . . . . . . . . . 112
etoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
factoriel . . . . . . . . . . . . . . . . . . . . . . . . . 9
hors contexte . . . . . . . . . . . . . . . . . 110
image inverse par morphisme . . . . 9
image par morphisme. . . . . . . . . . . .9
miroir . . . . . . . . . . . . . . . . . . . . . . . . . . 10
non ambigu . . . . . . . . . . . . . . . . . . . 111

Index

prefixe . . . . . . . . . . . . . . . . . . . . . . . . 145
prefixiel . . . . . . . . . . . . . . . . . . . . . . . . . 9
puissance . . . . . . . . . . . . . . . . . . . . . . . . 7
regulier . . . . . . . . . . . . . . . . . . . . . . . . 12
racine k-i`eme . . . . . . . . . . . . . . . . . . . 74
sans etoile. . . . . . . . . . . . . . . . . . . . .100
shuffle . . . . . . . . . . . . . . . . . . . . . . . . . . 10
suffixiel. . . . . . . . . . . . . . . . . . . . . . . . . .9
lettre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
lineaire . . . . . . . . . . . . . . . . . . . . . . . . . . 136
M
matrice (adjacence) . . . . . . . . . . . . . . . 88
miroir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
monode syntaxique . . . . . . . . . . . . . . 96
morphisme . . . . . . . . . . . . . . . . . . . . . . . . 2
effacant . . . . . . . . . . . . . . . . . . . . . . . . 10
non effacant . . . . . . . . . . . . . . . . . . . . 10
mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
concatenation . . . . . . . . . . . . . . . . . . . 3
constant . . . . . . . . . . . . . . . . . . . . . . . . . 5
longueur . . . . . . . . . . . . . . . . . . . . . . . . 1
periode . . . . . . . . . . . . . . . . . . . . . . . . . . 5
primitif . . . . . . . . . . . . . . . . . . . . . . . . 19
vide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Myhill-Nerode (theor`eme de) . . . . . 67
N
Nerode (congruence) . . . . . . . . . . . . . .60
P
periode . . . . . . . . . . . . . . . 5, 15, 102, 136
p`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
palindrome . . . . . . . . . . . . . . . . . . . . . . . . 6
Parikh
fonction . . . . . . . . . . . . . . . . . . . . . . . . . 1
theor`eme . . . . . . . . . . . . . . . . . . . . . . 136
vecteur . . . . . . . . . . . . . . . . . . . . . . . . . . 1
pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
depiler . . . . . . . . . . . . . . . . . . . . . . . . 138
empiler . . . . . . . . . . . . . . . . . . . . . . . 138
pompe (lemme) . . . . . . . . . . . . . . 54, 134
pompe (lemme, version forte) . . . . . 55
prefixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
langage . . . . . . . . . . . . . . . . . . . . . . . 145
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
prefixiel (langage) . . . . . . . . . . . . . . . . . 9
preperiode . . . . . . . . . . . . . . . . . . . . . . . . 15

161

primitif . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
production . . . . . . . . . . . . . . . . . . . . . . 110
R
r`egle de derivation . . . . . . . . . . . . . . . 110
Rabin M. O.. . . . . . . . . . . . . . . . . . . . . .29
racine primitive. . . . . . . . . . . . . . . . . . .19
rationnelle (fonction) . . . . . . . . . . . . . 81
relation de transition . . . . . . . . . . . . . 25
S
serie generatrice . . . . . . . . . . . . . . . . . . 92
Sch
utzenberger (theor`eme de)104, 148
Scott D. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
semi-groupe . . . . . . . . . . . . . . . . . . . . . 101
aperiodique . . . . . . . . . . . . . . . . . . . 103
indice . . . . . . . . . . . . . . . . . . . . . . . . . 102
neutre . . . . . . . . . . . . . . . . . . . . . . . . 101
periode . . . . . . . . . . . . . . . . . . . . . . . 102
zero . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
semi-lineaire . . . . . . . . . . . . . . . . . . . . . 136
shuffle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
subset construction . . . . . . . . . . . . . . . 30
suffixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
suffixiel (langage) . . . . . . . . . . . . . . . . . . 9
symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
initial . . . . . . . . . . . . . . . . . . . . . . . . . 110
inutile. . . . . . . . . . . . . . . . . . . . . . . . .129
non terminal . . . . . . . . . . . . . . . . . . 110
terminal . . . . . . . . . . . . . . . . . . . . . . 110
utile . . . . . . . . . . . . . . . . . . . . . . . . . . 129
syntaxique
conguence . . . . . . . . . . . . . . . . . . . . . . 95
monode. . . . . . . . . . . . . . . . . . . . . . . .96
T
theor`eme
Bar-Hillel . . . . . . . . . . . . . . . . . . . . . 134
Chomsky-Sch
utzenberger . . . . . . 148
Kleene . . . . . . . . . . . . . . . . . . . . . . . . . 53
Myhill-Nerode . . . . . . . . . . . . . . . . . . 67
Parikh . . . . . . . . . . . . . . . . . . . . . . . . 136
Sch
utzenberger . . . . . . . . . . . . . . . . 104
transducteur. . . . . . . . . . . . . . . . . . . . . .81
transition
fonction . . . . . . . . . . . . . . . . . . . . . . . . 23

162

relation . . . . . . . . . . . . . . . . . . . . . . . . 25
U
ultimement periodique . . . . . . . . . . . . 15
V
variable . . . . . . . . . . . . . . . . . . . . . . . . . 110
accessible . . . . . . . . . . . . . . . . . . . . . 130
effacable . . . . . . . . . . . . . . . . . . . . . . 125
inaccessible . . . . . . . . . . . . . . . . . . . 130
vecteur de Parikh . . . . . . . . . . . . . . . . . . 1

Index

Vous aimerez peut-être aussi