You are on page 1of 217

Langages formels,

Calculabilit et Complexit
Anne 2007/2008
Formation interuniversitaire en informatique
de lcole Normale Suprieure
Olivier Carton
Version du 5 juin 2008
Rdaction
Une toute premire version de ce support de cours a t rdige pendant
lanne 2004/2005 par les lves Gatan Bisson, Franois Garillot, Thierry Mar-
tinez et Sam Zoghaib. Ensuite, il a t compltement repris et trs largement
to par mes soins. Mme si la version actuelle est relativement loigne de la
premire version, elle lui doit limpulsion initiale sans laquelle elle nexisterait
peut-tre pas. Certains passages ont aussi bnci de quelques travaux de r-
daction des lves. Malgr tous ces eorts, ce support de cours contient encore
de trop nombreuses erreurs et omissions. Une certaine indulgence est demande
au lecteur. Les corrections et suggestions sont bien sr les bienvenues.
Objectifs
Ce support de cours rete les deux objectifs de ce cours. Le premier est dac-
qurir les principales notions lmentaires en langages formels, calculabilit et
complexit. Le second est de ne pas rester uniquement au niveau des dnitions
et trivialits et de montrer quelques jolis rsultats de ces dirents domaines. Ce
choix fait que des rsultats de dicults trs direntes se ctoient. Le premier
chapitre sur les langages rationnels contient par exemple le lemme de ltoile
mais aussi la caractrisation de Schtzenberger des langages sans toile.
Plan
La structure de ce document reprend la division du cours en deux grandes
parties : les langages formels dune part, calculabilit et complexit dautre part.
Chacune de ces deux parties est scinde en deux chapitres. Les deux premiers
chapitres sont consacrs aux langages rationnels et aux langages algbriques et
les deux suivants la calculabilit et la complexit.
Tlchargement
Ce support de cours est disponible lURL
http://www.liafa.jussieu.fr/~carton/Enseignement/Complexite/ENS/Support/.
Table des matires
I Langages formels 7
1 Langages rationnels 9
1.1 Premires dnitions . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Oprations rationnelles . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Combinatoire des mots . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Priodicits . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Mots innis . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.3 Motifs invitables . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.4 Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4 Un peu dordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.1 Quasi-ordres sur les mots . . . . . . . . . . . . . . . . . . 25
1.4.2 Ordres sur les mots . . . . . . . . . . . . . . . . . . . . . . 26
1.4.3 Quasi-ordres sur les arbres . . . . . . . . . . . . . . . . . . 27
1.5 Langages rationnels . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.1 Expressions rationnelles . . . . . . . . . . . . . . . . . . . 29
1.5.2 Automates . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.6 Automates dterministes . . . . . . . . . . . . . . . . . . . . . . . 37
1.7 Automate minimal . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.7.1 Quotients . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.7.2 Congruence de Nerode . . . . . . . . . . . . . . . . . . . . 41
1.7.3 Calcul de lautomate minimal . . . . . . . . . . . . . . . . 43
1.8 Proprits de clture . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.8.1 Oprations boolennes . . . . . . . . . . . . . . . . . . . . 47
1.8.2 Morphisme et morphisme inverse . . . . . . . . . . . . . . 47
1.9 Lemme de ltoile et ses variantes . . . . . . . . . . . . . . . . . . 48
1.10 Hauteur dtoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.11 Reconnaissance par morphisme . . . . . . . . . . . . . . . . . . . 53
1.12 Langages sans toile . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.13 Complments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.13.1 Conjecture de ern . . . . . . . . . . . . . . . . . . . . . 65
1.13.2 Rationnels dun monode quelconque . . . . . . . . . . . . 66
2 Langages algbriques 69
2.1 Grammaires algbriques . . . . . . . . . . . . . . . . . . . . . . . 69
2.1.1 Dnitions et exemples . . . . . . . . . . . . . . . . . . . 69
2.1.2 Grammaires rduites . . . . . . . . . . . . . . . . . . . . . 73
2.1.3 Grammaires propres . . . . . . . . . . . . . . . . . . . . . 74
2.1.4 Forme normale quadratique . . . . . . . . . . . . . . . . . 75
3
4 TABLE DES MATIRES
2.2 Systmes dquations . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.2.1 Substitutions . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.2.2 Systme dquations associ une grammaire . . . . . . . 77
2.2.3 Existence dune solution pour o(G) . . . . . . . . . . . . 78
2.2.4 Unicit des solutions propres . . . . . . . . . . . . . . . . 79
2.2.5 Thorme de Parikh . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 Systmes dquations en commutatifs . . . . . . . . . . . 80
2.2.7 Solutions rationnelles des systmes commutatifs . . . . . . 81
2.3 Arbres de drivation . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.3.1 Ambigut . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.3.2 Lemme ditration . . . . . . . . . . . . . . . . . . . . . . 85
2.3.3 Applications du lemme ditration . . . . . . . . . . . . . 87
2.3.4 Ambigut inhrente . . . . . . . . . . . . . . . . . . . . . 89
2.4 Proprits de clture . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.4.1 Oprations rationnelles . . . . . . . . . . . . . . . . . . . 89
2.4.2 Substitution algbrique . . . . . . . . . . . . . . . . . . . 90
2.4.3 Intersection avec un rationnel . . . . . . . . . . . . . . . . 90
2.4.4 Morphisme inverse . . . . . . . . . . . . . . . . . . . . . . 91
2.4.5 Thorme de Chomsky-Schtzenberger . . . . . . . . . . . 92
2.5 Forme normale de Greibach . . . . . . . . . . . . . . . . . . . . . 94
2.6 Automates pile . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.6.1 Dnitions et exemples . . . . . . . . . . . . . . . . . . . 96
2.6.2 Dirents modes dacceptation . . . . . . . . . . . . . . . 98
2.6.3 quivalence avec les grammaires . . . . . . . . . . . . . . 100
2.6.4 Automates pile dterministes . . . . . . . . . . . . . . . 102
2.7 Complments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.7.1 Rcriture . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.7.2 Contenus de pile . . . . . . . . . . . . . . . . . . . . . . . 105
2.7.3 Groupe libre . . . . . . . . . . . . . . . . . . . . . . . . . 106
II Calculabilit et complexit 109
3 Calculabilit 111
3.1 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.1.1 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.1.2 Logique propositionnelle . . . . . . . . . . . . . . . . . . . 113
3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.2.1 Notion de problme . . . . . . . . . . . . . . . . . . . . . 113
3.2.2 Notion de codage . . . . . . . . . . . . . . . . . . . . . . . 114
3.2.3 Machines de Turing . . . . . . . . . . . . . . . . . . . . . 115
3.2.4 Graphe des congurations . . . . . . . . . . . . . . . . . . 119
3.2.5 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.2.6 Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.3 Langages rcursivement numrables . . . . . . . . . . . . . . . . 129
3.4 Langages dcidables . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.5 Problme de correspondance de Post . . . . . . . . . . . . . . . . 136
3.5.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.5.2 Indcidabilit . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.5.3 Application aux grammaires algbriques . . . . . . . . . . 139
TABLE DES MATIRES 5
3.6 Thorme de rcursion . . . . . . . . . . . . . . . . . . . . . . . . 141
3.7 Machines linairement bornes . . . . . . . . . . . . . . . . . . . 143
3.7.1 Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.7.2 Grammaires contextuelles . . . . . . . . . . . . . . . . . . 144
3.7.3 Dcidabilit . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.7.4 Complmentation . . . . . . . . . . . . . . . . . . . . . . . 146
3.8 Dcidabilit de thories logiques . . . . . . . . . . . . . . . . . . . 149
3.8.1 Modles et formules logiques . . . . . . . . . . . . . . . . 149
3.8.2 Arithmtique de Presburger . . . . . . . . . . . . . . . . . 150
3.9 Fonctions rcursives . . . . . . . . . . . . . . . . . . . . . . . . . 153
3.9.1 Fonctions primitives rcursives . . . . . . . . . . . . . . . 153
3.9.2 Fonctions rcursives . . . . . . . . . . . . . . . . . . . . . 157
3.9.3 quivalence avec les machines de Turing . . . . . . . . . . 157
3.9.4 Thse de Church . . . . . . . . . . . . . . . . . . . . . . . 158
3.10 Complments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.10.1 critures des entiers dans une base . . . . . . . . . . . . . 158
3.10.2 Machines de Turing sans criture sur lentre . . . . . . . 161
4 Complexit 165
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.1.2 Dnition des complexits . . . . . . . . . . . . . . . . . . 165
4.2 Complexit en temps . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.2.1 Thorme dacclration . . . . . . . . . . . . . . . . . . . 166
4.2.2 Changements de modles . . . . . . . . . . . . . . . . . . 167
4.2.3 Classes de complexit en temps . . . . . . . . . . . . . . . 168
4.2.4 NP-compltude . . . . . . . . . . . . . . . . . . . . . . . . 172
4.2.5 NP-compltude de Sat et 3Sat . . . . . . . . . . . . . . 173
4.2.6 Exemples de problmes NP-complets . . . . . . . . . . . . 176
4.3 Complexit en espace . . . . . . . . . . . . . . . . . . . . . . . . . 183
4.3.1 Changement de modle . . . . . . . . . . . . . . . . . . . 183
4.3.2 Classes de complexit en espace . . . . . . . . . . . . . . . 186
4.3.3 Complexits en temps et en espace . . . . . . . . . . . . . 186
4.3.4 Exemples de problmes dans PSpace . . . . . . . . . . . 187
4.3.5 PSpace-compltude . . . . . . . . . . . . . . . . . . . . . 189
4.3.6 Espace logarithmique . . . . . . . . . . . . . . . . . . . . 190
4.3.7 NL-compltude . . . . . . . . . . . . . . . . . . . . . . . . 195
4.4 Thormes de hirarchie . . . . . . . . . . . . . . . . . . . . . . . 197
4.5 Machines alternantes . . . . . . . . . . . . . . . . . . . . . . . . . 198
4.5.1 Dnitions et exemples . . . . . . . . . . . . . . . . . . . 198
4.5.2 Complmentation . . . . . . . . . . . . . . . . . . . . . . . 200
4.5.3 Automates alternants . . . . . . . . . . . . . . . . . . . . 202
4.5.4 Classes de complexit . . . . . . . . . . . . . . . . . . . . 204
4.6 Complments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.6.1 Machines une bande en temps o(nlog n) . . . . . . . . . 206
Bibliographie 214
Index 215
6 TABLE DES MATIRES
Premire partie
Langages formels
7
Chapitre 1
Langages rationnels
Les langages rationnels sont le premier niveau de la hirarchie de Chomsky.
Cette famille est constitue des langages accepts par les automates nis qui
sont le modle le plus simple de machines. Cette famille de langages jouit de
proprits remarquables. Elle est en particulier close par de trs nombreuses
oprations.
La thorie des automates est une thorie relativement riche et certains de ses
rsultats sont de vritables perles. Elle entretient aussi des liens avec beaucoup
dautres domaines comme la dynamique symbolique, la combinatoire, lalgbre,
la topologie, la thorie des jeux, larithmtique, la logique et lalgorithmique.
Certains de ces liens avec lalgbre et la logique sont abords dans ce support
de cours (cf. sections 1.11 et 3.8.2 par exemple).
Les automates se sont aussi imposs comme un outil incontournable dun
point de vue pratique. Tout diteur de texte un peu volu comprend une fonc-
tion de recherche partir dune expression rationnelle. Cette recherche com-
mence toujours par la construction dun automate quivalent lexpression. Les
automates sont aussi utiliss dans le domaine de la vrication. Il sagit dans ce
domaine de vrier quun objet tel un composant logiciel ou un protocole est
bien conforme une spcication.
Ce chapitre introduit les notions de mots et de langages. Aprs quelques
lments de combinatoire des mots, il dveloppe les langages rationnels et les
automates nis qui les acceptent. Une dernire partie est consacre la re-
connaissance par morphismes des langages rationnels et la caractrisation des
langages sans toile. Pour lessentiel du chapitre, une bonne rfrence est [Per90].
1.1 Premires dnitions
On commence par quelques dnitions lmentaires. La terminologie est em-
prunte la linguistique et provient du fait quun des objectifs initiaux de ce
domaine tait la modlisation des langues naturelles.
Dnition 1.1. Un alphabet est un ensemble ni (souvent not A ou )
dont les lments sont appels lettres ou symboles.
Un mot w sur lalphabet A est une suite nie w
1
w
2
w
n
de lettres de A.
Lentier n est appel la longueur de w qui est note [w[.
Le mot vide not ou parfois 1 correspond lunique mot de longueur 0.
9
10 CHAPITRE 1. LANGAGES RATIONNELS
Un langage sur lalphabet A est un ensemble de mots sur A.
Lensemble de tous les mots sur lalphabet A est not A

et il est appel
le monode libre sur A.
Un mot est crit en juxtaposant ses lments sans sparateur. Par exemple,
le mot w de longueur 3 dont les lments sont a, b et a est simplement crit
aba. Un mot de longueur 1 est crit comme son unique lettre. Cette confusion
entre une lettre a et le mot de longueur 1 dont lunique lment est a est sans
consquence et mme souvent trs pratique.
La concatnation des deux mots u = u
1
u
m
et v = v
1
v
n
est le mot
not u v ou uv et gal u
1
u
m
v
1
v
n
obtenu par simple juxtaposition.
Cest une opration associative dont le mot vide est llment neutre. Cest
pour cette raison que le mot vide est parfois not 1.
Exemple 1.2. Si u = abaa et v = bab, on a uv = abaabab et vu = bababaa. La
concatnation nest pas commutative.
Comme la concatnation est une loi de composition interne associative avec
un lment neutre, elle munit lensemble A

de tous les mots dune structure


de monode. Pour cette raison, la concatnation est aussi appele produit. Ce
monode est dit libre parce que les seules quations quil satisfait sont celles qui
sont consquences de la dnition de monode. Ce fait est nonc de manire
rigoureuse la proposition 1.116 (p. 54). La notion de structure libre peut tre
dnie de manire trs gnrale dans le cadre de lalgbre universelle [Alm94].
Exercice 1.3. Soit lalphabet A = 0, 1 et soit la suite de mots (f
n
)
n0
dnie
par rcurrence par f
0
= 1, f
1
= 0 et f
n+2
= f
n+1
f
n
pour n 0.
Montrer que si n 2, alors f
n
se termine par 01 si n est pair et par 10
sinon.
Montrer que le mot g
n
obtenu en supprimant les deux dernires lettres
de f
n
, cest--dire f
n
= g
n
01 si n pair et f
n
= g
n
10 sinon est un pa-
lindrome. On rappelle quun palindrome est un mot qui reste identique
lorsquil est retourn.
Solution. La premire proprit se montre facilement par rcurrence sur n. On
vrie en eet que f
2
= 01 se termine par 01 et que f
3
= 010 se termine par 10.
La relation f
n+2
= f
n+1
f
n
montre ensuite que f
n+2
se termine comme f
n
.
Pour la seconde proprit, on remarque que g
2
= , g
3
= 0 g
4
= 010 sont bien
des palindromes et on montre le rsultat par rcurrence sur n. On suppose le
rsultat acquis pour f
n
et f
n+1
et on montre le rsultat pour f
n+3
. On suppose
dabord que n est pair. Les mots f
n
et f
n+1
scrivent alors f
n
= g
n
01 et
f
n+1
= g
n+1
10 o g
n
et g
n+1
sont des palindromes. Les mots f
n+2
et f
n+3
sont alors gaux f
n+1
f
n
= g
n+1
10g
n
01 et g
n+1
10g
n
01g
n+1
10 do on tire
g
n+3
= g
n+1
10g
n
01g
n+1
qui est un palindrome. Le cas n impair se montre de la
mme faon.
Un mot u est un prxe (resp. suxe) dun mot w sil existe un mot v tel
que w = uv (resp. w = vu). Un mot u est un facteur dun mot w sil existe deux
mots v et v

tels que w = vuv

.
Exercice 1.4. Soit w = w
1
w
n
un mot de longueur n. Par un lger abus, on
utilise la notation w
i
mme si lentier i nest pas dans lintervalle [1; n]. On note
ainsi la lettre w
i
o i

est lunique entier tel que 1 i

n et i

i mod n. On
appelle occurrence circulaire dun mot u = u
1
u
p
un entier k dans lintervalle
[1; n] tel que w
k+i1
= u
i
pour chaque 1 i p.
1.2. OPRATIONS RATIONNELLES 11
Montrer que pour tout alphabet A et tout entier k, il existe un mot w
k
tel
que tous les mots de longueur k sur A ont exactement une occurrence circulaire
dans w
k
. Un tel mot est appel un mot de de Bruijn dordre k. Les mots 1100
et 11101000 sont des mots de de Bruijn dordre 2 et 3 sur lalphabet 0, 1.
On pourra considrer lautomate dont lensemble des tats est A
k1
et dont
lensemble des transitions est au
a
ub [ a, b A et u A
k2
. Montrer quil
y a bijection entre les cycles eulriens de cet automate et les mots de de Bruijn
dordre k.
Soit A et B deux alphabets. Un morphisme de monodes de A

dans B

est
une application de A

dans B

qui est compatible avec la structure de monode.


Ceci signie que limage du mot vide est le mot vide (() = ) et que (uv) =
(u)(v) pour tout mot u et v de A

. Limage dun mot w = w


1
w
n
est donc
gal (w) = (w
1
) (w
n
). Le morphisme est compltement dtermin par
les images des lettres. Un morphisme est dit eaant sil existe une lettre a
tel que (a) = .
Exemple 1.5. Soit A lalphabet a, b et soit : A

le morphisme de
monode dtermin par (a) = ab et (b) = a. Ce morphisme est non-eaant.
Limage du mot aba par est le mot abaab = ab a ab.
1.2 Oprations rationnelles
On dnit maintenant les oprations rationnelles qui permettent de construire
de nouveaux langages.
Dnition 1.6 (Union, Produit). Lunion est lopration qui deux lan-
gages L et L

associe le langage L +L

= L L

.
Le produit est lopration qui deux langages L et L

associe le langage
L L

= LL

= uv [ u L et v L

.
Exemple 1.7. Soient les deux langages L = u A

[ [u[ pair et L

= u
A

[ [u[ impair . On a alors les galits suivantes.


L +L

= A

LL

= L

= L

L
L

= L LL = L (L est un sous-monode de A

)
Dnition 1.8 (toile). Soit L A

, on dnit :
L
0
= , L
i+1
= LL
i
, L

=
_
i0
L
i
Cette dnition justie donc a posteriori la notation A

puisque lensemble
de tous les mots est bien ltoile de lalphabet. Il faut remarquer quen gnral
L
i
est dirent de u
i
[ u L et i 0.
Un sous-monode de A

est un langage de A

qui contient le mot vide et qui


est clos pour la concatnation. On vrie que pour tout langage L, le langage L

est le plus petit sous-monode de A

qui contient L. Inversement tout sous-


monode K de A

est de la forme L

puisque K = K

.
Exemple 1.9. Si L = a, ba, alors L

est constitu de tous les mots dans


lesquels chaque b est suivi dun a.
Si L = a
n
b [ n 0, alors L

est constitu du mot vide et de tous les


mots qui se terminent par un b.
12 CHAPITRE 1. LANGAGES RATIONNELS
Si L = , alors L

est le langage uniquement constitu du mot vide.


Pour un langage L, on note L
+
le langage LL

= L

L =

i1
L
i
. Si L
contient le mot vide, on a L
+
= L

et sinon on a L
+
= L

. Le langage A
+
est par exemple lensemble des mots non vides.
1.3 Combinatoire des mots
La combinatoire des mots est ltude des proprits structurelles des mots.
Dans cette partie, on sintresse dabord des questions de priodicit puis
des questions de motifs invitables.
1.3.1 Priodicits
w
u v u v u
Fig. 1.1 Priode dun mot w
Soit w = w
1
w
n
un mot sur un alphabet A. Une priode de w est un
entier p entre 1 et [w[ tel que w
i
= w
i+p
pour tout 1 i [w[ p. Par
convention, la longueur de w est une priode de w. On note P(w) lensemble
des priodes de w. Il faut remarquer quune priode ne divise pas ncessairement
la longueur du mot. Si p est une priode de w, le mot w se factorise w = (uv)
k
u
o lentier k vrie k 1, lentier p est gal [uv[ et le mot v est non vide (cf.
gure 1.1).
w
u u u
Fig. 1.2 Mot non primitif w = u
3
Un mot w est primitif sil ne scrit pas w = u
k
avec k 2. Autrement dit,
un mot est primitif si sa longueur est lunique priode qui divise sa longueur (cf.
gure 1.2). Tout mot w scrit de manire unique w = u
k
o lentier k vrie
k 1 et le mot u est primitif. Lentier k est gal 1 quand w est primitif.
Exemple 1.10. Le mot w = 010101 a P(w) = 2, 4, 6 pour ensemble de priodes.
Il nest pas primitif car il scrit w = (01)
3
. Le mot w

= 01001010010 a P(w

) =
5, 8, 10, 11 pour ensemble de priodes. Il est primitif car aucune de ses priodes
autre que sa longueur ne divise sa longueur.
Le plus grand commun diviseur de deux entiers p et q est not p q. Le
thorme de Fine et Wilf est le rsultat de base de la combinatoire des mots.
Les preuves de beaucoup dautres rsultats font appel ce thorme.
1.3. COMBINATOIRE DES MOTS 13
Thorme 1.11 (Fine-Wilf 1965). Si p et q sont deux priodes dun mot w de
longueur suprieure ou gale p + q p q, alors p q est aussi une priode
de w.
Avant de donner la preuve du thorme, on montre que la borne du thorme
est optimale. Soit (f
n
)
n0
la suite de mots dnie par rcurrence par f
0
= 1,
f
1
= 0 et f
n+2
= f
n+1
f
n
. Les premiers mots de cette suite sont f
2
= 01,
f
3
= 010, f
4
= 01001 et f
5
= 01001010. Les mots de cette suite sont appels
mots de Fibonacci. En eet, la longueur de chaque mot f
n
est le nombre de
Fibonacci F
n
o la suite (F
n
)
n0
est dnie par F
0
= F
1
= 1 et la relation de
rcurrence F
n+2
= F
n+1
+F
n
pour n 0.
Les mots de Fibonacci possdent beaucoup de proprits remarquables. Ils
constituent en particulier des cas extrmaux pour le thorme de Fine et Wilf.
Soit, pour n 2, le mot g
n
obtenu en supprimant de f
n
ses deux dernires
lettres qui sont 01 si n est pair et 10 sinon. Les premiers mots de cette suite
sont donc g
2
= , g
3
= 0, g
4
= 010 et g
5
= 010010. On va montrer que le mot
g
n
admet F
n1
et F
n2
pour priodes mais pas F
n1
F
n2
= 1 alors que sa
longueur [g
n
[ est gale F
n
2 = F
n1
+F
n2
(F
n1
F
n2
) 1. On vrie
facilement que deux nombres de Fibonacci conscutifs F
n
et F
n+1
sont premiers
entre eux : F
n
F
n+1
= 1.
On montre par rcurrence que g
n+2
= f
n+1
g
n
= f
n
g
n+1
pour tout n 2.
Les premires valeurs g
2
= , g
3
= 0 et g
4
= 010 permettent de vrier ces
galits pour n = 2. La formule f
n+2
= f
n+1
f
n
et la dnition de g
n
donnent
immdiatement lgalit g
n+2
= f
n+1
g
n
. On a ensuite g
n+2
= f
n
f
n1
g
n
=
f
n
g
n+1
par hypothse de rcurrence. Les relations g
n+2
= f
n
f
n1
g
n
= f
n
f
n
g
n1
montrent que g
n+2
admet F
n
= [f
n
[ et F
n+1
= [f
n
f
n1
[ pour priodes. Par
contre, g
n
nadmet pas F
n
F
n+2
= 1 pour priode si n 4 car il commence
par le prxe 01.
w
p q d
u
p q
p d
Fig. 1.3 Preuve du thorme de Fine et Wilf
Une preuve un peu dirente est donne en [Lot83, p. 9].
Preuve. Soit d = p q le plus grand commun diviseur de p et q. On xe d et on
prouve le rsultat par rcurrence sur la valeur de p +q. Si p +q d, cest--dire
p = d et q = 0 ou p = 0 et q = d, le rsultat est trivial et on suppose quil est
vrai pour les entiers infrieurs p + q. Soit w un mot tel que [w[ p + q d
et ayant p et q comme priodes. Par symtrie, on peut supposer que p q. Le
mot w est alors factoris w = uv o u est de longueur pd (cf. gure 1.3). Pour
14 CHAPITRE 1. LANGAGES RATIONNELS
tout 1 i q d, on a u
i
= w
i
= w
i+p
= w
i+pq
= u
i+pq
et u a donc p q
comme priode. Comme u a aussi q comme priode, lhypothse de rcurrence
implique que u a d = (pq) q comme priode. Comme [u[ q, le prxe de w
de longueur q a aussi d comme priode. Comme w a q comme priode et que d
divise q, alors w a aussi d comme priode.
On va utiliser le thorme de Fine et Wilf pour prouver le thorme de
Guibas et Odlyzko qui est un rsultat assez surprenant. Il montre en eet que
tout mot a les mmes priodes quun mot sur un alphabet binaire. Ce thorme
est contraire lintuition que plus de lettres dans lalphabet donne plus de
libert pour choisir les priodes. Il est la premire tape dans la caractrisation
des ensembles dentiers qui peuvent apparatre comme lensemble des priodes
dun mot.
Thorme 1.12 (Guibas-Odlyzko 1981). Pour tout mot w, il existe un mot w

sur un alphabet binaire tel que P(w) = P(w

).
Puisque lensemble des priodes dun mot comprend sa longueur, le mot w

fourni par le thorme prcdent est toujours de mme longueur que le mot w.
La preuve du thorme est dcompose en plusieurs lemmes. Le premier est
un corollaire immdiat du thorme de Fine et Wilf. Il donne une premire ide
de la structure de lensemble des priodes dun mot. Il dit essentiellement que
seules les grandes priodes sont irrgulires puisque les autres sont les multiples
de la plus petite priode. La plus petite priode dun mot w est toujours dnie
puisque lensemble P(w) des priodes contient au moins la longueur de w.
Lemme 1.13. Soit w un mot et p sa plus petite priode. Si q est une priode
de w telle que q [w[ p, alors q est un multiple de p.
Preuve. Puisque p + q [w[, lentier p q est aussi une priode de w par le
thorme de Fine et Wilf (thorme 1.11). Par dnition de p, on a d = p et p
divise q.
Le second lemme permet de prolonger nimporte quel mot en un mot primitif.
Sa preuve utilise encore le thorme de Fine et Wilf.
Lemme 1.14. Pour tout mot w sur 0, 1, w0 ou w1 est primitif.
Preuve. Si w = , alors w0 et w1 sont primitifs. Supposons par labsurde que
w est non vide et que les mots w0 et w1 scrivent w0 = u
k
et w1 = v
l
pour
des entier k, l 2 et des mots primitifs u et v. Les longueurs [u[ et [v[ sont des
priodes de w et comme [w[ = k[u[1 = l[v[1 2 max([u[, [v[)1 [u[+[v[1,
lentier d = [u[ [v[ est aussi une priode de w par le thorme de Fine et Wilf
(thorme 1.11). Comme d divise [u[ et [v[ et que les mots u et v sont primitifs,
on a [u[ = d = [v[. Comme u et v sont deux prxes de w, on doit avoir u = v
et ceci contredit le fait que les mots u et v se terminent respectivement avec les
lettres 0 et 1.
On a vu que si p est une priode du mot w, celui-ci se factorise w = (uv)
k
u
o [uv[ = p et v est non vide. On applique ce rsultat la plus petite priode du
mot w. Dans les trois lemmes qui suivent, le mot w est factoris de la manire
suivante.
w = (uv)
k
u o p = [uv[ = minP(w), v ,= et k 1. (1.1)
1.3. COMBINATOIRE DES MOTS 15
La preuve du thorme de Guibas et Odlyzko se fait par rcurrence sur la
longueur du mot w. Elle utilise la factorisation ci-dessus pour se ramener au
mot uv qui est plus petit sauf si [w[ est lunique priode de w (ce dernier cas
est trivial). Les deux premiers lemmes traitent le cas k 2 alors que le dernier
traite le cas k = 1.
Lemme 1.15. Soit w dcompos comme en (1.1) avec k 2 et soit q tel que
[w[ p < q < [w[. Soit q = (k 1)p + r o [u[ < r < [u[ + p. Alors q est une
priode de w si et seulement si r est une priode de uvu.
Preuve. Pour tout 0 < i < [w[ q = p + [u[ r, on a w
i
= (uvu)
i
et w
i+q
=
(uvu)
i+r
. On a donc w
i
= w
i+q
si et seulement si (uvu)
i
= (uvu)
i+r
ce qui
signie exactement que q P(w) si et seulement si r P(uvu).
Lemme 1.16. Soit w dcompos comme en (1.1) avec k 1. Si [uv[ = [u

[
et P(u

) = P(uvu), alors P(w) = P(w

) o w

= (u

)
k
u

.
Preuve. Le cas k = 1 est trivial et on suppose dornavant que k 2. Lgalit
P(u

) = P(uvu) implique [uvu[ = [u

[ et donc [w[ = [w

[. On remarque
ensuite que p = [uv[ est une priode de w

. On xe un entier 1 q [w[ et
on montre que q P(w) si et seulement si q P(w

). On considre deux cas


suivant que q vrie q [w[ p ou q > [w[ p.
On suppose dabord que q [w[ p. Si q P(w

), on a [w

[ = [w[ p + q.
Daprs le thorme de Fine et Wilf (thorme 1.11), lentier d = p q est aussi
une priode de w

. Comme d p = [u

[, d est aussi une priode de u

et
donc de uvu. Comme d divise p, d est nalement une priode de w. La minimalit
de p implique d = p. Comme p divise q, q est une priode de w. Si linverse
q P(w), daprs le lemme 1.13, p divise q et q est une priode de w

.
On suppose maintenant que [w[ p < q < [w[ et on pose r = q (k 1)p qui
vrie [u[ < r < p+[u[. Daprs le lemme prcdent, q P(w) si et seulement si
r P(uvu) = P(u

) qui est, encore daprs le lemme prcdent, quivalent


q P(w

).
Lemme 1.17. Soit w = uvu comme en (1.1) avec k = 1. Soit u

00, 1

tel que P(u

) = P(u). Si b 0, 1 est tel que u

1
|v|1
b soit primitif alors on a
P(w) = P(w

) o w

= u

1
|v|1
bu

.
Preuve. Soit q une priode de w qui vrie donc q p = [u

1
|v|1
b[. Elle
est donc aussi priode de w

puisque P(u) = P(u

). Ceci montre linclusion


P(w) P(w

). Supposons par labsurde que cette inclusion soit stricte et soit


q le plus petit entier de P(w

) P(w). Comme u

commence par un 0, q vrie


q < [u

[ ou p 1 q < [w[.
Si q vrie q < u

, il est, par dnition, la plus petite priode de w

. Le
lemme 1.13 implique que q divise p et que le mot u

1
|v|1
b nest pas primitif, ce
qui est une contradiction.
Si q est gal p 1, on a alors b = 0 et lgalit u

1 = 0u

est nouveau
impossible. On a donc p < q < [w[ et on pose r = q p. Lentier r est une
priode de u

et donc de u. Ceci implique que q est une priode de w qui est en


contradiction avec la dnition de q.
On est maintenant en mesure de prouver le thorme de Guibas et Odlyzko
en combinant les dirents lemmes.
16 CHAPITRE 1. LANGAGES RATIONNELS
Preuve du thorme 1.12. On raisonne par rcurrence sur la longueur de w. Le
rsultat est trivial si [w[ 2. On suppose le rsultat vrai pour tout mot de
longueur infrieure n et soit w un mot de longueur n qui scrit comme en 1.1.
Si k 2, on a [uvu[ < n et par hypothse de rcurrence, il existe u

et v

tels que [uv[ = [u

[ et P(uvu) = P(u

). Le lemme 1.16 permet alors de


conclure.
Si k = 1, on a [u[ < n puisque v nest pas le mot vide. Par hypothse de
rcurrence, il existe u

tel que P(u) = P(u

). Si u = , on a alors P(w) = [w[


et w

= 01
|w|1
vrie P(w) = P(w

). Sinon, on peut supposer par symtrie que


u

commence par 0. Daprs le lemme 1.14, il existe b 0, 1 tel que u

1
|v|1
b
est primitif. Le lemme 1.17 permet alors de conclure.
La preuve du thorme est eective. Il est mme possible den dduire un
algorithme qui calcule en temps linaire en la longueur de w le mot w

tel que
P(w) = P(w

).
Exercice 1.18. Soient six mots x, y, z, x

, y

et z

tels que xyz ,= x

. Montrer
quil existe un entier k
0
tel que pour tout entier k k
0
, on a xy
k
z ,= x

y
k
z

.
1.3.2 Mots innis
On introduit ici les mots innis parce quils sont trs utiles pour ltude des
motifs invitables.
Un mot inni x sur un alphabet A est une suite innie x = x
0
x
1
x
2

de lettres de A. Lensemble des mots innis sur A est not A

. Un mot x =
x
0
x
1
x
2
est priodique sil existe un entier p appel priode tel que x
n
= x
n+p
pour tout n 0. Il est ultimement priodique sil existe deux entiers l et p tels
que x
n
= x
n+p
pour tout n l. Pour un mot ni u de longueur p, le mot
inni de priode p et dont les p premires lettres concident avec celles de u est
not u

. Le lemme 3.77 (p. 160) fournit une caractrisation en terme de facteurs


des mots ultimement priodiques.
On dcrit maintenant une faon trs classique de construire des mots innis.
Un morphisme de A

dans B

est naturellement tendu aux mots innis en


posant (x) = (x
0
)(x
1
)(x
2
) pour tout mot inni x = x
0
x
1
x
2
sur A.
Quelques prcautions sont ncessaires si le morphisme est eaant car (x)
nest pas ncessairement inni.
Soit un morphisme de A

dans A

tel que (a) commence par la lettre a,


cest--dire (a) = au pour u A

. On dnit par rcurrence la suite de mots


nis (w
n
)
n0
par w
0
= a et w
n+1
= (w
n
). On montre par rcurrence que
chaque mot w
n
est prxe du mot w
n+1
. Si de plus lim
+
[w
n
[ = +, la suite
de mots w
n
converge vers un mot inni not

(a). Ce mot est appel point xe


du morphisme car il vrie (

(a)) =

(a).
Exemple 1.19. Soit A lalphabet 0, 1, 2 et : A

le morphisme dni
de la manire suivante.
:
_
_
_
0 01
1 221
2 2
On vrie sans peine que le point xe

(0) est le mot a


0
a
1
a
2
o a
0
= 0,
a
i
= 1 si i est un carr non nul et a
i
= 2 sinon.
1.3. COMBINATOIRE DES MOTS 17
Lexemple prcdent montre que le mot caractristique des carrs (qui a 1
aux positions qui sont des carrs et 0 ailleurs) est un mot de la forme (

(0))
pour des morphismes et . Cette proprit reste encore vraie pour lensemble
P(n) [ n 0 des valeurs prises par un polynme P tel que P(n) est entier
pour tout n 0.
Exemple 1.20. Soit le morphisme dni de la manire suivante.
:
_
0 01
1 0
La suite de mots f
n
=
n
(0) vrie la relation de rcurrence f
n+2
= f
n+1
f
n
et
les valeurs initiales sont f
0
= 0 et f
1
= 01. Il sagit donc de la suite des mots
de Fibonacci dj rencontre au thorme de Fine et Wilf (thorme 1.11). Par
extension, le mot f =

(a) est encore appel mot de Fibonacci. Le dbut de ce


mot est le suivant.
f = 0100101001001010010100100101001001010010100100101001010
1.3.3 Motifs invitables
Le but de cette partie est dtudier les mots qui vitent, cest--dire ne
contiennent pas comme facteurs certains mots. On suppose x un ensemble F
de mots et on sintresse aux mots de A

FA

. Plus particulirement, la
question principale est de dterminer si cet ensemble est ni ou non. Le lemme
suivant reformule cette question en terme de mots innis.
Lemme 1.21. Soit F un sous-ensemble de mots sur un alphabet ni A. Len-
semble A

FA

est inni si et seulement si il existe un mot inni nayant


aucun facteur dans F.
Preuve. Il est clair que si le mot inni x na aucun facteur dans F, alors chacun
de ses prxes a la mme proprit et lensemble en question est inni. La
rciproque est une consquence directe du lemme de Knig (lemme 3.20 p. 129).
Un carr est un mot de la forme uu pour un mot u. Lensemble F est ici
lensemble des carrs non vides. Un mot est dit sans carr sil ne contient pas
de facteur, autre que le mot vide, qui ne soit un carr. Nous allons voir que sur
un alphabet trois lettres, il existe des mots sans carr arbitrairement longs.
w
u
u
a v a v a
Fig. 1.4 Chevauchement de deux occurrences dun facteur u
Sur lalphabet deux lettres 0, 1, les seuls mots sans carr sont les mots
010 et 101 et leurs facteurs. Pour un alphabet trois lettres, on commence
par tudier les chevauchements. Un chevauchement est un mot de la forme
18 CHAPITRE 1. LANGAGES RATIONNELS
uvuvu o u est un mot non vide et v un mot quelconque. Un mot est dit sans
chevauchement sil ne contient pas de facteur qui ne soit un chevauchement.
La terminologie est justie par la remarque suivante. Un mot w contient un
chevauchement si et seulement si un de ses facteurs a deux occurrences qui se
chevauchent (cf. gure 1.4). Si w a un chevauchement uvuvu, le mot uvu a
deux occurrences qui se chevauchement dans w. Rciproquement, soit w un mot
ayant deux occurrences dun facteur u qui se chevauchent. Soit a la premire
lettre de u et soit v le reste de u jusquau dbut de loccurrence suivante (cf.
gure 1.4). Le mot avava est un chevauchement de w. Ceci montre en particulier
quun mot ayant un chevauchement a toujours un chevauchement de la forme
avava o a est une lettre.
On commence par montrer quil existe des mots arbitrairement longs sans
chevauchement sur lalphabet A = 0, 1. Soit le morphisme de Thue-Morse
de A

dans A

dni de la manire suivante.


:
_
0 01
1 10
Le mot inni

(0) et appel mot de Thue-Morse. On prouve sans dicult que


la n-ime lettre du mot de Thue-Morse est 0 si le nombre de 1 dans lcriture
binaire de n est pair et 1 sinon. Le dbut du mot de Thue-Morse est le suivant.
01101001100101101001011001101001
Proposition 1.22. Le mot de Thue-Morse est sans chevauchement.
Soit X lensemble (01 + 10)

. Par dnition mme du morphisme , tout


mot
n
(0) appartient X pour n 1. On commence par tablir une proprit
lmentaire de lensemble X.
Lemme 1.23. Si x appartient X, alors 0x0 et 1x1 nappartiennent pas X.
Preuve. On raisonne par rcurrence sur la longueur de x. Si x est le mot vide,
ni 00 ni 11 nappartient X. Soit x = x
1
x
n
un mot de X de longueur n 1.
Si 0x0 appartient X, on a x
1
= x
n
= 1 et le mot x
2
x
n1
appartient X.
Ceci aboutit une contradiction. Le raisonnement pour 1x1 est similaire.
Preuve de la proposition. Il sut de montrer que les mots
n
(0) sont sans che-
vauchement. On raisonne par rcurrence sur n. Pour n = 1, le mot (0) = 01 ne
contient pas de chevauchement. Supposons par labsurde que le mot w =
n+1
(0)
contienne un chevauchement. Comme cela a t vu, on peut supposer que ce che-
vauchement est de la forme avava o a 0, 1 et v 0, 1

. Le mot w se
factorise donc w = xavavay. On peut supposer que x est de longueur paire.
Lautre cas sobtient en passant au mot miroir puisque x et y ont des longueurs
de parits direntes. Si v est de longueur paire, la seconde occurrence de v
commence une position paire. On en dduit que v et ava sont des mots de X

et ceci est une contradiction daprs le lemme prcdent. Si v est de longueur


impaire, il se factorise v = av

. Comme le premier et le dernier a de avava sont


des positions de mme parit, la premire lettre de y est aussi a et y se factorise
y = ay

. Le mot w se factorise nalement w = xa av

a av

a ay

. Comme x est de
longueur paire, le mot a av

a av

a a est limage dun facteur auaua de


n
(0). Ceci
est en contradiction avec lhypothse de rcurrence.
1.3. COMBINATOIRE DES MOTS 19
On considre le morphisme de 0, 1, 2 dans 0, 1 dni de la manire
suivante.
:
_
_
_
0 0
1 01
2 011
Chaque mot
n
(0) ne contient pas de facteur 111 et commence par 0. Il
appartient donc lensemble (0+01+011)

. On en dduit que pour tout entier n,


il existe un mot w
n
sur lalphabet 0, 1, 2 tel que (w
n
) =
n
(0). Le mot w
n
est en outre unique. Chaque mot w
n
est prxe du mot w
n+1
. La suite (w
n
)
n0
converge vers un mot inni que lon note
1
(

(0)). Le dbut de ce mot est le


suivant.
21020121012021020120210121020120
Thorme 1.24 (Thue 1906). Le mot
1
(

(0)) est sans carr.


Preuve. Il sut de prouver que chacun des mots w
n
est sans carr. Supposons
par labsurde que w
n
contienne un carr uu. On peut supposer que uu a une
occurrence qui nest pas la n de w
n
. Sinon, on remplace w
n
par w
n+1
. Comme
uua est un facteur de w
n
, (u)(u)(a) est un facteur de
n
(0). Les mots
(u) et (a) commencent par 0. Le mot
n
(0) a alors un chevauchement avava
contrairement au rsultat de la proposition prcdente.
Le mot inni
1
(

(0)) peut tre directement obtenu en itrant un mor-


phisme. Soit le morphisme dni de la manire suivante.
:
_
_
_
0 1
1 20
2 210
La suite de mots (
n
(2))
n0
converge vers le mot
1
(

(0)). En eet, on vrie


lgalit = . En utilisant en outre lgalit (2)0 =
2
(0), on montre
par rcurrence que (
n
(2))
n
(0) =
n+2
(0).
Soit le morphisme dni de la manire suivante.
:
_
0 010
1 011
Soit

(0) le point xe de ce morphisme. Ce mot inni est sans cube. En ob-


servant les faons dont les mots de longueur 2 se dcoupent sur 010, 011, on
prouve facilement que si

(0) contenait un cube, il contiendrait un cube de


longueur strictement plus petite.
Les carrs et les chevauchements sont des cas particuliers des rptitions qui
sont des puissances non entires de mots. Soit u un mot de longueur p et soit
r un nombre rationnel de la forme r = q/p. On note u
r
, lunique mot ni de
longueur q qui est prxe du mot u

. Ainsi un carr est mot de la forme u


r
avec
r = 2 alors quun chevauchement est un mot de la forme u
r
avec r > 2.
Plus gnralement, un motif est un mot p sur un alphabet X de variables.
Un mot sur un alphabet A contient le motif p, sil possde un facteur de la forme
(p) pour un morphisme : X

non eaant. Dans le cas contraire, on dit


quil vite le motif p. Les carrs correspondent au motif xx et les chevauchements
uvuvu correspondent au motif xyxyx si v est non vide et au motif xxx si v est
20 CHAPITRE 1. LANGAGES RATIONNELS
vide. Un motif p est dit k-invitable si lensemble des mots sur un alphabet
k lettres qui vitent p est ni. Il est dit invitable sil est invitable pour tout
entier k. La rfrence sur les motifs invitables est [Cas02]. Le lemme suivant
permet de construire des motifs invitables.
Lemme 1.25. Si p est un motif invitable et si la lettre x napparat pas dans p,
alors le motif pxp est encore invitable.
Preuve. Soit A un alphabet. Lensemble des mots sur A qui vitent p est ni. Il
existe un entier l tel que tout mot de longueur l contient le motif p. Soit n = [A[
l
le nombre de mots sur A de longueur l. Un mot w de longueur nl + l + n se
factorise w = u
0
a
1
u
1
a
2
a
n
u
n
o a
1
, . . . , a
n
sont des lettres et u
0
, . . . , u
n
sont
des mots de longueur l. Par dnition de n, deux mots u
i
et u
j
pour i < j sont
gaux. Le mot w se factorise donc v
0
u
i
v
1
u
i
v
2
. Comme u
i
est de longueur l, il
se factorise u
i
= v
3
(p)v
4
o est une morphisme de (X x)

dans A

. En
prolongeant X

par (x) = v
4
v
1
v
3
, le mot w contient le facteur (pxp).
Soit X lalphabet inni x
0
, x
1
, x
2
, . . .. On dnit la suite (z
n
)
n0
des mots
de Zimin par z
0
= et z
n+1
= z
n
x
n
z
n
pour tout n 0. Grce au lemme
prcdent, chacun des mots z
n
est un motif invitable. La suite des mots de
Zimin converge vers un mot inni z. Pour tout n 0, la n-ime lettre de z est
x
k
si 2
k
est la plus grande puissance de 2 qui divise n. Le dbut du mot z est le
suivant.
z = x
0
x
1
x
0
x
2
x
0
x
1
x
0
x
3
x
0
x
1
x
0
x
2
x
0
x
1
x
0
x
4
x
0
x
1
x
0
x
2
x
0
x
1
x
0
x
3

Il existe un algorithme d Zimin qui calcule si un motif donn est invitable
ou non. Cet algorithme est dtaill en [Cas02]. Par contre, aucun algorithme
nest connu pour dterminer si un mot est k-invitable pour un entier k donn.
1.3.4 Codes
Pour cette partie, on pourra consulter [BP84]. De manire intuitive, un en-
semble X de mots est un code si tout mot a au plus une dcomposition en
produit de mots de X.
Dnition 1.26. Un ensemble X A

est un code sur A si pour tous entiers


m, n 0 et toute suite x
1
, . . . , x
m
, x

1
, . . . , x

n
de mots de X, lgalit x
1
x
m
=
x

1
x

n
implique les galits m = n et x
i
= x

i
pour 1 i m.
Exemple 1.27. Lensemble aa, baa, ba est un code sur lalphabet A = a, b.
Par contre, lensemble a, ab, ba nest pas un code car le mot w = aba a les
deux dcompositions (ab)a = a(ba). Lensemble X = a

b est un code inni.


Soit X un code sur A et soit un alphabet B en bijection avec X par une
fonction : B X. La fonction se prolonge en un morphisme de B

dans X

en posant (b
1
b
n
) = (b
1
) (b
n
) pour tout mot b
1
b
n
de B

. La fonction
ainsi prolonge est encore bijective si et seulement si X est un code. Lorsque X
est un code, le monode X

est alors isomorphe au monode libre B

.
Soit A un alphabet. On appelle sous-monode de A

un ensemble M de mots
tels que M et MM M. La dernire inclusion est en fait une galit puisque
M implique linclusion inverse M MM. Pour des dnitions plus gnrales
de monode et de sous-monode, on pourra se reporter la section 1.11.
1.3. COMBINATOIRE DES MOTS 21
v u v
Fig. 1.5 Diagramme des mots uv, vu et v
Dnition 1.28. Un sous-monode M de A

est libre si pour tous mots u et v


sur A, les appartenances uv, vu, v M impliquent u M.
Le diagramme des mots uv, vu, et v est reprsent la gure 1.5. Cette
dnition est justie par la proposition suivante.
Proposition 1.29. Un sous-monode M de A

est libre si et seulement si


M = X

pour un code X sur A.


Lemme 1.30. Pour tout sous-monode M de A

, lensemble X = (M )
(M )
2
est un ensemble minimal de gnrateurs.
Preuve. On montre facilement par rcurrence sur la longueur que tout mot w
de M se dcompose w = x
1
x
n
o x
i
X. Si w se dcompose w = w
1
w
2
o
w
1
, w
2
M , on applique lhypothse de rcurrence w
1
et w
2
pour obtenir
une dcomposition de w. Si w na pas dcomposition w = w
1
w
2
, il appartient
X.
Rciproquement, soit un ensemble Y tel que M = Y

. Il est clair que tout


mot x de X appartient Y . Sinon x scrit x = y
1
y
n
avec n 2 ce qui
contredit le fait que x est indcomposable dans M.
Preuve de la proposition. Supposons dabord que M = X

o X est un code.
Soient u et v des mots tels que uv, vu, v M. Les mots uv vu et v se dcomposent
en produits de mots de X. On considre alors le mot w = vuv de M. Pour que
ce mot ait une seule dcomposition, il faut que la dcomposition de uv soit faite
dune dcomposition de u suivie de celle de v.
Rciproquement soit M un sous-monode libre de A

. Soit X lensemble
X = (M ) (M )
2
. Daprs le lemme prcdent, on a lgalit M = X

.
Supposons par labsurde que X ne soit pas un code et soit z un mot de longueur
minimale ayant une double factorisation z = x
1
x
m
= x

1
x

n
. Par dnition
de z, on a x
1
,= x

1
et par symtrie on peut supposer que x

1
= x
1
u pour un
mot u ,= . On pose alors v = x

2
x

n
x
1
et on vrie que vu = x

2
x

n
x

1
,
uv = x
2
x
n
x
1
et que uv, vu, v M. Puisque M est libre, le mot u appartient
M et ceci contredit la minimalit de z.
La dnition dun sous-monode libre entrane quune intersection quelconque
de sous-monodes libres est encore un sous-monode libre. Il sensuit que pour
tout langage L de A

, il existe un plus petit sous-monode libre contenant L,


appel enveloppe libre.
Proposition 1.31. Soit X un ensemble ni de mots. Si X nest pas un code,
lenveloppe libre de X est engendre par un ensemble Y tel que [Y [ [X[ 1.
Preuve. Soit M lenveloppe libre de X et soit Y le code tel que M = Y

. Tout
mot x de X se dcompose x = y
1
y
n
avec y
1
, . . . , y
n
Y . On dnit la
22 CHAPITRE 1. LANGAGES RATIONNELS
fonction f : X Y en posant f(x) = y
1
pour tout mot x X. On montre
que la fonction f est surjective mais mais pas injective. Supposons par labsurde
que f nest pas surjective. Si y nappartient pas f(X), alors on a linclusion
X + (Y y)Y

. On pose alors Z = (Y y)y

et on montre facilement que


X Z

= +(Y y)Y

ce qui contredit le fait que Y

est lenveloppe libre de X.


Si X nest pas un code, il existe une relation z = x
1
x
m
= x

1
x

n
avec x
1
,=
x

1
. On vrie que f(x
1
) = f(x

1
) car le mot z a une unique factorisation.
Le corollaire suivant dcrit les codes deux mots. Lquivalence entre la
deuxime et la troisime proposition peut aussi se montrer directement par
rcurrence sur la longueur de uv.
Corollaire 1.32. Pour deux mots u et v, les propositions suivantes sont qui-
valentes.
Lensemble u, v nest pas un code.
Il existe un mot w tel que u, v w

.
Les mots u et v vrient uv = vu.
Exercice 1.33. Montrer directement que deux mots u et v vrient lgalit
uv = vu si et seulement ils sont des puissances dun mme mot w, i.e. u, v w

.
Solution. Il est clair que si u = w
m
et v = w
n
, alors uv = vu = w
m+n
. On
montre la rciproque par rcurrence sur [u[ + [v[. Si uv = vu alors u et v sont
puissance dun mme mot. Si [u[ + [v[ = 0, alors les deux mots u et v sont
vides et le rsultat est trivial. On suppose donc que [u[ + [v[ > 0. Si [u[ = [v[,
lgalit uv = vu implique immdiatement que u = v et le rsultat est acquis en
prenant w = u = v. Sinon, on peut supposer par symtrie que [u[ < [v[. Lgalit
uv = vu implique alors que u est un prxe de v et que v = uu

pour un certain
mot v

. Lgalit uv = vu scrit alors uuu

= uu

u do on tire uu

= u

u en
simpliant gauche par u. Par hypothse de rcurrence, il existe un mot w tel
que u = w
m
et u

= w
n
et donc v = uu

= w
m+n
.
1.4 Un peu dordre
Dans cette partie, on sintresse aux bons quasi-ordres et aux thormes de
Higman et de Kruskal. Ces ordres sont souvent utiliss pour prouver la termi-
naison de systmes de rcriture ou de procdures. On rappelle aussi quelques
ordres classiques sur lensemble des mots.
Une relation binaire _ sur un ensemble E est un quasi-ordre (on dit aussi
prordre) si elle est rexive et transitive. Contrairement un ordre, un quasi-
ordre nest pas ncessairement antisymtrique. On peut trs bien avoir x _ y et
y _ x pour deux lments distincts x et y. On crit y _ x pour x _ y. On crit
x y si x _ y et y ,_ x. un quasi-ordre _ sur E est associe une relation
dquivalence dnie par x y si x _ y et y _ x. Le quasi-ordre _ induit
alors un ordre sur lensemble quotient E/. Deux lments x et y sont dits
incomparables (pour _) si x ,_ y et y ,_ x.
Exemple 1.34. Soit E = N lensemble des entiers naturels. La relation de divi-
sibilit est un ordre sur N. Soit la relation _ dnie sur N par m _ n sil existe
un entier k tel que m divise n
k
, cest--dire si tout diviseur premier de m est
aussi diviseur premier de n. Cest un quasi-ordre qui nest pas un ordre. On a
en eet 6 _ 12 et 12 _ 6 car 6 et 12 ont les mmes diviseurs premiers.
1.4. UN PEU DORDRE 23
Une relation dquivalence sur un ensemble E est un quasi-ordre sur E
dont la relation dquivalence associe est justement la relation .
Soit _ un quasi-ordre sur E. Une chane dcroissante est une suite (x
i
)
i0
nie ou innie telle que x
i
x
i+1
pour tout i 0. Un quasi-ordre est dit
bien fond sil ne possde pas de chane innie dcroissante. Autrement dit, le
quasi-ordre _ est bien fond si la relation induite sur E/ est noethrienne
(cf. section 2.7.1). Une antichane est un ensemble dlments incomparables
deux deux. Un idal (dordre) est un ensemble I tel que si x appartient I et
x _ y, alors y appartient aussi I. Une base dun idal I est un sous-ensemble B
de I tel que I = x [ b B b _ x. On dit alors que lidal I est engendr
par la base B. Le thorme suivant donne plusieurs proprits quivalentes qui
dnissent la notion fondamentale de bon quasi-ordre.
Thorme 1.35 (Higman). Les proprits suivantes sont quivalentes pour un
quasi-ordre sur E.
i) tout idal possde une base nie,
ii) toute chane croissante I
0
I
1
I
2
didaux est constante partir
dun certain rang,
iii) toute suite innie dlments de E contient une sous-suite innie crois-
sante,
iv) toute suite innie dlments de E contient une sous-suite croissante de
longueur 2,
v) toute chane dcroissante est nie et toute antichane est nie,
vi) tout quasi-ordre _

qui prolonge _ est bien fond.


Un quasi-ordre qui satisfait lune de ces proprits est appel bon quasi-ordre.
Il y a une dirence de terminologie entre le franais et langlais. En franais,
un ordre est implicitement total et le qualicatif partiel est ajout sil ne lest
pas. En anglais, un ordre est suppos partiel et on utilise ladjectif total ou
linear pour prciser quil est total. En anglais, un bon quasi-ordre est appel
well quasi-order souvent abrg en wqo.
On a vu quune relation dquivalence est un quasi-ordre. Elle est un bon
quasi-ordre si et seulement si elle a un nombre ni de classes. En eet, deux l-
ments non quivalents sont incomparables. Pour quil nexiste pas dantichane
innie, le nombre de classes doit tre ni. La rciproque est vidente.
Exemple 1.36. Lordre naturel des entiers naturels est un bon quasi-ordre sur N.
Lordre naturel des entiers relatifs nest pas bien fond sur Z et il nest donc
pas un bon quasi-ordre. La divisibilit est un ordre bien fond sur les entiers
mais elle nest pas un bon quasi-ordre car les nombres premiers forment une
antichane innie.
Preuve. On commence par montrer lquivalence entre i) et ii). Soit I
0
I
1

I
2
une chane croissante didaux. Lensemble I =

n0
I
n
est encore un
idal. Si le quasi-ordre a la proprit de base nie, cet idal est engendr par
une base nie B. Il existe alors un entier k tel que B I
k
. On a alors I = I
k
et I
k+n
= I
k
pour tout n 0. Rciproquement soit I un idal. Si I ne possde
pas de base nie, on construit par rcurrence une suite (x
n
)
n0
dlments de I
de la manire suivante. Llment x
0
est choisi de faon arbitraire dans I. Les
lments x
0
, . . . , x
k
tant dj choisis, llment x
k+1
est choisi en dehors de
lidal engendr par B
k
= x
0
, . . . , x
k
. Soit I
k
lidal engendr par B
k
. Par
construction, la chane didaux I
0
I
1
I
2
est strictement croissante.
24 CHAPITRE 1. LANGAGES RATIONNELS
On montre maintenant lquivalence entre iii), iv) et v). Il est clair que iii)
implique iv) et que iv) implique nouveau v). Soit (x
n
)
n0
une suite dlments.
On extrait de cette suite une sous-suite innie croissante (x
in
)
n0
de la faon
suivante. On appelle lment minimal dun sous-ensemble X, un lment x
de X tel que pour tout x

de X, x

_ x implique x _ x

et donc x x

.
Soit X = x
n
[ n 0 lensemble des valeurs de la suite. Puisque il ny a pas
de chane innie dcroissante, il existe au moins un lment minimal dans X.
Pour deux lments minimaux x et x

, soit ils sont incomparables soit ils vrient


x x

. Puisquil ny a pas dantichane innie, il existe un nombre ni de classes


de formes dlments minimaux. Soient z
1
, . . . , z
k
des reprsentants de ces
classes. Pour tout lment x
n
de la suite, il existe au moins un reprsentant z
j
tel que x
n
_ z
j
. Il existe donc au moins un reprsentant z
j0
tel quil existe
une innit dlments x
n
vriant x
n
_ z
j0
. On pose alors x
i0
= z
j0
et on
recommence avec la sous-suite des lments x
n
tels que n > i
0
et x
n
_ x
i0
.
On montre ensuite lquivalence entre i)-ii) et iii)-iv)-v). Soit (x
n
)
n0
une
suite dlments. Soit I
k
lidal engendr par la base B
k
= x
0
, . . . , x
k
. Puisque
la chane didaux I
0
I
1
I
2
est constante partir dun certain rang,
il existe deux indices k < l tel que x
k
_ x
l
, ce qui montre iv). Rciproquement,
soit I
0
I
1
I
2
une chane didaux. Si cette chane nest pas constante
partir dun certain rang, on peut supposer, quitte supprimer quelques idaux
de la chane, que chaque inclusion I
n
I
n+1
est stricte. Soir x
n
un lment de
I
n+1
I
n
. La suite (x
n
)
n0
ne contient aucune sous-suite croissante de longueur 2.
Ceci contredit lhypothse que la chane didaux nest pas constante partir
dun certain rang.
On montre nalement lquivalence entre vi) et les autres proprits. Soit
_

un quasi-ordre qui prolonge _. Soit (x


n
)
n0
une suite dlments. Daprs
iv), il existe deux indices k < l tel que x
k
_ x
l
et donc x
k
_

x
l
. Ceci montre
que le quasi-ordre _

na pas de chane innie dcroissante. Rciproquement, le


quasi-ordre _ est son propre prolongement. Ceci montre quil est bien fond. Il
reste montrer quil na pas dantichane innie. On montre que si A est une
antichane de _ et si _
0
est quasi-ordre quelconque sur A, il est possible de
prolonger _ en un quasi-ordre _

tel que la restriction de _

A est _
0
. Soit _

la clture transitive de la relation _ _


0
. Cest bien sr un quasi-ordre. Il reste
prouver que pour tous lments a et b de A, a _

b implique a _
0
b puisque
la rciproque est vidente. Si a _

b, il existe une suite nie x


0
, . . . , x
n
telle que
x
0
= a, x
n
= b et x
i
_ x
i+1
ou x
i
_
0
x
i+1
pour tout 0 i n 1. Si n = 1,
le rsultat est acquis puisque a et b sont incomparables pour _. On suppose
maintenant que n 2. En utilisant la transitivit de _
0
, on peut supposer
que les lments x
1
, . . . , x
n1
nappartiennent pas A. On a alors x
i
_ x
i+1
pour tout 0 i n 1 et donc a _ b contrairement lhypothse que a et
b sont incomparables pour _. Ceci montre que _

concide avec _
0
sur A. Si
le quasi-ordre _ a une antichane innie A, on peut le prolonger en utilisant
un quasi-ordre _
0
sur A qui contient une chane innie dcroissante. Le quasi-
ordre obtenu contient encore une chane innie dcroissante et nest pas bien
fond.
Soient _
1
et _
2
deux quasi-ordres sur des ensembles E
1
et E
2
. Le produit
cartsien E
1
E
2
est naturellement muni dun quasi-ordre _dni par (x
1
, x
2
) _
(y
1
, y
2
) si x
1
_
1
y
1
et x
2
_
2
y
2
. Le rsultat suivant est parfois attribu Nash-
Williams.
1.4. UN PEU DORDRE 25
Lemme 1.37. Si _
1
et _
2
dont des bons quasi-ordres sur E
1
et E
2
, alors _
est un bon quasi-ordre sur E
1
E
2
.
La preuve dcoule directement de la caractrisation iii) du thorme pr-
cdent. Lordre naturel sur les entiers induit un ordre naturel sur les k-uplets
dentiers dni par (m
1
, . . . , m
k
) (n
1
, . . . , n
k
) si m
i
n
i
pour tout 1 i k.
Le lemme prcdent a pour consquence le rsultat suivant appel lemme de
Dickson.
Lemme 1.38 (Dickson 1913). Tout sous-ensemble de N
k
a un nombre ni
dlments minimaux.
1.4.1 Quasi-ordres sur les mots
Soit _ un quasi-ordre sur un ensemble A. On dnit un quasi-ordre _

sur
lensemble A

des mots nis sur A de la faon suivante. Deux mots w = a


1
a
m
et w

= a

1
a

n
vrient w _

sil existe une suite croissante 1 j


1
< j
2
<
< j
m
n dindices tels que a
i
_ a

ji
pour tout 1 i m. Pour une
relation R, on note parfois R

la clture rexive et transitive de la relation R


(cf. section 2.7.1). Ici le quasi-ordre _

nest pas du tout la clture rexive et


transitive de _ (qui est justement gale _). Lexposant rappelle seulement
que _

est lextension A

du quasi-ordre _. On vrie facilement que _

est
le plus petit (au sens de linclusion) quasi-ordre sur A

tel que :
1. uv _

uav pour tous mots u, v A

et toute lettre a A,
2. uav _

ubv si a _ b pour tous mots u, v A

et toutes lettres a, b A.
Soit w = w
1
w
n
un mot de longueur n. Un sous-mot de w est un mot u
tel quil existe une sous-suite croissante 1 i
1
< < i
k
n dindices vriant
u = w
i1
w
i
k
. Autrement dit, le mot u est obtenu en supprimant certaines
lettres du mot w. La relation tre sous-mot est bien sr un ordre partiel sur
lensemble des mots. La notion de sous-mot est distinguer de celle de facteur
o les lettres choisies sont conscutives.
Exemple 1.39. Si le quasi-ordre _ sur A est lgalit, le quasi-ordre _

est lordre
des sous-mots.
Thorme 1.40 (Higman 1952). Si _ est un bon quasi-ordre sur A, alors _

est un bon quasi-ordre sur A

.
Preuve. On dit quune suite (u
n
)
n0
est mauvaise sil nexiste pas deux indices
k < l tels que u
k
_

u
l
et on utilise la caractrisation iv) du thorme 1.35.
On raisonne par labsurde et on suppose quil existe au moins une mauvaise
suite. On construit alors par rcurrence une mauvaise suite minimale (u
n
)
n0
.
Soit u
0
un mot le plus court possible tel que u
0
soit le premier lment dune
mauvaise suite. Les mots u
0
, . . . , u
n
tant choisis, u
n+1
est un mot le plus court
tel que u
0
, . . . , u
n+1
sont les premiers lments dune mauvaise suite. La suite
ainsi construite est mauvaise. Puisque le mot vide vrie _

w pour tout
mot w, aucun des mots u
n
nest vide. Chaque mot u
n
scrit donc u
n
= a
n
v
n
o
a
n
est une lettre et v
n
un mot. Comme _ est un bon quasi-ordre, il existe une
suite extraite (a
in
)
n0
qui est croissante. On considre alors la suite suivante
u
0
, u
1
, u
2
, . . . , u
i02
, u
i01
, v
i0
, v
i1
, v
i2
, . . .
26 CHAPITRE 1. LANGAGES RATIONNELS
obtenue en prenant les i
0
premiers lments u
0
, u
1
, . . . , u
i01
de la suite (u
n
)
n0
puis tous les lments de la suite (v
in
)
n0
. Cette nouvelle suite est encore mau-
vaise. On ne peut pas avoir k < l < i
0
et u
k
_

u
l
, car (u
n
)
n0
est mauvaise.
La relation u
k
_

v
i
l
implique la relation u
k
_

u
i
l
et la relation v
i
k
_

v
i
l
implique u
i
k
_

u
i
l
car a
i
k
_ a
i
l
. On obtient alors une contradiction car v
i0
est
plus court que u
i0
.
Exemple 1.41. Daprs le thorme de Higman, lordre des sous-mots sur un
alphabet ni est un bon quasi-ordre. En eet, lgalit sur A est bien sr un bon
quasi-ordre sur A.
Le quasi-ordre _

dni sur les suites nies peut tre tendu en un quasi-


ordre _

sur A

en posant (a
n
)
n0
_

(a

n
)
n0
sil existe une suite strictement
croissante dindices (i
n
)
n0
telle que a
n
_ a

in
pour tout n 0. Lexemple
suivant montre que le thorme de Higman ne se gnralise pas _

.
Exemple 1.42. Soit A = N N lensemble des paires dentiers et soit lordre _
dni sur A par (m, n) _ (m

, n

) si m = m

et n n

ou m < m

et n < m

. On
vrie que cest un bon ordre partiel. Pour chaque entier i, soit x
i
A

donn
par
x
i
= (i, 0), (i, 1), (i, 2), (i, 3), . . .
La suite (x
i
)
i0
ne contient pas de sous-suite croissante de longueur 2 pour _

.
Pour obtenir une gnralisation du thorme de Higman aux suites innies,
des meilleurs quasi-ordres (better quasi-order en anglais souvent abrg en bqo)
ont t introduits par Nash-Williams. Pour une dnition des meilleurs quasi-
ordre et quelques rsultats, on pourra consulter [Alm94, p. 33].
Exemple 1.43. Lordre des sous-mots est dni sur A

par (a
n
)
n0
_

(a

n
)
n0
sil existe une suite strictement croissante dindices (i
n
)
n0
telle que a
n
= a

in
pour tout n 0. Si lalphabet A est ni, cest un bon quasi-ordre sur A

. Ceci
provient du fait que lgalit est un meilleur quasi-ordre sur A.
1.4.2 Ordres sur les mots
Lordre des sous-mots nest pas lordre le plus naturel sur les mots. Le plus
familier est sans aucun doute lordre lexicographique utilis dans le dictionnaire.
On suppose que A est muni dun ordre not <. Deux mots w et w

vrient
w <
lex
w

soit si w est prxe de w

soit sil existe deux lettres a et b vriant


a < b et trois mots u, v et v

tels que w = uav et w

= ubv

. Le mot u est en
fait le plus long prxe commun w et w

qui est not w w

. Dans le cas o
w est prxe de w

, on a w w

= w.
On pourra remarquer que la fonction d dnie par d(w, w

) = [w[ + [w

[
2[w w

[ est une distance sur lensemble des mots.


Lordre lexicographique est total mais il nest pas bien fond ds que lal-
phabet a au moins deux lettres. Sur lalphabet A = 0, 1, la suite de mots
w
n
= 0
n
1 est innie et dcroissante. Pour cette raison, on considre aussi lordre
hirarchique o les mots sont dabord classs par longueur puis par ordre lexi-
cographique. Deux mots w et w

vrient w <
hi
w

si [w[ < [w

[ ou [w[ = [w

[
et w <
lex
w

. Cet ordre a lavantage dtre total et bien fond.


1.4. UN PEU DORDRE 27
1.4.3 Quasi-ordres sur les arbres
Le thorme de Higman admet une gnralisation aux arbres nis due
Kruskal. La construction de bons quasi-ordres sur les arbres est essentielle pour
la terminaison de systmes de rcriture de termes, souvent utiliss pour donner
une smantique aux langages de programmation fonctionnels.
On commence par rappeler la notion de domaine darbre. On note N

len-
semble des suites nies dentiers. Un domaine darbre est sous-ensemble D de N

qui vrie les deux conditions suivantes.


1. D est clos par prxe, cest--dire si uv appartient D, alors u appartient
aussi D pour toutes suites u, v N

.
2. D est clos par valeurs infrieures, cest--dire si ui appartient D, alors
uj appartient aussi D pour tout u N

et tous entiers 0 j i.
Soit A un alphabet non ncessairement ni. On appelle arbre sur A une
fonction t : D A o D est un domaine darbre. Un lment du domaine D
de larbre est appel un nud de larbre. Larbre est dit vide (resp. ni) si son
domaine D est vide (resp. ni). On appelle taille de t et on note [t[ le cardinal du
domaine de t. Le domaine dun arbre t est not dom(t). Un arbre est reprsent
comme un graphe ayant les nuds pour sommets et les paires de nuds de la
forme (u, ui) pour artes.
Un mot ni w = a
0
a
n
sidentie avec un arbre t de domaine D =
, 0, 0
2
, . . . , 0
n
= ( + 0)
n
et dni par t(0
k
) = a
k
pour tout 0 k n.
a
a
a
a b
b
b a
a b
b
b
Fig. 1.6 Larbre de lexemple 1.44
Exemple 1.44. Soit le domaine darbre D gal lensemble
D = , 0, 1, 00, 10, 11, 12, 000, 001, 110, 111, 1110
et soit larbre t dni sur ce domaine par t(w) = a si w a un nombre pair de 1
et t(w) = b sinon. Cet arbre t est reprsent la gure 1.6.
Soit t un arbre de domaine D et soit w un mot sur N. Larbre w
1
t est
larbre de domaine w
1
D dni par (w
1
t)(u) = t(wu) pour tout u w
1
D.
Cet arbre est appel le sous-arbre de t enracin en w. Si w nappartient pas au
domaine de t, larbre w
1
D est vide.
Soit _ un quasi-ordre sur un ensemble A. On dnit un quasi-ordre _

sur lensemble de tous les arbres nis sur A de la faon suivante. Deux arbres
t et t

de domaines respectifs D et D

vrient t _

sil existe une fonction


28 CHAPITRE 1. LANGAGES RATIONNELS
injective f de D dans D

telle que pour tous w et w

dans D, on ait les proprits


suivantes.
1. t(w) _ t

(f(w)),
2. f(w w

) = f(w) f(w

) et
3. Si w <
lex
w

alors f(w) <


lex
f(w

)
o w w

dnote le plus long prxe commun de w et w

.
La fonction f gnralise la suite croissante dindices j
1
, . . . , j
m
utilise dans
le cas des mots pour dnir lordre _

. La premire condition vrie par f est


lanalogue de la condition a
i
_ a

ji
pour les mots. Les deux autres conditions
assurent que f est bien un plongement de larbre t dans larbre t

. La seconde
condition exprime que la relation de parent est prserve et la dernire que
lordre des ls est galement respect.
Ce quasi-ordre peut tre aussi dni de manire rcursive sur les arbres.
Thorme 1.45 (Kruskal 1960). Si _ est un bon quasi-ordre sur A, alors _

est un bon quasi-ordre sur lensemble des arbres nis sur A.


Dans les arbres que nous avons dnis, les ls de chaque nud sont ordonns
et ils forment une suite. Il est possible de dnir des arbres o lordre des ls
est sans importance. Le thorme de Kruskal reste vrai pour cette variante des
arbres.
Preuve. La preuve reprend les grandes lignes de la preuve du thorme de Hig-
man. On dit quune suite (t
n
)
n0
est mauvaise sil nexiste pas deux indices
k < l tels que t
k
_

t
l
et on utilise la caractrisation iv) du thorme 1.35. On
raisonne par labsurde et on suppose quil existe au moins une mauvaise suite.
On construit alors par rcurrence une mauvaise suite minimale (t
n
)
n0
. Soit t
0
un arbre de taille minimale tel que t
0
soit le premier lment dune mauvaise
suite. Les arbres t
0
, . . . , t
n
tant choisis, t
n+1
est un arbre de taille minimale tel
que t
0
, . . . , t
n+1
sont les premiers lments dune mauvaise suite. La suite ainsi
construite est mauvaise.
Il existe un nombre ni dindices n tels que [t
n
[ 2. Sinon il existe une
sous-suite innie darbres de taille 1 et on peut trouver deux indices k < l tels
que t
k
() _ t
l
() qui est quivalent t
k
_

t
l
si t
k
et t
l
sont de taille 1. Quitte
supprimer un nombre ni dlments de la suite, on peut supposer que [t
n
[ 2
pour tout n 0.
Puisque _ est un bon quasi-ordre sur A, il existe une suite extraite (t
in
)
n0
telle que t
i0
() _ t
i1
() _ t
i0
() _ . Quitte remplacer la suite (t
n
)
n0
par la suite extraite (t
in
)
n0
, on peut supposer que la suite (t
n
)
n0
vrie
t
0
() _ t
1
() _ t
2
() _ .
Soit T lensemble des arbres qui apparaissent juste sous la racine dun des
arbres t
n
. Plus formellement, on dnit lensemble T par
T = i
1
t
n
[ i N et i dom(t
n
).
On prtend que _

est un bon quasi-ordre sur T. Sinon, il existe une mauvaise


suite (r
n
)
n0
darbres de T. On peut extraire de cette suite une nouvelle suite
(r

n
)
n0
telle que, pour tous k < l, les arbres r

k
et r

l
sont des sous-arbres de t
m
et t
n
avec m < n. On peut donc supposer que la suite (r
n
)
n0
satisfait cette
1.5. LANGAGES RATIONNELS 29
proprit. Soit alors n
0
le plus petit indice tel que r
0
est un sous-arbre de t
n0
.
On considre la suite
t
0
, t
1
, . . . , t
n01
, r
0
, r
1
, r
2
, . . .
et on constate que cette suite est encore mauvaise et quelle contredit la mi-
nimalit de la suite (t
n
)
n0
construite. Cette contradiction prouve que _

est
bien un bon quasi-ordre sur T. Par le thorme de Higman, le quasi-ordre _

est un bon quasi-ordre sur T

.
Pour chaque arbre t
n
, on note k
n
lentier maxi [ i dom(t
n
). Les sous-
arbres sous la racine de t
n
sont donc les arbres 0
1
t
n
, 1
1
t
n
, . . . , k
1
n
t
n
. Puisque
_

est un bon quasi-ordre sur T

, il existe deux indices m < n tels que


(0
1
t
m
, 1
1
t
m
, . . . , k
1
m
t
m
) _

(0
1
t
n
, 1
1
t
n
, . . . , k
1
n
t
n
)
Puisquon a en outre t
m
() _ t
n
(), on a nalement t
m
_

t
n
qui prouve que
_

est un bon quasi-ordre sur lensemble de tous les arbres nis.


Les thormes de Higman et de Kruskal peuvent encore tre gnraliss aux
graphes. Le thorme de Robertson et Seymour tablit que lordre par mineur
des graphes est un bon quasi-ordre. On rappelle quun mineur dun graphe G
est un graphe obtenu par contraction dartes dun sous-graphe de G. Un sous-
graphe est le graphe induit par un sous-ensemble de sommets. La contraction
dune arte consiste identier les deux sommets quelle relie. Beaucoup de
classes de graphes comme celle des graphes planaires ou celle des graphes trian-
guls sont caractrises par des mineurs interdits. Elles sont gales lensemble
des graphes qui ne contiennent pas certains graphes xs comme mineur. La
preuve du rsultat de Robertson et Seymour est excessivement dicile et stend
sur plusieurs centaines de pages.
Lexercice suivant introduit une extension du thorme de Ramsey (tho-
rme 1.108) aux arbres.
Exercice 1.46. Pour n 0, on note B
n
lensemble 0, 1
n
des mots de longueur
au plus n sur laphabet 0, 1. Un arbre t est dit monochrome si pour tous
w, w

dom(t), on a t(w) = t(w

). Montrer que pour tout arbre t de domaine


B
2n
sur lalphabet A = a, b, il existe un arbre t

monochrome de domaine B
n
tel que t

t o lordre _ sur A est lgalit.


1.5 Langages rationnels
La classe des langages rationnels est le premier niveau de la hirarchie de
Chomsky. Ces langages sont trs simples mais ils possdent de trs nombreuses
proprits remarquables. Ils peuvent tre introduits par des dnitions de na-
tures trs direntes. Ceci est une preuve de leur rle central en thorie des
langages formels.
1.5.1 Expressions rationnelles
On commence par la dnition de ces langages qui utilise les oprations
rationnelles et justie la terminologie.
30 CHAPITRE 1. LANGAGES RATIONNELS
Dnition 1.47 (Langages rationnels). La classe 1 des langages rationnels
(sur A) est la plus petite famille de langages telle que :
1 et a 1 pour toute lettre a ;
1 est close pour les oprations rationnelles (lunion, le produit et ltoile).
Exemple 1.48. Quelques exemples de langages rationnels.
Le langage est rationnel car il scrit

.
Le langage A est rationnel puisquil scrit A =

aA
a.
Le langage L des mots de longueur paire est rationnel puisquil scrit
L = (AA)

= (A
2
)

.
Le langage L

des mots de longueur impaire est rationnel puisquil scrit


L

= AL.
Le langage des mots qui contiennent un facteur aba est rationnel puisquil
scrit A

abaA

.
La notion dexpression nest pas formellement dnie. Elle doit tre enten-
due dans le sens usuel en mathmatiques comme cest le cas des expressions
arithmtiques. Les oprateurs arithmtiques sont remplacs dans notre cadre
par les oprateurs rationnels et les parenthses sont encore utilises pour lever
les ambiguts.
Dnition 1.49 (Expressions rationnelles). La classe c des expressions ration-
nelles est la plus petite famille dexpressions telles que :
c, et a c pour toute lettre a ;
pour toutes expressions E et E

de c, les expressions E +E

, E E

et E

sont encore dans c.


Notons que +, et sont vus ici des symboles inertes et non des oprations.
Notation 1.50. Pour allger les notations, Le point dnotant le produit et les
accolades autour des singletons sont omis dans lcriture des expressions ra-
tionnelles. Ainsi lexpression (a +b a)

est crite (a + ba)

. De plus, Si
A = a
1
, . . . , a
n
, on utilise A comme une abrviation pour a
1
+ +a
n
.
Exemple 1.51. Quelques exemples dexpressions rationnelles.
A

tous les mots


aA

mots commenant par a


A

a mots nissant par a


(b +ab)

(a +) mots nayant pas deux a conscutifs


a

+b

mots nayant que des a ou que des b


(aa +b)

mots avec des blocs de a de longueur paire


(ab

a +b)

mots ayant un nombre pair de a


Exercice 1.52. Donner une description en franais des langages donns par les
expressions rationnelles suivantes : AA, ( +A)( +A), (AA)

, A

aA

, A

abA

,
A

aA

bA

et (ab)

.
Solution.
AA est le langage des mots de longueur 2.
( +A)( +A) est le langage des mots de longueur au plus 2.
(AA)

est le langage des mots de longueur paire.


A

aA

est le langage des mots ayant au moins une occurrence de a.


A

abA

est le langage des mots ayant au moins une occurrence du fac-


teur ab.
1.5. LANGAGES RATIONNELS 31
A

aA

bA

est le langage des mots ayant au moins une occurrence de a


puis ensuite une occurrence dun b.
(ab)

est le langage des mots commenant par a, nissant par b et nayant


jamais deux a ou deux b conscutifs.
1.5.2 Automates
Une autre dnition des langages rationnels peut tre donne en utilisant
les automates. Il sagit dun type de machines trs simples qui sont des cas
particuliers des machines de Turing.
Dnition 1.53 (Automate). Un automate / sur lalphabet A est un quintu-
plet (Q, A, E, I, F) o Q est ni, I Q, F Q et E QAQ. On appelle
les lments de Q les tats, ceux de I les tats initiaux, ceux de F les tats
naux et ceux de E les transitions.
Un automate est en fait un graphe enrichi dtiquettes sur les artes et dtats
initiaux et naux. Une transition (p, a, q) est note p
a
q la manire dune
arte dun graphe.
1 b 2 b
a
a
Fig. 1.7 Un automate avec quatre transitions
Exemple 1.54. Soit / = (1, 2, a, b, (1, b, 1), (1, a, 2), (2, b, 2), (2, a, 1), 1, 1)
un automate reprsent la gure 1.7. Cet automate a les deux tats 1 et 2.
Ltat 1 est la fois initial (marqu dune petite che entrante) et nal (marqu
dune petite che sortante). Il possde quatre transitions reprsentes comme
des artes dun graphe.
Dnition 1.55 (Chemin). Un chemin dans un automate (Q, A, E, I, F) est
une suite nie de transitions conscutives
q
0
a1
q
1
a2

an
q
n
not aussi de manire concise q
0
a1an
q
n
. Ltat q
0
est ltat de dpart et q
n
est ltat darrive du chemin. Le mot a
1
a
n
est ltiquette du chemin.
Exemple 1.56. La suite 2
a
1
b
1
b
1
a
2
b
2 est un chemin dans lautomate
de lexemple prcdent. Son tiquette est le mot abbab.
Dnition 1.57 (Acceptation). Un chemin est acceptant ou russi lorsque
ltat de dpart est initial et ltat darrive est nal. Un mot est accept par
lautomate / sil est ltiquette dun chemin acceptant de /. Le langage des
mots accepts par lautomate / est not L(/).
Exemple 1.58. Lensemble des mots accepts par lautomate de la gure 1.7 est
le langage (ab

a +b)

des mots ayant un nombre pair doccurrences de a.


32 CHAPITRE 1. LANGAGES RATIONNELS
Le thorme de Kleene tablit lquivalence entre les expressions rationnelles
et les automates nis dans le sens o ces deux notions dnissent les mme lan-
gages. Ce rsultat est remarquable car il relie deux notions de natures direntes,
combinatoire pour les expressions rationnelles et oprationnelle pour les auto-
mates. Le thorme de Kleene admet de nombreuses extensions des structures
telles les arbres et les mot innis ou mme transnis.
Thorme 1.59 (Kleene 1956). Un langage L est rationnel si et seulement sil
existe un automate (ni) / tel que L = L(/).
La preuve du thorme utilise les notions dautomate mond et normalis.
que nous dnissons successivement.
Dnition 1.60 (Automate mond). Un automate est mond si par tout
tat passe au moins un chemin acceptant.
Il est clair que les tats par lesquels ne passe aucun chemin acceptant peuvent
tre supprims sans changer lensemble des mots accepts par lautomate. Un
tat q apparat sur un chemin acceptant sil est accessible dun tat initial et si un
tat nal est accessible partir de q (on dit que q est co-accessible). Lensemble
des tats accessibles et co-accessibles peut tre calcul par deux parcours en
largeur de lautomate considr comme un graphe. On suppose souvent dans la
suite que les automates sont monds.
Dnition 1.61 (Automate normalis). Un automate est normalis sil possde
un unique tat initial qui est ltat darrive daucune transition et un unique
tat nal qui est ltat de dpart daucune transition.
i / f
Fig. 1.8 Schma dun automate normalis
Si ltat initial et ltat nal dun automate normalis concident, aucune
transition nest adjacente cet tat et lautomate accepte uniquement le mot
vide. Sinon, lautomate naccepte pas le mot vide. La proposition suivante nest
pas ncessaire la preuve du thorme mais la construction utilise dans la
preuve est intressante en soi.
Proposition 1.62 (Normalisation). Pour tout automate /, il existe un auto-
mate normalis /

tel que L(/

) = L(/) .
Preuve. Soit / = (Q, A, E, I, F) un automate. Soient i et f deux nouveaux tats
nappartenant pas Q. Lautomate /

est gal (Qi, f, A, E

, i, f) o
lensemble E

des transitions est donn par


E

= E i
a
q [ p I p
a
q E
p
a
f [ q F p
a
q E
i
a
f [ p I q F p
a
q E.
Cest pure routine de vrier que L(/

) = L(/) .
1.5. LANGAGES RATIONNELS 33
Preuve. Pour un langage L, on note respectivement (L) et (L) les langages L
et L. Les formules suivantes montrent quon peut calculer rcursivement
(L) et (L) partir dune expression rationnelle de L.
(L +L

) = (L) +(L

) (L +L

) = (L) +(L

)
(LL

) = (L)(L

) (LL

) = (L)(L

) +(L)(L

) +(L)(L

)
(L

) = (L

) = (L)
+
On montre par induction sur (la longueur de) lexpression rationnelle que si
L est rationnel alors (L) est accept par un automate normalis. Pour obtenir
un automate acceptant L, il sut dajouter ventuellement un nouvel tat la
fois initial et nal pour accepter le mot vide.
1 2
a
Fig. 1.9 Automate normalis acceptant L = a
On considre dabord les cas de base. Le langage L = a est accept par
lautomate de la gure 1.9
i
1
/
1
f
1
i
2
/
2
f
2
Fig. 1.10 Automates normaliss /
1
et /
1
Soient L
1
et L
2
deux langages rationnels et soient /
1
et /
2
deux automates
normaliss acceptant respectivement les langages (L
1
) et (L
2
). Ces deux au-
tomates sont schmatiss la gure 1.10
i
/
1
/
2
f
Fig. 1.11 Automate pour lunion
Si L = L
1
+ L
2
, on utilise la formule (L) = (L
1
) + (L
2
). Un automate
acceptant (L) est construit en faisant lunion disjointe des deux automates /
1
et /
2
. Cet automate est ensuite normalis en fusionnant i
1
avec i
2
et f
1
avec
f
2
(cf. gure 1.11).
Si L = L
1
L
2
, on utilise la formule (L) = (L
1
)(L
2
) + (L
1
)(L
2
) +
(L
1
)(L
2
). Daprs le cas prcdent, on sait construire un automate normalis
pour lunion. Il sut donc de savoir construire un automate pour (L
1
)(L
2
).
34 CHAPITRE 1. LANGAGES RATIONNELS
i
1
/
1
f
1
/
2
f
2
Fig. 1.12 Automate pour le produit
Un automate normalis acceptant (L
1
)(L
2
) est construit en faisant lunion
disjointe des deux automates /
1
et /
2
puis en fusionnant f
1
avec i
2
(cf. -
gure 1.12).
i
1
/
1
i

1
= f

1
f
1
Fig. 1.13 Automate pour ltoile
Si L = L

1
, on utilise la formule (L) = ((L
1
))
+
. Un automate normalis
acceptant ((L
1
))
+
est construit en dupliquant chacun des tats i
1
et f
1
en des
tats i

1
et f

1
puis en fusionnant i

1
avec f

1
(cf. gure 1.13). Cet automate peut
aussi tre obtenu en fusionnant dabord i
1
avec f
1
puis en normalisant ensuite
lautomate grce la proposition prcdente.
Pour lautre sens de lquivalence, on renvoie le lecteur aux algorithmes ci-
dessous.
Il existe de nombreuses autres mthodes pour convertir une expression ra-
tionnelle en automate. Une variante de la mthode prsente ci-dessus consiste
utiliser des automates semi-normaliss o seules les conditions sur ltat initial
sont satisfaites. Les constructions pour lautomate du produit et de ltoile sont
un peu plus dlicates. Par contre, ces automates peuvent accepter le mot vide
et les constructions limitent le nombre dtats engendrs. Cette mthode est
pratique pour des constructions la main. La mthode de Thompson utilise des
automates avec -transitions quil faut ensuite supprimer. Dautres mthodes
sont bases sur les quotients gauche calculs directement sur lexpression. On
peut obtenir un automate dterministe par la mthode Brzozowski ou un auto-
mate non dterministe par celle dAntimirov (cf. [Sak03]).
Algorithme (McNaughton-Yamada).
On suppose Q = 1, . . . , n. Pour 0 k n, et deux tats q, q

Q, on
dnit lensemble L
k
q,q
de mots qui tiquettent un chemin de q q

ne passant
que par des tats intermdiaires dans lensemble 1, . . . , k. Plus formellement,
lensemble L
k
q,q
est dni par
L
k
q,q
= a
1
. . . a
n
[ n 0 et q
a1
p
1
a2

an
q

avec i, p
i
1, 2, . . . , k.
Ainsi, on a : L(/) =

iI,fF
L
n
i,f
. Les formules suivantes permettent de
1.5. LANGAGES RATIONNELS 35
calculer les langages L
k
q,q
par rcurrence sur k.
L
0
q,q
= a [ q
a
q

E [ si q = q

L
k+1
q,q
= L
k
q,q
+L
k
q,k+1
(L
k
k+1,k+1
)

L
k
k+1,q
.
Comme les formules ci-dessus ne font intervenir que les oprations rationnelles,
on montre facilement par rcurrence sur k que tous les langages L
k
q,q
et donc
aussi L(/) sont rationnels.
Algorithme (Mthode par limination).
Cet algorithme manipule des automates dont les transitions sont tiquetes
par des expressions rationnelles. La premire tape consiste normaliser lau-
tomate en utilisant la proposition 1.62. La seconde tape remplace pour chaque
paire dtats (p, q), toutes les transitions p
a
q par une seule transition tique-
te par lexpression rationnelle

(p,a,q)E
a. chaque tape suivante, un des
tats autre que ltat initial et ltat nal est supprim. Lalgorithme sarrte
lorsquil ne reste plus que ltat initial et ltat nal ainsi quune seule transition
entre les deux. Le rsultat est alors lexpression rationnelle qui tiquette cette
transition.
chaque suppression dun tat s on ajoute, pour chaque paire (p, q) dtats
restants, lexpression porte par la transition de p q lexpression xy

z o x,
y et z sont les expressions rationnelles portes respectivement par les transitions
de p s, de s s et de s q.
1 2 3 4
b
a
b
b
a
b
b
a
a
Fig. 1.14 Mthode par limination : normalisation
1 2 4
b +ab

a
b +ab

a b +ab

a
b +ab

a
Fig. 1.15 Mthode par limination : suppression de 3
1 4
X +XX

X
avec X = b +ab

a
Fig. 1.16 Mthode par limination : suppression de 2
36 CHAPITRE 1. LANGAGES RATIONNELS
Exemple 1.63. Si on applique la mthode par limination lautomate de la
gure 1.7, on obtient successivement les automates des gures 1.14, 1.15 et
1.16.
Lemme 1.64 (Lemme dArden). Soient K et L deux langages et soit lquation
X = KX +L en le langage X.
si , K, lunique solution de lquation est X = K

L.
si K, les solutions sont de la forme X = K

(L +Y ) o Y A

.
Preuve. Soit X une solution de lquation X = KX +L. Si Y X, on montre
par rcurrence sur n que K
n
Y X et donc K

Y X. En considrant Y = L,
on constate que K

L X. Rciproquement, lgalit K = KK

+ implique que
K

L est une solution de lquation. Ceci dmontre que K

L est la plus petite


(pour linclusion) solution de lquation. Ce rsultat est en fait un cas particulier
de la proposition 2.25 concernant les solutions dun systme polynomial.
Si / K, il reste montrer que K

L est en fait lunique solution de


lquation. Montrons par labsurde que X = K

L en supposant que X
K

L est non vide.


Soit w un mot de X K

L de longueur minimale. Comme w / L, ce mot


scrit w = kx avec k K et x X. Comme k ,= , le mot x est de
longueur strictement infrieure w. La minimalit de [w[ implique que x
appartient K

L. Ceci aboutit la contradiction que w K

L.
Si K la solution X scrit X = K

L +Y . Comme Y X, on a aussi
K

Y X et donc lgalit X = K

(L + Y ). Comme KK

= K

, tout
langage de la forme K

(L +Y ) est solution de lquation.


Algorithme (Mthode de Gau).
Pour chaque q Q, soit X
q
lensemble des mots qui tiquettent un chemin
de q un tat nal. Alors, pour trouver L(/) =

iI
X
i
, on rsout, grce au
lemme dArden, le systme :
X
p
=
_

(p,a,q)E
aX
q
+ si p est nal

(p,a,q)E
aX
q
sinon
pour p Q.
Exemple 1.65. Pour lautomate de la gure 1.7, on obtient le systme
X
1
= bX
1
+aX
2
+
X
2
= aX
1
+bX
2
En utilisant le lemme dArden sur la seconde quation, on obtient X
2
= b

aX
1
.
En substituant dans la premire quation, on obtient X
1
= (ab

a+b)X
1
+ qui
donne nalement L(/) = X
1
= (ab

a +b)

grce au lemme dArden.


Exercice 1.66. On appelle automate avec -transitions un automate dont les
tiquettes des transitions sont soit une lettre soit le mot vide. Montrer que tout
automate avec -transition est quivalent un automate sans -transition.
Solution. Soit / = (Q, A, E, I, F) un automate avec -transitons. On dnit une
relation sur Q note

de la faon suivante. Pour deux tats p et q, on crit
p

q sil existe un chemin, ventuellement vide, de p q uniquement constitu
de transitions tiquetes pas . La relation
a
est donc la clture rexive et
1.6. AUTOMATES DTERMINISTES 37
transitive de la relation

. On dnit alors lautomate /

= (Q, A, E

, I, F) o
lensemble E

des transitions est donn par


E

= p
a
q [ p

, q

Q p

p

, p

a
q

et q


q.
Il est immdiat de vrier que lautomate /

est sans -transition et quil est


quivalent /.
1.6 Automates dterministes
La notion de machine ou de modle de calcul dterministe est fondamentale
et elle apparat tout au long de ce cours. De manire intuitive, une machine est
dterministe si pour chaque entre, un seul calcul est possible. Pour certains
modles comme les automates ou les machines de Turing, toute machine est
quivalente une machine dterministe. Par contre, le passage une machine
dterministe a un prix qui est le nombre dtats pour les automates (cf. exemples
1.72 et 1.73) ou le temps de calcul pour les machines de Turing. Pour dautres
modles comme les automates pile, les machines dterministes sont moins
puissantes.
Une proprit essentielle des automates nis est que tout automate est qui-
valent un automate dterministe qui accepte le mme langage. Cette proprit
a un intrt aussi bien thorique que pratique. Dun point de vue thorique, elle
permet de montrer la clture par complmentation des langages rationnels. Dun
point de vue pratique, les automates dterministes sont plus faciles implmen-
ter. La commande Unix grep utilise par exemple un automate dterministe
pour rechercher une occurrence dune expression rationnelle dans un texte. En
fait, la commande grep calcule dabord un automate non dterministe puis le
dterminise de manire paresseuse. Elle ne calcule que les tats vraiment par-
courus par la lecture du texte dans lautomate.
De manire intuitive, un automate est dterministe si une seule transition
est possible chaque instant.
Dnition 1.67 (Automate dterministe). Un automate / = (Q, A, E, I, F)
est dterministe si :
il a un unique tat initial : [I[ = 1 ;
si (p, a, q) et (p, a, q

) E alors q = q

.
0
a, b
1 2
a, b
a b
Fig. 1.17 Automate non dterministe
Exemple 1.68. Lautomate de la gure 1.7 (p. 31) est dterministe. Par contre,
lautomate de la gure 1.17 nest pas dterministe. Il accepte le langage A

abA

des mots qui contiennent au moins un facteur ab.


38 CHAPITRE 1. LANGAGES RATIONNELS
Proposition 1.69. Tout automate est quivalent (accepte le mme langage
que) un automate dterministe.
Preuve. Soit / = (Q, A, E, I, F) un automate donn. On construit un automate
dterministe quivalent

/ dont les tats sont les parties de Q.

/ =
_
P(Q), A,

E, I, P Q [ P F ,=
_
avec

E =
_
P
a
P

[ P

= q [ p P p
a
q
_
.
Ainsi,

/ est dterministe et accepte le mme langage que / comme le montre
le lemme suivant.
0 0, 1 0, 2 0, 1, 2
a b b a
a b
a
b
Fig. 1.18 Dterminisation de lautomate de la gure 1.17
Exemple 1.70. En appliquant la construction utilise dans la preuve de la propo-
sition 1.69 lautomate de la gure 1.17, on obtient lautomate de la gure 1.18
Le fait que lautomate

/ soit quivalent / dcoule directement du lemme
suivant.
Lemme 1.71. Pour tout w A

, il existe un chemin de I P dans



/ tiquet
par w si et seulement si P = q [ i I i
w
q dans /
La preuve du lemme se fait par rcurrence sur la longueur de w.
Un des problme de la construction par sous-ensembles utilise dans la preuve
de la proposition 1.69 est lexplosion du nombre dtats. Si lautomate / a n
tats, lautomate dterministe

/ quivalent peut avoir jusqu 2
n
tats comme
le montrent les exemples suivants.
i 0 1 2
. . .
n1 n
a, b
a
a, b a, b a, b
Fig. 1.19 Automate non dterministe pour A

aA
n
Exemple 1.72. Soient A = a, b et n un entier. Le langage A

aA
n
est accept
par un automate non dterministe ayant n + 2 tats. Par contre tout automate
dterministe acceptant ce langage a au moins 2
n
tats.
1.6. AUTOMATES DTERMINISTES 39
0
1
2 3
4
a
a
a
a
a
b
b b
b
b
b b
b
Fig. 1.20 Automate /
5
de lexemple 1.73
Exemple 1.73. Soient A = a, b, n un entier et Q
n
= 0, . . . , n 1. On
considre lautomate /
n
= (Q
n
, A, E
n
, 0, 0) o lensemble des transitions
est donn par
E
n
= i
a
i + 1 [ 0 i n 2 n 1
a
0
i
b
i [ 1 i n 1 i
b
0 [ 1 i n 1.
Tout automate dterministe et complet qui est quivalent /
n
possde au moins
2
n
tats.
Dnition 1.74 (Automate complet). Un automate est complet si pour tout
paire (p, a) de QA, il existe un tat q tel que p
a
q soit une transition.
Notation 1.75. Dans un automate dterministe complet / = (Q, A, E, I, F), on
notera pour tout tat q Q et toute lettre a A, ltat q a lunique tat p tel
que q
a
p soit une transition de /.
Proposition 1.76. Tout automate (dterministe) est quivalent un automate
(dterministe) complet.
Preuve. On introduit un nouvel tat p / Q appel puits et on pose Q

= Qp.
On note R = (q, a) [ q Q

et q

q
a
q

/ E lensemble des tran-


sitions manquantes. Lautomate complt est lautomate /

dni par /

=
(Q

, A, E

, I, F), avec E

= E q
a
p [ (q, a) R. Notons que si / est
dterministe, lautomate complt /

lest galement.
/
puits
A
Fig. 1.21 Compltion par ajout dun tat puits
Corollaire 1.77 (Clture par complmentation). Si L A

est rationnel, alors


A

L est rationnel.
40 CHAPITRE 1. LANGAGES RATIONNELS
Preuve. Soit / = (Q, A, E, I, F) un automate dterministe et complet acceptant
le langage L. Lautomate /

= (Q, A, E, I, Q F) accepte le langage L(/

) =
A

L.
1.7 Automate minimal
Dans cette partie, on montre que tout langage rationnel est accept par un
automate minimal qui est le quotient de tout automate dterministe acceptant
ce langage. On tudie ensuite quelques algorithmes permettant de calculer cet
automate minimal. Une trs bonne rfrence pour cette partie est [BBC93].
1.7.1 Quotients
Les quotients gauche constituent un outil indispensable ltude des au-
tomates dterministes acceptant un langage L puisque le nombre de quotients
donne un minorant du nombre dtats. Ils fournissent galement une caract-
risation trs utile des langages rationnels (Proposition 1.82). Celle-ci est, par
exemple, utilise de manire cruciale dans la preuve du thorme 1.107 (p. 50).
Dnition 1.78 (Quotients gauche). Soit L A

un langage. Le quotient
gauche de L par un mot u A

est le langage u
1
L = v [ uv L. Le quotient
gauche de L par un langage K A

est K
1
L =

kK
k
1
L.
De manire symtrique, on peut aussi dnir les quotients droite dun lan-
gage. Lintrt des quotients gauche rside dans leurs liens avec les automates
dterministes.
Exemple 1.79. Soit L = (ab

a + b)

le langage des mots ayant un nombre pair


doccurrences de a. On a les galits a
1
L = b

aL et b
1
L = L o b

aL est le
langage des mots ayant un nombre impair doccurrences de a.
Les formules suivantes permettent de calculer explicitement un quotient
a
1
L puis un quotient w
1
L en procdant par rcurrence sur la longueur de w.
On parvient ainsi calculer tous les quotients gauche dun langage.
Proposition 1.80. Pour toute lettre a, tous mots u, v et w et tous langages
K et L, on a les relations suivantes qui permettent de calculer les quotients
gauche.
w
1
(K +L) = w
1
K +w
1
L
a
1
(KL) = (a
1
K)L +(K)a
1
L
w
1
(KL) = (w
1
K)L +

uv=w
(u
1
K)v
1
L en notant (L) = L.
a
1
(L

) = (a
1
L)L

w
1
L

uv=w
(u
1
L

)(v
1
L)L

(uv)
1
L = v
1
(u
1
L).
Le lemme suivant tablit le lien fondamental entre les quotients gauche
dun langage et les automates dterministes acceptant ce mme langage. Des
quotients droite auraient pu tre dnis de manire symtrique. Nous avons
privilgi les quotients gauche parce quils jsutement sont adapts aux auto-
mates dterministes.
Lemme 1.81. Soit / = (Q, A, E, i, F) un automate dterministe acceptant
un langage L. Pour tout chemin i
u
q, on a u
1
L = v [ q
v
f avec f F.
1.7. AUTOMATE MINIMAL 41
La preuve du lemme est triviale. Le lemme a pour corollaire immdiat que
le nombre de quotients gauche dun langage est infrieur au nombre dtats
de tout automate dterministe et complet acceptant ce langage. En particulier,
le nombre de quotients gauche dun langage rationnel est ni. Cette proprit
est en fait caractristique des langages rationnels.
Proposition 1.82. Un langage L est rationnel si et seulement si il a un nombre
ni de quotients gauche.
Pour la preuve de la proposition, on introduit la dnition suivante.
Dnition 1.83. Soit L un langage rationnel. Lautomate minimal de L est
automate /
L
= (Q, A, E, I, F) o
Q = u
1
L [ u A

, I = L, F = u
1
L [ u L
E = u
1
L
a
(ua)
1
L [ u A

et a A.
L bL
a, b
a
b
a
b
Fig. 1.22 Automate minimal de L = (ab)

Exemple 1.84. Les dirents quotients gauche du langage L = (ab)

sont les
langages a
1
L = bL, b
1
L = , a
1
(bL) = et b
1
(bL) = L. En appliquant
la construction donne dans la preuve de la proposition prcdente, on obtient
lautomate minimal de L de la gure 1.22.
Le nombre dtats de lautomate minimal est bien sr minimal puisquil est
gal au nombre de quotients gauche. La proposition dcoule alors directement
du lemme suivant.
Lemme 1.85. Lautomate minimal /
L
accepte le langage L.
Preuve. On montre facilement par rcurrence sur la longueur que pour tout
mot u, on a un chemin L
u
u
1
L dans lautomate /
L
. La dnition des tats
naux donne immdiatement le rsultat.
1.7.2 Congruence de Nerode
On montre dans cette partie que lautomate minimal a en outre la proprit
dtre le quotient de tout autre automate dterministe acceptant le mme lan-
gage. Il peut toujours tre obtenu en fusionnant des tats.
Pour toute paire (p, a) Q A dun automate dterministe, on note, sil
existe, qa lunique tat q tel que p
a
q soit une transition. Si de plus lautomate
est complet, q a est toujours dni. Cette notation peut tre tendue tous
les mots en dnissant par rcurrence p (ua) = (p u) a. Ltat q w est alors
lunique tat q tel que p
w
q soit un chemin. On a alors dni une action
droite du monode A

sur Q puisque q uv = (q u) v pour tous mots u et v.


42 CHAPITRE 1. LANGAGES RATIONNELS
Dnition 1.86 (Congruence). Soit / = (Q, A, E, i, F) un automate d-
terministe et complet. Une congruence sur / est une relation dquivalence
sur Q qui vrie pour tous q, q

Q et a A :
q q

= (q F q

F),
q q

= q a q

a.
La premire proprit signie que chaque classe dune congruence ne contient
que des tats naux ou que des tats qui ne sont pas naux. La seconde proprit
est quune congruence est compatible avec les transitions de lautomate. Rien
dans cette dnition ne concerne ltat initial.
Si est une congruence sur un automate / = (Q, A, E, i, F), lautomate
quotient // est lautomate (Q/, A, E

, [i], [f] [ f F) o lensemble E

des transitions est donn par


E

= [q]
a
[q a] [ q Q et a A.
Cet automate est encore dterministe car la classe [q a] ne dpend que de la
classe de q. Le lemme suivant montre quun automate quotient accepte le mme
langage.
Lemme 1.87. Soit une congruence sur un automate /, alors lautomate
quotient // accepte le langage L(/).
Preuve. Soit un chemin
q
0
a1
q
1
a2

an
q
n
dtiquette w = a
1
. . . a
n
dans lautomate /. On en dduit que
[q
0
]
a1
[q
1
]
a2

an
[q
n
]
est un chemin tiquet par w dans //. Si de plus q
0
est initial et q
n
est nal
dans /, alors [q
0
] est initial et [q
n
] est nal dans //. Ceci prouve linclusion
L(/) L(//).
Soit maintenant un chemin
[q
0
]
a1
[q
1
]
a2

an
[q
n
]
dtiquette w = a
1
. . . a
n
dans lautomate //. On montre par rcurrence sur n
que pour tout tat q

0
de la classe [q
0
], il existe un chemin
q

0
a1
q

1
a2

an
q

n
dtiquette w tel que q

i
q
i
pour tout 0 i n. Si le chemin dans //
est acceptant, on peut choisir q

0
= i et ltat q

n
est alors nal. Ceci montre
linclusion L(//) L(/).
On introduit maintenant la congruence de Nerode qui permet le calcul de
lautomate minimal dun langage partir de nimporte quel automate dtermi-
niste le reconnaissant.
1.7. AUTOMATE MINIMAL 43
Dnition 1.88 (Congruence de Nerode). Soit / = (Q, A, E, i, F) un auto-
mate dterministe et complet. La congruence de Nerode est dnie pour tous
tats q et q

par
q q

def
w A

(q w F q

w F).
La relation ainsi dnie est eectivement une congruence dautomates. Elle
sature lensemble des tats naux. Lquivalence q F q

F obtenue en
prenant w = dans la dnition montre que deux tats quivalents sont tous les
deux naux ou tous les deux non naux. De plus, lquivalence q aw F
q

aw F implique que si q et q

sont quivalents, alors q a et q

a sont encore
quivalents.
La congruence de Nerode est la congruence la plus grossire qui spare les
tats naux des tats non naux. En eet, si q w est nal alors que q

w ne
lest pas, les tats q et q

ne peuvent pas tre quivalent car sinon les tats q w


et q

w le sont aussi.
La proposition suivante donne comment obtenir lautomate minimal partir
de nimporte quel automate dterministe.
Proposition 1.89. Soit / un automate dterministe et complet acceptant un
langage L. Lautomate minimal /
L
est gal // o est la congruence de
Nerode de /.
Preuve. Pour un tat q, on note L
q
le langage w [ q w F. Deux tats q et
q

vrient q q

si et seulement si L
q
= L
q
. Daprs le lemme 1.81, chaque
langage L
q
est de la forme u
1
L pour un mot u qui tiquette un chemin de
ltat initial q. On peut donc identier les classes de la congruence de Nerode
avec les quotients gauche de L.
1.7.3 Calcul de lautomate minimal
Daprs la proposition prcdente, calculer lautomate minimal revient
calculer la congruence de Nerode dun automate dterministe. Ce calcul peut
tre fait de manire trs ecace. Une premire mthode nave donne un temps de
calcul en O(n
2
) o n est le nombre dtats de lautomate. Une seconde mthode
base sur le principe diviser pour rgner permet dobtenir un temps de calcul
en O(nlog n). Le rsultat de cette mthode est tonnant car le principe diviser
pour rgner nest pas vident appliquer la minimisation dautomates.
Mthode itrative
Soit / = (Q, A, E, i, F) un automate dterministe. On dnit par rcur-
rence une suite (
i
)
i0
de relations dquivalence sur Q par
q
0
q

(q F q

F)
q
i+1
q

q
i
q

et a A q a
i
q

a
Proposition 1.90. Il existe k [Q[ tel que
k
=
k+1
. De plus,
k
=
k+n
pour tout n 0 et
k
est la congruence de Nerode.
44 CHAPITRE 1. LANGAGES RATIONNELS
Preuve. Les deux premires armations sont videntes et on conclut par rcur-
rence. Si q ,
k
q

alors (comme
k
=
k+1
), q a ,
k
q

a, et donc L
q
,= L
q
do
q ,
N
q

. Cela montre que


k
est moins ne que la congruence de Nerode.
Mais, si q
k
q

, alors pour tout u = a


1
a
n
on a :
q
a1

an
q
n
F q

a1

an
q

n
F
Ce qui implique que q
N
q

.
Algorithme de Hopcroft
Lalgorithme de Hopcroft calcule la congruence de Nerode dun automate
dterministe en temps O([A[nlog n) o n est le nombre dtats. Comme beau-
coup dalgorithmes en temps nlog n, il utilise le principe de diviser pour rgner.
Son utilisation est ici particulirement astucieuse. La mise en uvre de ce prin-
cipe pour le calcul de la congruence de Nerode nest pas vidente. Ce tour de
force conduit un algorithme donc le fonctionnement est relativement subtil.
Lanalyse de la complexit est galement dicile.
Dans cette partie, on identie une relation dquivalence sur un ensemble Q
avec la partition de Q en classes quelle induit.
Dnition 1.91 (Stabilit et coupure). Soit / = (Q, A, E, I, F) un automate
complet dterministe et mond, et soient a A et B, C Q. La partie B est
stable pour (C, a) si B a C ou si B a C = avec B a = q a [ q B.
Sinon, la paire (C, a) coupe B en les deux parties B
1
et B
2
dnies par
B
1
= q B [ q a C et B
2
= q B [ q a / C
Par extension, une partition de Q est dite stable pour (C, a) si chacune de ses
parts est stable pour (C, a).
La notion de stabilit qui vient dtre introduite permet de reformuler le
fait dtre une congruence pour une partition. Une partition P
1
, . . . , P
k
de Q
compatible avec F est une congruence si et seulement si elle est stable pour
chacune des paire (P
i
, a) o P
i
parcourt les parts et a les lettres de lalphabet.
La preuve du lemme suivant est immdiate. Par contre, le rsultat de celui-ci
est le principe mme sur lequel est bas lalgorithme de Hopcroft.
Lemme 1.92. Si B Q et C = C
1
C
2
o reprsente lunion disjointe, on
a alors :
1. Si B est stable pour (C
1
, a) et (C
2
, a) alors B est stable pour (C, a).
2. Si B est stable pour (C
1
, a) et (C, a) alors B est stable pour (C
2
, a).
Cet algorithme fonctionne globalement de la faon suivante. Il maintient
une partition de lensemble Q des tats dans la variable T et un ensemble o
de paires (C, a) o C est une part de la partition et a une lettre. Les paires
(C, a) de o sont celles pour lesquelles il reste vrier que les parts de partition
sont stables. Lalgorithme sarrte donc ds que cet ensemble o est vide. Tans
que cet ensemble nest pas vide, une paire (C, a) de cet ensemble est traite. Le
traitement consiste remplacer chaque part B coupe par (C, a) en B
1
et B
2
par les nouvelles parts B
1
et B
2
. Ce remplacement doit seectuer dabord dans
la partition T puis dans lensemble o. Cest ce second remplacement qui recle
1.7. AUTOMATE MINIMAL 45
toute lingniosit de cet algorithme. Si une paire (B, b) est prsente dans o,
celle-ci est remplace par les deux paires (B
1
, b) et (B
2
, b). On applique alors
le point 1 du lemme prcdent. Si la paire (B, b) est absente de lensemble o,
seule une des deux paires (B
1
, b) ou (B
2
, b) est ajoute o. On applique alors le
point 2 du lemme prcdent. Le principe diviser pour rgner est mis en uvre
en ajoutant o la paire dont la premire composante est de plus petit cardinal.
Pour deux parties B et B

de Q, on note min(B, B

) celle des deux ayant le plus


petit cardinal ou nimporte laquelle des deux si elles ont mme cardinal.
Input Automate dterministe / = (Q, E, E, I, F)
1: T (F, Q F)
2: o (min(F, Q F), a) [ a A
3: while o , = do
4: (C, a) un lment de o
4: // Boucle en complexit proportionnelle [C[[a[
5: o o (C, a)
6: for chaque B coup par (C, a) en B
1
, B
2
do
7: remplacer B par B
1
, B
2
dans T
8: for all b A do
9: if (B, b) o then
10: remplacer (B, b) par (B
1
, b) et (B
2
, b) dans o
11: else
12: ajouter (min(B
1
, B
2
), b) o
Algorithme 1: Algorithme de Hopcroft
Nous allons maintenant analyser cet algorithme. Nous allons en particulier
prouver quil termine toujours et quil calcule bien la congruence de Nerode.
Limplmentation de cet algorithme est particulirement dlicate. Pour obtenir
la complexit annonce de nlog n, il faut utiliser les structures de donnes ap-
propries. Une description complte de limplmentation peut tre trouve en
[BBC93].
Nous commenons par prouver la terminaison. chaque itration de la
boucle principale while, soit la partition T est rane parce quau moins une
part B est coupe, soit le cardinal de o a diminu dune unit. Comme ces deux
vnements ne peuvent survenir quun nombre ni de fois, lalgorithme sarrte
ncessairement car o devient vide.
Nous montrons maintenant que la partition T est gale la congruence de
Nerode lorsque lalgorithme se termine. Il est facile de voir que la congruence de
Nerode rane toujours la partition T. Chaque coupure ralise par lalgorithme
est en eet ncessaire. Il reste donc montrer quaucune coupure na t oublie,
cest--dire que la partition T est stable pour chacune des paires (C, a) o C
parcourt toutes les parts de T. Dans ce but, bous allons montrer linvariant
suivant.
Lemme 1.93. Pour toute lettre a A et toute part P T, P est combinaison
boolenne de :
parties C telles que T est stable pour (C, a) ;
parties C telles que (C, a) o.
La preuve se fait facilement par induction sur le nombre ditrations de la
boucle principale de lalgorithme. Lorsque lensemble o est vide, la partie P
46 CHAPITRE 1. LANGAGES RATIONNELS
est combinaison boolenne de parties C telles que T est stable pour (C, a). Il
dcoule directement du lemme 1.92 que la partition T est stable pour (P, a).
Il reste nalement analyser la complexit de lalgorithme. Une implmen-
tation rigoureuse garantit que le droulement du corps de la boucle principale
prend un temps au plus proportionnel la taille de la partie C. La complexit
totale est donc borne par la somme des tailles de ces parties C. Pour calculer
cette somme, nous allons utiliser la relation suivante qui est vraie pour chaque
lettre a xe.

(C,a) traite
[C[ =

qQ
[(C, a) [ (C, a) traite et q Q[
Pour obtenir la complexit O([A[[Q[ log [Q[), il sut de montrer que le cardinal
de chaque ensemble (C, a) [ (C, a) traite et q Q est born par log
2
[Q[ pour
chaque lettre a et chaque tat q.
Soit un tat q et une lettre a. Supposons qu une itration donne de la
boucle principale, une paire (C, a) soit traite et que la part C contienne q. Soit
(C

, a) la paire suivante traite telle que C

contienne q. Comme les parties C


et C

sont des parts de la partition T et que cette dernire ne peut tre que
rane, la partie C

est contenue dans C et C

provient dune coupure de C.


Comme lalgorithme ajoute o la paire dont la premire composante est de
cardinal minimal, on a lingalit [C

[ [C[/2. Ceci prouve que le nombre de


paires (C, a) traites o C contienne q est au plus log
2
[Q[ et termine lanalyse
de la complexit de lalgorithme.
Les mthodes pour minimiser sappliquent lorsque lautomate de dpart est
dterministe. Si ce nest pas le cas, il peut toujours tre dabord dterminis
grce la proposition 1.69 puis ensuite minimis. Lexercice suivant donne une
autre mthode pour calculer lautomate minimal en utilisant uniquement des
dterminisations.
Exercice 1.94. Pour un automate / = (Q, A, E, I, T), on note d(/) la partie
accessible de lautomate

/ construit dans la preuve de la proposition 1.69. On
note aussi t(/) lautomate (Q, A, E
t
, F, I) o lensemble E
t
des transitions est
donn par
E
t
= p
a
q [ q
a
p E.
Soit / acceptant un langage L. Momtrer que lautomate d(t(d(t(/)))) est lau-
tomate minimal /
L
de L.
Solution. Soit /

lautomate d(t(d(t(/)))). Par construction, cet automate est


dterministe. On vrie en outre quil accepte le langage L. Il reste donc
vrier que cet automate est minimal.
Soient P et P

deux tats distincts de /

. Par dnition, P et P

sont deux
ensembles tats de lautomate d(t(/)). Soit R un tat de d(t(/)) tel que R P
et R / P

. Par dnition de d(t(/)), R est un ensemble dtats de /. Grce au


lemme 1.71, il existe un mot w tel que R = q [ q
w
f avec f F. On en
dduit que dans /

, il existe un chemin de P un tat nal tiquet par w alors


que ce nest pas le cas pour P

. Ceci montre que P et P

ne sont pas quivalents


pour la congruence de Nerode.
1.8. PROPRITS DE CLTURE 47
1.8 Proprits de clture
La classe des langages rationnels est trs robuste. Elle est close pour din-
nombrables oprations. Ceci est une proprit importante de ces langages et
justie lintrt qui leur est port. Cette partie donne les principales proprits
de clture mais la liste est loin dtre exhaustive.
1.8.1 Oprations boolennes
Il a dj t vu que le complmentaire dun langage rationnel est encore
rationnel (cf. corollaire 1.77). Comme la classe des langages rationnels est par
dnition close par union, elle est aussi close par intersection.
1.8.2 Morphisme et morphisme inverse
La classe des langages rationnels est close par morphisme et par morphisme
inverse.
Proposition 1.95. Soit un morphisme de A

dans B

. Si L A

est ration-
nel, alors (L) est rationnel. Si K B

est rationnel, alors


1
(K) est aussi
rationnel.
Preuve. Il est possible dobtenir une expression rationnelle pour (L) partir
dune expression rationnelle pour L en remplaant chaque occurrence dune
lettre a par (a).
Soit / = (Q, A, E, I, F) un automate acceptant le langage K. On contruit
un automate /

pour
1
(K) ayant mme ensemble dtats. Il y a une transition
p
a
q dans /

sil y un chemin p
(a)
q dans /. En gardant les mmes tats
initiaux et naux, lautomate / accepte le langage
1
(K). On peut remarquer
que si / est dterministe alors /

est aussi dterministe.


Exercice 1.96. Soient K et L deux langages sur un alphabet A. Le mlange
K XL des langages K et L est le langage sur A

dni par la formule suivante.


K XL = u
0
v
0
u
1
u
n
v
n
[ u
i
, v
i
A

, u
0
u
n
K et v
0
v
n
L.
1. Montrer que Si les langages L et L

sont rationnels, alors le langage L XL

est encore rationnel.


2. Montrer en utlisant le thorme de Higman quun langage de la forme
L XA

est toujours rationnel mme si L nest pas rationnel.


Solution. Soient / = (Q, A, E, I, F) et /

= (Q

, A, E

, I

, F

) deux automates
acceptant respectivement les langages K et L. On construit lautomate dont
lensemble dtats est QQ

, les ensembles dtats initiaux et naux sont I I

et F F

et dont lensemble des transitions est


(p, p

)
a
(q, p

) [ p
a
q E (p, p

)
a
(p, q

) [ p

a
q

.
On vrie sans dicult que cet automate accepte K XL.
Le langage L XA

est un idal pour lordre sous-mot. Daprs le thorme


de Higman, cet ideal est de base ni. Il existe donc un ensemble ni F de
mots tel que L XA

wF
w XA

. Daprs le rsultat prcdent, chaque


langage w XA

est rationnel et L est donc aussi rationnel.


48 CHAPITRE 1. LANGAGES RATIONNELS
Exercice 1.97. 1. Soient les langages L
n
dnis par rcurrence par L
0
= et
L
n+1
= L
n
X(ab)

. Montrer que L
n
est lensemble des mots w tels que
[w[
a
= [w[
b
et [u[
b
[u[
a
[u[
b
+n pour tout prxe u de w.
2. Soit une suite croissante n
1
, . . . , n
k
dentiers telle que n
1
= 1 et pour
tout 1 i < n, on a n
i
n
i+1
n
0
+ +n
i
+1. Montrer que le langage
(a
n1
b
n1
)

X (a
n2
b
n2
)

X X (a
n
k
b
n
k
)

est encore gal lensemble


des mots w tels que [w[
a
= [w[
b
et [u[
b
[u[
a
[u[
b
+ n
1
+ +n
k
pour
tout prxe u de w. On peut remarquer quune suite n
1
, . . . , n
k
dentiers
vrie les conditions ci-dessus si et seulement si pour tout entier s tel que
1 s n
1
+ + n
k
, il existe une suite dindices i
1
< < i
r
telle que
s = n
i1
+ +n
ir
.
Solution. Soit un mot w appartenant L
n
. Il existe des mots w
1
, . . . , w
n
de (ab)

tels que w w
1
X Xw
n
. Tout prxe u de w appartient un langage u
1
X
X u
n
o chaque u
i
est un prxe de w
i
. Comme chaque u
i
vrie [u
i
[
b

[u
i
[
a
[u
i
[
b
+ 1, le mot u vrie bien sr les ingalits requises. Inversement le
langage des mots vriant les ingalits est accept par lautomate dterministe
ci-dessous.
0 1 2
. . .
n
a
b
a
b
a
b
a
b
a
b
Soit w un mot accept par cet automate. Pour 1 i n, soit w
i
le mot forms
des lettres w qui tiquettent les transitions entre les tats i1 i dans le chemin
acceptant w. Il est clair que chaque mot w
i
appartient (ab)

et que le mot w
appartient w
1
X Xw
n
.
Exercice 1.98. Soit L un langage. Pour tout entier n tel que L contienne au
moins un mot de longueur n, w
n
est dni comme le mot le plus petit pour
lordre lexicographique de L A
n
. Montrer que si L est rationnel, le langage
w
n
[ L A
n
,= est encore rationnel.
Exercice 1.99. Soit s = (s
n
)
n0
une suite strictement croissante dentiers. Pour
un mot w = w
0
w
n
, on note w[s] le mot w
s0
w
s1
w
s
k
o k est lunique
entier tel que s
k
n < s
k+1
. Pour un langage L A

, on note L[s], le langage


w[s] [ w L. Montrer pour chacune des suites suivantes que si L est rationnel,
alors L[s] est encore rationnel.
s
n
= n!, s
n
= 2
n
, s
n
= n
2
.
1.9 Lemme de ltoile et ses variantes
Lintrt principal de ce lemme, galement appel lemme ditration ou
lemme de pompage est de donner une condition ncessaire pour quun langage
soit rationnel. Cette condition est souvent utilise pour montrer quun langage
donn nest pas rationnel. Cette partie et particulier le prsentation du thorme
de Ehrenfeucht, Parikh et Rozenberg doit beaucoup [Sak03, p. 77].
Il existe une multitude de variantes pour ce lemme. Leurs dmonstrations
sont toutes bases sur un usage plus ou moins n du principe des tiroirs, ou
1.9. LEMME DE LTOILE ET SES VARIANTES 49
de sa version plus volue, le thorme de Ramsey. Nous donnons dabord la
version la plus simple puis une version forte. Nous terminons par le thorme
de Ehrenfeucht, Parikh et Rozenberg qui tablit une rciproque au lemme de
ltoile.
Proposition 1.100 (Lemme de ltoile). Pour tout langage rationnel L, il existe
un entier n tel que pour tout mot f,
[f[ n
f L
_
=
_
u, v, w A

v ,=
f = uvw et uv

w L
Preuve. Soit n le nombre dtats dun automate acceptant le langage L, par
exemple lautomate minimal de L. Si [f[ n, un chemin acceptant pour f doit
repasser au moins deux fois par un mme tat q. Si u, v et w sont les tiquettes
dun chemin de ltat initial q, du circuit de q q et du chemin de q un tat
nal, on obtient une factorisation convenable de f.
Exercice 1.101. Montrer en utilisant le lemme de ltoile que le langage L =
a
n
b
n
[ n 0 nest pas rationnel.
Solution. Supposons par labsurde que le langage L soit rationnel. Soit n lentier
fourni par lemme de ltoile et soit f le mot f = a
n
b
n
. Le mot f se factorise
f = uvw o v est non vide et o uv

w L. Si v contient la fois des lettres a et


des lettres b, alors uv
2
w nappartient pas a

L contrairement lhypothse.
Si u ne contient que des a ou que des b, le mot uv
2
w na pas le mme nombre
de a que de b, ce qui conduit une contradiction.
Exercice 1.102. Soit A lalphabet a, b. Montrer en utilisant le rsultat de
lexercice prcdent que le langage L = w A

[ [w[
a
= [w[
b
nest pas
rationnel.
Solution. Si le langage L est rationnel, alors le langage L

= L a

est aussi
rationnel puisque les langages rationnels sont clos par intersection. Or ce lan-
gage L

est justement le langage a


n
b
n
[ n 0 considr lexercice prcdent.
Le problme du lemme de ltoile est quil donne une condition ncessaire
mais pas susante. Certains langages peuvent vrier la condition sans tre
rationnel.
Exercice 1.103. Soit L le langage a
n
b
n
[ n 0. Montrer que le langage
L

= L A

baA

vrie la condition du lemme de ltoile sans tre rationnel.


Solution. Si n 1, le mot f = a
n
b
n
se factorise f = uvw o u = a
n1
, v = ab et
w = b
n1
. On vrie sans peine que uv

w est inclus dans L

. Pour montrer que


L

nest pas rationnel, on procde comme lexercice prcdent en considrant


L

.
Il est possible de renforcer la condition du lemme de letoile. On obtient alors
un lemme qui permet de montrer plus facilement que certains langages ne sont
pas rationnels.
Proposition 1.104 (Lemme de ltoile fort). Pour tout langage rationnel L, il
existe un entier n tel que pour tout mot f,
f = uv
1
v
n
w
f L et v
i
A
+
_
=
_
i, j 0 i < j n
uv
1
v
i
(v
i+1
v
j
)

v
j+1
v
n
w L
50 CHAPITRE 1. LANGAGES RATIONNELS
Malgr le renforcement de la condition, celle-ci nest toujours pas susante,
comme le montre lexemple suivant.
Exemple 1.105. Soient les alphabets A = a, b et B = a, b, #. Soit le lan-
gage L sur B dni par K

+A

KA

#A

+A

#A

KA

o les langages K et K

sont dnis par K = uu [ u A

et K

= u#v [ u, v A

et u ,= v. On
vrie que le langage L vrie les conclusions du lemme prcdent bien quil ne
soit pas rationnel.
Nous allons maintenant noncer le thorme de Ehrenfeucht, Parikh et Ro-
zenberg qui fournit une condition ncessaire et susante pour quun langage soit
rationnel. Ce thorme est bas sur des proprits
k
et

k
dont nous donnons
maintenant les dnitions.
Dnition 1.106 (Proprits
k
et

k
). Un langage L vrie la proprit
k
(resp.

k
) pour k 0 si pour toute factorisation f = uv
1
v
2
v
k
w o tous les
mots v
i
sont non vides, il existe deux indices 1 i < j k tels que
n 0 f L uv
1
v
i
(v
i+1
v
j
)
n
v
j+1
v
k
w L pour
k
f L uv
1
v
i
v
j+1
v
k
w L pour

k
Il faut remarquer une dirence essentielle entre la condition du lemme de
ltoile et les proprits
k
et

k
. Ces dernires sont des quivalences alors que la
condition du lemme est seulement une implication. Ceci signie que la condition
du lemme porte sur le langage lui-mme alors que les proprits
k
et

k
portent
simultanment sur le langage et son complmentaire.
Le thorme suivant tablit que les proprits
k
et

k
qui gnralisent les
lemmes de ltoile sont caractristiques des langages rationnels. Lintrt de ce
thorme rside plus dans la technique de preuve et dans lutilisation astucieuse
du thorme de Ramsey que dans le rsultat lui-mme.
Thorme 1.107 (Ehrenfeucht, Parikh et Rozenberg 1981). Pour tout lan-
gage L, les propositions suivantes sont quivalentes.
1. L est rationnel.
2. Il existe k 0 tel que L vrie
k
.
3. Il existe k 0 tel que L vrie

k
.
La preuve du thorme sappuie sur le thorme suivant qui tend le principe
des tiroirs. Ce principe trs simple nonce que si n + 1 objets sont rangs dans
n tiroirs, deux objets se trouvent ncessairement dans le mme tiroir. Dans
le thorme de Ramsey, ce sont les parties k objets qui sont rangs dans les
tiroirs plutt que les objets eux-mmes. Laectation des tiroirs est donne par la
fonction f et les tiroirs sont les lments de lensemble C. Si E est un ensemble,
on notera P
k
(E) lensemble des parties k lments de E. Le thorme de
Ramsey se dmontre par rcurrence sur k, le cas k = 1 tant le principe des
tiroirs. Une dmonstration dtaille peut tre consulte en [vLW92].
Thorme 1.108 (Ramsey 1929). Pour tout triplet dentiers naturels (k, m, r),
il existe un entier N(k, m, r) tel que pour tout :
ensemble E tel que [E[ N(k, m, r),
ensemble C tel que [C[ = m,
fonction f : P
k
(E) C,
1.9. LEMME DE LTOILE ET SES VARIANTES 51
il existe F E tel que :
[F[ r ;
[f(P
k
(F))[ 1.
Dans la littrature, les lments de lensemble C sont appeles les couleurs
et la fonction f aecte une couleur chaque partie k lments. La condition
[f(P
k
(F))[ 1 signie que toutes les parties k lments de F se voient aecter
la mme couleur. On dit alors que F est monochrome.
Preuve. Nous montrons successivement que la condition 1 implique la condi-
tion 2, qui implique son tour la condition 3 qui implique nalement la condi-
tion 1. Il est tout dabord vident que la condition 1 implique la condition 2
et que la condition 2 implique la condition 3. Il reste donc montrer que la
condition 3 implique la condition 1. La suite de la preuve est consacre a cette
implication.
La preuve de cette implication se dcompose en deux tapes. On montre
dans un premier temps que si L satisfait

k
, alors le quotient v
1
L satisfait

k
pour chaque mot v. Dans un second temps, on montre que le nombre de
langages vriant

k
est ni. Finalement, avec ces deux rsultats, on obtient
quun langage vriant

k
possde un nombre ni de quotients gauche. La
proposition 1.82 (p. 41) permet de conclure quil est rationnel.
Premire tape Soit L un langage qui vrie

k
pour un entier k x et
soit un mot v A

. On montre que le langage v


1
L vrie aussi

k
. Soit alors
f, un mot qui scrit f = uv
1
v
2
v
k
w o les mots v
i
ne sont pas vides pour
1 i k. Les mots u et w sont quelconques. En appliquant la condition

k
au langage L et au mot f

= vf, on obtient une paire (i, j) et on a alors les


quivalences suivantes.
f v
1
L vf L Par dnition de v
1
L
vuv
1
v
i
v
j+1
v
k
w L Par dnition de (i, j)
uv
1
v
i
v
j+1
v
k
w v
1
L Par dnition de v
1
L
On a montr que v
1
L vrie

k
.
Seconde tape Nous montrons maintenant que le nombre de langages vri-
ant

k
est ni pour chaque entier k. Cest la partie dlicate de la preuve qui fait
appel au thorme de Ramsey. En appliquant ce thorme pour k = 2, m = 2
et r = k + 1, on obtient un entier N = N(2, 2, k + 1).
On note A
N
lensemble des mots de longueur au plus N sur lalphabet A.
Soient L et K deux langages vriant

k
pour un entier k x. On montre que
si K et L concident sur les mots de longueur au plus N, cest--dire LA
N
=
KA
N
, alors les deux langages K et L sont gaux. Ceci prouve que le nombre
de langages vriant

k
est ni. Le nombre de tels langages est en eet born
par 2
m
o m = ([A[
N+1
1)/([A[ 1) est le nombre de mots de longueur au
plus N sur lalphabet A.
On suppose maintenant que L A
N
= K A
N
. Pour tout mot f, on
montre par rcurrence sur la longueur [f[ que f appartient K si et seulement
si f appartient L. Le rsultat est bien sr immdiat si f est de longueur au
plus N.
52 CHAPITRE 1. LANGAGES RATIONNELS
On suppose alors que [f[ > N. Le mot f est factoris f = a
0
a
N
g o
a
0
, . . . , a
N
sont des lettres et g est un mot quelconque.
On dnit maintenant un ensemble de paires dentiers qui va permettre luti-
lisation du thorme de Ramsey. Toute lintelligence de cette preuve rside dans
lintroduction de cet ensemble X dni par la formule suivante.
X = (i, j) [ a
0
a
i
a
j+1
a
N
g L
Soient E lensemble 1, . . . , N des entiers de 1 N, C lensemble deux cou-
leurs C = 0, 1 et la fonction de P
2
(E) dans C dnie par
(i, j) =
_
1 si (i, j) X
0 sinon.
La fonction est en fait la fonction caractristique de lensemble X vu comme
un sous-ensemble de P
2
(E). On a implicitement identi une partie i, j
deux lments avec la paire (i, j) o i < j. Le thorme de Ramsey pour k = 2,
m = [C[ et r = k+1 donne un ensemble k+1 lments F = i
0
, . . . , i
k
tel que
(i
m
, i
n
) reste constant quand les deux indices m et n parcourent 0, . . . , k.
Ceci signie que pour toutes paires (m, n) et (m

, n

) telles que 0 m < n k


et 0 m

< n

k, on a lquivalence
a
0
a
im
a
in+1
a
N
g L a
0
a
i
m

a
i
n
+1
a
N
g L.
Les k + 1 entiers i
0
, . . . , i
k
induisent une factorisation f = uv
1
v
2
v
k
w o les
mots u, v
1
, . . . , v
k
, w sont respectivement donns par
u = a
0
a
1
a
i01
v
j
= a
ij1
a
ij1+1
a
ij 1
pour chaque 1 j k
w = a
i
k
a
N
g
Comme les deux langages K et L vrient la proprit

k
, la factorisation f =
uv
1
v
2
v
k
w donne deux paires (m, n) et (m

, n

) dentiers a priori direntes.


On a alors la suite dquivalences suivantes.
f L a
0
a
im
a
in+1
a
N
g L par dnition de (m, n)
a
0
a
i
m

a
i
n
+1
a
N
g L par dnition de F
a
0
a
i
m

a
i
n
+1
a
N
g K par hypothse de rcurrence
f K par dnition de (m

, n

)
On a donc montr que f appartient K si et seulement si f appartient L et
que K et L sont gaux. Ceci termine la preuve du thorme.
1.10 Hauteur dtoile
On tudie ici une classication des langages rationnels base sur le nombre
dtoiles imbriques des expressions rationnelles. La raison pour laquelle on sin-
tresse cette opration est quelle est celle qui donne toute leur puissance aux
expressions rationnelles. Les seuls langages pouvoir tre dcrits sans toile sont
les langages nis.
1.11. RECONNAISSANCE PAR MORPHISME 53
La hauteur dtoile h(e) dune expression rationnelle e est dnie par rcur-
rence sur la structure de lexpression par les formules suivantes.
h(a) = h() = 0 pour toute lettre a A
h(e +f) = max(h(e), h(f))
h(ef) = max(h(e), h(f))
h(e

) = 1 +h(e)
Exemple 1.109. Les expressions ab + ba, (ab +a)

et (ab

a + b)

sont respecti-
vement de hauteur dtoile 0, 1 et 2.
Il faut remarquer quun mme langage peut tre dcrit par plusieurs expres-
sions rationnelles ayant des hauteurs dtoile direntes. Par exemple, les deux
expressions (a + b)

et (a

b)

sont de hauteurs dtoile 1 et 2 mais dcrivent


le mme langage de tous les mots sur lalphabet a, b. La hauteur dtoile dun
langage L est dnie comme la hauteur minimale dune expression rationnelle
dcrivant L. Les langages de hauteur dtoile 0 sont les langages nis.
Exemple 1.110. Le langage (a +b)

est de hauteur dtoile 1 puisquil est dcrit


par une expression rationnelle de hauteur 1 et quil ne peut tre dcrit par une
expression de hauteur 0 parce quil est inni.
Un premier rsultat sur la hauteur dtoile est que pour tout entier n, il
existe un langage rationnel de hauteur dtoile n. Il existe un algorithme qui
calcule la hauteur dtoile dun langage rationnel donn mais celui-ci est trs
complexe et dpasse le cadre de cet ouvrage.
Comme la classe des langages rationnels est close pour toutes les oprations
boolennes, il est possible de considrer des expressions utilisant non seulement
les oprations rationnelles mais aussi toutes les oprations boolennes. On peut
dailleurs se limiter la complmentation puisque lunion et la complmentation
permettent dexprimer les autres oprations boolennes. La hauteur dtoile
peut tre tendue ces expressions gnralises en posant
h() = 0,
h(e
c
) = h(e).
La hauteur dtoile gnralise dun langage L est la hauteur dtoile mini-
male dune expression utilisant les oprations rationnelles et boolennes et d-
crivant L.
Exemple 1.111. Le langage (a +b)

=
c
est de hauteur dtoile gnralise 0.
Les langages de hauteur dtoile gnralise 0 sont appels langages sans
toile. Ils sont tudis en dtail et caractriss de manire algbrique la sec-
tion 1.12 (p. 60). Cest encore une problme ouvert de savoir sil existe des
langages de hauteur dtoile gnralise strictement plus grande que 1.
1.11 Reconnaissance par morphisme
Les langages rationnels peuvent tre dcrits par des expressions rationnelles
ou par des automates. On donne maintenant une troisime faon plus algbrique
de dnir ces langages.
54 CHAPITRE 1. LANGAGES RATIONNELS
Dnition 1.112 (Monode). On appelle monode tout ensemble muni dune
loi de composition interne associative qui possde un lment neutre not 1
M
.
Exemple 1.113. Quelques exemples classiques de monodes :
A

muni de la concatnation (pour A, alphabet quelconque),


lensemble P(A

) des parties de A

muni du produit des langages,


tout groupe G muni de sa loi naturelle,
lensemble des matrices n n sur un anneau et plus gnralement sur un
semi-anneau (pas dinverse pour laddition),
M = 1, , o 1 est llment neutre et o la loi est dnie pour les
autres lments par =
2
= et
2
= = (loi xy = x),
M = 1, , o 1 est llment neutre et o la loi est dnie pour les
autres lments par
2
= = et =
2
= (loi xy = y),
M = 1 I J pour deux ensembles I et J o la loi est (i, j)(i

, j

) =
(i, j

).
Dnition 1.114 (Morphisme de monodes). Soient M et M

deux monodes.
Un morphisme de M dans M

est une application : M M

qui vrie :
(1
M
) = 1
M
,
(xy) = (x)(y), pour tous lments x et y de M.
Exemple 1.115. Lensemble N muni de laddition est un monode. Lapplication
w [w[ est un morphisme de A

dans N.
La proposition suivante justie le fait que le monode A

soit appel monode


libre. Cette proprit caractrise le monode libre engendr par A.
Proposition 1.116. Toute fonction : A M de A dans un monode M se
prolonge de faon unique en un morphisme de monode de A

dans M.
Preuve. Si le morphisme prolonge , on a pour tout mot w = a
1
a
n
de A

,
(w) = (a
1
) (a
n
) = (a
1
) (a
n
).
Ceci dnit de manire unique. Inversement, il est facile de vrier que la
formule ci-dessus dnit bien un morphisme.
Dnition 1.117 (Reconnaissance par monode). Un langage L A

est re-
connu par un morphisme : A

M si et seulement si il existe une partie P


de M telle que L =
1
(P). Par extension, un monode M reconnat le lan-
gage L sil existe un morphisme : A

M qui reconnat L.
Quand un morphisme de monodes : A

M reconnat un langage L,
on peut toujours prendre la partie P gale P = (L). Autrement dit, un
morphisme : A

M reconnat L si et seulement si L =
1
((L)). Si
le morphisme nest pas surjectif, on peut remplacer le monode M par le
sous-monode M

= (A

).
Exemple 1.118. On considre le monode M gal au groupe Z/2Z deux l-
ments.
: A

Z/2Z
w [w[ mod 2
(dans ce cas :
1
(0) = (A
2
)

)
: A

Z/2Z
w [w[
a
mod 2
(dans ce cas :
1
(0) = (ab

a +b)

)
1.11. RECONNAISSANCE PAR MORPHISME 55
Exemple 1.119. On considre A = a, b et le monode M = 1, , avec

2
= = et =
2
= (cf. exemple 1.113). Le morphisme : A

M
dni par :
(w) =
_
_
_
1 si w =
si w aA

si w bA

Proposition 1.120 (Rationalit par morphisme). Un langage L A

est ra-
tionnel si et seulement sil est reconnu par un monode ni.
Preuve. Soit un langage L et un morphisme : A

M tel que L =
1
(P)
pour une partie P de M. On construit lautomate / = (M, A, E, 1, P) o len-
semble des transitions est E = (m, a, m(a)) [ m M, a A. Cet automate
reconnat L, ce qui prouve un sens de lquivalence.
1

a
b
a, b
a, b
Fig. 1.23 Automate du monode M = 1, , avec la loi xy = x
Exemple 1.121. Si on applique la construction prcdente au monode M =
1, , avec la loi xy = x (cf. exemple 1.113), on obtient lautomate de la
gure 1.23.
1

a
b
a
b
b
a
Fig. 1.24 Automate du monode M = 1, , avec la loi xy = y
Exemple 1.122. Si on applique la construction prcdente au monode M =
1, , avec la loi xy = y (cf. exemple 1.113), on obtient lautomate de la
gure 1.24.
Pour montrer que tout langage rationnel est reconnu par un monode ni,
on introduit quelques dnitions. Soient r et r

deux relations binaires sur un


mme ensemble E. On dnit la composition de ces deux relations, note rr

par la formule suivante.


rr

= (x, z) [ y E (x, y) r et (y, z) r

.
56 CHAPITRE 1. LANGAGES RATIONNELS
On vrie sans peine que la loi de composition ainsi dnie est associative et que
lidentit est un lment neutre. On note 1
E
le monode des relations binaires
sur lensemble E muni de cette loi de composition interne.
Dnition 1.123 (Monode des transitions). Soit un automate /gal (Q, A, E, I, F).
Lapplication : A

1
Q
dnie par :
(w) = r
w
= (q, q

) [ q
w
q

dans /
est un morphisme de A

dans 1
Q
. Son image (A

) dans 1
Q
est appele mo-
node des transitions de lautomate /.
Avec ce morphisme, il sut de prendre :
P = r [ r (I F) ,=
pour avoir le rsultat recherch.
Dnition 1.124 (Sous-monode). Un monode M

est appel sous-monode


de M lorsque M

M et si lapplication identit M

id
M est un morphisme
de M

dans M.
Une faon quivalente dexprimer que M

est un sous-monode de M est de


dire que M est inclus dans M

, que lunit de M

concide avec lunit de M et


que le produit de M

est la restriction M

du produit de M.
Exemple 1.125. Quelques exemples de sous-monodes.
Les sous-monodes de A

sont les langages de la forme L

pour L A

.
Lensemble des parties rationnelles de A

est un sous-monode de P(A

).
Exercice 1.126. On dit quun langage est prxe si L LA
+
= , cest--dire
si un prxe stricte dun mot de L nest jamais un mot de L. Montrer que
lensemble des langages prxes est un sous-monode de P(A

) et que dans ce
monode, lgalit
L
1
L
m
= K
1
K
n
nest vrie que si m = n et L
i
= K
i
pour tout 1 i m. Un tel monode est
dit libre car il est isomorphe un monode de la forme B

.
Dnition 1.127 (Monode quotient). On dit que M est quotient de M

sil
existe un morphisme surjectif : M

M.
M
1 M

M
i

Fig. 1.25 Relation de division M M

Dnition 1.128 (Monode diviseur). On dit que M divise M

et on note
M M

si M est un quotient dun sous-monode M


1
de M

(cf. gure 1.25).


1.11. RECONNAISSANCE PAR MORPHISME 57
la notion de diviseur pour des objets algbriques est lquivalent pour les
graphes de la notion de mineur.
Proposition 1.129 (Ordre de la division). La relation de division est une
relation dordre sur lensemble des monodes nis.
On perd lanti-symtrie lorsque les monodes sont innis comme le montre
lexemple suivant.
Exemple 1.130. On peut illustrer ce fait avec M = a, b

et M

= a, b, c, d

(remarquez que M M

). Et en considrant les morphismes dnis par :


: M M

: w w

: M

M :
_

_
a aa
b bb
c ab
d ba
Preuve. La rexivit est vidente et lanti-symtrie se vrie facilement par
quipotence.
Pour la transitivit, supposons que M M

, alors :
M
2
id
M

1
id
M

M
1
id
M


M
On vrie alors que le monode M
2
=
1
(M
1
) est un sous-monode de M

1
et
donc de M

et que (

((M
2
)) = (M
1
) = M.
Dnition 1.131 (Congruence). Une relation dquivalence dnie sur un
monode M est appele congruence (de monode) si pour tous x, x

, y et y

dans M, on a :
x x

y y

_
xy x

Pour quune relation dquivalence soit une congruence, il sut que pour
tous y et y

dans M, limplication y y

= x, z xyz xy

z soit satisfaite.
Proposition 1.132. Si est une congruence sur M, le quotient M/ est un
monode pour la loi dnie par [x][y] = [xy] o [x] dsigne la classe de x dans
le quotient.
Dnition 1.133 (Congruence syntaxique). Pour tout langage L A

, on
appelle contexte de y A

lensemble C(y) = (x, z) (A

)
2
: xyz L. La
relation
L
dnie par :
y
L
y

C(y) = C(y

) x, z A

(xyz L xy

z L)
est appele congruence syntaxique de L.
La proposition suivante justie la terminologie.
58 CHAPITRE 1. LANGAGES RATIONNELS
Proposition 1.134 (Monode syntaxique). Pour tout langage L, la congruence
syntaxique
L
est eectivement une congruence et le monode quotient A

/
L
est appel monode syntaxique de L.
Preuve. Si y
L
y

, on a x, z A

, C(xyz) = C(xy

z) et donc xyz
L
xy

z.
la proposition suivante montre que le monode syntaxique dun langage est
en quelque sorte lquivalent algbrique de lautomate minimal. Il est le plus
petit monode reconnaissant le langage. Beaucoup de proprits dun langage
peuvent tre dduites de son monode syntaxique.
Proposition 1.135. Un monode M reconnat un langage L A

si et seule-
ment si le monode syntaxique M(L) divise M.
On commence par prouver un premier lemme qui montre que la relation de
division est compatible avec la reconnaissabilit.
Lemme 1.136. Pour tout langage L A

et tout monode M, les propositions


suivantes sont vries.
1. Si M reconnat L si M est sous-monode de M

, alors M

reconnat L.
2. Si M reconnat L si M est quotient de M

, alors M

reconnat L.
3. Si M reconnat L si M divise M

, alors M

reconnat L.
Preuve. La proposition 1. dcoule du fait quun morphisme de A

dans M peut
tre vu comme un morphisme de A

dans M

. La proposition 3. est consquence


de 1. et de 2.
Pour la proposition 2, soit un morphisme de A

dans M et un mor-
phisme surjectif de M

dans M. Pour toute lettre a de A, on pose

(a) = m
a
o m
a
est un lment quelconque de M

vriant (m
a
) = (a). Daprs la
proposition 1.116,

se prolonge en un morphisme de A

dans M

qui vrie
(

(w)) = (w). Il est alors facile de vrier que la partie P

=
1
((L))
de M

vrie
1
(P

) = L et que

reconnat L.
Ce second lemme tablit quun langage est bien reconnu par son monode
syntaxique.
Lemme 1.137. Pour tout langage L, le monode syntaxique M(L) reconnat
L.
Preuve. Il faut remarquer quun mot w appartient L si et seulement si son
contexte C(w) contient la paire (, ). Il est alors clair que si une classe de
la congruence syntaxique
L
contient un mot de L, elle est alors entirement
contenu dans L.
Lapplication canonique de A

dans M(L) = A

/ qui associe tout mot w


sa classe [w] est un morphisme. Daprs la remarque prcdente, ce morphisme
reconnat L puisque L =

wL
[w].
On procde maintenant la preuve de la proposition.
Preuve. En utilisant les lemmes 1.137 et 1.136, on obtient immdiatement que,
si M(L) divise M, alors M reconnat aussi L.
1.11. RECONNAISSANCE PAR MORPHISME 59
Rciproquement, si M reconnat L, il existe un morphisme : A

M tel
que L =
1
(P) pour une partie P M. On note la morphisme canonique
de A

dans M(L). Le monode M

= (A

) est un sous-monode de M. On va
montrer que M(L) est un quotient de M

ce qui prouvera que M(L) divise M.


On montre que pour tous mots w et w

, si (w) = (w

), alors on a aussi
(w) = (w

). Une paire (u, v) appartient au contexte C(w) si uwv appartient


L, cest--dire si (u)(w)(v) appartient P. Ceci montre que les contextes
C(w) et C(w

) sont gaux et que (w) = (w

).
Pour tout lment m de M

, on peut dnir

(m) = (w) o w est un mot


tel que (w) = m puisque (w) est indpendant du choix de w. On vrie alors
sans dicult que

ainsi dni est un morphisme surjectif de M

dans M(L).
A

M(L)
Pour le calcul du monode syntaxique, on utilise la proposition suivante.
Proposition 1.138. Le monode syntaxique M(L) dun langage rationnel L
est gal au monode des transitions de lautomate minimal de L.
Preuve. Daprs la proposition 1.120, le monode des transitions de lautomate
minimal de L reconnat L. Il est donc divisible par le monode syntaxique M(L)
daprs la proposition 1.135. Soient deux mots w et w

ayant des images dif-


frentes dans le monode des transitions de lautomate minimal. Puisque cet
automate est dterministe, il existe un tat p tel que p w ,= p w

. Soient q et q

les tats p w et p w

. Puisque cet automate est minimal, il existe un mot v tel


que q v est nal et q

v nest pas nal (ou linverse). Il existe aussi un mot u


tel que i u = p. On en dduit que la paire (u, v) appartient C(w) mais pas
C(w

) et que w et w

ont des images direntes dans le monode syntaxique


de L.
Exemple 1.139. Soit le langage L = (ab)

dont lautomate minimal est repr-


sent la gure 1.22. On construit son monode syntaxique en dterminant
toutes les relations de transitions de lautomate. Comme lautomate est dter-
ministe, ces relations sont des fonctions. On obtient la table ci-dessous.
Le monode associ comporte 6 lments 1, 0, , , , qui vrie les
relations suivantes. Ceci constitue en fait une prsentation par gnrateurs et
relations de ce monode.
= =
2
=
2
= 0
La reconnaissance par monodes des langages rationnels permet de rsoudre
rapidement certaines questions. Pour illustrer le propos, nous allons montrer la
proposition suivante dont la preuve est grandement facilite par les monodes.
Le plus intressant nest pas le rsultat en soi mais la technique de preuve. Le
rsultat est en fait un cas particulier dune construction beaucoup plus gnrale.
Proposition 1.140. Soit une substitution de A

dans B

et soit K B

un
langage rationnel. Les deux langages w [ (w) K ,= et w [ (w) K
sont rationnels.
60 CHAPITRE 1. LANGAGES RATIONNELS
0 1 2
1 = 0 1 2
aba = a 1 2 2
bab = b 2 0 2
0 = bb = aa 2 2 2
ab 0 2 2
ba 2 1 2
bb 2 2 2
aba 1 2 2
bab 2 0 2
Tab. 1.1 Fonctions de transitions de lautomate minimal de (ab)

Pour un monode M, lensemble P(M) des parties de M est naturellement


muni dune structure de monode par le produit P Q = pq [ p P et q Q
pour deux parties P, Q M.
Preuve. On va montrer que si K est reconnu par le monode M, alors les deux
langages L = w [ (w) K ,= et L

= w [ (w) K sont reconnus par


le monode P(M). Soit : B

M un morphisme de B

dans un monode
ni M tel que K =
1
(P) pour une partie P M. On dnit le morphisme
: A

P(M) par (a) = ((a)). On vrie que (w) = ((w)) pour tout
mot w A

. Ceci implique que L =


1
(Q) et L

=
1
(Q

) o Q et Q

sont
respectivement les ensembles T [ T P ,= et T [ T P des parties de M
qui intersectent P et qui sont incluses dans P.
1.12 Langages sans toile
Le but de cette partie est dillustrer lutilisation du monode syntaxique
et de montrer la puissance de cet outil. On introduit la classe des langages
appels sans toile et on prouve le thorme de Schtzenberger qui donne une
lgante caractrisation de ces langages en terme de groupes contenus dans leurs
monodes syntaxiques.
Dnition 1.141 (Langage sans toile). La famille des langages sans toile est
la plus petite famille c telle que :
c et a c pour toute lettre a ;
c est close par union, complmentation et produit. Ceci signie que si les
langages K et L appartiennent c, alors les langages K + L, A

L et
KL appartiennent aussi c.
Les langages sans toile sont aussi les langages de hauteur dtoile gnrali-
se 0 (cf. section 1.10 p. 52).
Exemple 1.142. Quelques exemples et contre-exemples de langages sans toile.
A

= A

et est donc un langage sans toile.


A

aA

bA

est sans-toile.
= A

aA
A

aA

est sans toile.


(ab)
+
c car il scrit aussi (ab)
+
= (aA

b) A

(aa +bb)A

.
(ab)

c car il scrit (ab)

= (ab)
+
+.
1.12. LANGAGES SANS TOILE 61
(aa)

et (aa)
+
ne sont pas sans toile.
Le fait que le langage (aa)

ne soit eectivement pas sans toile nest pas


vident a priori. Il est facile de montrer quun langage est sans toile en donnant
explicitement une expression sans toile pour ce langage. Par contre, il est plus
ardu de prouver quun langage nest pas sans toile. La suite de cette partie est
consacre une caractrisation algbrique des langages sans toile qui permet
facilement de prouver quun langage donn nest pas sans toile.
Dnition 1.143 (Groupe contenu dans un monode). On dit quun groupe G
est contenu dans un monode M si :
1. G M
2. (g, g

) G
2
, g.
G
g

= g.
M
g

Un monode M est apriodique sil ne contient que des groupes triviaux, cest-
-dire rduits un seul lment.
Lorsquun groupe G est contenu dans un monode M, llment neutre de G
ne concide par ncessairement avec llment neutre de M (1
G
,= 1
M
).
Les rsultats suivants montrent que les monodes apriodiques sont lop-
pos des groupes. Soit x un lment dun monode M. On considre lensemble
x
k
[ k 0 des puissances de x qui est en fait le sous-monode engendr par x.
Si M est ni, il existe deux entiers l < k tels que x
k
= x
l
. Si k est en outre
choisi le plus petit possible, les lments 1, x, x
2
, . . . , x
k1
sont distincts et on a
le diagramme suivant, communment appel pole frire.
. . .
1 x x
2
x
3
x
l1
x
l
= x
k
x
l+1
x
l+2
x
l+3
x
k2
x
k1
Fig. 1.26 Diagramme de la pole frire
Si k est le plus petit entier pour lequel il existe l tel que x
k
= x
l
, les entiers k
et l sont uniques. On note alors l
x
= l et p
x
= kl. Le lemme suivant caractrise
les groupes et les monodes apriodiques parmi les monodes nis.
Lemme 1.144. Pour un monode ni M, les trois proprits suivantes sont
quivalentes.
1. M est un groupe.
2. Pour tout x M, on a l
x
= 0 et donc x
px
= 1.
3. Il existe un entier tel que x

= 1 pour tout x M.
Pour un monode ni M, les trois proprits suivantes sont quivalentes.
1. M est apriodique.
2. Pour tout x M, on a p
x
= 1 et donc x
lx+1
= x
lx
.
3. Il existe un entier tel que x
+1
= x

pour tout x M.
62 CHAPITRE 1. LANGAGES RATIONNELS
x
k
= 1
x
x
2
x
3
x
k2
x
k1
. . .
1 x x
2
x
l1
x
l
= x
l+1
Fig. 1.27 Cas des groupes et des monodes apriodiques
Lnonc de ce lemme se traduit en termes imags de la manire suivante.
Dans un groupe, la pole frire est donc sans manche alors quau contraire,
elle est rduite au manche dans un monode apriodique.
Preuve. Le cas des groupes nest pas utilis dans la suite. La preuve est laisse
titre dexercice.
Pour le cas des monodes apriodiques, la preuve de (1 2) dcoule de la
remarque suivante. Lensemble x
lx
, x
lx+1
, . . . , x
lx+px1
est un monode iso-
morphe Z/p
x
Z. Par contre, il nest pas un sous-monode de M si l
x
> 0. Son
lment neutre est x
m
o m est lunique entier entre l
x
et l
x
+ p
x
1 tel que
m 0 mod p
x
. Si M est apriodique, on a donc ncessairement p
x
= 1.
La preuve de (2 3) est obtenue en posant = maxl
x
[ x M.
(1 3) Si G est un groupe contenu dans M, on a lgalit g

= g
+1
. Cette
galit implique immdiatement que g est lidentit de G et que le groupe G est
trivial.
Exemple 1.145. Le monode syntaxique du langage (aa)
+
est constitu des trois
lments 1, ,
2
avec la relation
3
= . Le sous-ensemble ,
2
est iso-
morphe au groupe Z/2Z.
Le thorme suivant caractrise en terme de monode syntaxique les langages
sans toile. Il permet en particulier de dcider eectivement si un langage donn
est sans toile et de calculer explicitement une expression sans toile si cest
possible.
Thorme 1.146 (Schtzenberger 1965). Pour tout langage rationnel L, les
trois conditions suivantes sont quivalentes.
1. Le langage L est sans toile.
2. Le monode syntaxique M(L) de L est apriodique.
3. Le langage L est reconnu par un monode apriodique.
Le monode syntaxique du langage (aa)

est le groupe Z/2Z qui nest bien


sr pas apriodique. Le thorme prcdent montre donc que ce langage nest
pas sans toile.
On peut remarquer quil sut quun langage soit reconnu par un monode
apriodique pour que son monode syntaxique soit apriodique. On vrie sans
dicult quun monode qui divise un monode apriodique est encore ap-
riodique. La preuve du thorme se dcompose en les sept lemmes techniques
suivants.
Le lemme suivant traduit directement en terme de langages le rsultat du
lemme 1.144.
1.12. LANGAGES SANS TOILE 63
Lemme 1.147. Le monode syntaxique dun langage rationnel L est apriodique
si et seulement si il existe un entier tel que
x, y, z A

xy

z L xy
+1
z L.
Pour un langage tel que M(L) apriodique, on appelle indice et on note i(L)
le plus petit entier tel que x, y, z A

xy

z L xy
+1
z L.
Lemme 1.148. Pour tous langages K, L A

rationnels, on a
i(a) = 1
i(K +L) max(i(K), i(L))
i(KL) i(K) +i(L) + 1
i(A

K) = i(K)
Le lemme prcdent permet de montrer par rcurrence sur (la taille de)
lexpression rationnelle sans toile que le monode syntaxique dun langage sans
toile est apriodique. La rciproque est plus technique.
Dans un monode apriodique, llment neutre est le seul lment inversible
puisque lensemble des lments inversibles est un groupe. Le lemme suivant
rane cette remarque.
Lemme 1.149 (Simplication). Soient p, m et q trois lments dun monode
apriodique ni. Lgalit m = pmq implique les deux galits m = pm = mq.
Une consquence directe du lemme est que llment neutre est le seul l-
ment inversible droite (ou gauche). Si on a mp = 1
M
, alors on a aussi
mpm = m et mp = m daprs le lemme.
Preuve. Daprs le lemme 1.144, il existe un entier tel que s

= s
+1
pour
tout lment s du monode. On crit alors les galits
m = pmq = p

mq

= p

mq
+1
= mq
et on procde pareillement pour m = pm.
Le lemme prcdent permet de montrer le lemme suivant.
Lemme 1.150. Pour tout lment m dun monode apriodique ni M, on a
lgalit
m = (mM Mm) J o J = x M [ m / MxM.
Preuve. Tout dabord m appartient mM Mm mais il nappartient pas J
puisque m MmM. On en dduit linclusion m (mM Mm) J qui est
vraie mme si M nest pas apriodique.
On montre maintenant linclusion inverse. Soit maintenant m

un lment de
(mM Mm) J. Puisque m

mMMm, il existe deux lments p et q de M


tels que m

= mp = qm. Puisque m

nappartient pas J, il existe aussi deux


lments s et r de M tels que m = sm

r. En combinant m

= mp et m = sm

r,
on obtient m = smpr qui donne m = mpr par le lemme de simplication et
donc m = m

r. En combinant cette dernire galit avec m

= qm, on obtient
m

= qm

r et donc m

= m

r par le lemme de simplication.


64 CHAPITRE 1. LANGAGES RATIONNELS
Lemme 1.151. Soit : A

M un morphisme dans un monode apriodique


ni M et soit m ,= 1
M
un lment de M dirent de llment neutre. On a
alors lgalit

1
(m) = (UA

V ) (A

WA

)
o les trois ensembles U, V, W A

de mots sont donns par


U =
_
n(a)M=mM
nmM

1
(n)a, V =
_
Mm=M(a)n
nMm
a
1
(n)
et
W = a [ m , M(a)M
_
_
_
_
_
mM(a)nMMn(b)M
m/ M(a)n(b)M
a
1
(n)b
_
_
_
_
.
Preuve. Puisque m ,= 1
M
, les deux ensembles mM et Mm ne contiennent pas
llment neutre 1
M
daprs le lemme de simplication.
Daprs le lemme prcdent, un mot w vrie (w) = m si et seulement si
(w) mM Mm et m M(w)M.
On commence par montrer que (w) mM si et seulement si w se factorise
uav tel que n = (u) vrie n / mM et n(a)M = mM. Lappartenance
(w) Mm se traite de manire symtrique. Soit u le plus long prxe de w
tel que (u) / mM. Ce mot u existe puisque le mot vide est un prxe de w et
() = 1
M
nappartient pas mM. Ce mot u est par dnition dirent de w. Le
mot w se factorise w = uav tel que n = (u) vrie n / mM et n(a)M = mM.
Soit w un mot tel que m / M(w)M. On montre que w se factorise soit
w = uav o m / M(a)M soit w = uavbt tel que n = (v) vrie m
M(a)nM Mn(b)M et m / M(a)n(b)M. Soit v

un plus petit facteur


de w tel que m / M(v

)M. Un tel mot existe car m / M(w)M. Si v

est
rduit une lettre a, on a w = uav o m / M(a)M. Si v

est de longueur au
moins 2, v

scrit v

= avb avec les proprits requises.


Pour tout m, on pose r(m) = [MmM[. La preuve que
1
(m) est un langage
sans toile est faite par rcurrence sur [M[ r(m) :
si r(m) = [M[, alors m = 1
M
et on a

1
(1
M
) = a [ (a) = 1
M

= A

a [ (a) ,= 1
M
A

sinon, on crit
1
(m) = (UA

V )A

WA

grce au lemme prcdent.


On applique alors lhypothse de rcurrence aux langages U, V et W.
Pour que cette preuve fonctionne, il reste prouver les rsultats suivants qui
assure que les valeurs de n utilises dans les dnitions de U, V et W du lemme
prcdent vrient bien r(n) > r(m) et que lhypothse de rcurrence peut tre
applique.
Lemme 1.152. Pour tous lments m et n dun monode apriodique ni M,
on a limplication
m nM
n / mM
_
= r(n) > r(m).
1.13. COMPLMENTS 65
Preuve. De la relation m nM, on tire linclusion MmM MnM. Pour
montrer que cette inclusion est stricte, on montre que n / MmM. Puisque
m nM, il existe un lment p tel que np = m. Si on suppose par labsurde
que n MmM, il existe deux lments s et r tels que n = smr. En combinant
ces deux galits, on dduit que n = snpr et donc n = npr par le lemme de
simplication. Ceci conduit n = mr qui contredit n / mM. Ceci prouve
lingalit r(n) > r(m).
Lemme 1.153. Pour tous lments m, n, et dun monode apriodique
ni M, on a limplication
m MnM MnM
m / MnM
_
= r(n) > r(m).
Preuve. De la relation m MnM, on tire linclusion MmM MnM. Pour
montrer que cette inclusion est stricte, on montre que n / MmM. Puisque
m MnM MnM, il existe quatre lments p, q, p

et q

tels que m =
pnq = p

nq

. Si on suppose par labsurde que n MmM, il existe deux


lments s et r tels que n = smr. En combinant cette dernire galit avec
m = p

nq

, on obtient n = sp

nq

r et donc n = nq

r par le lemme de
simplication. En substituant dans m = pnq, on obtient m = pnq

r qui
contredit m / MnM. Ceci prouve lingalit r(n) > r(m).
On pourra consulter [Pin84] pour un expos plus complet.
Exemple 1.154. Prenons L = (ab)

et considrons M = 1, , , , , 0. On
a MM = 0, , , , , ainsi :

1
(1) =

1
(a) = (ab

)a = (aA

a) A

(aa +bb)A

(en prenant U = a, V = a, W = aa +bb).


Exercice 1.155. Donner une expression sans toile pour le langage (ab +ba)

.
Solution. On a vu que les langages (ab)

et (ab)
+
sont sans toile. On a alors la
formule suivante
(ab+ba)

= (ab)

+(ba)

+
_
((ab)
+
b + (ba)
+
a)A

(a(ab)
+
+b(ba)
+
)

(a(ab)

aa+b(ba)

bb)A

1.13 Complments
1.13.1 Conjecture de ern
On sintresse ici un problme ouvert connu sous le nom de conjecture de
ern. Pour un tat p dun automate dterministe / et un mot w, on note p w
lunique tat q, sil existe, tel quil y ait un chemin dans / de p q tiquet
par w. Un automate / est dit synchronisant sil existe un mot w tel que p w
est gal un tat constant q pour tout tat p de /. La lecture du mot w ramne
lautomate dans ltat q quelque soit ltat de dpart. Le mot w est alors dit
synchronisant pour /.
Une question naturelle est de savoir la longueur minimale dun mot syn-
chronisant dun automate n tats. La conjecture de ern nonce quun tel
66 CHAPITRE 1. LANGAGES RATIONNELS
mot est de longueur au plus (n 1)
2
. Cette borne ne peut tre amliore. Pour
tout entier n, il existe un automate synchronisant (
n
dont le mot synchronisant
le plus court est de longueur (n 1)
2
. La meilleure borne connue pour lins-
tant est (n 1)
3
/6 mme si la conjecture a dj t prouve pour des familles
particulires dautomates.
Lautomate (
n
est dni de la manire suivante. Son ensemble dtats est
Q
n
= 0, . . . , n 1. La lettre a laisse invariant tous les tats sauf ltat 0 qui
est envoy sur 1. La lettre b eectue une permutation circulaire des tats.
q a =
_
1 si q = 0
q sinon
et q b =
_
q + 1 si q < n
0 si q = n
0 1
2
a, b
a
b
a
b
0 1
2 3
a, b
a
b
a
b
a
b
Fig. 1.28 Les automates (
3
et (
4
Exemple 1.156. Les automates (
3
et (
4
de la gure 1.28 sont synchronisants.
Ils sont eectivement synchroniss par les mots ab
2
a et ab
3
ab
3
a de longueur 4
et 9. Il est un plus dlicat de prouver que ce sont les mots synchronisants les
plus courts de (
3
et (
4
. On montre de mme que le mot synchronisant le plus
court de (
n
est le mot (ab
n1
)
n2
a de longueur (n 1)
2
.
1.13.2 Rationnels dun monode quelconque
Jusqu maintenant, on a uniquement tudi les parties des monodes libres.
La dnition dune partie rationnelle stend nimporte quel monode. Il est
intressant de considrer dautre monodes comme les monodes A

ou plus
gnralement A

1
A

k
, les monodes commutatifs libres ou le groupe libre.
Les oprations rationnelles stendent de manire vidente aux parties dun
monode quelconque. Pour des parties K et L dun monode M, le produit KL
et ltoile K

sont dnies de la manire suivante.


KL = kl [ k K et l L et K

= k
1
k
n
[ k
1
, . . . , k
n
K.
Ltoile K

est en fait le plus petit sous-monode de M contenant K et il est


appele le sous-monode engendr par K. La notation comporte une certaine
ambigut puisque K

peut noter le monode libre sur lalphabet K o le sous-


monode engendr par K dans M. Cette confusion est sans consquence dans
la mesure o on identie trs souvent une suite nie k
1
, . . . , k
n
avec son produit
k
1
k
n
dans M. Lapplication qui envoie toute suite k
1
, . . . , k
n
sur k
1
k
n
est
dailleurs un morphisme du monode libre K

dans le monode M.
Dnition 1.157. Soit M un monode. La famille note Rat M des parties
rationnelles est la plus petite famille de parties de M telle que
Rat M et m Rat M pour tout lment m de M ;
1.13. COMPLMENTS 67
Rat M est close pour les oprations rationnelles (lunion, le produit et
ltoile).
Dans le cas o le monode M est niment engendr, on peut se contenter,
dans la dnition prcdente, de supposer que les singletons m
1
, . . . , m
n

sont rationnels o m
1
, . . . , m
n
est une partie gnratrice de M.
Un automate sur un monode M est un automate dont les tiquettes des
transitions sont des lments de M. Plus formellement, un automate / sur M
est un quintuplet (Q, M, E, I, F) o Q est un ensemble ni dtats et E est un
sous-ensemble de QM Q. Ltiquette dun chemin
q
0
m1
q
1
m2

mn
q
n
est le produit m
1
m
n
dans M des tiquettes des transitions qui constituent
le chemin. Le comportement dun automate est lensemble des tiquettes des
chemins acceptants (cest--dire commenant dans un tat initial et se terminant
dans un tat nal). Le thorme de Kleene stend facilement un monode
quelconque. La preuve faite dans le cas dun monode libre reste valide.
Thorme 1.158. Une partie dun monode M est rationnelle si et seulement
si elle est le comportement dun automate sur M.
La construction du groupe libre ainsi que ses parties rationnelles sont dcrites
la section 2.7.3 (p. 106).
Pour illustrer ces notions, on va donner quelques exemples dans le cas dun
monode A

pour deux alphabets A et B. Une partie rationnelle de A

est aussi appele une relation rationnelle ou encore une transduction rationnelle.
Un lment de A

est une paire (u, v) de mots sur A et B qui est souvent


note u[v en particulier pour les tiquettes des automates.
0 1 2 3
a[c
b[
b[ a[
b[c
b[c
Fig. 1.29 Un transducteur pour (a, c)

(b, )

+ (a, )

(b, c)

Exemple 1.159. La partie rationnelle (a, c)

(b, )

+ (a, )

(b, c)

du monode
a, b

est le comportement du transducteur de la gure 1.29.


Exemple 1.160. Lautomate de laddition donn la gure 3.12 (p. 151) est en
fait un transducteur dont le comportement est la partie du monode 0, 1

0, 1

0, 1

constitue des triplets (u, v, w) tels que la valeur binaire de w


est gale la somme des valeurs binaires de u et v.
Une partie K dun monode M est dite reconnaissable sil existe un mor-
phisme de M dans un monode ni N et une partie P de N tels que K =

1
(P). Lensemble des parties reconnaissables de M est note Rec M. Il d-
coule directement de la dnition que la famille des parties reconnaissables est
close pour les oprations boolennes (union, intersection et complmentation).
Un monode est dit niment engendr sil est gal au sous-monode engendr
par une de ses parties nies.
68 CHAPITRE 1. LANGAGES RATIONNELS
Proposition 1.161. Si M est niment engendr, alors Rec M Rat M.
Les deux familles Rec M et Rat M concident lorsque M est un monode libre
mais linclusion de la proposition prcdente peut tre stricte si M nest pas libre.
Si M est un monode de la forme A

, les parties reconnaissables sont les


unions nies densembles de la forme K L o K et L sont respectivement des
parties rationnelles de A

et B

. La diagonale = (w, w) [ w A

= (a, a) [
a A

est une partie rationnelle de A

qui nest pas reconnaissable.


Preuve. Soit A un ensemble ni qui engendre M et soit un morphisme de M
dans un monode ni N tel que K =
1
(P) pour une partie P N. On
construit lautomate / sur M gal (N, A, E, 1
N
, P) dont lensemble des
transitions est E = (n, a, n(a)) [ a A et n N. Il est facile de vrier que
pour tout m de M, il existe un chemin dtiquette m de 1
N
(m).
Proposition 1.162. Soit M un monode. Si K est une partie reconnaissable
et L une partie rationnelle de M, alors K L est une partie rationnelle.
Preuve. Soit un morphisme de M dans un monode ni N tel que K =
1
(P)
pour une partie P N. Soit / = (Q, M, E, I, F) un automate sur M dont le
comportement est L. On construit un automate /

dont le comportement est


KL. Lensemble des tats est QN, les tats initiaux sont ceux de I 1
N

et les tats naux sont ceux de F P. Les transitions sont les triplets de la
forme ((p, n), m, (q, n(m)) o (p, m, q) est une transition de /.
Chapitre 2
Langages algbriques
Les langages algbriques, aussi appels langages hors contexte (context-free
en anglais) constituent le deuxime niveau de la hirarchie de Chomsky. Il furent
initialement introduits pour modliser les langues naturelles. Cette approche a
t relativement abandonne mme si des grammaires locales sont encore utili-
ses pour dcrire des constructions grammaticales. Par contre, ce modle sest
avr particulirement adapt pour dcrire la syntaxe des langages de program-
mation. Dun point de vue plus pratique, des outils tels yacc ou bison per-
mettent de construire automatiquement un analyseur syntaxique partir dune
grammaire qui satisfait quelques hypothses supplmentaires.
Une premire partie de ce chapitre traite des grammaires qui permettent
dengendrer ces langages algbriques. Une seconde partie est consacre aux au-
tomates pile qui acceptent les langages algbriques. Ces automates tendent
les automates nis en utilisant une mmoire externe sous la forme dune pile.
Les liens avec les systmes dquations sont galement abords et utiliss pour
prouver le thorme de Parikh. Pour tout ce chapitre, on se reportera [Aut87]
ou [ABB97].
Les problmes de dcidabilit et de complexit concernant les langages al-
gbriques sont abords dans les deux chapitres suivants. Il sera en particulier
montr que lappartenance dun mot un langage algbrique peut tre dci-
de en temps polynomial alors que lgalit de deux langages algbriques est
indcidable.
Lutilisation des grammaires pour construire des analyseurs syntaxiques nest
pas aborde dans ce chapitre. Pour ces aspects plus pratiques, il est prferable
de consulter des ouvrages spcialiss comme [ASU86].
2.1 Grammaires algbriques
2.1.1 Dnitions et exemples
Une grammaire algbrique est en quelque sorte un systme de rcriture qui
engendre un ensemble de mots partir dun axiome. An de bien distinguer
les lettres des mots engendrs des lettres intermdiares, lalphabet est partag
en lettres terminales et en lettres non terminales appeles variables. Seules les
variables peuvent subir une rcriture.
69
70 CHAPITRE 2. LANGAGES ALGBRIQUES
Dnition 2.1 (Grammaire algbrique). Une grammaire algbrique G est un
triplet (A, V, P) o A et V sont des alphabets nis et disjoints et o P est une
partie nie de V (AV )

. Les symboles de A sont appels terminaux et ceux


de V sont appels non terminaux ou variables. Les lments de P sont appels
rgles. Chaque rgle est une paire (X, u) o X est une variable et u est un mot
sur lalphabet A+V .
Les grammaires dnies ici sont appeles algbriques pour les distinguer de
grammaires plus gnrales qui sont abordes au chapitre suivant (cf. dni-
tions 3.51 et 3.52 p. 144). Le terme algbrique sera justi en montrant que
les langages engendrs par les grammaires sont solutions de systmes dqua-
tions polynomiales (cf. proposition 2.25 p. 78). Comme toutes les grammaires
considres dans ce chapitre sont algbriques, elles seront simplement appeles
grammaires dans le reste de ce chapitre.
On note X u lorsque (X, u) P est une rgle de la grammaire. Par
extension, si (X, u
1
), . . . , (X, u
n
) sont des rgles, on crit X u
1
+ + u
n
.
Les lments X et u dune rgle X u sont respectivement appels membre
gauche et membre droit de la rgle.
Exemple 2.2. Soit la grammaire G = (A, V, P) dnie par
A = a, b, V = S, P = S aSb +
Cette grammaire a deux lettres terminales a et b, une seule variable S et deux
rgles (S, aSb) et (S, ). On verra que le langage engendr par cette grammaire
est a
n
b
n
[ n 0.
Lorsquune grammaire est donne de manire explicite, on se contente sou-
vent de donner les rgles. Les variables de la grammaire sont alors implicite-
ment les symboles qui apparaissent comme membre gauche des rgles et toutes
les autres lettres sont implicitement des lettres terminales. Pour la grammaire
donne ci-dessus, on aurait pu simplement crire P = S aSb +.
Dnition 2.3 (Drivation). Soit G = (A, V, P) une grammaire et soient u et
v deux mots sur A + V . On dit que u se drive en (ou produit ) v et on note
u v lorsque il existe , (A +V )

et X V tels que :
u = X, v = w et (X w) P
La drivation est dite gauche (respectivement droite) si (respectivement ) ap-
partient A

. Ceci signie que cest la variable la plus gauche (respectivement


droite) qui est rcrite.
Pour k = 0, on note u
k
v si u = v et pour k 1, on note u
k
v sil
existe des mots u
1
, u
2
, . . . , u
k1
tels que u u
1
u
k1
v. Plus
gnralement, on notera u

v sil existe un entier k 0 tel que u
k
v. La
relation

est donc la clture rexive et transitive de la relation .
Exemple 2.4. Soit G la grammaire donne lexemple 2.2. La variable S peut
se driver en le mot aSb qui se drive nouveau en aaSbb, qui se drive encore
en aaaSbbb qui se drive nalement en a
3
b
3
: S

a
3
b
3
. Il est facile de voir que
les mots w A

tels que S

w sont justement les mots de la forme a
n
b
n
pour
n 0.
2.1. GRAMMAIRES ALGBRIQUES 71
Les langages algbriques sont aussi appels langages hors contexte parce
que lors dune drivation, le remplacement de la variable X par w dans le mot
u = X est indpendant des contextes et . Il existe aussi des grammaires
contextuelles (cf. section 3.7.2) dont les membres gauches de rgle ne sont plus
simplement des variables mais des mots qui permettent de spcier le contexte
de remplacement dune variable.
Dnition 2.5 (Langage engendr). Soit G = (A, V, P) une grammaire et soit
u un mot sur (A + V )

. On note respectivement

L
G
(u) et L
G
(u) les langages
v (A +V )

[ u

v et

L
G
(u) A

Dans une grammaire G, une variable S


0
appele axiome est parfois distin-
gue. Le langage engendr par la grammaire est alors implicitement le langage
L
G
(S
0
).
Dnition 2.6 (Langage algbrique). Un langage est dit algbrique sil peut
tre engendr par une grammaire, cest--dire sil est gal L
G
(S) pour une va-
riable S dune grammaire G.
Exemple 2.7. Soit G la grammaire donne lexemple 2.2. Le langage L
G
(S)
est gal a
n
b
n
[ n 0 qui est donc un langage algbrique.
Grce au lemme fondamental 2.11 et la clture des langages algbriques
par produit (cf. proposition 2.51), on constate que L
G
(u) est encore algbrique
pour tout mot u (A + V )

. La notation L
G
peut tre tendue aux langages
en posant L
G
(K) =

uK
L
G
(u) pour K (A + V )

. La clture des langages


algbriques par substitution algbrique (cf. proposition 2.53) montre que L
G
(K)
reste algbrique quand K est algbrique.
Exemple 2.8. Quelques exemples de grammaires et de langages algbriques.
1. Le langage a

b est engendr par la grammaire S aS +b. Il sera montr


que tous les langages rationnels sont algbriques.
2. Grammaire _

_
A = a, b, c
S AS +
A AB +a
B BC +b
C CA +c
3. Langage de Dyck sur n paires de parenthses.
_

_
A
n
= a
1
, . . . , a
n
, a
1
, . . . , a
n

S ST +
T a
1
S a
1
+ +a
n
S a
n
Les langages D
n
= L
G
(T) et D

n
= L
G
(S) sont respectivement appels
langage de Dyck primitif et langage de Dyck. On vrie que D

n
est len-
semble des mots qui se rduisent au mot vide en appliquant les rductions
de la forme a
i
a
i
.
4. Langage de Luckasiewicz
S aSS + a
Le langage = L
G
(S) est lensemble des mots w tels que [w[
a
= [w[
a
+ 1
et [u[
a
[u[
a
pour tout prxe (propre) u de w. On a lgalit = D

1
a.
72 CHAPITRE 2. LANGAGES ALGBRIQUES
5. Langage de Goldstine
L = a
n0
ba
n1
b a
n
k
b [ k 0 et j 0, n
j
,= j
Le langage L est gal L
G
(S) o la grammaire G est constitue des rgles
suivantes.
T
0
aT
0
+
T
1
T
0
b
T
2
T
1
T
2
+
T
3
T
1
T
3
a +T
1
T
2
+aT
0
S T
3
bT
2
On vrie facilement que L
G
(T
0
) = a

, L
G
(T
1
) = a

b, L
G
(T
2
) = (a

b)

,
L
G
(T
3
) = a
n0
ba
n1
b a
n
k
[ k 0 et n
k
,= k et L
G
(S) = L.
Exercice 2.9. Montrer que lensemble des palindromes crits sur un alphabet A
est un langage algbrique. Montrer que le complmentaire de ce langage est
aussi algbrique.
Solution. Pour simplier, on suppose que lalphabet est A = a, b. Lensemble
des palindromes sur cet alphabet est engendr par la grammaire S aSa +
bSb + a +b + . Le complmentaire est engendr par la grammaire S aSa +
bSb +aTb +bTa, T aTa +aTb +bTa +bTb +a +b +.
Exercice 2.10. Soit A un alphabet. Montrer que le langage
L = ww

[ w, w

, w ,= w

et [w[ = [w

[
est algbrique.
Le rsultat de cet exercice est comparer avec ceux de lexercice 2.49. Les
langages L et L
3
semblent trs similaires bien que L soit algbrique et L
3
ne le
soit pas.
Solution. On suppose pour simplier que A est lalphabet a, b. La preuve se
gnralise sans problme un alphebet ayant plus de deux lettres. Un mot x
appartient L si et seulement si il se factorise x = uawbv ou x = ubwav avec
[w[ = [u[ +[v[. Le mot w peut nouveau tre factoris w = u

avec [u

[ = [u[
et [v

[ = [v[. On en dduit la grammaire G telle que L = L


G
(S).
_

_
S S
a
S
b
+S
b
S
a
S
a
aS
a
a +aS
a
b +bS
a
a +bS
a
b +a
S
b
aS
b
a +aS
b
b +bS
b
a +bS
b
b +b
Le lemme suivant nonce un rsultat trs simple mais il permet de formali-
ser beaucoup de preuves en raisonnant sur la longueur des drivations. Il tablit
que les drivations partant dun mot u = u
1
u
2
se dcomposent en des driva-
tions partant de u
1
et des drivations partant de u
2
et que ces deux types de
drivations sont indpendantes.
Lemme 2.11 (Fondamental). Soit G = (A, V, P) une grammaire et soit u et v
deux mots sur (A +V )

. On suppose que u se factorise u = u


1
u
2
. Il existe une
drivation u
k
v de longueur k si et seulement si v se factorise v = v
1
v
2
et sil
existe deux drivations u
1
k1
v
1
et u
2
k2
v
2
o k = k
1
+k
2
.
2.1. GRAMMAIRES ALGBRIQUES 73
Une manire un peu moins prcise dnoncer le lemme fondamental est
dcrire que pour tous mots u et v sur (A +V )

, on a lgalit

L
G
(uv) =

L
G
(u)

L
G
(v).
Preuve. Il est ais de combiner les drivations u
1
k1
v
1
et u
2
k2
v
2
pour obtenir
une drivation u
1
u
2
k
v
1
v
2
de longueur k
1
+ k
2
. La rciproque se montre par
induction sur k.
2.1.2 Grammaires rduites
Les manipulations sur les grammaires algbriques sont souvent facilites par
des rgles dune forme particulire. Il existe plusieurs formes normales de gram-
maires plus ou moins labores. Nous commenons par quelques formes normales
trs faciles obtenir. Nous insistons sur le ct calculatoire pour bien montrer
que ces formes normales peuvent tre eectivement calcules.
La notion de grammaire rduite est lanalogue pour les grammaires de la
notion dautomate mond. De manire intuitive, une grammaire est rduite si
elle ne contient pas de variable trivialement inutile.
Dnition 2.12 (Grammaire rduite). Une grammaire G = (A, V, P) est dite
rduite pour S
0
V si
1. pour tout S V , L
G
(S) ,= ,
2. pour tout S V , il existe u, v (A +V )

tels que S
0

uSv.
La premire condition signie que toute variable peut produire un mot et
la seconde condition signie que toute variable peut tre atteinte partir de la
variable S
0
.
Proposition 2.13 (Rduction). Pour toute grammaire G = (A, V, P) et toute
variable S
0
V , il existe une grammaire G

rduite pour T telle que L


G
(S
0
) =
L
G
(T).
Preuve. Pour rduire, on applique successivement les deux tapes suivantes. Il
est noter que lordre des tapes est important.
La premire tape consiste supprimer des variables S telles que L
G
(S) = .
On dnit par rcurrence une suite (U
n
)
n0
densembles de symboles de A+V
par
U
0
= A,
U
n+1
= U
n
S V [ S w et w U

n
pour n 0.
Puisque lensemble A + V est ni et que la suite (U
n
)
n0
est croissante, celle-
ci est constante partir dun certain rang. Soit U lensemble

n0
U
n
. On
prouve par rcurrence sur la longueur dune plus petite drivation que U V
est lensemble S [ L
G
(S) ,= . On supprime ainsi les variables qui ne sont pas
dans U V .
La seconde tape consiste supprimer les variables inaccessibles partir
de laxiome S
0
. On dnit par rcurrence une suite (W
n
)
n0
densembles de
variables par
W
0
= S
0
,
W
n+1
= W
n
S V [ S

W
n
, S

uSv avec u, v (A +V )

.
74 CHAPITRE 2. LANGAGES ALGBRIQUES
Puisque V est ni et que la suite (W
n
)
n0
est croissante, celle-ci est constante
partir dun certain rang. On montre que lensemble W =

n0
W
n
est gal
lensemble S [ S
0

uSv avec u, v A

en utilisant le fait que L


G
(S) est
non vide pour toute variable S. Ainsi, W ne garde que les variables accessibles
depuis S
0
.
2.1.3 Grammaires propres
Nous continuons de mettre les grammaires sous des formes plus faciles
manipuler en liminant certaines rgles souvent gnantes.
Dnition 2.14 (Grammaire propre). Une grammaire G = (A, V, P) est propre
si elle ne contient aucune rgle de la forme S ou de la forme S S

pour
S, S

V .
Exemple 2.15. la grammaire G = S aSb+ nest pas propre puisque S .
Par contre, la grammaire G

= S aSb + ab est propre et elle engendre les


mmes mots lexception du mot vide.
La proposition suivante tablit que toute grammaire peut tre rendue propre
en perdant ventuellement le mot vide.
Proposition 2.16. Pour toute grammaire G = (A, V, P) et tout S V , il
existe une grammaire propre G

= (A, V

, P

) et S

telle que L
G
(S

) =
L
G
(S) .
La preuve de la proposition donne une construction eective dune gram-
maire propre. Elle utilise la notion de substitution qui est maintenant dnie.
Dnition 2.17 (Substitution). Soient A et B deux alphabets. Une substitution
de A

dans B

est un morphisme : A

P(B

) o P(B

) est muni du produit


des langages.
Preuve. En utilisant la proposition prcdente, on peut supposer que la gram-
maire G est rduite. La construction se dcompose en les deux tapes suivantes.
Lordre des tapes a de nouveau son importance.
La premire tape consiste supprimer les rgles de la forme S . On
commence par calculer lensemble U = S [ S

des variables qui produisent
le mot vide. On dnit par rcurrence la suite (U
n
)
n0
densembles de variables
par
U
0
= S [ S ,
U
n+1
= U
n
S [ S w et w U

n
.
La suite (U
n
)
n0
est constante partir dun certain rang. On montre par rcur-
rence que U =

n0
U
n
est lensemble S [ S

des variables qui produisent
le mot vide. On introduit la substitution de (A +V )

dans (A +V )

par
(a) = a pour a A
(S) =
_
S + si S


S sinon
pour S V .
La premire tape consiste alors procder aux deux transformations sui-
vantes sur la grammaire G. Lide intuitive est de remplacer par le mot vide
dans les membres droits de rgles les variables qui produisent le mot vide.
2.1. GRAMMAIRES ALGBRIQUES 75
1. Supprimer les rgles S .
2. Ajouter toutes les rgles S u o S w est une rgle et u (w).
On montre par rcurrence sur la longueur des drivations que dans la nouvelle
grammaire, chaque variable engendre les mme mots au mot vide prs.
La seconde tape consiste supprimer les rgles de la forme S S

o S et
S

sont deux variables. Puisquaucune variable ne produit le mot vide, on a une


drivation S

S

si et seulement si il existe des variables S


1
, . . . , S
n
telles que
S
1
= S, S
n
= S

et S
i
S
i+1
pour tout 1 i n1. La relation

restreinte
aux variables est donc la clture transitive et rexive de la relation restreinte
aux variables.
La seconde tape consiste alors procder aux deux transformations sui-
vantes sur la grammaire G. Lide intuitive est de remplacer par une seule d-
rivation une suite de drivations S
i
S
i+1
suivie dune drivation S
n
w o
w / V .
1. Supprimer les rgles S S

.
2. Ajouter les rgles S w o S

S

, et S

w est une rgle avec w / V .


On vrie sans dicult que la grammaire obtenue est propre et quelle engendre
le mme langage.
Une autre mthode consiste dabord quotienter lensemble V par la relation
dquivalence dnie par
S S

def
(S

S

et S


S).
La grammaire obtenue engendre le mme langage car S S

implique que
L
G
(S) = L
G
(S

). La relation

devient alors un ordre sur le quotient. On
supprime alors les rgles S S

o S est maximal pour cet ordre en ajoutant


les rgles S

w pour chaque rgle S w. Le processus est itr avec les


nouvelles variables devenues maximales pour lordre

.
Exemple 2.18. La grammaire S aS aS + est transforme en la grammaire
S aS aS +aS a +a aS +a a par la premire tape de la preuve.
Exercice 2.19. Montrer quil existe un algorithme pour dterminer pour une
grammaire G et pour une variable S de G si le langage L
G
(S) est inni ou non.
Solution. On suppose la grammaire G = (A, V, P) propre. On construit alors
le graphe H sont lensemble des sommets est V et lensemble des artes est
lensemble des paires (S, T) telles quil existe une rgle S w avec w = uTv et
u, v (A + V )

dans G. Il nest pas dicile de voir que L


G
(S) est inni si et
seulement si il existe un cycle dans H qui soit accessible partir de S.
2.1.4 Forme normale quadratique
Nous terminons par la forme normale quadratique appele aussi forme nor-
male de Chomsky. Celle-ci pemet en autre de savoir si un mot est engendr par
une grammaire.
Dnition 2.20 (Forme normale quadratique). Une grammaire est en forme
normale quadratique si toutes ses rgles sont dune des formes suivantes :
S S
1
S
2
o S
1
, S
2
V
S a o a A
76 CHAPITRE 2. LANGAGES ALGBRIQUES
Il faut remarquer quune grammaire en forme quadratique est ncessairement
propre. En particulier, elle ne peut pas engendrer le mot vide.
Proposition 2.21 (Forme normale quadratique). Pour toute grammaire G =
(A, V, P) et tout S V , il existe une grammaire en forme normale quadratique
G

= (A, V

, P

) et S

telles que L
G
(S

) = L
G
(S) .
Preuve. Grce la proposition 2.16, on peut supposer que la grammaire G est
propre. Ensuite, la construction se dcompose nouveau en deux tapes.
La premire tape consiste se ramener une grammaire o tous les membres
droits de rgles sont soit une lettre terminale soit un mot form uniquement de
variables, cest- dire dune des formes suivantes.
S a o a A
S S
1
S
2
S
n
o S
1
, . . . , S
n
V
Soit V

= V
a
[ a A un ensemble de nouvelles variables en bijection avec A.
Soit G

la grammaire (A, V V

, P

) o P

est lensemble V
a
a [ a
A S (w) [ S w P et o est la substitution dnie par (S) = S
pour S V et (a) = V
a
pour a A.
Dans la seconde tape, les rgles S S
1
S
n
avec n > 2 sont supprimes et
remplaces par dautres nouvelles rgles. Dans ce but, on introduit les nouvelles
variables S

1
, . . . , S

n1
et on remplace S S
1
S
n
par les n rgles suivantes.
_

_
S S
1
S

2
S

i
S
i
S

i+1
pour 2 i < n 1
S

n1
S
n1
S
n
Une consquence de la forme normale de Chomsky est quil existe un algo-
rithme pour savoir si un mot donn est engendr par une grammaire galement
donne. On a dj vu quil est possible de savoir si une grammaire engendre le
mot vide. Dans une grammaire en forme quadratique, chaque drivation rem-
place une variable par une lettre terminale ou augmente le nombre de doccur-
rences de variables dans le mot. Il sensuit quune drivation dune variable
un mot w form de lettres terminales est de longueur au plus 2[w[. Pour sa-
voir si une grammaire G engendre un mot w non vide, on remplace dabord la
grammaire G par une grammaire quivalente G

en forme normale quadratique


puis on examine toutes les drivations de longueur au plus 2[w[ de G

. Cet algo-
rithme est nest pas trs ecace car le nombre de drivations est exponentiel. La
transformation dune grammaire quelconque en une grammaire en forme nor-
male quadratique peut aussi radicalement changer la taille de la grammaire. On
verra quil existe un algorithme en temps polynomial pour savoir si un mot est
engendr par une grammaire (cf. p. 169).
2.2 Systmes dquations
On va voir que les langages algbriques sont les solutions des systmes poly-
nomiaux, ce qui justie la terminologie. On utilisera cette approche pour montrer
le thorme de Parikh qui tablit que tout langage algbrique est commutative-
ment quivalent un langage rationnel.
2.2. SYSTMES DQUATIONS 77
2.2.1 Substitutions
une grammaire, on peut associer un systme dquations en langages. Soit
par exemple la grammaire G = (A, V, P) avec A = a, b, V = X
1
, X
2
et P
donn par les rgles suivantes :
_
X
1
X
1
X
2
+
X
2
aX
2
+b.
On associe cette grammaire le systme
_
L
1
= L
1
L
2
+
L
2
= aL
2
+b
en les langages L
1
et L
2
sur A.
On introduit quelques notations pratiques qui aident formaliser ceci. Soit
G = (A, V, P) une grammaire dont lensemble des variables est V = X
1
, . . . , X
n

et soit L = (L
1
, . . . , L
n
) un n-uplet de langages sur A. On dnit successivement
des oprations de substitution par
(L) =
a(L) = a pour a A
X
i
(L) = L
i
xy(L) = x(L)y(L) pour x, y (A +V )

K(L) =
_
wK
w(L) pour K (A +V )

On notera la cohrence dans le cas particulier L = (X


1
, . . . , X
n
) avec la
notation (X
1
, . . . , X
n
) marquant une simple dpendance en X
1
, . . . , X
n
.
Le point important est de voir quon lon procde bel est bien une substi-
tution des X
i
par les L
i
correspondants.
2.2.2 Systme dquations associ une grammaire
Dnition 2.22. Soit G = (A, V, P) une grammaire o V = X
1
, . . . , X
n
. Le
systme associ G est form par les n quations
L
i
=

Xiw
w(L) pour 1 i n
en les variables L
1
, . . . , L
n
.
Notation 2.23. On notera galement
L
G
:= (L
G
(X
1
), . . . , L
G
(X
n
)).
La proposition suivante est essentiellement une reformulation du lemme fon-
damental 2.11 (p. 72).
Proposition 2.24. Pour tout mot w (A +V )

, on a
L
G
(w) = w(L
G
).
78 CHAPITRE 2. LANGAGES ALGBRIQUES
Preuve. Le rsultat est dj vrai sur les symboles de base , a et X
i
:
L
G
() = = (L
G
)
L
G
(a) = a = a(L
G
)
L
G
(X
i
) = X
i
(L
G
).
On crit w = w
1
. . . w
n
o w
1
, . . . , w
n
sont les lettres de w et on applique les
rgles de substitution donnes ci-dessus.
L
G
(w) = L
G
(w
1
. . . w
n
)
= L
G
(w
1
) . . . L
G
(w
n
)
= w
1
(L
G
) . . . w
n
(L
G
)
= w
1
. . . w
n
(L
G
)
= w(L
G
).
Voyons prsent le lien entre solutions du systme associ et langages en-
gendrs par les X
i
.
2.2.3 Existence dune solution pour o(G)
Proposition 2.25 (Minimalit des langages engendrs). Soit G = (A, V, P)
une grammaire avec V = X
1
, . . . , X
n
. Alors L
G
est la solution minimale
(pour linclusion composante par composante) du systme o(G) associ G.
Lemme 2.26. Soit G = (A, V, P) une grammaire et soit L une solution du
systme o(G). Si les deux mots w et w

sur (A + V )

vrient w

w

, alors
w(L) w

(L).
Preuve. Il sut de montrer le rsultat pour une seule drivation. Le cas gnral
se prouve par rcurrence sur la longueur de la drivation. Supposons que w =
uX
i
v uzv = w

o X
i
z est une rgle de la grammaire. Puisque L est
solution de o(G), on a lgalit L
i
=

Xi
(L) et donc linclusion L
i
z(L).
Il en dcoule que w(L) w

(L).
On peut maintenant procder la preuve de la proposition.
Preuve. L
G
est bien une solution de o(G) :
L
G
(X
i
) =

Xi
L
G
()
=

Xi
(L
G
)
daprs la proposition 2.24.
Par ailleurs, soit L = (L
1
, . . . , L
n
) une solution de o(G). Pour tout mot
w L
G
(X
i
), on a par dnition une drivation X
i

w et par le lemme
prcdent linclusion w(L) X
i
(L). Comme w A

, on w(L) = w et
donc w L
i
. Ceci prouve linclusion L
G
(X
i
) L
i
pour tout 1 i n.
2.2. SYSTMES DQUATIONS 79
La proposition prcdente justie a posteriori la terminologie des langages
algbriques. Il sont les solutions minimales des systmes dquations polyno-
miales.
Bien que la proposition nous donne toujours lexistence dune solution de
o(G), lunicit est gnralement fausse. Considrer par exemple la grammaire
X XX dont le systme associ est lquation L = LL. Une solution est
L
G
(X) = , mais tous les langages de la forme L

pour L A

sont galement
solutions.
La proposition suivante donne des conditions pour avoir lunicit.
2.2.4 Unicit des solutions propres
Dnition 2.27 (Solution propre). Une solution L de o(G) est dite propre si
tous les L
i
sont propres, cest--dire ne contiennent pas le mot vide .
Proposition 2.28 (Unicit des solutions propres). Soit G une grammaire propre.
Alors L
G
est lunique solution propre de o(G).
Preuve. Puisque G est propre, L
G
est propre, et la proposition prcdente nous
dit que L
G
est une solution de o(G). Ainsi L
G
est une solution propre.
Pour un entier l, on introduit la relation
l
qui capture le fait que deux
langages concident pour les mots de longueur infrieure l. Pour deux langages
K et K

et un entier l, on note K
l
K

si lgalit
w K [ [w[ l = w K

[ [w[ l,
est vrie. Cette notation est tendue aux n-uplets composante par compo-
sante. Soient L = (L
1
, . . . , L
n
) et L

= (L

1
, . . . , L

n
) deux solutions propres
de G. On va montrer par rcurrence sur l que L
l
L

pour tout entier l 0 ce


qui prouve que L = L

.
Pour 1 i n, on introduit le langage ni S
i
= w [ X
i
w de sorte que
le systme o(G) scrit maintenant
L
i
= S
i
(L) pour 1 i n.
Comme L et L

sont propres, aucune de leurs composantes ne contient le


mot vide et on a L
0
L

.
Supposons L
l
L

pour l 0 et montrons L
l+1
L

, cest--dire
L
i
l+1
L

i
pour 1 i n
ou encore
S
i
(L)
l+1
S
i
(L

) pour 1 i n.
Soit donc 1 i n x, et soit w S
i
(cest--dire un mot tel que X
i
w),
que lon crit w = w
1
. . . w
p
o chaque w
j
est soit une lettre de A, soit une
variable X
k
V . Lentier p est non nul car la grammaire G est propre.
Soit ensuite u w(L) de longueur infrieure l + 1. Il se dcompose u =
u
1
. . . u
p
o u
j
= w
j
si w
j
appartient A et u
j
L
k
si w
j
= X
k
. Comme la
solution est propre, chaque mot u
j
est non vide. Il sensuit que chaque mot u
j
vrie [u
j
[ l. Sinon on aurait p = 1 et la grammaire G contiendrait une rgle
X
i
X
k
. Ceci est exclu car la grammaire G est propre.
80 CHAPITRE 2. LANGAGES ALGBRIQUES
Par hypothse de rcurrence, on en dduit que u
j
L

k
si w
j
= X
k
et que u
appartient aussi w(L

). On a montr linclusion L
i
L

i
pour tout 1 i n.
Les inclusions inverses sont aussi vries par symtrie. Ceci montre que L
l+1
L

et termine la preuve que L = L

.
2.2.5 Thorme de Parikh
On montre ici que tout langage algbrique est commutativement quivalent
un langage rationnel.
Dnition 2.29. Deux mots w et w

sont dits anagrammes sil existe n lettres


a
1
, . . . , a
n
et une permutation de 1, . . . , n telle que w = a
1
. . . a
n
et w

=
a
(1)
. . . a
(n)
. Lensemble des anagrammes dun mot w est not w.
Pour un langage L, on appelle image commutative et on note L lensemble
w [ w L des classes des mots de L. Deux langages L et M sont dits
commutativement quivalents si L = M. Pour tous langages L et M, les deux
galits suivantes sont bien sr vries.
L + M = L +M et LM = ML.
Nous sommes maintenant en mesure dnoncer le thorme de Parikh.
Thorme 2.30 (Parikh). Tout langage algbrique L est commutativement
quivalent un langage rationnel R (L = R).
Une consquence du thorme est que sur un alphabet unaire, cest--dire
avec une seule lettre, tous les langages algbriques sont rationnels. Par contre,
ds que lalphabet contient deux lettres, il existe des langages algbriques com-
mutatifs (cest--dire clos par passage un anagramme) qui ne sont pas ration-
nels. Un exemple est le langage w [ [w[
a
= [w[
b
des mots ayant doccurrences
de a que doccurrences de b.
Les grandes tapes de la preuve sont les suivantes. On associe une gram-
maire un systme dquations en commutatif et on montre que les langages
engendrs par une grammaire propre sont lunique solution du systme. On
montre de manire indpendante que tout systme en commutatif admet aussi
une solution rationnelle. Une autre preuve plus lmentaire se trouve en [Koz97,
p. 201].
Lexemple suivant illustre lnonc du thorme.
Exemple 2.31. Au langage algbrique L = a
n
b
n
[ n 0, on peut par exemple
associer le langage rationnel R = (ab)

tel que L = R.
2.2.6 Systmes dquations en commutatifs
Nous montrons ici que des langages algbriques engendrs par une grammaire
propre sont la solution unique du systme commutatif associ la grammaire.
Soit G = (A, V, P) une grammaire dont lensemble des variables est V =
X
1
, . . . , X
n
et soit L = (L
1
, . . . , L
n
) un n-uplet de langages sur A. Soient u et
v deux mots sur lalphabet A +V . Si u = v alors u(L) = v(L). Cette proprit
stend aisment aux langages. Si les deux langages J et K sur A+V vrient
J = K alors lgalit J(L) = K(L) est vrie.
2.2. SYSTMES DQUATIONS 81
Soit G = (A, V, P) une grammaire dont on suppose par commodit que len-
semble des variables est X
1
, . . . , X
n
. On associe cette grammaire un systme
dquations o(G) obtenu en considrant le systme o(G) pour les langages de
la forme K. Une solution de o(G) est donc un un n-uplet L = (L
1
, . . . , L
n
) de
langages tel que
L
i
=

Xiw
w(L) pour 1 i n.
Il sagit dtablir la proposition suivante, ou plutt de la rtablir dans le
cas commutatif.
Proposition 2.32 (Unicit des solutions propres en commutatif). Soit G une
grammaire propre. Alors L
G
est lunique solution propre de o(G).
La proposition prcdente contient un lger abus de langage. Conformment
la dnition, cest L
G
et non pas L
G
qui est la solution de o(G). On a employ
L
G
pour insister sur le fait que lunicit doit tre entendue image commutative
prs. Ceci signie que si L est une solution de o(G), alors L
G
= L.
Preuve. La preuve de la proposition 2.28 peut tre reprise mutatis mutandis.
En eet largument essentiel de cette preuve est argument de longueur qui reste
inchang dans le cas commutatif.
2.2.7 Solutions rationnelles des systmes commutatifs
Nous montrons ici que tout systme dquations en commutatif associ une
grammaire admet une solution rationnelle. Pour cela, on considre des gram-
maires gnralises o lensemble des productions de chaque variable nest plus
un ensemble ni mais un ensemble rationnel de mots.
Dnition 2.33. Une grammaire tendue G est un triplet (A, V, P) o A et V
sont des alphabets nis et disjoints et o P est une partie de V (A+V )

telle
que pour tout X V , lensemble w [ (X, w) P est rationnel.
Les notions de drivation et de mot engendr se gnralisent aux grammaires
tendues. Il est facile de voir que lensemble des mots engendrs par une gram-
maire tendue est algbrique. Il sut pour cela de rajouter des variables (autant
que dtats) qui simulent chacun des automates acceptant les langages rationnels
w [ (X, w) P.
Thorme 2.34 (Solutions rationnelles). Soit G = (A, V, P) une grammaire
tendue o V = X
1
, . . . , X
n
. Il existe des langages rationnels R
1
, . . . , R
n
sur
A tels que (R
1
, . . . , R
n
) soit solution de o(G).
On commence par un lemme.
Lemme 2.35. Soit K un langage sur A + X et soit L et M deux langages
sur A. Alors lgalit K(L

M)L

= K(M)L

est vrie.
Preuve. Soit u un mot de K. En regroupant les occurrences de la variable X
la n, on obtient u = wX
n
o w est un mot sur A et o n est le nombre
doccurrences de X dans u. On vrie alors facilement que lgalit u(L

M)L

=
u(M)L

. On obtient le rsultat du lemme en sommant les galits prcdentes


sur tous les lments de K.
82 CHAPITRE 2. LANGAGES ALGBRIQUES
On procde maintenant la preuve du thorme.
Preuve. La preuve du thorme se fait par rcurrence sur le nombre n de va-
riables de la grammaire tendue G.
Commenons par une grammaire G = (A, X, P) ayant seule variable X.
Les rgles de G sont notes S S(X) o S(X) est une expression rationnelle
sur lalphabet (A +X)

. Une solution du systme o(G) est un langage L tel


que L = S(L).
On isole dans S(X) les mots ayant au moins une occurrence de X et les mots
ayant aucune occurrence de X. On pose donc P(X) = S(X)(A+X)

X(A+
X)

et T = S(X) A

. Les deux langages P(X) (on note P(X) plutt que


P pour insister sur le fait que les mots de P contiennent des occurrences de la
variable X) et T sont deux langages rationnels puisque la classe des langages
rationnels est close par intersection.
Comme tous les mots de P(X) contiennent au moins une occurrence de X,
on peut crire modulo la commutativit
P(X) = Q(X)X
o Q(X) peut tre choisi rationnel. Il sut de prendre pour Q(X) lensemble
des mots de P(X) o la premire occurrence de X a t supprime.
Le systme o(G) scrit alors
L = Q(L)L +T.
On va vrier que le langage rationnel R = Q(T)

T est eectivement une


solution du systme o(G).
Q(R)R +T = Q(Q(T)

T)Q(T)

T +T
= Q(T)Q(T)

T +T par le lemme prcdent


= Q(T)

T Q(T)

= Q(T)Q(T)

+
= R.
Ceci termine le cas o la grammaire a une seule variable.
Soit n un entier positif. On considre maintenant une grammaire tendue G
ayant n + 1 variables X
0
, X
1
, . . . , X
n
. Les rgles de G scrivent
X
i
S
i
(X
0
, . . . , X
n
) pour 0 i n
o chaque S
i
est un langage rationnel sur A + X avec X = X
0
, . . . , X
n
.
Par commodit, on note X

lensemble X priv de la variable X


0
, cest-a-dire
lensemble X
1
, . . . , X
n
.
On introduit la grammaire G
0
obtenue en considrant les variables X
1
, . . . , X
n
comme des lettres terminales et en ne prenant que les rgles associes X
0
dans G. Plus formellement, la grammaire G
0
est donne par
G
0
= (A +X

, X
0
, X
0
S
0
(X
0
, X

)).
Comme la grammaire G
0
a une seule variable, on utilise le cas prcdent pour
obtenir une solution R
0
(X

) du systme o(G
0
) qui vrie donc lgalit suivante.
R
0
(X

) = S
0
(R
0
(X

), X

) (2.1)
2.3. ARBRES DE DRIVATION 83
On introduit la grammaire tendue G

en remplaant, dans les autres rgles,


X
0
par la solution R
0
(X

) de o(G
0
). Plus formellement, la grammaire G

est
donne par
G

= (A, X

, X
i
S
i
(R
0
(X

), X

) [ 1 i n).
Il faut remarquer que la grammaire G

est tendue mme si la grammaire G ne


lest pas. En eet, la variable X
0
est substitue par un langage rationnel. Ceci
explique la ncessit de considrer des grammaires tendues pour la preuve du
thorme.
Puisque G

a n variables, lhypothse de rcurrence peut tre applique. Il


existe n langages rationnels R
1
, . . . , R
n
sur A qui forment une solution R

=
(R
1
, . . . , R
n
) du systme o(G

). Ils vrient donc les galits


R
i
= S
i
(R
0
(R

), R

) pour 1 i n.
Il reste vrier que le n + 1-uplet R = (R
0
(R

), R
1
, . . . , R
n
) constitue
eectivement une solution du systme o(G) de la grammaire initiale G. En sub-
stituant X

par R

dans lquation (2.1), on obtient une quation qui complte


les n quations ci-dessus pour montrer que le n+1-uplet R est bien une solution
rationnelle de o(G). Ceci termine la preuve du thorme.
Preuve du thorme de Parikh
Soit L un langage algbrique. Il existe une grammaire G = (A, V, P) o
X = X
1
, . . . , X
n
telle que L = L
G
(X
1
). Si L est propre, on peut supposer G
propre. Daprs la proposition 2.32, L
G
est lunique solution propre du systme
o(G). Daprs le thorme 2.34, ce mme systme admet une solution rationnelle
R = (R
1
, . . . , R
n
). En combinant les deux rsultats, on conclut que L = R
1
.
Si L nest pas propre, on applique le rsultat prcdent au langage L

=
L qui est propre et aussi algbrique. On obtient un langage rationnel R

tel que L

= R

. Le langage R = R

+ vrie alors lgalit L = R souhaite.


2.3 Arbres de drivation
Dans une drivation, les rgles qui sappliquent des variables direntes
peuvent tre appliques de manire indpendante et donc dans un ordre quel-
conque. Ceci conduit avoir plusieurs drivations direntes mme lorsquil y
a essentiellement quune seule faon dobtenir un mot. Les arbres de drivation
permettent de capturer cette notion dambigut des grammaires. Ils permettent
aussi de formaliser un lemme ditration.
Dnition 2.36 (Arbre de drivation). Soit G = (A, V, P) une grammaire.
Un arbre de drivation est un arbre ni tiquet par A V vriant la
proprit suivante. Si S est ltiquette dun nud interne et si a
1
, . . . , a
n
sont
les tiquettes de ses ls alors S a
1
a
n
est une rgle de G. La frontire
dun arbre de drivation est le mot obtenu par concatnation des tiquettes des
feuilles de gauche droite. Si la frontire contient au moins une variable, larbre
est un arbre de drivation partielle
84 CHAPITRE 2. LANGAGES ALGBRIQUES
S
S
S

T
a S
S

T
a S

a
a
T
a S

a
Fig. 2.1 Arbre de drivation
Exemple 2.37. Soit la grammaire dnie par les rgles S ST +, T aS a.
La gure 2.1 exhibe un arbre de drivation pour cette grammaire. La frontire
de cet arbre est le mot aa a aa a.
Proposition 2.38. Le langage L
G
(S) (resp.

L
G
(S)) est lensemble des mots
w A

(resp. (A+V )

) tels quil existe un arbre de drivation (resp. partielle)


ayant S la racine et dont la frontire est w.
Preuve. La preuve est immdiate dans la mesure o un arbre de drivation est
simplement une autre faon de visualis une drivation. Une preuve formelle
peut tre faite par rcurrence sur la longueur de la drivation.
2.3.1 Ambigut
La notion dambigut est lanalogue pour les grammaires du non dtermi-
nisme des automates. De manire intuitive, une grammaire est non ambigu, si
elle engendre chaque mot dune faon au plus. Contrairement au cas des auto-
mates, toute grammaire nest pas quivalente une grammaire non ambigu.
Certains langages algbriques ne sont engendrs que par des grammaires ambi-
gus.
Dnition 2.39 (Grammaire ambigu). Une grammaire G est dite ambigu
sil existe un mot ayant au moins deux arbres de drivation distincts tiquet
la racine par la mme variable S.
La dnition suivante est justie par lexistence de langages algbriques
uniquement engendrs par des grammaires ambigus.
Dnition 2.40 (Langage ambigu). Un langage algbrique est dit non ambigu
sil existe au moins une grammaire non ambigu qui lengendre. Sinon, il est
dit inhremment ambigu pour signier que toute grammaire qui lengendre est
ambigu.
2.3. ARBRES DE DRIVATION 85
S
S
a a
a
S
a S
a a
Fig. 2.2 Deux arbres de drivation pour aaa
Exemple 2.41. La grammaire S SS + a est ambigu car le mot aaa a deux
arbres de drivations (cf. gure 2.2), Par contre, le langage engendr L
G
(S) = a
+
est non ambigu car il est galement engendr par la grammaire S aS +a qui
est non ambigu.
Les propositions 2.48 et 2.50 tablissent quil existe des langages algbriques
inhremment ambigus.
2.3.2 Lemme ditration
Le but de cette partie est dtablir un analogue du lemme de ltoile pour
les langages algbriques. Pour cette raison, ce lemme d Ogden est aussi
appel lemme ditration. Il permet de montrer que certains langages ne sont
pas algbriques ou que certains langages algbriques sont inhrement ambigus.
On commence par un lemme purement combinatoire sur les arbres.
Soit un arbre o certaines feuilles sont distingues. On dit que :
un nud est distingu lorsque le sous-arbre dont il est racine contient des
feuilles distingues.
un nud est spcial lorsquil a au moins deux ls distingus.
Par dnition, un nud spcial est aussi distingu. Le parent dun nud dis-
tingu est encore distingu. En particulier, la racine de larbre est distingue
ds que larbre a au moins une feuille distingue. Rappelons quun arbre est dit
de degr m si chaque nud a au plus m ls. Le lemme suivant tablit un lien
entre le nombre de feuilles distingues et le nombre de nuds spciaux qui se
trouvent sur une mme branche.
Lemme 2.42. Soit t un arbre de degr m avec k feuilles distingues. Si chaque
branche contient au plus r nuds spciaux, alors k m
r
.
Preuve. Pour deux nuds x et x

dun arbre, on appelle plus petit anctre com-


mun le nuds z o les deux chemins de x et de x

la racine se rejoignent. Les


nuds x et x

sont deux descendants de z mais ils ne sont pas descendants dun


mme ls de z. Si x et x

sont deux feuilles distingues, leur plus petit anctre


commun est donc un nud spcial.
On montre le rsultat par rcurrence sur r. Si r = 0, il ny a aucun nud
spcial dans larbre. Il y a donc au plus une seule feuille distingue. Sil y avait
deux feuilles distingues, leur plus petit anctre commun serait spcial.
On suppose maintenant que r 1. Soit x un nud spcial nayant pas de
descendant spcial autre que lui-mme. En appliquant le rsultat pour r = 0 aux
sous-arbres enracins en les ls de x, on obtient que chacun de ces sous-arbres
contient au plus une seule feuille distingue. Comme x a au plus m ls, le sous-
arbre enracin en x a au plus m feuilles distingues. On considre larbre obtenu
86 CHAPITRE 2. LANGAGES ALGBRIQUES
x
0
x
1
x
i0
x
3
x
i1
x
i2
x
6
x
7
x
i3
Fig. 2.3 La branche B avec i
0
= 2, i
1
= 4, i
2
= 5 et i
3
= 8
en remplaant chaque sous-arbre enracin en un nud spcial sans descendant
spcial par une seule feuille distingue. Le nombre de nuds spciaux sur chaque
branche a diminu dune unit. Par hypothse de rcurrence, larbre obtenu a
au plus m
r1
feuilles distingues. Comme chacune de ces nouvelles feuilles a
remplac un sous-arbre avec au plus m feuilles distingues dans larbre initial,
on obtient le rsultat.
Le rsultat suivant est traditionnellement appel lemme dOgden. Ce lemme
nest pas exempt de dfaut. Il nest pas facile noncer, la preuve est loin dtre
triviale et surtout, il est assez dlicat utiliser. Il faut cependant sen contenter
car il est presque le seul outil dont on dispose pour montrer quun langage nest
pas algbrique.
Lemme 2.43 (dOgden). Pour toute grammaire G = (A, V, P) et toute va-
riable S V , il existe un entier K tel que tout mot f

L
G
(S) ayant au moins
K lettres distingues se factorise en f = uv, o , u, , v, (A + V )

,
avec :
1. S

T et T

uTv +.
2. soit , u, , soit , v, contiennent des lettres distingues.
3. uv contient moins de K lettres distingues.
Les conditions du lemme montrent que les tous les mots de la forme u
n
v
n

pour n 0 appartiennent au langage



L
G
(S). Un telle paire (u, v) est appele
une paire itrante.
Preuve. Soit m la longueur maximale des membres droits des rgles. Puisque
f appartient

L
G
(S), il existe arbre de drivation t dont la racine est tique-
te par S et dont la frontire est le mot f. Par dnition de m, larbre t est
de degr m. Les feuilles distingues de t sont celles tiquetes par les lettres
distingues de f.
On pose r = 2[V [+2 et K = m
r
+1. Comme larbre t a K feuilles distingues,
il a, daprs le lemme prcdent, au moins une branche B ayant au moins r +1
2.3. ARBRES DE DRIVATION 87
nuds spciaux x
0
, . . . , x
r
. Chaque nud x
i
a par dnition au moins deux ls
distingus dont lun est sur la branche B. Le nud x
i
est dit gauche (respective-
ment droit ) sil a un autre ls distingu gauche (respectivement droite) de la
branche B. Il peut tre simultanment gauche et droit : il est alors arbitrairement
considr comme gauche. Parmi les r +1 = 2[V [ +3 nuds x
0
, . . . , x
r
, au moins
[V [ +2 dentre eux sont tous gauches ou tous droits. On pose alors k = [V [ +1.
Par symtrie, on suppose quil existe des indices 0 i
0
< < i
k
r tels que
les nuds x
i0
, . . . , x
i
k
soient gauches (cf. gure 2.3 pour un exemple). Comme
k est suprieur au nombre de variables, deux nuds x
j1
et x
j2
parmi les nuds
x
i1
, . . . x
i
k
sont ncessairement tiquets par la mme variable T.
S
T
T

. .
u
. .

. .
v
. .

. .
Fig. 2.4 Dcoupage dun mot par le lemme dOgden
Le mot est alors dcoup comme le suggre la gure 2.4. Le fait que le nud
x
i0
soit gauche garantit que contienne des lettres distingues. De mme, les
nuds x
j1
et x
j2
garantissent respectivement que u et contiennent des lettres
distingues. Si uv contient plus de K lettres distingues, on recommence le
raisonnement avec le sous-arbre de drivation engendrant ce mot.
Dans le cas o toutes les lettres de f sont marques, on obtient le corollaire
suivant.
Corollaire 2.44 (Thorme de Bar-Hillel, Perles, Shamir). Pour tout langage
algbrique L, il existe N 0 tel que pour tout mot f L, si [f[ N alors
on peut trouver une factorisation f = uv tel que [uv[ > 0, [uv[ < N et
u
n
v
n
L pour tout n 0.
2.3.3 Applications du lemme ditration
Dans cette partie, on applique le lemme ditration pour montrer que certains
langages classiques ne sont pas algbriques et que certains langages algbriques
sont inhremment ambigus.
Proposition 2.45. Le langage L = a
n
b
n
c
n
[ n 0 nest pas algbrique.
Preuve. Le corollaire prcdent sut pour prouver que le langage L nest pas
algbrique. Soit N lentier fourni par le corollaire. On considre le mot f
1
=
a
N
b
N
c
N
L qui se factorise f
1
= uv tel que f
n
= u
n
v
n
L pour tout
n 0. Chacun des mots u et v ne contient quune seule des lettres a, b ou c.
Sinon le mot f
2
nappartient pas a

L. Il en dcoule que f
2
ne peut pas
appartenir L car les nombres doccurrences de a, b et c ne sont plus gaux.
La proposition prcdente a pour corollaire immdiat.
88 CHAPITRE 2. LANGAGES ALGBRIQUES
Corollaire 2.46. La classe des langages algbriques nest close ni par intersec-
tion ni par complmentation.
Preuve. Le langage a
n
b
n
c
n
[ n 0 est lintersection des deux langages alg-
briques a
m
b
m
c
n
[ m, n 0 et a
m
b
n
c
n
[ m, n 0.
Proposition 2.47. Le langage L = a
m
b
n
c
m
d
n
[ n, m 0 nest pas algbrique.
Preuve. Supposons quil existe une grammaire G telle que L = L
G
(S). Soit k
lentier fourni par le lemme ditration. On applique le resultat au mot f =
a
k
b
k
c
k
d
k
o les k lettres distingues sont les lettres b. Daprs le lemme dit-
ration, il existe des drivations
S

a
k
b
k1
Td
k2
T

b
i
Td
i
T

b
k

1
c
k
d
k

2
avec les relations k = k
1
+i +k

1
= k
2
+i +k

2
. On applique nouveau le lemme
diteration au mot a
k
b
k1
Td
k2
o les k lettres distingues sont les lettres a. On
obtient immdiatement une contradiction car la paire itrante obtenue contient
des lettres a mais aucune lettre d.
Proposition 2.48. Le langage L = a
m
b
m
c
n
[ m, n 0a
m
b
n
c
n
[ m, n 0
est inhremment ambigu.
Preuve. Chacun des langages a
m
b
m
c
n
[ m, n 0 et a
m
b
n
c
n
[ m, n 0 est
bien sr algbrique et le langage L est donc aussi algbrique. Soit G = (A, V, P)
une grammaire telle que L = L
G
(S
0
). On montre que la grammaire G est
ambigu en montrant quun mot de la forme a
n
b
n
c
n
a au moins deux arbres de
drivation.
Soit k lentier fourni par le lemme ditration. On applique le rsultat au
mot f
1
= a
k
b
k
c
k+k!
o les k lettres distingues sont les b. Daprs le lemme
ditration, il existe des drivations
S
0

S

uSv

uv = f
1
Les conditions impliquent que u = a
i
et v = b
i
pour un entier 0 i k. En
itrant k!/i fois la drivations S

uSv on obtient un arbre de drivation pour
le mot f = a
k+k!
b
k+k!
c
k+k!
. Cet arbre contient un sous-arbre dont la frontire
ne contient que des lettres a et b dont au moins k! k lettres b.
En appliquant le mme procd au mot f
2
= a
k+k!
b
k
c
k
, on obtient un autre
arbre de drivation pour le mme mot f. Cet arbre contient un sous-arbre dont
la frontire ne contient que des lettres b et c dont au moins k! k lettres b. Cet
arbre est donc dirent du premier arbre trouv.
Exercice 2.49. Soit A un alphabet et # une nouvelle lettre nappartenant pas
A. Montrer que les trois langages
L
1
= w#w

[ w, w

et w ,= w

L
2
= w#w

[ w, w

et w = w

L
3
= w#w

[ w, w

, w ,= w

et [w[ = [w

[
sont pas algbriques.
2.4. PROPRITS DE CLTURE 89
2.3.4 Ambigut inhrente
Il est souvent dicile de montrer quun langage algbrique donn est in-
hremment ambigu. Lorsque le lemme ditration nest pas adapt, une autre
mthode consiste utiliser la fonction gnratrice du langage L dnie par
f
L
(z) =

n0
a
n
z
n
o a
n
= [L A
n
[.
Si le langage est non ambigu, la fonction f
L
(z) est algbrique car elle est solution
du systme commutatif associ une grammaire non ambigu qui engendre L.
En utilisant cette mthode, on peut par exemple montrer le thorme suivant
(cf. exemple 2.8 p. 71 pour la dnition du langage de Goldstine).
Proposition 2.50 (Flageolet). Le langage de Goldstine est inhremment am-
bigu.
Preuve. Nous donnons juste une ide de la preuve qui fait appel des lments
danalyse pour lesquels nous renvoyons le lecteur des ouvrages spcialiss.
Un mot nest pas dans le langage de Goldstine soit parce quil se termine par la
lettre a soit parce quil est de la forme baba
2
ba
3
b a
n
b pour n 0. Ceci montre
que la fonction gnratrice du langage de Goldstine est gale (1z)/(12z)
g(z) o la fonction g(z) est gale
g(z) = z + z
3
+z
6
+ =

n1
z
n(n+1)/2
.
Une fonction de la forme

n0
z
cn
o la suite (c
n
)
n0
vrie sup(c
n+1
c
n
) =
converge sur le bord de son disque de convergence. La fonction g admet donc
une innit de singularits et ne peut tre algbrique comme f
L
.
2.4 Proprits de clture
Cette partie est consacre quelques proprits de clture classiques des
langages algbriques. Nous montrons que la classe des langages algbriques est
close pour les oprations rationnelles, les substitutions et les morphismes in-
verses et lintersection avec un langage rationnel. Cette direntes proprits
permettent daborder le thorme de Chomsky-Schtzenberger qui tablit que
les langages de Dyck sont en quelque sorte les langages algbriques gnriques.
Tout langage algbrique est limage par un morphisme dune intersection dun
langage de Dyck avec un langage rationnel.
2.4.1 Oprations rationnelles
On commence par les oprations rationnelles qui montrent que les langages
algbriques gnralisent les langages rationnels.
Proposition 2.51 (Oprations rationnelles). Les langages algbriques sont clos
par union, concatnation et toile.
Preuve. Soient G = (A, V, P) et G

= (A, V

, P

) deux grammaires telles que


L = L
G
(S) et L

= L
G
(S

). On suppose sans perte de gnralit que V V

= .
90 CHAPITRE 2. LANGAGES ALGBRIQUES
Le langage L + L

est gal L
G1
(S
0
) o la grammaire G
1
est gale
(A, S
0
V V

, S
0
S +S

P P

)
Le langage LL

est gal L
G2
(S
0
) o la grammaire G
2
est gale (A, S
0

V V

, S
0
SS

P P

)
Le langage L

est gal L
G3
(S
0
) o la grammaire G
3
est gale (A, S
0

V, S
0
SS
0
+ P)
Le corollaire suivant dcoule directement de la proposition prcdente.
Corollaire 2.52. Les langages rationnels sont aussi algbriques.
Pour obtenir directement le corollaire, on peut galement construire une
grammaire qui engendre le langage L(/) des mots accepts par un automate
normalis / = (Q, A, E, i, f). La grammaire G = (A, Q, P) o lensemble
des rgles est P = p aq [ p
a
q E f vrie que L
G
(i) = L(/).
Rciproquement, une grammaire dont toutes les rgles sont de la forme S aT
pour a A et S, T V engendre un langage rationnel.
2.4.2 Substitution algbrique
On rappelle quune substitution de A

dans B

est un morphisme de A

dans
P(B

). Une substitution est dite algbrique si (a) est un langage algbrique


pour toute lettre a de A. Les morphismes sont bien sr un cas particulier de
substitution algbrique.
Proposition 2.53 (Substitution algbrique). Si L A

est un langage alg-


brique et une substitution algbrique de A

dans B

, alors le langage (L) =

wL
(w) est aussi algbrique.
Preuve. Soient G = (A, V, P) une grammaire pour L = L
G
(S) et : A
P(B

), une substitution algbrique telle que pour tout a A, G


a
= (B, V
a
, P
a
)
est une grammaire telle que (a) = L
Ga
(S
a
).
On considre alors la grammaire G

= (B, V

a
V
a
, P

a
P
a
) o P

=
S (w) [ S w P o le morphisme est dni par (S) = S pour tout
S V , et (a) = S
a
pour tout a A. Cette grammaire engendre (L).
Le rsultat de la proposition prcdente sapplique en particulier aux mor-
phismes. Limage par une morphisme dun langage algbrique est encore un
langage algbrique.
2.4.3 Intersection avec un rationnel
On montre dans cette partie que lintersection dun langage rationnel et dun
langage algbrique est encore un langage algbrique.
Proposition 2.54 (Intersection avec un rationnel). Si L est un langage alg-
brique et K un langage rationnel, alors K L est algbrique.
Lintersection de deux langages algbriques nest pas algbrique en gnral
comme cela a t vu au corollaire 2.46 (p. 88).
2.4. PROPRITS DE CLTURE 91
Preuve. Soit G = (A, V, P) une grammaire telle que L = L
G
(T). Sans perte
de gnralit, on peut supposer que G est en forme normale quadratique. Cette
condition nest pas indispensable la preuve mais simplie les notations.
Mthode des automates Soit / = (Q, A, E, i, f) un automate normalis
acceptant le langage K. Le langage K L est engendr par la grammaire
G

= (A, V

, P

) dnie de la faon suivante.


V

= S
pq
[ S V et p, q Q,
P

= S
pq
a [ S a P et p
a
q E,
S
pq
R
pr
T
rq
[ r Q et S RT P.
Le langage K L algbrique car il est gal L
G
(T
if
).
Mthode des monodes Soit : A

M un morphisme de A

dans un
monode M ni tel que K =
1
(H) o H est une partie de M. Le
langage K L est engendr par la grammaire G

= (A, V

, P

) dnie de
la faon suivante.
V

= S
m
[ S V et m M,
P

= S
m
a [ S a P et m = (a),
S
m
R
m1
T
m2
[ S RT P et m = m
1
m
2
.
Le langage K L est algbrique car il gal lunion

mH
L
G
(T
m
).
2.4.4 Morphisme inverse
On montre dans cette partie que limage inverse par un morphisme dun
langage algbrique est encore algbrique. Le rsultat nest pas immdiat pour
la raison suivante. Tout mot w dun langage algbrique a une factorisation w =
w
1
w
m
induite par un arbre de drivation. Si le mot w est aussi limage par un
morphisme dun mot u = a
1
a
n
, il a une autre factorisation w = w

1
w

n
o w

i
= (a
i
). Ces deux factorisations ne concident pas a priori. La preuve
du rsultat sappuie sur une dcomposition astucieuse dun morphisme inverse
avec des morphisme alphabtiques. Cette dcomposition est en soi un rsultat
intressant. On commence par la dnition dun morphisme alphabtique.
Dnition 2.55 (Morphisme alphabtique). Un morphisme : A

est
dit alphabtique (resp. strictement alphabtique) si pour tout a A, [(a)[ 1
(resp. [(a)[ = 1).
A

h
g
K
Fig. 2.5 Factorisation dun morphisme
92 CHAPITRE 2. LANGAGES ALGBRIQUES
Lemme 2.56 (Factorisation dun morphisme). Pour tout morphisme h : A

, il existe deux morphismes alphabtiques g : C

et : C

et
un langage rationnel K C

tel que h
1
(w) = (g
1
(w) K) pour tout mot
w B

.
Preuve. On dnit lalphabet C et les deux parties C
0
et C
1
de C par
C = (a, i) [ a A et 0 i [h(a)[
C
0
= (a, 0) [ a A C
1
= (a, [h(a)[) [ a A
puis les langages rationnels locaux W et K de C

par
W = C
2
((a, i)(a, i + 1) [ a A et 0 i < [h(a)[ C
1
C
0
)
K = (C
0
C

C
1
) C

WC

Les mots de K sont les mots de la forme u


1
u
n
o chaque mot u
i
pour
1 i n est un mot de la forme (a
i
, 0)(a
i
, 1) (a
i
, [h(a
i
)[) pour une lettre a
i
de A.
On dnit nalement les deux morphismes g : C

et : C

par
g(a, i) =
_
si i = 0
h(a)[i] si i 1
et (a, i) =
_
a si i = 0
si i 1
o h(a)[i] est une notation pour la i-ime lettre du mot h(a).
Proposition 2.57 (Morphisme inverse). Si h : A

est un morphisme et
L B

est un langage algbrique, alors h


1
(L) est aussi algbrique.
Preuve. Montrons dabord la proprit lorsque h est alphabtique. Soit G =
(B, V, P) une grammaire et S
0
une variable telles que L = L
G
(S
0
).
Puisque le morphisme h est alphabtique, lalphabet A se partitionne en les
deux parties A
0
et A
1
dnies par A
0
= a A [ h(a) = et A
1
= a A [
h(a) B. Le morphisme h est tendu (A + V )

en posant h(S) = S pour


toute variable S V .
On dnit la grammaire G

= (A, V, P
0
P
1
) o les ensembles de rgles P
0
et P
1
sont respectivement donns par
P
0
= T

aA0
aT +,
P
1
= S Tu
1
T Tu
n
T [ u
i
(V A
1
)

, S h(u
1
u
n
) P.
On vrie que la grammaire G

engendre le langage h
1
(L). Ensuite, pour
tendre ce rsultat un morphisme h quelconque, il sut dappliquer le lemme
prcdent. Lintersection avec le rationnel K dcoule de la proprit prc-
dente.
2.4.5 Thorme de Chomsky-Schtzenberger
Le thorme suivant tablit que les langages de Dyck (cf. exemple 2.8 p. 71
pour la dnition) sont des langages algbriques gnriques. Ils sont gnrateurs
du cne des langages algbriques. On peut consulter [Aut87] pour une preuve
plus dtaille de ce thorme.
2.4. PROPRITS DE CLTURE 93
Thorme 2.58 (Chomsky-Schtzenberger). Un langage L est algbrique si et
seulement si L = (D

n
K) pour un entier n, un langage rationnel K et un
certain morphisme alphabtique.
Preuve. La condition est susante grce aux proprits de clture des langages
algbriques.
Rciproquement, soit G = (A, V, P) une grammaire telle que L = L
G
(S
0
)
pour S
0
V . Daprs la proposition 2.21, on peut supposer que G en forme
normale quadratique. Les rgles de G sont donc de la forme S S
1
S
2
pour
S
1
, S
2
V ou de la forme S a pour a A. Pour chaque rgle r du premier
type, on introduit six nouveaux symboles a
r
, b
r
, c
r
, a
r
,

b
r
et c
r
. Pour chaque
rgle r du second type, on introduit deux nouveaux symboles a
r
et a
r
. Soit A

lensemble de toutes les nouvelles lettres introduites :


A

= a
r
, b
r
, c
r
, a
r
,

b
r
, c
r
[ r = S S
1
S
2
a
r
, a
r
[ r = S a.
Soit D
n
le langage de Dyck sur lalphabet de parenthses A

. Lentier n est donc


gal trois fois le nombre de rgles de la forme S S
1
S
2
plus le nombre de
rgles de la forme S a. On dnit alors la grammaire G

= (A

, V, P

) o les
rgles de G

sont en correspondance avec les rgles de G. Pour chaque rgle r


de G, il existe une rgle r

de G

dnie de la manire suivante.


Si r est la rgle S S
1
S
2
, alors r

est la rgle S a
r
b
r
S
1

b
r
c
r
S
2
c
r
a
r
.
Si r est la rgle S a, alors r

est la rgle S a
r
a
r
.
On dnit nalement le morphisme : A

de la faon suivante. Si r
est une rgle de la forme S S
1
S
2
, on pose par (a
r
) = (b
r
) = (c
r
) =
( a
r
) = (

b
r
) = ( c
r
) = . Si r est une rgle de la forme S a, on pose
(a
r
) = a et ( a
r
) = .
Les dnitions des rgles de G

et du morphisme impliquent immdiate-


ment que L = L
G
(S
0
) = (L
G
(S
0
)). Linclusion L
G
(S
0
) D

n
dcoule direc-
tement de la forme particulire des rgles de G

. Il reste maintenant dnir


un langage rationnel K tel que L
G
(S
0
) = D

n
K.
On va dnir un langage local K qui exprime les contraintes entre les paires
de lettres conscutives de A

dans L
G
(S
0
). Soit A

0
lensemble des lettres a
r
o r est une rgle ayant S
0
pour membre gauche. Soit K le langage local K =
A

0
A

WA

o lensemble W est dni par


A
2
W = a
r
b
r
,

b
r
c
r
, c
r
a
r
[ r = S S
1
S
2

a
r
a
r
[ r = S a
b
r
a
t
, a
t

b
r
[ r = S S
1
S
2
et t = S
1
. . .
c
r
a
t
, a
t
c
r
[ r = S S
1
S
2
et t = S
2
. . ..
Linclusion L
G
(S
0
) D

n
K dcoule directement du choix du langage K.
Linclusion inverse est un peu fastidieuse. Elle se montre par rcurrence sur la
longueur du mot.
Pour un entier n, on note A
n
lalphabet a
1
, . . . , a
n
, a
1
, . . . , a
n
ayant n
paires de parenthses.
Lemme 2.59. Pour tout entier n, il existe un morphisme : A

n
A

2
tel que
D

n
=
1
(D

2
).
94 CHAPITRE 2. LANGAGES ALGBRIQUES
L
D

2
L
G
(S
0
) D


K
Fig. 2.6 Thorme de Chomsky-Schtzenberger
Preuve. Il est facile de vrier que le morphisme dni par (a
k
) = a
1
a
k
2
a
1
et ( a
k
) = a
1
a
k
2
a
1
pour 1 k n convient parfaitement.
Daprs le lemme prcdent, le thorme de Chomsky-Schtzenberger tablit
que tout langage algbrique L scrit L = (
1
(D

2
)K) pour des morphismes
et et pour un langage rationnel K (cf. gure 2.6). Une transformation
de la forme X (
1
(X) K) sappelle une transduction rationnelle. Ces
transformations sont en fait trs naturelles. Elles peuvent en eet tre ralises
de manire quivalentes par des automates deux bandes (une pour lentre et
une pour la sortie) appels transducteurs (cf. thorme 1.158 p. 67).
2.5 Forme normale de Greibach
La forme normale de Greibach est une forme particulire de grammaire.
Toute grammaire est quivalente une grammaire en forme normale de Greibach
mais la preuve nest pas triviale, contrairement la forme normale quadratique.
Cette forme normale permet en particulier de montrer que les -transitions ne
sont pas ncessaires dans les automates pile.
Dnition 2.60 (Forme normale de Greibach). Une grammaire G = (A, V, P)
est en forme normale de Greibach si chacune de ses rgles est de la forme S w
o w appartient AV

. Si de plus chaque w appartient A + AV + AV
2
, la
grammaire est en forme normale de Greibach quadratique.
Les rgles de la forme S w o w appartient AV ne peuvent pas tre
supprimes mme si leur rle se limite essentiellement engendrer les mots de
longueur 2.
Proposition 2.61 (Forme normale de Greibach). Toute grammaire propre est
quivalente une grammaire en forme normale de Greibach quadratique.
La preuve initiale de Greibach donnait seulement une grammaire en forme
normale non quadratique. Nous allons dabord prsenter une premire preuve
plus lmentaire qui donne une grammaire en forme normale de Greibach. Nous
donnons ensuite la preuve due Rosenkrantz qui est plus concise et donne en
plus une grammaire en forme normale quadratique. Le thorme peut encore
tre ran en introduisant des formes normales bilatres o les membres droits
des rgles appartiennent A + AA + AVA + AV VA. La preuve de ce rsultat
d Hotz est cependant plus dicile.
Preuve lmentaire. Il sut de trouver une grammaire avec des rgles de la
forme S w o w A(A + V )

. On se ramne alors une grammaire en


forme normale de Greibach en introduisant une nouvelle variable T
a
avec la
2.5. FORME NORMALE DE GREIBACH 95
rgle T a pour chaque lettre terminale a et remplaant chaque occurrence
de a par T
a
.
Soit G = (A, V, P) une grammaire o on suppose que V = X
1
, . . . , X
n
. On
pose G
0
= G et on dnit par rcurrence une suite G
0
, . . . , G
n
de grammaires
telles que dans chaque grammaire G
i
les variables X
1
, . . . , X
i
napparaissent pas
en tte des membres droits de rgles. On suppose avoir construit la grammaire
G
i1
et on construit la grammaire G
i
par les deux tapes suivantes.
1. On commence par supprimer X
i
en tte des productions de X
i
. Soient
X
i
X
i
u
1
+ +X
i
u
k
+w
1
+ +w
p
les rgles de G
i1
ayant X
i
comme membre gauche o les mots w
1
, . . . , w
p
ne commencent pas par la variable X
i
. Par hypothse de rcurrence, les
mots w
1
, . . . , w
p
ne commencent pas une variable X
j
pour 1 j i 1.
On introduit une nouvelle variable X

i
et on remplace les rgles prcdentes
par les nouvelles rgles
X
i
w
1
X

i
+ +w
p
X

i
+w
1
+ +w
p
X

i
u
1
X

i
+ +u
k
X

i
+u
1
+ +u
k
.
2. La transformation prcdente a pu faire apparatre des variables X
j
(pour
1 j i) en tte des mots u
l
. En outre, la variable X
i
peut tre la pre-
mire lettre de membres droits dautres rgles. Toutes ces occurrences des
variables X
j
(pour 1 j i) en tte de membres droits sont supprimes
en remplaant chaque rgle S X
j
v par toutes les rgles S uv o u
parcourt les productions de la variable X
j
.
Exemple 2.62. En appliquant lalgorithme de la preuve prcdente la gram-
maire G = G
0
, on obtient successivement les grammaires G
1
, G
2
et G
3
.
G
0
_
_
_
A AB +a
B BC +b
C CA +c
G
1
_

_
A aA

+a
A

BA

+B
B BC +b
C CA +c
G
2
_

_
A aA

+a
A

bB

+bA

+bB

+b
B bB

+b
B

CB

+C
C CA +c
G
3
_

_
A aA

+a
A

bB

+bA

+bB

+b
B bB

+b
B

cC

+cB

+cC

+c
C cC

+c
C

aA

+aC

+aA

+a
Autre preuve (Rosenkrantz). Soit G = (A, V, P) une grammaire o lensemble
des variables est V = X
1
, . . . , X
n
. Sans perte de gnralit, on peut sup-
poser que G est forme normale quadratique. Cette hypothse est uniquement
ncessaire pour que la grammaire en forme normale de Greibach qui est ob-
tenue soit aussi quadratique. Pour 1 i n, on dnit le langage P
i
par
P
i
= w [ X
i
w. Les rgles de G scrivent alors X
i
P
i
pour 1 i n.
On introduit le vecteur

X = (X
1
, . . . , X
n
) et le vecteur

P = (P
1
, . . . , P
n
) de
sorte que les rgles scrivent

X

P.
96 CHAPITRE 2. LANGAGES ALGBRIQUES
On introduit la matrice R = (R
ij
) de dimensions n n o chaque entre R
ij
est dnie par R
ij
= X
1
i
P
j
. On dnit aussi le vecteur

S = (S
1
, . . . , S
n
) o
S
i
= P
i
AV

. Les rgles de la grammaire scrivent alors sous forme matricielle


de la manire suivante

X

XR +

S.
Par analogie avec le systme X = XR+S dont la solution est SR

, on introduit
la matrice Y = (Y
ij
) o chaque entre Y
ij
est une nouvelle variable. On introduit
aussi la grammaire G

dont les rgles sont donnes par


X SY
Y RY +I
o I est la matrice ayant sur la diagonale et partout ailleurs. La gram-
maire G

est quivalente la grammaire G. Comme G est en forme normale


quadratique, chaque entre R
ij
est une somme de variables de V . En utilisant
X SY , on dnit nalement la matrice R

= (R

ij
) o chaque entre R

ij
est
donne par la formule
R

ij
=

X
k
Rij
(SY )
k
.
La grammaire G

dont les rgles sont donnes par


X SY
Y R

Y +I
est encore quivalente la grammaire G. On supprime les -rgles de G

pour
obtenir une grammaire en forme normale de Greibach quadratique quivalente
G.
2.6 Automates pile
Les automates pile sont une extension des automates nis. Outre un
contrle par un nombre ni dtats, ils possdent une mmoire auxiliaire. Celle-
ci est organise sous la forme dune pile contenant des symboles. Il est seulement
possible dempiler ou de dpiler des symboles. Seul le symbole en sommet de
la pile est visible du contrle. Les transitions eectues ne dpendent que de
ltat interne, du symbole au sommet de la pile et aussi du mot lu. Les langages
accepts par ces automates sont exactement les langages algbriques.
2.6.1 Dnitions et exemples
Comme un automate ni, un automate pile a un ensemble ni Q dtats. Il
y a un alphabet A sur lequel sont crits les mots dentre ainsi quun alphabet de
pile qui contient tous les symboles qui peuvent tre mis dans la pile. La transition
eectue par lautomate dpend de ltat de contrle, de la lettre lue dans le
mot dentre et du symbole au sommet de la pile. Chaque transition remplace
le symbole au sommet de la pile par un mot ventuellement vide sur lalphabet
de pile. Ce dernier cas correspond un dpilement. Eectuer une transition fait
passer la lettre suivante du mot dentre qui est donc lu squentiellement de
gauche droite. On introduit aussi des -transitions qui ne lisent aucune lettre
2.6. AUTOMATES PILE 97
du mot dentre. Ces transitions ne sont pas absolument ncessaires dans le cas
des automates non dterministes. Il est possible de les supprimer mme si ce
nest pas immdiat. Par contre, ces -transitions sont indispensables pour les
automates dterministes.
Dnition 2.63 (Automate pile). Un automate pile est constitu dun
alphabet dentre A, dun alphabet de pile Z dont un symbole initial z
0
Z,
dun ensemble ni dtats Q dont un tat initial q
0
et de transitions de la forme
q, z
y
q

, h avec q, q

Q, y A , z Z et h Z

. Le mot y qui est une


lettre ou le mot vide est ltiquette de la transition.
Ltat initial q
0
est ltat de contrle dans lequel se trouve lautomate pile
au dbut dun calcul. Tout au long dun calcul, la pile de lautomate nest jamais
vide. Le calcul se bloque ds que la pile devient vide. Le symbole de pile initial z
0
est le symbole qui est mis dans la pile avant de commencer tout calcul.
Une conguration dun automate est un tat instantan de lautomate qui
comprend ltat de contrle et le contenu de la pile. Le contenu de la pile est vu
comme un mot sur lalphabet de pile. On appelle conguration une paire (q, h)
de QZ

. La conguration initiale est (q


0
, z
0
) o q
0
et z
0
sont respectivement
ltat initial et le symbole de pile initial. La notion de calcul pour un automate
pile est lquivalent dun chemin pour un automate ni. Il est constitu dune
suite dtapes de calcul consistant eectuer une transition de lautomate.
Dnition 2.64 (Calcul dun automate pile). Une tape de calcul est une
paire de congurations (C, C

) note C
y
C

telles que C = (p, zw), C

=
(q, hw) et p, z
y
q, h est une transition de lautomate. Un calcul de lautomate
est une suite dtapes de calcul conscutives :
C
0
y1
C
1
y2

yn
C
n
.
Le mot y
1
y
n
est ltiquette du calcul.
Eectuer une transition p, z
y
q, h dun automate pile consiste passer de
ltat p ltat q, lire le mot y et remplacer le symbole z du sommet de pile
par le mot h. Une transition est impossible ds que la pile est vide et le calcul
se bloque. La transition peut soit dpiler si h est vide, soit remplacer le symbole
de sommet de pile si h est de longueur 1, soit empiler si h est de longueur au
moins 2. On parle d-transition lorsque y est le mot vide.
On utilise la mme notation pour une transition et une tape de calcul dans
la mesure o une transition p, z
y
q, h peut tre vue comme une tape de calcul
de la conguration (p, z) la conguration (q, h).
Dans la dnition prcdente, le contenu de la pile est crit de haut en bas.
Le sommet de pile se situe donc gauche du mot de pile. Certains ouvrages
utilisent la convention inverse o le sommet de pile se situe droite. Aucune
des conventions nest parfaite et nvite de passer au mot miroir dans certaines
preuves. La convention adopte dans cet ouvrage simplie la preuve dquiva-
lence entre grammaires et automates pile (cf. thorme 2.69). Par contre, la
preuve en complment que lensemble des contenus forme un langage rationnel
(cf. thorme 2.81) ncessite un passage au mot miroir.
98 CHAPITRE 2. LANGAGES ALGBRIQUES
2.6.2 Dirents modes dacceptation
Il reste dnir les congurations nales qui dterminent les calculs ac-
ceptants et par consquent les mots accepts par lautomate. Il existe plu-
sieurs modes dacceptation pour dnir ces congurations nales. Les principaux
modes utiliss sont les suivants. Ils sont tous quivalents pour les automates non
dterministes. Pour les automates dterministes, le mode dacceptation par pile
vide est plus faible car le langage accept est ncessairement un code prxe.
pile vide : les congurations nales sont toutes les congurations de la
forme (q, ) o la pile est vide.
tat nal : les congurations nales sont toutes les congurations de la
forme (q, w) o ltat q appartient un sous-ensemble F dtats distingus
de Q et o le contenu de la pile est quelconque.
sommet de pile : les congurations nales sont les congurations (q, zw)
o le sommet de pile z appartient un sous-ensemble Z
0
de symboles de
pile distingus de Z.
combinaison : toute combinaison des trois premiers.
Un mot f est accept par un automate pile sil existe un calcul dtiquette f
de la conguration initiale (q
0
, z
0
) une conguration nale.
Exemple 2.65. Soit lautomate pile dni sur les alphabets dentre et de pile
A = a, b et Z = z avec les tats Q = q
0
, q
1
et comportant les trois
transitions suivantes :
q
0
, z
a
q
0
, zzz q
0
, z

q
1
, q
1
, z
b
q
1
, .
Un calcul valide pour cet automate est par exemple
q
0
, z
a
q
0
, zzz

q
1
, zz
b
q
1
, z
b
q
1
, .
Si on choisit un arrt par pile vide, cet automate accepte le langage L
1
=
a
n
b
2n
[ n 0. Si on choisit larrt par tat nal avec lensemble F = q
1
, il
accepte le langage L
2
= a
n
b
p
[ 0 p 2n.
Exemple 2.66. Soit lautomate pile dni sur les alphabets dentre et de pile
A = a, b et Z = A, B avec z
0
= A comme symbole de pile initial. Il possde
les tats Q = q
0
, q
1
, q
2
et comporte les transitions suivantes :
q
0
, A
a
q
1
, A q
2
, A
a
q
2
,
q
0
, A
b
q
1
, B q
2
, B
b
q
2
,
q
1
, A
a
q
1
, AA q
1
, A
b
q
2
, BA q
1
, A
a
q
2
, A
q
1
, B
a
q
1
, AB q
1
, B
b
q
2
, BB q
1
, B
a
q
2
, B
q
1
, A
b
q
1
, BA q
1
, A
a
q
2
, AA q
1
, A
b
q
2
, A
q
1
, B
b
q
1
, BB q
1
, B
a
q
2
, AB q
1
, B
b
q
2
, B
Cet automate pile accepte par pile vide lensemble des palindromes non vides
(cf. exemple 2.8 p. 71). Il fonctionne de la faon suivante. Dans la premire moiti
du mot, lautomate empile les lettres lues. Dans la seconde moiti du mot, il
vrie que les lues lues concident avec les lettres dpiles. Plus prcisment, les
deux transitions de q
0
q
1
remplacent le symbole de pile initial par la lettre lue.
2.6. AUTOMATES PILE 99
Tant que lautomate est dans ltat q
1
, il empile la lettre lue. Le passage de q
1
q
2
se fait soit en empilant la lettre lue pour un palinfrome de longueur paire soit en
lignorant pour un palindrome de longueur impaire. Dans ltat q
2
, lautomate
dpile et vrie que les lettres concident. Cet automate na aucun moyen de
dterminer la moiti du mot. Il est donc essentiel quil soit non dterministe.
Proposition 2.67 (quivalence des modes dacceptation). Les dirents modes
dacceptation sont quivalents dans la mesure o ils permettent tous daccepter
exactement les mmes langages (les langages algbriques).
Un des problme des automates pile est que le calcul se bloque ds que la
pile devient vide. Cette dicult peut tre contourne en utilisant des automates
fond de pile testable qui peuvent tester si le somment de pile est le dernier
symbole dans la pile. Un automate est dit fond de pile testable si son alphabet
de pile est partitionn Z = Z
0
Z
1
de sorte que le contenu de la pile de toute
conguration accessible a un symbole de Z
0
au fond de la pile et des symboles
de Z
1
au dessus, cest--dire est dans + Z

1
Z
0
. Lorsque lautomate voit un
sommet de pile de Z
0
il sait que celui-ci est le dernier symbole de la pile.
Il est possible de transformer un automate pile quelconque en un automate
fond de pile testable. Pour cela, il faut doubler la taille de lalphabet de pile en
introduisant une copie z de chaque lettre z de Z. On pose alors Z
0
= z [ z Z
et Z
1
= Z. Chaque transition p, z
y
q, h donne alors les deux transitions
p, z
y
q, h et p, z
y
q, h

si h = h

avec h

et z

Z. La premire
transition est utilise lorsque la pile contient au moins deux symboles et la
seconde lorsque z est lunique symbole dans la pile.
Preuve. Nous montrons uniquement lquivalence entre les acceptations par pile
vide et par tat dacceptation. Les autres preuves sont similaires.
Soit un automate qui accepte par pile vide. On suppose quil est fond de
pile testable avec une partition Z = Z
0
Z
1
des symboles de pile. On ajoute un
nouvel tat q
+
qui devient lunique tat nal. Ensuite, chaque transition q, z
y

, avec z Z
0
qui vide la pile est remplace par une transition q, z
y
q
+
,
qui fait passer dans ltat nal.
Soit un automate qui accepte par tat dacceptation. On suppose encore quil
est fond de pile testable avec une partition Z = Z
0
Z
1
des symboles de pile.
Il faut faire attention que certains calculs peuvent se bloquer en vidant la pile.
On ajoute deux nouveaux tats q

et q
+
et des transitions q
+
, z

q
+
, pour
z Z qui permettent de vider la pile ds que ltat q
+
est atteint. Pour chaque
transition q, z
y
q

, h o q

est nal, on ajoute une transition q, z


y
q
+
,
permettant datteindre ltat q
+
. Toute transition q, z
y
q

, avec z Z
0
qui vide la pile sans atteindre un tat nal est remplace par une transition
q, z
y
q

, z qui fait passer dans q

sans vider la pile.


Exercice 2.68. Donner un automate pile qui accepte le langage de Dyck D

n
(cf. exemple 2.8 p. 71 pour la dnition)
Solution. On construit un automate pile / qui accepte le langage de Dyck
par tat dacceptation. Lautomate / a deux tats q
0
et q
1
. Ltat q
0
est initial
et ltat q
1
est nal. Lalphabet de pile est Z = z
0
, a
1
, . . . , a
n
o z
0
est le
100 CHAPITRE 2. LANGAGES ALGBRIQUES
symbole de pile initial. Lensemble E des transitions est donn ci-dessous.
E = q
0
, z
ai
q
0
, a
i
z [ 1 i n et z Z,
q
0
, a
i
ai
q
0
, [ 1 i n,
q
0
, z
0

q
1
, .
Cet automate fonctionne de la faon suivante. Si lautomate lit a
i
, la lettre a
i
est
empil quelque soit le symbole de haut de pile. Si lautomate lit a
i
, le symbole
de haut de pile doit tre a
i
et celui-ci est dpil. Cet automate accepte aussi le
langage de Dyck par pile vide.
2.6.3 quivalence avec les grammaires
On montre dans cette partie que les automates pile sont quivalents aux
grammaires dans le sens o les langages accepts par les automates pile sont
exactement les langages engendrs par les grammaires.
Thorme 2.69 (quivalence grammaires/automates pile). Un langage L
A

est algbrique si et seulement si il existe un automate pile qui accepte L.


Preuve. On commence par montrer que pour toute grammaire G, il existe un
automate pile qui accepte les mots engendrs par G. Soit G = (A, V, P) une
grammaire telle que L = L
G
(S
0
). On suppose que toute rgle de G est soit de
la forme S w avec w V

, soit de la forme S a avec a A. Il sut


pour cela dintroduire une nouvelle variable V
a
pour chaque lettre a de A. Cette
transformation est identique la premire tape de la mise en forme normale
quadratique (cf. la preuve de la proposition 2.21).
On construit un automate pile sur lalphabet dentre A. Son alphabet de
pile est lensemble V des variables de G. Il a un unique tat q
0
. Il possde une
transition pour chaque rgle de G. Son ensemble de transitions est donn par
q
0
, S
a
q
0
, [ S a P q
0
, S

q
0
, h [ S h P.
Pour les rgles du premier ensemble, une lettre de lentre est lue et un symbole
de pile est dpil. Pour les rgles du second ensemble, aucune lettre de lentre
nest lue et un ou plusieurs symboles de piles sont empils. Il est facile de vrier
que cet automate simule les drivations gauches de la grammaire.
Lorsque la grammaire est en forme normale de Greibach, lautomate qui-
valent peut tre construit sans utiliser d-transition. On suppose que toute rgle
de S est de la forme S aw o a A et w V

. Lensemble des transitions


de lautomate est alors donn par
q
0
, S
a
q
0
, w [ S aw P.
Pour la rciproque, on utilise la mthode des triplets de Ginsburg. Soit un
langage L accept par un automate pile / acceptant par pile vide. Pour sim-
plier les notations, on suppose que chaque transition de lautomate empile au
plus deux symboles. Si cette hypothse nest pas vrie, il sut de dcomposer
les transitions qui empilent plus de symboles en plusieurs transitions. Il faut
alors ajouter quelques tats intermdiaires. On note q
0
et z
0
ltat initial et le
symbole de pile initial de lautomate /.
2.6. AUTOMATES PILE 101
Soient q et q

deux tats et z un symbole de pile de lautomate. On note L


q,q

,z
lensemble des mots f tels quil existe un calcul dtiquette f de la conguration
(q, z) la conguration (q

, ). Ceci signie que lautomate peut partir de ltat q


avec juste le symbole z dans pile, lire entirement le mot f et arriver dans
ltat q

avec la pile vide. Si un tel calcul est possible, il y a aussi un calcul


dtiquette f de la conguration (q, zw) la conguration (q

, w), pour tout


mot w sur lalphabet de pile. On a alors les galits suivantes.
L =
_
q

Q
L
q0,q

,z0
L
q,q

,z
= y [ q, z
y
q

_
q,z
y
q1,z1
yL
q1,q

,z1

_
q,z
y
q1,z1z2
yL
q1,q2,z1
L
q2,q

,z2
La premire galit traduit simplement que lautomate / accepte le langage L
par pile vide et que ltat initial et le symbole de pile initial sont respectivement
q
0
et z
0
. La seconde galit sobtient en analysant le dbut du calcul de (q, z)
(q

, ). Si la premire transition dpile z, le calcul sarrte immdiatement et le


mot f est gal ltiquette y de la transition. Si la premire transition remplace
z par z
1
, il faut alors un calcul qui dpile z
1
. Si la premire transition remplace
z par z
1
z
2
, il alors un calcul qui dpile dabord z
1
puis z
2
.
Ces galits se traduisent directement en une grammaire ayant pour variables
les triplets de le forme (q, q

, z). Il est remarquer que si lautomate ne possde


pas d-transition, alors la grammaire obtenue est en forme normale de Greibach.
Il faut remarquer que la traduction dune grammaire en un automate donne
un automate ayant un seul tat. Ceci montre que tout automate pile est en fait
quivalent un automate pile ayant un seul tat. Si de plus la grammaire est
en forme normale de Greibach, lautomate na pas d-transition. Ceci montre
que tout automate pile est quivalent un automate pile sans -transition.
Exemple 2.70. La contruction dun automate partir de la grammaire S
aSa+bSb+a+b+ pour engendrer les palindromes donne lautomate suivant.
Cet automate a comme alphabet de pile Z = S, A, B avec z
0
= S comme
symbole de pile initial. Cet automate a un seul tat q et ses transitions sont les
suivantes.
q, S

q, ASA q, S

q, A q, S

q, q, A
a
q,
q, S

q, BSB q, S

q, B q, B
b
q,
Cet automate est comparer avec lautomate de lexemple 2.66.
Exemple 2.71. La mthode des triplets applique lautomate de lexemple 2.65,
donne la grammaire R aRRR, S aRRS + aRST + aSTT + , T b
102 CHAPITRE 2. LANGAGES ALGBRIQUES
o les variables R, S, et T correspondent aux triplets (q
0
, q
0
, z), (q
0
, q
1
, z) et
(q
1
, q
1
, z). Aprs rduction et substitution de T par b, on obtient la grammaire
S aSbb + qui engendre bien le langage L
1
= a
n
b
2n
[ n 0.
2.6.4 Automates pile dterministes
La dnition dun automate pile dterministe est technique mme si lide
intuitive est relativement simple. Lintuition est qu chaque tape de calcul,
il ny a quune seule transition possible. Ceci signie deux choses. Dune part,
si une -transition est possible, aucune autre transition nest possible. Dautre
part, pour chaque lettre de lalphabet dentre, une seule transition au plus est
possible.
Dnition 2.72. Un automate pile (Q, A, Z, E, q
0
, z
0
) est dterministe si
pour toute paire (p, z) de QZ,
soit il existe une unique transition de la forme p, z

q, h et il nexiste
aucune transition de la forme p, z
a
q, h pour a A,
soit il nexiste pas de transition de la forme p, z

q, h et pour chaque
lettre a A, il existe au plus une transition de la forme p, z
a
q, h.
Exemple 2.73. Lautomate de lexemple 2.65 nest pas dterministe. Pour la
paire (q
0
, z), cet automate possde une -transition q
0
, z

q
1
, et une transition
q
0
, z
a
q
0
, zzz. Le langage L
1
= a
n
b
2n
[ n 0 est accept par pile vide par
lautomate pile dterministe ayant les tats Q = q
0
, q
1
, q
2
et comportant les
quatre transitions suivantes :
q
0
, z
a
q
1
, zz q
1
, z
a
q
1
, zzz q
1
, z
b
q
2
, q
2
, z
b
q
2
, .
Dans le cas des automates pile dterministes, les dirents modes daccep-
tation ne sont plus quivalents. Lacceptation par pile vide permet seulement
daccepter des langages prxes, cest--dire des langages tels que deux mots du
langage ne sont jamais prxe lun de lautre.
Un langage algbrique est dit dterministe sil est accept par un automate
pile dterministe. Lintrt de cette classe de langages est sa clture par com-
plmentation qui montre par ailleurs que cette classe est une sous-classe stricte
des langages algbriques (cf. corollaire 2.46 p. 88).
Proposition 2.74. Le complmentaire dun langage algbrique dterministe est
un langage algbrique dterministe.
Preuve. La preuve de ce thorme nest pas trs dicile mais elle recle quelques
dicults techniques que nous allons expliciter et rsoudre.
La premire dicult est que lautomate nest pas ncessairement complet.
Il peut se bloquer au cours de la lecture dun mot pour deux raisons. Dune
part, il peut arriver quaucune transition ne puisse tre eectue. Il faut alors
ajouter des transitions qui conduisent un nouvel tat puits. Lautomate peut
aussi se bloquer car la pile se vide avant la lecture complte du mot. Il faut alors
transformer lautomate en un automate fond de pile testable puis remplacer
les transitions qui vident las pile par des transitions qui conduisent ltat puits.
La seconde dicult est que le calcul sur un mot dentre nest pas unique
bien que lautomate soit dterministe. Aprs la lecture de la dernire lettre du
mot dentre, lautomate peut poursuivre le calcul en utilisant des -transitions.
2.7. COMPLMENTS 103
Une autre proprit importante des langages dterministe est la suivante.
Proposition 2.75. Tout langage algbrique dterministe est non ambigu.
Preuve. La construction par les triplets de Ginsburg dune grammaire quiva-
lente automate produit une grammaire non ambigu si lautomate de dpart
est dterministe. En eet, les arbres de drivation de cette grammaire sont en
correspondance avec les calculs de lautomate. Il sensuit que si lautomate est
dterministe, la grammaire est non ambigu.
La rciproque de la proposition prcdente est fausse comme le montre
lexemple suivant. Cet exemple montre galement que la classe des langages
dterministes nest pas ferme pour lunion.
Exemple 2.76. Le langage L = a
n
b
n
[ n 0 a
n
b
2n
[ n 0 est non
ambigu. Par contre, il nest pas dterministe. Mme si lide intuitive de ce fait
est relativement claire, la preuve en est particulirement technique.
2.7 Complments
Cette partie est consacre quelques complments sur le groupe libre et les
contenus de pile des automates. Dans les deux cas, lapproche est base sur des
rcritures. On commence donc par rappeler quelques rsultats trs classiques
de rcriture.
2.7.1 Rcriture
On rappelle dans cette partie quelques rsultats sur la terminaison et la
conuence des relations qui seront utiliss par la suite. Pour une relation binaire
note , on note

la clture rexive et transitive de la relation . On dit
quun lment x se rduit en y si x

y.
Un lment x est dit irrductible ou en forme normale sil nexiste pas dl-
ment y tel que x y. Une relation est noethrienne sil nexiste pas de suite
innie (x
n
)
n0
telle que x
0
x
1
x
2
. Lintrt des relations noeth-
riennes est que tout lment se rduit en un lment en forme normale.
Proposition 2.77. Si la relation est noethrienne, tout lment se rduit en
un lment en forme normale.
x
y
y

z


Fig. 2.7 Proprit de conuence
Une relation est conuente si pour tous lments x, y et y

tels que x

y
et x

y

, il existe un lment z tel que y



z et y


z. Cette proprit est
reprsente par la gure 2.7. Elle aussi appele proprit diamant. La conuence
104 CHAPITRE 2. LANGAGES ALGBRIQUES
est parfois appele proprit de Church-Rosser par rfrence la conuence de
la -rduction du -calcul qui a t prouve par Church et Rosser. Lintrt
principal de la conuence est quelle garantit lunicit de la forme normale.
Proposition 2.78. Si la relation est conuente, tout lment se rduit en
au plus un lment en forme normale.
x
y
y

x
y
y

z

Fig. 2.8 Conuences forte et locale
La conuence est souvent dicile vrier. Pour contourner cette dicult,
on introduit deux proprits plus faciles vrier. Une relation est fortement
conuente si pour tous lments x, y et y

tels que x y et x y

, il existe
un lment z tel que y = z ou y z et y


z. Une relation est localement
conuente si pour tous lments x, y et y

tels que x y et x y

, il existe
un lment z tel que y

z et y


z. Les proprits de conuence forte et de
conuence locale sont reprsentes la gure 2.8. La terminologie est cohrente
car la conuence forte implique bien la conuence.
Proposition 2.79. Toute relation fortement conuente est conuente.
Preuve. Soient trois lments x, y et y

tels que x

y et x

y

. Par dnition,
il existe deux suites y
0
, . . . , y
m
et y

0
, . . . , y

n
dlments telles que y
0
= y

0
= x,
y
m
= y, y

n
= y

, y
i
y
i+1
pour 0 i m1 et y

i
y

i+1
pour 0 i n1.
On montre lexistence de z tel que y

z et y

z par rcurrence sur n.
Si n = 0, le rsultat est trivial puisque y

= x et que z = y convient. On
suppose maintenant que n 1. On dnit par rcurrence une suite dlments
z
0
, . . . , z
m
de la manire suivante. On pose z
0
= y

1
. On suppose avoir dni z
i
tel que y
i
z
i
. On applique alors la conuente locale pour trouver z
i+1
tel que
y
i+1
z
i+1
et z
i

z
i+1
. On peut alors appliquer lhypothse de rcurrence
y

1
puisque y

1
se rduit en n 1 tapes y

et en certain nombre dtapes


z
m
On trouve alors z tel que z
m

z et y


z et donc tel que y

z et
y

z.
x
x

y
y

Fig. 2.9 Relation localement conuente mais non conuente


La conuence locale nimplique pas la conuence dans le cas gnral. La
relation reprsente la gure 2.9 est localement conuente mais elle nest pas
conuente. Par contre, elle nest pas noethrienne puisque quon a la suite de
rductions x x

x . Le rsultat suivant est souvent appel lemme de


Newman.
2.7. COMPLMENTS 105
Proposition 2.80 (Newman). Toute relation noethrienne et localement conuente
est conuente.
La conuence dune relation de rcriture est souvent une faon dobtenir
une forme normale unique. Dans ce cas, la rcriture doit aussi tre noethrienne
pour assurer lexistence de la forme normale. Lhypothse du lemme prcdent
est alors naturelle et peu contraignante.
Preuve. Soit une relation noethrienne et localement conuente. Puisque
est noethrienne, tout lment se rduit au moins un lment en forme
normale. On va montrer que tout lment se rduit en fait un seul lment en
forme normale. Cela sut pour prouver la conuence de la relation . Si les
trois lments x, y, et y

vrient x

y et x

y

, il existe des lments z et


z

en forme normale tels que y



z et y

z

. On dduit des relations x



z
et z

z

que z = z

.
Supposons quil existe deux lments en forme normale z et z

tels que x

z
et x

z

. On construit par rcurrence une suite dlments (x


n
)
n0
tels que
x
0
x
1
. On pose x
0
= x et on suppose avoir dni x
i
tel quil existe
deux lments z
i
et z

i
en forme normale tels que x
i

z
i
et x
i

i
. Il existe
alors des lments y et y

tels que x
i
y

z
i
et x
i
y

i
. Si y = y, on
choisit x
i+1
= y. Sinon, on applique la conuence locale pour trouver z en forme
normale tel que y

z et y


z. Si z ,= z
i
, on choisit x
i+1
= y, z
i+1
= z

i+1
et
z

i+1
= z. Sinon on choisit x
i+1
= y

, z
i+1
= z et z

i+1
= z

i
.
2.7.2 Contenus de pile
Nous allons utiliser les rsultats sur les relations conuentes pour montrer
que les contenus de pile des congurations accessibles dun automate pile
forment un langage rationnel. Soit un automate pile (cf. dnition 2.63) dal-
phabet dentre A, dalphabet de pile Z, dtat initial q
0
et de symbole de pile
initial z
0
. On dnit le langage H de la manire suivante.
H = h Z

[ f A

q Q (q
0
, z
0
)
f
(q, h)
Thorme 2.81. Pour tout automate pile, le langage H est rationnel.
Monode polycyclique
Soit A
n
lalphabet a
1
, . . . , a
n
, a
1
, . . . , a
n
. On dnit la relation sur A

n
de la manire suivante. Deux mots w et w

vrient w w

sil existe deux mots


u et v sur A
n
et un indice i tel que w = ua
i
a
i
v et w

= uv. La relation est


noethrienne puisque w w

implique [w[

= [w[ 2. On vrie aussi facilement


quelle est fortement conuente et donc conuente daprs la proposition 2.79.
On note (w) lunique mot irrductible tel que w

(w). On dnit alors la
relation dquivalence sur A

n
par w w

si (w) = (w

). Cette relation est


en fait une congruence sur A

n
. Le monode polycyclique engendr par A
n
est
alors le monode quotient A

n
/.
Le lemme suivant tablit un lien entre le monode polycyclique et le langage
de Dyck (cf. exemple 2.8 p. 71).
Lemme 2.82. Le langage w [ (w) = est gal au langage de Dyck D

n
sur
n paires de parenthses.
106 CHAPITRE 2. LANGAGES ALGBRIQUES
Preuve. On montre par rcurrence sur la longueur de la drivation que tout mot
de langage se rduit au mot vide. Inversement, on montre par rcurrence sur
la longueur de la rduction que tout mot qui se rduit au mot vide est dans le
langage de Dyck.
On dnit la substitution de A

n
dans A

n
par (a) = D

n
aD

n
pour toute
lettre a de A
n
. Le lemme suivant tablit la proprit cl de cette substitution.
Lemme 2.83. Pour tout mot w A

n
, on a (w) = w

[ w


w.
Preuve. Pour tout mot w = w
1
w
k
, on a (w) = D

n
w
1
D

n
w
2
D

n
w
k
D

n
. Il
est alors vident daprs le lemme prcdent que tout mot w

de (w) vrie
w


w. Inversement, on prouve par rcurrence sur la longueur de la rduction
de w

w que tout mot qui vrie w


w est dans (w).
Corollaire 2.84. Pour tout langage rationnel K de A

n
, le langage (K) =
(w) [ w K est rationnel.
Preuve. Le langage L = w

[ w K w

w

est gal
1
(K) est
il est donc rationnel daprs la proposition 1.140. Le langage (K) est gal
L

n
i=1
A

n
a
i
a
i
A

n
est il est donc aussi rationnel.
Nous sommes maintenant en mesure dtablir le thorme 2.81.
Preuve du thorme 2.81. Pour un mot w = w
1
w
n
, on note w le mot miroir
w
n
w
1
obtenu en renversant le mot w. On montre que le langage miroir

H =

h [ h H est rationnel, ce qui implique immdiatement que H est aussi


rationnel.
Soit / un automate pile. Quitte renommer les symboles de pile, on
suppose que lalphabet de pile de / est a
1
, . . . , a
n
. Soit E lensemble des
transitions de /. On dnit un morphisme de E

dans A

n
en posant () = z

h
pour toute transition gale q, z
y
q

, h. Deux transitions et

de /
sont dites conscutives si ltat darrive de est ltat de dpart de

. Il faut
bien noter que deux transitions conscutives ne peuvent pas ncessairement tre
enchanes dans un calcul. En eet, le dernier symbole de pile empil par nest
pas le mme que le symbole de pile dpil par

. Le fait quelles puissent tre


enchanes dpend mme du contenu de pile dans le cas o le mot empil par
est vide. On note K lensemble des suites conscutives de transitions de /. Cet
ensemble est bien sr rationnel. On a alors lgalit

H = (z
0
(K)) a
1
, . . . , a
n

qui montre, grce au corollaire prcdent, que



H est rationnel.
2.7.3 Groupe libre
Soit A
n
lalphabet a
1
, . . . , a
n
, a
1
, . . . , a
n
. La fonction a a est tendue
tout A
n
en posant

a
i
= a
i
pour tout 1 i n. Elle devient alors une involution
sur A
n
.
On dnit la relation sur A

n
de la manire suivante. Deux mots w et w

vrient w w

sil existe deux mots u et v sur A


n
et une lettre a de A
n
tel que
w = ua av et w

= uv. La relation est noethrienne puisque w w

implique
[w[

= [w[ 2. On vrie aussi facilement quelle est fortement conuente et


2.7. COMPLMENTS 107
donc conuente daprs la proposition 2.79. Lensemble des mots irrductibles
est I = A

n
A

n
(

aAn
a a)A

n
. On note (w) lunique mot irrductible tel que
w

(w). On dnit alors la relation dquivalence sur A

n
par w w

si (w) = (w

). Cette relation est en fait une congruence sur A

n
. Le groupe
libre engendr par A
n
, not F(A
n
), est alors le monode quotient A

n
/. Comme
chaque classe dquivalence de contient un seul mot irrductible, on peut iden-
tier les lments du F(A
n
) avec lensemble I des mots irrductibles sur A
n
.
Le produit dans F(A
n
) est alors dni par u, v (uv) pour deux mots irr-
ductibles u et v. Pour un lment x de F(A
n
), cest--dire une classe de , on
note (x) lunique mot de x qui est irrductible. Lapplication est linjection
canonique de F(A
n
) dans A

n
. Pour un ensemble X F(A
n
), on note galement
(X) lensemble (x) [ x X.
La terminologie est justie par la proprit suivante. Pour tout mot w =
w
1
w
k
, le mot w
1
gal w
k
w
1
est un inverse de w dans A

n
/. On vrie
en eet que (ww
1
) = (w
1
w) = . Le monode A

n
/ est en fait un groupe.
Le corollaire 2.84 reste vrai dans le cas de la rduction qui vient dtre
introduite pour dnir le groupe libre. Il en dcoule le rsultat classique suivant.
Thorme 2.85 (Benois 1969). Une partie X F(A
n
) est une partie ration-
nelle de F(A
n
) si et seulement si (X) est une partie rationnelle de A

n
.
Le corollaire suivant dcoule immdiatement du thorme de Benois.
Corollaire 2.86. La famille des parties rationnelles de F(A
n
) est close pour
les opration boolennes (union, intersection et complmentation).
Les parties reconnaissables du groupe libre sont les unions nies de classes
dun sous-groupe dindice ni. En eet, si est un morphisme de monode
de A

n
/ dans un monode ni M, alors M est ncessairement un groupe et
est en fait un morphisme de groupe.
Sous-groupes rationnels
Lorsque le monode sous-jacent est un groupe G, les sous-groupes rationnels
de G jouent un rle important car ils ont la caractrisation suivante.
Proposition 2.87. Un sous-groupe H dun groupe G est une partie rationnelle
de G si et seulement si il est niment engendr.
Preuve. Si le sous-groupe H est engendr par lensemble ni g
1
, . . . , g
k
, alors
il est gal ltoile K

de lensemble K = g
1
, . . . , g
k
, g
1
1
, . . . , g
1
k
et il est
donc rationnel.
Rciproquement, soit / = (Q, G, E, I, F) un automate qui accepte le sous-
groupe H. Un chemin dans / est dit simple sil ne repasse pas deux fois par le
mme tat hormis peut-tre pour ltat de dpart et ltat darrive qui peuvent
concider. Un chemin est dit presque simple sil se dcompose p
u
q
v
q
w
r
o les deux chemins p
u
q
w
r et q
v
q sont simples. Lensemble des calculs
presque simples est ni puisquun tel chemin est de longueur au plus 2[Q[. On
note K lensemble ni des tiquettes des chemins russis presque simples. On
montre alors que H est engendr par K. Il est clair que K H. Supposons
par labsurde que K nengendre pas H et soit un chemin russi c le plus court
possible tel que son tiquette h H nest pas dans le sous-groupe engendr
108 CHAPITRE 2. LANGAGES ALGBRIQUES
par K. Puisque le chemin c nest pas simple (car sinon h K), il se dcompose
p
u
q
v
q
w
r o le calcul q
v
q
w
r est presque simple. Il existe alors un
calcul i
u

q tel que le calcul i


u

q
v
q
w
r soit russi et presque simple. On
alors les galits h = uvw = gw(u

w)
1
u

vw qui montrent que h appartient au


sous-groupe engendr par K.
Dans le cas du groupe libre, la proposition prcdente et le corollaire du
thorme de Benoit permettent de retrouver un rsultat trs classique.
Thorme 2.88 (Howson). Lintersection de deux sous-groupes niment en-
gendrs dun groupe libre F(A
n
) est encore un sous-groupe niment engendr.
Deuxime partie
Calculabilit et complexit
109
Chapitre 3
Calculabilit
Lobjectif de ce chapitre est de dnir la notion de calculable et de montrer
que les rponses certaines questions ne sont pas calculables. Cette notion va
tre introduite par lintermdiaire des machines de Turing qui fournissent un
modle de calcul abstrait pas trop loign du fonctionnement dun ordinateur.
Il existe dautres modles de calcul comme les fonctions rcursives ou le -calcul.
3.1 Prliminaires
Les graphes et la logique fournissent de nombreux problmes intressants
qui vont tre abords tout au long des deux prochains chapitres. Lobjectif
de cette petite partie est de rappeler les dnitions lmentaires et de xer la
terminologie.
3.1.1 Graphes
Le but de cette partie est de regrouper dnitions de plusieurs notions concer-
nant les graphes. Ces direntes notions sont utilises tout au long de cet ou-
vrage. Le vocabulaire des graphes savre en eet trs pratique pour noncer
certaines proprits. Les automates qui sont un des objets centraux du premier
chapitre sont trs proches des graphes dans la mesure o il peuvent vus comme
des graphes enrichis. Les graphes fournissent galement beaucoup de problmes
fondamentaux dans le cadre de la calculabilit et de la complexit qui seront
abordes aux troisime et quatrime chapitre.
On appelle graphe orient un couple (V, E) o V est un ensemble quelconque
de sommets et E V V est lensemble des artes. Lensemble E est en
fait une relation binaire sur lensemble des sommets. Un graphe est une faon
commode de manipuler et visualiser une relation binaire. Un graphe peut aussi
tre vu comme un automate sans tats initiaux et sans tats naux et dont
les transitions nont pas dtiquette. Une arte (u, v) est souvent note u v
comme une transition dautomate. Les sommets u et v sont appels sommet de
dpart et sommet darrive de cette arte.
Exemple 3.1. Soit le graphe G = (V, E) donn par V = 0, 1, 2, 3 et E =
(0, 1), (1, 2), (1, 3), (2, 3), (3, 0), (3, 1). Ce graphe est reprsent la gure 3.1.
111
112 CHAPITRE 3. CALCULABILIT
0 1
2 3
Fig. 3.1 Un exemple de graphe 4 sommets
Deux artes (u, v) et (u

, v

) sont dites conscutives si v = u

. Un chemin
est une une suite dartes conscutives qui est note v
0
v
1
v
n
. La
longueur du chemin est pas dnition le nombre dartes de la suite. Les sommets
v
0
et v
n
sont appels sommet de dpart et sommet darrive du chemin. Il est
souvent pratique didentier une arte avec un chemin de longueur 1. De mme,
il est souvent commode de considrer que pour chaque sommet v, il existe un
chemin de longueur 0 ayant v comme sommet de dpart et darrive. Un cycle,
appel aussi circuit, est un chemin dont le sommet de dpart est gal au sommet
darrive. Un graphe est dit acyclique sil ne contient pas de cycle autre que les
cycles triviaux de longueur 0.
Un chemin est hamiltonien sil passe une fois et une seule par chaque sommet
du graphe. On dit quun cycle est hamiltonien sil passe une fois et une seule par
chaque sommet lexception du sommet de dpart qui est aussi le sommet dar-
rive. La longueur dun cycle hamiltonien est le nombre de sommets du graphe.
Le cycle 0 1 2 3 0 du graphe de la gure 3.1 est hamiltonien. Le
problme de savoir si un graphe possde un chemin hamiltonien est un problme
dicile comme nous le montrerons au dernier chapitre.
Un chemin est eulrien sil utilise une fois et une seule chaque arte du
graphe. La longueur dun tel chemin est donc le nombre darte du graphe. Le
cycle 0 1 3 1 2 3 0 du graphe de la gure 3.1 est eulrien.
Un graphe possde un cycle eulrien si et seulement si pour chaque sommet v,
le nombre darte ayant v comme sommet darrive est gal au nombre darte
ayant v comme sommet de dpart. Cette condition est videmment ncessaire
mais elle aussi savre susante de faon assez surprenante. Cette caractrisation
due Euler permet de vrier en temps linaire si un graphe donn possde un
cycle eulrien. Malgr leur apparence supercielle, les deux problmes de savoir
si un graphe possde un chemin hamiltonien et un chemin eulrien sont en fait
de dicults trs direntes.
Une clique dun graphe G = (V, E) est une sous-ensemble C V de sommets
tel que pour tout sommets dirents u et v de C, larte (u, v) appartient E.
Le sous-ensemble 1, 3 est une clique du graphe de la gure 3.1.
Pour un graphe G = (V, E), on dnit une relation dquivalence sur V de
la faon suivante. Deux sommets vrient v v

sil existe dans G un chemin


de v v

et un chemin de v

v. Les classes dquivalence de cette relation


dquivalence sont appeles composante fortement connexe de G. Le graphe
de la gure 3.1 possde une seule composante fortement connexe. Il existe un
algorithme en temps linaire qui calcule les composantes fortement connexes
dun graphe.
3.2. INTRODUCTION 113
3.1.2 Logique propositionnelle
On rappelle ici quelques notions lmentaires de logique propositionnelle. Il
sagit juste de donner quelques dnitions trs simples et de xer le vocabulaire
et les notations.
Soit B = 0, 1 lensemble des valeurs boolennes. Trois oprations appeles
ngation, et logique et ou logique et notes , et sont dnies sur cet en-
semble. La ngation est une opration unaire. Elle associe chaque valeur b de B
la valeur 1 b. Les et et ou logiques sont des oprations binaires qui associent
deux valeurs b et b

de B les valeurs min(b, b

) et max(b, b

). Les tables de valeurs


de ces trois oprations sont rappeles ci-dessous.

0 1
1 0
0 1
0 0 0
1 0 1
0 1
0 0 1
1 1 1
On suppose x un ensemble 1 de variables. Les formules de la logique propo-
sitionnelle sont les formules construites partir des variables et des constantes
0 et 1 avec la ngation et les deux connecteurs et .
Une aectation (des variables) est une application v de lensemble 1 des
variables dans B = 0, 1 qui donne chaque variable x une valeur de vrit
dans B. Une aectation setend naturellement aux formules de la logique prop-
positionnelle en posant v() = v(), v( ) = v() v() et v() ) =
v() v(). Une telle extension est en fait lextension naturelle dune applica-
tion de 1 dans B un morphisme dalgbre de Boole de lensemble des formules
dans B.
On appelle littral une formule gale une variable x ou la ngation x
dune variable. Le littral x est souvent note x. Pour un littral l, on note

l le littral x si l = x et le littral x si l = x. Une formule est dite en forme


normale conjonctive si elle est une conjonction =
1

n
o chaque
formule
i
est une disjonction l
i,1
l
i,ni
de littraux. Les formules
i
sont
appeles les clauses de la formule . Les formules ayant au plus 2 ou 3 littraux
dans chaque clause jouent un rle particulier en complexit. Il existe aussi une
forme normale disjonctive obtenue en changeant les rles des conjonctions et
disjonctions mais celle-ci nest pas utilise dans cet ouvrage.
Une formule est dite satisable sil existe une aectation v des variables
telle que v() = 1.
3.2 Introduction
On commence par dnir la notion de problme puis de codage qui permet
de passer dun problme un langage. On introduit ensuite les machines de
Turing qui nous serviront de modle de calcul.
3.2.1 Notion de problme
On commence par dnir un problme qui xe un ensemble de questions
appeles instances du problme ainsi que le sous-ensemble dse questions ayant
une rponse positive. On sintresse des problmes de dcisions. Ce sont par
114 CHAPITRE 3. CALCULABILIT
dnition les problmes pour lesquels les rponses aux questions sont oui ou
non.
Dnition 3.2 (Problme de dcision). Un problme de dcision est la donne
dun ensemble E dinstances et dun sous-ensemble P E des instances dites
positives pour lesquelles la rponse est oui.
Exemple 3.3. On peut considrer les problmes suivants :
Nombres premiers : lensemble E des instances est lensemble N des entiers
naturels et P = n [ n premier.
Automates (acceptance) : E = (/, w) [ / automate et w mot, P =
(/, w) [ / accepte w.
Graphes connexes : E = G [ G graphe ni, P = G [ G est connexe.
Grammaires ambigus : E = G [ G grammaire, P = G [ G ambigu
ou encore P

= G [ L
G
(S) ambigu.
3.2.2 Notion de codage
Les machines de Turing que nous allons introduire pour dnir la notion de
calculabilit sont semblables aux automates. Elles travaillent sur des mots dun
alphabet x. Pour que les instances dun problme puissent tre donnes en
entre ces machines, il est indispensable que ces instances soient reprsentes
par des mots. La mme problmatique se pose en programmation. Tous les
objets manipuls par un programme doivent avoir une reprsentation interne
dans lordinateur. Il sagit donc davoir une reprsentation sous forme de mots
des objets considrs.
La faon dont est donn un objet peut avoir une incidence sur la dicult de
rpondre une question sur cet objet. Un entier peut par exemple tre fourni
de plusieurs faons direntes. Il peu tre donn par son criture en base 10
mais il peut aussi tre fourni par la liste de ses facteurs premiers crits eux-
mmes en base 10. La question de savoir si cet entier est premier ou non est
trs dirente selon la manire dont il est donn. Elle requiert un certain travail
dans le premier cas alors quelle est relativement triviale dans le second cas.
Pour viter ce genre de problme lis au codage, on impose que le codage
soir naturel mme si cette notion nest pas formellement dnie. Cest en fait
une question de bon sens.
Dnition 3.4 (Langage dun problme). Pour associer un langage un pro-
blme, on utilise un codage qui est une fonction naturelle injective de E dans

. Le codage de x E est not x). Le langage associ un problme P est


lensemble L
P
= x) [ x P des codages des instances positives.
Exemple 3.5. Quelques exemples de codages.
Entiers. On peut prendre pour n) lcriture en base 10 ou en base 2 de n ou
mme lcriture en base 1 o le codage de n est le mot 1
n
sur lalphabet
= 1.
Graphes. On peut adopter le codage suivant sur lalphabet forms des
chires 0 et 1 et des parenthses ( et ) et de la virgule ,. Soit G = (V, E)
un graphe ni. On associe un numro entre 0 et [V [ 1 chaque som-
met de V . Le codage v) dun sommet v est lcriture binaire du nu-
mro de v. Le codage V ) de lensemble V est form par les codages
3.2. INTRODUCTION 115
des sommets spars par des virgules et entours et par des parenthses.
Chaque arte (u, v) est code par le mot (u), v)) sur et le codage
E) est aussi form par les codages des artes spars par des virgules
et entours et par des parenthses. Le codage du graphe G est nale-
ment le mot (V ), E)). Le codage du graphe de la gure 3.1 est le mot
((0, 1, 10, 11), ((0, 1), (1, 10), (1, 11), (10, 11), (11, 0), (11, 1), (11, 10))).
3.2.3 Machines de Turing
Introduction
Une machine de Turing se compose dune partie de contrle et dune bande
innie sur laquelle se trouvent crits des symboles. La partie de contrle est
constitue dun nombre ni dtats possibles et de transitions qui rgissent les
calculs de la machine. Les symboles de la bandes sont lus et crits par linter-
mdiaire dune tte de lecture/criture. Dans la suite, cette tte est simplement
appele tte de lecture mme si elle permet de lire et dcrire.
Contrle
a b B A b a b b b B A a A B # # # #
Fig. 3.2 Machine de Turing
Les machines de Turing sont une abstraction des ordinateurs. La partie de
contrle reprsente le microprocesseur. Un lment essentiel est que le nombre
dtats est ni. Ceci prend en compte que les microprocesseurs possdent un
nombre dtermin de registres dune taille xe et que le nombre de congurations
possibles est ni. La bande reprsente la mmoire de lordinateur. Ceci comprend
la mmoire centrale ainsi que les mmoires externes telles les disques durs. La
tte de lecture reprsente la bus qui relie le microprocesseur la mmoire.
Contrairement un ordinateur, la mmoire dune machine de Turing est innie.
Ceci prend en compte quon peut ajouter des disques durs un ordinateur de
faon (presque) illimite. Une autre dirence entre une machine de Turing et
un ordinateur est que lordinateur peut accder la mmoire de manire directe
(appele aussi alatoire) alors que la tte de lecture de la machine de Turing se
dplace que dune position chaque opration.
Le contrle de la machine est constitu dun nombre ni dtats q
0
, . . . , q
n
.
chaque instant, la machine se trouve dans un de ces tats. Au dpart, la machine
se trouve dans ltat q
0
quon appelle tat initial. Le calcul dune machine de
Turing est form dune suite dtapes de calcul qui sont eectues par la machine.
Chaque tape consiste changer ltat de contrle, crire un symbole sous la
tte de lecture et dplacer la tte de lecture. Les tapes de calcul possibles sont
dcrites par les transitions de la machine. Les transitions constituent en quelque
sorte le programme de la machine.
116 CHAPITRE 3. CALCULABILIT
Dnition
Nous donnons maintenant la dnition prcise dune machine de Turing. De
manire formelle,
Dnition 3.6. Une machine de Turing /est un septuplet (Q, , , E, q
0
, F, #)
o
Q = q
0
, . . . , q
n
est un ensemble ni dtats de contrle.
est lalphabet dentre. Cest un ensemble ni de symboles qui ne contient
pas le symbole blanc #. Cet alphabet est utilis pour crire la donne
initiale sur la bande.
est lalphabet de bande. Cest un ensemble ni qui comprend tous les
symboles qui peuvent tre crits sur la bande. Ceci inclut bien sr lalpha-
bet dentre et le symbole blanc #.
E est un ensemble ni de transitions de la forme (p, a, q, b, x) o p et q
sont des tats, a et b sont des symboles de bande et x est un lment de
, . Une transition (p, a, q, b, x) est aussi note p, a q, b, x.
q
0
Q est ltat initial dans lequel se trouve machine au dbut dun calcul.
F est lensemble des tats naux appels aussi tats dacceptation.
# est le symbole blanc qui, au dpart, remplit toutes les positions de la
bande autres que celles contenant la donne initiale.
Une machine de Turing est dterministe si pour tout tat p et tout symbole a,
il existe au plus une transition de la forme p, a q, b, x. Lorsque la machine est
dterministe, lensemble E de transitions est aussi appel fonction de transition
et est not . La fonction associe chaque paire (p, a) lunique triplet (q, b, x),
sil existe, tel que p, a q, b, x soit une transition. Lorsque la machine nest pas
dterministe, lensemble E peut encore tre vu comme une fonction . Dans ce
cas, la fonction associe chaque paire (p, a) lensemble des triplets (q, b, x)
tels que p, a q, b, x soit une transition.
0 1
2 3 4
5
A, A,
a, #,
A, A,
a, a,
#, #,
A, A,
a, A,
#, #,
A, A,
a, a,
a, a,
A, A,
#, #,
Fig. 3.3 Un exemple de machine de Turing
3.2. INTRODUCTION 117
Exemple 3.7. La machine reprsente la gure 3.3 accepte les mots sur lal-
phabet = a dont la longueur est une puissance de 2. Le principe gnral de
cette machine est de remplacer un symbole a sur 2 par A ou # par des parcours
successifs de la bande. Elle accepte lorsquil ne reste plus quun seul a sur la
bande.
0
1
2
3
4
X, X,
a, #,
b, #,
#, #,
X, X,
a, a,
b, X,
X, X,
b, b,
a, X,
X, X,
a, a,
b, b,
#, #,
Fig. 3.4 Un autre exemple de machine de Turing
Exemple 3.8. La machine reprsente la gure 3.4 accepte lensemble w [
[w[
a
= [w[
b
des mots sur lalphabet = a, b ayant le mme nombre doccur-
rences de a et de b. Une machine deux bandes est donne pour ce langage
lexemple 3.16.
Congurations et calculs
Le principe global de fonctionnement dune machine de Turing est le suivant.
Une entre, cest--dire un mot ni sur lalphabet dentre, est crit sur la bande
de la machine. Le reste de la bande est rempli avec le symbole blanc. La tte de
lecture est place sur le premier symbole du mot dentre. Ensuite, la machine
commence son calcul jusqu arriver ventuellement dans un tat o elle accepte
lentre.
Pour dcrire le fonctionnement prcis dune machine de Turing, il est nces-
saire dintroduire la notion de conguration. Une conguration dune machine
de Turing est ltat global de la machine un instant donn. Elle comprend
1. ltat de contrle qui est un lment de Q,
2. le contenu de la bande,
3. la position de la tte de lecture sur la bande.
Si la machine se trouve dans un tat q, la conguration est crite uqv o
u est le contenu de la bande (strictement) gauche de la tte de lecture et v
est le contenu de la tte droite de la tte de lecture (cf. la gure ci-dessous).
Le symbole sous la tte de lecture est donc le premier symbole de v. Quand
on dcrit une conguration de la machine, les symboles blancs qui se trouvent
dans la partie innie droite de la bande sont omis. Ceci permet de dcrire une
conguration de faon nie. Si par exemple, la machine de la gure 3.5 se trouve
dans ltat q, sa conguration est abBAbabbqbBAaAB parce que le contenu de
118 CHAPITRE 3. CALCULABILIT
la bande avant la tte de lecture est abBAbabb et que le contenu aprs la tte
de lecture est bBAaAB suivi de symboles blancs. Tous les symboles # droite
sont implicites et ne sont pas crits.
tat q
a b B A b a b b b B A a A B # # # #
. .
u
. .
v
Fig. 3.5 Conguration abBAbabbqbBAaAB
Au dpart, la bande contient la donne initiale et la tte de lecture se trouve
sur la premire position de la bande. La conguration initiale scrit donc q
0
w
o q
0
est ltat initial et w est la donne initiale.
Un calcul dune machine de Turing se dcompose en tapes. Une tape dun
calcul consiste passer dune conguration une autre conguration en appli-
quant une des transitions de lensemble E. Une tape de calcul comprend les
trois actions suivantes :
1. changer ltat de contrle,
2. crire un symbole la place du symbole sous la tte de lecture,
3. dplacer la tte de lecture dune position vers la gauche ou la droite.
Une transition de la forme p, a q, b, x peut uniquement tre applique
si la machine se trouve dans ltat p et si le symbole sous la tte de lecture
est a. Aprs application de cette transition, la machine se trouve dans ltat q,
le symbole a est remplac sur la bande par b et la tte de lecture se dplace
dune position vers la gauche si x = ou dune position vers la droite si x = .
Dnition 3.9 (tape de calcul). Une tape de calcul est une paire de con-
guration (C, C

) note C C

telle que :
soit C = ucpav et C

= uqcbv et p, a q, b, est une transition


soit C = upav et C

= ubqv et p, a q, b, est une transition.


La prsence de symboles blancs est implicite la n de dune conguration.
Dans la dnition prcdente, on sautorise ajouter un symbole blanc la
place de v si celui-ci est vide an de pouvoir eectuer une transition de la forme
p, # q, b, x.
Il faut noter quune transition de la forme p, a q, b, (avec dplacement
de la tte de lecture vers la gauche) peut uniquement tre applique si la tte
de lecture ne se trouve pas sur le premier symbole de la bande.
Dnition 3.10 (Calcul). Un calcul est une suite de congurations successives
C
0
C
1
C
k
. Un calcul est dit acceptant si la conguration C
0
est
initiale, cest--dire C
0
= q
0
w pour w

et si la conguration C
k
est nale,
cest--dire C
k
= uqv avec q F.
Les congurations de la forme uqv avec q F sont aussi appeles congura-
tions acceptantes car un calcul accepte ds quil atteint une telle conguration.
3.2. INTRODUCTION 119
Rien nempche une machine de Turing de continuer un calcul aprs une con-
guration acceptante mais cest dun intrt limit puisque le mot w est accept
ds quil existe au moins un calcul acceptant.
Utilisation
Il y a deux modes dutilisation des machines de Turing. Le premier mode est
dutiliser une machine comme accepteur et le second est dutiliser une machine
comme un calculateur.
Dans le mode accepteur, on fournit un mot dentre la machine et celle-ci
rpond par oui ou par non. Quand la machine rpond oui, on dit que le machine
accepte le mot. La machine dnit alors lensemble des mots qui sont accepts.
Par convention, on dit que la machine accepte un mot w sil existe au moins
un calcul acceptant avec w comme entre, cest--dire qui commence avec la
conguration q
0
w. Llment important de cette dnition est quun seul calcul
acceptant sut pour que la machine accepte mme si dautres calculs bloquent
ou natteignent jamais une conguration acceptante.
Dans le mode calculateur, on fournit un mot dentre la machine et celle-ci
retourne un ou plusieurs mots de sortie. Quand la machine ne donne toujours
quun seul mot de sortie, elle calcule une fonction qui associe le mot de sortie au
mot dentre. Les mots de sortie sont par convention les contenus de la bande
des dernires congurations des calculs acceptants. On met donc le mot dentre
sur la bande, la machine eectue un calcul jusqu ce quelle atteigne un tat
nal et le contenu de la bande constitue alors un des mots de sortie. Comme il
peut y avoir plusieurs calculs acceptants, il peut y avoir plusieurs mots de sortie.
Dans le cas dune machine dterministe, il y a au plus un seul calcul acceptant
et donc au plus un seul mot de sortie.
Dnition 3.11 (Langage accept). On dit que w, un mot de

est accept
par une machine de Turing / sil existe un calcul acceptant de conguration
initiale q
0
w. Lensemble des mots accepts par / est not L(/).
Il est noter que comme pour les automates, la notion dacceptation est
dissymtrique. Sil existe la fois des calculs acceptants et des calculs non
acceptants pour une mme entre, cest lacceptation qui lemporte. Cette dis-
symtrie pose problme pour la complmentation. Comme pour les automates,
il faut se ramener des machines dterministes. Une autre solution est dutiliser
les machines plus gnrales que sont les machines alternantes.
3.2.4 Graphe des congurations
Beaucoup de problmes sur les machines de Turing se ramnent des pro-
blmes sur les graphes en considrant le graphe des congurations. Du coup,
les algorithmes sur les graphes jouent un rle essentiel. Le thorme de Savitch
(thorme 4.24) peut par exemple tre vu comme un rsultat sur laccessibilit
dans les graphes en espace log
2
n.
Le graphe des congurations dune machine de Turing / est le graphe dont
lensemble des sommets est lensemble de toutes les congurations de / et dont
les artes sont les paires (C, C

) de congurations telles que C C

. Un chemin
dans ce graphe est donc un calcul de la machine /.
120 CHAPITRE 3. CALCULABILIT
Lacceptation dune entre par la machine se ramne un problme dac-
cessibilit dans le graphe des congurations. En eet, lentre w est accepte
par / si et seulement si il y a un chemin de la conguration initiale q
0
w une
conguration acceptante.
Le graphe des congurations est inni. Par contre, on sintresse souvent
une partie nie de ce graphe. Si la machine / sarrte sur toutes les entres w,
lensemble des congurations accessibles partir dune conguration initiale
q
0
w est ni. La recherche dune conguration acceptante peut alors se faire par
un parcours du sous-graphe des congurations accessibles partir de q
0
w. Si on
dispose dune borne sur le temps ou lespace utilis par la machine sur une entre
de taille n, on a alors une borne sur la taille des congurations qui dtermine
un sous-graphe ni du graphe des congurations.
La dterminisation dune machine de Turing (cf. proposition 3.19) se fait par
un parcours en largeur de larbre des calculs. Cet arbre est en fait un dpliage
du graphe des congurations. La machine dterministe quivalente une ma-
chine / eectue en fait un parcours en largeur du graphe des congurations
de /.
3.2.5 Normalisation
Le but de cette partie est de montrer quon peut toujours supposer quune
machine de Turing possde deux tats spciaux q
+
et q

tels que :
q
+
est nal (q
+
F) et q

nest pas nal (q

/ F),
la machine se bloque ds quelle est dans un des tats q
+
ou q

,
la machine se bloque uniquement dans un des tats q
+
ou q

.
Plus formellement, on a la proposition suivante.
Proposition 3.12 (Normalisation). Pour toute machine de Turing /, il existe
une machine de Turing /

telle que :
1. L(/) = L(/

) et / se bloque si et seulement si /

se bloque ;
2. /

a deux tats q
+
et q

qui vrient :
F

= q
+
(tats naux de /

).
/

se bloque toujours en q
+
et en q

.
/

ne se bloque quen q
+
et en q

.
Pour montrer ce rsultat, nous allons montrer qu partir dune machine
/, il est toujours possible de construire une machine de Turing /

qui ac-
cepte les mmes entres que / et qui vrie les proprits ci-dessus. La ma-
chine construite /

est trs proche de la machine / et hrite beaucoup de ses


proprits. Si la machine / est dterministe, la machine /

est encore dter-


ministe. Chaque calcul dans / est prolong dans /

dau plus une tape de


calcul. En particulier, si la machine / na pas de calcul inni, la machine /

na pas de calcul inni.


Analyse
Lide gnrale de la construction est de faire en sorte que pour chaque
conguration C = uqv de /

avec q dirent de q
+
et q

, il existe une con-


guration C

telle que C C

. Le principe est dajouter de nouvelles transitions


pour viter les blocages. Nous commenons par analyser les causes de blocage
3.2. INTRODUCTION 121
an de les dtecter. Une machine de Turing peut se bloquer dans un tat q pour
deux raisons.
1. La premire raison est quaucune transition nest possible. Si la machine
est dans ltat p, lit un symbole a sous la tte de lecture mais na pas de
transition de la forme p, a q, b, x avec x , , alors elle reste bloque
dans cette conguration de la forme upav.
2. La seconde raison est que certaines transitions sont possibles mais que
ces transitions conduisent un dplacement de la tte de lecture vers la
gauche alors que cette tte est justement sur la premire position de la
bande. Si la machine est dans ltat p et lit le symbole a sur la premire
position de la bande mais na pas de transition de la forme p, a q, b,
qui dplace la tte de lecture vers la droite, alors elle reste bloque dans
cette conguration de la forme pav. En eet, la dnition des machines
de Turing impose quune machine ne peut pas eectuer une transition qui
dplacerait la tte de lecture hors de la bande.
Ides gnrales de la construction
La premire ide est de supprimer les transitions sortantes des tats naux
pour que la machine se bloque ds quelle atteint un de ces tats. Ensuite, tous
ces tats naux sont fusionns en un seul tat q
+
. Il faut ensuite faire en sorte
que tous les autres blocages aient lieu dans lunique tat q

. Lide gnrale
est dajouter un nouvel tat q

/ et dajouter les transitions pour que la


machine /

passe dans cet tat ds quelle se bloque dans un tat non nal.
Le premier type de blocage est facile dtecter dans la machine /. Il sut de
trouver toutes les paires (p, a) telle quil nexiste pas de transition p, a q, b, x
avec x , . Le second type de blocage est plus dlicat dtecter puisque
la machine /

doit savoir quand sa tte de lecture se trouve sur la premire


position de la bande. Pour contourner cette dicult, on ajoute de nouveaux
symboles de bandes la machine /

. Pour chaque symbole de bande a de /,


la machine /

contient le symbole a et un autre symbole correspondant a.


Lalphabet de bande /

est donc

= a [ a . Ces nouveaux symboles


seront uniquement utiliss dans la premire position de la bande et serviront la
machine pour dtecter cette position. Lalphabet dentre de /

est identique
celui de /. La premire opration de la machine /

est de remplacer le premier


symbole a de lentre par le symbole a correspondant pour marquer la premire
position de la bande. cette n, on ajoute deux nouveaux tats q

0
et q

1
et
quelques transitions. Ensuite toutes les autres transitions de /

remplacent un
caractre a par un caractre b et un caractre a par un caractre

b. Ainsi, la
premire position de la bande contient toujours un symbole de la forme a et
toutes toutes les autres positions contiennent des symboles de la forme a. Cest
exactement la mme ide qui a t utilise pour rendre fond de pile testable
les automates pile (cf. section 2.6.2).
La construction proprement dite
Soit / = (Q, , , E, q
0
, F, #) une machine de Turing. Nous dcrivons la
machine de /

qui accepte les mme entres mais qui se bloque uniquement


dans un des deux tats q
+
ou q

. Par rapport la machine /, la machine /

122 CHAPITRE 3. CALCULABILIT


possde quatre nouveaux tats q

0
, q

1
q
+
et q

mais elle a perdu les tats naux


qui sont remplacs par q
+
.
tats : Q

= (Q F) q

0
, q

1
, q
+
, q

tat initial : q

0
tats naux : F

= q
+

Alphabet de bande :

= a [ a
Alphabet dentre :

=
Caractre blanc : #
Il reste dcrire lensemble E des transitions de /

. Cet ensemble est


dcompos en E

= E
0
E
1
E
2
E
3
suivant ltat p dans lequel se trouve la
machine. Les ensembles E
0
, E
1
, E
2
et E
3
sont dnis ci-dessous.
p = q

0
La premire transition est charge de remplacer le premier caractre a de
# de lentre par le caractre a correspondant.
E
0
= q

0
, a q

1
, a, [ a .
p = q

1
La seconde transition est charge de remettre la tte de lecture sur la
premire position de la bande et de passer dans lancien tat initial q
0
pour commencer le calcul.
E
1
= q

1
, a q
0
, a, [ a .
p = q
+
ou p = q

Pour que la machine /

se bloque en q
+
et en q

elle ne
possde aucune transition de la forme q
+
, a q, b, x et aucune transition
de la forme q

, a q, b, x pour x , .
p Q F
On commence par ajouter /

toutes les transitions de / pour les


lettres des formes a ou a. On ajoute galement des transitions vers q
+
pour chaque transition vers un tat nal.
E
2
= p, a q, b, x [ p, a q, b, x E et q / F
p, a q,

b, [ p, a q, b, E et q / F
p, a q
+
, b, x [ p, a q, b, x E et q F
p, a q
+
,

b, [ p, a q, b, E, et q F
Ensuite, on ajoute des transitions spciques pour viter que /

ne se
bloque dans des tats autres que q
+
et q

. On pose U lensemble des


paires (p, a) telles que / ne possde pas de transitions p, a q, b, x avec
x , et V lensemble des paires (p, a) telles que / ne possde pas
de transitions p, a q, b, . On dnit alors lensemble E
3
.
E
3
= p, a q

, a, [ si (p, a) U
p, a q

, a, [ si (p, a) U
p, a q

, a, [ si (p, a) V
Il est facile de vrier que si la machine / est dterministe, alors la ma-
chine /

construite est galement dterministe.


3.2. INTRODUCTION 123
3.2.6 Variantes
On considre maintenant quelques variantes des machines de Turing. Dans
chaque cas, on montre quon obtient une notion quivalente dans la mesure o la
classe des langages qui peuvent tre accepts par ces machines reste identique.
Les variantes simplient aussi le travail lorsquil sagit de donner explicitement
une machine de Turing eectuant une tche donne.
Bandes bi-innies
# # # # B # b # A b a B # B # # # # #
. . .
-5 -4 -3 -2 -1 0 1 2 3 4 5 6
. . .
Fig. 3.6 Bande bi-innie
On commence par une variante o la bande est innie gauche comme
droite. Cette variante permet dviter le blocage de la machine sur la premire
position de la bande mais elle est plus loigne du fonctionnement rel dun
ordinateur o les mots mmoire sont numrots partir de zro.
Dnition 3.13 (Machine bande bi-innie). Une machine bande bi-innie
est formellement identique une machine de Turing, mais la bande est indice
par tous les entiers de Z (cf. gure 3.6).
Proposition 3.14 (quivalence). Toute machine de Turing bande bi-innie
est quivalente une machine de Turing (cest--dire qui accepte le mme lan-
gage). Inversement toute machine de Turing est quivalente une machine de
Turing bande bi-innie.
Preuve. Pour simuler les calculs dune machine de Turing sur une machine
bande bi-innie, il sut de marquer le dbut de bande en crivant la posi-
tion 1 un nouveau symbole $ nappartenant pas . Comme aucune transition
ne permet de lire ce symbole, la machine se bloque ds quelle repasse par cette
position de la bande.
Pour simuler les calculs dune machine bande bi-innie sur une machine de
Turing, lide est de replier la bande en 0. La case de numro i se retrouve en
dessous la case de numro i. Une case ctive remplie dun nouveau symbole $
est mise sous la case de numro 0 (cf. gure ci-dessous). Ceci permet en outre
la machine de reconnatre la premire position de la bande.
0 1 2 3 4 5 6 7
A b a B # B # #
$ # b # B # # #
-1 -2 -3 -4 -5 -6 -7
Le nouvel alphabet de bande est ($) puisquon considre chaque
position i de la nouvelle bande le couple des caractres aux positions (i, i) dans
lancienne bande. De plus la case de numro 0 contient un symbole de $.
On crit lentre sur la partie suprieure de la bande : lalphabet dentre
devient donc #, le nouveau caractre blanc (#, #) et il est donc toujours
124 CHAPITRE 3. CALCULABILIT
exclu de lalphabet dentre. La premire opration de la machine consiste
mettre le symbole $ dans la partie infrieure de la premire case de la bande en
remplaant le symbole (a, #) par (a, $).
La machine doit mmoriser si elle lit la partie suprieure ou la partie inf-
rieure de la bande. Les nouveaux tats sont donc les paires de Q , o
et signient respectivement que la machine lit la partie haute ou la partie
basse de la bande
On transcrit alors les transitions de la machine dorigine, en prenant garde
au fait que la nouvelle machine se dplace dsormais en sens contraire lorsquelle
lit la partie infrieure de la bande.
Machines plusieurs bandes
Contrle
B b c BB c a b A b b b A#####
a b A a a BA b a b c a A a c ###
a c A c BBA c a c a #######
Fig. 3.7 Machine de Turing trois bandes
Il est possible de considrer des machines de Turing plusieurs bandes.
La machine possde alors une tte de lecture sur chacune de ses bandes. La
transition eectue par la machine dpend de ltat de contrle et des symboles
de bandes lus par toutes les ttes de lecture. La transition spcie les symboles
qui doivent tre crits par les ttes de lecture ainsi que les dplacements de
chacune de ses ttes de lecture.
Dnition 3.15 (Machine plusieurs bandes). Une machine k bandes est une
machine disposant de k bandes, chacune lue par une tte de lecture indpendante
(cf. gure 3.7). Une transition est alors un lment de lensemble Q
k
Q

k
, ,
k
, o permet ventuellement de laisser immobiles certaines ttes
de lecture.
La proposition ci-dessous tablit que plusieurs bandes najoutent pas de
puissance de calcul. Leur intrt rside dans une plus grande souplesse (toute
relative) dans la programmation. La machine universelle qui est donne la
proposition 3.29 est dcrite avec deux bandes. Il aurait t possible de la dcrire
avec une seule bande mais cela aurait juste t un peu plus technique.
On a impos pour simplier que les alphabets des direntes bandes sont
identiques. Il est possible de considrer des machines avec des alphabets dis-
tincts. Cela complique les notations sans avoir un grand intrt.
Lorsquune machine une seule bande, il nest pas vraiment ncessaire
davoir la possibilit de laisser la tte de lecture sa position. En eet, le sym-
bole lu la transition suivante est celui qui vient dtre crit. Par contre, lorsque
la machine a plusieurs bandes, il est plus commode de pouvoir laisser une tte
en place tout en dplaant les autres.
3.2. INTRODUCTION 125
La notion de conguration (cf. section 3.2.3) dune machine de Turing peut
tre tendue aux machines plusieurs bandes. La conguration dune machine
k bandes comprend ltat de contrle, les contenus des k bandes et les posi-
tions des k ttes de lecture. Tout ceci peut tre dcrit comme un seul mot sur
un alphabet comprenant lensemble des tats, lalphabet de bande et quelques
sparateurs.
0 1
2
3
a, #, a, , ,
b, #, b, , ,
#, #, #, #, ,
a, , a, , ,
a, #, a, #, ,
b, #, b, #, ,
b, , b, , ,
#, , #, #, ,
b, , b, , ,
b, #, b, #, ,
a, #, a, #, ,
a, , a, , ,
#, , #, #, ,
Fig. 3.8 Exemple de machine deux bandes
Exemple 3.16. La machine reprsent la gure 3.8 a deux bandes. Elle accepte
le langage w A

[ [w[
a
= [w[
b
dj considr lexemple 3.8. Son ensemble
dtats est Q = 0, 1, 2, 3. Ltat 0 est initial et ltat 3 est nal. Lalphabet
de bande est a, b, , #. Le symbole est uniquement utilis pour marquer la
premire position de la seconde bande.
Cette machine fonctionne de la faon suivante. Elle parcourt le mot en entre
sur la premire bande. Au dbut de la lecture, elle est dans ltat 0 puis pendant
tout le reste, elle est dans ltat 1 ou 2 suivant que le nombre de a lus est plus
grand ou plus petit que le nombre de b lus. La position de la tte de lecture de la
deuxime bande mmorise la dirence entre le nombre de a et le nombre de b.
La machine passe nalement dans ltat acceptant 3 si la n de la lecture, le
nombre de a est gal au nombre de b.
La proposition suivante tablit que ce qui peut tre calcul par une machine
plusieurs bandes peut aussi tre calcul avec une seule bande. Lajout de
plusieurs bandes naugmente pas la puissance de calcul.
Proposition 3.17 (quivalence). Touche machine de Turing / plusieurs
bandes est quivalente une machine de Turing /

une seule bande qui ac-


cepte les mmes entres. De plus, si / est dterministe (resp. sarrte sur
126 CHAPITRE 3. CALCULABILIT
chaque entre), /

est aussi dterministe (resp. sarrte aussi sur chaque en-


tre).
Contrle
B b c BB c a b A b b b A#####
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
a b A a a BA b a b c a A a c ###
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
a c A c BBA c a c a #######
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fig. 3.9 Conversion de trois bandes en une seule
Preuve. Soit / une machine de Turing k bandes pour un entier k. On
construit une machine de Turing /

une seule bande qui accepte les mmes


entres.
Une premire solution est de construire une machine /

qui stocke les conte-


nus des k bandes sur une seule bande en les sparant par un nouveau symbole $.
Outre le contenu des bandes, /

doit aussi garder trace des positions des k ttes


de lecture. Elle possde donc un symbole de bande qui est plac juste avant
les symboles qui taient sous les ttes de lecture de /. La simulation dune
seule transition de / se fait en parcourant toute la bande pour noter dans
ltat de contrle les symboles sous les k ttes de lectures. En n de bande, la
machine /

choisit la transition de / eectuer en fonction de ltat et des k


symboles. La machine eectue un nouveau parcours de la bande pour changer
les caractres sous les k ttes de lecture puis dplacer les k ttes de lecture.
Une seconde solution consiste coller les k bandes pour en faire une seule
sur lalphabet
k
. Comme il faut aussi garder trace des positions des k ttes
de lecture, on agrandit encore lalphabet pour une avoir une seule bande sur
lalphabet ( 0, 1)
k
(cf gure 3.9). De nouveau, la simulation dune seule
transition de /se fait par deux parcours successifs de toute la bande de /.
Dterminisme
La notion dautomate dterministe stend de manire trs naturelle aux
machines de Turing. Une machine est dterministe si chaque tape de calcul,
une seule transition peut tre eectue pour passer une autre conguration.
Dit autrement, chaque sommet du graphe des congurations a au plus une seule
arte sortante.
La comparaison entre les machines dterministes et les celles non dtermi-
nistes est la source des questions les plus fondamentales de la thorie de la
complexit. Il a t vu que tout automate ni non dterministe est quivalent
un automate dterministe (cf. proposition 1.69 p. 38). Par contre tout automate
pile nest pas quivalent un automate pile dterministe. Il savre que les
machines de Turing dterministes sont aussi puissantes que les celles non dter-
ministes. Par contre, une grande dirence apparat lorsque les temps de calcul
sont considrs. Le passage une machine dterministe peut considrablement
accrotre le temps de calcul.
3.2. INTRODUCTION 127
Dnition 3.18 (Machine de Turing dterministe). Une machine / est d-
terministe si pour chaque paire (p, a) Q , il existe au plus un triplet
(q, b, x) Q , tel que p, a q, b, x E.
La dnition ci-dessus t donne pour une machine une seule bande.
Elle stend facilement au cas des machines plusieurs bandes. Les machines
des gures 3.3 et 3.4 sont dterministes.
La proposition suivante tablit que tout ce qui peut tre calcul par une
machine non dterministe peut aussi tre calcul par une machine dterministe.
Proposition 3.19. Toute machine de Turing / est quivalente une ma-
chine /

dterministe. Si de plus / est sans calcul inni, la machine /

est
aussi sans calcul inni.
C
0
C
1
C
3
C
9
C
4
C
10
C
1
C
3
C
9
C
4
C
10
C
1
C
4
C
11
C
11
C
2
C
5
C
6
C
12
C
7
Fig. 3.10 Un arbre de calcul
Preuve.
Ide de la preuve. On montre quil est possible de simuler toute machine
non-dterministe / avec une machine dterministe /

. Lide de la simulation
est de faire essayer /

toutes les branches possibles du calcul de /. Si /

rencontre un tat acceptant au cours de cette exploration, elle accepte lentre.


Sinon, la simulation de /

ne se termine pas.
Soit w

une entre de la machine /. On considre lensemble des cal-


culs de / sur w comme un arbre. Les nuds sont les calculs nis et valides
de /. La racine de larbre est le calcul vide consistant en la conguration
initiale C
0
= q
0
w. Les ls dun calcul sont tous les calculs obtenus en pro-
longeant par une tape de calcul. Si est le calcul C
0
C
n
, ses ls
sont alors tous les calculs de la forme C
0
C
n
C
n+1
. Le nud a
donc autant de ls quil existe de congurations C telles que C
n
C. Sur la
gure 3.10, chaque nud est tiquet par sa dernire conguration C
n
. Le
calcul peut tre reconstitu en suivant la suite des congurations le long de la
branche. Dans cette reprsentation, une conguration peut apparatre plusieurs
128 CHAPITRE 3. CALCULABILIT
fois puisque plusieurs calculs peuvent conduire une mme conguration. Pour
une conguration C donne, le nombre de congurations C

telles que C C

est born par le nombre de transitions de la machine. Larbre des calculs est
donc de degr born. Lide gnrale est de faire parcourir cet arbre par la
machine /

. Comme certaines branches peuvent tre innies mme si la ma-


chine / accepte w, il est impossible deectuer un parcours en profondeur. La
machine /

pourrait descendre indniment le long dune mme branche innie


et manquer une conguration acceptante sur une autre branche. La machine /

va donc eectuer un parcours en largeur de larbre des calculs.


Soit un mot x =
1

n
sur lalphabet E des transitions de /. Le mot x
dtermine lunique calcul obtenu en eectuant partir de la conguration q
0
w
les transitions
1
, . . . ,
n
. Bien sr, tout mot x ne correspond pas ncessairement
un calcul valide et un nud de larbre. La machine /

va parcourir les
nuds de larbre dans lordre des mots correspondants o les mots sont dabord
ordonns par longueur puis par ordre lexicographique pour les mots dune mme
longueur. Pour chaque mot sur E, la machine /

vrie en simulant / si ce
mot correspond un calcul valide. Si la conguration atteinte est acceptante la
machine /

accepte. Sinon, elle passe au mot suivant et continue.


Dans limplmentation, les transitions de / sont numrotes par les entiers
de 0 k 1 o k est le nombre de ces transitions. On identie alors un mot sur
lalphabet 0, . . . , k 1 avec un mot sur E.
Mise en application. La machine dterministe /

est construite en utilisant


trois bandes. Daprs la proposition 3.19, cette machine est nouveau quiva-
lente une machine dterministe avec une seule bande. La machine /

utilise
ses trois bandes de la manire suivante. La premire bande contient toujours
lentre w de la machine et nest jamais modie. La seconde bande contient
une copie de la bande de / au cours de son calcul le long dune branche. La
troisime bande contient un mot sur lalphabet 0, . . . , k 1 qui dtermine
ventuellement un calcul de /.
1. Initialement, la premire bande contient lentre w, et les bandes 2 et 3
sont vides.
2. Copier la premire bande sur la seconde.
3. Utiliser la seconde bande pour simuler / avec lentre w le long du calcul
dtermin par la troisime bande. Pour chaque tape de la simulation
de /, le symbole de la troisime bande de /

donne la transition de /
qui doit tre applique. Si cette transition ne peut pas tre applique
ou sil ne reste plus de symboles sur la troisime bande, la simulation
de ce calcul est abandonne et la machine /

passe ltape 4. Si une


conguration acceptante de / est rencontre, la machine /

sarrte et
accepte lentre w.
4. Remplacer la chane de la troisime bande avec la chane qui suit dans
lordre hirarchique. La machine /

retourne ltape 2 pour simuler ce


nouveau calcul.
Dans le cas o la machine / est sans calcul inni, larbre des calculs est ni
daprs le lemme de Knig (cf. lemme 3.20) et donc de hauteur nie. Ceci signie
quil existe une borne sur la longueur des calculs partant de la conguration q
0
w.
Pour que la machine /

soit sans calcul inni si / est sans calcul inni, la


3.3. LANGAGES RCURSIVEMENT NUMRABLES 129
machine /

procde de la manire suivante. Pour chaque longueur l de mots


sur la troisime bande, la machine /

vrie si elle a trouv au moins un calcul


de longueur l. Si elle nen a trouv aucun, elle sarrte en rejetant lentre w.
Ceci garantit que la machine /

sarrte sur toute entre.


On prouve ici le lemme de Knig qui a t utilis dans la preuve de la
proposition prcdente. Ce lemme est en fait un argument de compacit sous
une forme un peu dguise.
Lemme 3.20 (Knig 1936). Tout arbre inni dont tout nud est de degr ni
contient une branche innie.
Preuve. On construit par rcurrence une suite (x
n
)
n0
de nuds qui forment
une branche innie de larbre. On prend pour x
0
la racine de larbre. On suppose
avoir choisi un nud x
n
tel que le sous-arbre enracin en x
n
est inni. Puisque
x
n
a un nombre ni de ls, au moins un des sous-arbres enracins en lun de ses
ls est inni. On choisit alors comme nud x
n+1
un tel ls de x
n
.
3.3 Langages rcursivement numrables
On tudie maintenant les langages et par extension les problmes qui peuvent
tre accepts par une machines de Turing. Il faut remarquer quune machine de
Turing nest pas vraiment un algorithme. Lors dun calcul dune machine sur
une entre w, trois choses direntes peuvent survenir. Le calcul peut sarrter
dans un tat acceptant et lentre w est accepte. Le calcul peut aussi se bloquer
dans un tat non acceptant. Le calcul peut encore continuer linni. Cette troi-
sime alternative est indsirable pour un algorithme qui doit toujours sarrter
aprs un nombre ni dtapes de calcul. Cette alternative correspond en fait
lincertitude provenant dun programme qui ne sarrte pas. Doit-on le laisser
continuer parce quil va (bientt) donner le rsultat ou doit-on linterrompre
parce quil ne donnera aucun rsultat.
Dnition 3.21 (Langages rcursivement numrables). Un langage L

est rcursivement numrable sil existe une machine de Turing / telle que
L = L(/). Par extension, un problme P est rcursivement numrable si L
P
est rcursivement numrable.
La terminologie est justie par la proposition 3.23 ci-dessous. Les langages
rcursivement numrables sont aussi appels semi-rcursifs ou semi-dcidables.
Le terme rcursif provient des fonctions rcursives (cf. section 3.9). Le terme
semi est justi par la proposition 3.28.
Dnition 3.22 (numrateur). Un numrateur est une machine de Turing
dterministe qui crit sur une bande de sortie des mots de

spars par un
symbole $ nappartenant pas . La tte de lecture de cette bande de sortie ne
se dplace jamais vers la gauche.
Un numrateur est une machine qui ne prend pas dentre. Au dpart la
bande est remplie de symboles blancs et la conguration initiale est donc la
conguration q
0
. La bande de sortie dun numrateur se comporte comme une
imprimante sur laquelle il est possible dcrire sans pouvoir ni modier ni eacer.
Il faut noter que la dnition comporte une certaine dissymtrie. Ds quun mot
130 CHAPITRE 3. CALCULABILIT
est crit sur la bande de sortie, on est certain quil fait partie des mots numrs.
Alors que tant quun mot na pas t crit, lincertitude demeure : il sera peut-
tre numr plus tard ou il ne le sera peut-tre jamais.
Un mot est dit numr sil est crit sur la bande sortie entre deux spara-
teurs $. Il ny a aucune contrainte sur la faon dont les mots sont numrs. Ils
peuvent apparatre dans nimporte quel ordre et chaque mot peut apparatre une
ou plusieurs fois. La proposition suivante justie la terminologie rcursivement
numrable employe pour un langage accept par une machine de Turing.
Proposition 3.23. Un langage L

est rcursivement numrable si et


seulement si L est lensemble des mots numrs par un numrateur.
Preuve. On va montrer qu partir dune machine de Turing qui accepte L,
on peut construire un numrateur qui numre exactement les mots de L et
quinversement on peut construire une machine de Turing qui accepte L partir
dun numrateur.
On suppose dabord disposer dune machine / qui accepte L. Grce la
proposition 3.19, on peut supposer que / est dterministe. Lnumrateur ne
peut pas utiliser directement la machine / sur chaque mot car celle-ci peut
avoir des calculs innis. Lide consiste simuler la machine sur un nombre
maximal de transitions puis daugmenter progressivement ce nombre maximal
de transitions. On obtient alors lalgorithme ci-dessous.
1: for all k 0 do
2: for all w tel que [w[ k do
3: if / accepte w en au plus k tapes then
4: crire w suivi de $ sur la bande de sortie
Algorithme 2: numrateur de L
On suppose maintenant disposer dun numrateur pour L. La machine de
Turing simule lnumrateur et compare successivement chaque mot crit. par
celui-ci avec son entre. Elle accepte en cas dgalit. Si le mot nest jamais
numr, le calcul de la machine se poursuit indniment sans que la machine
naccepte. On obtient alors lalgorithme ci-dessous.
Input w
1: loop
2: repeat
3: Excuter lnumrateur
4: until lnumrateur crit $
5: if w est gal au mot crit then
6: accepter
Algorithme 3: Machine de Turing acceptant L
Un argument de cardinalit montre quil existe des langages non rcursi-
vement numrables. Pour tout alphabet , lensemble de tous les langages
sur nest pas dnombrable. Au contraire, lensemble des machines de Turing
et donc des langages rcursivement numrables est dnombrable. Cet argument
3.4. LANGAGES DCIDABLES 131
est semblable celui qui montre quil existe des nombres transcendants parce
que lensemble des nombres algbriques est dnombrable. Lexemple suivant ex-
hibe un langage qui nest pas rcursivement numrable. La construction de ce
langage est base sur un argument diagonal trs classique. Largument diagonal
est un peu le couteau suisse de la calculabilit et de la complexit. La plupart
des rsultats non triviaux utilisent cet argument sous une forme ou une autre.
Exemple 3.24 (Langage diagonal). Soit un alphabet x gal par exemple
a, b. Puisque lensemble des machines de Turing est dnombrable, on indexe
par les entiers les machines de Turing dalphabet dentre . On obtient une
suite /
0
, /
1
, /
2
, . . . de toutes les machines de Turing sur . On indexe aussi
les mots de

pour obtenir une suite w


0
, w
1
, w
2
, . . . de tous les mots sur . On
dnit alors le langage L par
L = w
i
[ w
i
/ L(/
i
).
On montre par labsurde que L nest pas rcursivement numrable. On suppose
quil existe une Machine de Turing / telle que L = L(/). On note k lindice
de cette machine, cest--dire lentier k tel que / = /
k
. Si w
k
L(/
k
), alors
w
k
/ L(/) et si w
k
/ L(/
k
), alors w
k
L(/), ce qui conduit dans les deux
cas une contradiction.
La proposition suivante tablit que la classe des langages rcursivement nu-
mrables est close pour lunion et lintersection.
Proposition 3.25. Si les langages L et L

sont rcursivement numrables,


alors les deux langages L L

et L L

sont aussi rcursivement numrables.


Preuve. Soient L et L

deux langages accepts par des machines / et /

quon
peut supposer une seul bande grce la proposition 3.17. On construit des
machines /

et /

qui accepte respectivement les langages L L

et L L

.
On construit une machine /

avec deux bandes. La machine commence


dans un premier temps par recopier son entre de la premire bande sur la
seconde bande. Dans un second temps, la machine alterne, transition par tran-
sition la simulation de / sur la premire bande et la simulation de /

sur
la seconde bande. La machine /

accepte ds quune des deux machines /


et /

accepte.
Pour la machine /

, on peut procder de la mme faon en alternant les


simulations des deux machines / et /

et en acceptant lorsque les deux ont


accept. Une autre solution est de simuler dabord / sur lentre aprs avoir
sauvegard cette entre sur une autre bande, puis de simuler /

lorsque /
a accept. Si lune des deux machines ne sarrte pas, le calcul de /

est
galement inni. Si les deux machines acceptent, la machine /

accepte.
3.4 Langages dcidables
Les problmes et les langages dcidables sont ceux pour lesquels il existe un
algorithme qui donne la rponse chaque instance. Par algorithme, on entend
une mthode qui donne la rponse correcte en un temps ni.
Dnition 3.26 (Langage dcidable). Un langage L

est dcidable sil


existe une machine de Turing / sans calcul inni (i.e. la machine / sarrte
132 CHAPITRE 3. CALCULABILIT
sur toute entre) telle que L = L(/). On dit que la machine / dcide le
langage L.
Les langages dcidables sont parfois appels rcursifs. Par dnition mme,
les langages dcidables sont rcursivement numrables. On verra la propo-
sition 3.30 quil existe des langages rcursivement numrables qui ne sont pas
dcidables. On commence par quelques proprits de clture des langages dci-
dables.
Proposition 3.27 (Oprations boolennes). Si les deux langages L, L

sont dcidables, alors les langages LL

, LL

et

L sont aussi dcidables.


Preuve. Soient / et /

deux machines de Turing sans calcul inni qui ac-


ceptent les langages L et L

. Les machines /

et /

construites dans la preuve


de la proposition 3.25 sont sans calcul inni et elles acceptent les langages LL

et L L

.
Daprs les propositions 3.19 et 3.12, on peut supposer que la machine /
est dterministe et normalise. En changeant les rles des tats q
+
et q

, on
obtient une machine qui accepte le complmentaire

L de L.
La proposition suivante justie la terminologie semi-dcidables ou semi-
rcursifs qui est parfois employe pour les langages rcursivement numrables.
Proposition 3.28 (Complmentation et dcidabilit). Soit L

un langage.
Si L et son complmentaire

L sont rcursivement numrables, alors L et

L sont dcidables.
Preuve. On suppose que les machines / et /

acceptent les langages L et

L. Par contre, ces deux machines peuvent avoir des calculs innis. On
construit une machine ^ semblable la machine /

utilise dans la preuve


de la proposition 3.25 mais avec une condition darrt dirente. La machine ^
simule en parallle les deux machines /et /

et sarrte ds que lune des deux


machines / ou /

accepte. Si la machine / accepte, la machine ^ accepte et


si la machine /

accepte, la machine ^ rejette. Comme les machines / et /

acceptent les langages L et

L, toute entre w doit tre accepte par une des


deux machines. Ceci assure que la machine ^ sarrte sur toute entre.
Pour une machine / et un mot w, on note respectivement /), w) et
/, w) les codages de /, w et de la paire (/, w). Le codage de (/, w) peut
tre par exemple /)$w) o le symbole $ napparat ni dans le codage de /
ni dans le codage de w. On dnit maintenant le langage dacceptation not L

par
L

= /, w) [ w L(/).
Proposition 3.29 (Machine universelle). Le langage L

est rcursivement nu-


mrable. Une machine de Turing /
U
telle que L(/
U
) = L

est appele ma-


chine universelle.
Une machine universelle est en quelque sorte une machine capable de simuler
nimporte quelle autre machine qui lui est passe en paramtre. Les interpr-
teurs de langages comme la machine virtuelle de Java (Java Virtual Machine)
sont des machines universelles.
3.4. LANGAGES DCIDABLES 133
Preuve. On construit une machine universelle /
U
avec deux bandes. La pre-
mire bande reoit lentre qui est le codage /, w) dune machine de Turing /
et dune entre w. La machine /
U
va simuler le calcul de / sur lentre w. La
seconde bande de /
U
est utilise pour contenir la conguration de la machine
/ au cours du calcul. Cette bande est initialise avec la conguration q
0
w obte-
nue en recopiant ltat initial de / et la donne w. Ensuite, pour chaque tape
de calcul, la machine /
U
recherche dans /) une transition applicable sur la
conguration puis lapplique pour obtenir la conguration suivante.
Proposition 3.30. Le langage L

nest pas dcidable.


Daprs la proposition 3.28, si un langage L et son complmentaire sont
rcursivement numrables, alors L est dcidable. La proposition prcdente a
immdiatement le corollaire suivant.
Corollaire 3.31. Le complmentaire de L

nest pas rcursivement numrable.


La preuve de la proposition prcdente se fait par un argument diagonal
mme si celui-ci nest pas compltement explicite. La machine Q est en eet
lance sur son propre codage pour aboutir une contradiction.
Preuve. On montre le rsultat par un raisonnement par labsurde. On suppose
que le langage L

est dcidable. Soit / une machine de Turing qui dcide le


langage L

. Ceci signie que L(/) = L

et que la machine / sarrte sur toute


entre. On construit alors la machine Q de la manire suivante.
Input /)
1: if / accepte /, /)) then
2: rejeter
3: else
4: accepter
Algorithme 4: Machine Q
On montre maintenant que lon a une contradiction en lanant la machine Q
sur lentre Q).
Si Q accepte Q), alors / accepte lentre Q, Q)) par dnition de /.
Mais si / accepte Q, Q)), Q rejette Q) par dnition de Q.
Si Q rejette Q), alors / rejette lentre Q, Q)) par dnition de /. Mais
si / rejette Q, Q)), Q accepte Q) par dnition de Q.
Dans les deux cas, on a abouti une contradiction. Ceci montre que le langage
L

nest pas dcidable


Il nest pas toujours aussi facile dtablir directement quun langage ou un
problme est indcidable. On utilise alors une rduction pour se ramener
un autre problme indcidable. On commence par la dnition dune fonction
calculable.
Dnition 3.32. Une fonction f :

est calculable sil existe une ma-


chine de Turing qui pour toute entre w sarrte avec f(w) sur la bande.
134 CHAPITRE 3. CALCULABILIT
Comme toute machine de Turing est quivalente une machine de Turing
dterministe, toute fonction calculable lest aussi par une machine de Turing
dterministe. La classe des fonctions calculables est close par de nombreuses
oprations. En particulier, la compose de deux fonctions calculables est encore
une fonction calculable.
Dnition 3.33 (Rduction). Soient A et B deux problmes, dalphabets res-
pectifs
A
et
B
et de langages respectifs L
A
et L
B
. Une rduction de A B
est une fonction f :

B
calculable telle que w L
A
f(w) L
B
.
On note A
m
B lorsque A se rduit B.
La notation A
m
B suggre que le problme A est moins compliqu que
le problme B. Lindice m provient de lexpression anglaise many to one qui
soppose one to one et qui indique que la fonction f nest pas ncessairement
injective. Plusieurs instances de A peuvent tre envoyes par la rduction sur
la mme instance de B. Puisque la compose de deux fonctions calculables est
calculable, la relation
m
est bien sr transitive.
Proposition 3.34 (Rduction). Si A
m
B et si B est dcidable, alors A est
dcidable.
Preuve. A
m
B donc il existe une machine / qui sarrte toujours et qui,
pour toute entre w

A
, calcule w

B
, tel que w L
A
w

L
B
.
B tant dcidable, il existe une machine /

qui sarrte toujours telle que


L(/

) = L
B
.
On dnit une machine /

qui prend en entre un mot w

A
, qui excute
/ sur cette entre, puis qui excute /

sur la sortie de /. /

accepte si /

accepte et rejette si /

rejette.
Alors /

sarrte toujours et par construction, (L(/

)) = L(/

) = L
B
donc L(/

) = L
A
par dnition de /.
Par contraposition de la proposition prcdente, on obtient le corollaire sui-
vant qui sutilise trs souvent pour montrer quun problme B est indcidable.
Corollaire 3.35 (Rduction). Si A
m
B et si A est indcidable, alors B est
indcidable.
An dillustrer le corollaire prcdent on va prouver la proposition suivante
qui donne deux autres problmes indcidables.
Proposition 3.36. Les deux langages L

= /) [ L(/) ,= et L
=
=
/, /

) [ L(/) ,= L(/

) sont indcidables.
Preuve. Pour utiliser le corollaire prcdent et montrer que le langage L

est
indcidable, on construit une rduction de L

. Pour toute paire (/, w)


on considre la machine /
w
dnie de la manire suivante. La fonction f qui
associe /
w
) /, w) est bien sr calculable par une machine de Turing d-
terministe. De plus on aussi lquivalence w L(/) L(/
w
) ,= car
le mot w est le seul mot qui puisse tre accept par /
w
. La fonction f ainsi
dnie est donc une rduction de L

. Le corollaire prcdent assure que


le langage L

est indcidable.
Pour utiliser nouveau le corollaire prcdent et montrer que le langage L
=
est indcidable, on construit une rduction de L

L
=
. On choisit une machine
3.4. LANGAGES DCIDABLES 135
Input u
1: if u = w then
2: simuler / sur w
3: else
4: rejeter
Algorithme 5: Machine /
w
xe /

qui accepte le langage vide. Il sut par exemple de prendre pour /

une machine sans aucun tat nal. La fonction g qui associe /, /

) /)
est bien sr calculable par une machine de Turing dterministe. De plus on a
lquivalence L(/) ,= L(/) ,= L(/

). La fonction g ainsi dnie est


donc une rduction de L
=
L

. Le corollaire prcdent assure que le langage L


=
est indcidable.
Les deux rsultats de la proposition prcdente sont en fait deux cas parti-
culiers dun thorme plus gnral. On dit quune proprit P sur les langages
rcursivement numrables est non triviale sil existe au moins un langage r-
cursivement numrable L qui vrie P et au moins un langage rcursivement
numrable L

qui ne vrie pas P.


Thorme 3.37 (Rice). Pour toute proprit non triviale P sur les langages
rcursivement numrables, le problme de savoir si le langage L(/) dune
machine de Turing / vrie P est indcidable.
Si tous les langages rcursivement numrables vrient ou ne vrient pas la
proprit P, il est facile de faire une machine de Turing qui accepte les codages
/) des machines / telles que L(/) vrie P. Il sut daccepter ou de rejeter
tous les codages.
Preuve. Soit le langage L
P
= /) [ L(/) vrie P des codages des machines
de Turing dont le langage vrie la proprit P. Pour montrer que ce langage
est indcidable, on donne une rduction du langage L

au langage L
P
et on
conclut encore grce au corollaire prcdent.
Quitte remplacer la proprit P par sa ngation, on peut toujours supposer
que le langage vide ne vrie pas la proprit P. Puisque P nest pas triviale, il
existe une machine de Turing /
0
telle L(/
0
) vrie P.
Pour toute paire (/, w) on considre la machine /
w
dnie de la manire
suivante. Dans la dnition prcdente, si la machine / ne termine pas sur
Input u
1: if / accepte w then
2: simuler /
0
sur u et retouner le rsultat
3: else
4: rejeter
Algorithme 6: Machine /
w
lentre w la machine /
w
ne termine pas non plus. Si / accepte w le langage
de la machine /
w
est gal au langage L(/
0
). Si au contraire la machine /
rejette w, la machine /
w
rejette tous les mots u et son langage est vide. On
en dduit lquivalence w L(/) L(/
w
) P. La fonction f qui associe
136 CHAPITRE 3. CALCULABILIT
/
w
) /, w) est bien sr calculable par une machine de Turing dterministe.
Elle est donc une rduction de L

L
P
. Le corollaire prcdent permet de
conclure que L
P
nest pas dcidable.
Exercice 3.38. Montrer que si le langage L est rcursivement numrable (resp.
dcidable), alors le langage L

est encore rcursivement numrable (resp. dci-


dable).
Solution. Soit / une machine de Turing qui accepte le langage L. On construit
une machine /

non dterministe qui accepte le langage L

. Cette machine
fonctionne de la faon suivante. Elle commence par factoriser de faon non
dterministe son entre w en w = w
1
w
n
. Cette factorisation peut tre ma-
trialise par linsertion de marqueurs sur la bande. Ensuite, la machine /

vrie que chacun des facteurs w


i
appartient L en simulant la machine /. Il
est clair que si la machine / sarrte sur toutes les entres, cest encore le cas
pour la machine /.
3.5 Problme de correspondance de Post
Le problme de correspondance de Post est intressant plusieurs titres. Il a
dabord un intrt historique mais il est surtout le premier exemple de problme
naturel qui soit indcidable. Les problmes qui ont t montrs indcidables
jusqu maintenant peuvent paratre articiels dans la mesure o ils sont tous
lis aux machines de Turing qui ont servi dnir la notion de calculabilit.
Le problme de Post se prte bien aux rductions et il est donc souvent un bon
candidat pour montrer par rduction quun autre problme est aussi indcidable.
3.5.1 Prsentation
On commence par dnir le problme de correspondance de Post Pcp.
Dnition 3.39 (Pcp). Le problme de correspondance de Post est le suivant.
Une instance est la donne dun entier m et de deux suites u
1
, . . . , u
m
et
v
1
, . . . , v
m
de mots sur un alphabet .
Une solution est une suite dindices i
1
, i
2
, . . . , i
n
de 1, . . . , m telle que :
u
i1
u
i2
u
in
= v
i1
v
i2
v
in
.
Une instance est positive si elle a au moins une solution.
Le problme de correspondance de Post peut tre visualis laide de domi-
nos sur lesquels sont inscrits deux mots. Pour chaque paire de mots (u
i
, v
i
), on
construit un domino sur lequel les mots u
i
et v
i
sont crits lun au dessus de
lautre. On obtient alors les m dominos suivants.
u
1
v
1
,
u
2
v
2
, . . . ,
u
n
v
n
La question est alors de savoir sil existe une faon de disposer cte--cte des
dominos pris dans la liste de telle sorte quon lise le mme mot en haut et en
bas. Comme certains indices de i
1
, . . . , i
n
peuvent tre gaux, il est possible de
rutiliser plusieurs fois le mme domino de la liste.
3.5. PROBLME DE CORRESPONDANCE DE POST 137
Le problme Pcp peut aussi tre formul en termes de morphismes. Soit
A lalphabet a
1
, . . . , a
m
et soient et les deux morphismes de A

dans

dnis respectivement par (a


i
) = u
i
et (a
i
) = v
i
. Linstance de Pcp
donne par les deux suites u
1
, . . . , u
m
et v
1
, . . . , v
m
de mots a une solution si et
seulement si il existe un mot w A

tel que (w) = (w).


Exemple 3.40. Soit linstance du problme de Post donne par m = 4 et les
mots u
1
= ab, u
2
= c, u
3
= ab, u
4
= abc, v
1
= a, v
2
= bcab, v
3
= b et v
4
= bc.
Cette instance du problme de Post admet la solution n = 4, i
1
= 1, i
2
= 2,
i
2
= 1 et i
4
= 4. En eet, on a lgalit u
1
u
2
u
1
u
4
= v
1
v
2
v
1
v
4
= abcababc qui se
visualise sous forme de dominos par
ab
a
c
bcab
ab
a
abc
bc
=
abcababc
abcababc
.
Exemple 3.41. Soit linstance du problme de Post donne par m = 4 et les
mots u
1
= ab, u
2
= a, u
3
= bc u
4
= c, v
1
= bc, v
2
= ab, v
3
= ca et v
4
= a. Un
argument de longueur permet de conclure que cette instance na pas de solution.
On a en eet [u
i
[ [v
i
[ pour tout 1 i m. Dans ce cas, linstance a une
solution si et seulement si u
i
= v
i
pour au moins un entier 1 i m.
An de montrer que Pcp est indcidable, on introduit une variante trs
proche de Pcp. Elle dire seulement dans le fait que le premier domino de la
solution est impos. Son principal intrt est de faciliter la preuve de lindci-
dabilit de Pcp.
Dnition 3.42 (Pcpm). Le problme de correspondance de Post modi est
le suivant.
Une instance est la donne dun entier m et de deux suites u
1
, . . . , u
m
et
v
1
, . . . , v
m
de mots sur un alphabet .
Une solution est une suite dindices i
1
, i
2
, . . . , i
n
de 1, . . . , m telle que :
i
1
= 1 et u
1
u
i2
u
in
= v
1
v
i2
v
in
.
Une instance est positive si elle a au moins une solution.
3.5.2 Indcidabilit
On va montrer que les deux problmes Pcp et Pcpm sont indcidables. On
commence par montrer que les deux problmes sont quivalents.
Lemme 3.43 (quivalence). Pcp est dcidable si et seulement si Pcpm est
dcidable.
Preuve. On montre dabord que si Pcpm est dcidable, alors Pcp est aussi d-
cidable. Soit une instance de Pcp forme par les deux suites de mots u
1
, . . . , u
m
et v
1
, . . . , v
m
. Une solution i
1
, . . . , i
n
de cette instance de Pcp est aussi une solu-
tion de linstance de Pcpm donne par les suites u
i1
, u
1
, . . . , u
m
et v
i1
, v
1
, . . . , v
m
o les mots u
i1
et v
i1
ont t placs en tte. Linstance de Pcp a une solution si
et seulement si une des m instances de Pcpm obtenues en mettant en tte lun
des dominos a une solution. Ceci montre que si Pcpm est dcidable alors Pcp
est dcidable.
138 CHAPITRE 3. CALCULABILIT
Il faut remarquer quon a ramen une instance de Pcp m instances de
Pcpm. Ce nest pas une rduction
m
telle que cela a t dni (cf. dni-
tion 3.39). Il sagit en fait dune rduction de Turing qui est note
T
.
On montre maintenant que si Pcp est dcidable, alors Pcpm est aussi dci-
dable. On eectue une vritable rduction qui transforme une instance de Pcpm
en une instance de Pcp quivalente.
Soit une instance de Pcpm donne par un entier m et deux suites u
1
, . . . , u
m
et v
1
, . . . , v
m
de mots sur un alphabet . On introduit un nouveau symbole $
nappartenant pas et on pose

= $. On dnit les deux morphismes


p et s de

dans

par p(a) = $a et s(a) = a$ pour toute lettre a de . On


vrie que pour tout mot w de

, on a lgalit p(w)$ = $s(w).


On dnit alors linstance de Pcp donne par lentier m

= 2m + 1 et les
deux suites de mots u

1
, . . . , u

2m+1
et v

1
, . . . , v

2m+1
dnis sur lalphabet

de
la manire suivante.
u

k
=
_

_
p(u
k
) si 1 k m
p(u
km
)$ si m < k 2m
p(u
1
) si k = 2m+ 1
et v

k
=
_

_
s(v
k
) si 1 k m
s(v
km
) si m < k 2m
$s(v
1
) si k = 2m+ 1
Soit 1, i
2
. . . , i
n
une solution de linstance de Pcpm, cest--dire une suite telle
lgalit u
1
u
i2
u
in
= v
1
v
i2
v
in
soit vrie. En utilisant la relation p(w)$ =
$s(w, on obtient lgalit p(u
1
)p(u
i2
) p(u
in
)$ = $s(v
1
)s(v
i2
) s(v
in
) qui
se traduit par lgalit u

2m+1
u

i2
u

in1
u

in+m
= v

2m+1
v

i2
v

in1
v

in+m
. On
constate que la suite 2m + 1, i
2
, . . . , i
n1
, i
n
+ m est une solution de linstance
de Pcp.
On vrie que les seules solutions minimales de cette instance de Pcp sont
les suites dindices i
1
, . . . , i
n
vriant les conditions suivantes :
i
1
= 2n + 1,
1 i
k
m pour tout 2 k n 1,
m + 1 i
n
2m.
et alors, par construction, 1, i
2
, . . . , i
n1
, i
n
m est chaque fois une solution
de linstance de Pcpm. Les solutions non minimales sont obtenues en prenant
des concatnations de solutions minimales. On retrouve ces concatnations par
les occurrences du mot $$ dans le mot u

i1
u

in
= v

i1
v

in
. Ceci montre que
linstance de dpart de Pcpm a une solution si et seulement si linstance de
Pcp associe a une solution. La fonction qui calcule linstance de Pcp associe
linstance de Pcpm donne est calculable par machine de Turing dterministe.
On en dduit quon a trouv une rduction de Pcpm Pcp.
Thorme 3.44 (Post 1946). Les deux problmes Pcp et Pcpm sont indci-
dables.
Dans le rsultat prcdent, la taille de lalphabet sur lequel sont crits les
mots u
i
et v
i
nest pas xe. En fait, le problme Pcp reste indcidable mme
si la taille de cet alphabet est xe 2. Par contre Pcp est dcidable sur un
alphabet unaire.
Preuve. Comme Pcp et Pcpm sont quivalents, il sut de montrer que Pcpm
est indcidable. On va exhiber une rduction du langage L

Pcpm. Soit une


instance de L

forme par une machine de Turing / et une entre w. Daprs


la proposition 3.12, on peut supposer que la machine / est normalise. On
3.5. PROBLME DE CORRESPONDANCE DE POST 139
peut en outre supposer que si la machine accepte, elle termine avec une bande
remplie de symboles blancs #. Pour cela, on ajoute quelques transitions qui
se chargent de remplir la bande avec # une fois que la machine a atteint ltat
dacceptation q
+
. Ceci signie quon peut supposer que la dernire conguration
dun calcul acceptant est la conguration q
+
.
Le mot w est accept par la machine / sil existe un calcul q
0
w = C
0

C
1
C
l
= q
+
de la conguration initiale q
0
w la conguration accep-
tante q
+
. On construit une instance de Pcpm telle que ses solutions minimales
produisent le mot C
0
$C
1
$ $C
l
.
Cette instance est forme par toutes les paires (u
i
, v
i
) de mots suivantes :
la premire paire u
1
= $q
0
w$ et v
1
= $ pour initier le calcul,
une paire u
a
= a et v
a
= a pour tout a de pour recopier cette lettre,
une paire u = $ et v = $ pour passer la conguration suivante,
une paire u = $ et v = #$ pour passer la conguration suivante en
ajoutant un # implicite la n de la conguration,
une paire u

= pa et v

= bq pour toute transition = p, a q, b,


de /,
une paire u

= cpa et v

= qcb pour toute transition = p, a q, b,


de / et toute lettre c ,
une paire u = aq
+
et v = q
+
et une autre paire u = q
+
a et v = q
+
pour
toute lettre a an de rduire la conguration une fois ltat q
+
atteint,
une paire u = q
+
$ et v = pour terminer.
Sous forme de dominos, on a les paires
$
$q
0
w$
,
a
a
,
b
b
. . . ,
#
#
,
$
$
,
$
#$
pa
bq
, . . . ,
cpa
qcb
, . . . ,
aq
+
q
+
,
q
+
a
q
+
, . . . ,
q
+
$
.
On vrie (laborieusement) que toute solution de cette instance de Pcpm pro-
vient ncessairement dun calcul acceptant le mot w.
3.5.3 Application aux grammaires algbriques
On utilise maintenant lindcidabilit de Pcp pour montrer lindcidabilit
de questions trs naturelles sur les grammaires. Le rsultat est chaque fois
obtenu par une rduction de Pcp au problme considr.
Soit une instance de Pcp donne par deux suites u
1
, . . . , u
m
et v
1
, . . . , v
m
de
mots sur un alphabet . On introduit un alphabet A = a
1
, . . . , a
m
form de
m nouvelles lettres nappartenant pas . On dnit ensuite les deux langages
L
u
et L

u
sur lalphabet A + par
L
u
= u
i1
u
i2
u
in
a
in
a
in1
a
i1
[ n 0 et 1 i
k
m
L

u
= wa
in
a
in1
a
i1
[ n 0, w

et w ,= u
i1
u
in
.
On alors le lemme.
Lemme 3.45. Les deux langages L
u
et L

u
sont algbriques.
Preuve. Le langage L
u
est facilement engendr par la grammaire
S
n

i=1
u
i
Sa
i
+.
140 CHAPITRE 3. CALCULABILIT
Pour le langage L

u
, on considre les trois cas suivant que w est un suxe
propre de u
i1
u
in
, que w est de longueur suprieure u
i1
u
in
ou que w
et u
i1
u
in
dirent par une lettre. Le langage L

u
est gal L
G
(S) o la
grammaire G possde les rgles suivantes.
S
n

i=1
u
i
Sa
i
+

1im
|u|=|ui|
u=ui
uRa
i
+

1im
|u|<|ui|
uTa
i
+

1im
b
u
i
bV a
i
R
n

i=1
Ra
i
+

b
bR +
T
n

i=1
Ta
i
+
V

b
bV +
Lemme 3.46. On a les galits (A + )

L
u
= L

u
((A + )

)
Preuve. Il sut de remarquer que L
u

et

L
u
= L

u
.
Proposition 3.47. Les problmes suivants sont indcidables :
1. pour deux grammaires G et G

, est-ce que L
G
(S) L
G
(S

) = ?
2. pour deux grammaires G et G

, est-ce que L
G
(S) = L
G
(S

) ?
3. pour une grammaires G, est-ce que L
G
(S) = A

?
4. pour une grammaire G, est-ce que G est ambigu ?
Preuve. 1 Le problme de correspondance de Post a une solution si et et
seulement si lintersection L
u
L
v
est non vide. Les grammaires engen-
drant les langages L
u
et L
v
peuvent tre calcules par une machine de
Turing dterministe partir de linstance de Pcp. On a donc construit
une rduction de Pcp au problme considr.
3 Lintersection L
u
L
v
est vide si et seulement si lunion (A + )

L
u

(A+)

L
v
est gale (A+)

. On a donc une rduction du problme 1


au problme 3. Ceci montre que le problme 3 est aussi indcidable.
2 Comme le problme 3 se rduit au problme 2, ce dernier problme est
galement indcidable.
4 Le langage (L
u
+L
v
) est gal L
G
(S) o la grammaire G est donne
par les rgles suivantes.
S S
1
+S
2
S
1

m

i=1
u
i
S
1
a
i
+
m

i=1
u
i
a
i
S
2

m

i=1
v
i
S
2
a
i
+
m

i=1
v
i
a
i
.
3.6. THORME DE RCURSION 141
Cette grammaire est ambigu si et seulement si lintersection L
u
L
v
est
non vide. On a donc une rduction du problme 1 au problme 4 qui
montre que le problme 4 est encore indcidable.
3.6 Thorme de rcursion
Le thorme de rcursion est un rsultat central de la calculabilit. Il in-
tervient ds quun modle de calcul est quivalent aux machines de Turing. Ce
thorme est souvent vu comme un paradoxe car il permet de construire des
machines qui sont capables de se reproduire. Il est alors un ingrdient essentiel
la fabrication de virus informatiques. Il a aussi des implications en logique
mathmatique. La proposition suivante est un cas particulier du thorme de
rcursion. Ce premier rsultat plus simple permet de comprendre les mcanismes
mis en uvre.
Proposition 3.48 (Quines). Il existe des machines de Turing qui crivent leur
propre codage. De telles machines sont appelles Quines.
La proposition a pour consquence que dans tout langage de programmation
quivalent aux machines de Turing, on peut crire un programme qui ache son
propre code.
Preuve. On considre des machines de Turing qui calculent des fonctions et qui
sarrtent sur toute entre. On suppose que ces machines sont normalises. Elles
possdent un unique tat nal f o se termine tout calcul. Pour simplier la
composition, on suppose aussi que les machines sarrtent avec la tte de lecture
sur la premire position de la bande. Pour deux machines / et /

, on note
//

la machine obtenue en composant de manire squentielle les machines


/ et /

. Pour une entre w, la machine //

donne le rsultat du calcul


de /

qui a pris pour entre le rsultat du calcul de / sur w.


On commence par construire les machines suivantes.
1. tant donns les codages /) et /

) de deux machines de Turing, la


machine ( calcule le codage //

) de la machine //

.
2. tant donn un mot w, la machine T
w
calcule le mot w.
3. Pour une entre w, la machine 1
0
ache le codage T
w
) de la machine
qui ache w.
4. Pour une entre w de la forme w = /), la machine 1 calcule le codage
T
w
/) de la composition de T
w
et de /.
On considre alors la machine Q = T
R
1 qui est la composition squentielle
des machines T
R
et 1. Aprs le fonctionnement de la machine T
R
, la bande
contient 1). Aprs le fonctionnement de la machine 1, la bande contient
T
R
1) qui est bien le codage de la machine Q. Ceci est schmatis de la
faon suivante.

P
R
1)
R
T
R
R)
142 CHAPITRE 3. CALCULABILIT
On illustre la preuve de la proposition en montrant comment celle-ci per-
met de donner un programme en langage C qui ache son propre code. La
mme mthode pourrait tre applique dans nimporte quel autre langage de
programmation.
Le premier problme rsoudre est un problme de notation. Lorsquun
caractre " ou est inclus dans une chane il doit tre prcd dun ca-
ractre dchappement . Pour une chane w sur lalphabet ASCII, on note
w la chane obtenue en insrant un caractre avant chaque caractre "
ou . Si w est par exemple la chane char *"\a\\", alors la chane w est
char *\"\\a\\\\\".
Le second problme est quun programme C ne peut pas relire ce quil a
crit. La machine T
w
est donc transforme en une fonction qui retourne une
chane de caractres. Pour la chane w gale char *"\a\\", la fonction T
w
scrit de la manire suivante en langage C.
char *P(){ return "char *\"\\a\\\\\"";}
La machine 1 est transforme en une fonction qui ache le code de T
w
. Elle
scrit de la manire suivante en langage C.
void R(char* w) {
printf("char *P(){ return \"";
while(*w != \0) {
if (*w == \\ || *w == \")
printf("\\");
printf("%c", *w++);
}
printf("\";}");
}
Le code de la machine Q est nalement le suivant.
void char* P(){ return "...";}
void main(){
char* w = P();
printf("char *P(){ return \"";
while(*w != \0) {
if (*w == \\ || *w == \")
printf("\\");
printf("%c", *w++);
}
printf("\";}");
printf("%s", w);
}
o les ... sont remplacs par w o w est le code void main(){ ... } de la
fonction main.
Il est bien sr possible de faire plus concis comme lexemple suivant qui
contourne le problme du caractre dchappement en utilisant le code ASCII
de la quote " qui est 34 en dcimal.
main(){char *s="main(){char *s=%c%s%c;printf(s,34,s,34);}";
printf(s,34,s,34);}
3.7. MACHINES LINAIREMENT BORNES 143
Le thorme suivant tend la proposition prcdente dans la mesure o une
machine peut combiner son propre codage avec dautres donnes.
Thorme 3.49 (Thorme de rcursion). Soit t :

une fonction
calculable par machine de Turing. Il existe une machine de Turing / qui calcule
la fonction m : w t(w, /)).
Preuve. On commence par construire la machine 1

, qui pour une entre de la


forme u$/) calcule u$P
M
/). Soit T une machine de Turing qui calcule la
fonction t. On considre la machine / = P
R

T
1

T qui est la composition s-


quentielle des machines P
R

T
, 1

et T . On a alors le schma de fonctionnement


suivant.
w$
P
R

T
w$1

T )
R

w$P
R

T
1

T )
T
t(w, /))
Thorme 3.50 (Point xe). Soit t une fonction calculable par machine de
Turing qui /) associe une machine de Turing /

= t(/)). Alors, il existe


une machine / telle que / et t(/) sont quivalentes.
Preuve. On considre la machine / suivante (qui est correctement dnie
daprs la proposition prcdente) :
input w
x /)
y t(x)
simuler y sur lentre w
3.7 Machines linairement bornes
Les machines linairement bornes sont des machines qui utilisent unique-
ment la portion de la bande o est crite lentre. Ces machines jouent un rle
important pour plusieurs raisons. Dune part, elles caractrisent les langages en-
gendrs par les grammaires contextuelles qui gnralisent les grammaires pour
les langages algbriques. Dautre part, elles se situent la frontire de lindci-
dabilit puisque le problme de lacceptation est dcidable alors que le problme
du vide est indcidable.
3.7.1 Dnition
Une machine de Turing / est dite linairement borne si elle ncrit pas en
dehors de lespace utilis par la donne.
Comme on peut toujours supposer quune machine de Turing ncrit pas le
symbole blanc # (en le dupliquant ventuellement en un autre symbole #

), on
peut aussi dire quune machine linairement borne est une machine telle que si
p, # q, b, x est une transition alors, b = # et x = . Ceci empche la machine
de modier les symboles blancs prsents sur la bande.
Lespace utilis par une machine linairement borne peut tre augment
en ajoutant de nouveaux symboles lalphabet de bande mais lespace ainsi
disponible reste proportionnel la taille de lentre. Ceci justie la terminologie.
144 CHAPITRE 3. CALCULABILIT
3.7.2 Grammaires contextuelles
Lobjectif de cette partie est de dnir les grammaires contextuelles et de
montrer quelles ont le mme pouvoir dexpression que les machines linairement
bornes. Ceci signie quun langage est accept par une machine linairement
borne si et seulement si il est engendr par une grammaire contextuelle. On
commence par dnir les grammaires les plus gnrales.
Dnition 3.51. Une grammaire est un quadruplet (A, V, P, S) o A est un
alphabet ni, V un ensemble ni de variables, S V est laxiome et P est un
ensemble ni de rgles inclus dans (A +V )

(A +V )

.
Une rgle (w, w

) P est encore note w w

. La notion de drivation des


grammaires algbriques (cf. dnition 2.1 p. 70) stend de faon naturelle ces
grammaires plus gnrales. Un mot u se drive en un mot u

sil existe des mots


, (A + V )

et une rgle w w

tels que u = w et u

= w

. On note

la clture rexive et transitive de la relation . Lensemble engendr par


la grammaire est par dnition lensemble L
G
(S) = w A

[ S

w.
Dnition 3.52. Une grammaire est dite contextuelle si toutes ses rgles de la
forme suivante.
soit la rgle S qui permet dengendrer le mot vide partir de laxiome,
soit une rgle uTv uwv o T V est une variable, u, v (A+V )

sont
des mots forms de lettres et de variables et w (A + V S)
+
est un
mot non vide form de lettres et de variables autres que laxiome.
La dnition dune grammaire contextuelle impose deux contraintes aux
rgles de celle-ci. Dune part, une seule variable T est remplace par un mot w
pour passer du membre gauche au membre droit. Dautre part, le mot w sub-
stitu T nest jamais vide lexception dune ventuelle rgle S . Cette
dernire condition impose que le membre droit dune rgle est toujours de lon-
gueur suprieure ou gale au membre gauche. Elle est en fait llment important
de cette dnition comme le montre la proposition suivante. Une grammaire est
dite croissante si chacune de ses rgle w w

vrie [w[ [w

[.
La proposition suivante montre que grammaires contextuelles et grammaires
croissantes sont quivalentes pour les langages ne contenant pas le mot vide.
Proposition 3.53. Un langage L A
+
est engendr par une grammaire
contextuelle si et seulement si il est engendr par une grammaire croissante.
Une grammaire contextuelle qui ne contient pas la rgle S est une
grammaire croissante. Si L est engendr par une grammaire contextuelle, celle-
ci ne contient pas la rgle S .
La rciproque est un peu plus dlicate. Elle consiste transformer une gram-
maire croissante en une grammaire contextuelle quivalente. Chaque rgle de la
grammaire croissante est remplace par plusieurs rgles dans la grammaire crois-
sante construite. Quitte introduire une nouvelle variable pour chaque lettre
de A, on peut supposer que les rgles de la grammaire croissante sont des deux
formes suivantes.
soit de la forme S a pour une variable S V et une lettre a A,
soit de la forme S
i1
S
i
k
S
j1
S
jm
avec m n 1.
3.7. MACHINES LINAIREMENT BORNES 145
Les rgles de la forme S a sont laisses inchanges. Chaque rgle de la
forme S
i1
S
i
k
S
j1
S
jm
est remplace par plusieurs rgles donnes ci-
dessous.
S
i1
S
i
k
Z
1
S
i2
S
i
k
Z
1
Z
2
S
i3
S
i
k
Z
1
Z
2
Z
3
S
i4
S
i
k

Z
1
Z
k1
S
i
k
Z
1
Z
k1
S
j
k
S
jm
Z
1
Z
k1
S
j
k
S
jm
Z
1
Z
k2
S
j
k1
S
jm
Z
1
Z
k3
S
j
k2
S
jm

Z
1
S
j2
S
jm
S
j1
S
jm
o Z
1
, Z
2
, . . . , Z
k1
sont k1 nouvelles variables propres la rgle transforme.
Il est facile de vrier que les nouvelles rgles simulent lancienne rgle.
Les grammaires croissantes permettent de dmontrer le rsultat suivant.
Thorme 3.54. Un langage est engendr par une grammaire contextuelle si
et seulement sil est accept par une machine de Turing linairement borne.
Preuve. tant donn une grammaire quelconque, on peut toujours faire une
machine de Turing non dterministe qui devine la drivation lenvers. La ma-
chine accepte lorsquelle trouve laxiome. Si la grammaire est contextuelle, les-
pace mmoire utilis diminue au cours du calcul. On obtient donc une machine
linairement borne.
Rciproquement, soit / = (Q, , , E, q
0
, F, #) une machine linairement
borne. Sans perte de gnralit, on peut supposer que la machine / a un
seul tat nal q
f
, cest--dire que F = q
f
. On construit alors la grammaire
contextuelle (A, V, P, S) suivante. Lalphabet A est lalphabet dentre de /.
Lensemble V de variables est S()(Q) qui contient laxiome S,
les paires (a, b) formes dune lettre a de lalphabet de bande et dune lettre
b de lalphabet dentre ainsi que les triplets (q, a, b) forms dun tat q Q,
dune lettre a de lalphabet de bande et dune lettre b de lalphabet
dentre. Lensemble P contient les rgles des trois types suivants.
Rgles dinitialisation
une rgle S S(a, a) pour chaque a A,
une rgle S (q
0
, a, a) pour chaque a A,
Rgles de simulation
une rgle (q, a, c)(d, e) (b, c)(p, d, e) pour chaque transition q, a
p, b, de / et chaque c, e et d ,
une rgle (d, e)(q, a, c) (p, d, e)(b, c) pour chaque transition q, a
p, b, de / et chaque c, e et d ,
Rgles de terminaison
une rgle (q
f
, b, a)(d, e) a(q
f
, d, e) pour chaque a, e et b, d ,
une rgle (q
f
, b, a) a pour chaque a et b ,
3.7.3 Dcidabilit
Les machines linairement bornes se situent la frontire entre la dcida-
bilit et lindcidabilit. Certains problmes comme celui de lacceptation de-
viennent dcidables pour les machines linairement bornes alors que dautres
comme celui du vide restent indcidables.
Thorme 3.55. Il peut tre dcid si une machine linairement borne accepte
un mot w.
146 CHAPITRE 3. CALCULABILIT
Pour une entre de longueur n, le nombre de congurations possibles de la
machine n[Q[[[
n
o [Q[ est le nombre dtats et [[ le nombre de symboles
de bande. On peut construire eectivement le graphe des calculs de la machine
sur lentre w et dcider sil y a, dans ce graphe, un chemin de la conguration
initiale q
0
w une conguration acceptante.
Thorme 3.56. Il est indcidable de savoir si une machine / linairement
borne naccepte aucun mot, cest--dire L(/) = .
Preuve. Soit / une machine de Turing quelconque et soit w un mot dentre
de /. Soit $ un nouveau symbole qui nappartient pas Q . On dnit le
langage X
w
de la manire suivante.
X
w
= C
0
$C
1
$ $C
k
[ q
0
w = C
0
C
k
est un calcul acceptant w.
Le langage X
w
est accept par une machine linairement borne /

qui peut
tre eectivement construite partir de la machine / et de w. La machine /

doit vrier que C


0
= q
0
w, que C
i
C
i+1
pour 0 i < k et que C
k
est
acceptante. On a alors les quivalences
w L(/) X
w
,= L(/

) ,=
qui montrent que le problme de lacceptation pour les machines de Turing se
rduit au problme du vide pour les machines linairement bornes. Le problme
du vide pour les machines linairement bornes est donc indcidable.
3.7.4 Complmentation
Nous montrons dans cette partie que la famille des langages accepts par des
machines linairement bornes est ferme par complmentation. Ce thorme
est un trs joli rsultat. Nous donnons ensuite une gnralisation un cadre
beaucoup plus large.
Thorme 3.57 (Immerman-Szelepcsnyi). Pour toute machine / linaire-
ment borne et non dterministe, il existe une machine /

linairement borne
et non dterministe qui accepte le complmentaire du langage accept par /.
Soit L un langage accept par une machine linairement borne /. Pour
une entre w

de /, on note N(w) le nombre de congurations de / qui


peuvent tre atteintes par / partir de lentre w, cest--dire de la congu-
ration initiale q
0
w. On a lingalit N(w) K
|w|
pour une constante K bien
choisie. Le nombre N(w) peut donc tre crit en base K sur une bande de
longueur [w[.
On construit une machine /

linairement borne et non dterministe qui


accepte le complmentaire

L du langage L. Pour une entre w, le calcul


de /

comprend les deux tapes principales suivantes.


1. calcul de N(w)
2. dterminer si w L en utilisant N(w)
On commence par dcrire ltape 1 puis on dcrit ltape 2.
3.7. MACHINES LINAIREMENT BORNES 147
Calcul de N(w)
On construit dans cette section une machine linairement borne et non
dterministe qui calcule N(w) partir de w. On rappelle quune machine non
dterministe calcule une fonction f si pour chaque entre w, il existe au moins
un calcul acceptant et que de plus chaque calcul acceptant produit la valeur
f(w).
Pour lentre w, on note C(w), lensemble des congurations contenues dans
lespace [w[. On note galement C
k
(w) lensemble des congurations qui peuvent
tre atteintes en au plus k tapes de calcul de / partir de la conguration
initiale q
0
w. On note nalement N
k
(w) le cardinal de lensemble C
k
(w). La
suite (N
k
(w))
k0
est bien sr croissante. Le nombre N
0
(w) est par dnition
gal 1 et le nombre N(w) est gal N
k
(w) o k est le plus petit entier tel que
N
k
(w) = N
k+1
(w). Pour calculer N(w), il sut donc de savoir calculer N
k+1
(w)
partir de N
k
(w). La procdure suivante calcule N
k+1
(w) partir de N
k
(w).
Lalgorithme suivant prend en entre la valeur de N
k
(w) et calcule de fa-
on non dterministe N
k+1
(w). Il sarrte soit en donnant la valeur exacte
de N
k+1
(w) soit sur un chec mais au moins un calcul conduit la valeur
de N
k+1
(w). Cet algorithme fonctionne de la faon suivante. Il parcourt toutes
les congurations de C(w). Pour chacune dentre elles, il dtermine si elle ap-
partient C
k+1
(w) et il retourne la n le cardinal de cet ensemble. Lal-
gorithme procde de la faon suivante pour dterminer si une conguration c
appartient C
k+1
(w). Il parcourt nouveau toutes les congurations c

de C(w)
et pour chacune dentre elle, il choisit de faon non dterministe si elle appar-
tient C
k
(w). Si lalgorithme choisit que c

appartient C(w), il le vrie en


trouvant de faon dterministe un calcul de longueur au plus k conduisant c

.
Si cette vrication choue, lalgorithme choue globalement. Ensuite, si c

est
gal c ou si une transition de / permet de passer de c

c, il est acquis
que c appartient C
k+1
(w). Inversement, toute conguration de C
k+1
(w) est
bien trouve ainsi. Lalgorithme utilise la donne N
k
(w) pour vrier nale-
ment que pour chaque conguration c

, il ne sest pas tromp en choisissant si


c

appartient ou non C
k
(w). Pendant le parcours des congurations c

, lalgo-
rithme compte le nombre de congurations mises dans C
k
(w) et vrie la n
que ce nombre est bien gal N
k
(w). Cette vrication assure que lalgorithme
noublie aucune conguration de C
k
(w). Puisque lalgorithme vrie aussi que
chaque conguration mise dans C
k
(w) est eectivement dans C
k
(w), tous les
choix de lalgorithme sont exacts. Si lalgorithme fait un seul mauvais choix, il
choue mais si tous ses choix sont exacts, il donne la valeur de N
k+1
(w).
Acceptation si w / L(/)
Nous terminons la preuve du thorme dImmerman et Szelepcsnyi en don-
nant la machine /

qui accepte le complmentaire du langage accept par /.


Cette machine /

est donne sous la forme dun algorithme.


Lalgorithme suivant calcule de faon non dterministe si un mot w nappar-
tient pas au langage L(/) des mots accepts par /. Cet algorithme est assez
similaire lalgorithme prcdent pour calculer N
k+1
(w) partir de N
k
(w). Il
fait des choix non dterministes et il utilise la donne N(w) pour vrier la n
que les choix ont t corrects. Lalgorithme procde de la faon suivante pour
dterminer que w nappartient pas L(/). Il parcourt toutes les congura-
148 CHAPITRE 3. CALCULABILIT
1: i 0 // Compteur des congurations dans N
k+1
(w)
2: for c C(w) do
3: j 0 // Compteur des congurations dans N
k
(w)
4: for c

C(w) do
5: Choisir de faon non dterministe si q
0
w
k
c
6: if q
0
w
k
c then
7: Vrier de faon non dterministe que q
0
w
k
c
8: if la vrication russit then
9: j j + 1
10: else
11: CHEC
12: if c

= c ou c

c then
13: i i + 1
14: break
15: if j < N
k
(w) then
16: CHEC
17: Return i
Algorithme 7: Calcul de N
k+1
(w)
tions de C(w) et pour chacune dentre elles, il choisit si elle accessible partir
de q
0
w. Si le choix est positif, lalgorithme le vrie en trouvant de faon non
dterministe un calcul de q
0
w cette conguration. la n de ce parcours,
le nombre de congurations choisies comme accessibles est compar avec N(w)
pour vrier quaucune conguration rellement accessible na t mise de ct.
Si nalement aucune conguration accessible nest nale, lalgorithme accepte
le mot car il nest pas dans L(/).
1: i 0 // Compteur des congurations dans N(w)
2: for c C(w) do
3: Choisir de faon non dterministe si q
0
w

c
4: if q
0
w

c then
5: Vrier de faon non dterministe que q
0
w

c
6: if la vrication russit then
7: i i + 1
8: else
9: CHEC
10: if c est acceptante then
11: CHEC
12: if i < N(w) then
13: CHEC
14: else
15: ACCEPTATION
Algorithme 8: Machine pour le complmentaire
3.8. DCIDABILIT DE THORIES LOGIQUES 149
Extension
Nous allons voir que le thorme prcdent peut tre tabli dans un cadre
plus large. Nous commenons par analyser lespace utilis par les deux algo-
rithmes donns pour tablir le rsultat.
Pour chaque entre w, les deux algorithmes manipulent un nombre xe de
congurations de C(w) et un nombre xe de compteurs borns par le cardinal
de C(w). Le premier algorithme utilise par exemple deux congurations c et c

,
deux compteurs i et j ainsi que deux congurations et un compteur supplmen-
taires pour la vrication de q
0
w
i
c. Lespace ncessaire pour contenir toutes
ces donnes est proportionnel la taille maximale dune conguration de C(w).
Lensemble C(w) a t dni comme lensemble des congurations de taille
au plus [w[ car, dans le cas dune machine linairement borne, cet ensemble
contient toutes les congurations accessibles partir de q
0
w. Si la machine /
nest pas linairement borne, il faut dnir C(w) comme lensemble des congu-
rations de taille au plus s(w) o s(w) est la taille maximale dune conguration
accessible partir de q
0
w. Cette taille maximale existe toujours si la machine
sarrte sur toutes les entres.
Si la machine / nest plus linairement borne, il est possible de modi-
er le premier algorithme qui calcule N(w) pour quil calcule galement s(w).
Le second algorithme peut alors utiliser cette valeur pour numrer toutes les
congurations de C(w).
Le premier algorithme calcule simultanment N
k+1
(w) et s
k+1
(w) en par-
tant de N
k
(w) et s
k
(w) o s
k
(w) est la longueur maximale dune conguration
accessible en au plus k tapes de calcul partir de q
0
w. Lnumration des
conguration c se fait alors sur les congurations de longueur au plus s
k
(w) +1
puisque s
k+1
(w) s
k
(w) + 1. Lnumration des conguration c

seectue
sur les congurations de longueur au plus s
k
(w). Pour chaque conguration
de C
k
(w) trouve, lalgorithme met jour la valeur de s
k+1
(w).
Pour une fonction s de N dans N, on dit que une machine de Turing est
despace s si pour toute entre w, toute conguration accessible partir de q
0
w
est de longueur au plus s([w[). Nous avons en fait dmontr le rsultat suivant.
Thorme 3.58 (Immerman-Szelepcsnyi 1987). Soit s une fonction de N
dans N telle que s(n) log n. Pour toute machine / non-dterministe des-
pace s, il existe une machine /

non dterministe despace Ks pour une constante K


qui accepte le complmentaire du langage accept par /.
3.8 Dcidabilit de thories logiques
3.8.1 Modles et formules logiques
Une logique est dabord dtermine par lensemble sous-jacent appel modle
qui contient les lments sur lequel on travaille. Elle est ensuite xe par les
oprateurs logiques utiliss dans les formules ainsi que les formules atomiques
autorises sur les lments. La manire dont sont utiliss les quanticateurs est
aussi importante. Dans certains cas, on sautorise uniquement quantier sur les
lments du modle. On parle alors de logique du premier ordre. Dans dautres
cas, les quanticateurs peuvent porter sur des ensembles ou des relations. On
parle alors de logique du second ordre. La logique du second ordre est qualie
150 CHAPITRE 3. CALCULABILIT
de monadique lorsque les quantications portent seulement sur les ensembles
mais pas sur les relations ou les fonctions.
Dans toutes cette partie, le modle est toujours lensemble N des entiers.
les oprations atomiques sur les entiers que lon considre sont laddition, la
multiplication et lordre.
modle : N.
connecteurs boolens : , ,
quanticateur : ,
oprations : +, , <
On va sintresser essentiellement la logique du premier ordre des entiers avec
laddition seulement ou laddition et la multiplication ainsi qu la logique du
second ordre des entiers avec lordre.
On rappelle auparavant quelques dnitions lmentaires de logique.
Dnition 3.59 (Formules closes). Une formule close est une formule sans
variable libre, cest--dire une formule o toute variable est sous la porte dun
quanticateur.
Dnition 3.60. On dit quune thorie logique est dcidable sil est dcidable
de savoir si une formule close est vraie.
Dnition 3.61 (Forme prnexe). Une formule est en forme prnexe si elle
a la forme = Q
1
x
1
Q
2
x
2
. . . Q
n
x
n
o chaque quanticateur Q
i
est soit le
quanticateur universel ou le quanticateur existentiel pour tout 1 i n
et o la formule est sans quanticateur.
3.8.2 Arithmtique de Presburger
Larithmtique de Presburger est la thorie du premier ordre des entiers
munis de laddition mais pas de la multiplication.
Thorme 3.62 (Presburger 1929). La thorie au premier ordre des entiers
munis de laddition est dcidable.
Preuve. On montre le rsultat en utilisant des automates. On montre en eet
que pour toute formule de la logique de Presburger, lensemble des n-uplets qui
satisfont la formule est un langage rationnel. La preuve se fait par rcurrence
sur le nombre de quanticateurs de .
Soit une formule close quon suppose sous forme prnexe. Elle scrit donc
= Q
1
x
1
Q
2
x
2
. . . Q
n
x
n
. Pour tout entier 1 k n, on dnit
k
par
k
=
Q
k+1
x
k+1
. . . Q
n
x
n
avec les conventions
0
= et
n
= . Pour 0 k n,
la formule
k
a k variables libres et elle scrit donc
k
(x
1
, x
2
, . . . , x
k
).
On montre par rcurrence sur n k que lensemble des k-uplets qui satis-
font
k
est un ensemble rationnel. On dnit dabord un codage qui permet
dcrire les k-uplets dentiers. Chaque entier est crit en binaire sur lalphabet
0, 1. Un k-uplet dentiers est crit sur lalphabet
k
= 0, 1
k
en ajoutant
ventuellement des zros en tte des critures pour les rendre de la mme lon-
gueur. On dnit lensemble X
k
par
X
k
= (n
1
, . . . , n
k
) [
k
(n
1
, . . . , n
k
) est vraie.
On construit par rcurrence sur nk, un automate /
k
qui accepte les critures
sur
k
des lments de X
k
. Ainsi, lautomate /
0
(dni sur un alphabet unaire)
accepte au moins un mot si et seulement si la formule est vraie.
3.8. DCIDABILIT DE THORIES LOGIQUES 151
On commence par la construction de lautomate /
n
qui accepte les n-uplets
qui satisfont la formule . Celle-ci se dcompose comme une combinaison boo-
lenne de formules atomiques de la forme x
i
= x
j
ou x
i
+ x
j
= x
k
. Comme la
classe des langages rationnels est close pour toutes les oprations boolennes, il
sut de construire un automate pour chacune des formules atomiques.
0
(1, 1)
(0, 0)
Fig. 3.11 Automate de galit
Lautomate pour lgalit sobtient trs facilement (cf.gure 3.11). Pour lad-
c c
(1, 1, 0)
(0, 0, 1)
(1, 0, 1)
(0, 1, 1)
(0, 0, 0)
(1, 1, 1)
(1, 0, 0)
(0, 1, 0)
Fig. 3.12 Automate de laddition
dition, on construit un automate codterministe en faisant comme sil lisait de
la droite vers la gauche. Sur la gure 3.12, ltat c est ltat avec retenue et
ltat c est ltat sans retenue.
Pour le passage de /
k+1
/
k
, on crit
k
= Q
k+1
x
k+1

k+1
et on considre
deux cas suivant que Q
k+1
est le quanticateur ou le quanticateur . Dans le
premier cas, on se ramne au second cas en crivant que
k
= x
k+1

k+1
et
en utilisant la clture par complmentation des langages rationnels. Il ne reste
plus qu traiter le cas o Q
k+1
est le quanticateur existentiel.
Lautomate /
k
est obtenu partir de lautomate /
k+1
en oubliant la der-
nire composante de lalphabet, cest--dire en projetant lalphabet
k+1
sur
lalphabet
k
par le morphisme
k
dni par
k
(b
1
, . . . , b
k
, b
k+1
) = (b
1
, . . . , b
k
).
Lautomate /
k
devine en quelque sorte lentier x
k+1
. Lautomate /
k
a mme
ensemble dtats que lautomate /
k+1
. Les transitions de /
k
sont toutes les
transitions de la forme p

k
(x)
q o p
x
q est une transition de /
k+1
. Les
tats naux de /
k
dont ceux de /
k+1
. Les tats initiaux de /
k
sont les tats
qui peuvent tre atteints en partant dun tat initial de /
k+1
en lisant des lettres
gales la lettre (0, . . . , 0) de
k
. Ce changement permet de prendre en compte
les entiers x
k+1
ayant une criture binaire plus longue que celles des entiers
x
1
, . . . , x
k
.
La construction de lautomate /
k
partir de lautomate /
k+1
est illustre
par lexemple suivant.
152 CHAPITRE 3. CALCULABILIT
c c
(1, 0)
(0, 1)
(1, 1)
(0, 1)
(0, 0)
(1, 1)
(1, 0)
(0, 0)
Fig. 3.13 Automate de la relation x y
Exemple 3.63. La relation x y est quivalente la formule z x +z = y. On
obtient donc un automate pour la formule x y en partant de lautomate de la
gure 3.12 et en projetant lalphabet
3
sur
2
par (b
1
, b
2
, b
3
) = (b
1
, b
3
) (cf.
gure 3.13).
cc
c c
cc
c c
(1, 1, 1)
(0, 1, 1)
(0, 1, 0)
(1, 1, 0)
(0, 0, 1)
(0, 0, 0)
(1, 0, 1)
(1, 0, 0)
Fig. 3.14 Automate de la relation x = y +z z = y +y
Exemple 3.64. Lquation x 0 mod 3 est quivalente la formule y, z x =
y + z z = y + y. En combinant les automates des relations x = y + z et
z = y +y, on obtient lautomate de la gure 3.14. En projetant lalphabet sur sa
premire composante, on obtient un automate non dterministe qui accepte les
critures binaires des multiples de 3. En dterminisant cet automate, on trouve
lautomate de la gure 3.15 (p. 159).
Nous avons montr que la logique su premier ordre des entiers munis de
laddition es dcidable. Par contre, cette logique devient indcidable ds quon
ajoute la multiplication comme ltablit le thorme de Tarski.
Thorme 3.65 (Tarski 1936). La thorie au premier ordre des entiers munis
de laddition et de la multiplication est indcidable.
La preuve de ce rsultat est dicile et technique et nous ne la donnons pas
ici. Elle consiste rduire le problme de lacceptation ce problme. toute
instance /, w) du problme dacceptation, on associe une formule x
M,w
qui est vraie si et seulement si le mot w est accept par la machine /. Lide
est de coder lexistence dun chemin acceptant par une formule.
3.9. FONCTIONS RCURSIVES 153
3.9 Fonctions rcursives
Les fonctions rcursives constituent une autre faon de dnir la notion de
calculabilit. Elles sont dnies partir dun nombre restreint de fonctions l-
mentaires en utilisant la composition, un schma de rcurrence et un schma de
minimisation.
Les fonctions rcursives sont habituellement dnies comme des fonctions qui
manipulent des entiers mais il est galement possible de considrer des fonctions
de mots comme en [Aut92, p. 68]. Chaque fonction rcursive est une fonction
dun sous-ensemble de N
k
dans N
r
pour des entiers k et r. On commence par
dnir la sous-famille des fonctions primitives rcursives qui sont des fonctions
totales.
3.9.1 Fonctions primitives rcursives
Notations
Comme les fonctions rcursives manipulent des k-uplets dentiers, on adopte
quelques conventions pour simplier les notations. Un k-uplet dentiers est not
(n
1
, . . . , n
k
). Si m et n sont respectivement un k-uplet (m
1
, . . . , m
k
) et un l-uplet
(n
1
, . . . , n
l
), le k +l-uplet (m
1
, . . . , m
k
, n
1
, . . . , n
l
) obtenu par concatnation est
simplement not m, n ou encore (m, n). En particulier, si f est une fonction dont
le domaine est inclus dans N
k+l
, on crit f(m, n) pour f(m
1
, . . . , m
k
, n
1
, . . . , n
l
).
Cette notation est tendue aux suites de k-uplets. Soit p un entier et soient
p entiers k
1
, . . . , k
p
. Soit k lentier gal la somme k
1
+ + k
p
. Si chaque
n
i
est un k
i
-uplet (n
i,1
, . . . , n
i,ki
), on note n
1
, . . . , n
p
ou (n
1
, . . . , n
p
) le k-uplet
(n
1,1
, . . . , n
p,kp
) obtenu en concatnant les p k
i
-uplets. Si f est une fonction dont
le domaine est inclus dans N
k
, on crit f(n
1
, . . . , n
p
) pour f(n
1,1
, . . . , n
p,kp
).
Dnitions
On introduit maintenant un certain nombre de fonctions primitives rcur-
sives de base.
On appelle identit et on note id la fonction qui associe tout k-uplet
(n
1
, . . . , n
p
) le k-uplet (n
1
, . . . , n
p
).
Pour tous entiers k 0 et i 0, on appelle fonction constante la fonction
qui tout k-uplet associe lentier xe i. Cette fonction est directement
note par lentier i.
Pour des entiers k et i tels que 0 i k, la i-me projection p
k,i
est
dnie par p
k,i
(n
1
, . . . , n
k
) = n
i
. Lorsquil ny a pas dambigut sur la
valeur de k, cette fonction est simplement note p
i
.
Pour tout entiers r 0, la fonction de duplication d
r
est dnie par
d
r
(n) = (n, . . . , n) o lentier n est rpt r fois.
La fonction successeur s est dnie par s(n) = n + 1.
On dnit maintenant les schmas de composition et de rcurrence.
Soit p un entier et soient p + 2 entiers k, r, k
1
, . . . , k
p
. Soient p fonctions
f
1
, . . . , f
p
o chaque fonction f
i
pour 1 i p est une fonction de N
k
dans
N
ki
et soit g une fonction de N
k1++kp
dans N
r
, alors la compose g(f
1
, . . . , f
n
)
est la fonction de N
k
dans N
r
qui chaque k-uplet n = (n
1
, . . . , n
k
) associe le
r-uplet g(f
1
(n), . . . , f
p
(n)).
154 CHAPITRE 3. CALCULABILIT
Soit k et r deux entiers. Soit f une fonction de N
k
dans N
r
et soit g une
fonction de N
k+r+1
dans N
r
. La fonction h = Rec(f, g) est la fonction de N
k+1
dans N
r
dnie rcursivement de la manire suivante pour tout entier n et pour
tout k-uplet m = (m
1
, . . . , m
k
).
h(0, m) = f(m),
h(n + 1, m) = g(n, h(n, m), m)
La famille des fonctions primitives rcursives est la plus petite famille de
fonctions qui vrie les conditions suivantes.
1. Les fonctions constantes, les projections, les fonctions de duplication et la
fonction successeur sont primitives rcursives.
2. La famille des fonctions primitives rcursives est close pour les schmas
de composition et de rcurrence.
Exemples
On donne ici les exemples classiques de fonctions primitives rcursives. Ces
fonctions seront utilises dans la preuve de lquivalence avec les machines de
Turing.
Somme, prdcesseur et dirence. La fonction sumdnie par sum(n, m) =
n + m est primitive rcursive. Elle peut en eet tre dnie de la manire sui-
vante.
sum(0, m) = m
sum(n + 1, m) = s(sum(n, m))
La fonction somme est donc gale Rec(p
1
, s(p
2
)).
La fonction prdcesseur p dnie par p(n) = max(0, n 1) est primitive
rcursive. Elle peut en eet tre dnie de la manire suivante.
p(0) = 0
p(n + 1) = n
La fonction prdcesseur a pu tre dnie car le schma de rcurrence permet
la fonction g qui calcule h(n+1, m) dutiliser la valeur de n. Sinon la fonction
prdcesseur est dicile dnir. Une autre possibilit est de la mettre dans les
fonctions de base ct de la fonction successeur.
La fonction sub dnie par sub(n, m) = n m si n m et 0 sinon est aussi
primitive rcursive. Elle peut en eet tre dnie de la manire suivante.
sub(n, 0) = n
sub(n, m+ 1) = p(sub(n, m))
Comme la rcurrence porte sur le second argument, la fonction sub est gale
sub

(p
2
, p
1
) o la fonction sub

est gale Rec(p


1
, p(p
2
)).
3.9. FONCTIONS RCURSIVES 155
Produit. La fonction prod dnie par prod(n, m) = nm est primitive rcur-
sive. Elle peut en eet tre dnie de la manire suivante.
prod(0, m) = 0
prod(n + 1, m) = sum(prod(n, m), m)
La fonction somme est donc gale Rec(0, sum(p
2
, p
3
)).
galit. La fonction eq0 dnie par eq0(m) = 1 si m = 0 et eq0(m) = 0
sinon est primitive rcursive. Elle est gale Rec(1, 0). La fonction eq dnie
par eq(m, n) = 1 si m = n et eq(m, n) = 0 sinon est primitive rcursive. Elle est
gale eq0(sum(sub(p
1
, p
2
), sub(p
2
, p
1
))).
Division et reste. Les fonctions div et mod o div(n, m) et mod(n, m) sont
respectivement le quotient et le reste de la division entire de n par m sont
primitives rcursives. La fonction div peut tre dnie de la manire suivante.
div(0, m) = 0,
div(n + 1, m) = div(n, m) +eq(m(1 +div(n, m)), n + 1)
La fonction mod peut tre alors dnie par mod(n, m) = n m div(n, m).
Puissance, racine et logarithme. La fonction pow o pow(n, m) = m
n
est
primitive rcursive. Elle peut tre dnie de la manire suivante.
pow(0, m) = 1,
pow(n + 1, m) = prod(pow(n, m), m)
La fonction root o root(n, m) est la racine m-ime de n, cest--dire le plus
grand entier k tel que k
m
n est primitive rcursive. Elle peut tre dnie de
la manire suivante.
root(0, m) = 0,
root(n + 1, m) = root(n, m) +eq(m, pow(1 +root(n, m)), n + 1)
La fonction log o log(n, m) est le logarithme en base m de n, cest--dire le
plus grand entier k tel que m
k
n est primitive rcursive. Elle peut tre dnie
de la manire suivante.
log(0, m) = 0,
log(n + 1, m) = log(n, m) +eq(pow(1 +log(n, m), m), n + 1)
Nombres premiers. On commence par dnir la fonction ndiv(n) qui donne
le nombre de diviseurs de lentier n. Cette fonction est dnie par ndiv(n) =
pndiv(n, n) o la fonction pndiv(p, n) qui donne le nombre de diviseurs de n
infrieurs p est dnie de la manire suivante.
pndiv(0, n) = 0,
pndiv(p + 1, n) = pndiv(p, n) +eq0(mod(n, p + 1)).
La fonction premier est alors dnie par premier(n) = eq(ndiv(n), 2).
156 CHAPITRE 3. CALCULABILIT
Valuation. Montrer que la fonction val o val(n, m) est le plus grand entier
k tel que m
k
divise n est primitive rcursive.
Fonction dAckermann
On dnit la fonction dAckermann A de N
3
dans N par
A(k, m, n) = n + 1 si k = 0,
A(k, m, n) = m si k = 1 et n = 0,
A(k, m, n) = 0 si k = 2 et n = 0,
A(k, m, n) = 1 si k ,= 1, 2 et n = 0,
A(k, m, n) = A(k 1, m, A(k, m, n 1)) sinon.
La proposition suivante donne des formules explicites de A(k, m, n) pour les
premires valeurs de k.
Proposition 3.66. Pour tous m et n, on a les galits
A(1, m, n) = m+n,
A(2, m, n) = mn = m + +m
. .
n
,
A(3, m, n) = m
n
= m m
. .
n
,
A(4, m, n) = m
m
m

m
_
n
.
Une version simplie de la fonction dAckermann peut tre obtenue en pre-
nant m = 2 dans la dnition ci-dessus. On obtient alors une fonction de N
2
dans N. On prend aussi souvent comme dnition la dnition suivante qui est
lgrement dirente.
A(0, n) = n + 1,
A(k + 1, 0) = A(k, 1),
A(k + 1, n + 1) = A(k, A(k + 1, n)) pour n 0
On dit quune fonction g de N dans N majore une fonction f de N
k
dans N
si f(n
1
, . . . , n
k
) g(max(n
1
, . . . , n
k
)) pour tout k-uplet (n
1
, . . . , n
k
) dentiers.
Proposition 3.67. Pour toute fonction primitive rcursive f de N
k
dans N, il
existe un entier k tel que f est majore par la fonction g(n) = A(k, n).
Corollaire 3.68. La fonction dAckermann nest pas primitive rcursive.
Le corollaire prcdent donne explicitement une fonction qui nest pas pri-
mitive rcursive. Un argument diagonal fournit aussi une fonction qui nest pas
primitive rcursive. Soit (f
n
)
n0
une numration de toutes les fonctions primi-
tives rcursives de N dans N. La fonction g dnie par g(n) = f
n
(n) + 1 nest
pas primitive rcursive.
3.9. FONCTIONS RCURSIVES 157
3.9.2 Fonctions rcursives
Pour dnir les fonctions rcursives, on introduit un schma de minimisation.
Soit k et r deux entiers et soit f une fonction de N
k+1
dans N
r
ventuellement
partielle. On dnit alors la fonction g = Min(f) de N
k
dans N de la manire
suivante. Pour m dans N
k
, g(m) est le plus petit entier n, sil existe, tel que
f(n, m) = d
r
(0) (on rappelle que d
r
(0) est (0, . . . , 0) o 0 est rpt r fois). Si
un tel entier n nexiste pas, g(m) nest pas dni. Mme si la fonction f est
totale, la fonction g = Min(f) peut tre partielle.
La famille des fonctions rcursives est la plus petite famille de fonctions qui
vrie les conditions suivantes.
1. Les fonctions primitives rcursives sont rcursives.
2. La famille des fonctions rcursives est close pour les schmas de composi-
tion, de rcurrence et de minimisation.
Largument diagonal permet encore dexhiber une fonction qui nest r-
cursive. Soit (f
n
)
n0
une numration de toutes les fonctions rcursives de N
dans N. La fonction g dnie par g(n) = f
n
(n) +1 si f
n
(n) est dni et g(n) = 0
sinon nest pas rcursive.
3.9.3 quivalence avec les machines de Turing
Nous allons maintenant montrer le thorme suivant qui tablit que les no-
tions de calculabilit dnies par les fonctions rcursives et les machines de
Turing sont identiques.
Thorme 3.69. Une fonction de N
k
dans N
r
est rcursive si et seulement si
elle est calculable par une machine de Turing.
Pour les machines de Turing, il faut prciser comment sont cods les entiers.
Ils peuvent tre cods en binaire, en base 10 ou en base 1. Le choix du codage
est en ralit sans importance puisquil est possible de passer dun quelconque
de ces codages nimporte quel autre avec une machine de Turing.
Il est facile de se convaincre quune fonction rcursive est calculable par une
machine de Turing. Les fonctions de base comme les fonctions constantes, les
projections, les fonctions de duplication sont bien sr calculables par machine
de Turing. Ensuite avec des machines calculant des fonctions f, g, f
1
, . . . , f
p
,
il nest pas dicile de construire des machines de Turing pour les fonctions
g(f
1
, . . . , f
p
), Rec(f, g) et Min(f).
Nous allons maintenant montrer quune fonction calculable par une machine
de Turing est rcursive. Soit / une machine de Turing quon suppose dtermi-
niste et avec un seul tat dacceptation q
+
. On suppose que le machine ne se
bloque jamais. Soit n le nombre dtats de / et soit m le cardinal de son alpha-
bet de bande. On suppose que les tats de / sont les entiers 0, 1, . . . , n1 et
que les symboles de bande sont les entiers 0, 1, . . . , m1, le symbole blanc #
tant lentier 0. Pour tout mot w = a
0
a
k
sur lalphabet de bande, on associe
les deux entiers (w) =

k
i=0
a
i
m
ki
et (w) =

k
i=0
a
i
m
i
obtenus en lisant w
comme un nombre crit en base m (avec les units respectivement droite et
gauche pour et ). Les fonctions et permettent de considrer les mots de
la bande comme des entiers.
158 CHAPITRE 3. CALCULABILIT
Soit w une entre de / et soit C
0
C
n
le calcul de / sur w. On
suppose que chaque conguration C
k
est gale u
k
q
k
v
k
. On va montrer que la
fonction c dnie par
c((w), k) = ((u
k
), q
k
, (v
k
))
est primitive rcursive. partir des transitions de /, on peut dnir une
fonction t telle que
t(q, a) = (p, b, x) si q, a q, b, x est une transition de /.
On complte t sur N
2
en posant t(i, j) = (0, 0, 0) si i n ou j m. La
fonction t est bien sr primitive rcursive. On note t
1
, t
2
et t
3
les fonctions
p
1
(t), p
2
(t) et p
3
(t) qui donnent respectivement le nouvel tat, la symbole
crire et le dplacement de la tte de lecture. On a alors la dnition rcursive
de c.
c((w), 0) = (0, q
0
, (w)),
Soit a
k
= mod((v
k
), m). Si t
3
(q
k
, a
k
) = R,
(u
k+1
) = m(u
k
) +t
2
(q
k
, a
k
),
q
k+1
= t
1
(q
k
, a
k
),
(v
k+1
) = div((v
k
), m),
Soit a
k
= mod((v
k
), m). Si t
3
(q
k
, a
k
) = L,
(u
k+1
) = div((u
k
), m),
q
k+1
= t
1
(q
k
, a
k
),
(u
k+1
) = m((v
k
) a
k
+t
2
(q
k
, a
k
)) +mod(u
k
, m)
3.9.4 Thse de Church
Aprs avoir introduit les machines de Turing, on a montr que les direntes
variantes de ces machines conduisaient toutes la mme notion de calculable. De
mme, on a tabli prcdemment que les fonctions rcursives sont quivalentes
aux machines de Turing. Une fonction est rcursive si et seulement si elle est
calculable par une machine de Turing. Beaucoup dautres modles de calcul
comme le -calcul ou les machines RAM ont t introduits. Chacun de ces
modles sest avr quivalent (ou plus faible) aux machines de Turing. Ceci a
conduit Church postuler que tous les modles de calcul dnissent la mme
notion de calculable. Ce postulat ne peut bien sr pas tre dmontr mais il est
universellement admis.
3.10 Complments
3.10.1 critures des entiers dans une base
Pour la preuve du thorme de Presburger (thorme 3.62), on a utilis des
automates qui lisent des entiers en base 2. Il a t construit lexemple 3.64 un
automate acceptant les multiples de 3 en base 2. De manire plus gnrale, pour
des entiers k, q et r tels que k 2 et q > r 0, il est possible de construire un
automate qui accepte les critures en base k des entiers congrus r modulo q.
3.10. COMPLMENTS 159
Soit lensemble Q = 0, . . . , q 1 et lalphabet B = 0, . . . , k 1. Soit
lautomate dterministe / = (Q, B, E, 0, r) o lensemble E des transitions
est donn par
E = p
d
p

[ kp +d p

mod q.
On vrie par rcurrence sur l quil y a un chemin tiquet par d
l
d
0
de
ltat p ltat p

si lentier n =

l
i=0
k
i
d
i
vrie k
l+1
p + n p

mod q. En
appliquant ce rsultat p = 0 et p

= r, on trouve que lautomate accepte bien


les critures d
l
d
0
des entiers n congrus r modulo q.
0 1 2
0
1
1
0
0
1
Fig. 3.15 Automate des multiples de 3 en base 2
Exemple 3.70. Pour k = 2, q = 3 et r = 0, on obtient lautomate de la gure 3.15
qui accepte les critures binaires des multiples de 3.
Dnition 3.71. Soit X un ensemble dentiers et soit k 1 un entier. Len-
semble X est dit k-rationnel si lensemble des critures des lments de X en
base k est rationnel.
Le cas k = 1 ncessite quelques commentaires. Lensemble N sidentie au
monode libre 0

sur un alphabet unaire. En eet lapplication de N dans 0

qui
envoie tout entier n sur le mot 0
n
est un isomorphisme de monode. Un ensemble
dentiers est donc 1-rationnel si et seulement si il correspond un ensemble
rationnel de mots sur 0

. Pour cette raison, on parle simplement densemble


rationnel dentiers. Ces ensembles ont une structure trs simple que nous allons
dcrire.
Une progression arithmtique est un ensemble de la forme kp+l [ 0 k q
pour des entiers l et p xs et pour q gal soit soit un entier x. Un
ensemble X dentiers est ultimement priodique sil existe deux entiers l 0 et
p 1 tels que pour tout entier n suprieur l, n appartient X si et seulement
si n + p appartient X. Ces dnitions permettent dnoncer la proposition
suivante qui dcrit compltement les ensembles rationnels dentiers.
Proposition 3.72. Pour un ensemble X dentiers, les conditions suivantes sont
quivalentes.
1. X est rationnel.
2. X est ultimement priodique.
3. X est une union nie de progressions arithmtiques.
Preuve. Limplication (1 2) se dduit directement de la forme des automates
dterministes sur un alphabet unaire. Pour limplication (2 3), il est facile de
dcomposer un ensemble ultimement priodique en progressions arithmtiques.
Pour limplication (3 1), une progression arithmtique est bien sr un en-
semble rationnel et le rsultat dcoule de la clture par union des ensembles
rationnels.
160 CHAPITRE 3. CALCULABILIT
Nous allons maintenant tudier les liens entre les notions de k-rationalit
pour direntes valeurs de k. La construction dun automate acceptant les cri-
tures en base k des entiers congrus r modulo q implique immdiatement la
proposition suivante.
Proposition 3.73. Tout ensemble rationnel dentiers est k-rationnel pour tout
entier k.
Proposition 3.74. Pour tout entiers k 1 et n 1, un ensemble X dentiers
est k-rationnel si et seulement si il est k
n
-rationnel.
Preuve. Les chires utiliss en base k
n
sont les entiers de 0 k
n
1 qui scrivent
avec n chires en base k. Cette remarque permet de passer dun automate
pour X en base k un automate en base k
n
.
La rciproque de la proposition est fausse. Lensemble 2
n
[ n 0 des
puissances de 2 nest pas ultimement priodique. Par contre, lensemble de ses
critures en base 2 est le langage rationnel 10

. Il dcoule immdiatement de la
proposition que si k
m
= l
n
pour des entiers m, n 1, alors X est k-rationnel si
et seulement si X est l-rationnel. Cette remarque motive la dnition suivante.
Dnition 3.75. Deux entiers k et l sont multiplicativement indpendants si
k
m
,= l
n
pour tous les entiers m, n 1.
Les entiers k et l sont multiplicativement indpendants si et seulement si
le nombre rel log k/ log l est irrationnel. On a en eet log k/ log l = n/m ds
que k
m
= l
n
. Si k et l sont multiplicativement indpendants, les nombres de la
forme p log k q log l sont denses dans R et les nombres de la forme k
m
/l
n
sont
denses dans R
+
.
Thorme 3.76 (Cobham 1969). Tout ensemble dentiers qui est k et l-rationnel
pour deux entiers k et l multiplicativement indpendants est rationnel.
La preuve de ce thorme est (trs) dicile.
Un ingrdient essentiel de la preuve est le rsultat suivant que nous donnons
pour son intrt intrinsque. Il faut remarquer quun ensemble X dentiers est
ultimement priodique si et seulement si son mot caractristique x dni par
x
i
= 1 si i X et x
i
= 0 sinon est ultimement priodique. Un facteur w dun
mot inni x est rcurrent sil a une innit doccurrences dans x. Le lemme
suivant donne une caractrisation des mots ultimement priodiques.
Lemme 3.77. Un mot x est ultimement priodique si et seulement si il existe
un entier n tel que x ait au plus n facteurs rcurrents de longueur n.
Preuve. Soit r(n) le nombre de facteurs rcurrents de x de longueur n. Puisque
tout facteur rcurrent est le prxe dun facteur rcurrent plus long, on a lin-
galit r(n) r(n + 1) pour tout entier n. Soit n
0
le plus petit entier tel que
r(n
0
) = n
0
. Par dnition de n
0
, on a r(n
0
1) = n
0
. Ceci montre que tout
facteur rcurrent de longueur n
0
1 a un unique prolongement en a un facteur
rcurrent de longueur n
0
. Ceci implique immdiatement que x est ultimement
priodique.
3.10. COMPLMENTS 161
Pour un mot inni x, la fonction de complexit (en facteurs) de x est la
fonction p
x
(n) qui donne pour tout entier n le nombre de facteurs de x de
longueur n. Le lemme prcdent montre que tout mot x tel que p
x
(n) n
pour au moins un entier n est ultimement priodique. Les mots innis x tels
que p
x
(n) = n + 1 pour tout entier n sont dits sturmiens. Ce sont des mots
non ultimement priodiques de complexit minimale. Le mot de Fibonacci dj
considr lexemple 1.20 (p. 17) est sturmien.
3.10.2 Machines de Turing sans criture sur lentre
On sintresse dans cette partie aux machines qui ncrivent pas sur leur
entre. Si la machine a plusieurs bandes, elle peut recopier lentre de la premire
bande sur une autre bande en parcourant lentre avec une tte de lecture et en
crivant en mme temps sur une autre bande. Si la machine ne possde quune
seule bande, lide intuitive est que la machine ne peut pas copier cette entre
sans la modier. Pour eectuer la copie, lunique tte de lecture doit faire des
aller-retours entre lentre et le reste de la bande. La machine doit dune faon
ou dune autre marquer l o elle en est dans la copie.
Thorme 3.78. Soit / une machine de Turing une seule bande qui ncrit
jamais sur son entre, alors le langage L(/) des mots accepts par / est
rationnel.
Le thorme prcdent nonce que pour une telle machine de Turing, il existe
un automate qui accepte les mmes entres. Par contre, le passage de la machine
de Turing lautomate nest pas calculable.
w
p
q
(p, q)
0
0
(w)
w
p
q
(p, q)
1
0
(w)
w
p
q
(p, q)
0
1
(w)
w
p
q
(p, q)
1
1
(w)
Fig. 3.16 Dnitions de fonctions
0
0
,
1
0
,
0
1
et
1
1
Preuve. Pour montrer que le langage L(/) est rationnel, on montre quil est
satur par une congruence dindice ni (avec un nombre ni de classes). On
introduit quatre fonctions
0
0
,
1
0
,
0
1
et
1
1
:

P(Q Q) qui associent


chaque mot w de

des ensembles de paires detats. Lensemble


0
0
(w) est
dni comme lensemble des paires (p, q) dtats de /telle quil existe un calcul
de / de ltat p avec la tte sur la premire lettre de w ltat q avec la tte
aprs la dernire lettre de w qui ne lit que des lettres de w (cf. gure 3.16). Les
trois fonctions
1
0
,
0
1
et
1
1
sont dnies de manire similaire en considrant les
chemins qui restent aussi sur w mais qui partent ou arrivent au dbut ou la
n de w (cf. gure 3.16).
On dnies maintenant la relation sur

par
w w

def

0
0
(w) =
0
0
(w

1
0
(w) =
1
0
(w

0
1
(w) =
0
1
(w

1
1
(w) =
1
1
(w

)
162 CHAPITRE 3. CALCULABILIT
On montre successivement les quatre proprits suivantes de la relation .
La relation est une relation dquivalence.
Le nombre de ses classes est major par 2
4|Q|
2
.
La relation est une congruence de monode sur

.
La relation sature le langage L(/). Ceci signie que la relation w w

implique lquivalence w L(/) w

L(/).
u v u

p
p
1
p
2
p
3
p
4
q
p
p
1
p
2
p
3
p
4
q
Fig. 3.17 galit
0
0
(uv) =
0
0
(u

)
### ###
w w

p
p
1
p
2
p
3
p
4
q
p
p
1
p
2
p
3
p
4
q
Fig. 3.18 La relation sature L(/)
Par dnition, la relation est une relation dquivalence. Puisque chacune
des quatre fonctions
0
0
,
1
0
,
0
1
et
1
1
peut prendre au plus 2
|Q|
2
valeurs di-
rentes, le nombre de classes de est major par 2
4|Q|
2
. On prouve maintenant
que est une congruence de monode (cf. dnition 1.131 p. 57). Soient u, u

,
v et v

des mots sur tels que u u

et v v

. On montre dabord lgalit

0
0
(uv) =
0
0
(u

). Les trois autres galits pour


1
0
,
0
1
et
1
1
se montrent de
manire identique. Un chemin lintrieur de uv se dcomposent en une suite
de chemins lintrieur de u ou v (cf. gure 3.17). Comme u u

et v v

les
chemins lintrieur de u et v peuvent tre remplacs par des chemins lint-
rieur de u

et v

. On montre maintenant que la relation sature L(/). Soient


w et w

deux mots sur tels que w w

. Un calcul sur lentre w se dcompose


en une suite de calculs lintrieur de w et hors de w (cf. gure 3.18). Comme
w w

, les calculs lintrieur de w peuvent tre remplacs par des calculs


lintrieur de w

pour obtenir un calcul sur lentre w

. On a nalement montr
que le langage L(/) est reconnu par le monode ni

/.
3.10. COMPLMENTS 163
Le thorme prcdent montre que si lon introduit des automates nis qui
peuvent avancer ou reculer dune position la tte de lecture chaque transition,
ces automates acceptent encore des langages rationnels. De tels automates sont
appels automates boustrophdons (2-way automata en anglais). Le terme bous-
trophdon est gnralement employ pour qualier les systmes dcriture o le
sens de lecture des lignes est alternativement de gauche droite et de droite
gauche.
164 CHAPITRE 3. CALCULABILIT
Chapitre 4
Complexit
4.1 Introduction
4.1.1 Objectifs
Lorsquil existe des algorithmes pour rsoudre un problme, ceux-ci peuvent
se rvler inutilisables dans la pratique parce quils requirent soit trop de temps
soit trop de mmoire mme pour des petits exemples. Lobjectif de cette partie
est didentier et de caractriser des problmes pour lesquels il y a peu despoir
de trouver des algorithmes ecaces. Il sagit en quelque sorte dune approche
complmentaire de lalgorithmique dont lobjectif est de dvelopper des algo-
rithmes performants. Lide est de fournir des arguments pour se convaincre que
cest probablement impossible pour certains problmes. Un objectif est aussi de
classier les problmes selon leur complexit en temps ou en espace mmoire
mais avec des chelles beaucoup plus grossires quen algorithmique. Il est da-
vantage question de distinguer les complexits polynomiale et exponentielle que
les complexits linaire et nlog n.
Dans tout ce chapitre, on ne considre naturellement que des problmes dci-
dables. On suppose implicitement que toutes les machines de Turing considres
sarrtent sur toutes leurs entres.
4.1.2 Dnition des complexits
On commence par donner le temps et lespace utiliss par un calcul. Le temps
est le nombre de transitions eectues et lespace est le nombre de cellules de
la bande qui sont parcourues. On dnit ensuite la complexit en temps et en
espace dune entre puis dune machine de Turing. Cest chaque fois le cas le
pire qui est pris en compte. Le temps et lespace ncessaires pour une entre
sont les maxima du temps et de lespace utiliss par un calcul sur cette entre.
Ensuite, la complexit en temps et en espace dune machine est la fonction qui
associe chaque entier n les maxima des complexits en temps et en espace des
entres de taille n.
Dnition 4.1 (Complexit). Soit une machine de Turing / (a priori non
dterministe) et soit = q
0
w C
1
C
m
un calcul de / dentre w.
le temps t
M
() de ce calcul est m.
165
166 CHAPITRE 4. COMPLEXIT
lespace s
M
() de ce calcul est max
0im
[C
i
[.
On dnit alors la complexit en temps (resp. en espace) pour une entre w
comme la plus grande complexit en temps (resp. en espace) des calculs den-
tre w.
t
M
(w) = max

t
M
() et s
M
(w) = max

s
M
()
On peut alors dnir les complexits en temps t
M
et en espace s
M
de la ma-
chine / par :
t
M
(n) = max
|w|=n
t
M
(w) et s
M
(n) = max
|w|=n
s
M
(w).
Cest bien sr plus le comportement asymptotique des fonctions t
M
et s
M
quand n devient grand qui est intressant plus que des valeurs particulires de
ces deux fonctions.
La dnition donne pour lespace dun calcul implique que s
M
(n) n
puisque la premire conguration comprend lentre. Cette dnition est inap-
proprie pour ltude des machines utilisant peu despace comme les machines
espace logarithmique. Il faut introduire des machines avec des bandes spares
pour lentre et la sortie. Lespace utilis ne prend pas en compte ces bandes et
considre uniquement lespace de travail de la machine qui est matrialis par
les autres bandes.
Il existe des machines qui fonctionnent en temps sous-linaire. Le langage
a

peut par exemple tre dcid en temps constant. La machine doit juste
examiner la premire lettre de lentre pour savoir si celle-ci est la lettre a. Il
est cependant vrai que dans la majorit des problmes intressants, la machine
doit lire entirement lentre. Pour beaucoup de rsultats, il est ncessaire de
supposer que t
M
(n) n mais ce nest pas une hypothse restrictive.
Le lemme suivant tablit deux ingalits fondamentales entre le temps et
lespace utiliss par une machine de Turing.
Lemme 4.2. Pour toute machine de Turing /, il existe une constante K telle
que
s
M
(n) max(t
M
(n), n) et t
M
(n) 2
KsM(n)
.
Preuve. Comme chaque transition de la machine, la tte de lecture se dplace
dau plus une position, la taille de la conguration augmente dau plus une unit
chaque transition eectue par la machine. Ceci prouve la premire ingalit.
Comme la machine / na pas de calcul inni, aucun calcul ne passe deux
fois par la mme conguration. Sinon, il existe un cycle dans le graphe des con-
gurations et il existe un calcul inni. Il sensuit que la longueur dun calcul sur
une entre w est borne par le nombre de congurations possibles. Puisquune
conguration peut tre vue comme un mot sur lalphabet Q , on obtient la
seconde ingalit ci-dessus o la constante K est gal log
2
(1 +[Q[ +[[).
4.2 Complexit en temps
4.2.1 Thorme dacclration
Le thorme suivant nonce quon peut toujours acclrer une machine dun
facteur constant condition que le temps soit susant pour lire lentre.
4.2. COMPLEXIT EN TEMPS 167
Thorme 4.3 (dacclration). Soit k 0 un entier et soit / une machine de
Turing. Si n = O(t
M
(n)), alors il existe une machine de Turing /

, quivalente
/ telle que t
M
(n) t
M
(n)/k
Preuve.
a
0
a
1
a
2
a
3
a
4
a
5

On opre la transformation

= (ou, plus gnralement,

=
k
) :

a
0
, a
1
a
2
, a
3
a
4
, a
5

Ainsi, lorsquon tudie la complexit dun problme, les constantes multipli-
catives ne sont pas signicatives. Les complexits des machines de Turing et des
problmes sont exprimes sous la forme O(f).
4.2.2 Changements de modles
On sintresse maintenant lincidence dun changement de modle sur la
complexit. On reprend les direntes variantes de Turing qui ont t introduites
au chapitre prcdent. Pour chacune de ces variantes, on tudie comment varie
la complexit en temps lors dune traduction dune machine de la variante une
machine classique.
machine bande bi-innie :
Chaque transition de la machine bi-innie est simule par exactement une
transition de la machine bande innie. Sur chaque entre, le nombre de
transitions eectues est le mme pour les deux machines. La transforma-
tion ninduit donc aucun changement de la complexit en temps.
machine plusieurs bandes :
Dans lalgorithme de transformation, on fait des allers-retours pour recons-
tituer le k-uplet reprsentant ltat de la machine k bandes. Au pire, le
parcours fait pour simuler la i-ime tape est de longueur s
M
(n) t
M
(n).
Au nal, on a donc :
t
M
(n) = O(t
2
M
(n))
machines non dterministes :
Soit / une machine non dterministe, et /

une machine dterministe


qui la simule en essayant successivement tous ses calculs laide dun arbre.
Dans larbre des calculs, on ne se proccupe pas du problme de larrt,
par hypothse rsolu. On peut donc se contenter de parcourir larbre des
calculs en profondeur dabord.
Le nombre de calculs possibles pour /

, pour une entre de taille n est


born par k
tM(n)
, o k est le nombre maximal de transitions qui peuvent
tre eectues partir dune conguration quelconque. Lentier k est le
cardinal maximal des ensembles (p, a) = (q, b, x) [ p, a q, b, x E
pour tous p Q et a . On en tire, si t
M
(n) n :
t
M
(n) = O(t
M
(n)k
tM(n)
) = 2
O(tM(n))
Il faut noter le changement radical de complexit induit par cette trans-
formation.
168 CHAPITRE 4. COMPLEXIT
4.2.3 Classes de complexit en temps
On introduit maintenant des classes de problmes dtermines par le temps
ncessaire leur rsolution. On dnit ensuite la classe des problmes qui
peuvent tre rsolus en temps polynomial ou exponentiel par des machines dter-
ministes ou non dterministes. Ces quatre classes sont les classes fondamentales
de la complexit en temps.
Dnition 4.4. Pour une fonction f : N R
+
, on dnit les classes
Time(f(n)) est lensemble des problmes dcids par une machine de Tu-
ring dterministe ( plusieurs bandes) en temps O(f(n)).
NTime(f(n)) est lensemble des problmes dcids par une machine de
Turing non dterministe ( plusieurs bandes) en temps O(f(n)).
On dnit alors les classes de complexit suivantes.
P =
_
k0
Time(n
k
) NP =
_
k0
NTime(n
k
)
ExpTime =
_
k0
Time(2
n
k
) NExpTime =
_
k0
NTime(2
n
k
)
Il existe bien sr beaucoup dautres classes de complexit. Par exemple la
classe k-ExpTime est la classe des problmes qui peuvent tre rsolus par une
machine dterministe dont le temps de calcul est born par une tour dexpone-
tielles de hauteur k.
P
NP co-NP
ExpTime
NExpTime co-NExpTime
Fig. 4.1 Inclusions des classes P, NP, . . . et co-NExpTime
Proposition 4.5. Les classes de complexit introduites vrient les inclusions
suivantes.
P NP ExpTime NExpTime.
Les inclusions entre ces classes et leurs classes duales sont reprsentes la
gure 4.1.
Preuve. Les deux inclusions P NP et ExpTime NExpTime dcoulent
directement des dnitions. La dernire inclusion NP ExpTime se dduit du
lemme 4.2.
4.2. COMPLEXIT EN TEMPS 169
Pour chaque classe C, on note classe co-C la classe duale qui contient les
complmentaires des problmes dans C. Si les classes C et co-C sont gales,
la classe C est dite autoduale. Toutes les classes de complexit dnies par des
machines dterministes comme P et ExpTime sont bien sr autoduales. Le tho-
rme dImmerman et Szelepcsnyi tablit que toutes les classes de complexit
en espace sont galement autoduales.
Le thorme de hirarchie permet de montrer que linclusion P ExpTime
est stricte. Pour les autres inclusions, rien nest connu mme si la thse gnra-
lement admise est quelles sont toutes strictes.
Savoir si linclusion P NP est stricte ou non, cest--dire si P ,= NP est un
des problmes majeurs de linformatique thorique et mme des mathmatiques.
En 1900, le mathmaticien D. Hilbert a propos 23 problmes rsoudre
pour le sicle qui commenait. Actuellement, certains sont rsolus mais dautres
restent encore ouverts. En 2000, linstitut Clay pour les mathmatiques a of-
fert un million de dollars pour la rsolution de chaque problme dune liste de
sept problmes remarquables. La question se savoir si P ,= NP est le premier
problme de cette liste. Pour linstant, seule la conjecture de Poincar a t
rsolue.
Linclusion ExpTime NExpTime est semblable linclusion P NP
puisquelle compare les machines dterministes avec les machines non dtermi-
nistes pour le mme temps. Les deux inclusions sont en fait relies. Cest lobjet
de lexercice suivant.
Exercice 4.6. Montrer que si P = NP, alors ExpTime = NExpTime.
Solution. Lhypothse P = NP signie que toute machine en temps polynomial
est quivalente une machine dterministe en temps polynomial. Soit / une
machine de Turing non dterministe en temps exponentiel. On suppose que
t
M
(n) = O(2
n
k
) pour un entier k. toute entre w, de la machine /, on
associe le mot w = w$
m
o $ est nouveau symbole et m est gal 2
|w|
k
. Le
mot w peut tre calcul partir de w par une machine dterministe en temps
exponentiel. On introduit la machine /

obtenue en modiant la machine /


pour quelle considre le symbole $ comme le symbole blanc #. Sur chaque
entre w, la machine /

se comporte comme la machine / sur lentre w et


donne donc le mme rsultat. Par contre, le temps de calcul de /

est linaire
en la taille de w. Daprs lhypothse, la machine /

est donc quivalente une


machine dterministe /

en temps polynomial. On construit alors une dernire


machine dterministe /

en composant la machine qui calcule w partir de w


avec la machine /

. Cette machine dterministe est en temps exponentiel et elle


quivalente la machine /

. Ceci prouve lgalit ExpTime = NExpTime.


Exemple 4.7. Quelques exemples de problmes de la classe P.
1. Problme daccessibilit (Path)
Une instance est un triplet (G, s, t) o G = (V, E) est un graphe orient et
s et t deux sommets de G. Linstance est positive sil existe un chemin de s
t dans G. Un tel chemin peut tre trouv par un parcours en largeur du
graphe, et donc en temps linaire en la taille du graphe (nombre dartes).
Cest donc un problme polynomial. Ce problme est en fait dans la classe
NL des problmes rsolubles en espace logarithmique par une machine
non dterministe (cf. exemple 4.34).
2. Langages algbriques
170 CHAPITRE 4. COMPLEXIT
w
1 i j
n
w[i, j]
Fig. 4.2 facteur w[i, j] de w
On prsente ici lalgorithme de Cocke-Kasami-Younger pour dcider en
temps cubique si un mot est engendr par une grammaire. On suppose
x un langage algbrique L donn par une grammaire G quon peut
supposer en forme normale quadratique grce la proposition 2.21. Une
instance est un mot w et cette instance est positive si w L. Ce problme
peut tre rsolu en temps cubique par un algorithme de programmation
dynamique. Si w est le mot a
1
a
n
, on note w[i, j] le facteur a
i
a
j
de w (cf. gure 4.2). Pour tous les entiers 1 i j n, on calcule len-
semble E
i,j
des variables S telles que w[i, j] L
G
(S). Les ensembles E
i,j
sont calculs par rcurrence sur la dirence j i. Si i = j, le facteur
w[i, i] = a
i
appartient L
G
(S) si et seulement si G contient une rgle
S a
i
. Les ensembles E
i,i
sont donc facilement calculs. Pour j i 1,
le facteur w[i, j] appartient L
G
(S) si et seulement si il existe une rgle
S S
1
S
2
de G et un entier i k < j tels que w[i, k] L
G
(S
1
) et
w[k + 1, j] L
G
(S
2
). Lensemble E
i,j
peut donc tre calcul partir des
ensembles E
i,k
et E
k+1,j
. Comme le temps pour calculer chaque E
i,j
est
proportionnel la dirence j i, le temps global de lalgorithme est cu-
bique. Il faut remarquer que cette analyse ne prend pas en compte la taille
de la grammaire car celle-ci est suppose xe. Cette taille est intgre la
constante.
Exemple 4.8. Quelques exemples classiques de problmes de la classe NP.
1. Chemin hamiltonien (Ham-Path)
Le problme du chemin hamiltonien est de savoir si un graphe G donn
contient un chemin hamiltonien de s t pour deux sommets s et t gale-
ment donns. Une instance est donc un triplet (G, s, t) et elle est positive
sil existe un chemin hamiltonien de s t. Ce problme peut tre pos pour
un graphe orient ou pour un graphe non orient mais ces deux problmes
se ramnent aisment de lun lautre.
2. Satisabilit dune formule (Sat)
On considre des formules du calcul propositionnel. Le problme est de
savoir est si une formule est satisable, cest--dire de savoir pour une
formule donne sil existe une aectation donnant la valeur 1 . Un
exemple dune instance de Sat est la formule suivante.
= ((x
1
x
4
) (x
2
(x
1
x
5
))) (x
1
(x
2
x
3
)
Les deux algorithmes donns pour les problme Sat et Ham-Path suivent
le mme schma. Ils commencent pas choisir de faon non dterministe une
ventuelle solution puis ils vrient en temps polynomial quil sagir eectivement
dune solution. Ce schma se gnralise tous les problmes de la classe NP. Les
problmes de la classe P sont ceux pour lesquels lexistence dune solution peut
tre dtermine en temps polynomial. Au contraire, les problmes de classe NP
sont ceux pour lesquels une solution peut tre vrie en temps polynomial.
La dntion et la proposition suivantes rendent rigoureuse cette intuition. On
commence par la dnition dun vricateur.
4.2. COMPLEXIT EN TEMPS 171
Dnition 4.9 (Vricateur). Un vricateur en temps polynomial pour un
langage L est une machine dterministe 1 qui accepte des entres de la forme
w, c) en temps polynomial en [w[ telle que L = w [ c w, c) L(1).
Llment c est en quelque sorte la preuve que w appartient bien L. Le
vricateur se contente de vrier que c est eectivement une preuve.
Il est important que la machine 1 soit en temps polynomial en la taille de w
et non en la taille de la paire w, c). Cette dnition impose que c peut tre
choisi de taille polynomiale en w. En eet, la machine 1 nutilise quune partie
de c de taille polynomiale en w. La partie non utilise peut tre supprime.
Proposition 4.10 (quivalence vricateur et NP). Un langage L est dans la
classe NP si et seulement si il existe un vricateur polynomial pour L.
Preuve. On montre que L est accept par une machine (non dterministe) en
temps polynomial si et seulement si il existe un vricateur en temps polynomial
pour L.
Soit / une machine acceptant L en temps polynomial. Le vricateur 1
prend en entre une suite c de transitions (de taille polynomiale) faites par /
en calculant sur lentre w. Le vricateur 1 simule alors / sur w pour vrier
que w L(/). Ceci se fait en suivant c et donc en temps polynomial. Dans ce
cas, la preuve que w appartient L est le calcul acceptant de /.
Soit 1 un vricateur en temps polynomial pour L. Pour chaque entre w, la
machine / choisit c de faon non dterministe c de taille polynomiale en [w[.
Elle simule ensuite le calcul de 1 sur w, c). Puisque 1 calcule en temps poly-
nomial, le calcul de / est aussi polynomial. Elle accepte nalement lentre w
si 1 accepte w, c).
La proposition prcdente a t nonce pour le temps polynomial mais le
rsultat stend dautres classes de complexit. Un langage L est par exemple
dans la classe NExpTime si et seulement si il existe un vricateur en temps
exponentiel pour L. La notion de vricateur est parfois utilise pour dnir les
classes de complexit en temps non dterministe comme NP et NExpTime.
Exemple 4.11. On revient sur les deux problmes donns lexemple 4.8
tant donn un graphe G, deux sommets s et t de Get un chemin dans G,
il est facile de vrier en temps linaire que le chemin est hamiltonien.
tant donn une formule du calcul propositionnel et une aectation des
variables, il est facile de calculer en temps linaire la valeur de la formule
induite par laectation et de vrier que la formule est satisable.
Exercice 4.12. Montrer que si le langage L est dans la classe P (resp. NP), alors
le langage L

est aussi dans la classe P (resp. NP).


Solution. La machine /

construite la solution de lexercice 3.38 fonctionne


encore en temps polynomial si la machine / fonctionne en temps polynomial.
Ce raisonnement donne le rsultat pour la classe NP. Par contre, largument
nest plus valable pour la classe P car la machine /

est non dterministe mme


si la machine / est dterministe. Lide est alors dutiliser la programmation
dynamique. On calcule pour chaque paire (i, j) dentiers si le facteur w[i, j]
appartient L en simulant la machine /. Ensuite, on procde comme dans
lalgorithme de Cocke-Kasami-Younger pour calculer si lentre appartient L

.
172 CHAPITRE 4. COMPLEXIT
4.2.4 NP-compltude
Il a t dit dans lintroduction de ce chapitre que lobjectif de la thorie
de la complexit est dtudier la complexit intrinsque des problmes. Il est
pour linstant impossible de montrer quau moins un problme de la classe NP
nest pas dans P. La NP-compltude comble en partie cette lacune. dfaut de
prouver quun problme de NP nest pas dans la classe P, on prouve quil est
NP-complet. Si lhypothse P ,= NP est juste, ce problme nest eectivement
pas dans P.
La notion de compltude est prsente en mathmatiques. En thorie descrip-
tive des ensembles, un ensemble est complet sil est gnrique dans sa classe.
Ceci signie grossirement que tous les autres ensembles de sa classe peuvent
tre retrouvs partir de lui. La notion de compltude introduite ici est simi-
laire. Un problme est NP-complet si une solution ce problme permet de
rsoudre tous les autres problmes de NP.
Rduction polynomiale
La notion de rduction est essentielle. Elle est dailleurs omniprsente en
mathmatiques. Pour rsoudre un problme, il est frquent de le ramener un
autre problme dj rsolu.
Il existe en fait de nombreux types de rductions. De manire gnrale, elles
permettent de comparer les problmes dune classe et ainsi de les classer en fonc-
tion de leur complexit. On introduit maintenant les rductions polynomiales
qui sont adaptes ltude de la classe NP. Ces rductions conviennent aussi
la classe de complexit spatiale PSpace (cf. section 4.3.5). Par contre, elles ne
conviennent pas la classe des problmes en espace logarithmique pour laquelle
il faut justement considrer les rductions en espace logarithmique.

A
L
A

B
L
B
f
A
P
B
Fig. 4.3 Rduction polynomiale
Dnition 4.13 (Rduction polynomiale). Soient A et B, des problmes cods
respectivement par L
A
et L
B
sur les alphabets
A
et
B
. Une rduction polyno-
miale de A B est une fonction f :

B
calculable en temps polynomial
par une machine de Turing dterministe telle que :
w L
A
f(w) L
B
.
Lexistence dune rduction polynomiale de A B se note A
P
B.
Lide intuitive est quun problme A se rduit un problme B si le pro-
blme B est plus compliqu que le problme A puisquon peut ramener la rso-
lution de A la rsolution de B. Il est facile de vrier que la relation
P
est
transitive et rexive (cest un quasi-ordre).
4.2. COMPLEXIT EN TEMPS 173
La proposition suivante dcoule directement des dnitions. Il sut de com-
poser la machine de Turing qui calcule la rduction avec la machine de Turing
qui dcide B en temps polynomial pour obtenir une machine qui dcide A en
temps polynomial.
Proposition 4.14. Si A
P
B et B P, alors A P.
Compltude
Dnition 4.15 (NP-dicile et NP-complet). Un problme A est dit NP-
dicile si tout problme B de NP se rduit A, i.e. B
P
A. Si de plus il est
dans la classe NP, il est dit NP-complet.
Lide intuitive est que les problmes NP-complets sont les plus diciles des
problmes NP puisque tous les problme de NP se ramnent ces problmes.
Pour montrer quun problme est NP-dicile et en particulier NP-complet, on
utilise gnralement la proposition suivante qui dcoule directement des dni-
tions.
Proposition 4.16. Si A est NP-dicile et si A
P
B, alors B est NP-dicile.
Pour utiliser la proposition prcdente an de montrer quun problme est
NP-complet, il faut dj disposer dun problme NP-complet. Le thorme de
Cook et Levin en fournit deux.
4.2.5 NP-compltude de Sat et 3Sat
La notion de NP-compltude est pertinente parce quil existe des problmes
NP-complets. Cest un rsultat tonnant car on aurait pu imaginer une hi-
rarchie innie de problmes dans la classe NP. Les premiers problmes NP-
complets avoir t trouvs sont les problmes Sat et 3Sat. Le problme 3Sat
est souvent trs utile pour prouver que dautres problmes sont NP-complets
car il se prte bien des rduction.
Le problme Sat est le problme de la satisabilit dune formule du calcul
propositionnel (cf. exemples 4.8 et 4.11). Le problme 3Sat est le problme de
la satisabilit dune formule du calcul propositionnel o cette formule est en
forme normale conjonctive avec au plus trois littraux par clause. Une instance
de 3Sat est donc une conjonction c
1
c
k
de k clauses o chaque clause c
i
est une disjonction l
i,1
l
i,2
l
i,3
de trois littraux qui sont chacun soit une
variable x
k
soit la ngation x
k
dune variable. La formule ci-dessous est un
exemple dune telle formule sur les variables x, y et z.
= (x y z) ( x y z) (x y z)
Le thorme suivant montre que la forme de la formule ne change rien la
complexit de la satisabilit puisque les deux problmes sont NP-complets.
Thorme 4.17 (Cook-Levin 1971). Les deux problmes Sat et 3Sat sont
NP-complets.
La preuve du thorme se fait par deux rductions successives. Une premire
rduction polynomiale de nimporte quel problme de NP au problme Sat
est donne. Cest le cur mme de la preuve. Ensuite une seconde rduction
polynomiale de Sat 3Sat est explicite.
174 CHAPITRE 4. COMPLEXIT
NP-Compltude de Sat
On commence par donner une rduction de nimporte quel problme de NP
Sat. Soit A un problme de NP qui est dcid par une machine /machine non
dterministe en temps polynomial. Pour toute entre w de /, on montre quil
existe une formule
w
de taille polynomiale en [w[ telle que
w
est satisable si
et seulement si w est accepte par /.
On note n = [w[ la taille de lentre w. Sans perte de gnralit, on peut
supposer que / dcide A en temps n
k
pour un entier k. Quitte modier
lgrement la machine /, on suppose que tout calcul acceptant sur w est de
longueur exactement n
k
.
Comme la machine /fonctionne en temps n
k
, elle utilise au plus n
k
cellules.
Les congurations sont de longueur au plus n
k
, quon supposera gale n
k
quitte
modier lcriture des congurations.
Ces congurations sont crites les unes sous les autres pour obtenir le tableau
de symboles lments de lalphabet A = Q comme ci-dessous. 4.1.
Conf. 0 1 2 3 . . . n
k
C
0
= q
0
w
1
w
2
w
3
. . . #
C
1
= w

1
q
1
w
2
w
3
. . . #
C
2
= w

1
w

2
q
2
w
3
. . . #
C
3
= . . . . . . . . . . . . . . . #
.
.
.
.
.
.
C
n
k = . . . . . . . . . . . . . . . . . .
Tab. 4.1 Tableau form par les congurations
On cherche crire
w
qui code lexistence dun tel tableau form par les
congurations successives dun calcul acceptant sur w.
Pour chaque paire (i, j) telle que 0 i, j n
k
et pour chaque symbole a
de A, soit x
i,j,a
une variable qui code le fait que la case (i, j) contienne ou non
le symbole a. Le nombre de ces variables est [A[n
2k+2
qui est polynomial en n.
La formule
w
est crite en utilisant les variables x
i,j,a
.
La formule
w
se dcompose en une conjonction
0

3
o chacune
des quatre formules
0
,
1
,
2
et
3
code un des aspects de lexistence dun
chemin acceptant. Soit
0
la formule codant le fait que chaque cellule contient
un unique symbole de A,
1
celle codant que la premire ligne du tableau est
bien q
0
w,
2
celle codant le fait que chaque ligne est obtenue en appliquant
une transition de / et
3
celle codant que le calcul est bien acceptant. La
formule
w
est alors gale la conjonction
0

3
. Il reste expliciter
les quatre formules
0
,
1
,
2
et
3
.
La formule
0
est la conjonction dune formule pour chaque paire (i, j).
Cette dernire garantit quau moins une des variables x
i,j,a
a la valeur 1 pour
un symbole a de A mais que deux variables x
i,j,a
et x
i,j,b
pour a ,= b ne peuvent
4.2. COMPLEXIT EN TEMPS 175
avoir la valeur 1 simultanment. La formule
0
scrit de la faon suivante

0
=

0i,jn
k
_

_
_

aA
x
i,j,a
_

_
_
_
_

a,a

A
a=a

(x
i,j,a
x
i,j,a
)
_
_
_
_
_

_
La formule
1
scrit directement de la faon suivante.

1
= x
0,0,q0
x
0,1,w1
x
0,n,wn
x
0,n+1,#
x
0,n
k
,#
.
La formule
3
assure quau moins une des cases de la dernire ligne du
tableau contient un tat nal. Elle scrit simplement de la faon suivante.

3
=

qF
_

0jn
k
x
n
k
,j,q
_
La formule
2
est un peu plus dlicate crire. Il faut remarquer que le
contenu dune case (i, j) dpend uniquement des contenus des trois cases au-
dessus (i 1, j 1), (i 1, j) et (i 1, j +1) et de la transition qui a t eectue
par la machine pour passer de la conguration C
i1
la conguration C
i
. En
fait, il est seulement ncessaire de connatre la transition eectue lorsquune
des trois cases au-dessus contient ltat de la conguration C
i1
. Si les trois
symboles contenus dans les trois cases au-dessus sont des symboles de bande,
alors le symbole de la case (i, j) est identique au symbole de la case (i1, j). Ces
remarques impliquent quil est possible de vrier que la ligne i est bien obtenue
partir de la ligne i 1 uniquement en regardant les contenus des fentres de
taille 2 3. La machine / tant xe, on considre tous les contenus possibles
des fentres de taille 2 3. Le nombre de ces contenus possibles ne dpend que
de lalphabet et des transitions de la machine. Cest donc un nombre xe qui ne
dpend pas de n. Le fait que six cases du tableau correspondent scrit comme
une conjonction de six variables x
i,j,a
. Le fait que toutes les parties de six cases
du tableaux correspondent un des contenus possibles des fentres sexprime par
la conjonction pour 0 i, j n
k
dune disjonction sur les dirents contenus.
Ceci est une formule de taille polynomiale en n.
Rduction de Sat 3Sat
On montre maintenant que le problme Sat se rduit polynomialement au
problme 3Sat. Pour toute formule , il existe une formule

en forme normale
conjonctive avec trois littraux par clause et calculable en temps polynomial telle
que est satisable si et seulement si

est satisable.
On considre larbre syntaxique de la formule . Les nuds internes de cet
arbre sont tiquets par les oprateurs , et et les feuilles par les variables.
Larbre syntaxique de la formule
= (( x
1
x
4
) (x
2
( x
1
x
5
))) (x
1
(x
2
x
3
)
est reprsent la gure 4.4.
On associe chaque feuille de larbre la variable qui ltiquette. On asso-
cie ensuite une nouvelle variable chaque nud interne de larbre. Ainsi une
176 CHAPITRE 4. COMPLEXIT

x
1
x
4

x
2

x
1

x
5

x
1

x
2

x
3
Fig. 4.4 Arbre syntaxique de
variable est associe chaque nud que celui-ci soit un nud interne ou une
feuille. Suivant quun nud interne est tiquet par loprateur , ou , on
lui associe lgalit x
i
= x
j
, x
i
= x
j
x
k
ou x
i
= x
j
x
k
o x
i
est la variable
correspondant ce nud et x
j
et x
k
les variables correspondants ses ls. On
considre la formule

qui est la conjonction des galits associes tous les


nuds internes et de la clause x
r
o x
r
est la variable introduite pour la racine.
Ensuite, on remplace chaque galit par une conjonction de clauses. On a en
eet les quivalences suivantes
x = y (x y) ( x y)
x = (y z) (x y z) ( x y) ( x z)
x = (y z) ( x y z) (x y) (x z)
qui permettent de remplacer chacune des galits de

par une conjonction de


deux ou trois clauses. Comme la taille de larbre est proportionnel la taille
de , la taille de

est galement proportionnel celle de .


Exercice 4.18. Montrer que les classes NP et co-NP sont gales si et seulement
si il existe un problme NP-complet dont le complmentaire est aussi dans NP.
Solution. Si les classes NP et co-NP sont gales, le complmentaire de nimporte
quel problme de NP est encore NP par dnition de la classe co-NP.
Supposons que le problme A est NP-complet et que son complmentaire est
aussi dans NP. Soit B un problme de NP qui se rduit donc en temps polyno-
mial A. La mme rduction rduit le complmentaire de B au complmentaire
de A. Comme le complmentaire de A est dans NP, le complmentaire de B
lest aussi. Ceci montre que tout problme dans co-NP est aussi dans NP. Par
symtrie, linclusion est aussi vraie et les deux classes sont gales.
4.2.6 Exemples de problmes NP-complets
Dans cette partie, on donne quelques exemples classiques de problmes qui
sont NP-complets. On commence par trois problmes sur les graphes, le chemin
hamiltonien, la clique et la couverture de sommets et on termine par le problme
4.2. COMPLEXIT EN TEMPS 177
de la somme dentiers. Dans chacun des cas, la NP-compltude est prouve en
donnant une rduction polynomiale de 3Sat au problme considr.
Chemin hamiltonien
On rappelle quun chemin hamiltonien dun graphe G est un chemin qui
passe une fois et une seule par chaque sommet de G. Le problme du chemin
hamiltonien est de savoir si un graphe G donn contient un chemin hamiltonien
de s t pour deux sommets s et t galement donns.
Proposition 4.19. Le problme du chemin hamiltonien est NP-complet.
Preuve. Cette rduction est crite pour le problme du chemin hamiltonien
sur un graphe orient. On trouvera la rduction de Ham-Path sur les graphes
orients Ham-Path sur les graphes non orients en [HU79, p. 336].
Le problme Ham-Path est dans NP. Un algorithme pour rsoudre ce pro-
blme commence par choisir de faon non dterministe une suite u
1
, . . . , u
n
de
sommets puis vrie ensuite quil sagit bien dun chemin hamiltonien de s t.
Pour montrer que le problme Ham-Path est NP-dicile, on va rduire
polynomialement le problme 3Sat Ham-Path. chaque instance de 3Sat,
on associe une instance de Ham-Path qui a une solution si et seulement si
linstance de 3Sat en a une. Soit une instance de 3Sat, cest dire une formule
en forme conjonctive telle que chaque clause de contienne trois littraux. On
note k le nombre de clauses de et m le nombre de variables apparaissant dans
. Si une variable apparat positivement et ngativement dans la mme clause,
cette clause est toujours satisfaite. On suppose dans la suite que chaque variable
apparat au plus une fois dans chaque clause.
cette formule , on associe un graphe orient ayant 2km+2m+k sommets.
chaque clause est associ un seul sommet. chaque variable est associe une
partie du graphe appelle gadget. Pour chaque variable, ce graphe possde 2k+2
sommets et il est identique celui reprsent sur la gure 4.5.
Fig. 4.5 gadget associ une variable
Le graphe global est obtenu en mettant bout bout les gadgets pour obtenir
une sorte de chapelet et en ajoutant les sommets des clauses (cf. gure 4.6). Le
gadget dune variable est reli au sommet de chaque clause o elle apparat.
Si la variable apparat positivement dans la (j i)
e
clause, il y a une arte du
sommet 2j 1 du gadget vers le sommet de la clause et une arte du sommet de
178 CHAPITRE 4. COMPLEXIT
la clause vers le sommet 2j du gadget. Si la variable apparat ngativement dans
la (j i)
e
clause, il y a une arte du sommet 2j du gadget vers le sommet de la
clause et une arte du sommet de la clause vers le sommet 2j 1 du gadget.
Le sommet s est le premier sommet du gadget de la premire variable et le
sommet s est le dernier sommet du gadget de la dernire variable. On vrie
quil y a un chemin hamiltonien dans la graphe construit si et seulement si la
formule est satisable.
La construction est illustre sur la formule = (x
0
x
1
x
2
) (x
0
x
2

x
3
) (x
1
x
2
x
3
). Les entiers k et m sont gaux 3 et 4 et on obtient le
graphe reprsent la gure 4.6.
Fig. 4.6 graphe associ la formule
Clique
On commence par la dnition dune clique dans un graphe. Une clique de
taille k est un sous-graphe complet de taille k.
Dnition 4.20 (Clique). Soit G un graphe. Une clique de taille k de G est
un ensemble de k sommets parmi lesquels deux sommets distincts sont toujours
relis par une arrte.
Proposition 4.21. Le problme de savoir si un graphe a une clique de taille k
est NP-complet.
Preuve de Clique NP. Un algorithme non dterministe pour dcider ce lan-
gage L peut fonctionner de la manire suivante. Lalgorithme commence par
choisir de faon non dterministe k sommets v
1
, . . . , v
k
de G. Ce choix se fait
en temps linaire en la taille du graphe. Ensuite, lalgorithme vrie que toutes
les artes (v
i
, v
j
) pour tout 1 i < j k sont prsentes dans G : il accepte
si cest le cas. Cette vrication peut se faire en temps polynomial puisquil y
a au plus k
2
artes tester. Cet algorithme dcide si le graphe G possde une
clique de taille k. En eet, il y a un calcul de lalgorithme pour chaque choix
4.2. COMPLEXIT EN TEMPS 179
possible de k sommets. Un de ces calculs est acceptant si G contient une clique.
Le problme de la clique appartient donc la classe NP.
Soit une instance de 3Sat, cest--dire une formule en forme conjonctive
telle que chaque clause de contienne trois littraux.
= (l
1
l
2
l
3
) . . . (l
3k2
l
3k1
l
3k
)
On introduit alors le graphe non orient G dont lensemble des sommets est
lensemble V = l
1
, . . . , l
3k
de tous les littraux de . Deux sommets de G sont
relis par une arte sils nappartiennent pas la mme clause et sils ne sont
pas contradictoires. Par non contradictoire, on entend que lun nest pas gal
la ngation de lautre. Lensemble E des artes est donc dni de la manire
suivante.
E = (l
i
, l
j
) [ (i 1)/3 ,= (j 1)/3 l
i
,= l
j

En eet, le numro de la clause dun littral l


i
est gal (i 1)/3 si les clauses
sont numrotes partir de 0.
Pour la formule = (x
1
x
2
x
3
) (x
1
x
2
x
3
) (x
1
x
2
x
3
), on
obtient le graphe reprsent la gure 4.7.
Fig. 4.7 graphe associ la formule
Nous allons voir que la formule est satisable si et seulement si le graphe
G contient une clique de taille k. On remarque que deux littraux dune mme
clause ne sont jamais relis par une arte. Une clique peut donc contenir au plus
un littral par clause et elle est de taille au plus k.
Supposons dabord que la formule est satisable. Il existe donc une aec-
tation des variables telle que vaille 1. Ceci signie quau moins un littral par
clause vaut la valeur 1. Choisissons un tel littral dans chacune des clauses pour
former un ensemble de k littraux. Comme tous ces littraux valent 1, deux
dentre eux ne peuvent pas tre contradictoires et ils sont donc relis par des
artes. Cest donc une clique de taille k dans G.
180 CHAPITRE 4. COMPLEXIT
Supposons maintenant que G contienne une clique de taille k. Comme les
littraux dune mme clause ne sont pas relis, cette clique contient un littral
exactement dans chaque clause. Montrons alors quil existe une aectation qui
rend tous ces littraux gaux 1. Chaque littral de cette clique est gal
x
i
ou x
i
. Pour que ce littral vaille 1, on impose la valeur 1 ou 0 la
variable correspondante x
i
. Comme tous les littraux de la clique sont relis par
une arte, ils ne sont pas contradictoires deux deux. Ceci signie que deux
littraux quelconques de la clique concernent deux variables distinctes x
i
et x
j
avec i ,= j ou alors ils concernent la mme variable x
i
mais ils imposent la mme
valeur la variable x
i
. On obtient alors une aectation cohrente des variables
apparaissant dans la clique. En aectant nimporte quelle valeur chacune des
autres variables, on obtient une aectation qui donne la valeur 1 la formule .
Couverture de sommets
Une arte (u, v) dun graphe est dite adjacente un sommet s si s est gal
u ou v. Une couverture de taille k dun graphe G = (V, E) est un sous-
ensemble C de k sommets tel que toute arte de G est adjacente au moins un
des sommets de C.
Proposition 4.22. Le problme de savoir si un graphe a une couverture de
sommets de taille k est NP-complet.
Preuve. Le problme Vertex-Cover est dans NP. Un algorithme pour r-
soudre ce problme commence par choisir de faon non dterministe les k som-
mets u
1
, . . . , u
k
puis vrie que chaque arte du graphe est bien adjacente un
de ces sommets.
Pour montrer que le problme Vertex-Cover est NP-dicile, on va r-
duire polynomialement le problme 3Sat Vertex-Cover. chaque instance
de 3Sat, on associe une instance de Vertex-Cover qui a une solution si et
seulement si linstance de 3Sat en a une. Soit une instance de 3Sat, cest-
-dire une formule en forme conjonctive telle que chaque clause de contienne
trois littraux. On note k le nombre de clauses de et m le nombre de variables
apparaissant dans .
cette formule , on associe un graphe non orient ayant 3k + 2m som-
mets. Chaque sommet du graphe est en outre tiquet par un littral. chaque
variable x
i
correspondent deux sommets tiquets par les littraux x
i
et x
i
.
Ces deux sommets sont relis par une arte. Cette partie du graphe est appele
le gadget de la variable x
i
. chaque clause correspondent trois sommets, un
tiquet par chaque littral de la clause. Ces trois sommets sont relis entre eux
par trois artes. On ajoute en outre une arte entre chacun des trois sommets
dune clause et le sommet de la variable qui est tiquet par le mme littral.
Cette partie du graphe est appele le gadget de la clause.
La construction est illustre sur la formule = (x
0
x
1
x
2
) (x
0
x
2

x
3
) (x
1
x
2
x
3
). Les entiers k et m sont gaux 3 et 4 et on obtient le
graphe reprsent la gure 4.8.
Nous allons voir que la formule est satisable si et seulement si le graphe
G contient une couverture de taille 2k + m. Pour chaque variable x
i
, il faut
quun des deux sommets associs soit dans la couverture pour couvrir larte
entre ces deux sommets. De mme pour chaque clause, il faut que deux des trois
sommets associs soient dans la couverture pour couvrir les trois artes entre
4.2. COMPLEXIT EN TEMPS 181
Fig. 4.8 graphe associ la formule
ces sommets. Ceci montre quune couverture du graphe doit contenir au moins
2k +m sommets.
Supposons dabord que la formule est satisable. Il existe donc une af-
fectation des variables telle que vaille 1. Ceci signie quau moins un littral
par clause vaut la valeur 1. Pour chaque variable x
i
, on met dans la couverture
le sommet x
i
ou le sommet x
i
suivant que x
i
vaille 1 ou 0 dans laectation.
Pour chaque clause, on met dans la couverture deux sommets du gadget corres-
pondant en prenant au moins les littraux qui ont la valeur 0 et dautres pour
complter. Ces choix construisent une couverture. Toutes les artes lintrieur
des gadgets sont couvertes. Chaque arte entre les gadgets des variables et des
clauses, relie une variable au littral correspondant. Si la variable vaut 1, le som-
met dans le gadget de la variable a t choisi et si la variable vaut 0, le sommet
dans le gadget de la clause a t choisi. Dans les deux cas, larte est couverte.
Supposons maintenant que G possde une couverture de taille 2k +m. Il est
clair que cette couverture a exactement un sommet dans chaque gadget associ
une variable et deux sommets dans chaque gadget associ une clause. Il est
facile de vrier que le choix des sommets dans les gadgets des variables dnit
une aectation qui donne la valeur 1 la formule .
Somme dentiers
Le problme de la somme dentiers est le suivant. Soient donns une suite
nie dentiers x
1
, . . . , x
k
et un entier s. Le problme est de savoir sil est possible
dextraire une sous-suite de la suite donne de manire obtenir une suite dont
la somme est gale s. Plus formellement, il sagit de trouver suite croissante
dindices 1 i
1
< i
2
< < i
n
k telle que x
i1
+ +x
in
= s.
Proposition 4.23. Le problme de la somme dentiers est NP-complet.
Preuve. Le problme Subset-Sum est dans NP. Un algorithme pour rsoudre ce
problme commence par choisir de faon non dterministe les indices i
1
, i
2
, . . . , i
n
puis vrie que la somme x
i1
+ +x
in
a pour valeur s.
Pour montrer que le problme Subset-Sum est NP-dicile, on va rduire
polynomialement le problme 3Sat Subset-Sum. chaque instance de 3Sat,
182 CHAPITRE 4. COMPLEXIT
on associe une instance de Subset-Sum qui a une solution si et seulement si
linstance de 3Sat en a une. Soit une instance de 3Sat, cest--dire une for-
mule en forme conjonctive telle que chaque clause de contienne trois littraux.
On note k le nombre de clauses de et m le nombre de variables apparaissant
dans . Soient c
0
, . . . , c
k1
les k clauses de et soient x
0
, . . . , x
m1
les m va-
riables de . Pour une variable x
i
, on note p(i) lensemble des numros des
clauses o x
i
apparat positivement et n(i) lensemble des numros des clauses
o x
i
apparat ngativement.
cette formule , on associe un ensemble de 2(m + k) entiers qui vont
scrire avec m + k chires en base 10. chaque variable x
i
correspond deux
entiers p
i
et n
i
dnis de la faon suivante.
p
i
= 10
k+i
+

jp(i)
10
j
n
i
= 10
k+i
+

jn(i)
10
j
Les entiers p
i
et n
i
scrivent en base 10 avec m + k chires gaux 0 ou
1. Pour p
i
, le chire la position k + i et les chires aux positions de p(i)
sont des 1 et tous les autres chires sont des 0. Pour n
i
, le chire la position
k + i et les chires aux positions de n(i) sont des 1 et tous les autres chires
sont des 0.
chaque clause c
j
, on associe deux entiers q
j
et q

j
qui sont tous les deux
gaux 10
j
. Les entiers q
j
et q

j
scrivent en base 10, avec k chires gaux 0
ou 1. Le chire la position j est un 1 et tous les autres sont des 0.
On dnit nalement le nombre s par la formule suivante.
s =

0i<m
10
k+i
+ 3

0j<k
10
j
Lentier s scrit en base 10 avec des chires 1 et 3. Son criture en base 10 a
la forme 1 . . . 13 . . . 3 o le premier bloc comporte m chires 1 et le second bloc
comporte k chires 3.
Nous allons illustrer cette construction sur la formule
= (x
0
x
1
x
2
) (x
0
x
2
x
3
) (x
1
x
2
x
3
).
Les entiers k et m sont gaux 3 et 4. Les entiers n
0
, p
0
, n
1
, p
1
, n
2
, p
2
, n
3
, p
4
,
q
0
, q
1
, q
2
et s sont donns dans le tableau 4.2.
La preuve que linstance du problme Subset-Sum a une solution si et
seulement si la formule est satisable dcoule des remarques suivantes. La
premire remarque est que pour chaque colonne, il y a au plus cinq entiers qui
ont un chire 1 dans cette colonne. Ceci signie que quelque soit le choix des
entiers, leur somme se fait sans retenue. La somme est donc calcule colonne
par colonne.
Comme le chire de s est 1 dans chaque colonne associe la variable x
i
,
il est ncessaire dutiliser exactement un des deux entiers n
i
et p
i
. Ce sont
en eet les seuls qui ont un chire non nul dans cette colonne et il nest pas
possible de prendre les deux. Le fait de prendre de choisir n
i
ou p
i
correspond
aecter la valeur 0 ou 1 la variable x
i
. Chaque entier n
i
ou p
i
ajoute 1
dans chaque colonne associe une clause gale 1 pour le choix de la valeur
4.3. COMPLEXIT EN ESPACE 183
x
3
x
2
x
1
x
0
c
2
c
1
c
0
Valeur
p
0
= 0 0 0 1 0 0 1 1001
n
0
= 0 0 0 1 0 1 0 1010
p
1
= 0 0 1 0 1 0 1 10101
n
1
= 0 0 1 0 0 0 0 10000
p
2
= 0 1 0 0 1 0 1 100101
n
2
= 0 1 0 0 0 1 0 100010
p
3
= 1 0 0 0 0 1 0 1000010
n
3
= 1 0 0 0 1 0 0 1000100
q
0
, q

0
= 0 0 0 0 0 0 1 1
q
1
, q

1
= 0 0 0 0 0 1 0 10
q
2
, q

2
= 0 0 0 0 1 0 0 100
s = 1 1 1 1 3 3 3 1111333
Tab. 4.2 Les entiers associs la formule
de la variable x
i
. Comme le chire de s est 3 dans chaque colonne associe
clause c
j
, il faut exactement trois entiers qui apportent une contribution dans
cette colonne. Deux contributions peuvent tre apportes par q
j
et q

j
mais une
contribution au moins doit tre apporte par un entier n
i
et p
i
. Ceci garantit
que toutes les causes sont vraies. Si plusieurs variables rendent vraie la mme
clause, on adapte la somme dans cette colonne en retirant un ou deux des entiers
q
j
et q

j
.
Le nombre dentiers utiliss est gal deux fois la somme du nombre de
variables et du nombre de clauses. Il est donc proportionnel la taille de la
formule. La taille de ces entiers, cest--dire le nombre de chires de leur criture
en base 10 est galement proportionnel la taille de la formule. La taille de
linstance de Subset-Sum est donc quadratique en la taille de la formule et
peut tre calcul en un temps de mme ordre. La rduction de 3Sat Subset-
Sum est donc bien polynomiale.
4.3 Complexit en espace
On rappelle que la complexit en espace dun calcul est le nombre de cellules
de la bande qui sont utilises, cest--dire la taille maximale dune congura-
tion apparaissant dans le calcul. La fonction de complexit en espace dune
machine / est la fonction s
M
qui donne pour chaque entier n la complexit en
espace maximale dun calcul sur une entre de taille n (cf. dnition 4.1 p. 165).
4.3.1 Changement de modle
Il a t vu que les changements de modles peuvent avoir une incidence plus
ou moins grande sur la complexit en temps. Le passage de plusieurs bandes
une seule bande donne une explosion quadratique (cf. ) alors que le passage
dune machine non dterministe une machine dterministe donne impose une
explosion exponentielle. Au contraire, les changements de modle ont moins
dincidence sur la complexit en espace.
Le passage dune machine bande bi-innie bande innie ne change pas
184 CHAPITRE 4. COMPLEXIT
la complexit en espace puisque lespace utilis reste identique. En eet, la
simulation est eectue en repliant la bande sur elle-mme. Lespace utilis nest
pas augment.
Le passage dune machine k bandes une machine une seule bande peut
tre ralis en mettant bout bout les contenus des k bandes sur lunique bande
spars par un caractre spcial. Le nombre de cases de bande utilises est gal
la somme des cases utilises sur les k bandes. Lespace reste encore inchang.
Le passage dune machine non dterministe une machine dterministe
change la complexit en espace mais de faon plus modre que la complexit
en temps. Le thorme suivant nonce quil est possible de simuler une machine
non dterministe avec une machine dterministe en utilisant seulement le carr
de lespace.
Thorme 4.24 (Savitch 1970). Soit s une fonction de N dans R
+
telle que
s(n) n pour tout n assez grand. Toute machine non dterministe qui fonc-
tionne en espace s(n) est quivalente une machine de Turing dterministe en
espace O(s
2
(n)).
Preuve. Soit / une machine de Turing fonctionnant en espace s(n). Sans perte
de gnralit, on peut supposer que cette machine possde un seul tat nal q
f
.
On modie la machine pour quavant daccepter, elle eace la bande en rempla-
ant chaque symbole par le symbole blanc #. Lobjectif de cette transformation
est davoir une seule conguration acceptante gale q
f
.
On commence par dnir une fonction Access qui prend en paramtre deux
congurations C et C

de / ainsi que deux entiers t et r. La fonction retourne


vrai sil existe un calcul de C C

de longueur au plus t qui nutilise que des


congurations intermdiaires de taille au plus r. La fonction est rcursive et
fonctionne de la faon suivante. Si t = 0 ou t = 1, elle se contente de tester
si C et C

sont gales ou sil existe une tape de calcul de de C C

. Sinon,
elle parcourt toutes les congurations C

de taille au plus r et pour chaque


conguration C

, elle teste sil existe un calcul dont C

est la conguration
mdiane.
1: Access(C, C

, t, r)
2: if t = 0 then
3: return C = C

4: else if t = 1 then
5: return C = C

or C C

6: else
7: for all C

de taille r do
8: if Access(C, C

, t/2, r) and Access(C

, C

, t/2, r) then
9: return true
10: return false
Algorithme 9: Fonction Access
Nous analysons maintenant la complexit en espace de la fonction Access.
La valeur de t est divis par 2 chaque appel rcursif. Le nombre maximal
dappels imbriqus de la fonction est donc born par log
2
t. Chaque appel rcursif
utilise trois variables C, C

et C

de taille au plus r et un entier t qui ncessite


un espace au plus log
2
t sil est cod en binaire. La variable r reste constante et
4.3. COMPLEXIT EN ESPACE 185
on peut donc considrer quil ny a en fait quune seule instance de cette variable
qui occupe un espace log
2
r. Lespace utilis globalement est donc un born par
O(log
2
r + (r + log
2
t) log
2
t).
Nous allons maintenant utiliser la fonction Access pour rsoudre le pro-
blme. Dans un premier temps, nous supposons pour simplier que la fonc-
tion s(n) est calculable en utilisant un espace au plus s(n). Puisque la ma-
chine /fonctionne en espace s(n), il existe, daprs le lemme 4.2 une constante K
telle t
M
(n) 2
Ks(n)
. Soit w une entre de taille n. Puisque q
f
est lunique con-
guration acceptante de /, on a lquivalence suivante.
w L(/) Access(q
0
w, q
f
, 2
Ks(n)
, s(n))
Il est alors facile de donner une machine dterministe /

quivalente /. Pour
chaque entre w de taille n, la machine /

calcule la valeur de s(n) puis utilise


la fonction Access avec t = 2
Ks(n)
et r = s(n). Lespace utilis est alors born
par O(K
2
s
2
(n)) = O(s
2
(n)).
Nous ne supposons plus que la fonction s(n) est calculable et nous allons
utiliser nouveau la fonction Access pour contourner cette dicult. Soit w
une entre de taille n et soit m la taille maximale dune conguration accessible
partir de la conguration initiale q
0
w. Nous donnons ci-dessous un algorithme
qui calcule la valeur de m en utilisant un espace born par O(m
2
). Comme
m s(n), cet espace est donc born par O(s
2
(n)).
Pour chaque entier k n + 1, on note N
k
, le nombre de congurations de
taille au plus k accessibles par un calcul partir de q
0
w en utilisant des congu-
rations de taille au plus k. Par dnition, la suite (N
k
)
k0
est croissante et elle
est borne par le nombre de congurations de taille au plus s(n). Il existe donc
un entier k tel que N
k+1
= N
k
. Rciproquement, si k est le plus petit entier tel
que N
k+1
= N
k
, alors k est gal m et N
k
est le nombre total de congurations
accessibles partir de q
0
w. Supposons par labsurde quil existe une congu-
ration accessible partir de q
0
w avec un calcul utilisant des congurations de
taille au moins k + 1. On considre la premire conguration de ce calcul de
taille k + 1. Cette conguration existe car la taille des congurations ne varie
que dune unit au plus chaque tape de calcul. Comme cette conguration
est de taille k + 1 et que celles qui la prcdent dans le calcul sont de taille au
plus k, elle prouve que N
k+1
> N
k
, do la contradiction. Lalgorithme suivant
calcule la valeur de m.
Input w de taille n
1: k n
2: i 0
3: repeat
4: k k + 1
5: N i
6: for all C de taille au plus k do
7: if Access(q
0
w, C, 2
Kk
, k) then
8: i i + 1
9: until i = N
10: return k
Algorithme 10: Calcul de m
Comme k est born par m, lespace utilis par chaque appel Access est
186 CHAPITRE 4. COMPLEXIT
born par O(m
2
). Lespace ncessaire aux variables i et N est born par m si ces
entiers sont cods en binaire. Lespace global utilis par lalgorithme prcdent
est donc au plus O(m
2
).
Une machine dterministe /

quivalente / fonctionne de la faon sui-


vante. Elle calcule dabord la valeur de m avec lalgorithme prcdent puis utilise
ensuite la fonction Access avec t = 2
Km
et r = m pour dcider sil y un calcul
de q
0
w la conguration acceptante q
f
.
La preuve du thorme de Savitch appelle quelques commentaires. Il faut
dabord remarquer une certaine similitude entre la fonction Access et lalgo-
rithme de McNaughton-Yamada pour calculer une expression rationnelle qui-
valente un automate ni. Lalgorithme pour calculer la valeur de m peut aussi
tre rapproch des algorithmes donns pour dans la preuve du thorme de Im-
merman et Szelepcsnyi avec toutefois la dirence que ces derniers sont non
dterministes.
Dans lanalyse de la complexit en espace de la fonction Access, il faut
comprendre que cest le nombre maximal dappels imbriqus qui importe et non
pas le nombre total dappels qui interviendrait dans la complexit en temps. Par
appel imbriqu dune fonction rcursive, on entend un appel actif, cest--dire
qui a commenc sexcuter mais ne sest pas termin car il a provoqu un
autre appel. Le nombre maximal dappels imbriqus correspond la hauteur
maximale de la pile utilise pour stocker les variables locales et les adresses de
retour.
4.3.2 Classes de complexit en espace
Comme pour le temps, on introduit des classes de problmes dtermines
par lespace ncessaire leur dcision.
Dnition 4.25. Pour une fonction f : N R
+
, on dnit les classes
Space(f(n)) est lensemble des problmes dcids par une machine de
Turing dterministe ( plusieurs bandes) en espace O(f(n)).
NSpace(f(n)) est lensemble des problmes dcids par une machine de
Turing non dterministe ( plusieurs bandes) en espace O(f(n)).
Le thorme de Savitch garantit quil nest pas ncessaire de distinguer les ma-
chines dterministes et non dterministes pour lespace polynomial ou exponen-
tiel. On dnit les classes suivantes.
PSpace =
_
k0
Space(n
k
) =
_
k0
NSpace(n
k
)
ExpSpace =
_
k0
Space(2
n
k
) =
_
k0
NSpace(2
n
k
)
4.3.3 Complexits en temps et en espace
Nous tudions maintenant quelques relations entre les classes de complexit
en temps et en espace. La proposition suivante rsume les relations entre les
direntes classes de complexit introduites jusque l.
4.3. COMPLEXIT EN ESPACE 187
P
NP co-NP
PSpace
ExpTime
NExpTime co-NExpTime
ExpSpace
Fig. 4.9 Inclusions des classes P, NP, . . . et ExpSpace
Proposition 4.26. Les classes de complexit introduites vrient les inclusions
suivantes.
P NP PSpace ExpTime NExpTime ExpSpace.
Les inclusions entre ces classes et leurs classes duales sont reprsentes la
gure 4.9.
Preuve. Les deux inclusions NP PSpace et NExpTime ExpSpace d-
coulent du lemme 4.2 et du thorme de Savitch.
Linclusion PSpace ExpTime dcoule aussi du lemme 4.2.
Le thorme de hirarchie (corollaire 4.48 p. 198) permet de montrer que
les inclusions P ExpTime et PSpace ExpSpace sont strictes. Pour les
inclusions intermdiaires, rien nest connu mme si la thse gnralement admise
est quelles sont toutes strictes.
4.3.4 Exemples de problmes dans PSpace
Exemple 4.27. Quelques exemples de problmes dans la classe PSpace.
1. Universalit dun automate ni : Soit / un automate sur lalphabet A. Le
problme de luniversalit est de savoir si tous les mots sur A sont accepts
par /, cest--dire L(/) = A

.
(a) Si lautomate / est dterministe, il est trs facile de savoir sil accepte
tous les mots sur A. Sans perte de gnralit, on peut supposer que /
est mond. Dans ce cas, lgalit L(/) = A

est vraie si et seulement


si / est complet et si tous ses tats sont naux.
(b) Le problme est intressant si /nest pas dterministe. Lautomate /
est quivalent un automate dterministe ayant au plus 2
n
tats.
188 CHAPITRE 4. COMPLEXIT
Si L(/) ,= A

, il existe un mot w de longueur infrieure 2


n
qui
nest pas accept par /. On utilise cette remarque pour construire
un algorithme non dterministe en espace polynomial pour dcider si
L(/) ,= A

. Grce au thorme de Savitch, cet algorithme peut tre


transform en un algorithme dterministe.
Lalgorithme procde la faon suivante. De manire non dterministe,
lalgorithme devine un mot w de longueur infrieure 2
n
et simule
le dterminis de / sur ce mot pour montrer quil nest pas accept.
Pour que lespace reste polynomial, le mot w nest pas mmoris.
Seule sa longeur est mmorise.
Lalgorithme simule le calcul de /en marquant les tats accessibles
en lisant le mot w. chaque tape de calcul, lalgorithme choisit
une lettre a de A et calcule les tats accessibles en eectuant des
transitions.
Lalgorithme sarrte aprs 2
n
tapes et rejette.
Lalgorithme sarrte lorsquil obtient un groupe dtats compre-
nant un tat non nal et accepte.
Lalgorithme utilise un espace linaire pour stocker le nombre dtapes
eectues et lensemble des tats accessibles. Le principe de lalgo-
rithme consiste calculer de manire incrmentale lautomate dter-
minis, au lieu de le calculer entirement avant de lanalyser.
2. Formules boolennes quanties (QSat) On considre les formules boo-
lennes avec des quanticateurs existentiels et universels portant sur exac-
tement toutes leurs variables. Les seuls oprateurs autoriss sont , , .
La formule suivante est un exemple dune telle formule.
x y z (1 y) (y z) (y 1)
Le problme est de savoir si une formule quantie close (sans variable
libre) est vraie. La proprositon suivante tablit que le problme QSat peut
eectivement tre rsolu en espace polynomial. On verra que ce problme
jour pour la classe PSpace un rle identique celui du problme Sat pour
la classe NP.
Le problme QSat est une gnralisation naturelle du problme Sat o il y
a une quantication existentielle implicite. Soit une formule de la logique pro-
positionnelle sur les variables x
1
, . . . , x
n
. La formule est une instance positive
de Sat si te seulement si la formule = x
1
x
n
est une instance positive
de QSat.
1: SolveQSat()
2: if na pas de quanticateurs then
3: return eval()
4: if = x then
5: return SolveQSat([x 0]) SolveQSat([x 1])
6: if = x then
7: return SolveQSat([x 0]) SolveQSat([x 1])
Algorithme 11: Algorithme SolveQSat
Proposition 4.28. Le problme QSat est dans la classe PSpace.
4.3. COMPLEXIT EN ESPACE 189
Preuve. On rsout QSat laide de lalgorithme rcursif SolveQSat qui fonc-
tionne de faon suivante. On suppose la formule en forme prnexe. Si cette
formule na pas de quantication, elle na que des constante et il sut donc de
lvaluer. Si la formule a au moins une quantication, lalgorithme se rappelle
rcursivement en remplaant succesivement la variable quantie par les valeurs
0 et 1.
Lalgorithme correctement programm utilise une seule copie de , et une
pile de taille proportionnelle au nombre de variables. Il fonctionne donc en espace
linaire.
4.3.5 PSpace-compltude
La dnition suivante lanalogue de la NP-compltude pour la classe PS-
pace.
Dnition 4.29. Un problme A est dit PSpace-complet si :
1. A est PSpace,
2. Tout problme B de PSpace se rduit polynomialement en temps A,
(cest--dire B
P
A).
Il est essentielle que la notion de PSpace-compltude soit dnie avec des
rductions polynomiales en temps. En eet, comme le thorme de Savitch per-
met de rendre dterministes les machines de Turing en espace polynomial, tout
problme de la classe PSpace de rduit en espace polynomial au problme tri-
vial.
De manire plus gnrale, la compltude relative une classe est toujours
dnie en utilisant des rductions qui sont plus faibles que les machines de la
classe. Le thorme suivant montre quil existe des problmes PSpace-complets.
Thorme 4.30. Le problme QSat est PSpace-complet.
Preuve. Soit / machine en espace polynomial. On veut ramener lacceptation
de w par M au calcul de la valuation dune formule quantie.
On suppose donc quun problme B est dcid par une machine de Turing
/ en espace polynomial quon peut supposer tre n
k
pour un entier k x. Soit
w une entre de / de taille n. Lexistence dun calcul acceptant w est cod de
la manire suivante.
Chaque conguration C de la machine / est code par des variables qui
dcrivent chacun des symboles de la conguration. Puisque chaque conguration
est de taille n
k
, le nombre de variables ncessaires est au plus O(n
k
).
Soient C et C

deux congurations traduites en variables en nombre O(n


k
).
On construit une formule
t,C,C
qui est vraie si et seulement si il existe un calcul
de longueur au plus t de C C

. La formule
t,C,C
est construite par rcurrence
sur la valeur de t. Dans les dnitions ci-dessous, on sautorise quantier sur
les congurations. Il faut voir ces quantications comme des abrviations des
quantications sur les variables qui codent les congurations.
1. Pour t = 1,
1,C,C
est la formule (C = C

) (C C

).
2. Pour t > 1,
t,C,C
est la formule
C

D, D

[(D = C D

= C

) (D = C

= C

)] =
t/2,D,D
.
190 CHAPITRE 4. COMPLEXIT
La dnition de
t,C,C
pour t > 1 suscite plusieurs remarques. Lide gnrale
est de dcomposer un calcul de longueur t en deux calculs de longueur t/2
comme dans la preuve du thorme de Savitch. Cette dnition donne une for-
mule quivalente la formule C

t/2,C,C

t/2,C

,C
. Par contre, cette
dernire dnition ne conduirait pas une formule de taille polynomiale pour
t = 2
Kn
k
puisque la taille serait proportionnelle t.
Cette dnition est inexacte lorsque t est impaire mais cest sans consquence
car les valeurs de t utilises sont des puissances de 2. Lorsque t = 2t

+ 1, le
calcul de longueur t devrait tre dcompos en une tape de calcul suivie de
deux calculs de longueur t

. Ltape de calcul est exprime en utilisant la formule

1,C,C
.
Pour montrer quun problme est PSpace-complet, on procde par rduction
comme pour la NP-compltude en utilisant le lemme suivant.
Lemme 4.31. Si B PSpace, A
P
B et A est PSpace-complet, alors B est
aussi PSpace-complet.
Le lemme dcoule directement des dnitions et de la composition des r-
ductions en temps polynomial.
4.3.6 Espace logarithmique
Contrle
Bande dentre
b b c b b c a b a b a #############
Bande de sortie
a b a b a b a b a a b #############
3 bandes de travail
B b c BB c a b A b b b A#####
a b A a a BA b a b c a A a c ###
a c A c BBA c a c a #######
Fig. 4.10 Machine de Turing avec des bandes dentre et de sortie
On sintresse des problmes qui peuvent tre rsolus avec un espace lo-
garithmique en la taille de lentre. Cette question est uniquement pertinente
si lespace occup par lentre nest pas pris en compte dans lespace utilis par
la machine. On introduit pour cela une variante des machines de Turing. Dans
cette partie, on suppose que chaque machine deux bandes spciales appele
bande dentre et bande de sortie. La machine ncrit jamais sur la bande den-
tre. Plus formellement, chaque transition crit sur cette bande le caractre qui
vient dy tre lu. Sur la bande de sortie, la tte de lecture ne se dplace que vers
4.3. COMPLEXIT EN ESPACE 191
la droite. Cette dernire contrainte signie que la machine ne peut jamais eacer
ce quelle y a crit. Cette bande se comporte un peu comme une imprimante. En
contrepartie de ces deux contraintes, lespace utilis ne prend pas en compte ces
deux bandes particulires. La taille dune conguration est le nombre de cellules
utilises sur les autre bandes. En utilisant cette convention sur les machines de
Turing, on peut dnir les deux classes suivantes.
L = Space(log n) et NL = NSpace(log n).
La base du logarithme est sans importance puisque toutes les complexits sont
dnies un facteur multiplicatif prs. Ces deux classes de complexits jouent
un rle important dune part parce que des problmes intressants sy trouvent
et dautre part parce quelles fournissent des sous-classes de P. On commence
par donner quelques relations entre ces nouvelles classes de complexit et la
classe P.
L
NL
= co-NL
P
Fig. 4.11 Inclusions des classes L, NL, co-NL et P
Proposition 4.32. Les classes de complexit introduites vrient les inclusions
suivantes.
L NL = co-NL P.
Les inclusions entre ces classes sont reprsentes la gure 4.11.
Preuve. Linclusion L NL dcoule directement des dnitions. Lgalit entre
les classes NL et co-NL est une consquence directe du thorme dImmerman
et Szelepcsnyi.
Pour linclusion NL P, on montre que le nombre de congurations de la
machine est polynomial en la taille de lentre. Comme une machine qui sarrte
toujours ne peut pas passer deux fois par la mme conguration, le temps de
calcul est polynomial. Comme la tte lecture de la bande de sortie se dplace
uniquement vers la droite, cette ne lit que des symboles # et ninue pas sur
le droulement du calcul et cette bande peut tre ignore dans le calcul des
congurations. Comme la tte de lecture de la bande dentre ne peut pas crire
sur cette bande, seule la position de la tte de cette bande doit tre prise en
compte dans la conguration. Le nombre de ces positions est bien sr linaire. Il
reste compter les contenus des bandes de travail et les positions de leurs ttes
de lecture. Comme lespace utilis sur ces bandes est logarithmique, le nombre
de contenus est polynomial et le nombre de positions des ttes est logarithmique.
Au total, on obtient un nombre polynomial de congurations globales.
On commence par donner un exemple de problme de la classe L puis un
exemple de problme de la classe NL. Ce dernier problme joue pour la classe NL
192 CHAPITRE 4. COMPLEXIT
un rle similaire celui de Sat pour la classe NP. Il est complet pour cette classe
et il est en quelque sorte gnrique.
Exemple 4.33. Soit lalphabet = a, b. Le langage w

[ [w[
a
= [w[
b
est
dans la classe L. Aucune des machines donnes aux exemples 3.8, 3.16 et 4.14
pour ce langage ne fonctionne en espace logarithmique. Par contre la machine
deux bandes de lexemple 3.16 peut facilement tre modie pour fonctionner
en espace logarithmique. Au lieu de mmoriser la dirence entre les nombres
de a et de b lus par la position de sa tte de lecture sur la deuxime bande, elle
peut crire cette dirence en binaire sur la deuxime bande. Lincrmentation
et la dcrmentation de cet entier ncessitent alors plusieurs transitions mais
lespace utilis devient logarithmique.
Exemple 4.34. Le problme Path de savoir sil existe un chemin entre deux
sommets donns s et t dun graphe orient G est dans la classe NL.
Une machine non dterministe cherche un chemin de s t en partant de s
puis en suivant les artes du graphe pour passer dun sommet un autre. Si la
machine atteint t, elle accepte lentre car elle a trouv un chemin. En mme
temps que la machine dcouvre le chemin, celle-ci compte le nombre de sommets
parcourus. Si ce nombre dpasse le nombre de sommets du graphe, la machine
sarrte et rejette lentre. La machine sarrte donc sur toutes les entres puis-
quelle visite des sommets en nombre au plus gal au nombre de sommets de G.
La machine peut repasser plusieurs fois par un mme sommet car elle ne m-
morise pas les sommets dj visits comme cela est fait dans les parcours en
largeur ou en profondeur dun graphe. Sinon, lespace utilis ne serait pas lo-
garithmique. Sil existe un chemin de s t, la machine a au moins un calcul
acceptant car il existe toujours un chemin de longueur infrieure au nombre
de sommets. Lors de sa recherche, la machine mmorise au plus deux sommets
pour suivre les artes et le nombre de sommets visits. Toute cette information
occupe un espace au plus logarithmique.
Il a t montr par Reingold en 2005 que laccessibilit dans un graphe non
orient est dans la classe L mais cest un rsultat trs dicile.
On introduit maintenant la notion de rduction en espace logarithme. On
commence par dnir la notion de fonction calculable en espace logarithmique.
Une fonction f :

est calculable en espace logarithmique sil existe


une machine dterministe en espace logarithmique, qui pour toute entre w,
calcule f(w) sur sa bande de sortie. Comme la taille de f(w) nest pas prise
en compte dans lespace de la machine, cette taille nest pas ncessairement
logarithmique. Par contre, linclusion L P montre que la taille de f(w) est
polynomiale en la taille de w.
Dnition 4.35 (Rduction logarithmique). Soient A et B, des problmes
cods respectivement par L
A
et L
B
sur les alphabets
A
et
B
. Une rduction
logarithmique de A B est une fonction f :

B
calculable en espace
logarithmique par une machine de Turing dterministe telle que :
w L
A
f(w) L
B
.
Lexistence dune rduction polynomiale de A B se note A
log
B.
La proposition suivante montre que la relation
log
est bien transitive.
4.3. COMPLEXIT EN ESPACE 193
Proposition 4.36. La compose de deux fonctions calculables en espace loga-
rithmique est encore calculable en espace logarithmique.
Contrairement au rsultat similaire pour les fonctions calculables en temps
polynomial, la preuve de cette proposition nest pas compltement immdiate.
En eet, le rsultat intermdiaire de la premire fonction ne peut pas tre stock
sur une bande de travail car sa taille nest pas ncessairement logarithmique.
Preuve. Soient f et g des fonctions calculables en espace logarithmique par
des machines de Turing dterministes /
f
et /
g
ayant respectivement m et n
bandes de travail. On construit une nouvelle machine ^ calculant la compose
f g ayant m +n + 2 bandes de travail. Les m premires bandes de ^ servent
la simulation de /
f
et les n suivantes la simulation de /
g
. Les deux
dernires bandes sont utilises pour mmoriser les positions des ttes de lecture
de la bande dentre de /
f
et de la bande de sortie de /
g
. Comme g(w)
est de taille polynomiale, ces deux positions peuvent tre reprsentes par des
entiers dont les critures en base 2 sont de taille logarithmique. La machine ^
simule chaque tape de calcul de la machine /
f
. Pour chacune de ces tapes, la
machine ^ simule entirement le calcul de la machine /
g
sur lentre w depuis
le dbut jusqu ce que celle-ci crive le symbole lu par la machine /
f
. Il est
possible de retrouver ce symbole grce aux deux bandes supplmentaires de ^
qui mmorisent les positions des ttes de lecture.
La machine ^ donne dans la preuve prcdente simule la machine /
g
depuis la conguration initiale chaque tape calcul de /
f
. Cest uniquement
ncessaire lorsque la machine /
g
dplace sa tte de lecture vers la gauche.
Lorsquelle dplace sa tte de lecture vers la droite, il sut de prolonger le
calcul de /
g
dj simul pour obtenir le symbole suivant. Cette optimisation
namliore en rien le temps de calcul thorique de ^.
Le temps de calcul de la machine ^ est catastrophique puisque on a t
N
(n) =
O(t
M
f
(n)t
Mg
(n)). Lespace logarithmique de la machine ^ est obtenu au sa-
crice du temps de calcul. Les deux corollaires suivants dcoulent directement
de la proposition.
Corollaire 4.37. La rduction logarithmique
log
est transitive.
Corollaire 4.38. Si A
log
B et B est dans la classe L, alors A est aussi dans
la classe L.
Le thorme de Cook et Levin (thorme 4.17) tablit que le problme 3Sat
est NP-complet. Lorsque la formule en forme normale conjonctive a au plus deux
littraux par clause, le problme de la satisabilit devient beaucoup plus facile.
An dillustrer la rduction
log
nous allons montrer que le problme 2Sat de
la satisabilit dune formule avec deux littraux par clause se rduit en espace
logarithmique au problme Path de laccessibilit.
Proposition 4.39. Linsatisabilit dune formule en forme normale conjonc-
tive avec deux littraux par clause se rduit en espace logarithmique au pro-
blme Path.
Il faut noter que ce nest pas 2Sat mais sa ngation qui est considre dans
la proposition prcdente. Il dcoule de cette proposition que le problme 2Sat
appartient la classe co-NL et donc NL puisque ces deux classes sont gales.
194 CHAPITRE 4. COMPLEXIT
Une consquence directe de la proposition prcdente est que le problme 2Sat
est dans la classe P. Ce rsultat montre la dirence importante entre 2Sat et
3Sat puisque ce dernier est NP-complet.
Preuve. Soit une formule en forme normale conjonctive avec au plus deux
littraux par clause. On associe un graphe orient G

. Les sommets de G

sont les variables x


i
de et leurs ngations x
i
. Les artes de G

sont les paires

l l

o l l

est une clause de . Chaque clause l l

induit donc les deux


artes

l l

et

l

l de G

. Il faut remarquer que si l l

est une arte de G

,
alors

l

l est aussi une arte de G

. Il sensuit que sil y a un chemin de l l

dans G

, alors il y a aussi un chemin de de



l


l dans G

.
La proprit cl du graphe G

ainsi construit est lquivalence suivante entre


la satisabilit de et labsence de certaines paires de chemins dans G

.
satisable
_
pour toute variable x, il nexiste pas dans G

des chemins de x x et de x x.
La proprit ci-dessus signie que est satisable si et seulement si x et x ne
sont jamais dans la mme composante fortement connexe de G

. On commence
par montrer cette proprit puis on montre ensuite comment elle permet de
rduire linsatisabilit de laccessibilit.
Supposons que soit satisable et soit v une aectation des variables telle
que v() = 1. Montrons que sil y a un chemin de l l

dans G

et v(l) = 1
alors v(l

) = 1. Il sut de le montrer si le chemin de l l

est de longueur 1.
Le rsultat stablit alors pour tous les chemins par rcurrence sur la longueur.
Si l l

est une arte de G

, alors

l l

est une clause de et par consquent


v(l

) = 1. Cette proprit implique quil ne peut y avoir simultanment dans G

des chemins de x x et de x x pour une variable x.


Supposons maintenant que pour toute variable x, il nexiste pas simultan-
ment des chemins de x x et de x x. On montre quil existe une aectation
telle que v() = 1. Dans la construction de cette aectation, on sautorise, par
un abus de langage, crire quune valeur b B est aecte un littral l. Ceci
signie que lon xe v(x) = b si l = x ou v(x) =

b si l = x.
Cette aectation est construite de la faon suivante. Aucune valeur nest
aecte aux variables au dpart et une valeur est successivement aecte
chaque variable. On aecte dabord la valeur 1 chaque littral l tel quil existe
un chemin de

l l, ainsi qu chaque littral l

tel quil existe un chemin de l


l

. Il peut ventuellement rester des variables auxquelles aucune valeur na


t aecte. On procde de la faon suivante jusqu puisement des variables
sans valeur. Une de ces variables est choisie arbitrairement et la valeur 1 lui est
aecte ainsi qu chaque littral l

tel quil existe un chemin de x l

.
Il reste vrier que laectation ainsi construite est cohrente, cest--dire
que les deux valeurs 0 et 1 nont pas t successivement aectes une mme
variable, et que laectation vrie v() = 1. Cette dernire proprit dcoule
du fait que sil existe un chemin de l l

et si v(l) = 1 alors v(l

) = 1.
Supposons par labsurde que les valeurs 0 et 1 aient t successivement aec-
tes la variable x. Si cela sest produit pendant la premire phase, il existe des
littraux l
1
et l
2
avec des chemins

l
1
l
1
x et

l
2
l
2
x. Par construction
de G

, il existe aussi des chemins x



l
1
et x

l
2
. En combinant tous ces
chemins, on obtient un chemin l
1


l
1
en contradiction avec lhypothse. On
4.3. COMPLEXIT EN ESPACE 195
montre de la mme faon que cela ne peut pas se produire pendant la seconde
phase.
Pour conclure, il reste montrer que le graphe G

peut tre calcul en


espace logarithmique et que la condition sur G

se rduit laccessibilit. Ces


deux proprits sont videntes.
Exercice 4.40. On considre le langage de Dyck D

n
sur n paires de parenthses
(cf. exemple 2.8 p. 71 pour la dnition).
1. Montrer quil peut peut tre dcid en temps linaire si un mot appartient
au langage de Dyck D

n
.
2. Montrer quil peut peut tre dcid en espace logarithmique si un mot
appartient au langage de Dyck D

n
.
Solution.
1. On considre lautomate pile dterministe construit lexercice 2.68 qui
accepte le langage de Dyck. Le nombre de transitions eectues par cet
automate sur un mot dentre de taille m est au plus m+1. Il est facile de
transformer cet automate pile en une machine de Turing qui fonctionne
en temps linaire.
2. Soit un mot w gal b
1
b
m
sur lalphabet A
n
= a
1
, . . . , a
n
, a
1
, . . . , a
n
.
Le mot w appartient au langage de Dyck si et seulement si il satisfait la
proprit suivante. Pour tous entiers i et k tels que b
i
= a
k
il existe un
entier j > i tel que le facteur v = a
i
a
j
satisfait les trois conditions
suivantes.
i) La lettre b
j
est a
k
,
ii) pour tout 1 n, [v[
a

= [v[
a

iii) pour tout 1 n et tout prxe u de v, [u[


a

[u[
a

.
Cette proprit peut facilement tre vrie par une machine de Turing
qui utilise un nombre xe de compteurs et donc un espace logarithmique.
4.3.7 NL-compltude
On montre que parmi les problmes de la classe NL, certains sont les plus
compliqus dans le mesure o chaque problme de NL se rduit en espace loga-
rithmique ces problmes. On commence par la dnition de la NL-compltude
qui est lanalogue de la NP-compltude. Les rductions polynomiales sont rem-
places par les rductions en espace logarithmique.
Dnition 4.41 (NL-dicile et NL-complet). Un problme A est dit NL-
dicile si tout problme B de NL se rduit en espace logarithmique A, i.e.
B
log
A. Si de plus il est dans la classe NL, il est dit NL-complet.
Lintrt de cette dnition rside bien sr dans lexistence de problmes NL-
complets comme ltablit le thorme suivant. Nous montrons successivement
que les problmes Path et 2Sat sont NL-complets.
Thorme 4.42. Le problme Path est NL-complet.
Lide directrice de la preuve du thorme est assez similaire la preuve du
thorme de Cook et Levin qui tablit que Sat est NP-complet.
196 CHAPITRE 4. COMPLEXIT
Preuve. Il a dj t montr que le problme Path est dans la classe NL. Il
reste montrer que tout problme de NL se rduit en espace logarithmique
Path. Soit A un problme de NL qui est dcid par une machine / non
dterministe en espace logarithmique. Une entre w est accepte par / sil
existe un calcul acceptant partir de la conguration initiale. Dans le cas dune
machine en espace logarithmique, la conguration initiale nest pas q
0
w car
celle-ci ne prend pas en compte le contenu de la bande dentre.
Une entre w est accepte par / sil existe un chemin dans le graphe des
congurations de la conguration initiale une conguration acceptante. Quitte
modier la machine pour quelle eace les bandes de travail avant daccep-
ter, on peut toujours supposer quil y a une unique conguration acceptante.
Comme la machine / utilise un espace logarithmique, il sut de considrer les
congurations de taille logarithmique.
La rduction consiste donc associer a une entre w de taille n, le graphe
des congurations restreint aux congurations de taille au plus K log n pour une
constante K. Ce graphe restreint peut bien sr tre calcul par une machine en
espace logarithmique. La machine commence par numrer par ordre lexicogra-
phique toutes les congurations de tailles K log n puis toutes les paires (C, C

)
de congurations telles C C

. Ceci montre que le problme A se rduit en


espace logarithmique Path.
Puisque le problme Path est NL-complet, il sut maintenant dutiliser
une rduction en espace logarithmique pour montrer quun autre problme est
NL-complet.
Thorme 4.43. Le problme 2Sat est NL-complet.
Preuve. Comme les classes NL et co-NL concident, il est quivalent de mon-
trer que le complmentaire de 2Sat est NL-complet. Comme le problme Path
est NL-complet, il sut de prouver que ce problme se rduit en espace loga-
rithmique au complmentaire de 2Sat. toute instance (G, s, t) de Path, on
associe une formule qui a la proprit dtre insatisable si et seulement si il y
a un chemin de s t dans G. La construction est inspire de la construction uti-
lise dans la preuve que 2Sat se rduit en espace logarithmique Path. Il sagit
en fait de la construction inverse. Soit (G, s, t) une instance du problme Path.
On suppose pour simplier quil ny a aucune arte arrivant sur le sommet s
et aucune arte sortant du sommet t. On construit alors une formule dont
lensemble des variables est lensemble V des sommets du graphe G. On dnit
une fonction qui chaque sommet v de G associe un littral par la formule
suivante.
(v) =
_
v si v ,= t,
s si v = t.
La formule est alors donne de faon suivante.
= s

(u,v)E
(u) (v)
o E est lensemble des artes de G. La preuve que cette formule est insatisable
si et seulement si il y a un chemin de s t dans G est identique la preuve de
la proposition 4.39. Comme la formule est videmment calculable en espace
logarithmique partir de (G, s, t), on a montr que 2Sat est NL-complet.
4.4. THORMES DE HIRARCHIE 197
Exercice 4.44. 1. Montrer que le problme de savoir si un automate dter-
ministe accepte un mot w est dans la classe L.
2. Montrer que le problme de savoir si un automate non dterministe accepte
un mot w est NL-complet.
Solution. Il faut faire attention au fait que la donne est ici le couple (/, w) form
de lautomate / et du mot w. Il sagit du problme uniforme par opposition
au problme o lautomate / est x. Dans ce cas, le problme de savoir si
un mot w est accept peut tre dcid en temps linaire et en espace constant
que / soit dterministe ou non. Si / nest pas dterministe, on le remplace par
un automate dterministe quivalent. Lautomate dterministe peut alors tre
considr comme une machine de Turing qui fonctionne en temps linaire et
sans espace de travail auxiliaire.
1. La machine de Turing mmorise ltat courant de lautomate et la lettre
courante du mot w. Pour ces deux informations, la machine mmorise en
fait leurs positions dans lentre avec un espace logarithmique. Pour chaque
lettre du mot w, la machine recherche dans lautomate la transition qui
peut tre eectue et change ltat courant. Elle accepte si le dernier tat
nal.
2. Pour montrer que ce problme est NL-complet, il faut dabord montrer
que ce problme est bien dans la classe NL et quil est NL-dicile. Si
on remplace la machine de la question prcdente par une machine non
dterministe qui choisit la transition eectuer dans lautomate, on ob-
tient que le problme est dans NL. Pour montrer quil est NL-dicile, on
donne une rduction en espace logarithmique de Path notre problme.
chaque instance (G, s, t) de Path o G = (V, E), on associe lautomate
/ = (V, a, E, s, t) sur un alphabet unaire. En ajoutant la transition
t
a
t, il y a chemin de s t dans G si et seulement si le mot w = a
|V |
est
accept par /. Lautomate / et le mot w peuvent bien sr tre calculs
en espace logarithmique partir de (G, s, t).
Exercice 4.45. 1. Sinspirer de la preuve du thorme de Savitch pour mon-
trer que le problme Path peut tre dcid par une machine dterministe
en temps log
2
n.
2. En dduire linclusion NL L
2
o L
2
dsigne la classe des problmes
dcidables par une machine dterministe en temps log
2
n.
4.4 Thormes de hirarchie
On montre que si le temps ou lespace allou est augment, la classe des
problmes qui peuvent tre rsolus crot strictement. Il est cependant ncessaire
de supposer que la ressource supplmentaire soit rellement utilisable. Ceci fait
lobjet de la dnition suivante.
Dnition 4.46. Une fonction f : N N est dite constructible en temps (resp.
en espace) sil existe une machine de Turing qui calcule pour une entre 1
n
le
mot 1
f(n)
en temps O(f(n)) (resp. en espace O(f(n)).
Il est facile de vrier que la classe des fonctions constructibles en temps ou
en espace contient toutes les fonctions usuelles n log n, n

n, etc. et
198 CHAPITRE 4. COMPLEXIT
quelle est close pour la somme, le produit, lexponentiation, la composition et
toutes les oprations raisonnables.
Thorme 4.47 (de hirarchie). Soient f : N N et g : N N deux fonctions
telles que g = o(f). Si f est constructible en temps (resp. en espace), linclusion
Time(g(n)) Time(f(n)) (resp. Space(g(n)) Space(f(n))) est stricte.
La preuve que chacune des inclusions est stricte est base sur un argument
diagonal. Il est important de noter que ces inclusions ne concernent que les
classes de complexits des machines dterministes.
Preuve. La preuve est pratiquement identique pour les deux inclusions. On
construit une machine de Turing dterministe qui fonctionne en temps (ou en
espace) O(f(n)) et qui accepte un langage qui ne peut pas pas tre accept par
une machine dterministe en temps (ou en espace) O(g(n)).
On suppose x un codage des machines de Turing sur un alphabet . On
ajoute un nouveau symbole $ et on construit une machine /
0
dalphabet den-
tre $. La machine /
0
accepte des entres de la forme /)$
k
o /
est une machine de Turing sur lalphabet $ et k est un entier. Si une
entre w nest pas de cette forme, elle est rejete par /
0
. Si lentre w est de
la forme /)$
k
, /
0
simule la machine / sur lentre w en ne dpassant pas
le temps (ou lespace) f([w[). Pour ce faire, /
0
a au pralable calcul 1
f(|w|)
sur une bande. Si la simulation de la machine / dpasse le temps (ou lespace)
f([w[), lentre w est rejete par /
0
. Si la simulation de / sur w aboutit, /
0
accepte si et seulement si / rejette.
Corollaire 4.48. Les inclusions P ExpTime et PSpace ExpSpace sont
strictes.
Preuve. Le thorme prcdent montre que linclusion Time(2
n
) Time(2
n
2
)
est stricte. Comme on a bien sr linclusion P Time(2
n
), on a le rsultat pour
la complexit en temps. Le rsultat pour la complexit en espace sobtient de la
mme faon.
4.5 Machines alternantes
Nous introduisons des machines de Turing dites alternantes qui gnralisent
les machines non dterministes. Dune certaines faon, les machines alternantes
sont aux machines non dterministes ce que ces dernires sont aux machines
dterministes. Dans une machine dterministe, il y a un unique calcul possible
pour chaque entre. Le non dterministe rend possibles plusieurs calculs sur une
mme entre. Celle-ci est accepte si au moins un de ces calculs est acceptant.
Lacceptation utilise donc une quantication existentielle qui constitue une cer-
taine dissymtrie entre un langage et son complmentaire. Lide des machines
alternante est de rtablir la symtrie en introduisant une quantication univer-
selle dans la notion de calcul.
4.5.1 Dnitions et exemples
Une machine alternante est trs proche dune machine de Turing usuelle.
Elle possde en plus une partition de ces tats en deux classes. La dirence se
situe vritablement dans la notion de calcul.
4.5. MACHINES ALTERNANTES 199
Dnition 4.49 (Machine alternante). Une machine alternante est une ma-
chine de Turing o lensemble Q des tats est partitionn Q = Q

. Les
tats de Q

et Q

sont appels tats existentiels et universels. Par extension,


une conguration C = uqv est dite existentielle (resp. universelle) si q est exis-
tentiel (resp. universel).
Un calcul dune machine non dterministe est une suite de congurations
conscutives. Par contre, un calcul pour une machine alternante est un arbre.
Dnition 4.50 (Calcul). Un calcul dune machine alternante est un arbre ni,
tiquet par des congurations et vriant les deux conditions suivantes.
i) Si un nud x de larbre est tiquet par une conguration existentielle C,
alors x a un seul ls tiquet par une conguration C

tel que C C

.
ii) Si un nud x de larbre est tiquet par une conguration universelle
C, alors x a un ls tiquet C

pour chaque conguration C

telle que
C C

.
Il faut faire attention une confusion. Chaque calcul dune machine dter-
ministe est une suite de congurations. Lensemble de ses calculs forme donc un
arbre. Pour une machine alternante, chaque calcul est dj un arbre en soi.
Cette notion de calcul peut tre visualise de la faon suivante. Lorsque la
machine est dans un tat existentiel, elle choisit une transition comme le ferait
une machine dterministe et et leectue pour modier dans sa conguration.
Lorsque la machine est dans un tat universelle, elle se clne en autant de copies
que de transitions possibles. Chacune des copie prend alors en charge une des
transitions et commence une nouvelle branche du clacul. Il faut donc imaginer
que lors dun calcul, il existe de multiples copies de la machine. Chacune de ces
copies a bien sr un tat et des bandes de travail propres.
Les machines alternantes constituent bien une gnralisation des machines
non dterministes. Si tous les tats dune machines alternantes sont existentiels,
un calcul est un arbre o chaque nud a seul ls. On retrouve le fonctionnement
usuel dune machine de Turing non dterministe. Si une machine alternante /
est en fait dterministe, son fonctionnement comme machine alternante est iden-
tique son fonctionnement usuel. Puisque pour toute conguration C il existe
au plus une seule conguration C

telle que C C

, tout calcul se rduit une


seule branche. On retrouve alors la dnition dun calcul pour une machine de
Turing classique.
Dnition 4.51 (Acceptation). Une branche dun calcul est acceptante si au
moins un tat nal apparat sur celle-ci. Un calcul est acceptant si
i) ltiquette de la racine est la conguration initiale q
0
w,
ii) toutes ses branches sont acceptantes.
Le fait que chacune des branches doit tre acceptante signie que lorsque la
machine se clone dans un tat universel, chacune des copies doit atteindre un
tat acceptant pour que le calcul soit globalement acceptant. Les tats universels
ralisent donc un et logique. Au contraire, les tats existentiels ralisent un ou
logique dans la mesure o la machine, dans un de ces tats, doit trouver au
moins une transition qui conduit un tat acceptant. Ceci justie les notations
Q

et Q

pour les ensembles dtats existentiels et universels.


Pour illustrer la notion de machine alternante, nous donnons une machine
alternante qui dcide le problme QSat. Rappelons quune instance de ce pro-
blme est une formule boolenne quantie et close (cf. exemple 4.27). Linstance
200 CHAPITRE 4. COMPLEXIT
est positive si la formule est vraie. La machine de Turing est dcrite sous la forme
dun algorithme. Il est possible de le traduire en une description explicite dune
machine de Turing mme si cest relativement fastidieux.
Lalgorithme fonctionnement de la faon suivante. Il reoit une formule close
avec des variables et des constantes 0 et 1. On suppose pour simplier la formule
mise en forme prnexe. Si la formule est sans quanticateur, elle ne contient que
des constantes et des oprateurs. Il sut donc de lvaluer. Cette valuation
peut tre programme en temps linaire dans nimporte quel langage de pro-
grammation en manipulant son arbre syntaxique. Ceci conduit une machine
de Turing dterministe en temps polynomial pour lvaluation.
Si la formule contient au moins une quantication, celle-ci est traite de la
faon suivante. Si le quancateur est existentiel, la machine choisit la valeur
0 ou 1 pour remplacer la variable et continue avec la formule obtenue. Si le
quanticateur est universel, la machine utilise un tat universel pour se cloner.
Un premire copie continue avec la variable remplace par 0 et une seconde
copie continue avec la variable remplace par 1.
1: AlterQSat()
2: if sans quantication then
3: eval()
4: if = then
5: AlterQSat([ 0]) AlterQSat([ 1])
6: if = then
7: AlterQSat([ 0]) AlterQSat([ 1])
Algorithme 12: Algorithme alternant pour rsoudre QSat
Cet algorithme est trs semblable lalgorithme SolveQSat utilis pour
montrer que le problme QSat est dans la classe PSpace. La mthode de rso-
lution est identique mais le mode de fonctionnement est foncirement dirent.
Dans lalgorithme alternant, les deux appels ne sont pas des appels rcursifs.
Lalgorithme na pas besoin de revenir pour combiner les rsultat des deux ap-
pels. Cela est implicitement ralis par le caractre existentiel ou universel de
ltat. Les deux excutions sont eectues en parallle alors que les deux appels
rcursifs sont eectus lun aprs lautre dans lalgorithme SolveQSat.
Le temps dexcution de lalgorithme AlterQSat est linaire en la taille de
la formule . Nous verrons que le temps polynomial des machines alternantes
correspond lespace polynomial des machines classiques : AP = PSpace (cf.
thorme 4.58).
4.5.2 Complmentation
Les machines de Turing alternantes rendent trs simple le passage dune
machine acceptant un langage une machine acceptant le complmentaire. Ceci
contraste avec les machines non dterministes pour lesquelles il est ncessaire
de dterminiser la machine.
Soit / une machine alternante que nous pouvons supposer normalise. Ceci
signie quelle a deux tats particuliers q
+
et q

, que q
+
est le seul tat nal
et quelle se bloque uniquement sur ces deux tats. Pour toute conguration
C = uqv avec q dirent de q
+
et q

, il existe au moins une conguration C

telle
4.5. MACHINES ALTERNANTES 201
que C C

. La procdure de normalisation dcrite la section 3.2.5 sapplique


encore une machine alternante. Cette procdure ajoute une seul tape de
calcul C C

si aucune ntait possible. Le fait quune conguration C soit


existentielle ou universelle na aucune incidence sur les calculs lorsquil existe
une seule conguration C

telle que C C

.
La machine duale dune machine alternante normalise / est la machine
obtenue en changeant les tats existentiels avec les tats universels et en chan-
geant aussi le rle de q
+
et q

comme tat nal. Plus prcisment soit Q =


Q

la partition des tats de / en tats existentiels et universels et soit


q
+
son unique tat nal. Les ensembles dtats existentiels et universels de la
machine duale sont respectivement Q

et Q

et son unique tat nal est q

.
Proposition 4.52. Soit / une machine alternante normalise / qui sarrte
sur toutes les entres. La machine duale de / accepte le complmentaire du
langage accept par /.
Preuve. Soit /

la machine duale de / et soit w une entre de la machine /.


Nous montrons que pour toute conguration C accessible de la conguration
initiale q
0
w, il existe un calcul acceptant partant de C dans / si et seulement
si il nexiste pas de calcul acceptant partant de C dans /

. La preuve est par


induction sur la profondeur maximale dun calcul partant de C (acceptant ou
non). Le fait que C soit accessible de q
0
w et que la machine / sarrte toujours
garantit lexistence de cette profondeur maximale. Il faut remarquer que cette
profondeur maximale est la longueur maximale dune suite dtapes de calcul
C C
1
C
n
et quelle est la mme dans / et dans /

.
Puisque la machine /est normalise, cette profondeur maximale dun calcul
partant de C est nulle si et seulement si ltat de C est q
+
ou q

. Dans ce cas,
le rsultat est immdiat puisque q est nal dans / si et seulement si q nest
pas nal dans /

.
On suppose maintenant que cette profondeur est un entier n strictement po-
sitif. Ltat q de la conguration C est dirent de q
+
et q

. On suppose que q
est un tat existentiel dans /et donc universel dans /

. Le cas o q est univer-


sel dans / est symtrique. Soient C
1
, . . . , C
k
la liste des congurations C

telles
que C C

. Par dnition, la profondeur maximale dun calcul partant dune


des congurations C
i
est infrieure n et lhypothse de rcurrence sapplique
chacune des congurations C
i
. Supposons quil existe un calcul acceptant par-
tant de C. Comme C est existentielle, il existe un calcul acceptant partant dune
conguration C
i0
. Par hypothse de rcurrence, il nexiste pas de calcul accep-
tant partant de C
i0
dans /

. Comme C est universelle dans /

, il nexiste pas
de calcul acceptant partant de C dans /

. Le cas o il nexiste pas de calcul


acceptant partant de C dans / se traite de la mme faon. Ceci termine la
preuve de la proposition.
Il a t remarqu lors de la preuve de la proposition prcdente que pour
toute entre w, la profondeur maximale dun calcul sur w est la mme dans /
et sa machine duale. Cette remarque peut tre tendue la taille dune con-
guration apparaissant dans un calcul sur w. Les complexits en temps et en
espace de / et sa machine duale sont identiques. Comme la normalisation
dune machine ne change pas ses complexits en temps et en espace, les classes
de complexit que nous allons dnir pour les machines alternantes sont toutes
autoduales.
202 CHAPITRE 4. COMPLEXIT
0 0
$
0
0
0
1
0
1
1
$
5 1 5
1
5
0
5
$
5
0
5
1
5
0
7
$
16
1
16
1
16
0
2
1
9
1
9
0
9
$
9
0
9
1
9
0
11
$
7
1
16
1
16
0
3
1
12
0
12
$
12
0
12
1
12
0
14
$
10
1
6
1
16
0
Fig. 4.12 Calcul sur le mot $011$110$010$110
Lorsquune machine / est dterministe, le fait quun tat soit existentiel
ou universel est sans importance. On retrouve dans la preuve de la proposition
prcdente la preuve faite pour les machines dterministes. Il sut pour une
machine dterministe et normalise dchanger le rle de q
+
et q

comme tat
nal pour avoir une machine qui accepte le complmentaire.
4.5.3 Automates alternants
Nous avons introduit le concept dalternance pour les machines de Turing
mais il sapplique galement aux automates. Un automate alternant peut tre
vu comme une machine de Turing alternante dont toutes les transitions crivent
le symbole lu et dplacent la tte de lecture vers la droite. Toutes les transitions
sont de la forme p, a q, a, o a est une lettre de lalphabet dentre. Les
seules congurations possibles dans un calcul sont alors les congurations de la
forme uqv ou w = uv est lentre.
Pour assurer quun automate parcoure entirement lentre avant daccepter,
la notion de calcul pour un automate alternant est lgrement modie. Un
calcul est encore un arbre tiquet par des congurations mais on impose que
toutes les branches ont mme longueur que lentre. Le calcul est alors acceptant
si toutes les feuilles dun calcul sont tiquetes par des congurations nales. Une
autre faon de dnir ces calculs serait dimposer que les transitions conduisant
un tat nal q soient de la forme p, # q, #, . Cela reviendrait ajouter un
marqueur # la n du mot qui permet lautomate de dtecter la n du mot.
Nous prferrons calquer la notion de calcul sur celle des automates classique o
un calcul acceptant un mot w est de mme longueur que w.
Comme toutes le transitions de lautomate avancent la tte de lecture, toutes
les congurations profondeur k dun calcul sont de la forme uqv o u est prxe
de longueur k de lentre w.
Exemple 4.53. Soit lautomate alternant reprsent la gure 4.13 o les tats
universels sont marqus par un double cercle. Soit w le mot $011$110$010$110
sur lalphabet 0, 1, $. Un calcul acceptant le mot w est donn la gure 4.12.
Chaque nud du calcul est uniquement tiquet par ltat au lieu de la con-
guration complte. Chaque arte de larbre est tiquete par la lettre de w qui
est lue par la transition eectue. Le mot w est bien sr ltiquette de chacune
des branches.
La proposition suivante assure que lensemble des mots accepts par un au-
tomate alternant est un langage rationnel.
Proposition 4.54. Pour tout automate alternant n tats, il existe un auto-
mate non dterministe ayant au plus 2
n
tats qui accepte le mme langage.
4.5. MACHINES ALTERNANTES 203
Comme le passage dun automate non dterministe un automate dtermi-
niste, le passage dun automate alternant un automate non dterministe pro-
voque une explosion expoentielle du nombre dtats. Lexemple 4.55 ci-dessous
montre quil existe mme des automate alternants pour lesquels le passage direct
un automate dterministe est doublement exponentiel.
Preuve. La preuve se fait grce une construction trs proche de la construction
par sous-ensembles utilise pour la dterminisation dun automate. Soit / un
automate alternant et soit Q son ensemble dtats. On construit un automate
non dterministe B dont chaque tat est une partie de Q. Lensemble des tats
de B est donc P(Q). Les tats initiaux sont les singletons i o i est un tat
initial de /. Les tats naux sont les parties P incluses dans lensemble F des
tats naux de /. Les transitions sont les transitions P
a
P

o les parties P
et P

vrient les conditions suivantes. Pour tout tat p et toute lettre a, on


note (p, a) lensemble q [ p
a
q des tats accessibles de p par une transition
tiquete par a. La transition P
a
P

est une transition de B si et seulement si


i) pour tout tat existentiel p de P, (p, a) P

,= ,
ii) pour tout tat universel p de P, (p, a) P

.
On montre facilement par rcurrence sur la longueur de w quil existe un chemin
i
w
P dans B si et seulement si il existe un calcul de / dont la racine est
tiquete par iw et dont lensemble des tats apparaissant aux feuilles est exac-
tement P. Puisque les tats naux de B sont les parties contenant uniquement
des tats naux, il est clair que B accepte les mmes mots que /.
0 1 2 3 16
4
6
5
7
8
10
9
11
12
14
13
15
0, 1, $
$
0, 1
0
1
0, 1
0
1
0
1
0, 1
0, 1, $
$
0, 1, $
$
0
1
0, 1, $
$
0, 1, $
$
0, 1
0, 1
0, 1, $
$
0, 1, $
$
0, 1
0, 1
Fig. 4.13 Exemple dautomate alternant
Exemple 4.55. Soit n un entier positif et soit le langage L
n
dni sur lalphabet
A = 0, 1, $ par la formule
L
n
= $w
1
$w
2
$ $w
k
$w [ w
i
, w (0 + 1)

et i w
i
[1, n] = w[1, n],
o w[1, n] dsigne le prxe de longueur n de w. Lautomate de la gure 4.13
accepte le langage L
3
. Sur la gure, les tats universels sont marqus par un
double cercle. Cet automate fonctionne de la faon suivante. Ltat initial qui
est existentiel permet de choisir un mot w
i
dont le prxe de longueur n concide
204 CHAPITRE 4. COMPLEXIT
avec celui de w. Ensuite les tats universels vrient que chacune des n premires
lettres de w
i
est gal la lettre la mme position dans w. Pour tout n 1, un
automate similaire avec 5n+2 tats peut tre construit. Par contre, il nest pas
dicile de dmontrer que tout automate dterministe acceptant L
n
possde au
moins 2
2
n
tats. Cet exemple montre la puissance de lalternance.
Exercice 4.56. 1. Montrer que tout automate dterministe acceptant le lan-
gage L
n
de lexemple 4.55 possde au moins 2
2
n
tats.
2. Montrer que le nombre minimal dtats dun automate non dterministe
acceptant L
n
est de lordre de 2
n
. On pourra montrer que ce nombre est
compris entre 2
Kn
et 2
K

n
pour deux constantes K et K

.
Solution.
1. On montre que le nombre de quotients gauche de L
n
est au moins gal
2
2
n
. Pour un ensemble P = w
1
, . . . , w
k
de mots de longueur n, on note
u
P
le mot $w
1
$w
2
$ $w
k
$. Lgalit u
1
P
L
n
(0 + 1)
n
= P montre que
les quotients u
1
P
L
n
sont deux deux disjoints quand P parcourt toutes
les parties de (0 + 1)
n
. Comme le nombre de telles parties est justement
2
2
n
, on obtient le rsultat.
2. Le langage L
n
est accept par un automate alternant ayant 5n + 2 tats.
la mthode pour passer dun automate alternant un automate non d-
terministe montre que L
n
est accept par un automate non dterministe
ayant au plus 2
5n+2
tats. Dautre part la mthode de dterminisation
montre que tout langage accept par un automate non dterministe m
tats est accept par un automate dterministe ayant au plus 2
m
. Daprs
le rsultat de la question prcdente, tout automate non dterministe ac-
ceptant L
n
a au moins 2
n
tats.
la n du chapitre prcdent, nous avons voqu des automates boustroph-
dons qui peuvent avancer ou reculer la tte de lecture chaque transition. Nous
avons en particulier montr que les langages accepts par ces automates sont
rationnels. Il est possible dintroduire des automates alternants boustrophdons.
Les langages accepts par ces automates sont encore rationnels.
4.5.4 Classes de complexit
Le temps dun calcul dune machine de Turing alternante est par dni-
tion la profondeur de larbre. Lespace du calcul est la taille maximale dune
conguration apparaissant dans le calcul.
Dnition 4.57. Pour une fonction f : N R
+
, on dnit les classes
ATime(f(n)) est lensemble des problmes dcids par une machine de
Turing alternante en temps O(f(n)).
ASpace(f(n)) est lensemble des problmes dcids par une machine de
Turing alternante en espace O(f(n)).
On dnit alors les classes de complexit suivantes.
AP =
_
k0
ATime(n
k
)
AL = ASpace(log n) APSpace =
_
k0
ASpace(n
k
)
4.5. MACHINES ALTERNANTES 205
Nous avons introduit ces classes particulires car elles sont relies dautres
classes dj introduites pour les machines classiques. Il est bien sr possible de
reprendre toutes les classes dj vues dans le cadre des machines alternantes.
Pour la classe AL, il faut bien sr considrer des machines avec une bande
dentre et une bande de sortie non prises en compte dans lespace comme nous
lavons fait pour lespace logarithmique.
Le thorme suivant relie les classes de complexit pour les machines alter-
nantes aux classes pour les machines classiques. On retrouve que les classes de
complexit des machines alternantes sont autoduales. Elles sont en relation avec
des classes de machines dterministes ou en espace qui sont autoduales.
Thorme 4.58. Si la fonction t : N R
+
vrie t(n) n pour n assez
grand, on a
ATime(t(n)) Space(t(n)) ATime(t
2
(n))
AP = PSpace.
Si la fonction t : N R
+
vrie t(n) log n pour n assez grand, on a
ASpace(t(n)) = Time(2
O(t(n))
)
AL = P et APSpace = ExpTime
Lintrt des machines alternantes est multiple. Dune part, elles orent un
modle de calcul avec un certain paralllisme et dautre part, elles fournissent
dautres caractrisations de classes dj introduites comme P, PSpace et Exp-
Time. Il faut reconnatre que le paralllisme de ces machines alternantes est
assez thorique et trs loign des paralllismes mis en uvre en pratique. Le
nombre de processus, cest--dire la largeur dun calcul nest pas born. La com-
munication entre processus seectue uniquement la terminaison de ceux-ci.
Preuve. On commence par montrer linclusion ATime(t(n)) Space(t(n)).
Soit / une machine alternante en espace t(n) et soit w une entre de taille n.
La machine dterministe / eectue un parcours en profondeur du graphe des
congurations pour dterminer si la conguration initiale peut donner un calcul
acceptant. Au cours du calcul, la machine / ne mmorise pas la conguration
courante. Elle se contente de mettre dans une pile les transitions eectues.
Comme le nombre de transitions eectues est born par t(n), lespace de /
est de taille O(t(n)).
On montre ensuite linclusion Space(t(n)) ATime(t
2
(n)). Soit /une ma-
chine en espace t(n) et soit w une entre de taille n. La machine alternante /
simule lalgorithme donn pour la preuve du thorme de Savitch. Cet algo-
rithme dtermine sil existe un calcul de longueur k dune conguration C une
conguration C

en trouvant une conguration C

telle quil existe un calcul


de longueur k/2 de C C

et un calcul de longueur k/2 de C

. La
machine / utilise des congurations existentielles pour dterminer la congu-
ration intermdiaire C

et elle utilise une conguration universelle pour vrier


que dune part, il existe un chemin de C C

et que dautre part il existe un


chemin de C

. La machine / fonctionne en temps (O(t


2
(n)).
On montre maintenant linclusion ASpace(t(n)) Time(2
O(t(n))
). Soit /
une machine alternante en espace t(n) et soit w une entre de taille n. La ma-
chine dterministe / construit le graphe des congurations de la machine /
206 CHAPITRE 4. COMPLEXIT
qui sont accessibles partir de la conguration initiale q
0
w. Ce graphe est de
taille 2
O(t(n))
et il peut tre construit en temps 2
O(t(n))
. Ensuite la machine /
marque toutes les congurations qui sont le dbut dun calcul acceptant de /.
Elle commence par marquer toutes les congurations acceptantes. Une congu-
ration existentielle C est marque ds quune conguration C

telle C C

est
marque. Une conguration universelle C est marque ds que toutes les con-
gurations C

telle C C

sont marques. Ce processus de marquage se poursuit


jusqu ce que plus aucune conguration ne puisse tre marque. Lentre w est
accepte si la conguration initiale q
0
w est marque. Ce marquage peut tre
men de faon dterministe en temps 2
O(t(n))
.
On montre nalement la dernire inclusion Time(2
O(t(n))
) ASpace(t(n)).
Cest la construction la plus astucieuse. Soit / une machine dterministe en
temps 2
O(t(n))
et soit w une entre de taille n. La machine alternante / vrie
que le tableau introduit dans la preuve du thorme de Cook et Levin peut tre
rempli. Comme la machine / est dterministe, ce tableau peut tre rempli de
manire unique. La machine /utilise des congurations universelles pour vrier
que chaque case de la dernire ligne peut tre remplie. Le contenu de la case est
choisi par une conguration existentielle. Ensuite, la machine utilise nouveau
des congurations universelles pour vrier que le contenu de chaque case est
cohrent avec les contenus des cases au dessus qui sont leur tour choisies. La
machine ne stocke pas le tableau. Elle utilise uniquement un nombre ni de
pointeurs sur des cases du tableau. Elle utilise donc un espace O(t(n)).
4.6 Complments
4.6.1 Machines une bande en temps o(nlog n)
On montre dans cette partie que toute machine de Turing une seule bande
qui fonctionne en temps o(nlog n) accepte un langage rationnel. Lingrdient
essentiel de la preuve est lutilisation des suites de franchissements (cutting se-
quences en anglais) qui constituent un outil trs classique. Lintrt du thorme
suivant est autant dans le rsultat que dans la technique de preuve.
Thorme 4.59 (Hartmanis 1968). Une machine de Turing une seule bande
qui fonctionne en temps o(nlog n) accepte ncessairement un langage rationnel.
Pour montrer que ce rsultat est optimal, on commence par donner un
exemple de machine de Turing une seule bande qui fonctionne en temps
O(nlog n) et qui accepte un langage non rationnel.
Exemple 4.60. La machine reprsente la gure 4.14 accepte lensemble w [
[w[
a
= [w[
b
des mots sur lalphabet = a, b ayant le mme nombre doc-
currences de a et de b. Le temps de calcul de cette machine pour une entre
de longueur n est de lordre nlog n. Comme ce langage nest pas rationnel, le
thorme prcdent implique que cette machine est optimale.
Cette machine fonctionne de la manire suivante. Elle vrie que le nombre
doccurrences de a est gal au nombre doccurrences de b en remplaant pro-
gressivement les a et les b par des 0. Lors dun premier passage sur lentre, la
machine remplace par 0 un a sur 2 et un b sur 2, tout en vriant que la parit
du nombre de a est gale la parit du nombre de b. Ceci est ralis par les
tats de 1 4. Ltat 5 ramne la tte de lecture au dbut de la bande. Lors
4.6. COMPLMENTS 207
0 1 2
3 4 5
6
0, 0, a, #,
b, #,
#, #,
0, 0, 0, 0,
0, 0, 0, 0,
b, 0, b, b, b, 0, b, b,
a, 0,
a, a,
a, a,
a, 0,
#, #,
#, #,
a, a,
b, b,
0, 0,
#, #,
Fig. 4.14 Machine acceptant w (a +b)

[ [w[
a
= [w[
b

dun second passage, la machine ignore les 0 et remplace par 0 un a sur 2 qui
reste et un b sur 2 qui reste, tout en vriant encore que la parit du nombre
de a est gale la parit du nombre de b. La machine poursuit ainsi ses passages
qui divisent par 2 les nombres de a et de b restant. La machine accepte quand
il ne reste plus aucun a ou b sur la bande. Le nombre de passages eectus est
proportionnel log
2
n et la machine fonctionne bien en temps O(nlog n). Si
[w[
a
,= [w[
b
, la machine choue au k-ime passage o k est le plus petit entier
tel que [w[
a
, [w[
b
mod 2
k
.
1 2 k k+1
p
0
p
1
p
2
p
3
p
4
Fig. 4.15 Franchissements en k
Soit / une machine de Turing et soit k 1 un entier. On dit quune
tape de calcul C C

de / franchit la frontire entre les cases k et k + 1 si


C = upav, C

= ubqv et [u[ = k en appliquant une transition p, a q, b, R ou


si C = ucpav, C

= uqcbv et [u[ = k en appliquant une transition p, a q, b, L.


Soit = C
0
C
n
un calcul de / o chaque conguration C
i
est
gale u
i
q
i
v
i
. Soit i
0
< < i
m
la suite des indices o les tapes C
i
C
i+1
franchissent la frontire k. On appelle suite de franchissements de en k, la
suite dtats p
0
, . . . , p
m
o p
j
= q
ij+1
. Cest ltat de la machine juste aprs le
franchissement qui est pris en considration (cf. gure 4.15).
On commence par dmontrer quelques proprits des suites de franchisse-
208 CHAPITRE 4. COMPLEXIT
ments puis on montre un rsultat intermdiaire o on suppose que la machine
fonctionne en temps linaire. Dans la suite, on appelle contenu de bande, un mot
inni x = a
0
a
1
a
2
. . . constitu de symboles blancs # partir dun certain rang.
On dit que est un calcul sur un contenu de bande x si x est le contenu de la
bande au dbut de . On appelle le type dun calcul le fait quil soit acceptant ou
non. Pour une machine /, on note respectivement t
M
(n) et r
M
(n) la longueur
maximale dun calcul et la longueur maximale dune suite de franchissements
dun calcul sur une entre de longueur n. On note [Q[ le nombre dtats de /.
Le lemme suivant permet de combiner deux calculs o apparat la mme
suite de franchissements.

. .

. .

.. ..
Fig. 4.16 Jonction de calculs
Lemme 4.61. Soient x = uy et x

= u

deux contenus de bande. Soient et

deux calculs sur x et x

tels que la suite de franchissements de en [u[ est


identique la suite de franchissements de

en [u

[. Alors, il existe un calcul

sur uy

qui est identique sur u et

sur y

.
Si la suite de franchissements commune et

en [u[ et en [u

[ est de
longueur paire, le chemin

se termine comme . Si au contraire, cette suite


est de longueur impaire, le chemin

se termine comme

. Lide de la preuve
est illustre la gure 4.16.
Preuve. On construit un calcul

sur uy

en combinant les deux calculs et

.
Soit p
0
, . . . , p
n
la suite de franchissements de en [u[ et de

en [u

[. Le cal-
cul

est obtenu en raccordant les calculs et

au niveau des franchissements


en p
0
, . . . , p
n
. Le dbut de

est le dbut de jusquau premier franchissement


en p
0
. Ensuite le calcul

se poursuit comme le calcul

aprs le premier fran-


chissement et ceci jusquau deuxime franchissement en p
1
. Aprs le deuxime
franchissement, il reprend comme jusquau troisime franchissement en p
2
.
Lalternance se poursuit ainsi jusquau dernier franchissement. Le calcul

se
termine comme le calcul si n impair et comme

si n est pair.
4.6. COMPLMENTS 209
Corollaire 4.62. Soit un calcul sur une entre x = uvy tel que les suites de
franchissements en [u[ et [uv[ sont identiques. Il existe alors des calculs sur uy
et uvvy de mme type que .
Preuve. Il sut dappliquer le lemme prcdent au deux factorisations x =
u vy = uv y de lentre x.
Proposition 4.63. Une machine de Turing / une seule bande telle que
r
M
(n) K pour tout n 0 accepte ncessairement un langage rationnel.
On rappelle quune relation dquivalence sur un ensemble E sature un
sous-ensemble F de E si toute classe dquivalence de est soit incluse dans F
soit disjointe de F. Dans ce cas, F est gal lunion des classes qui lintersectent.
On dit quune relation dquivalence sur A

est dite rgulire droite si


w w

implique wa w

a pour tous mots w et w

et toute lettre a . Une telle


relation est en quelque sorte une demi congruence puisquune congruence est une
relation dquivalence qui est simultanment rgulire droite et gauche. Un
langage L est rationnel sil est satur par une relation dquivalence dindice
ni qui est rgulire droite. Dune part, la congruence syntaxique est bien
sr rgulire droite. Dautre part, il est trs facile de construire un automate
dterministe partir dune relation dquivalence rgulire droite. Il sut de
prendre pour tats les classes de cette relation dquivalence et les transitions
de la forme [w]
a
[wa] o [w] dnote la classe de w.
Preuve. On commence par remplacer la machine / par une machine /

qui
accepte uniquement en rencontrant un symbole #. On suppose la machine /
normalise avec un tat acceptant q
+
. On ajoute une transition q
+
, a q
+
, a, R
pour chaque symbole a # et une transition q
+
, # q
++
, # o q
++
est
un nouvel tat qui devient ltat nal. La nouvelle machine /

vrie r
M
(n)
K + 1.
Pour un mot dentre w, on note F
w
lensemble des suites de franchissements
en [w[ des calculs sur une entre de la forme wv pour un mot v. On dnit la
relation sur

par w w

si et seulement si F
w
= F
w
. Comme les suites de
franchissements de / sont de longueur borne par K, la relation est dindice
ni.
Il reste montrer que la relation est rgulire droite et quelle sature
le langage L accept par /. Soient w et w

deux mots tels que w w

et
soit a une lettre de . Soit p
0
, . . . , p
n
une suite de franchissements de F
wa
.
Il existe un mot v tel que p
0
, . . . , p
n
est la suite de franchissements en [wa[
dun calcul sur une entre wav. Puisque F
w
= F
w
, il existe un calcul

sur
une entre w

ayant mme suite de franchissements en [w

[ que en [w[. En
appliquant le lemme 4.61, on trouve un chemin

sur lentre w

= w

av ayant
mme suite de franchissements en [w

[ que en [w[ et qui se comporte comme


sur la partie av de lentre. Ceci montre que p
0
, . . . , p
n
est aussi la suite de
franchissements de

en w

a et appartient donc F
w

a
. Par symtrie, on a
F
wa
= F
w

a
et la relation est donc rgulire droite.
Si w est mot dentre accept par la machine /, il existe un calcul accep-
tant sur w qui se termine sur un symbole #. Si w

vrie w

w, il existe
un calcul

sur une entre w

v ayant mme suite de franchissements en [w

[
que en [w[. En appliquant nouveau le lemme 4.61, il existe un calcul

sur w

ayant mme suite de franchissements en [w

[. Ce calcul peut tre choisi


acceptant et w

est aussi accept par /.


210 CHAPITRE 4. COMPLEXIT
Lemme 4.64. Soit une machine /telle que t
M
(n) Kn pour une constante K.
Il existe une machine /

quivalente / telle que t


M
(n) 2Kn et qui nuti-
lise que la partie de la bande o est crite lentre.
1 2 3 n 2n
2n
3n
4n
Kn
Kn

K
Fig. 4.17 Repliement des Kn cellules sur les n premires cellules
Preuve. Comme la machine / vrie t
M
(n) Kn, elle utilise au plus Kn
cellules de bande. Lide gnrale de la construction est de replier la bande sur
ses n premires cellules. Ceci revient travailler sur le nouvel alphabet
K
.
La nouvelle machine /

eectue une transition de plus lorsquelle passe sur


les positions o est replie la bande. Comme il y a au plus une telle transition
supplmentaire pour chaque transition de /, on a la majoration t
M
2Kn.
La proposition suivante due Hennie est une premire tape dans la preuve
du thorme.
Proposition 4.65 (Hennie 1965). Une machine de Turing / une seule bande
telle que t
M
(n) Kn accepte ncessairement un langage rationnel.
La preuve de la proposition est base sur le lemme suivant.
Lemme 4.66. Soit / une machine de Turing une seule bande telle que
t
M
(n) Kn et qui nutilise que la partie de la bande o est crite lentre. Si
un calcul a une suite de franchissements de longueur suprieure 2K[Q[
K
+K,
alors il existe au moins trois suites de franchissements identiques de longueur
strictement infrieure K.
Preuve. Soit un calcul sur une entre de longueur n ayant au moins une
suite de franchissements de longueur suprieure 2K[Q[
K
+ K. Pour i 1, la
longueur de la suite de franchissements de en i est note l
i
. Puisque la machine
est suppose nutiliser que la partie de la bande o est crite lentre, la valeur
de l
i
est gale 0 pour tout i > n. La longueur de est gale la somme

n
i=1
l
i
. Puisque la machine vrie t
M
(n) Kn, on a lingalit

n
i=1
l
i
Kn.
Soit L le nombre de suites de franchissement de longueur strictement infrieure
K. Parmi les nL suites de franchissements de longueur au moins gale K,
au moins une est de longueur suprieure 2K[Q[
K
+K. On a alors les ingalits
2K[Q[
K
+K + (n L 1)K
n

i=1
l
i
Kn.
4.6. COMPLMENTS 211
En simpliant, on obtient la minoration L 2[Q[
K
. Le nombre de suites di-
rentes de longueur strictement infrieure K est 1 +[Q[ + +[Q[
K1
qui est
major par [Q[
K
1. Comme L 2[Q[
K
, il existe au moins trois suites gales
de longueur strictement infrieure K.
On est maintenant en mesure dtablir la proposition 4.65.
Preuve de la proposition 4.65. Grce au lemme 4.64, il peut tre suppos que la
machine / utilise uniquement la portion de la bande o est crite lentre. On
montre que r
M
(n) est born par 2K[Q[
K
+ K. Supposons par labsurde quil
existe un calcul sur une entre w qui a une suite de franchissements de longueur
suprieure 2K[Q[
K
+ K. Le chemin est en outre choisi de telle sorte que w
soit de longueur minimale. Daprs le lemme prcdent, il existe trois suites de
franchissements identiques de longueur infrieure K. Deux au moins parmi
ces trois suites se situent du mme ct de la suite de longueur suprieure
2K[Q[
K
+ K. Grce au corollaire 4.62, il existe un autre calcul sur une entre
strictement plus courte que w ayant encore une suite de franchissements de
longueur suprieure 2K[Q[
K
+K. Ceci contredit le choix de w et montre que
r
M
(n) est eectivement born par 2K[Q[
K
+K. Grce la proposition 4.63, le
langage accept par la machine / est rationnel.
On termine par la preuve du thorme 4.59 qui utilise des arguments simi-
laires la preuve de la proposition 4.65 mais de manire plus ne.
Preuve du thorme 4.59. Soit /une machine de Turing une seule bande telle
que lim
n
t
M
(n)/ log n = 0. Si (r
M
(n))
n0
est borne, le rsultat est acquis
grce la proposition 4.63. On suppose donc maintenant que (r
M
(n))
n0
nest
pas borne. On dnit par rcurrence une suite dentiers (n
i
)
i0
de la faon
suivante. On pose n
0
= 0 et n
i
tant dni, on choisit pour n
i+1
le plus petit
entier tel que r
M
(n
i+1
) > r
M
(n
i
). Par construction, la suite (n
i
)
i0
vrie
r
M
(n
0
) < r
M
(n
1
) < r
M
(n
2
) < et elle est strictement croissante. Pour
chaque i 0, soit
i
un calcul sur une entre w
i
tel que w
i
est de longueur n
i
et
i
a une suite de franchissements de longueur r
M
(n
i
).
Chaque calcul
i
na pas trois suites de franchissements identiques parmi les
n
i
premires suites. Sinon, deux de ces suites de franchissements se situent du
mme ct de la suite de longueur r
M
(n
i
). Grce au corollaire 4.62, il existe
un autre calcul sur une entre strictement plus courte que w
i
ayant encore une
suite de franchissements de longueur r
M
(n
i
). Ceci contredit le choix de n
i
. Le
nombre de suites de franchissements distinctes de longueur infrieure ou gale
r
M
(n
i
) est 1 +[Q[ + +[Q[
rM(ni)
. Ce nombre est major par [Q[
rM(ni)+1
1.
Comme chaque suite de franchissements apparat au plus deux fois parmi les n
i
premires, on obtient lingalit 2[Q[
rM(ni)+1
n
i
. En prenant le logarithme,
on a r
M
(n
i
) log
|Q|
n
i
log
|Q|
2 1 log
|Q|
n
i
2. Le temps minimal dun
calcul
i
survient lorsque toutes les suites de franchissements de longueur j pour
0 j r apparaissent deux fois, lentier r tant le plus petit possible pour que
ces suites soient distinctes. On obtient donc lingalit
t
M
(n
i
) 2
r

j=1
j[Q[
j
2r[Q[
r
o r = log
|Q|
n
i
3.
212 CHAPITRE 4. COMPLEXIT
En utilisant nalement lingalit r log
|Q|
n
i
3, on arrive lingalit
t
M
(n
i
) 2(log
|Q|
n
i
3)n
i
[Q[
3
qui implique que t
M
(n
i
)/n
i
log n
i
ne tend
pas vers 0 contrairement lhypothse de dpart. Ceci montre que la r
M
(n) est
en fait born et que le langage accept par / est rationnel.
Bibliographie
[ABB97] J.-M. Autebert, J. Berstel, and L. Boasson. Context-free languages
and pushdown automata. In Handbook of formal languages, volume 1,
pages 111174. Springer, 1997.
[Alm94] J. Almeida. Finite Semigroups and Universal Algebra. World Scientic,
1994.
[ASU86] Alfred V. Aho, Ravi Sethi, and Jerey D. Ullman. Compilers : Prin-
ciples, Techniques, and Tools. Addison-Wesley, 1986.
[Aut87] J.-M. Autebert. Langages algbriques. Masson, 1987.
[Aut92] J.-M. Autebert. Calculabilit et Dcidabilit. Masson, 1992.
[BB90] J. Berstel and L. Boasson. Context-free languages. In J. van Leeuwen,
editor, Handbook of Theoretical Computer Science, volume B, chap-
ter 2, pages 59102. Elsevier, 1990.
[BBC93] G. Beauquier, J. Berstel, and P. Chrtienne. lments dalgorithmique.
Masson, 1993.
[BP84] J. Berstel and D. Perrin. Theory of Codes. Academic Press, 1984.
[Cas02] J. Cassaigne. Algebraic Combinatorics on Words, chapter Unavoidable
patterns. Cambridge University Press, 2002.
[HU79] J. E. Hopcroft and J. D. Ullman. Introduction to Automata Theory,
Languages and Computation. Addison-Wesley, 1979.
[Koz97] D. C. Kozen. Automata and Computability. Springer, 1997.
[Lib04] L. Libkin. Elements of Finite Model theory. Springer, 2004.
[Lot83] M. Lothaire. Combinatorics on Words, volume 17 of Encyclopedia
of Mathematics and its Applications. Addison-Wesley, Reading, MA,
1983.
[Pap95] C. Papadimitriou. Computational complexity. Addison-Wesley, 1995.
[Per90] D. Perrin. Finite automata. In J. van Leeuwen, editor, Handbook
of Theoretical Computer Science, volume B, chapter 1, pages 157.
Elsevier, 1990.
[Pin84] J.-. Pin. Varits de Langages Formels. Masson, 1984.
[Sak03] J. Sakarovitch. lments de thorie des automates. Vuibert, 2003.
[Sip97] M. Sipser. Introduction to the Theory of Computation. PWS publishing
Company, 1997.
[Ste90] J. Stern. Fondements mathmatiques de linformatique. McGraw-Hill,
1990.
213
214 BIBLIOGRAPHIE
[Str94] H. Straubing. Finite Automata, Formal Logic and Circuits Complexity.
Progress in theoretical computer science. Birkhuser, 1994.
[vLW92] J. H. van Lint and R. M. Wilson. A Course in Combinatorics. Cam-
bridge University Press, 1992.
La bibliographie a t dlibrment limite aux rfrences essentielles. Elle
propose uniquement des livres et des chapitres de livres destins des non
spcialistes. Les articles originaux ont t carts au prot de documents plus
pdagogiques. Par contre, beaucoup des ouvrages cits contiennent une biblio-
graphie plus complte sur chacun des sujets traits.
Certains livres couvrent lensemble des quatre chapitres du cours. Dans cette
catgorie, la rfrence la plus classique est [HU79]. Dautres livres comme [Sip97]
ou [Koz97] proposent un traitement un peu plus moderne.
Un certain nombre de chapitres de livres de rfrence sont cits. Ces chapitres
prsentent lintrt de couvrir un sujet tout en tant relativement concis. Les
chapitres [Per90] et [BB90] traitent ainsi des langages rationnels et des langages
algbriques. Le chapitre [Cas02] est consacr aux motifs invitables.
Des livres plus spcialiss orent un approfondissement de certains sujets.
Le livre [Sak03] traite de manire trs complte les langages rationnels. Le livre
[Pap95] donne un survol trs complet de la thorie de la complexit.
Dautres livres couvrent des sujets peine eeurs dans ce cours. Le livre
[BBC93] couvre lalgorithmique. Un de ses chapitres traite la minimisation dau-
tomates et lalgorithme dHopcroft. Le livre [vLW92] contient une preuve du
thorme de Ramsey. Les livres [Pin84] et [Alm94] dveloppent la thorie des
semigroupes. Le livre [Str94] couvre trs bien les liens entre automates, se-
migroupes et logique. Le livre [Lib04] traite de la thorie des modles et en
particulier des liens entre les automates et la logique.
Index
aectation, 113
algorithme
de Cocke-Kasami-Younger, 169
de Hopcroft, 44
de McNaughton-Yamada, 34
par limination, 35
artes
conscutives, 112
arbre, 27
de drivation, 83
des calculs, 120, 127
domaine d, 27
sous-arbre, 27
syntaxique, 175
argument
diagonal, 131, 133, 156, 157, 198
automate, 31
mond, 32
pile, 97
pile dterministe, 102
alternant, 202
boustrophdon, 163, 204
complet, 39
dterministe, 37
minimal, 40
normalis, 32
quotient, 42
calcul
dun automate pile, 97
dun automate alternant, 202
dune machine alternante, 199
dune machine de Turing, 118
chemin
dun automate, 31
dun graphe, 112
eulrien, 112
hamiltonien, 112, 170, 171, 177
classe
AL, 204, 205
APSpace, 204
AP, 204, 205
ASpace, 204, 205
ATime, 204
L, 191
P, 168, 187, 205
ExpSpace, 186, 187
ExpTime, 168, 187, 205
NExpTime, 168, 171, 187
NL, 191
NP, 168, 187
PSpace, 186, 187, 205
autoduale, 169, 201
co-NL, 191
de complexit, 168, 186, 204
duale, 169
clause, 113
clique, 112, 178
codage, 114
code, 20
composante
fortement connexe, 112
congruence, 209
dautomate, 42
de monode, 57, 161
de Nerode, 41
syntaxique, 57
couverture de sommets, 180
cycle
dun graphe, 112
eulrien, 11
entiers
mult. indpendants, 160
numrateur, 129
enveloppe libre, 21
facteur, 10
rcurrent, 160
fonction
calculable, 133
dAckermann, 156
215
216 INDEX
primitive rcursive, 153
rcursive, 153
forme
normale conjonctive, 113
formule
satisable, 113
franchissement, 206
grammaire, 144
algbrique, 70, 139, 169
ambigu, 84
contextuelle, 144
croissante, 144
en forme de Greibach, 94
en forme quadratique, 75
propre, 74
rduite, 73
graphe, 111
acyclique, 112
des congurations, 119, 196, 205
hauteur
dtoile, 53
dtoile gnralise, 53
idal
dordre, 23
langage
algbrique, 71, 169
algbrique inhremment ambigu, 84,
88, 89
dun problme, 114
dcidable, 131
de Dyck, 71, 92, 99, 105, 195
de Goldstine, 72, 89
de Luckasiewicz, 71
rcursivement numrable, 129
rationnel, 29, 80, 105, 150, 160,
161, 202, 206
sans toile, 53, 60
lemme
dArden, 36
dOgden, 86
de Dickson, 25
de Knig, 129
de ltoile, 48
de Newman, 104
logique
propositionnelle, 113
mlange
de langages, 47
Machine
universelle, 132
machine de Turing, 116
plusieurs bandes, 124
alternante, 199
dterministe, 126
linairement borne, 143
normalise, 120
mineur
de graphe, 29
monode, 54
apriodique, 61
des transitions, 56
niment engendr, 67
libre, 10, 54
polycyclique, 105
quotient, 56
syntaxique, 58, 59
morphisme, 47, 67, 137
alphabtique, 91
de monodes, 11, 16, 54
eaant, 11
mot
de de Bruijn, 10
de Fibonacci, 13, 17, 161
de Thue-Morse, 18
de Zimin, 20
inni, 16
inni priodique, 16
primitif, 12
sans chevauchement, 18
sans carr, 17
sturmien, 161
ultimement priodique, 16, 160
occurrence
circulaire, 10
ordre
des sous-mots, 25
hirarchique, 26
lexicographique, 26, 48
priode
dun mot, 12
palindrome, 10, 72
parcours
en largeur, 127, 169
partie
INDEX 217
reconnaissable, 67
Path, 169, 192, 195
Pcp, 136
prxe, 10
prordre, voir quasi-ordre
problme
NL-complet, 195
NL-dicile, 195
NP-complet, 173, 176
NP-dicile, 173
PSpace-complet, 189
daccessibilit, voir Path
de correspondance de Post, voir
Pcp
de dcision, 114
de la somme, 181
uniforme, 197
programmation
dynamique, 169
quasi-ordre, 22
bien fond, 23
bon, 23
Quines, 141
quotient
gauche, 204
gauche, 40, 51
rduction
algorithmique, 134
logarithmique, 192
polynomiale, 172, 174, 175, 177,
178, 180, 181
relation
conuente, 103
fortement conuente, 104
localement conuente, 104
noethrienne, 103
rationnelle, 67
relation dquivalence
rgulire droite, 209
Sat, 170, 171, 173
2Sat, 193, 196
3Sat, 173, 176
satisabilit, voir Sat, 2Sat et 3Sat
sous-graphe, 29
sous-monode, 11
libre, 20
sous-mot, 25
substitution, 74
algbrique, 90
inverse, 59
suxe, 10
thorme
dImmerman-Szelepcsnyi, 146, 149,
169, 186, 191
de Benois, 107
de Chomsky-Schtzenberger, 93
de Cobham, 160
de Cook-Levin, 173
de Ehrenfeucht, Parikh et Rozen-
berg, 50
de Fine et Wilf, 13
de Guibas et Odlyzko, 14
de hirarchie, 198
de Higman, 25
de Howson, 108
de Kleene, 32
de Kruskal, 28
de Parikh, 80
de Post, 138
de Presburger, 150
de rcursion, 143
de Ramsey, 50
de Rice, 135
de Savitch, 184, 188, 189, 205
de Schtzenberger, 62
de Tarski, 152
thse de Church, 158
transduction
rationnelle, 67, 94
vricateur, 171

You might also like