Professional Documents
Culture Documents
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
.
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
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
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
= 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
est de la forme L
puisque K = K
.
Exemple 1.9. Si L = a, ba, alors L
= 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
).
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
) o w
= (u
)
k
u
.
Preuve. Le cas k = 1 est trivial et on suppose dornavant que k 2. Lgalit
P(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 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
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
).
Lemme 1.17. Soit w = uvu comme en (1.1) avec k = 1. Soit u
00, 1
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
) P(w). Comme u
[ ou p 1 q < [w[.
Si q vrie q < u
. 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 v
[ et P(uvu) = P(u
= 01
|w|1
vrie P(w) = P(w
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
. 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
dans B
dans A
(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))
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 =
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
dans A
. 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
a av
a ay
. Comme x est de
longueur paire, le mot a av
a av
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
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
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
.
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
, 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
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
. 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
= +(Y y)Y
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
= 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 _
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
x
l
. Ceci montre
que le quasi-ordre _
A est _
0
. Soit _
b implique a _
0
b puisque
la rciproque est vidente. Si a _
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
= a
1
a
n
vrient w _
ji
pour tout 1 i m. Pour une
relation R, on note parfois R
est lextension A
est
le plus petit (au sens de linclusion) quasi-ordre sur A
tel que :
1. uv _
et toute lettre a A,
2. uav _
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 _
.
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 _
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
= ubv
. Le mot u est en
fait le plus long prxe commun w et 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
vrient w <
hi
w
si [w[ < [w
[ ou [w[ = [w
[
et w <
lex
w
len-
semble des suites nies dentiers. Un domaine darbre est sous-ensemble D de 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 _
(f(w)),
2. f(w w
) = f(w) f(w
) et
3. Si w <
lex
w
)
o w w
.
La fonction f gnralise la suite croissante dindices j
1
, . . . , j
m
utilise dans
le cas des mots pour dnir lordre _
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 _
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 _
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 _
.
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
_
(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
_
monochrome de domaine B
n
tel que t
.
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
= 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
. 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
+b
a +b)
, 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)
aA
abA
aA
bA
a +b)
) = L(/) .
Preuve. Soit / = (Q, A, E, I, F) un automate. Soient i et f deux nouveaux tats
nappartenant pas Q. Lautomate /
, i, f) o
lensemble 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 en supposant que X
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
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)
= (Q, A, E
, I, F) o
lensemble E
= p
a
q [ p
, q
Q p
p
, p
a
q
et q
q.
Il est immdiat de vrier que lautomate /
) 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
/ =
_
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
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
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
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 /
) =
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)
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)
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
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
= [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
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
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
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
(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
sont des parts de la partition T et que cette dernire ne peut tre que
rane, la partie C
. 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
dans B
. Si L A
est ration-
nel, alors (L) est rationnel. Si K B
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 /
, u
0
u
n
K et v
0
v
n
L.
1. Montrer que Si les langages L et L
= (Q
, A, E
, I
, F
) deux automates
acceptant respectivement les langages K et L. On construit lautomate dont
lensemble dtats est QQ
et F F
)
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
wF
w XA
. 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
)
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
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
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
= L A
baA
.
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
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
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
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
< 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
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)
=
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
) des parties de A
, j
) =
(i, j
).
Dnition 1.114 (Morphisme de monodes). Soient M et M
deux monodes.
Un morphisme de M dans 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
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 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
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
.
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
M et si lapplication identit M
id
M est un morphisme
de M
dans M.
Une faon quivalente dexprimer que M
, que lunit de M
est la restriction M
du produit de M.
Exemple 1.125. Quelques exemples de sous-monodes.
Les sous-monodes de A
pour L A
.
Lensemble des parties rationnelles de 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
et on note
M M
et M
= a, b, c, d
(remarquez que 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
)
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
, 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
dans M et un mor-
phisme surjectif de M
(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
(
=
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
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
= (A
) est un sous-monode de M. On va
montrer que M(L) est un quotient de M
, si (w) = (w
), alors on a aussi
(w) = (w
).
Pour tout lment m de M
, on peut dnir
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
. Soient q et q
les tats p w et p w
) et que w et w
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)
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
=
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
aA
bA
est sans-toile.
= A
aA
A
aA
b) A
(aa +bb)A
.
(ab)
= (ab)
+
+.
1.12. LANGAGES SANS TOILE 61
(aa)
et (aa)
+
ne sont pas sans toile.
Le fait que le langage (aa)
) 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)
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
= mp = qm. Puisque m
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
= qm, on obtient
m
= qm
r et donc m
= m
1
(m) = (UA
V ) (A
WA
)
o les trois ensembles U, V, W A
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
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
1
(1
M
) = a [ (a) = 1
M
= A
a [ (a) ,= 1
M
A
sinon, on crit
1
(m) = (UA
V )A
WA
et q
tels que m =
pnq = p
nq
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
.
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
= k
1
k
n
[ k
1
, . . . , k
n
K.
Ltoile 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
est aussi appele une relation rationnelle ou encore une transduction rationnelle.
Un lment de A
(b, )
+ (a, )
(b, c)
(b, )
+ (a, )
(b, c)
du monode
a, b
0, 1
0, 1
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
et B
. La diagonale = (w, w) [ w A
= (a, a) [
a A
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 )
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
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
. La notation L
G
peut tre tendue aux langages
en posant L
G
(K) =
uK
L
G
(u) pour K (A + V )
_
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
_
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 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
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
pour
S, S
V .
Exemple 2.15. la grammaire G = S aSb+ nest pas propre puisque S .
Par contre, la grammaire 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
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
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
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
= (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
. 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 )
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 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
.
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
.
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
=
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
X(A+
X)
et T = S(X) A
T)Q(T)
T +T
= Q(T)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
, 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
) 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
=
(R
1
, . . . , R
n
) du systme o(G
), 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
=
L qui est propre et aussi algbrique. On obtient un langage rationnel R
tel que L
= R
. Le langage R = R
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 )
,
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
. .
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
= L
G
(S
= .
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
dans B
wL
(w) est aussi algbrique.
Preuve. Soient G = (A, V, P) une grammaire pour L = L
G
(S) et : A
P(B
= (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
= 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
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
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
= (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
= 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
= (A
, V, P
) o les
rgles de G
de G
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
n
dcoule direc-
tement de la forme particulire des rgles de G
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
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 )
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
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
= (R
ij
) o chaque entre R
ij
est
donne par la formule
R
ij
=
X
k
Rij
(SY )
k
.
La grammaire G
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
) note C
y
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
, avec z Z
0
qui vide la pile sans atteindre un tat nal est remplace par une transition
q, z
y
q
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
,z
lensemble des mots f tels quil existe un calcul dtiquette f de la conguration
(q, z) la conguration (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
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
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
z et y
z et donc tel que y
z et
y
z.
x
x
y
y
vrient x
y et x
y
que z = z
.
Supposons quil existe deux lments en forme normale z et z
tels que x
z
et x
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
implique [w[
n
par w w
si (w) = (w
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 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 =
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
H = (z
0
(K)) a
1
, . . . , a
n
n
de la manire suivante. Deux mots w et w
vrient w w
implique
[w[
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
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
v
q
w
r soit russi et presque simple. On
alors les galits h = uvw = gw(u
w)
1
u
, v
. 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
et un chemin de v
) et max(b, b
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
= 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
) note C C
telle que :
soit C = ucpav et C
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
. 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
/ 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 /
avec q dirent de q
+
et q
telle que C C
. Lide gnrale
est dajouter un nouvel tat q
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 /
est donc
est identique
celui de /. La premire opration de la machine /
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 /
0
, q
1
q
+
et 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 /
= 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
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 /
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
, 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 /
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 /
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 /
ne se termine pas.
Soit w
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 /
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 /
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 /
sarrte et
accepte lentre w.
4. Remplacer la chane de la troisime bande avec la chane qui suit dans
lordre hirarchique. La machine /
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
et L L
quon
peut supposer une seul bande grce la proposition 3.17. On construit des
machines /
et /
et L L
.
On construit une machine /
sur
la seconde bande. La machine /
accepte.
Pour la machine /
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
, LL
et
. Les machines /
et /
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 dcidables.
Preuve. On suppose que les machines / et /
L. Par contre, ces deux machines peuvent avoir des calculs innis. On
construit une machine ^ semblable la machine /
par
L
= /, w) [ w L(/).
Proposition 3.29 (Machine universelle). Le langage L
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 /
) = L
B
.
On dnit une machine /
A
, qui excute
/ sur cette entre, puis qui excute /
sur la sortie de /. /
accepte si /
accepte et rejette si /
rejette.
Alors /
)) = 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
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 /
) /)
est bien sr calculable par une machine de Turing dterministe. De plus on a
lquivalence L(/) ,= L(/) ,= 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
. 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 /
dans
dans
= 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
= pa et v
= cpa et v
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+)
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
//
) 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
T
1
T
, 1
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 /
), 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
et une rgle w w
tels que u = w et u
= w
. On note
[ 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 /
) ,=
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 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
.
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
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 /
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 /
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
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
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
. 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
:
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
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
et v v
0
0
(uv) =
0
0
(u
et v v
les
chemins lintrieur de u et v peuvent tre remplacs par des chemins lint-
rieur de u
et v
. 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
=
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 /
est linaire
en la taille de w. Daprs lhypothse, la machine /
.
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
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
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
. Sinon,
elle parcourt toutes les congurations 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
, 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
quivalente /. Pour
chaque entre w de taille n, la machine /
.
(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
. 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
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 :
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
l l
o l l
et
l
l de G
,
alors
l
dans G
l dans G
.
La proprit cl du graphe 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
est de longueur 1.
Le rsultat stablit alors pour tous les chemins par rcurrence sur la longueur.
Si l l
, alors
l 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
) = 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
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
[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
(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
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
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
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
telle
4.5. MACHINES ALTERNANTES 201
que C 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
et 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 /
.
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 /
telles
que C C
, il nexiste pas
de calcul acceptant partant de C dans /
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
,= ,
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
. La
machine / utilise des congurations existentielles pour dterminer la congu-
ration intermdiaire C
telle C C
est
marque. Une conguration universelle C est marque ds que toutes les con-
gurations C
telle C C
[ [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
. .
. .
.. ..
Fig. 4.16 Jonction de calculs
Lemme 4.61. Soient x = uy et x
= u
en [u
sur uy
sur y
.
Si la suite de franchissements commune et
en [u[ et en [u
[ est de
longueur paire, le chemin
se termine comme
. Lide de la preuve
est illustre la gure 4.16.
Preuve. On construit un calcul
sur uy
.
Soit p
0
, . . . , p
n
la suite de franchissements de en [u[ et de
en [u
[. Le cal-
cul
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
implique wa w
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
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
[ 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
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
[
que en [w[. En appliquant nouveau le lemme 4.61, il existe un calcul
sur w
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 /
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