Vous êtes sur la page 1sur 430

Sylvain Perifel

COMPLEXIT
ALGORITHMIQUE

Version lectronique sous licence Creative Commons

(paternit, pas dutilisation commerciale, partage dans les mmes conditions)


http://creativecommons.org/licenses/by-nc-sa/3.0/fr/

Sylvain Perifel, 2014

Avant-propos
Le projet de ce livre a germ au cours dun groupe de lecture de lexcellent ouvrage dArora
et Barak [AB09]. Une conjonction de plusieurs facteurs ma dcid franchir le pas. Il y
avait premirement la volont de contribuer modestement au dveloppement de lenseignement et de la recherche en complexit en France. On pouvait voir labsence douvrage
avanc en langue franaise sur ce sujet comme la cause ou la consquence dun domaine
insuffisamment dvelopp. Jai prfr y voir la cause. Je suis convaincu quon a dans
notre pays le potentiel pour contribuer significativement lavance de ce beau sujet.
Il y avait aussi le fait que le livre anglophone de rfrence dArora et Barak est destin
au public doutre-Atlantique et ne correspond pas au style douvrage utile aux enseignants
de ce ct-ci de locan. Les preuves sont trop approximatives, trop de dtails sont omis
ou trop de petites erreurs gnent la prparation dun cours formel au tableau. Entendonsnous bien, le livre en question est excellent, donne les bonnes intuitions, couvre un matriel considrable et le prsent ouvrage lui doit beaucoup, mais il nest gure adapt pour
les cours formels franais. Je ne prtends certes pas que mon livre est exempt derreurs,
loin de l malheureusement, mais jespre avoir vit les imprcisions qui peuvent nuire
la comprhension du lecteur.
Il y avait enfin la maison ddition Ellipses qui ma contact au moment opportun et qui
a lanc ce projet.
Remerciements
Je tiens donc remercier Paul de Laboulaye de mavoir propos de publier mon ouvrage
aux ditions Ellipses. Je remercie galement Pascal Koiran pour mavoir donn le got de
la recherche en complexit.
Je lai dit, ce livre doit beaucoup louvrage dArora et Barak, dont sinspire la prsentation
de quelques rsultats (au chapitre 12 notamment). Je souhaite donc remercier ses auteurs
pour avoir crit un livre couvrant les dveloppement rcents de la thorie de la complexit.
Je me rends compte maintenant du travail que cela reprsente.
videmment, la rdaction dun livre nest pas quune aventure solitaire et de nombreuses
discussions avec Herv Fournier, Guillaume Malod et Thomas Colcombet notamment
sont venues enrichir cet ouvrage, un grand merci eux. Merci galement Olivier Serre
pour ses lignes de code LATEX, Peter Habermehl pour mavoir dbloqu sur deux ou trois
questions, et Christian Choffrut pour avoir donn les TD de mon cours de complexit.

ii

Avant-propos

Je dois beaucoup galement tous les relecteurs qui ont dbusqu de nombreuses fautes
et ont permis damliorer sensiblement la prsentation de ce livre : je remercie chaleureusement (dans lordre alphabtique) Laurent Bienvenu, Sylvain Bouveret, Florent Capelli,
Arnaud Durand, Herv Fournier, Bruno Grenet, Guillaume Lagarde, Mathieu Laurire,
Guillaume Malod, Stefan Mengel, Charles Paperman, Natacha Portier, Yann Strozecki et
Sbastien Tavenas. Sil reste des erreurs, cest videmment leur ma faute.
Enfin, et surtout, merci mon pouse qui me supporte et me soutient quotidiennement.

Table des matires


Introduction

ix

Prliminaires et notations

xv

1 Le modle de calcul
1.1

1.2

Problmes, langages et codage . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.2

Problmes et langages . . . . . . . . . . . . . . . . . . . . . . . . . . . .

La machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.2.3

Code et machine universelle . . . . . . . . . . . . . . . . . . . . . . . .

14

1.2.4

Langage de haut niveau . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

1.2.5

Indcidabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2 Considrations de base sur le temps


2.1

2.2

31

Temps dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

2.1.1

Classes de complexit en temps . . . . . . . . . . . . . . . . . . . . . .

32

2.1.2

Thorme de hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

2.1.3

Temps polynomial et temps exponentiel . . . . . . . . . . . . . . . .

39

Temps non dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

2.2.1

Machines non dterministes . . . . . . . . . . . . . . . . . . . . . . . .

43

2.2.2

Langage de haut niveau . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

2.2.3

Machine non dterministe universelle . . . . . . . . . . . . . . . . .

46

2.2.4

Classes en temps non dterministe . . . . . . . . . . . . . . . . . . . .

49

2.2.5

Thorme de hirarchie en temps non dterministe . . . . . . . . .

52

iv

Table des matires


2.2.6

Temps non dterministe polynomial et exponentiel . . . . . . . . .

54

2.2.7

Le problme P = NP? . . . . . . . . . . . . . . . . . . . . . . . . . .

59

2.2.8

Complexit du complmentaire . . . . . . . . . . . . . . . . . . . . .

60

3 NP-compltude

63

3.1

Rductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

3.2

Compltude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

3.2.1

Dfinition et premires proprits . . . . . . . . . . . . . . . . . . . .

67

3.2.2

Compltude du problme SAT . . . . . . . . . . . . . . . . . . . . . .

70

3.2.3

Autres problmes NP-complets . . . . . . . . . . . . . . . . . . . . . .

76

3.2.4

Complmentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

3.2.5

Thorme de Ladner . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

3.2.6

Thorme de Mahaney . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

3.2.7

Algorithme polynomial pour SAT si P = NP . . . . . . . . . . . . . .

93

4 Considrations de base sur lespace


4.1

97

Espace dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

4.1.1

Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

4.1.2

Espace logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

4.1.3

Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4.1.4

Thorme de hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.2

Espace non dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.3

Comparaison avec les classes en temps . . . . . . . . . . . . . . . . . . . . . . . 104

4.4

Compltude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.5

4.4.1

Espace polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.4.2

Espace non dterministe logarithmique . . . . . . . . . . . . . . . . 112

Le rle du non-dterminisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116


4.5.1

Certificats unidirectionnels . . . . . . . . . . . . . . . . . . . . . . . . 116

4.5.2

Thorme de Savitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.5.3

Thorme dImmerman-Szelepcsnyi . . . . . . . . . . . . . . . . . . 120

4.5.4

Les questions ouvertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

5 Uniformit et non-uniformit
5.1

127

Conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.1.1

Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Table des matires

5.2

5.3
5.4
5.5
5.6

5.1.2 Classes usuelles . . . . . . . . . . . . . . . . . . . . .


5.1.3 Premiers rsultats . . . . . . . . . . . . . . . . . . . .
Circuits boolens . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Dfinition . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Machines et circuits . . . . . . . . . . . . . . . . . .
5.2.3 Circuits et conseils . . . . . . . . . . . . . . . . . . .
Uniformit des circuits . . . . . . . . . . . . . . . . . . . . . .
Autres classes dfinies par circuits . . . . . . . . . . . . . . .
Intrt des circuits et bornes infrieures non uniformes .
Circuits arithmtiques . . . . . . . . . . . . . . . . . . . . . .

6 Algorithmes probabilistes
6.1 Machines de Turing probabilistes . . . . . . . . . .
6.1.1 Tri rapide . . . . . . . . . . . . . . . . . . . .
6.1.2 Machines de Turing probabilistes . . . .
6.2 Classes probabilistes . . . . . . . . . . . . . . . . . . .
6.2.1 Dfinitions . . . . . . . . . . . . . . . . . . .
6.2.2 Rduction derreur . . . . . . . . . . . . . .
6.2.3 Comparaison avec les classes uniformes
6.2.4 Thorme de hirarchie . . . . . . . . . . .
6.2.5 Circuits et algorithmes probabilistes . . .
6.3 Un exemple important . . . . . . . . . . . . . . . . .
6.3.1 Test de circuits arithmtiques . . . . . . .

6.4

6.3.2 quivalence des deux problmes


6.3.3 Algorithme probabiliste . . . . . .
Questions ouvertes . . . . . . . . . . . . . .
6.4.1 Problmes naturels de BPP . . . .
6.4.2 Hirarchie . . . . . . . . . . . . . .
6.4.3 Temps exponentiel . . . . . . . . .

7 Oracles et limites de la diagonalisation


7.1 Thormes de hirarchie . . . . . . . .
7.1.1 numration des machines
7.1.2 Hirarchie dterministe . . .
7.2 Machines de Turing oracle . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

129
131
133
133
137
141
142
143
145
146

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

153
153
153
155
155
156
157
159
160
163
163
164

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

164
166
167
167
167
168

.
.
.
.

169
169
170
170
173

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

vi

Table des matires


7.3
7.4

7.5

7.6

Quelques rsultats pour se faire la main . . . . . . . . . . . . . .


Langages creux et rduction Turing . . . . . . . . . . . . . . . . .
7.4.1 Langages creux . . . . . . . . . . . . . . . . . . . . . . . .
7.4.2 Rduction Turing polynomiale . . . . . . . . . . . . . .
Relativisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1 Diagonalisation, oracles et la question P = NP ? .
7.5.2 Relativisation de la question EXP = NP ? . . . . . .
De la difficult de dfinir la bonne notion de diagonalisation

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

8 La hirarchie polynomiale
8.1 La hirarchie polynomiale . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Dfinition et premires proprits . . . . . . . . . . . . . . . .
8.1.2 Caractrisation en termes de quantificateurs . . . . . . . . .
8.1.3 Problmes complets . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Comparaison avec les classes probabilistes . . . . . . . . . . . . . . . .
8.3 Liens avec les circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1 Thorme de Karp et Lipton . . . . . . . . . . . . . . . . . . .
8.3.2 Langages creux . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4 Borne infrieure sur le temps et lespace conjugus pour NTIME(n)
9 Comptage
9.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Classes de fonctions . . . . . . . . . . . . .
9.1.2 Classes de langages . . . . . . . . . . . . . .
9.2 Premiers rsultats de compltude . . . . . . . . . .
9.2.1 Rductions pour les classes de fonctions
9.2.2 Compltude pour P . . . . . . . . . . . . .
9.2.3 Compltude pour les autres classes . . .
9.3 Proprits de clture . . . . . . . . . . . . . . . . . .
9.3.1 Proprits de base . . . . . . . . . . . . . . .
9.3.2 PP est clos par union . . . . . . . . . . . .
9.3.3 P est-il clos par soustraction ? . . . . . .
9.4 Thorme de Toda . . . . . . . . . . . . . . . . . . . .
9.5 Permanent . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.1 Intrts du permanent . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

176
180
180
182
183
183
186
190

.
.
.
.
.
.
.
.
.

193
193
193
196
199
201
203
204
206
207

.
.
.
.
.
.
.
.
.
.
.
.
.
.

211
211
212
214
216
217
218
219
221
221
223
225
226
235
236

Table des matires


9.5.2

vii
Compltude du permanent . . . . . . . . . . . . . . . . . . . . . . . . 238

10 Protocoles interactifs

247

10.1 Les classes IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248


10.1.1 Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
10.1.2 Isomorphisme de graphes . . . . . . . . . . . . . . . . . . . . . . . . . 250
10.1.3 IP = PSPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
10.2 Les classes Arthur-Merlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
10.2.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
10.2.2 Deux petits tours et puis sen vont . . . . . . . . . . . . . . . . . . . . 267
10.2.3 Erreur dun seul ct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
10.2.4 Bits alatoires publics ou privs . . . . . . . . . . . . . . . . . . . . . . 272
10.2.5 Le problme de lisomorphisme de graphes . . . . . . . . . . . . . . 280
10.3 Le thorme PCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
10.3.1 Probabilistically Checkable Proofs . . . . . . . . . . . . . . . . . . . . 281
10.3.2 Rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
11 Bornes infrieures non uniformes

287

11.1 Circuits boolens sans restriction . . . . . . . . . . . . . . . . . . . . . . . . . . 287


11.1.1 Bornes infrieures en (n k ) . . . . . . . . . . . . . . . . . . . . . . . . 288
11.1.2 Bornes infrieures en n (1) . . . . . . . . . . . . . . . . . . . . . . . . . 292
11.2 Circuits restreints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
11.2.1 Monotonie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
11.2.2 Profondeur constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
11.3 Polynmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
11.3.1 Baur et Strassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
11.3.2 Borne infrieure en (n k ) . . . . . . . . . . . . . . . . . . . . . . . . . 310
12 Drandomisation et bornes infrieures

317

12.1 Drandomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318


12.2 Imprdictibilit implique drandomisation . . . . . . . . . . . . . . . . . . . . 320
12.3 Difficult en moyenne implique imprdictibilit . . . . . . . . . . . . . . . . 324
12.4 Difficult dans le pire cas implique difficult en moyenne . . . . . . . . . . 330
12.4.1 Codes correcteurs derreurs . . . . . . . . . . . . . . . . . . . . . . . . 330
12.4.2 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

viii

Table des matires


12.5 Drandomisation implique borne infrieure . . . . . . . . . . . . . . . . . . . 350

A Probabilits et arithmtique
355
A.1 Probabilits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
A.2 Arithmtique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
B Exercices supplmentaires

363

C Solutions des exercices

369

D Classes de complexit rencontres dans ce livre

389

E Indications pour lenseignant

395

Bibliographie

399

Index

407

Introduction
Pour bien comprendre lvolution de la discipline, il est utile de dbuter par un bref
rappel historique. Pendant plusieurs millnaires, les mathmaticiens se sont contents
dune notion intuitive, informelle, dalgorithme : une mthode effective de calcul , ou
encore un processus de rsolution dun problme par le calcul . Ce fut un long chemin
pour arriver la formalisation de cette notion au XXe sicle, puis ltude de la complexit
des algorithmes qui est lobjet de ce livre.

Algorithmes
Les premires traces dalgorithmes ont t retrouves chez les Babyloniens (lactuel Irak)
au deuxime millnaire avant notre re et taient principalement des mthodes de calcul
pour le commerce et les impts. Il faut attendre le troisime sicle avant J.-C. en Grce
pour lapparition du fameux algorithme dEuclide pour le calcul du pgcd : on peut considrer quil sagit du premier algorithme moderne et il est tout fait remarquable quil
soit toujours utilis de nos jours.
Mille ans plus tard, au IXe sicle ap. J.-C., Al Khuwarizmi, un mathmaticien perse (actuel
Iran), publie un ouvrage consacr aux algorithmes : ltymologie du terme algorithme
vient du nom de ce mathmaticien. On commence en effet tudier les algorithmes en
tant que tels, mais il faudra encore 800 ans avant que lOccident continue cette tude.
Aux XVIIe et au XVIIIe sicles, des savants comme Pascal ou Leibniz construisent des
machines calculer mcaniques (la Pascaline en 1642) ou des automates, ouvrant ainsi
la voie lautomatisation du calcul et la recherche dalgorithmes efficaces. En 1837,
Wantzel rsout le problme de savoir quelles longueurs il est possible de construire la
rgle et au compas : il sagit de connatre la capacit des algorithmes dont les oprations
de bases sont celles de la rgle et du compas. Ce sont les prmices de la calculabilit.

Calculabilit
La volont de formalisation des mathmatiques la fin du XIXe sicle et au dbut du
XXe amne la notion daxiomes et de systmes de preuve, ce qui permet denvisager une
automatisation des mathmatiques. Dans ce cadre, il est alors naturel de se demander
si lon peut tout rsoudre par algorithme.

Introduction

Hilbert pose en 1900 dans son dixime problme la question de trouver un algorithme dterminant si une quation diophantienne a une solution. Malgr des voix plus sceptiques,
il est alors clair pour Hilbert quun tel algorithme doit exister. Il va plus loin en 1928 avec
son Entscheidungsproblem ( problme de dcision ) : il demande un algorithme capable
de dcider si un nonc mathmatique est vrai.
En labsence dune solution positive, de nombreux mathmaticiens tentent de formaliser
ce quon entend par algorithme afin de mieux cerner la question. Plusieurs formalismes
voient le jour dans les annes 1930 et tous sont prouvs quivalents, notamment le calcul de Church et la machine de Turing. Ce dernier modle, par sa simplicit et son
vidence, emporte ladhsion et les algorithmes ont maintenant une dfinition formelle.
Or cest un choc, ou au moins une surprise, qui attend Hilbert : Church [Chu36] en
1936 avec son modle, et Turing [Tur37] en 1937 avec le sien, montrent quil nexiste pas
dalgorithme pour lEntscheidungsproblem : cest le dbut de la calculabilit, qui sattache
comprendre ce que sont capables de raliser les algorithmes.
Des techniques de plus en plus sophistiques permettent dobtenir dautres rsultats dindcidabilit (le fait pour un problme de ne pas avoir dalgorithme), comme par exemple
Matiyasevich en 1970 qui pose la dernire pierre de la preuve quil nexiste pas dalgorithme pour dcider si une quation diophantienne a une solution (dixime problme
de Hilbert). Mais bien plus que lindcidabilit, on gnralise le modle de calcul, on
compare les diffrentes classes, on tudie lalatoire, etc.
Ces considrations, bien que trs thoriques, ont contribu la construction des premiers
ordinateurs au dbut des annes 1940, qui sont finalement trs proches de la machine de
Turing. Et cest en quelque sorte le dveloppement de ces ordinateurs qui donne naissance
la thorie de la complexit.
Complexit
La calculabilit sattache connatre ce quon peut rsoudre par algorithme quel que soit le
temps dexcution. Or dans les annes 1960, si les gros ordinateurs se sont diffuss, il nen
reste pas moins quils sont trs lents et ne disposent pas de beaucoup de mmoire. Les
chercheurs sintressent donc naturellement lefficacit des algorithmes : quel algorithme
puis-je faire tourner sur cette machine sans que le rsultat mette un an arriver ? Quel
algorithme puis-je faire tourner sans dpasser la capacit de la mmoire de la machine ?
On trouve des rflexions thoriques trs profondes de ce genre dans une lettre de Gdel
von Neumann en 1956, qui demande sil existe un algorithme quadratique pour le
problme SAT : tous les ingrdients de la question P = NP ? sont dj prsents dans
son esprit. Malheureusement, von Neumann mourant na pas pu prendre cette lettre en
considration et elle na t retrouve que trente ans plus tard.
Si lon exclut cette lettre, la premire rfrence explicite aux algorithmes fonctionnant
en temps polynomial comme dfinition dalgorithmes efficaces se trouve dans les articles de 1965 de Cobham [Cob65] et dEdmonds [Edm65]. Puis le papier de Hartmanis
et Stearns [HS65] lance rellement le domaine de la complexit en montrant que certains problmes ne peuvent pas tre rsolus en un temps donn (thormes de hirarchie).

Introduction

xi

Quant la question P = NP ? , elle prend de limportance ds le dbut des annes 1970


avec larticle de Cook [Coo71] en 1971 (ou, de lautre ct du rideau de fer, larticle de
Levin [Lev73] en 1973) montrant la NP-compltude de SAT, et avec dautres rsultats de
NP-compltude en 1972 par Karp [Kar72] pour de nombreux problmes ayant une relle
importance.
La thorie de la complexit a commenc en adaptant les mthodes de la calculabilit au
cas du temps de calcul born. Par exemple, on retrouve de nombreux ingrdients issus
de la calculabilit dans la dmonstration du thorme 3-AK de Ladner datant de 1975.
Puis partir des annes 1980, des techniques spcifiques ont vu le jour, notamment pour
les bornes infrieures sur les circuits boolens. Les annes 1990 ont vu en particulier
lessor des protocoles interactifs qui ont permis de nombreuses avances, et galement
une rflexion profonde sur la possibilit de dterminiser des algorithmes probabilistes. Les
annes 2000 continuent la recherche de mthodes permettant de contourner les obstacles
pour rsoudre les grandes questions ouvertes comme P = NP ? , mais plusieurs rsultats
nouveaux ont aussi russi combiner de manire heureuse diffrentes mthodes conues
au cours des dcennies prcdentes.
Nanmoins, les grandes questions restent sans rponse. La qute nest pas finie.
Organisation du livre
Afin de prsenter les notions et les rsultats dans un ordre cohrent, le livre suit pratiquement la chronologie historique. Le premier chapitre commence donc par dfinir le
modle de calcul utilis, la machine de Turing, dans une version qui permettra de traiter la fois la complexit en temps et celle en espace. Les machines non dterministes
sont galement introduites. Outre ces dfinitions, il donne des exemples et plusieurs proprits des machines (simulations notamment) et construit des machines dterministes
universelles plus ou moins efficaces.
Le chapitre 2 contient les premiers rsultats sur la complexit en temps, dterministe
et non dterministe : dfinitions, acclration linaire, machine universelle non dterministe, thormes de hirarchie, classes P et NP et exemples, etc.
Puis on aborde la NP-compltude au chapitre 3 : compltude de SAT, autres rductions
permettant de montrer la compltude de diffrents problmes, thorme de Ladner et
thorme de Mahaney.
Le chapitre 4 fait un travail similaire au chapitre 2 pour la complexit en espace : dfinitions et rsultats de base, PSPACE-compltude du problme QBF et NL-compltude du
problme daccessibilit dans un graphe orient, le thorme de Savitch et pour finir le
thorme dImmerman-Szelepcsnyi.
Le chapitre 5 traite des questions duniformit et de circuits : calculs avec conseil, circuits
boolens, simulations de machines de Turing, uniformit des circuits, et enfin prsentation des circuits arithmtiques pour calculer des polynmes.
Le chapitre 6 concerne les algorithmes probabilistes : dfinitions, rduction derreur, thorme de hirarchie, comparaison avec les classes dterministes et avec les circuits, prsentation du problme didentit de polynmes que nous reverrons au chapitre 12.

xii

Introduction

Nous introduisons au chapitre 7 la notion de calcul avec oracle et de relativisation pour


explorer notamment les limites de la diagonalisation. Nous montrons que les questions
P = NP ? et EXP = NP ? ne se relativisent pas et nous discutons la difficult de dfinir
ce quest une preuve par diagonalisation.
Le calcul avec oracle nous permet aussi dintroduire la hirarchie polynomiale au chapitre 8. Nous donnons des problmes complets aux diffrents niveaux, comparons ces
classes avec les classes probabilistes et montrons le thorme de Karp et Lipton. Enfin,
nous donnons une borne infrieure sur le temps et lespace conjugus ncessaires pour
rsoudre les problmes de NTIME(n), en utilisant les techniques vues ce chapitre.
Avec le chapitre 9 sur la complexit du comptage, nous abordons des sujets plus techniques. Aprs des proprits de clture des classes de comptage, nous montrons le thorme de Toda, puis la compltude du permanent pour la classe P.
Le chapitre 10 introduit les protocoles interactifs. Nous donnons le thorme de Shamir
(IP = PSPACE), montrons quil ne se relativise pas, dfinissons les classes Arthur-Merlin
avec toutes leurs proprits, montrons lquivalence entre bits alatoires publics ou privs.
Nous appliquons ces techniques au problme de lisomorphisme de graphe pour montrer
quil nest probablement pas NP-complet. Enfin, nous dcrivons le thorme PCP sans le
prouver et donnons une application linapproximabilit.
Le chapitre 11 prsente plusieurs bornes infrieures sur les circuits : des classes qui nont
pas de circuits de taille n k pour k fix, des classes qui nont pas de circuits de taille polynomiale sous certaines conditions, des bornes infrieures sur la taille de circuits restreints
(monotones ou de profondeur constante), et des bornes infrieures sur la taille de circuits
arithmtiques pour calculer des polynmes.
Enfin, le chapitre 12, trs technique, montre le lien entre drandomisation et bornes
infrieures non uniformes. Pour montrer que des bornes infrieures permettent de drandomiser des algorithmes, on utilise des codes correcteurs derreurs trs efficaces dont la
construction constitue une bonne part du contenu technique du chapitre. La preuve de
la rciproque permet de combiner de nombreuses ides vues prcdemment dans le
livre.
Une annexe (chapitre A) donne les notions de bases en probabilits utiles pour cet ouvrage,
ainsi que quelques rsultats darithmtique.
Des exercices sont proposs tout au long des chapitres lorsquils illustrent directement le
propos et quelques autres exercices et problmes sont proposs en annexe (chapitre B).
Des lments de correction sont rdigs au chapitre C.
Outre les rappels mathmatiques et les exercices, lannexe contient aussi des conseils aux
enseignants afin dutiliser ce livre au mieux (chapitre E), ainsi quune liste et des figures
rcapitulatives des diffrentes classes de complexit abordes (chapitre D), quil ne faut
pas hsiter consulter lorsquune nouvelle classe est introduite.
Plusieurs ouvrages peuvent venir complter celui-ci. En langue anglaise, les livres de Sipser [Sip97], de Papadimitriou [Pap94], et de Balczar, Daz et Gabarr [BDG88], bien
quils commencent dater, sont une bonne entre en matire. Celui de Wagner et Wechsung [WW86], datant des annes 1980, est plus complet. Celui dHemaspaandra et Ogihara [HO02] traite de nombreux sujets avancs avec tous les dtails mais sa lecture est

Introduction

xiii

plus ardue. Deux livres rcents sont recommander pour couvrir les avances de la complexit moderne : celui de Goldreich [Gol08] et celui dArora et Barak [AB09] dont
nous avons parl lavant-propos. Et nous omettons certainement dautres excellents ouvrages. En langue franaise, les ouvrages de Dehornoy [Deh93], de Carton [Car08], de
Lavalle [Lav08] ou de Rey [Rey04] traitent bien les sujets de base et sont donc lire
sans hsiter, mais ils ne parlent gure de sujets avancs. Le point de vue de la logique
sur la complexit, en particulier la complexit descriptive, est plus dvelopp dans les
ouvrages de Lassaigne et de Rougemont [LR96] (dans la langue de Molire) et de Immerman [Imm99] (dans celle de Shakespeare). Enfin, si besoin il est certainement valable de
complter la lecture du prsent livre par celle dun ouvrage dintroduction la calculabilit, comme celui de Wolper [Wol06] ou de Cooper [Coo04], voire dentreprendre la
lecture des volumes plus avancs dOdifreddi [Odi92].
Nous commenons la page xv par un prliminaire rappelant quelques notations usuelles
que nous utiliserons, avant de dbuter le cur de louvrage proprement dit.

Prliminaires et
notations
Nous nutilisons dans ce livre que des notions et notations usuelles ; nanmoins, pour
lever toute ambigut, nous rappelons ici les principales conventions.
Alphabets, mots, langages
dsignera un alphabet fini, cest--dire un ensemble fini de symboles. partir de ,
on construit des mots qui sont des suites finies de symboles : la taille dun mot x , note
|x|, est le nombre de symboles qui le constituent. Lunique mot de taille nulle est le mot
vide que lon dsignera par (mais, selon lhabitude en mathmatique, cette notation est
souvent utilise aussi pour dsigner une petite constante relle positive). Si x = x1 . . . xn
et y = y1 . . . y m sont deux mots, on dit que x est un prfixe de y , not x y , si m n et
x1 . . . xn = y1 . . . yn .
Si A est un ensemble de mots, on note
A = {u1 . . . uk | k N et u1 , . . . , uk A}

lensemble de toutes les concatnations possibles dun nombre arbitraire de mots de A.


Lensemble de tous les mots sur lalphabet est donc not . Un langage est un ensemble
de mots L . Pour un entier n N, on notera L=n et Ln les ensembles (finis) des
mots de L de longueur respectivement n et au plus n , et Ln lensemble des mots de L
de longueur au moins n .
Ordre lexicographique
Si lalphabet = {a1 , . . . , ak } est muni dun ordre quelconque, disons a1 < a2 < < ak ,
nous appellerons lordre lexicographique lordre sur dfini inductivement par :
si |x| < |y| alors x <lex y ;
si |x| = |y| = 1 alors <lex est gal lordre < sur ;
sinon, si x = x1 . . . xn et y = y1 . . . yn alors x <lex y si x1 < y1 ou si x1 = y1 et
x2 . . . xn <lex y2 . . . yn .
En dautres termes, on ordonne les mots par taille, puis entre des mots de mme taille
il sagit de lordre du dictionnaire. Cet ordre est parfois appel quasi-lexicographique

xvi

Prliminaires et notations

car ordonner dabord par longueurs nest pas la dfinition habituelle de lordre lexicographique, mais cela nous parat plus maniable pour la suite.
Suites, intervalles, ensembles
Dans ce livre, on dsignera par (xi )iZ (respectivement (xi )i N ) une suite infinie dlments xi indics par les entiers relatifs (resp. par les entiers naturels). Si le contexte est
clair, on pourra omettre la rfrence Z ou N et parler simplement de la suite (xi ).
La plupart du temps, la notation [a, b ] dsignera lintervalle entier de bornes a et b , cest-dire lensemble {a, 1 + a, . . . , b } Z. Les rares fois o une telle notation dsignera
un intervalle rel seront claires daprs le contexte.
Si q est une puissance dun nombre premier, on notera Fq lunique corps q lments
(si q est premier, Fq est donc lensemble des entiers modulo q ). Pour un ensemble L et
un lment x , on notera [x L] (respectivement [x L]) le boolen qui vaut 1 ssi x L
(resp. x L) .
Fonctions entires
Les informaticiens ont pris lhabitude dcrire f (n) pour parler dune fonction f : N N,
plutt que simplement f : ici, n reprsente la variable et non un entier fix. Cette notation
sert implicitement savoir que le domaine de f est N, un peu comme en mathmatiques
lorsquon parle dun polynme P (X ).
Cependant, n est galement utilis pour parler de la taille de lentre x dun problme et
peut donc aussi reprsenter un entier.
Dans tout ce livre, sauf mention contraire on notera log le logarithme en base 2. Parfois
par abus de notation on pourra mme crire log(n) pour log(n) car nous considrerons
la plupart du temps des fonctions entires.
Ordre de grandeur des fonctions
Si f : N N est une fonction, on note O( f ) lensemble des fonctions g : N N telles
que
C > 0 N N n N

g (n) C f (n)

( partir dun certain rang, g est plus petite que f une constante multiplicative prs).
La notation o( f ) dsigne lensemble des fonctions g : N N telles que
> 0 N N n N

g (n) f (n)

( g est ngligeable devant f ). Les ensembles ( f ), ( f ) et ( f ) sont alors dfinis par :


g ( f ) f O( g )
1. On trouve aussi la notation quivalente xL quon nutilisera pas ici.

Prliminaires et notations

xvii
g ( f ) f o(g )
g ( f ) f O(g ) et g O( f ).

Si h : N N est une fonction, alors h(O( f )) dsigne lensemble des fonctions h g o


g O( f ) ; de mme pour les autres ensembles (o( f ), etc.). Enfin, par abus de notation et
selon lusage habituel, on notera g = O( f ) plutt que g O( f ), etc.
Mots, uples, variables
Les lettres x, y, z, u, v seront le plus souvent employes pour dsigner des mots sur un
alphabet , ou des variables ou des uples de variables dun polynme ou dune autre
fonction. Les fonctions sur les entiers ou sur les mots seront souvent notes f ou g , les
polynmes p, q ou P, Q , mais p et q pourront aussi dsigner des entiers premiers.
Les lettres n, m seront plutt utilises pour la longueur dun mot, la taille de lentre
dun problme ou la variable dune fonction f : N N. Les lettres i , j , k dsigneront
principalement des indices entiers ; , , et a, b , c des constantes relles ou entires. On
utilisera de prfrence t pour un temps dexcution ou pour la taille dun circuit et s pour
lespace dun calcul. Les mots alatoires seront souvent nots r . Rappelons enfin que
dsignera la plupart du temps une petite constante relle positive, mais parfois aussi le
mot vide.
Divers
Un graphe G est donn par lensemble V de ses sommets et lensemble E de ses artes,
E V V : on notera donc G = (V , E).
Sauf mention contraire, la notation Pr r E (A) dsignera la probabilit de lvnement A
selon la distribution uniforme sur lensemble fini E . Un rappel basique sur les probabilits
discrtes est donn lannexe A.
Enfin, puisque le cas se produira souvent, nous abrgerons lexpression la machine M
fonctionnant en temps polynomial par la machine polynomiale M , malgr labus de
langage.

Le modle de calcul
Le propos de la complexit algorithmique est de mesurer la difficult dun problme
laune de lefficacit des algorithmes pour le rsoudre. Dans ce premier chapitre, nous
allons dfinir formellement ce que nous entendons par problmes et algorithmes.
Aujourdhui nous avons tous une ide intuitive de ce quest un algorithme car nous manipulons chaque jour des ordinateurs ; toutefois, il nest pas si ais den donner une dfinition formelle. La dfinition habituelle que nous allons suivre ici passe par les machines
de Turing. Il est remarquable que ce modle de calcul ait t propos par Turing ds
1937 dans son article [Tur37], avant la naissance des ordinateurs, laquelle il a dailleurs
largement contribu.
La dfinition de Turing est encore utilise actuellement car, afin dtudier les algorithmes,
on souhaite un modle thorique aussi simple que possible, dune part, et dautre part
nous verrons que ce modle rudimentaire reste capable deffectuer les mmes tches que
nos ordinateurs. la mme poque, dautres formalismes quivalents ont t introduits
(-calcul par Church [Chu36], fonctions rcursives par Herbrand et Gdel, etc.) mais la
machine de Turing a lavantage de permettre la dfinition aise du temps et de lespace
utiliss lors dun calcul. Des modles plus proches de nos ordinateurs existent galement
(machines RAM par exemple) mais, pour tudier la complexit algorithmique, la connaissance des machines de Turing est devenue trop usuelle pour pouvoir sen passer bien
que ce ne soit pas toujours le modle idal.
Une telle machine manipule des suites finies de symboles, cest--dire quon reprsente par
des mots les donnes traiter (nous aurons donc besoin dun codage des donnes en
des mots). Elle effectue alors un calcul sur un mot quon lui fournit en entre et renvoie le
rsultat du calcul sous la forme dun nouveau mot de sortie comme illustr la figure 1.1.

1. On remarquera galement quil est malais demployer un autre modle de calcul pour obtenir exactement la dfinition habituelle des concepts que nous aborderons dans ce livre.

Chapitre 1. Le modle de calcul

mot dentre

machine

mot de sortie

Figure 1.1 Principe dune machine de Turing.

Nous allons dabord nous attarder sur la notion de problme avant de dfinir la machine
de Turing et de voir quune telle machine permet bien de raliser toutes les oprations
quon souhaite possibles pour un algorithme.

1.1

Problmes, langages et codage


1.1.1

Codage

Chacun sait que les ordinateurs actuels ne manipulent que des 0 (absence de courant lectrique) et des 1 (prsence du courant). Et pourtant, dans nos programmes nous pouvons
parler dobjets de diverse nature : des entiers, des rationnels, des matrices, des graphes,
etc. Pour cela, il faut coder ces objets par une suite de 0 et de 1.
Dans le cadre plus gnral de ce livre, nous ne nous contenterons pas de deux symboles
0 et 1, mais dun alphabet fini quelconque. Un alphabet est simplement lensemble des
symboles autoriss. Ainsi, lalphabet binaire est {0, 1} mais on pourrait aussi travailler sur
lalphabet {a, b , c, . . . , z} par exemple, ou bien {a, b , #} pour parler des mots (cest--dire
des suites finies de symboles) composs des lettres a , b et # (le symbole # servira la plupart
du temps de dlimiteur). Ds lors, nous devrons coder les objets manipuler par des mots
sur un alphabet fini .
La taille dun mot x , note |x|, est le nombre de symboles que x contient et joue une
grande importance puisque nous verrons plus tard que le nombre dtapes de calcul dune
machine sera considr comme une fonction de la taille du mot dentre. Ainsi, nous
verrons par la suite que la difficult dun problme dpend du codage utilis. Il faudrait
donc toujours prciser ce codage. Nanmoins, il y a plusieurs codages usuels que nous
utiliserons par dfaut, sauf mention contraire :
les entiers cods en binaire avec les symboles 0 et 1 (par exemple, lentier 12 sera
cod 1100) ;
de mme pour les rationnels, le numrateur et le dnominateur spars par un dlimiteur (par exemple, 4/3 sera cod 100#11) ;
une matrice donne par la liste de ses coefficients spars par des dlimiteurs ;
un graphe donn par sa matrice dadjacence ;
un polynme donn par la liste de ses coefficients (spars par des dlimiteurs), etc.

1.1. Problmes, langages et codage

Mais il existe galement des codages moins usuels, en voici deux exemples :
les entiers cods en unaire avec le seul symbole 1 (le nombre de 1 donne la valeur de
lentier, par exemple 5 sera encod 11111) : bien que non usuel, nous rencontrerons
ce codage plus tard ;
un polynme de degr d donn par la liste des valeurs quil prend sur les entiers de
0 d.
Enfin, on aura rgulirement besoin de coder des couples ou des n -uplets de mots. Si x
et y sont deux mots sur un alphabet , on dsignera par (x, y) le codage du couple (x, y),
cest--dire, selon les cas :
si lalphabet peut tre augment (ce qui sera le cas la plupart du temps), (x, y) dsignera le mot x#y sur lalphabet {#} et la taille de (x, y) est alors |x| + |y| + 1 : par
exemple, si x = ab aa et y = b b a alors le code de (x, y) est ab aa#b b a de taille 8 ;
lorsque lalphabet peut tre augment, on peut mme obtenir un codage de taille
|x|+|y| exactement en codant x sur un alphabet suivi de y sur un alphabet disjoint :
par exemple, (ab b a, cab a) sera cod ab b aC ABA ;
si lalphabet ne peut tre augment, on supposera quil possde au moins deux symboles que lon notera 0 et 1 ; il y a alors au moins deux codages possibles :

si x = x1 . . . xn et y = y1 . . . y m alors (x, y) dsignera le mot


x1 0x2 0x3 0 . . . xn1 0xn 1y1 y2 . . . y m ,

cest--dire quon intercale 0 entre les lettres de x et 1 pour sparer x et y , puis


on crit y normalement : la taille de (x, y) est alors 2|x| + |y|,
pour un codage plus compact, on donnera dabord la taille de x (pour savoir
o sparer les deux mots) puis la concatnation des deux mots : plus prcisment, si t = |x| est la taille de x code en binaire sur {0, 1}, t = t1 . . . t l ,
alors (x, y) dsignera le mot t1 0t2 0 . . . t l 1 0t l 1x y ; la taille de (x, y) est alors
|x| + |y| + 2log(1 + |x|).

On peut aisment gnraliser ces codages aux n -uplets pour n > 2. Selon les cas, nous
utiliserons le codage le plus adapt sans forcment lexpliciter si le contexte permet de
le deviner. Ainsi, la plupart du temps nous supposerons dans nos raisonnements que le
codage du couple (x, y) a pour taille |x| + |y|.
Maintenant que nous savons coder nos objets sur un alphabet fini, voyons comment
formaliser les problmes quon se pose sur ces objets.

1.1.2

Problmes et langages

Le but dun programme ou dun algorithme est de rsoudre un problme. La plupart du


temps, et nous nous placerons dans ce cadre, le problme est gnrique mais on le rsout
2. Le cas unaire peut tre trait par une injection usuelle de N2 dans N mais il ne nous intressera pas ici.
3. Rappelons que, sauf indication contraire, tous les logarithmes utiliss seront en base 2.

Chapitre 1. Le modle de calcul

sur une instance particulire : par exemple, on ne peut rpondre au problme dterminer
si un entier est premier que sur un entier particulier quon nous donnerait en entre ;
ou encore, le problme trier par ordre croissant une liste dentiers na de sens que sur
une liste dentiers sur laquelle travailler.
Un problme est donc compos de deux lments : une entre (ou instance) et une question ou une tche raliser. Les deux exemples prcdents se reformulent ainsi :
1. PRIMALIT :
entre : un entier N ;
question : N est-il premier ?
2. TRI :
entre : une liste dentiers l ;
tche : trier l par ordre croissant.
On distingue ainsi deux types de problmes : ceux qui consistent rpondre par oui ou
par non une question donne (dans lexemple prcdent, dterminer si un entier est
premier), quon appelle problmes de dcision ; et ceux qui consistent produire un nouvel
objet (dans lexemple prcdent, produire la nouvelle liste trie), quon appelle problmes
dvaluation. En effet, ces derniers consistent valuer une fonction : dans lexemple, il
sagit dvaluer la fonction qui une liste dentiers associe la liste trie.
Pour spcifier un problme de dcision, il suffit de donner les mots pour lesquelles la
rponse est oui : un tel problme est donc caractris par un ensemble dinstances positives. Plus prcisment, un problme de dcision donn sous la forme entre/question
peut facilement tre transform sous la forme dun ensemble
L = {x | x code une instance valide et la rponse la question sur x est positive}

quon appellera langage . Un problme dvaluation est quant lui caractris par la
fonction quil calcule. On obtient alors la dfinition suivante.
1-A

Dfinition

Un langage (ou problme de dcision) sur un alphabet est un ensemble de mots


sur . Un langage L dfinit le problme de dcision dont les instances positives
sont exactement les mots de L.
Un problme dvaluation sur un alphabet est une fonction f : .

Lorsquun problme de dcision est vu comme un langage L, la forme de lentre apparat


dans L par x code une instance valide . Il faudra donc toujours avoir lesprit que tester
si lentre encode une instance valide fait partie de la complexit du problme ; mais en
rgle gnrale, ce test est trs facile et rapide raliser et est donc omis des raisonnements.

1.2. La machine de Turing

5
Un peu de recul

Dans la suite, nous tudierons surtout les problmes de dcision (langages). Mais il faut
garder lesprit quon peut la plupart du temps transformer un problme dvaluation en
un langage de difficult quivalente .
Par exemple, pour transformer trouver le plus petit diviseur non trivial de N , on
ajoutera une entre k pour obtenir la question existe-t-il un diviseur non trivial de N
qui soit infrieur k ? . Si lon sait rpondre cette question, alors on peut trouver
rapidement le plus petit diviseur non trivial de N : il suffit deffectuer une recherche
dichotomique en testant sil existe un diviseur N /2, puis si oui, sil existe un divisieur
N /4 ou sinon sil existe un divisieur 3N /4, etc.
De manire presque quivalente, plutt quun entier k on pourrait ajouter un mot a
lentre pour obtenir la question existe-t-il un diviseur non trivial de N dont lcriture
binaire commence par a ? . On effectuerait alors une recherche prfixe la place de la
recherche dichotomique.
Enfin, une autre faon de procder est de demander le i -me bit de la rponse. Ainsi, pour
transformer calculer la somme de deux entiers x et y en un problme de dcision, on
ajoutera une entre i pour obtenir la question le i -me bit de la somme x + y est-il 1 ? .
Passons maintenant ltude du modle de calcul qui permet de travailler sur ces problmes.

1.2

La machine de Turing

Il existe de nombreuses variantes de la machine de Turing : un ruban ou plusieurs, infini vers la droite seulement ou bi-infini, etc. Tous ces modles sont quivalents mais le
montrer nest pas lobjet de ce livre (on trouvera les simulations entre modles dans des
livres de calculabilit par exemple). Nous nous contenterons donc de dfinir une unique
version de machine de Turing, plusieurs rubans bi-infinis.
1-B Remarque Nous avons pris le parti de dfinir rigoureusement ce modle de calcul ; ds lors, les dfinitions sont relativement laborieuses pour des concepts intuitifs. Une
approche possible est de sauter le formalisme et de sattarder sur la description informelle
et les exemples.

1.2.1

Dfinition

Une machine de Turing (figure 1.2) est compose dun nombre fini de rubans sur chacun desquels se dplace une tte de lecture/criture. Les rubans sont composs de cases
qui contiennent chacune un symbole : il sagit de la mmoire de notre machine. Cest
linformation contenue sur ces rubans quon va lire et modifier. Pour cela, les ttes de

Chapitre 1. Le modle de calcul

lecture/criture peuvent se dplacer sur les rubans et lire ou modifier le contenu de la case
quelles visitent.
On distinguera trois types de rubans :
le ruban dentre, en lecture seule (la tte peut seulement lire les symboles et pas les
modifier) et sur lequel est crit le mot traiter ;
le ruban de sortie, en criture seule (la tte ne peut qucrire des symboles sans lire
le contenu des cases) et sur lequel on crira le rsultat du calcul ;
les rubans de travail (en lecture et criture) permettant de mener bien le calcul.

ruban dentre

tte 1

tte 2

..
.

rubans de travail

ruban de sortie

tte k -1

tte k

Figure 1.2 Machine de Turing k rubans.

Les ttes de lecture/criture ont un pouvoir trs limit : elles ne peuvent que se dplacer
dune case vers la gauche ou vers la droite et ont une mmoire finie, cest--dire quelles ne
4. Ces conventions nous permettront de parler de manire homogne de complexit en espace ; la plupart du temps, nous aurions pu considrer des machines dont les rubans dentre et de sortie sont aussi en
lecture/criture.

1.2. La machine de Turing

peuvent prendre quun nombre fini dtats possibles. En dautres termes, lensemble des
ttes est un automate fini. Les rubans, quant eux, sont infinis et reprsentent la mmoire
de la machine. Si lon indexe les cases dun ruban par Z, un dplacement droite dune
tte de lecture correspond incrmenter sa position (+1) et un dplacement gauche
la dcrmenter (1) ; elle peut aussi rester sur place (0).
Un peu de recul
Nos ordinateurs nont pas une mmoire infinie : elle est certes consquente mais finie.
Ce sont donc des automates finis. Mais cette modlisation nest pas satisfaisante : aucun
programmeur naccepterait dutiliser un automate fini qui par essence est incapable de
compter La mmoire infinie dune machine de Turing (ses rubans) semble reflter ce
quun ordinateur est capable de faire et on peut voquer deux raisons cela :
en pratique, la taille de la mmoire dun ordinateur est suffisamment grande pour
quelle soit considre infinie ;
sil manque de mmoire pour raliser un calcul, on peut toujours en ajouter (sous
la forme dun disque dur externe par exemple), donc la place dont on dispose est
virtuellement infinie
Au dbut du calcul, le ruban dentre contient le mot sur lequel la machine doit travailler. Ce mot occupe un nombre fini de cases, les autres restant vides : un symbole
spcial blanc reprsente une case vide. Tous les autres rubans sont vides (cest--dire
ne contiennent que des symboles blancs). La tte du ruban dentre pointe sur la premire
lettre du mot dentre et ltat des ttes est un tat particulier appel tat initial. Puis, en
fonction de ltat des ttes et des symboles quelles lisent dans la case visite, chaque tte
remplace ventuellement par un nouveau symbole le contenu de la case, se dplace
gauche ou droite et change dtat. Le calcul se termine lorsquun tat terminal est
atteint. Formalisons cette description avant de voir des exemples.
Pour dfinir formellement une machine de Turing, nous devons donc spcifier plusieurs
lments : les symboles utiliss sur les rubans, les tats des ttes et la faon dont elles
agissent sur les rubans.
1-C

Dfinition (machine de Turing)

Une machine de Turing k 2 rubans est un octuplet M = (, , B, Q, q0 , qa , q r , ) o :


est un ensemble fini non vide appel alphabet dentre (ce sont les symboles utiliss
pour crire le mot dentre) ;
est un ensemble fini appel alphabet de travail, tel que (ce sont les symboles
utiliss dans les cases au cours du calcul) ;
B est un symbole spcial blanc (reprsentant une case vide) tel que B \ ;

Chapitre 1. Le modle de calcul

Q est un ensemble fini appel ensemble des tats (les tats que peuvent prendre les
ttes de lecture/criture) ;
q0 Q est un tat spcial appel tat initial (indiquant ltat dans lequel les ttes
commencent le calcul) ;
qa Q et q r Q sont des tats spciaux appel tats terminaux (indiquant la fin du
calcul) : qa est ltat dacceptation et q r ltat de rejet ;
: (Q \{qa , q r }) k1 Q k1 {G, S, D}k est la fonction de transition dcrivant
le comportement des ttes :
(q, a1 , . . . , ak1 ) = (r, b2 , . . . , bk , d1 , . . . , dk )

si, lorsque les ttes sont dans ltat q et que la i -me tte lit le symbole ai (i k 1
car la tte du ruban de sortie ne lit rien), alors le nouvel tat des ttes est r , la tte
i crit le symbole bi dans la case la place de ai (i 2 car la tte du ruban dentre
ncrit rien) et elle se dplace dans la direction di (G gauche, S sur place, D
droite).

1-D

Remarques

La fonction de transition nest pas dfinie sur les tats qa et q r puisque ce sont
les tats terminaux qui marquent la fin du calcul : la machine sarrte ds que lun
deux est atteint.
De plus, il est commode dutiliser un alphabet de travail plus toff que celui dentre afin de disposer de symboles permettant de sparer des mots, de marquer des
positions, etc.
Enfin, insistons une dernire fois sur le fait que, dans le modle que nous avons
choisi, le ruban dentre est en lecture seule (donc la fonction de transition ne
spcifie aucun symbole crire sur le ruban dentre) et le ruban de sortie en criture
seule (donc la fonction de transition ne spcifie aucun symbole lire sur le ruban
de sortie).
Les rubans de M sont infinis droite et gauche :
sur chaque ruban, une case est repre par un entier relatif i Z. La position dune
tte un instant donn est le numro de la case sur laquelle elle est situe. Toutes
les ttes sont en position 1 au dbut du calcul.
chaque transition, la machine volue dune configuration une autre. Pour dcrire la
configuration de la machine, il faut dcrire le contenu des rubans, la position des ttes et
leur tat :
une configuration C de M est un lment de Q ( k )Z Zk : C dcrit ltat des
ttes, le contenu de chaque case des k rubans et les positions des ttes.

1.2. La machine de Turing

Le calcul prend fin lorsquun tat terminal est atteint :


une configuration finale est une configuration pour laquelle ltat est un tat terminal qa ou q r .
Le calcul dune machine de Turing est une succession de configurations dicte par la
fonction de transition : on passe dune configuration une autre en changeant ltat des
ttes et le contenu des cases visites, et en dplaant les ttes. Plus formellement :
Soit C = (q, (c j(1) , . . . , c j(k) ) j Z , (i1 , . . . , ik )) une configuration de M . Si
(1)

(k1)

k1

(q, (ci , . . . , ci

)) = (r, (a2 , . . . , ak ), (d1 , . . . , dk ))

avec r Q , (a2 , . . . , ak ) k1 et (d1 , . . . , dk ) {G, S, D}k , alors la configuration qui


suit C dans le calcul de M est C = (r, (c j(1) , . . . , c j(k) ) j Z , (i1 , . . . , ik )) o :

pour 1 m k , i m = i m 1 si d m = G , i m = i m si d m = S et i m = i m + 1 si
dm = D ;
(1)

(1)

cn = cn pour tout n Z

pour 2 m k , ci(m) = a m et cn(m) = cn(m) pour n = i m .


m

On notera C M C .
Une tape de calcul est le passage dune configuration la suivante.
Le calcul de M sur lentre x = x1 . . . xn est la suite potentiellement infinie de
configurations C0 , C1 , . . . , o :

(1)

(k)

(1)

(1)

C0 = (q0 , (c j , . . . , c j ) j Z , (1, . . . , 1)) avec c j = x j si 1 j n , c j = B sinon,

et c j(m) = B pour tous 2 m k et j Z (en dautres termes : tat initial,


rubans vides sauf le ruban dentre contenant lentre x , ttes en position 1) ;

pour tout j 0, C j M C j +1 ;
si la suite C0 , . . . , C t est finie, alors C t est lunique configuration finale. Le
nombre dtapes de calcul est alors t .

Il se peut que la machine natteigne jamais un tat final ; dans ce cas, la machine ne sarrte
pas :
la machine M sarrte sur lentre x (on dit aussi que M (x) sarrte) si le calcul de M
sur x atteint une configuration finale.
Si la machine sarrte, le mot dentre est accept ou rejet selon si la machine arrive
ltat dacceptation ou de rejet :
on dit que M accepte x (ou que M (x) accepte) si M sarrte sur x et que ltat de la
configuration finale est qa . On dit que M rejette x (ou que M (x) rejette) si M sarrte
sur x et que ltat de la configuration finale est q r . Sinon M (x) ne sarrte pas.

10

Chapitre 1. Le modle de calcul

Enfin, outre lacceptation ou le rejet, le mot crit la fin du calcul sur le ruban de sortie
constitue le rsultat du calcul :
si M sarrte sur x , le rsultat du calcul de M sur x , not M (x), correspond au
contenu du ruban de sortie dans la configuration finale (sans compter les cases vides
gauche et droite). Plus formellement, cest le plus petit mot y = y1 . . . y m tel
(k)
que pour une certaine position j Z, c j(k)
= y p pour tout 1 p m et c p = B
+p
pour tout p > j + m ou p j .
Ainsi, deux fonctionnements sont possibles pour une machine de Turing : un mode acceptation (M accepte ou rejette le mot x selon ltat qa ou q r la fin du calcul) et un
mode calcul (le rsultat du calcul de M sur x est le contenu y du ruban de sortie
la fin du calcul). Dans le mode acceptation, M accepte un ensemble de mots, tandis que
dans le mode calcul, M calcule une fonction.
1-E

Dfinition

Soit M une machine de Turing.


Le langage accept (ou reconnu) par M est lensemble des mots x tels que M (x)
accepte.
La fonction calcule par M est la fonction partielle fM : qui est dfinie par
fM (x) = M (x) si M (x) sarrte.
Enfin, une machine peut effectuer un plus ou moins grand nombre dtapes et visiter un
plus ou moins grand nombre de cases pour mener bien son calcul, do la dfinition
suivante.
1-F

Dfinition (temps et espace)

Soit M une machine de Turing et x un mot sur lalphabet dentre. Si M (x) sarrte, alors :
le temps de calcul de M (x) est le nombre dtapes effectues par le calcul M (x) ;
lespace utilis par M (x) est le nombre total de cases diffrentes visites au cours du
calcul par les ttes sur les seuls rubans de travail.
La raison pour laquelle les rubans dentre et de sortie ne sont pas compts dans lespace
deviendra claire dans le chapitre 4 consacr ce sujet.

1.2.2

Exemples

Afin dillustrer ces concepts, voyons maintenant quelques exemples de machines de Turing trs simples.

1.2. La machine de Turing

11

1-G Exemple Une machine trois rubans (un ruban dentre, un ruban de travail et
un ruban de sortie) qui teste si un entier crit en binaire sur le ruban dentre est pair
peut fonctionner ainsi : dplacer la tte de lecture vers la droite sur le ruban dentre
jusqu la fin du mot et tester si le dernier chiffre est 0. Pour reprer la fin du mot, on
va une case trop loin pour trouver le premier symbole blanc (voir la figure 1.3 pour
une illustration). La machine sera donc dcrite par :
lalphabet dentre = {0, 1} (pour crire lentre en binaire) ;
lalphabet de travail = {0, 1, B} ;
lensemble des tats Q = {q0 , q1 , qa , q r } ;
la fonction de transition dfinie par

(q0 , (u, B)) = (q0 , (B, B), (D, S, S)) pour tout u {0, 1} (sur le ruban den-

tre, aller droite sans changer dtat tant quun blanc nest pas lu, ne pas
bouger sur les autres rubans),

(q0 , (B, B)) = (q1 , (B, B), (G, S, S)) (revenir dun cran en arrire ds que lon
a trouv un blanc sur le ruban dentre et passer dans ltat q1 ),

(q1 , (0, B)) = (qa , (B, B), (S, S, S)) (accepter si le dernier chiffre est 0),

(q1 , (1, B)) = (q r , (B, B), (S, S, S)) (rejeter si le dernier chiffre est 1),

toutes les autres transitions ne devraient pas se produire en fonctionnement


normal, donc on peut dfinir (q, (u, v)) = (q r , (B, B), (S, S, S)) par exemple
pour tous les (q, (u, v)) non prciss ci-dessus.

On remarquera que les rubans de travail et de sortie ne servent pas ici.

ruban dentre

tte

Figure 1.3 Machine pour tester la parit.

1-H Exemple Une machine trois rubans qui multiplie par deux lentier crit en
binaire sur le ruban dentre peut fonctionner ainsi : recopier lentre sur le ruban de
sortie et ajouter un zro ds quon trouve un blanc. La machine sera donc dcrite par :
lalphabet dentre = {0, 1} (pour crire lentre en binaire) ;
lalphabet de travail = {0, 1, B} ;
lensemble des tats Q = {q0 , qa , q r } ;
la fonction de transition dfinie par

12

Chapitre 1. Le modle de calcul

(q0 , (u, B)) = (q0 , (B, u), (D, S, D)) pour tout u {0, 1} (recopier lentre

sur le ruban de sortie et aller droite),

(q0 , (B, B)) = (qa , (B, 0), (S, S, S)) (crire un zro la fin du mot),

toutes les autres transitions ne devraient pas se produire en fonctionnement


normal, donc on peut dfinir (q, (u, v)) = (q r , (B, B), (S, S, S)) par exemple
pour tous les (q, (u, v)) non prciss ci-dessus.

On remarquera que le ruban de travail ne sert pas ici.


1-I Exemple Une machine trois rubans qui teste si le mot en entre a autant de a
que de b peut fonctionner ainsi : sur le ruban de travail, crire au dpart le symbole a
pour marquer la case initiale ; lire le mot dentre de gauche droite et, sur le ruban
de travail, se dplacer droite lorsquon lit un a , gauche lorsquon lit un b ; vrifier
qu la fin la tte du ruban de travail est revenue la case initiale. La machine sera
donc dcrite par :
lalphabet dentre = {a, b } ;
lalphabet de travail = {a, b , B} ;
lensemble des tats Q = {q0 , q1 , qa , q r } ;
la fonction de transition dfinie par

(q0 , (B, B)) = (qa , (B, B), (S, S, S)) (accepter si le mot est vide),
(q0 , (a, B)) = (q1 , (a, B), (D, D, S)) et
(q0 , (b , B)) = (q1 , (a, B), (D, G, S)) (crire le symbole a pour reprer la case
initiale et se dplacer droite ou gauche selon si on lit a ou b en entre),
(q1 , (a, B)) = (q1 , (B, B), (D, D, S)),
(q1 , (b , B)) = (q1 , (B, B), (D, G, S)),
(q1 , (a, a)) = (q1 , (a, B), (D, D, S)) et
(q1 , (b , a)) = (q1 , (a, B), (D, G, S))

(se dplacer gauche ou droite selon si on lit b ou a en entre, en prenant


garde ne pas effacer le symbole a du ruban de travail),

(q1 , (B, a)) = (qa , (B, B), (S, S, S)) et (q1 , (B, B)) = (q r , (B, B), (S, S, S)) (accepter ou rejeter selon si on est revenu la case initiale du ruban de travail
la fin de la lecture du mot dentre),

toutes les autres transitions ne devraient pas se produire en fonctionnement


normal, donc on peut dfinir (q, (u, v)) = (q r , (B, B), (S, S, S)) par exemple
pour tous les (q, (u, v)) non prciss ci-dessus.

Enfin, un dernier exemple plus compliqu : laddition de deux entiers cods en binaire.
1-J Exemple Sur le ruban dentre se trouvent deux entiers x et y crits en binaire
spars par un symbole spcial #, cest--dire que le ruban dentre contient le mot
x#y . Nous voulons crire en binaire sur le ruban de sortie lentier z tel que z = x + y .
Pour cela, nous allons dabord recopier x sur le ruban de travail, pour disposer de x

1.2. La machine de Turing

13

et de y sur deux rubans spars (ce qui nous vite de faire des allers-retours pour lire
alternativement les chiffres de x et de y ). Puis, en partant des bits de poids faibles,
nous allons effectuer lalgorithme daddition de lcole primaire, en prenant soin de
propager la retenue, pour crire le rsultat sur le ruban de sortie. La machine trois
rubans sera donc dcrite par :
lalphabet dentre = {0, 1, #} ;
lalphabet de travail = {0, 1, #, B} ;
lensemble des tats Q = {q0 , qbit faible , qsans retenue , qavec retenue , qa , q r } : ltat initial
q0 sert recopier x , qbit faible se placer sur les bits de poids faibles de x et y ,
qsans retenue et qavec retenue servent faire laddition partir des bits de poids faibles
(qavec retenue indiquant quil y a une retenue) ;
la fonction de transition dfinie par

(q0 , (u, B)) = (q0 , (u, B), (D, D, S)) pour tout u {0, 1} (recopier x sur le

ruban de travail),

(q0 , (#, B)) = (qbit faible , (B, B), (D, S, S)) (changer dtat pour aller la fin de
y ),
(qbit faible , (u, B)) = (qbit faible , (B, B), (D, S, S)) pour tout u {0, 1} (aller vers
la fin de y ),
(qbit faible , (B, B)) = (qsans retenue , (B, B), (G, G, S)) (se placer sur le bit de poids
faible de y et de la copie de x ),
(qsans retenue , (u, v)) = (qsans retenue , (v, u + v), (G, G, G)) si u, v {0, 1} ne

sont pas tous deux gaux 1 (pas de retenue) et

(qsans retenue , (1, 1)) = (qavec retenue , (1, 0), (G, G, G)) (donne lieu une rete-

nue),

(qavec retenue , (0, 0)) = (qsans retenue , (0, 1), (G, G, G)) (fin de la retenue),
(qavec retenue , (1, 1)) = (qavec retenue , (1, 1), (G, G, G)) et
(qavec retenue , (u, v)) = (qavec retenue , (v, 0), (G, G, G)) si u +v = 1 (propagation

de la retenue),

si x est plus court, on lit B sur le ruban de travail et il faut continuer lire
y:
(qsans retenue , (u, B)) = (qsans retenue , (B, u), (G, S, G)) (pas de retenue),
(qavec retenue , (0, B)) = (qsans retenue , (B, 1), (G, S, G)) et
(qavec retenue , (1, B)) = (qavec retenue , (B, 0), (G, S, G)),

si y est plus court que x , alors on lit # sur le ruban dentre et il faut continuer
lire x :
(qsans retenue , (#, u)) = (qsans retenue , (u, u), (S, G, G)) (pas de retenue),
(qavec retenue , (#, 0)) = (qsans retenue , (0, 1), (S, G, G)) et
(qavec retenue , (#, 1)) = (qavec retenue , (1, 0), (S, G, G)),

enfin, aprs avoir puis x et y , on lit # sur le ruban dentre et B sur le ruban
de travail :

14

Chapitre 1. Le modle de calcul


(qsans retenue , (#, B)) = (qa , (B, B), (S, S, S)) (pas de retenue) et
(qavec retenue , (#, B)) = (qa , (B, 1), (S, S, S)) (crire la retenue),

toutes les autres transitions ne devraient pas se produire en fonctionnement


normal, donc on peut dfinir (q, (u, v)) = (q r , (B, B), (S, S, S)) par exemple
pour tous les (q, (u, v)) non prciss ci-dessus.

On constate la difficult de dfinir prcisment des machines de Turing pour des tches
pourtant simplistes. Cest la raison pour laquelle nous utiliserons gnralement, partir
du prochain chapitre, un langage de plus haut niveau (cf. section 1.2.4).

. 1-K

Exercice
Donner la description de machines de Turing permettant de :
tester si le mot en entre est un palindrome ;
effectuer la multiplication de deux entiers donns en binaire.

1.2.3

Code et machine universelle

Un ordinateur peut tre programm pour effectuer diffrentes tches, alors quil semble
premire vue quune machine de Turing est spcifique un problme particulier. Nous
allons voir quil nen est rien et quil existe une machine universelle capable dexcuter
un programme quon lui fournit en entre (selon le vocabulaire informatique, cette machine est donc un interprteur). Lexistence dune telle machine capable dexcuter tout
programme quon lui fournit en entre na rien dvident a priori, et il sagit dune
des particularits cruciales des machines de Turing (et de nos ordinateurs bien sr). Cette
notion apparat dj dans larticle fondateur de Turing [Tur37].
Une telle machine prend en entre un programme et nous devons donc dabord voir
comment coder ce programme, qui nest rien dautre que la description dune machine
de Turing. Nous allons donc dfinir le code dune machine de Turing : il sagit essentiellement de coder les alphabets dentre et de sortie, lensemble des tats et la fonction de
transition.
1-L

Dfinition (code dune machine de Turing)

Soit M = (, , B, Q, q0 , qa , q r , ) une machine de Turing k rubans. Nous supposerons


sans perte de gnralit que = {1, 2, . . . , ||} N, = {1, 2, . . . , | |} N et B = | |, et
que Q = {1, 2, . . . , |Q|} N, q0 = 1, qa = |Q| 1 et q r = |Q| (ainsi, la seule donne des
tailles de , et Q nous permettra de connatre , , B , Q , q0 , qa et q r ).
Pour dcrire la machine M , on spcifiera en unaire le nombre k de rubans ainsi que ||,
| | et |Q|, tandis que la fonction de transition sera code par un mot u donnant toutes
les transitions possibles.

1.2. La machine de Turing

15

Plus prcisment, le code de M est le mot M = 1k 01|| 01| | 01|Q| 0u sur lalphabet {0, 1},
o u est dfini comme suit :
tout dabord, pour tout lment s = (q, 1 , . . . , k1 ) (Q \ {qa , q r }) k1 , si
(s) = (r, 2 , . . . , k , d1 , . . . , dk ) alors on code la transition par le mot

u s = 1q 011 012 . . . 01k1 01 r 012 013 . . . 01k 01d1 01d2 . . . 01dk

o di = 0 si di = G , 1 si di = S et 2 si di = D ;
on note s1 , . . . , s t les lments de (Q \ {qa , q r }) k1 (disons dans lordre lexicographique, mais peu importe) ;
on dfinit alors u = u s1 0u s2 0 . . . 0u st qui encode toutes les transitions possibles.
Nous avons donn une dfinition prcise du code M dune machine de Turing M mais il
suffit de retenir quun tel code est simple et dcoule directement de la dfinition de M . Il
y aurait bien dautres codes possibles, notamment faisant intervenir des codages binaires
plus compacts mais cela nest pas ncessaire. Il faut simplement que le code, en tant
que mot sur {0, 1}, soit manipulable aisment sur le ruban dune machine de Turing.
Afin de prparer la construction dune machine universelle ci-dessous, nous allons voir
que lon peut rduire la taille de lalphabet sans trop nuire lefficacit de la machine :
en effet, on peut construire une machine quivalente sur un alphabet restreint. Nous
devons dabord dfinir la notion de machines quivalentes : nous dirons quune machine
en simule une autre si elle a le mme comportement un codage prs des entres/sorties.
Pour coder les entres/sorties, nous utiliserons un morphisme, cest--dire une application
: telle que (uv) = (u)(v) (en dautres termes, il sagit de coder chaque
lettre de par un mot sur , et limage dun mot de est alors la concatnation des
images de ses lettres). Un morphisme prserve les longueurs si u, v , |(u)| = |(v)| :
cette notion est utile pour inverser aisment le morphisme (dcoder).
1-M

Dfinition (simulation)

Soit M une machine de Turing dalphabets dentre et de travail . Une machine M


(dalphabets dentre et de travail ) simule M sil existe un morphisme dentre
: et un morphisme de sortie injectif et prservant les longueurs :
tels que, pour toute entre x , M (x) sarrte ssi M ((x)) sarrte, et dans ce cas :
M (x) accepte ssi M ((x)) accepte (mme acceptation),
et de plus M (x) = 1 (M ((x))) (mme rsultat de calcul).
Bien que la simulation soit une notion concernant les machines, si x est un mot, on dira
par abus de langage que le calcul de M sur (x) simule le calcul de M sur x (ou plus
simplement que M ((x)) simule M (x)).

16

Chapitre 1. Le modle de calcul

1-N Remarque Le lemme suivant montre quon peut se ramener des machines
sur lalphabet binaire (le symbole blanc en plus bien sr). On pourrait se contenter de
lide de la dmonstration esquisse ci-dessous, mais la dmonstration relativement formelle que nous proposons ensuite poursuit deux objectifs : dabord, montrer que lon
peut manipuler formellement les machines de Turing, puis illustrer par la complexit des
dtails ncessaires comparativement la simplicit des ides quil est inutile de le faire
une fois quon a apprhend les capacits des machines de Turing. Par la suite, nous nentrerons plus dans tant de dtails lorsquil sagira de manipuler les machines de Turing car
ils obscurcissent les ides sous-jacentes.

1-O

Lemme (rduction de lalphabet)

Si M = (, , B, Q, q0 , qa , q r , ) est une machine de Turing, alors il existe une machine M


dalphabet dentre = {0, 1} et dalphabet de travail = {0, 1, B}, qui simule M (avec
un morphisme dentre : ) et telle que :
si M (x) sarrte en temps t alors M ((x)) sarrte en temps 6t log | | ;
si M (x) utilise un espace s , alors M ((x)) utilise un espace 2s log | |.
De plus, les deux machines ont le mme nombre k de rubans et il existe une machine de
Turing fixe (indpendante de M ) qui calcule le code de M partir du code de M .
Ide de la dmonstration Chaque lettre de lalphabet sera code en binaire et occupera log | | cases sur les rubans de M (voir la figure 1.4). La machine M considrera
alors ces blocs de cases comme une seule lettre de et pourra effectuer la transition
de M qui convient. Les ttes effectuent la vole les oprations de codage/dcodage
qui ne ncessitent quune mmoire finie puisque le nombre de lettres est fini.
a

Figure 1.4 Changement de lalphabet {a, b , c, d , B} en {0, 1, B} sur un ruban : chaque


lettre est code sur deux bits.

Dmonstration Soit (0) , . . . , (| |2) , B les lments de et : le morphisme


qui (i ) associe le code binaire de i sur b = log(| | 1) bits (en ajoutant des zros
en tte si ncessaire) et qui B associe B b : ce sera le morphisme de sortie,

1.2. La machine de Turing

17

tandis que le morphisme dentre : est simplement la restriction de


(rappelons en effet que ).
La machine M a le mme nombre k de rubans que M et chaque ruban aura le mme
rle que dans M (cest--dire quon fait une simulation ruban par ruban). Chaque
ruban de M est divis mentalement en blocs de b cases correspondant chacun
au code des lettres se trouvant sur les rubans de M . Pour simuler une transition de
M , les ttes de M se trouveront sur la premire case des blocs correspondant aux
cases lues par M , elles liront ce bloc de la gauche vers la droite en retenant le mot
lu au fur et mesure, puis reviendront en dbut de bloc en crivant le nouveau mot
(correspondant la nouvelle lettre de crire) de la droite vers la gauche, et enfin
se dplaceront ventuellement gauche ou droite de b cases pour se positionner en
dbut du nouveau bloc et simuler la transition suivante.
Lors dun dplacement droite de b cases la fin de la simulation dune transition, il
faut prter attention au ruban de sortie en criture seule. Sur ce ruban comme sur les
autres, lorsquon les survole on aimerait laisser inchanges les cases du bloc que lon
vient de traiter, mais on ne peut pas les lire et on doit quand mme crire quelque
chose la place (par dfinition, toute transition doit crire un symbole dans la case
o se trouve la tte). Pour remdier ce problme, dans les tats de dplacement on
indiquera ce que la tte de sortie doit crire.
Une tape de M sera alors simule par au plus 3b 2 tapes de M . Il nous faudra de
nombreux tats supplmentaires pour retenir le mot lire ou crire dans le bloc et
pour les dplacements. Ainsi, chaque tat q de M , on associera les tats suivants :
u ,...,u

ltat de lecture qlec1 k1 (pour tous mots u1 , . . . , uk1 de taille b 1)


signifie que les prfixes des blocs lus jusqu prsent de gauche droite sur les
k 1 premiers rubans (le ruban de sortie est en criture seule) sont u1 , . . . , uk1 ;
u2 ,...,uk
ltat dcriture qecr
pour tous mots u2 , . . . , uk de taille b 1 signifie
quil faut encore crire, de droite gauche, les prfixes u2 , . . . , uk dans les blocs
des k 1 derniers rubans (le ruban dentre est en lecture seule) ;
i1 ,...,ik ;x
ltat de dplacement qdep
pour b i j b et x (|x| b 1) signifie
quil faut encore se dplacer de |i j | cases ( gauche si i j < 0 et droite sinon) et
que le mot quil reste crire sur le ruban de sortie dans lordre des dplacements
est x ;

on ajoute un tat dacceptation not qacc et un tat de rejet not qrej ( ne pas
confondre avec les tats qa et q r de M ) ;
,...,
enfin, ltat initial est rlec
(o dsigne le mot vide), pour r = q0 ltat initial
de M .

Les transitions de M se dduisent alors aisment :


pour un tat de lecture, tant quon nest pas la fin du bloc (|ui | < b 1), on lit
la case courante qui complte le prfixe et on se dplace droite :
u ,...,uk1

(qlec1

u a1 ,...,uk1 ak1

, (a1 , . . . , ak1 )) = (qlec1

, (a2 , . . . , ak1 , B), (D, . . . , D)) ;

18

Chapitre 1. Le modle de calcul


lorsquon arrive en fin de bloc (cest--dire |ui | = b 1), il faut effectuer le changement dtat correspondant la transition de M et commencer crire de droite
gauche le nouveau mot sur le bloc.
Plus prcisment, si on note (q, (1 , . . . , k1 )) = (r, (2 , . . . , k ), (d1 , . . . , dk )), et
(i ) = ui ai (pour |ui | = b 1 et ai ) et (i ) = vi bi (pour |vi | = b 1 et
bi ) alors :
u ,...,uk1

(qlec1

v ,...,vk

, (a1 , . . . , ak1 )) = (recr2

, (b2 , . . . , bk ), (G, . . . , G)) ;

pour un tat dcriture, tant quon nest pas au dbut du bloc, on crit la dernire
lettre bi dans la case courante :
(recr2

v b2 ,...,vk bk

v ,...,vk

, (a1 , . . . , ak1 )) = (recr2

, (b2 , . . . , bk ), (G, . . . , G)) ;

lorsquon arrive en dbut de bloc, si r est un tat terminal de M alors on passe


dans ltat qacc ou qrej selon que r est acceptant ou rejetant : ainsi, si b2 , . . . , bk
sont des symboles de alors
(recr2

b ,...,bk

, (a1 , . . . , ak1 )) = (qacc , (b2 , . . . , bk ), (S, . . . , S))

si r = qa (et de manire similaire si r = q r ).


Si en revanche r nest pas terminal, alors on crit la lettre correspondante et on
passe dans un tat de dplacement, en effectuant le premier mouvement de ce
dplacement.
Ainsi, si comme prcdemment (q, (1 , . . . , k1 )) = (r, (2 , . . . , k ), (d1 , . . . , dk )),
alors on dfinit :

i j = b + 1 si d j = G ,

i j = 0 si d j = S ,

i j = b 1 si d j = D ,

et pour grer le ruban de sortie, si (k ) = 1 . . . b :

si dk = G alors x = B b 1 (on crira des blancs en allant vers la gauche),


si dk = S alors x = 1b 1 (il faut toujours crire 1 car on reste sur place),
si dk = D alors x = 2 . . . b (il faut crire (k ) car on va droite).

On a alors
(recr2

b ,...,bk

i ,...,ik ;x

1
, (a1 , . . . , ak1 )) = (rdep

, (b2 , . . . , bk ), (d1 , . . . , dk )) ;

pour un tat de dplacement, il sagit de se dplacer dun bloc vers la gauche ou


la droite ( b cases) ou de rester sur place.
Si toutes les ttes sont arrives destination (dbut du bloc pour la transition
suivante), cest--dire si i j = 0 pour tout j et x = , alors on passe dans ltat de
lecture en effectuant le premier dplacement droite :
a ,...,ak1

0,...,0;
(rdep
, (a1 , . . . , ak1 )) = (rlec1

, (a2 , . . . , ak1 , B), (D, . . . , D)).

1.2. La machine de Turing

19

Si les ttes sont encore en route, on continue leur trajet : on dfinit

d j = G et i j = i j + 1 si i j < 0,

d j = S et i j = 0 si i j = 0,

d j = D et i j = i j 1 si i j > 0,

et alors
1
(rdep

i ,...,ik ;x1 ...x m

i ,...,ik ;x2 ...x m

1
, (a1 , . . . , ak1 )) = (rdep

, (a2 , . . . , ak1 , x1 ), (d1 , . . . , dk )).

Chaque tape de M est ainsi simule par 3b 2 tapes de M ( b 1 tapes pour lire le
bloc de gauche droite, b 1 pour crire les nouveaux symboles de droite gauche
et b pour se dplacer dun bloc vers la gauche ou la droite). Puisque
b = log(| | 1) 2 log | |,

le temps mis par M est 6t log | |. De mme, puisque chaque case de M est remplace
par b cases de M , lespace utilis par M est 2s log | |.
Nous venons dcrire explicitement la fonction de transition de M en fonction de
celle de M . La machine de Turing, indpendante de M , qui suivrait ces instructions
calculerait donc le code de M partir de celui de M . Il serait bien sr fastidieux mais

tout fait faisable de donner le code dune telle machine.

Cette rduction dalphabet est cruciale pour les machines universelles que nous construisons maintenant. En guise dchauffement, nous proposons lexercice suivant.

. 1-P

Exercice
Montrer quune machine de Turing k > 1 rubans de travail fonctionnant en temps
t peut tre simule par une machine de Turing un seul ruban de travail fonctionnant en temps O(t 2 ). Do vient la perte de temps ?
Indication : cf. figure 1.6.

Dans la plupart des cas, nous navons pas besoin dune machine universelle trs performante : cest pourquoi nous en prsentons dabord une dont le principe est simple et
qui est capable de simuler une machine avec une perte quadratique en temps. Nous ne
donnerons que lide de la preuve car nous verrons ensuite une machine plus efficace : on
simulera en O(t log t ) tapes une machine fonctionnant en temps t .
1-Q

Proposition (machine universelle simple mais non optimale)

Il existe une machine U 5 rubans, sur lalphabet dentre U = {0, 1} et lalphabet de


travail U = {0, 1, B}, telle que pour toute machine M sur les alphabets M et M :

20

Chapitre 1. Le modle de calcul


il existe un morphisme M : M U tel que pour tout mot x M , le calcul de
la machine U sur le couple (M , M (x)), not U (M , M (x)), simule M (x) ;
il existe une constante M telle que pour tout x M , si M (x) sarrte en temps t
et utilise un espace s , alors U (M , M (x)) sarrte en temps M (1 + s t ) et utilise
un espace M (1 + s).

Ide de la dmonstration Le lemme 1-O permet de travailler non sur M directement,


mais sur la machine quivalente M ayant pour alphabet U = {0, 1, B} (via un morphisme M ) : il suffit de calculer dans un premier temps le code de la nouvelle machine.
En outre, par commodit, on peut dabord construire une machine universelle U sur
un alphabet plus grand (utilisant, par exemple, des dlimiteurs ou des marqueurs),
puis se ramener lalphabet U par le lemme 1-O.
M , M (x)

(ruban dentre)

(ruban de travail 1)

contenu des rubans de M

(ruban de travail 2)

tat des ttes et contenu des cases lues

(ruban de travail 3)

sortie de M

(ruban de sortie)

Figure 1.5 Machine universelle 5 rubans simulant M (x).


Voici le principe de notre machine universelle U (cf. figure 1.5) :
le ruban dentre sert lire le mot x encod sur lalphabet U sous la forme M (x) :
il se comportera comme le ruban dentre de M ;
sur le premier ruban de travail, on a calcul le code de la machine M quivalente
M mais travaillant sur lalphabet U ;
sur le deuxime ruban de travail, on encode les (k 2) rubans de travail de M
en utilisant des blocs conscutifs de (k 2) cases (cf. figure 1.6) et on conserve
la position de chaque tte par un marqueur spcial ( sur la figure, en travaillant
donc sur lalphabet U (U {})) : tout se passe comme si lon disposait de
tous les rubans de travail de M en parallle sur un unique ruban de U ;
chaque instant, U conserve sur son troisime ruban de travail ltat des ttes
de M ;
le ruban de sortie se comporte comme celui de M ;
pour simuler une tape de calcul de M , la machine U parcourt son deuxime

1.2. La machine de Turing

21

ruban 1

ruban 2

ruban 3

1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0

tte 3

tte 1

tte 2

Figure 1.6 Encoder 3 rubans sur un seul.

ruban de travail la recherche des ttes de M , recopie sur le troisime ruban de


travail le contenu des cases pointes par les ttes de M : U dispose maintenant de
ltat de M et du contenu des cases sous les ttes, donc elle va lire dans le code de
M la transition effectuer et effectue cette transition en changeant ltat inscrit
sur le troisime ruban de travail, en modifiant le contenu des cases concernes et
en dplaant le symbole de reprage des ttes de M si ncessaire.
Pour simuler chaque transition de M , la machine U fait deux allers-retours sur le
ruban codant les rubans de travail de M , ce qui cote un temps linaire en le nombre
maximal de cases utilises. Puisque M utilise au plus 2s log |M | cases, on obtient
un temps total O(s t log |M |) pour simuler les t tapes. ce temps de simulation il
convient dajouter le temps de calcul du code de M (une constante dpendant de M ),
do un cot M (s t + 1).
De mme pour lespace, si M a k rubans, lespace utilis par notre machine est une
constante (dpendant de |M |) sur le premier ruban de travail, O((k 2)s log |M |) sur
le deuxime et une constante (dpendant de |M |) sur le troisime : on obtient au

total un espace M (s + 1).

1-R Remarque Puisquune machine fonctionnant en temps t ne peut pas utiliser


un espace suprieur t , la machine universelle de la proposition prcdente fonctionne
en temps M (1 + t 2 ), cest--dire O(t 2 ).
Nous allons maintenant dcrire une machine universelle dont le principe est plus compliqu mais qui est capable de simuler une machine avec une perte en temps seulement
logarithmique. Cette construction est due Hennie et Stearns [HS66].
1-S

Thorme (machine universelle avec perte de temps logarithmique)

Il existe une machine U 6 rubans, sur lalphabet dentre U = {0, 1} et lalphabet de


travail U = {0, 1, B}, telle que pour toute machine M sur les alphabets M et M :

22

Chapitre 1. Le modle de calcul


il existe un morphisme M : M U tel que pour tout mot x M , le calcul
U (M , M (x)) simule M (x) ;
il existe une constante M telle que pour tout x M , si M (x) sarrte en temps t et
utilise un espace s , alors U (M , M (x)) sarrte en temps M (1 + t log t ) et utilise
un espace M (s + log t ).

Ide de la dmonstration Nous ne pouvons plus nous permettre comme prcdemment de parcourir tous les rubans chaque tape pour trouver la position des ttes.
Lide est deffectuer les calculs autour de la position 0 et de ramener cet emplacement
linformation ncessaire contenue sur les rubans : ds quon doit lire une nouvelle case,
on va chercher le contenu de la case et tout son voisinage pour le rapatrier autour de
la case 0. Lintrt de ramener galement le voisinage est de limiter le nombre de tels
rapatriements (car ceux-ci prennent du temps) : si lon a ramen un voisinage de taille
m , alors on peut ensuite effectuer au moins m/2 transitions sans rapatrier dautres
blocs .
En adaptant la taille du voisinage chaque transition, on peut simuler une tape de M
par log t tapes de U en moyenne : il sagit dun cot amorti sur lensemble du calcul,
certaines transitions requrant plus de temps pour rapatrier de grands blocs, tandis
que dautres ne ncessitent quun temps constant.
Dmonstration
Description informelle Tous les rubans de travail de M seront regroups sur un seul
ruban de travail de U en les intercalant comme la figure 1.6, de sorte quon peut les
traiter les uns aprs les autres. Le contenu de chaque ruban de travail de M se retrouve
sur le ruban de U dans le mme ordre, mais un symbole particulier peut venir sintercaler entre les cases (ce qui nous permettra de grer le rapatriement de blocs). La
simulation de toute tape de M seffectue dabord en dplaant un groupe contigu de
cases afin damener en position 0 la case du ruban de M qui doit tre lue : pour cela,
on recopie ces cases autour de la position 0 et on efface les cases originales grce au
symbole (on dira quon rapatrie un bloc ). On est ensuite mme deffectuer
la transition puisquon dispose de la bonne case lire. Pour viter de perdre trop de
temps dans les rapatriements, plus la case ramener est loin, plus on rapatrie un bloc
de grande taille autour delle : cela permet davoir autour de la position 0 linformation ncessaire pour effectuer un grand nombre de transitions sans aller chercher une
nouvelle case lointaine.
Le ruban est virtuellement dcoup en zones de plus en plus grandes qui permettent
de savoir quels blocs rapatrier. Lorsquon rapatrie un bloc, la construction est telle
quentre ce bloc et la position 0 il ny a que des cases contenant le symbole , de sorte
quon ncrase aucun contenu lors du rapatriement. Les zones sont dfinies de sorte
que les blocs de taille m sont distance O(m) et donc leur dplacement prend un
temps O(m) en utilisant un ruban de travail auxiliaire : une fois leur rapatriement
assur, on montre quil est alors possible de simuler O(m) transitions sans avoir
5. Attention, il sagit seulement de lintuition, ce ne sera pas exactement ce qui se passera dans la dmonstration car chaque tape on rapatriera des blocs, petits la plupart du temps.

1.2. La machine de Turing

23

rapatrier un nouveau bloc si grand, ce qui permet dobtenir en analyse amortie la


complexit de lnonc.
Passons maintenant la dmonstration formelle, dans laquelle la gestion des blocs est
assez technique.
Alphabet et rubans Le morphisme M sera simplement celui du lemme 1-O codant
lalphabet M sur U = {0, 1, B} ; la machine travaillant sur U quivalente M donne par ce lemme sera note M . Par commodit, nous aurons besoin dun symbole
supplmentaire pour reprsenter une case laisse volontairement vide : nous dcrirons donc une machine U travaillant sur lalphabet {0, 1, , B}. Il conviendra alors
dappliquer le lemme 1-O pour se ramener lalphabet U .
Dans un premier temps, notre machine U calcule le code de M partir de celui de M
et lcrit sur son premier ruban de travail. Comme la proposition 1-Q, le ruban dentre de U contenant (M , M (x)) servira lire le mot M (x) et se comportera comme
le ruban dentre de M ; le premier ruban de travail de U contiendra le code de M ;
le deuxime ruban de travail contiendra le contenu de tous les rubans de travail de M ;
le troisime ruban de travail contiendra ltat des ttes de M (ainsi que dventuels
compteurs pour dlimiter les zones mentionnes aprs) ; le quatrime ruban de travail
servira de zone de stockage temporaire pour copier les blocs rapatrier ; enfin, le ruban
de sortie se comportera comme celui de M . En rsum, le rle des rubans est comme
la figure 1.5 sauf un ruban de travail supplmentaire pour recopier temporairement
les blocs rapatrier.
Simulation dune transition Une transition de M sera simule comme suit : aller
chercher sur le deuxime ruban de travail les cases de M lire et les ramener la
position 0 avec un certain nombre de cases les entourant (cette opration dtaille
ci-aprs sera appele rapatriement de blocs ), puis lire le code de M sur le premier
ruban de travail pour effectuer la transition correspondante, cest--dire modifier le
contenu des cases du deuxime ruban de travail et ltat inscrit sur le troisime ruban
de travail. Il nous reste donc voir comment se comporte le deuxime ruban de travail.
Comme auparavant, les k 2 rubans de travail de M seront encods sur le deuxime
ruban de travail de U par des blocs conscutifs de k 2 cases (voir la figure 1.6, mais
nous naurons pas besoin dun symbole pour reprer la position des ttes). Ainsi on
peut accder aisment au contenu des rubans de travail de M et les grer de manire
spare.
Pour chaque ruban de travail de M simul par U , on considre les zones suivantes :
pour i 0, Di (resp. Gi ) est lensemble des cases de position 2i 2i+1 1 (resp. de
2i+1 + 1 2i ). Ces zones recouvrent le ruban sauf la position 0 qui est traite spcifiquement (cf. figure 1.7). Notons que les zones Di et Gi possdent 2i cases chacune.
Ces zones nous permettront de dterminer les blocs que lon rapatriera si ncessaire
lors de la simulation. Afin de grer le rapatriement de blocs de tailles diffrentes, il
faudra laisser des cases volontairement vides et nous utiliserons pour cela le symbole
: on aura bien le ruban avec ses cases dans lordre mais pas toutes contigus. Cela
permet dviter de devoir dcaler le ruban en entier : on rapatrie le bloc qui nous

24

Chapitre 1. Le modle de calcul


G2

G1

G0

D0

D1

D2

nombre de cases : 4

Figure 1.7 Zones sur un ruban de travail.

intresse en laissant des symboles sa place initiale. Avant la simulation de chaque


transition, les invariants suivants seront toujours respects :
la case 0 ne contient pas ;
dans la zone Di (resp. Gi ) :

soit il ny a aucun symbole ,

soit il y en a exactement la moiti (cest--dire 2i 1 ),

soit toutes les cases contiennent ;

si Di et Gi ne contiennent pas seulement le symbole B , alors la somme du nombre


de cases dans Di et Gi est 2i , cest--dire que :

Di (resp. Gi ) ne contient pas ssi Gi (resp. Di ) ne contient que ,

et Di contient la moiti de ssi Gi aussi.

Au dpart, toutes les cases contiennent B donc les invariants sont satisfaits. Voici le
comportement de notre machine U pour simuler une tape de la machine M : supposons quil sagisse dun dplacement de la tte de M vers la gauche, cest--dire quil
faut rapatrier une zone situe gauche (les autres cas sont similaires). La case lire
est la premire case sur la gauche qui ne contient pas un symbole et on rapatriera
autour de la position 0 la moiti de la zone de cette case. Un exemple des diffrents
cas possibles dcrits ci-dessous est illustr la figure 1.8.
1. Se dplacer gauche jusqu trouver la premire case ne contenant pas (situe
dans la zone Gi pour un certain i 0, cest--dire que les zones G0 , . . . , Gi 1
contiennent seulement ).
2. Par un aller-retour, tester si les zones Gi et Di contiennent seulement le symbole
B : si cest le cas et si i > 0, on remplit la moiti de Gi et de Di par le symbole
et on laisse les autres cases B (les zones G0 et D0 ne contenant quune case, si
i = 0 alors on laisse G0 inchange et on crit dans D0 ).
3. Puis trois cas sont possibles :
si i = 0 (cest--dire que la case la position 1 ne contient pas ), dans ce
cas D0 est vide et on effectue une translation des cases 1 et 0 dun cran vers
la droite : plus prcisment, on recopie le contenu des cases 1 et 0 sur les
cases 0 et 1 et on crit dans la case 1 ;
si i > 0 et aucune case de Gi ne contient , recopier la moiti droite de Gi
sur le quatrime ruban de travail et crire la place (la moiti droite de
Gi est maintenant vide) ;

1.2. La machine de Turing

25

si i > 0 et la moiti des cases de Gi contiennent , recopier les cases de Gi


ne contenant pas sur le quatrime ruban de travail et crire la place
(la zone Gi est maintenant vide).
4. Si i > 0, mmoriser le contenu de la case 0 puis recopier les 2i 1 cases du quatrime ruban de travail en remplissant exactement la moiti de chaque zone
Gi 1 , . . . , G1 et en terminant par la case 0 (cest--dire que le dernier symbole de
la zone Gi , droite, se retrouve maintenant en position 0) : tout
cela est possible
car les zones Gi 1 , . . . , G1 sont vides et elles contiennent en tout i1
2 j = 2i 2
j =1
cases, dont la moiti plus la case 0 font bien 2i1 cases.
5. Enfin, si i > 0, effectuer des oprations similaires droite afin de prserver les
invariants : rorganiser le contenu des zones D0 , . . . , Di de sorte remplir la moiti
de chaque zone D1 , . . . , Di 1 et, selon si Gi est vide ou non, remplir la totalit
de Di ou seulement la moiti. Tout cela est possible car les zones D0 , . . . , Di1

contenaient i1
2 j = 2i 1 cases pleines, ce qui correspond exactement la
j =0
moiti de la capacit des zones D1 , . . . , Di . Enfin, crire lancien contenu de la
case 0 sur la case 1 (zone D0 ).

G2

G1

(a) Zone G0
pleine

(b) Zone G2
pleine

D0

D1

D2

(c) Zone G2
moiti vide

G0

Figure 1.8 Les trois types de rapatriements possibles pour chacun des rubans de
travail de M simuls sur le ruban de travail numro 2 de U (les zones grises
reprsentent les cases non vides). Le symbole reprsente la case lue ltape prcdente,
et le symbole celle lire (aprs lavoir rapatrie) ltape en cours.

Complexit

Reste maintenant analyser le nombre dtapes et lespace ncessaires

26

Chapitre 1. Le modle de calcul


pour simuler le calcul de M . Remarquons dabord que le nombre de cases utilises
par U sur chaque ruban de travail simul est au plus deux fois celui de M puisquau
plus la moiti des cases contiennent . Par ailleurs, sur le premier ruban de travail,
le code de M prend un espace constant (dpendant de M ), de mme pour ltat des
ttes sur le troisime ruban de travail. En revanche, pour dterminer les zones Gi et
Di , on a besoin dun compteur en binaire comptant jusqu t (que lon peut placer sur
le troisime ruban de travail), ce qui prend un espace log t . Enfin, il y a la traduction
dalphabet de M M et de U U , ce qui ajoute une constante multiplicative : en
tout, lespace utilis par U pour simuler M est donc M (s + log t ) pour une constante
M dpendant de M .
Lanalyse du temps dexcution est une analyse amortie. Il existe une constante (dpendant du nombre de rubans de M ) telle que le rapatriement dune zone Gi ou
Di prenne 2i tapes. On supposera suffisamment grand pour la suite. Que se
passe-t-il aprs avoir rapatri une zone dindice i ? Toutes les zones G1 , . . . , Gi1 et
D1 , . . . , Di 1 sont moiti pleines : G1 , . . . , Gi 1 (resp. D1 , . . . , Di1 ) contiennent donc
en tout 2i 1 1 cases non vides. Ainsi, une simulation de 2i 1 transitions de M commenant par le rapatriement dune zone dindice i ne rapatrie ensuite que des zones
dindice i 1.
Montrons par rcurrence sur i 0 la proprit suivante.
Soit t1 une tape de M qui ncessite pour sa simulation par U de rapatrier une zone
dindice i . On note t2 > t1 la prochaine tape de M ncessitant de rapatrier une zone
dindice i . On note t = t2 t1 le nombre dtapes de t1 inclus t2 exclu : par ce qui
prcde, t 2i1 . Alors la simulation par U de ces t transitions prend au plus 2(i +1)t
tapes.
Dmonstration Pour i = 0 : il ny a que la transition correspondant au rapatriement de la zone dindice 0 simuler, ce qui prend un temps constant.
En supposant suffisamment grand, lhypothse est vrifie au rang 0.
Pour i > 0 : soit j1 j2 j m1 les indices des zones de plus en plus
grandes rapatries au cours de la simulation des t tapes, et j m i la zone
rapatrie ltape t2 . Pour 1 n m 1, on appelle t[ jn , jn+1 [ le nombre de
transitions de M simules entre le rapatriement de
jn (inclus) et celui de
m1
jn+1 (exclu). On a : jn i 1 pour n m 1, et n=0
t[ jn , jn+1 [ = t .
Afin de simuler les t transitions de M , il y a :
au plus 2i tapes de U pour rapatrier la premire zone dindice i ;
par rcurrence, au plus 2( jn + 1)t[ jn , jn+1 [ tapes pour simuler les transitions situes entre jn et jn+1 .
Le nombre total dtapes est donc
2i +

m1

n=1

2( jn + 1)t[ jn , jn+1 [ 2i + 2i

m1

n=1

t[ jn , jn+1 [

= 2i + 2i t 2t + 2i t = 2(i + 1)t ,

ce qui montre lhypothse de rcurrence au rang i .

1.2. La machine de Turing

27

Maintenant, au cours de la simulation de la totalit des t tapes de M , on note de la


mme manire que prcdemment 0 = j1 j2 j m la suite des indices des zones
de plus en plus grandes rapatries. Le dernier intervalle (commenant en j m ) peut tre
incomplet puisque la fin du calcul peut intervenir avant. Pour viter de traiter ce cas
part, on supposera sans perte de gnralit qu la fin du calcul, on simule au plus
t dplacements fictifs de M vers la gauche, ce qui nous assure de rapatrier une zone
dindice j m . Ainsi, on simulera t 2t tapes de M et le dernier intervalle, not
abusivement t[ jm , jm+1 [ , sera complet. Enfin, puisque 2 jm 1 t[ jm , jm+1 [ t 2t , on a
j m 2 + log t .
Par la proprit montre ci-dessus, pour 1 n m la simulation de lintervalle t[ jn , jn+1 [
prend un temps au plus 2( jn +1)t[ jn , jn+1 [ donc la simulation complte ncessite au plus
m
m
2 n=1
( jn + 1)t[ jn , jn+1 [ tapes. Puisque n=1
t[ jn , jn+1 [ = t 2t et ( jn + 1) 3 + log t ,
le nombre total dtapes que requiert la simulation est 2(3 + log t )2t . En prenant
en compte la constante multiplicative venant du changement dalphabet, on obtient

le nombre dtapes M (1 + t log t ) de lnonc.

1-T

Remarques

Comme nous le verrons plus tard (proposition 4-W), si une machine sarrte au
bout de t tapes alors elle utilise un espace s = (log t ). Ainsi, dans lnonc du
thorme 1-S, lespace utilis par la simulation peut en fait scrire M (1 + s) pour
une constante M dpendant de M (cest--dire quon peut supprimer le terme
log t ).
Cest une question ouverte de construire une machine universelle avec perte de
temps moindre que logarithmique (cest--dire fonctionnant en o(t log t )).
Le thorme prcdent montre en particulier que toute machine de Turing fonctionnant en temps t (n) est quivalente une machine ayant quatre rubans de travail et fonctionnant en temps O(t (n) log t (n)). On peut aisment adapter la preuve
pour se ramener seulement deux rubans de travail, en regroupant les premier,
troisime et quatrime rubans de travail en un seul.

1.2.4

Langage de haut niveau


Un peu de recul

Les exemples et rsultats qui prcdent illustrent la grande difficult de dfinir des machines de Turing pour des oprations pourtant trs simples. Pour la suite, la machine de
Turing nous servira pour dfinir proprement les concepts mais nous utiliserons plutt un
langage bien plus comprhensible pour dcrire nos algorithmes. Ce chapitre doit nous
convaincre que ce langage peut tre excut par des machines de Turing. Il sagit dune

28

Chapitre 1. Le modle de calcul

des particularits de la complexit (et de la calculabilit) : dfinir un modle de calcul


basique pour loublier ensuite au profit dun langage plus commode.
Pour dcrire un algorithme nous utiliserons dornavant un langage de haut niveau comme
on en a lhabitude, avec des instructions conditionnelles, des boucles, des variables, etc.
Il faut donc montrer que ces instructions sont ralisables par une machine de Turing. La
proposition suivante est informelle et la preuve est peine esquisse : nous invitons le
lecteur se convaincre par lui-mme quune machine de Turing est capable de simuler
tout programme quon pourrait crire sur un ordinateur.
1-U

Proposition (informelle)

Tout programme crit dans un langage compos de variables entires xi (en nombre non
born), doprations daffectation , daddition + et de multiplication , de tests dgalit = et dingalit , dinstructions conditionnelles si...alors...sinon et de boucles
tant que, peut tre simul par une machine de Turing.
Ide de la dmonstration On associe chaque ligne du programme un certain nombre
dtats qui permettront de raliser linstruction correspondante. Un ruban de travail
sera consacr au stockage des variables : ce ruban contiendra x1 #x2 # . . . #x m , cest--dire
les valeurs des variables codes en binaire et spares par des symboles #.
Laffectation dune valeur dans une variable consiste en la recopie au bon endroit de la
valeur sur le ruban stockant les variables. Pour cela, il peut tre ncessaire de dcaler
une partie du ruban vers la gauche ou vers la droite pour librer des cases, ce qui se
fait en dcalant les cases une par une.
Pour raliser une addition, il sagit dabord damener la tte sur la premire variable
ajouter, de copier la valeur sur un ruban de travail auxiliaire, de se positionner sur la
seconde variable et deffectuer laddition comme expliqu lexemple 1-J. On ralise
une multiplication de manire similaire.
Dcider lgalit de deux valeurs revient les comparer chiffre chiffre en effectuant
des allers-retours entre elles. Pour un test dingalit, il suffit dabord de comparer le
nombre de chiffres des valeurs puis, en cas dgalit, de comparer les valeurs chiffre
chiffre en partant des bits de poids forts.
Une instruction conditionnelle revient simplement valuer un test puis changer
dtat en fonction du rsultat pour excuter la bonne instruction. De mme, une
boucle while nest rien de plus quun test suivi dun changement dtat, soit pour

revenir au dbut de la boucle, soit pour en sortir.

1-V Remarque Lors de la traduction de ce langage de haut niveau vers une machine de Turing, il faut garder lesprit que les oprations daffectation, daddition et de
comparaison prendront sur la machine de Turing un temps linaire en la taille binaire des

1.2. La machine de Turing

29

entiers manipuls, et que la multiplication prendra un temps quadratique : contrairement


ce que laisse penser le langage de haut niveau, ce ne sont pas des oprations unitaires.

Nous utiliserons les mots-cls accepter et rejeter pour signifier que la machine entre
dans un tat acceptant ou rejetant respectivement. Une telle instruction termine donc le
calcul (mme sil reste des instructions excuter dans le programme). Par exemple, pour
dcider si un nombre n est premier, on pourra crire

pour i de 2 n 1 faire

si i divise n , rejeter ;

accepter.

Un peu de recul
Le modle des machines de Turing est si gnral quil semble tre universel. Il sagit de
la thse de Church-Turing : tout ce qui est calculable par un systme physique est
calculable par machine de Turing.
Attention, ce nest pas un thorme mais seulement une profession de foi, partage par
la plupart des scientifiques et jamais remise en cause ce jour depuis sa formulation par
Church dans les annes 1930. Remarquons quon ne peut dmontrer un tel nonc sans
dfinir formellement ce quon entend par calculable par un systme physique

1.2.5

Indcidabilit

Avant daller plus loin, et bien que ceci sorte du cadre de ce livre, il nest pas inutile
de rappeler que certains problmes ne peuvent pas tre rsolus par un algorithme, quel
que soit le temps dont il dispose. Ce rsultat fondamental dindcidabilit remonte aux
dbuts des machines de Turing (annes 1930) et la thorie qui en dcoule, la calculabilit,
a donn ensuite naissance la complexit algorithmique. Nous suggrons au lecteur de
se reporter aux ouvrages cits en introduction, par exemple au livre de Wolper [Wol06],
pour approfondir le passionnant sujet de la calculabilit.
La dmonstration du rsultat suivant utilise le procd diagonal , ou diagonalisation,
invent par Cantor et que nous tudierons plus en dtail par la suite.

30
1-W

Chapitre 1. Le modle de calcul


Thorme

Il nexiste pas de machine de Turing reconnaissant le langage


H = {M | M est une machine de Turing et M (M ) rejette}.

Dmonstration Par labsurde, supposons quune machine M reconnaisse H . Alors, par


dfinition de M , M H ssi M (M ) accepte. Mais dautre part, par dfinition de H ,
M H ssi M (M ) rejette. Ainsi, M (M ) accepte ssi M (M ) rejette : une contradic
tion.

Un peu de recul
Il existe quantit dautres problmes indcidables trs naturels. Le thorme que nous
venons de voir montre quil nexiste pas de programme dordinateur capable de dcider
si un code source quelconque (par exemple un code de programme Java), lors de son
excution sur son propre code, va renvoyer 0 ou 1 ou sil va boucler indfiniment.
Plus gnralement, on peut montrer (thorme de Rice) quaucune proprit non triviale
dun programme ne peut tre dcide par algorithme. Pour rsumer grossirement, cela
signifie quil nexiste pas de mthode automatique pour dtecter un bug dans un programme ou pour certifier quil excute bien la tche voulue.
En calculabilit, les ressources de la machine ne sont pas limites : elle peut prendre autant
de temps et despace quelle veut. En revanche, les questions que nous nous poserons dans
le reste de cet ouvrage concerneront la quantit de ressources ncessaires pour rsoudre
un problme : ce seront des questions de la forme quels langages peuvent tre reconnus
efficacement ? .

Considrations de base
sur le temps
Une fois ralise la formalisation des algorithmes vue au chapitre prcdent, les mathmaticiens se sont intresss des questions lies au type de problmes que lon pouvait
ainsi rsoudre (calculabilit). Plus tard, lors de lapparition des premiers ordinateurs, la
question de lefficacit de ces algorithmes sest pose et le domaine de la complexit algorithmique a vu le jour.
Dans ce chapitre, nous allons voir les prmices de la complexit, qui remontent aux annes
1960 : dfinition des classes de complexit en temps, thormes de hirarchie, relations
entre classes, etc. Nous introduirons galement les machines non dterministes et le problme P = NP ? qui a une grande importance depuis les annes 1970.

2.1

Temps dterministe

Le modle des machines de Turing que nous avons vu au chapitre prcdent servira
dfinir les classes de complexit. Rappelons que le temps mis par une machine M sur une
entre x est le nombre dtapes du calcul de M (x) pour arriver un tat final (dfinition 1F). Cela revient en quelque sorte mesurer le temps dexcution de lalgorithme pour
rsoudre le problme sur lentre x , mais on veut une mesure indpendante de la puissance
de lordinateur faisant tourner lalgorithme : cest pourquoi on ne parle pas en secondes
mais en nombre dtapes de calcul. Grce cette notion, nous pouvons dfinir des classes
de complexit en temps.

32

Chapitre 2. Considrations de base sur le temps

2.1.1

Classes de complexit en temps


Un peu de recul

Pour la plupart des problmes, plus la taille de lentre est grande, plus il faudra du temps
pour trouver la solution. Par exemple, il est vident quon mettra plus de temps trier
une liste dun million dlments plutt quune liste de 3 lments.
Il est alors naturel dvaluer le temps de calcul dun algorithme en fonction de la taille de
son entre. Cette observation donne lieu la dfinition suivante.
La dfinition suivante apparat pour la premire fois dans larticle [HS65] dHartmanis
et Stearns.
2-A

Dfinition (classes de complexit en temps dterministe)

Pour une fonction t : N N, la classe DTIME(t (n)) est lensemble des langages
reconnus par une machine de Turing M telle quil existe une constante pour
laquelle, sur toute entre x , M (x) fonctionne en temps t (|x|).
Si T est un ensemble de fonctions, alors DTIME(T ) dsigne t T DTIME(t (n)).

2-B Remarque Dans le domaine de la complexit (contrairement la calculabilit), toutes les machines que nous considrerons sarrteront sur toute entre. Cest par
exemple implicite dans la dfinition prcdente puisque M (x) est cense fonctionner en
temps t (|x|). La question nest plus de savoir si une machine sarrte, mais en combien
de temps elle le fait.
2-C Remarque Pour rsoudre la plupart des problmes non triviaux, il faut lire la
totalit de lentre x . Ainsi le temps de calcul mis par la machine est au moins n = |x|, et
les classes DTIME(t (n)) ont peu dintrt pour t (n) = o(n).
Avant de poursuivre, mentionnons quelques proprits videntes des classes DTIME(t (n)).
2-D

Proposition

1. Si pour tout n , f (n) g (n) alors DTIME( f (n)) DTIME(g (n)) ;


2. pour tout t (n) n , DTIME(t (n)) est clos par union finie, intersection finie et complmentaire.

2.1. Temps dterministe

33

Dmonstration
1. Si L DTIME( f (n)) alors il existe une machine reconnaissant L en
temps au plus f (n) donc a fortiori en temps major par g (n), ce qui implique
L DTIME( g (n)).
2. Si L1 , L2 DTIME(t (n)), soit M1 et M2 deux machines reconnaissant L1 et L2
en temps 1 t (n) et 2 t (n) respectivement. Alors une machine pour L1 L2
(resp. L1 L2 ) est la machine M (x) (resp. M (x)) qui excute M1 (x) puis M2 (x)
et accepte ssi lune des deux accepte (resp. les deux acceptent). Puisque cette
machine doit revenir au dbut du ruban de lecture entre les calculs de M1 et de
M2 , elle fonctionne en temps 1 t (n) + 2 t (n) + O(n). Puisque t (n) n , on a
donc L1 L2 DTIME(t (n)) (resp. L1 L2 DTIME(t (n))).
Une machine pour c L1 est la machine M c (x) qui excute M1 (x) et accepte ssi
M1 (x) rejette : elle fonctionne en temps 1 t (n) donc c L1 DTIME(t (n)).

Pourquoi dfinir la classe DTIME une constante prs ? La raison vient du rsultat
suivant qui montre que le fonctionnement dune machine peut tre acclr par nimporte
quel facteur constant. En dautres termes, le temps de calcul dune machine nest une
mesure pertinente qu une constante prs.
Un peu de recul
Il ny a pas de magie dans ce rsultat : pour acclrer une machine, il suffit dagrandir
lalphabet pour faire plus de calculs en une tape. Cest grosso-modo ce quon fait en
remplaant les micro-processeurs 32 bits par des micro-processeurs 64 bits.
Comme on la vu, on ne peut pas descendre en dessous de n pour le temps dexcution
dune machine raisonnable, ce qui explique la forme (1 + )n + t (n) utilise dans le thorme suivant. Si n = o(t (n)) alors cela signifie rellement une acclration par nimporte
quelle constante. Ce rsultat est d encore Hartmanis et Stearns [HS65].
2-E

Thorme (acclration linaire)

Pour toute constante > 0, si un langage L est reconnu par une machine M fonctionnant
en temps t (n), alors il existe une machine M reconnaissant L et fonctionnant en temps
(1 + )n + t (n).
Ide de la dmonstration Lastuce consiste agrandir lalphabet pour pouvoir raliser
en une seule fois plusieurs tapes de calcul de la machine de dpart. Pour raliser c
tapes dun coup, il faut connatre le voisinage de rayon c autour de la cellule en
cours : chaque nouvelle cellule contiendra des (2c + 1)-uples danciennes cellules (ce
qui revient passer lalphabet de travail 2c+1 ). En ralit nous nallons pas simuler
c anciennes tapes en une seule nouvelle, mais en 6 nouvelles : les informations ncessaires sont en effet contenues dans les voisines de gauche et de droite quil nous faut
donc visiter (voir la figure 2.1).

34

Chapitre 2. Considrations de base sur le temps

Dmonstration La machine M contient un ruban de travail de plus que M . On pose


c = 6/ : si lalphabet de travail de M est , alors celui de M est c (o c , produit
cartsien c fois de avec lui-mme, est lensemble des c -uples dlments de ). Sur les
rubans de travail de M , chaque cellule contient un bloc de c symboles conscutifs de
M . Le ruban dentre de M contient bien sr lentre x sur n cases sur lalphabet :
la premire phase de M consiste recopier x sur le ruban de travail supplmentaire
sur lalphabet c : le mot x prend maintenant n/c cases. Puisquil faut revenir au
dbut du ruban de travail supplmentaire, cette phase requiert n + n/c (1 + )n
tapes de calcul. Ce ruban de travail supplmentaire simulera le ruban dentre de M .
Chaque groupe de c transitions de M est simul par 5 ou 6 transitions de M : dabord,
indpendamment du mouvement de M , quatre transitions pour lire les cases voisines
(un dplacement droite suivi de deux gauche puis un droite), puis un ou ventuellement deux dernires transitions pour simuler lcriture et le dplacement de M
(voir la figure 2.1).
1

c trans.

1
3
4

1
1
2
5

Figure 2.1 Simulation de c transitions en 6 tapes.

Pour simplifier lexplication, nous traiterons chaque ruban de travail sparment : il


faudrait en ralit ajouter des tats pour retenir le contenu des cases voisines sur tous
les rubans.
Pour chaque tat q de M , la machine M contient c| 2c |+2c| c |+2c tats pour retenir
le contenu des cases voisines et les dplacements effectuer :

pour 1 i c , un tat qi,D


pour dbuter la squence de 5 ou 6 tapes : qi,D
permet de retenir la position i de la tte dans le bloc de c cases et de prvoir un
mouvement D ;

puis M se dplace droite en passant dans ltat qi,G pour prvoir un mouvement
G;
elle se dplace ensuite gauche et retient le contenu u c de la case quelle vient
de lire (celle de droite) en passant dans ltat qi,u,G (le prochain mouvement sera
G) ;
elle se dplace encore gauche en passant dans ltat qi,u,D pour prvoir un mouvement D ;

2.1. Temps dterministe

35

elle se dplace droite et retient le contenu v c de la case quelle vient de lire

(celle de gauche) en passant dans ltat qi,u,v


.
Aprs ces 4 dplacements, M est revenue la case de dpart. Grce son tat, elle
connat maintenant le contenu de ses deux voisines et, grce la lecture de la case
courante, celui de la case en cours. En dautres termes, du point de vue de M , elle
connat le contenu dau moins c cases vers la gauche et vers la droite : elle peut donc
simuler c transitions de M .
Pour cela, il suffit de dfinir la fonction de transition de M de sorte que, sur ltat

qi,u,v
et en lisant le uple w c , elle effectue lquivalent de c transitions de M
partir de la i -me case du bloc courant. Cela implique de modifier la case en cours
en fonction de ce qucrit M , puis si ncessaire daller modifier la voisine de gauche
ou de droite (lune seulement des deux pouvant tre modifie en c transitions de M )
et soit revenir sur la case de dpart, soit rester sur la voisine modifie. Pour effectuer
cela, la cinquime transition de M modifie la case de dpart et se dplace du bon ct
(G, S ou D ) ; si ncessaire, la sixime transition modifie la nouvelle case pointe par la
tte et se dplace ventuellement (G ou S si lon est sur la case de droite, D ou S si on
est sur la case de gauche). On passe galement dans un nouvel tat selon la nouvelle
position de la tte de M et son tat aprs c tapes.
Ainsi, c 6/ tapes de M sont simules par 6 tapes de M . En comptant la phase
initiale de recopie de lentre x sur un ruban de travail supplmentaire, le temps de

calcul de M (x) est major par (1 + )n + t (n).

Un peu de recul
Il est crucial de garder lesprit que la complexit dun problme est une mesure asymptotique, un temps dexcution lorsque la taille de lentre tend vers linfini. Ainsi, pour
montrer quun langage A est dans DTIME(n 2 ), il suffit par exemple de donner un algorithme pour A qui fonctionne en temps 3n 2 pour n suffisamment grand. Peu importe son
comportement si lentre est petite : sil fonctionne en temps 3n 2 pour n suffisamment
grand, alors il existe une constante c tel quil fonctionne en temps c n 2 pour tout n .
Puisque la plupart du temps, la valeur de la constante nous importe peu, nous dirons
simplement que lalgorithme fonctionne en temps O(n 2 ).
En consquence, dans nombre de raisonnements nous nous intresserons seulement aux
entres suffisamment grandes.

2.1.2

Thorme de hirarchie

Nous allons maintenant voir lun des rsultats fondateurs de la complexit : le thorme de
hirarchie en temps dterministe. Il sagit de montrer que lon peut rsoudre strictement
plus de problmes si lon dispose de plus de temps, ce qui nest pas trs surprenant. Pour
formaliser cela, nous devons introduire le concept de fonction constructible en temps.

36

Chapitre 2. Considrations de base sur le temps

2-F

Dfinition (fonction constructible en temps)

Une fonction t : N N est constructible en temps sil existe une constante et une machine
de Turing M qui, sur lentre 1n (lentier n en unaire) renvoie 1 t (n) (lentier t (n) en unaire)
en temps t (n).
En quelque sorte, les fonctions constructibles en temps sont des fonctions t : N N
raisonnables qui ont de bonnes proprits. En ralit, la plupart des fonctions que
nous utilisons sont constructibles en temps. En voici quelques exemples.
2-G

Exemple Les fonctions suivantes t : N N sont constructibles en temps :


t (n) = c pour une constante c N ;
t (n) = n ;
c

t (n) = 2n pour une constante c N ;


de plus, si t1 et t2 sont constructibles en temps, alors il en est de mme de t1 + t2
et t1 t2 : ainsi, tout polynme t N[n] est constructible en temps.

. 2-H

Exercice
Montrer que les fonctions ci-dessus sont constructibles en temps.

. 2-I

Exercice
Montrer quune fonction constructible en temps f (n) telle que f (n) = o(n) est
ultimement constante.
Indication : une machine fonctionnant en temps o(n) se comporte de la mme faon sur
les entres 1n et 1n+1 pour n suffisamment grand.

Le rle des fonctions constructibles en temps sillustre par exemple dans le thorme de
hirarchie suivant : une machine disposant de plus de temps peut dcider plus de choses.
Cest nouveau un rsultat de Hartmanis et Stearns [HS65] mais sous la forme qui suit
il est d Hennie et Stearns [HS66] grce leur machine universelle avec ralentissement
logarithmique vue au thorme 1-S.
2-J

Thorme (hirarchie en temps dterministe)

Soit f : N N et g : N N des fonctions telles que f (n) = 0 (pour tout n N), g est
constructible en temps et f log f = o(g ). Alors DTIME( f (n)) DTIME(g (n)).
Ide de la dmonstration Il sagit de construire un langage L DTIME(g (n)) tel que
L DTIME( f (n)). Pour cela, nous allons faire en sorte que toute machine fonctionnant

2.1. Temps dterministe

37

en temps f (n) et cense reconnatre L se trompe sur au moins une entre. Dans la
ligne des paradoxes logiques clbres, on utilisera lauto-rfrence par une question de
la forme est-ce quune machine M sur son propre code rejette en temps f (n) ? , sur
laquelle toute machine fonctionnant en temps f (n) doit se tromper. Modulo quelques
dtails techniques, le langage L sera lensemble des machines M pour lesquelles la
rponse la question prcdente est positive.
Pour dcider L, il faudra simuler une machine fonctionnant en temps f (n) par une
machine universelle, ce qui lui prend O( f (n) log f (n)) tapes (thorme 1-S), do la
condition du thorme.
Dmonstration Nous aimerions dfinir L = {M | M (M ) rejette en temps f (n)}
o M dsigne une machine de Turing, mais nous ne savons pas dcider ce langage en
temps g (n) ( cause de la constante M dpendant de M dans le thorme 1-S). En
gardant la mme ide, il va falloir tre lgrement plus subtil. On va dabord ajouter
un mot x quelconque lentre du problme (donc travailler sur lentre (M , x) la
place de M ) pour pouvoir agrandir arbitrairement la taille de lentre, puis dfinir le
langage en termes de fonctionnement dune machine.
Soit V la machine suivante sur lentre (M , x) :
excuter U (M , (M , x)) pendant g (n) tapes, o U est la machine universelle du thorme 1-S et n = |(M , x)|
(cest--dire quon simule M (M , x) tant que la simulation prend
moins de g (n) tapes) ;
si U na pas termin son calcul, alors rejeter ;
sinon, accepter ssi U rejette.
On note L le langage reconnu par V .
On remarquera que V calcule dabord g (n) pour savoir quand arrter lexcution de
U : puisque g est constructible en temps, cela prend O( g (n)) tapes. Puis lexcution
de U prend nouveau g (n) tapes, donc en tout V fonctionne en temps O(g (n)) :
ainsi, L DTIME( g (n)).
Montrons maintenant que L DTIME( f (n)). Soit M un machine fonctionnant en
temps f (n). Ainsi U simule M en temps M f (n) log f (n) (o M est une constante
dpendant seulement de M ). Pour n assez grand, par hypothse
g (n) M f (n) log f (n),

donc pour x assez grand, la simulation de M par U se termine avant g (n) tapes, donc
V (M , x) accepte ssi M (M , x) rejette. Ainsi, M se trompe sur lentre (M , x) et

ne reconnat donc pas L.

2-K

Remarques

Nous verrons au thorme 6-O une astuce permettant de rduire un peu lcart

38

Chapitre 2. Considrations de base sur le temps


entre les fonctions f et g dans le thorme prcdent (cest--dire obtenir mieux
que f log f = o(g )). On pourrait galement essayer de construire une machine
universelle plus efficace que celle du thorme 1-S, mais il sagit dune question
ouverte comme on la vu (remarque 1-T).
Si lon se restreint aux machines de Turing ayant toutes exactement k rubans de travail pour k 2 fix, alors Frer [Fr82] montre un thorme de hirarchie optimal,
cest--dire sans le facteur log( f (n)).

Le thorme de hirarchie est trs intuitif puisquil nous apprend quen disposant de
plus de temps de calcul, on peut rsoudre plus de problmes. Cependant, lhypothse de
constructibilit en temps de la fonction g est cruciale : en effet, le rsultat suivant montre
ce que lon peut faire sans supposer g constructible. Il est d Trakhtenbrot [Tra64] en
1964 (rdig en russe) et a t redcouvert par Borodin [Bor72] en 1972 pour le monde
occidental sous le nom de Gap theorem .
2-L

Thorme (de la lacune)

Il existe une fonction f : N N telle que f (n) n et DTIME( f (n)) = DTIME(2 f (n) ).
Ide de la dmonstration Lide est de dfinir la fonction f de sorte quaucune machine
de Turing ne sarrte en un temps compris entre f (n) et 2 f (n) , ce qui implique bien
sr quil ny a aucun langage dans DTIME(2 f (n) ) \ DTIME( f (n)).
Dmonstration Si M est une machine, on note M son alphabet dentre. La proprit
suivante sera vrifie : pour tout n N, aucune machine M telle que |M | n et
|M | n ne sarrte sur une entre de taille n en un temps compris entre f (n) et
n2 f (n) .
Posons arbitrairement f (0) = 0 et dfinissons f (n) pour un n > 0 donn. Pour cela
on considre la suite (ui )i 1 dfinie par u1 = n et ui +1 = n2 ui + 1 : ainsi, les intervalles
[ui , n2 ui ] forment une partition de [n, +[. Soit M une machine telle que |M | n
et |M | n et soit x M de taille n . Si M (x) ne sarrte pas, alors M ne dcide pas de
langage. Sinon, M (x) sarrte en un temps tM ,x : alors soit tM ,x < n , soit tM ,x [ui , 2 ui ]
pour un certain i .
Il y a 2n+1 1 machines M telles que |M | n et il y a n n mots de taille n dans
M (car |M | n ), donc il y a < n n 2n+1 valeurs tM ,x distinctes. On en dduit que lun
des intervalles [ui , n2 ui ], pour 1 i n n 2n+1 , ne contient aucun tM ,x . Si [uk , n2 uk ] est
un tel intervalle, on dfinit f (n) = uk (on remarquera que f (n) n puisque u1 = n ).
Ainsi, si |M | n et |M | n , alors pour tout mot x M de taille n , M (x) ne sarrte
pas en un temps compris entre f (n) et n2 f (n) .
Maintenant que f est dfinie, soit L DTIME(2 f (n) ). Alors une machine M reconnat
L en temps 2 f (n) pour une certaine constante . Pour n suffisamment grand, on
a |M | n , |M | n et 2 f (n) n2 f (n) . Donc, pour |x| suffisamment grand, M (x)
ne sarrte pas en un temps compris entre f (|x|) et |x|2 f (|x|) : puisquelle sarrte en un
temps < |x|2 f (|x|) , on en dduit que M (x) doit sarrter en un temps < f (|x|). Do

L DTIME( f (n)).

2.1. Temps dterministe

. 2-M

39

Exercice
Montrer quon peut prendre f strictement croissante dans le thorme ci-dessus.
Indication : modifier la valeur de dpart de la suite (ui ) dans la dmonstration.

2-N Remarque Le nom de ce thorme contre-intuitif vient du trou quil y a


entre f (n) et 2 f (n) , intervalle dans lequel on ne trouve aucun langage. Rappelons que f
nest pas constructible en temps, sinon on contredirait le thorme de hirarchie.
En ralit, nimporte quelle fonction s : N N conviendrait la place de n 7 2n (cest-dire DTIME( f (n)) = DTIME(s ( f (n))) pour une fonction f construite comme ci-dessus),
cest--dire quon peut rendre le trou aussi grand que lon veut. Ce thorme est habituellement donn pour une fonction s calculable quelconque (notion que nous navons
pas dfinie) ; dans ce cas, f est elle-mme calculable.

2.1.3

Temps polynomial et temps exponentiel

Nous pouvons maintenant dfinir deux classes de complexit qui joueront un rle important par la suite. Lide de considrer comme notion dalgorithmes efficaces les algorithmes fonctionnant en temps polynomial, remonte aux articles de Cobham [Cob65] et
dEdmonds [Edm65] en 1965.
2-O

Dfinition (temps polynomial et exponentiel)

La classe P est lensemble des langages reconnus en temps polynomial, cest--dire


P = DTIME(n O(1) ) = kN DTIME(n k ).

La classe EXP est lensemble des langages reconnus en temps exponentiel, cest--dire
EXP = DTIME(2n

O(1)

) = kN DTIME(2n ).

Enfin, une dernire classe que lon tudiera moins est note E, il sagit de lensemble des
langages reconnus en temps exponentiel avec exposant linaire, cest--dire :
E = DTIME(2O(n) ) = kN DTIME(2kn ).

On a bien sr P E EXP. Nous pouvons dores et dj appliquer le thorme de


hirarchie 2-J pour sparer ces classes.

40

Chapitre 2. Considrations de base sur le temps

2-P

Corollaire
P EXP

Dmonstration Il suffit de remarquer que P DTIME(2n ) puis, par le thorme 2-J,


2
2

que DTIME(2n ) DTIME(2n ) et enfin que DTIME(2n ) EXP.

. 2-Q

Exercice
Sparer de mme E et P.

2-R

Exemple Voici quelques exemples de problmes dans P et dans EXP.


1. MULTIPLICATION D'ENTIERS :
entre : deux entiers a et b donns en binaire ; un entier k ;
question : le k -me bit du produit a b vaut-il 1 ?
Ce problme est dans P : il suffit deffectuer la multiplication a b grce lalgorithme de lcole primaire et de regarder le k -me bit du rsultat. Cela prend un
temps polynomial.
2. MULTIPLICATION DE MATRICES :
entre : deux matrices A et B de taille m m coefficients entiers donns en
binaire ; un couple (i , j ) avec 1 i , j m ; enfin, un entier k ;
question : le k -me bit du coefficient (i , j ) du produit AB vaut-il 1 ?
Ce problme est dans P : le coefficient (i, j ) de AB nest rien dautre que la somme
des m produits ai ,k bk, j , ce qui se calcule en temps polynomial.
3. ACCESSIBILIT :
entre : un graphe orient G et deux sommets s et t ;
question : existe-t-il un chemin dans G de s t ?
Ce problme est dans P : il suffit de faire un parcours du graphe en partant de s
et de voir si lon atteint t (parcours en largeur ou en profondeur, peu importe).
4. COUPLAGE PARFAIT :
entre : un graphe non orient G ;
question : G admet-il un couplage parfait ?
Un couplage parfait est un ensemble dartes tel que chaque sommet est reli
exactement une arte de cet ensemble. Ce problme est dans P mais lalgorithme
polynomial nest pas trivial et est d Edmonds [Edm65].

2.1. Temps dterministe

41

5. PRIMALIT :
entre : un entier N donn en binaire ;
question : N est-il premier ?
Ce problme est dans P mais la dmonstration nest pas vidente
(lalgorithme
p
naf consistant essayer tous les diviseurs potentiels jusqu N est exponentiel
puisque la taille de lentre est n = log N ) : il a fallut attendre Agrawal, Kayal et
Saxena [AKS04] pour lobtenir.
6. RANGEMENT :
entre : des entiers p1 , . . . , pn N en binaire (les poids de n objets) et deux entiers m, p en binaire (le nombre de botes de rangement et le poids maximal
que chacune peut contenir) ;
question : peut-on ranger les n objets dans les m botes en respectant le poids
maximal p de chaque bote ?
Ce problme est dans EXP car il suffit de tester toutes les possibilits pour ranger
les objets (cest--dire pour chaque i , dcider dans laquelle des m botes mettre
lobjet i ) et de voir si lune dentre elles respecte les contraintes. Il y a m n = 2n log m
possibilits, donc ce calcul prend un temps exponentiel en la taille de lentre. En
ralit, bien que ce problme ne soit probablement pas dans P, on peut quand
mme faire mieux que EXP car il appartient la classe NP que nous verrons par
la suite (il est NP-complet). Il est appel BIN PACKING en anglais.
7. ARRT EXP :
entre : le code dune machine M et un entier k en binaire ;
question : est-ce que M () sarrte en k tapes ?
Ce problme est dans EXP car on peut simuler M () pendant k tapes : puisque
la taille de lentre k est log k , cela prend un temps exponentiel. Nous navons
pas encore vu cette notion, mais mentionnons au passage que ce problme est
EXP-complet.
8. Un problme de EXP plus naturel est, sur lentre C , de calculer la valeur
du circuit boolen D dont le code est dcrit par le circuit boolen C donn en
entre (nous dfinirons les circuits au chapitre 5). Puisque D peut tre de taille
exponentielle par rapport C , ce calcul prend un temps exponentiel. Comme le
prcdent, ce problme est EXP-complet (exercice B-C).

. 2-S

Exercice
Justifier plus rigoureusement que ces problmes sont chacun dans la classe annonce.
Pour le problme du couplage parfait, voir [Edm65] ou un livre dalgorithmique
comme [Cor+10]. Pour le problme de la primalit, voir [AKS04].

42

Chapitre 2. Considrations de base sur le temps


Un peu de recul

La classe P est gnralement prsente comme celle des problmes rsolubles efficacement . Bien quen pratique on sache rsoudre rapidement certains problmes hors de
P, et par ailleurs quil soit difficile dadmettre quun algorithme fonctionnant en temps
1 000 000n 1 000 soit efficace, il nen reste pas moins que cette prsentation est trs souvent
pertinente : la plupart des problmes naturels dans P ont un algorithme en n k pour
un petit exposant k et pour la plupart des problmes naturels hors de P, on ne connat
pas dalgorithme efficace.
On verra plus tard que les algorithmes probabilistes polynomiaux ajoutent encore la
confusion. Toujours est-il que la classe P est robuste (bonnes proprits, notamment
de clture) et donne un bon cadre dtude en complexit.
Notre premire proprit de P sera la clture de P par changements finis. Si A et B sont
deux langages, rappelons que leur diffrence symtrique AB est lensemble des mots
contenus dans exactement un seul des deux ensembles, cest--dire AB = (A\B)(B \A).

2-T

Lemme

Soit L et L deux langages sur un alphabet . Si L P et LL est fini (cest--dire que L


et L diffrent seulement en un nombre fini de mots), alors L P.
Ide de la dmonstration La machine pour L va contenir dans son code la liste (finie)
des mots de LL . Pour dcider si x L , on dcide dabord si x L puis on corrige
ventuellement la rponse en testant si x appartient la liste des mots de LL .
Dmonstration Soit {x1 , . . . , x m } lensemble des mots de LL . Soit M une machine
polynomiale pour le langage L. Voici une machine M pour L sur lentre x :
excuter M (x) ;
si x {x1 , . . . , x m }, alors accepter ssi M (x) rejette ;
sinon accepter ssi M (x) accepte.
Lexcution de M (x) prend un temps polynomial. Pour tester si x {x1 , . . . , x m }, on
compare x chacun des mots xi , lesquels sont cods en dur dans le code de la
machine M . Chaque comparaison prend un temps linaire ; puisque le nombre de
comparaisons est fix une fois pour toute, le test x {x1 , . . . , x m } prend lui aussi un
temps linaire. Au total, M fonctionne en temps polynomial et reconnat L , donc

L P.

2.2. Temps non dterministe

2.2

43

Temps non dterministe

Dj dans larticle de Turing [Tur37], une variante des machines de Turing est considre
pour modliser les choix ou lintuition dans la conduite dune preuve mathmatique
(en effet, lpoque Hilbert demandait sil tait possible dautomatiser le processus de
preuve). Ce concept na pas t dvelopp plus avant par Turing mais il a ensuite permis
la dfinition dautres classes de complexit en temps ayant des proprits particulirement
intressantes. Nous allons donc introduire cette variante de machines appeles non dterministes car elles ont plusieurs choix possibles chaque transition.

2.2.1

Machines non dterministes

Jusqu prsent, les machines de Turing que nous avons vues navaient aucun choix : la
transition quelles effectuaient tait dtermine uniquement par leur tat et les cases lues
par la tte. Cest pourquoi on les appelle machines dterministes. Si en revanche, chaque
tapes plusieurs transitions sont possibles, la machine a plusieurs excutions possibles et
est appele non dterministe.
2-U

Dfinition (machine de Turing non dterministe)

Une machine de Turing N = (, , B, Q, q0 , qa , q r , ) est dite non dterministe si nest


plus une fonction mais une relation :
((Q \ {qa , q r }) k1 ) (Q k1 {G, S, D}k ).

chaque tape, plusieurs transitions sont possibles : tout lment


((q, (1 , . . . , k1 )), (r, (2 , . . . , k ), d ))

signifie que de ltat q en lisant (1 , . . . , k1 ) la machine N peut aller dans ltat r , crire
(2 , . . . , k ) et se dplacer dans la direction d .
Ainsi, plutt quune suite de configurations, le calcul dune machine de Turing non dterministe est un arbre de configurations (cf. figure 2.2) puisquune configuration a plusieurs
successeurs possibles. Dans cet arbre, certaines configurations peuvent ventuellement
apparatre plusieurs fois si elles sont atteintes par diffrents chemin.
2-V Remarque En supposant qu chaque tape, seulement deux transitions sont
possibles (ce qui ne change pas fondamentalement le modle et permet de dfinir les
mmes classes), on peut aussi voir une machine non dterministe comme une machine
ayant deux fonctions de transition dterministes.

44

Chapitre 2. Considrations de base sur le temps


c0

temps

Figure 2.2 Arbre de calcul dune machine non dterministe.

2-W

Dfinition

Une excution dune machine non dterministe N est une suite de configurations
compatible avec la relation de transition , dune configuration initiale une configuration finale.
Une excution de N est aussi appele chemin car il sagit dun chemin dans larbre
de calcul, de la racine une feuille.
Le temps de calcul dune machine de Turing non dterministe est le temps maximal
dune de ses excutions, cest--dire la hauteur de son arbre de calcul.
De mme, lespace utilis par une machine de Turing non dterministe est lespace
maximal utilis par lune de ses excutions.

Voici maintenant le mode dacceptation dune machine non dterministe.


2-X

Dfinition

Le langage reconnu par une machine non dterministe N sur lalphabet est lensemble
des mots x tels quil existe un chemin acceptant dans le calcul N (x).

Un peu de recul
Ainsi, pour accepter un mot x , il faut et il suffit quil y ait au moins une excution qui
mne un tat acceptant dans larbre de calcul de N (x). En dautres termes, un mot
x est rejet ssi aucun chemin nest acceptant dans larbre de calcul de N (x). Nous re-

2.2. Temps non dterministe

45

viendrons sur lasymtrie entre acceptation et rejet, qui est cruciale pour comprendre le
non-dterminisme.
Lorsque x est accept, on dit de manire image que la machine devine le chemin
menant ltat acceptant. Cela correspond lide de lintuition guidant le droulement
dune preuve mathmatique. Mais attention, ce nest quune image, la machine ne devine
rien, cest simplement son mode dacceptation qui est dfini ainsi.

2-Y Remarque Contrairement aux machines dterministes pour lesquelles on pouvait aisment dfinir la notion de fonction calcule par une machine (mot crit sur le
ruban de sortie, voir la dfinition 1-E), il nest pas vident den faire autant pour les machines non dterministes. En effet, plusieurs chemins peuvent mener plusieurs rsultats
diffrents. Nous nous contenterons donc dtudier des machines en mode acceptation .

2.2.2

Langage de haut niveau

Une machine de Turing dterministe est bien entendu un cas particulier dune machine
non dterministe. Pour capturer la puissance du non-dterminisme, nous allons ajouter
notre langage de haut niveau du paragraphe 1.2.4 une instruction deviner. Dans un premier temps, cette instruction permet de deviner un bit b {0, 1}. Cela correspond deux
possibilits pour la relation de transition : choisir la premire transition si b = 0 et la seconde si b = 1. De cette manire, nous dcrivons le calcul de la machine non dterministe
le long de chaque chemin, le chemin courant tant dcrit par la suite dembranchements
devins.
2-Z Exemple Voici une machine non dterministe pour dcider si le nombre x est
compos (non premier), cest--dire pour le problme COMPOS suivant :
entre : un entier x = x1 . . . xn donn en binaire ;
question : x est-il compos ?
Machine N pour COMPOS :
Pour i de 1 n faire

deviner bi {0, 1},

deviner bi {0, 1} ;

on considre les nombres b = b1 . . . bn et b = b1 . . . bn crits en


binaire ;
vrifier que 1 < b < x et b b = x : accepter ssi les deux
conditions sont runies.

46

Chapitre 2. Considrations de base sur le temps

Le calcul N (x) a un chemin acceptant ssi x est compos.


Remarquons quen un algorithme, on a dcrit 22n chemins puisquon a devin 2n bits.
Plutt que deviner des bits bi {0, 1}, nous pourrions plus gnralement deviner une
lettre de lalphabet de travail , ce qui correspondrait | | transitions possibles. Par ailleurs,
trs souvent nous voulons deviner un mot plutt que les lettres une par une, comme ici o
nous tions intresss par les mots b et b et non par les lettres bi et bi . Nous abrgerons la
boucle prcdente par une instruction deviner tendue aux mots comme dans lexemple
suivant.
2-AA Exemple On rcrira la machine de lexemple prcdent avec une instruction
deviner tendue aux mots :
deviner b {0, 1}n ;
deviner b {0, 1}n ;
accepter ssi 1 < b < x et b b = x .

2.2.3

Machine non dterministe universelle

Comme pour les machines dterministes, on peut construire une machine non dterministe universelle, cest--dire capable de simuler une machine non dterministe quelconque donne par son code. Mais en utilisant le non-dterminisme, on peut rendre la
machine plus rapide (linaire) par rapport au cas dterministe, au prix dun espace potentiellement beaucoup plus grand (proportionnel au temps dexcution). Notons quon ne
sintresse qu lacceptation ou au rejet du mot par la machine. La dmonstration sinspire en partie de celle de la proposition 1-Q pour le cas dterministe, cest pourquoi nous
ne donnons que lide dtaille de la preuve.
2-AB

Proposition (machine non dterministe universelle optimale en temps)

Il existe une machine non dterministe Unondet 6 rubans, dalphabet dentre U = {0, 1}
et dalphabet de travail U = {0, 1, B}, telle que pour toute machine non dterministe N
sur les alphabets N et N :
il existe un morphisme N : N U tel que pour tout mot x N ,
Unondet (N , N (x)) accepte ssi N (x) accepte ;
il existe une constante N telle que pour tout x N , si N (x) sarrte en temps t ,
alors Unondet (N , N (x)) sarrte en temps N t (et utilise un espace potentiellement beaucoup plus grand que lespace utilis par N (x)).
Ide de la dmonstration Ce qui ralentissait la machine universelle dterministe de la
proposition 1-Q taient les allers-retours ncessaires de la tte afin daller lire les cases
pointes par les diffrentes ttes de lecture de la machine simule. Afin dobtenir ici un

2.2. Temps non dterministe

47

temps linaire, plutt que daller chercher ces cases de part et dautre du ruban, nous
allons deviner leur contenu et vrifier plus tard que ce contenu tait valide. Nous
donnons maintenant un peu plus de dtails. En particulier, nous allons voir quon ne
peut se contenter deffectuer la vrification la fin du calcul car le contenu devin
pourrait mener un calcul infini : il faut donc vrifier rgulirement quon ne se
trompe pas.
De la mme manire que dans le cas dterministe avec le lemme 1-O, on calcule dans
un premier temps le code dune machine N quivalente N (via un morphisme N )
mais ayant pour alphabet de travail U = {0, 1, B}. Le code de N est maintenant crit
sur le premier ruban de travail. On note k le nombre de rubans de N .

N , N (x)

(ruban dentre)

(ruban de travail 1)

contenu devin des rubans de N

(ruban de travail 2)

tat des ttes et contenu des cases lues

(ruban de travail 3)

vrification du contenu devin

(ruban de travail 4)

sortie de N

(ruban de sortie)

Figure 2.3 Machine universelle non dterministe 6 rubans simulant N (x).

La fonction des 6 rubans de Unondet est illustre la figure 2.3 et ressemble la construction de la machine universelle dterministe de la proposition 1-Q : en particulier, de la
mme faon, nous regroupons tous les rubans de travail de N sur le deuxime ruban
de travail de Unondet . Mais ce ruban joue un rle lgrement diffrent : il contiendra le
contenu devin des rubans de travail de N et non le contenu rel. Par ailleurs, Unondet
possde un quatrime ruban de travail qui servira vrifier que les valeurs devines
taient correctes.
Voici comment Unondet simule une tape de N :
pour chaque tte dun ruban de travail de N , Unondet devine le contenu de la case
courante ;
elle note les valeurs devines sur son deuxime ruban de travail la suite des
contenus prcdents (pour pouvoir les vrifier la fin du calcul) ;
elle devine un numro de transition effectuer ;
elle inscrit ce numro de transition sur son deuxime ruban de travail ( la suite
du contenu devin des cases quelle vient dcrire) ;

48

Chapitre 2. Considrations de base sur le temps


selon ltat courant stock sur le troisime ruban de travail et selon le contenu
devin des cases, elle effectue la transition devine en lisant le code de N sur son
premier ruban de travail ;
enfin, elle met jour ltat des ttes sur son troisime ruban de travail.
Le deuxime ruban de travail alterne ainsi des blocs de (k 2) cases pour les contenus
devins et des blocs contenant le numro de la transition effectue.
chaque fois que le nombre m dtapes simules atteint une puissance de deux (cest-dire aprs la premire tape, aprs la deuxime, aprs la quatrime, aprs la huitime,
etc.), on vrifie que les valeurs devines taient correctes. Pour cela, on procde de
la faon suivante pour chacun des k 2 rubans de travail de N successivement (on
dsignera par i le numro du ruban de travail en train dtre trait, pour 1 i k 2) :
en suivant les valeurs devines et les transitions choisies sur le deuxime ruban
de travail, on effectue une nouvelle fois, depuis le dbut, la simulation des m
premires tapes de N (en lisant son code sur le premier ruban de travail) ;
chaque tape, on met jour le quatrime ruban de travail pour quil reflte le
contenu du i -me ruban de travail de N , cest--dire quon modifie ses cases et
on dplace la tte selon les transitions effectues ;
si on rencontre une incompatibilit avec les valeurs devines (la valeur devine
ne correspond pas la valeur relle inscrite sur le ruban), alors on rejette.
Si, aprs avoir vrifi les k 2 rubans de travail, aucune incompatibilit na t trouve :
on accepte si le calcul a accept au cours des m tapes simules ; on rejette si le calcul a
rejet au cours des m tapes simules ; sinon on reprend la phase de simulation de N
en devinant le contenu des cases partir de ltape m + 1 (lhistorique tant conserv
sur le deuxime ruban de travail).
Cette vrification prend un temps O(mk) puisquil faut resimuler (k 2) fois les m
tapes effectues.
De cette manire, les seuls chemins acceptants sont ceux pour lesquels les valeurs
devines taient compatibles avec le vrai calcul de N (cest--dire que la simulation
est correcte) et pour lesquels N accepte. Ainsi, N (x) possde un chemin acceptant
ssi Unondet (N , N (x)) possde un chemin acceptant.
Enfin, le temps de calcul de Unondet est rparti ainsi :
un temps constant (dpendant de N mais pas de x ) pour calculer N ;
un temps constant pour chaque tape de N (deviner le contenu des cases et la
transition puis leffectuer) ;

un temps O(k dj=0 2 j ) pour les vrifications, o d est la plus petite valeur telle
que la simulation termine ou provoque une incompatibilit en 2d tapes : en
particulier, 2d < 2t .
En tout, Unondet prend un temps linaire N t , o N dpend de N (et en particulier
du nombre de rubans). On notera que lespace utilis est galement proportionnel

2.2. Temps non dterministe

49

t car on inscrit chaque tape le contenu des cases devines sur le deuxime ruban de

travail.

2-AC Remarque On pourrait galement adapter la preuve du thorme 1-S pour


obtenir un temps de simulation O(t log t ) et un espace O(s ) : on perd en temps mais on
gagne en espace.

. 2-AD

Exercice

Montrer la remarque prcdente.

2.2.4

Classes en temps non dterministe

Les machines non dterministes nous permettent de dfinir les classes NTIME, analogues
non dterministes de DTIME.
2-AE

Dfinition (classes de complexit en temps non dterministe)

Pour une fonction t : N N, la classe NTIME(t (n)) est lensemble des langages
reconnus par une machine de Turing non dterministe N telle quil existe une
constante pour laquelle, sur toute entre x , N (x) fonctionne en temps t (|x|)
(cest--dire que toute branche de son arbre de calcul sur lentre x est de taille majore par t (|x|)).
Si T est un ensemble de fonctions, alors NTIME(T ) dsigne t T NTIME(t (n)).

Les classes NTIME sont closes par union et intersection.


2-AF

Proposition

Si L1 , L2 NTIME(t (n)) alors L1 L2 NTIME(t (n)) et L1 L2 NTIME(t (n)).


Dmonstration Soit N1 et N2 des machines non dterministes pour L1 et L2 fonctionnant en temps 1 t (n) et 2 t (n) respectivement. On trouvera une illustration des arbres
de calcul la figure 2.4.

50

Chapitre 2. Considrations de base sur le temps


b =1

b =2

N1
N1

N2

acc

L1 L2

acc

N2

N2

N2
acc

L1 L2

Figure 2.4 Union et intersection pour des machines non dterministes.

Pour reconnatre L1 L2 , on considre la machine N suivante sur lentre x :


deviner b {1, 2} ;
excuter N b (x) ;
accepter ssi le chemin simul de N b (x) accepte.
On notera que excuter N b (x) signifie que le comportement (ou larbre de calcul)
de N est exactement celui de N b : cela revient deviner un chemin et simuler N b le
long de ce chemin.
Si x L1 L2 alors x L b pour un certain b {1, 2}. Dans le sous-arbre du calcul
de N correspondant ce b , il y a un chemin acceptant puisque N b (x) accepte. Donc
N (x) accepte x puisquelle a un chemin acceptant. Rciproquement, si x L1 L2
alors il ny a pas de chemin acceptant dans N (x) car il ny en a ni dans N1 (x) ni dans
N2 (x). Le temps dexcution de N (x) est O(1) + max(1 t (n), 2 t (n)), on en dduit
que L1 L2 NTIME(t (n)).
Pour reconnatre L1 L2 , on considre la machine N suivante sur lentre x :
excuter N1 (x) ;
excuter N2 (x) ;
accepter ssi les chemins simuls de N1 (x) et N2 (x) acceptent
tous les deux.
Si x L1 L2 alors N1 (x) et N2 (x) ont tous deux des chemins acceptants ; dans larbre
de N (x), emprunter dabord le chemin acceptant de N1 (x) puis celui de N2 (x) fournit
un chemin acceptant de N (x). Rciproquement, si x L1 L2 alors N (x) na pas de
chemin acceptant car N1 (x) ou N2 (x) nen a pas. Le temps dexcution de N (x) est

(1 + 2 )t (n) donc L1 L2 NTIME(t (n)).

2.2. Temps non dterministe

51
Un peu de recul

On remarquera que la clture de NTIME par complmentaire ne figure pas dans la proposition prcdente. La raison en est simple : il sagit dune question ouverte.
La preuve dans le cas dterministe ne convient pas car le contraire de il existe un chemin
acceptant est tous les chemins rejettent , qui nest plus de la mme forme. Cest un
point crucial du non-dterminisme : prendre le complmentaire change la nature du
problme car on passe dun quantificateur existentiel un quantificateur universel. Nous
tudierons cette question plus en dtail la section 2.2.8 et au chapitre sur la hirarchie
polynomiale.
Il faut prendre le temps de se convaincre par soi-mme quil nest probablement pas
possible de passer au complmentaire sans utiliser beaucoup plus de temps de calcul, et
bien garder lesprit quon ne peut pas simplement inverser la rponse.
En revanche, si lon autorise beaucoup plus de temps de calcul alors on peut prendre le
complmentaire. Plus gnralement, on peut simuler le fonctionnement dune machine
de Turing non dterministe par une machine dterministe fonctionnant en un temps
exponentiellement plus lev.
2-AG

Proposition

Pour toute fonction t : N N, DTIME(t (n)) NTIME(t (n)) DTIME(2O(t (n)) ).


Ide de la dmonstration Pour simuler une machine non dterministe fonctionnant
en temps t (n) par une machine dterministe, on parcourt tous les chemins de calcul
et on dtermine si lun dentre eux accepte. Puisquil y a un nombre exponentiel de
chemins, la machine dterministe prend un temps 2O(t (n)) .
Dmonstration La premire inclusion dcoule de lobservation quune machine dterministe est un cas particulier de machine non dterministe.
Pour la seconde inclusion, on simule une machine non dterministe N fonctionnant
en temps t (n) par une machine dterministe de la faon suivante :
pour tout chemin y de taille t (n) faire

simuler N (x) sur le chemin y ,

accepter si la simulation accepte ;

rejeter (ici, tous les chemins ont rejet).


Pour y fix, le corps de boucle prend un temps dterministe O(t (n)). Il reste compter
le nombre de chemins y tester. Chaque transition de la machine non dterministe a
1. Ici on suppose pour simplifier que t (n) est constructible en temps ; lobjet de lexercice 2-AH est de
voir que cette condition nest pas ncessaire.

52

Chapitre 2. Considrations de base sur le temps


au plus R = |Q|| |k1 3k possibilits (il sagit du choix dun tat, des lettres crire et
du dplacement des ttes). Ainsi il y a au plus Rt (n) chemins y possibles, soit 2t (n) log R .
Puisque R est une constante indpendante de lentre x (elle dpend seulement de N ),

le temps mis par la machine dterministe est t (n)2O(t (n)) , soit 2O(t (n)) .

. 2-AH

Exercice

Dans la dmonstration qui prcde, nous avons suppos que la fonction t (n) est
constructible en temps. Refaire la dmonstration sans cette hypothse.
Indication : construire chaque chemin y au fur et mesure jusqu ce que la simulation
de N sarrte ; effectuer alors un backtracking pour reprendre lnumration des autres
chemins y .

2.2.5

Thorme de hirarchie en temps non dterministe

Il nest gure surprenant que les classes en temps non dterministe admettent galement
un thorme de hirarchie : on sait rsoudre plus de problmes si lon dispose de plus de
temps. Il est mme plus serr que son analogue dterministe. Cependant, la preuve
est plus subtile : on ne peut plus procder comme dans le cas dterministe puisquon
ne sait pas prendre efficacement la rponse oppose une machine non dterministe,
comme nous lavons dj vu Le premier thorme de hirarchie non dterministe est
d Cook [Coo72] mais avec un plus grand cart entre f et g ; la version ci-dessous a
t montre par Seiferas, Fischer and Meyer [SFM78] et la preuve que nous donnons est
due k [k83].
2-AI

Thorme (hirarchie en temps non dterministe)

Soit f , g : N N des fonctions telles que f (n) = 0 (pour tout n N), g est croissante et
constructible en temps et f (n + 1) = o( g (n)). Alors NTIME( f (n)) NTIME( g (n)).
Ide de la dmonstration Puisquon ne sait pas prendre le complmentaire efficacement dans un calcul non dterministe, on va attendre davoir assez de temps pour
faire une simulation dterministe. Pour cela, il faut attendre de travailler sur une entre de taille exponentielle ; la partie subtile consiste ensuite trouver un moyen de
propager linformation jusqu lentre courante. Le fait dattendre pour prendre le
complmentaire donne le nom de diagonalisation retarde cette mthode.
Dmonstration Nous allons dcrire un langage L NTIME( g (n)) \ NTIME( f (n)), non
pas directement mais en donnant une machine non dterministe V qui reconnat L.
Il sera constitu de triplets (N , 1i , x) : un code de machine non dterministe N , un
entier i donn en unaire et un mot x quelconque. En supposant quune machine N
dcide L en temps O( f (n)), lobjectif est daboutir la chane dgalits suivante (o

2.2. Temps non dterministe

53

k est grand entier) et donc une contradiction :


N (N , , x) = N (N , 1, x) = = N (N , 1k , x) = N (N , , x).

Remarquons tout dabord que pour n assez grand, 2 g (n) 2 g (n1) est une borne suprieure sur le temps de simulation par une machine dterministe fixe dune machine
non dterministe quelconque N fonctionnant en temps O( f (n)) et dont le code est
donn en entre : comme la proposition 2-AG il suffit de simuler de manire dterministe la machine universelle Unondet (proposition 2-AB) qui excute N .
La machine V pour le langage L a le comportement suivant sur lentre (N , 1i , x) de
taille n :
on note m la taille du triplet (N , , x) (correspondant i = 0) ;
si i 2 g (m) alors on simule N (N , , x) de manire dterministe
pendant 2 g (m) tapes dterministes, et on accepte ssi tous les chemins rejettent (on renvoie donc linverse de N (N , , x)) ;
si i < 2 g (m) alors on simule de manire non dterministe
N (N , 1i+1 , x) :

plus prcisment, on excute la machine universelle non dterministe Unondet (N , (N , 1i +1 , x)) pendant g (n) tapes (Unondet est
la machine de la proposition 2-AB).
Puisque g est constructible en temps et croissante, on sait calculer g (m) et g (n) en
temps O(g (n)). Le temps mis par la machine V pour x assez grand est donc :
si i 2 g (m) alors la simulation dterministe de N (N , , x) prend 2 g (m) tapes,
cest--dire moins de i , donc V fonctionne en temps linaire ;
sinon la machine universelle tourne pendant g (n) tapes.
Dans tous les cas , V prend un temps O( g (n)) donc L NTIME( g (n)).
Supposons maintenant que L NTIME( f (n)) pour une certaine fonction f vrifiant
f (n + 1) = o(g (n)) : il existe donc une machine non dterministe N qui reconnat
L en temps f (n). Par hypothse, pour x suffisamment grand, la taille n de lentre
(N , 1i , x) satisfait g (n) > N f (n + 1), o N est la constante de la machine universelle Unondet de la proposition 2-AB. Ainsi, excuter Unondet pendant g (n) tapes
revient effectuer au moins f (n + 1) tapes de N (N , 1i+1 , x) ; puisque N est suppose fonctionner en temps f et que la taille de son entre est ici n + 1, cela signifie
que la simulation de N est complte.
Donc, par dfinition du langage L et pour x suffisamment grand,
N (N , , x) = N (N , 1, x)
2. En effet, les hypothses f (n) = 0, g croissante et constructible en temps, et f (n+1) = o(g (n)) impliquent
g (n) = (n) : cf. exercice 2-AJ.

54

Chapitre 2. Considrations de base sur le temps


puisque sur lentre (N , , x) on simule compltement N (N , 1, x). De mme, tant
que i < 2 g (m) , N (N , 1i , x) = N (N , 1i +1 , x). Finalement, lorsque i = 2 g (m) , on a
N (N , 1i , x) = N (N , , x) puisquon simule N (N , , x) de manire dterministe.
Au final, on a la chane dgalits suivante :
N (N , , x) = N (N , 1, x) = = N (N , 12

g (m)

, x) = N (N , , x),

une contradiction.

. 2-AJ

Exercice

Montrer la proprit mentionne en note de bas de page numro 2 : si g est croissante et constructible en temps, si f (n +1) = o( g (n)), et si pour tout n N f (n) =
0,
alors g (n) = (n).

2.2.6

Temps non dterministe polynomial et exponentiel

Nous passons maintenant la dfinition de deux classes de complexit non dterministes


importantes, NP et NEXP.
2-AK

Dfinition (temps non dterministe polynomial et exponentiel)

La classe NP est lensemble des langages reconnus par une machine non dterministe en
temps polynomial, cest--dire
NP = NTIME(n O(1) ) = kN NTIME(n k ).

La classe NEXP est lensemble des langages reconnus par une machine non dterministe
en temps exponentiel, cest--dire
NEXP = NTIME(2n

O(1)

) = kN NTIME(2n ).

Enfin, une dernire classe que lon tudiera moins est note NE, il sagit de lensemble des
langages reconnus en temps non dterministe exponentiel avec exposant linaire, cest-dire :
NE = NTIME(2O(n) ) = kN NTIME(2kn ).

2-AL Remarque Attention, une erreur souvent commise est de croire que NP signifie non polynomial alors que cest une abrviation pour Nondeterministic Polynomial
time.

2.2. Temps non dterministe

55

2-AM Exemple Voici quelques exemples de problmes dans NP et dans NEXP (nous
verrons dautres problmes NP au chapitre suivant).
1. CLIQUE :
entre : un graphe non orient G et un entier k ;
question : G a-t-il une clique de taille k ?
Une clique de taille k est un ensemble de k sommets tous relis les uns aux
autres. Ce problme est dans NP : une machine non dterministe polynomiale
pour le reconnatre peut deviner un ensemble de k sommets puis vrifier que ces
k sommets sont tous relis entre eux. Nous verrons que ce problme est NPcomplet .
2. SOMME PARTIELLE :
entre : une liste dentiers a1 , . . . , a m et un entier cible t ;
question : existe-t-il une sous-listedont la somme vaut t ? En dautres termes,
existe-t-il S {1, . . . , m} tel que iS ai = t ?
Ce problme est dans NP : il suffit de deviner les lments de lensemble S et de
vrifier si la somme des entiers correspondants vaut t . Il est appel SUBSET SUM
en anglais. Comme le prcdent, ce problme est NP-complet.
3. ARRT NEXP :
entre : le code dune machine non dterministe N et un entier k en binaire ;
question : est-ce que N () sarrte en k tapes ?
Ce problme est dans NEXP car on peut simuler N () pendant k tapes grce
une machine universelle non dterministe : puisque la taille de lentre k est
log k , cela prend un temps exponentiel. Nous navons pas encore vu cette notion,
mais mentionnons au passage que ce problme est NEXP-complet.
4. Un problme de NEXP plus naturel est, sur lentre C , de dcider sil existe
une instanciation des variables satisfaisant le circuit boolen D dont le code est
dcrit par le circuit boolen C donn en entre (nous dfinirons les circuits au
chapitre 5). Puisque D peut tre de taille exponentielle, il sagit de deviner une
instanciation de taille exponentielle et dvaluer le circuit, ce qui se fait dans
NEXP. Comme le prcdent, cest un problme NEXP-complet (exercice B-C).

. 2-AN

Exercice

Justifier plus rigoureusement que ces problmes sont chacun dans la classe annonce.
Pour dcider les deux exemples prcdents de langages de NP, nos machines nutilisaient
leur non-dterminisme que pour deviner un mot, puis elles vrifiaient une proprit facile
sur ce mot. Cette remarque est en fait gnrale : les classes NP et NEXP ont une belle caractrisation utilisant un quantificateur existentiel. On supposera toujours que lalphabet
contient au moins deux symboles nots 0 et 1.

56

Chapitre 2. Considrations de base sur le temps

2-AO

Proposition (caractrisation existentielle de NP et NEXP)

Un langage A est dans NP ssi il existe un polynme p(n) et un langage B P tels


que
x A y {0, 1} p(|x|) (x, y) B.

Un langage A est dans NEXP ssi il existe un polynme p(n) et un langage B P tels
que
x A y {0, 1}2

p(|x|)

(x, y) B.

Le mot y justifiant lappartenance de x A est appel preuve ou certificat.


Ide de la dmonstration Le certificat y correspond au chemin acceptant dans la machine non dterministe reconnaissant le langage A.
Dmonstration Nous faisons en dtail le cas de NP puis verrons comment ladapter
NEXP.
Soit N une machine non dterministe polynomiale reconnaissant A : on suppose
quelle fonctionne en temps q(n). chaque tape, N a le choix entre un nombre
constant R de transitions possibles : R dpend seulement de N , pas de lentre x .
Ainsi, larbre de calcul de N (x) est un arbre de hauteur q(n) et tel que chaque nud a
au plus R fils : un chemin dans un tel arbre peut tre encod par un mot y {0, 1} de
taille q(n)log R (une succession de q(n) numros de fils). Soit p le polynme dfini
par p(n) = q(n)log R.
On dfinit alors B lensemble des couples (x, y) o y {0, 1} p(|x|) est tel que le chemin
encod par y dans le calcul N (x) accepte (si y nencode pas un chemin valide, on
dcrte que (x, y) B ). Puisque x A ssi il existe un chemin acceptant, on a bien
x A y {0, 1} p(|x|) (x, y) B.

Il ne reste plus qu montrer que B P. Pour dcider si (x, y) B , il sagit dexcuter


N (x) le long du chemin y : puisque lon connat le chemin, cela revient excuter une
machine dterministe fonctionnant en temps q(n). Donc B P.
Soit B P reconnu par une machine dterministe M fonctionnant en temps polynomial q(n) et supposons que A soit dfini par
x A y {0, 1} p(|x|) (x, y) B.

Montrons que A NP. Voici une machine non dterministe pour A sur lentre x :
deviner y {0, 1} p(|x|) ;
accepter ssi M (x, y) accepte.

2.2. Temps non dterministe

57

Cette machine non dterministe fonctionne en temps polynomial p(n) + q(n + p(n))
puisque deviner y prend un temps p(n), puis M fonctionne en temps q sur une entre
(x, y) de taille n + p(n). Donc A NP.
Pour NEXP : la mme preuve sapplique ceci prs que le certificat y doit tre de taille
exponentielle puisque la machine N fonctionne maintenant en temps exponentiel.
Mais attention, le langage B reste dans P car lentre (x, y) de B est maintenant de
taille exponentielle et donc lexcution de N (x) selon le chemin y prend un temps

polynomial (et mme linaire) en la taille de (x, y).

Nous utiliserons souvent cette caractrisation existentielle par la suite.

. 2-AP

Exercice

Montrer quon obtient la mme caractrisation de NP si lon ne demande plus au


certificat y dtre de taille exactement p(n) mais au plus p(n) .

. 2-AQ

Exercice

Le fait de demander ce que le langage sous-jacent soit dans P dans la caractrisation


existentielle de NEXP peut sembler trange premire vue. Mais les deux variantes
suivantes ne capturent pas NEXP.
Soit C lensemble des langages A tels quil existe un polynme p(n) et un
langage B EXP vrifiant
x A y {0, 1}2

p(|x|)

(x, y) B.

n O(1)

Montrer que C = DTIME(22 ) (temps dterministe doublement exponentiel).


Indication : on pourra dabord se familiariser avec le padding la proposition 2AU et lexercice 2-AW.
Soit C lensemble des langages A tels quil existe un polynme p(n) et un
langage B EXP vrifiant
x A y {0, 1} p(|x|) (x, y) B.

Montrer que C = EXP.

Un peu de recul
Si P est la classe des problmes pour lesquels on peut trouver une solution efficacement,
NP est la classe des problmes pour lesquels on peut vrifier une solution efficacement. En

58

Chapitre 2. Considrations de base sur le temps

effet, on nous donne une preuve y et on doit vrifier en temps polynomial que cette preuve
est correcte. En dautres termes, on nous donne une solution potentielle (un chemin
acceptant) et on doit vrifier quil sagit en effet dune solution.
On retrouve cela dans les deux exemples prcdents de problmes NP : pour CLIQUE, on
choisissait (de manire non dterministe) lensemble formant la clique et il fallait vrifier
quil formait bien une clique ; pour SOMME PARTIELLE, on choisissait (de manire non
dterministe) le sous-ensemble et il fallait vrifier que la somme valait bien t . Ces deux
exemples illustrent un phnomne gnral :
NP est la classe des problmes faciles vrifier .
Nous pouvons maintenant comparer les quatre classes vues jusqu prsent. La proposition 2-AG nous donne les inclusions suivantes.
2-AR

Corollaire
P NP EXP NEXP

Par ailleurs, le thorme de hirarchie en temps non dterministe 2-AI nous donne la
sparation suivante.
2-AS

Corollaire
NP NEXP

Dmonstration Il suffit de remarquer que NP NTIME(2n ) puis, par le thorme 2-AI,


2
2

que NTIME(2n ) NTIME(2n ) et enfin que NTIME(2n ) NEXP.

. 2-AT

Exercice

Sparer de mme NE et NP.


Pour rsumer, nous savons que
P NP EXP NEXP,

EXP = P

et

NEXP = NP.

Cependant, cest une question ouverte de savoir si chacune des inclusions P NP,

NP EXP et EXP NEXP est stricte.

2.2. Temps non dterministe

59

Le problme P = NP?

2.2.7

En particulier, la question de savoir si P = NP est ouverte et centrale en complexit. Pour


reprendre la caractrisation prcdente, cela revient savoir si trouver une solution est
aussi simple que de vrifier une solution. Par exemple, est-il aussi facile de trouver une
dmonstration dun nonc mathmatique que de vrifier quune dmonstration donne
est correcte ? Est-il aussi facile de remplir une grille de Sudoku que de vrifier quun
remplissage donn est bien une solution ? On pourrait bien sr multiplier les exemples.
Notre exprience semble indiquer quil est plus difficile de trouver une solution car il faut
faire preuve dimagination ou dintuition : cest une des raisons pour lesquelles de nombreuses personnes pensent que P = NP. Nous exposerons une autre raison au prochain
chapitre : malgr normment defforts, nous ne connaissons pas dalgorithme polynomial pour une vaste classe de problmes de NP.
Enfin, nous terminons ce chapitre en montrant les liens entre la question P = NP et son
analogue exponentiel, EXP = NEXP.
2-AU

Proposition
P = NP = EXP = NEXP

Ide de la dmonstration La technique sappelle padding (quon pourrait traduire par


rembourrage ). Il sagit daugmenter dlibrment la longueur de lentre pour que
les machines disposent de plus de temps, puisque le temps est calcul en fonction de
la taille de lentre.
Ici, on augmente exponentiellement lentre dun langage de NEXP pour le ramener
dans NP et pouvoir appliquer lhypothse.
Dmonstration On suppose P = NP. Soit L NEXP. Il est reconnu par une machine
k
non dterministe N fonctionnant en temps 2n pour un certain k . On dfinit le lank
|x|
gage L = {(x, 12 ) | x L}, cest--dire quon augmente la taille de lentre avec
un nombre exponentiel de symboles 1. La nouvelle entre a maintenant une taille
k
m 2|x| .
Voici une machine non dterministe N pour L :
vrifier que lentre est de la forme (x, y) (sinon rejeter) ;
|x|k

vrifier que y = 12

(sinon rejeter) ;

excuter N (x).
3. Dans cette discussion, simple ou facile signifie efficace : ce pourrait tre un algorithme trs compliqu pourvu quil soit rapide.

60

Chapitre 2. Considrations de base sur le temps


Cette machine reconnat L en temps O(2n ), cest--dire en temps non dterministe
linaire en m (la taille de lentre). Ainsi, L NP : par hypothse, on en dduit que
L P. Il existe donc une machine dterministe M fonctionnant en temps polynomial

pour L. Cette machine fonctionne en temps m k .


Voici maintenant une machine dterministe M pour L sur lentre x :
k

|x|k

crire (x, 12 ) sur un ruban de travail ;


|x|k

excuter M (x, 12 ).
k

La premire tape prend un temps O(2n ) ; la seconde tape prend un temps m k o


k
|x|k
k
m = 2O(n ) est la taille de (x, 12 ). En tout, M fonctionne en temps 2O(n ) , donc

L EXP.

2-AV

Remarque La rciproque de la proposition prcdente nest pas connue.

Nous proposons lexercice suivant pour manipuler les techniques de padding.

. 2-AW

Exercice

Un langage L est dit creux sil existe un polynme p(n) tel que pour tout n N,
|L=n | p(n). Il est dit unaire si L 1 (tout mot de L nest compos que de symboles
1).
Montrer que les trois assertions suivantes sont quivalentes :
E=
NE ;
NP \ P contient un langage unaire ;
NP \ P contient un langage creux.
Indication : montrer 1 = 2 = 3 = 1. Pour 3 = 1, compresser un langage
unaire L NP \ P pour obtenir un langage L de NE : si NE = E alors L E et on peut
sen servir pour placer L dans P.

2.2.8

Complexit du complmentaire

Le caractre asymtrique de la dfinition de NTIME appelle quelques remarques. Le nondterminisme est une notion naturelle dont limportance sera approfondie au chapitre
suivant. Mais le fait quon ne sache pas passer efficacement au complmentaire amne la
dfinition de nouvelles classes de complexit.

2.2. Temps non dterministe


2-AX

61

Dfinition

Si C est une classe de complexit, alors la classe coC est lensemble des complmentaires
des langages de C . En dautres termes,
coC = {c A | A C }.

On obtient ainsi la classe coNP par exemple, lensemble des langages dont le complmentaire est dans NP. Quitte transformer les chemins acceptants en chemins rejetant dans
un machine NP et inversement, on peut reformuler la dfinition de coNP comme suit.
2-AY

Proposition (coNP)

La classe coNP est lensemble des langages A tels quil existe une machine de Turing non
dterministe N fonctionnant en temps polynomial et satisfaisant :
x A ssi tous les chemins de calcul de N (x) sont acceptants.

Comme on la vu auparavant, on ne sait pas dcider dans NP le complmentaire de tout


langage de NP : cela se traduit par le fait que la question NP = coNP ? est ouverte.
Il est utile de rflchir un moment cette question pour comprendre lessence du nondterminisme.
2-AZ Remarque Formellement, le complmentaire dans du langage CLIQUE par
exemple (cf. exemple 2-AM) est lensemble des mots x :
soit qui ne codent pas un couple (G, k) (un graphe et un entier) ;
soit qui codent un couple (G, k) tel que G ne possde pas de clique de taille k .
Cependant, lorsquon parle du complmentaire coCLIQUE du problme CLIQUE, on dsigne le langage {(G, k) | G na pas de clique de taille k} : on garde ainsi les mmes entres et on inverse simplement la question. En effet, on parle du complmentaire dans
lensemble {(G, k) | G est un graphe et k un entier} (lensemble des entres valides pour
ce problme) et non dans lensemble .
Par rapport prendre le complmentaire dans , cela ne change pas la complexit sil
est facile de dcider quun mot code une entre valide du langage (par exemple un
graphe, un couple dentiers, etc.), comme cest toujours le cas.
De la mme manire qu la proposition 2-AO, on peut donner une caractrisation de
coNP en termes de quantification universelle : on remarque que par rapport NP, on
remplace simplement le quantificateur par un quantificateur .

62

Chapitre 2. Considrations de base sur le temps

2-BA

Proposition (caractrisation universelle de coNP)

Un langage A est dans coNP ssi il existe un polynme p(n) et un langage B P tels que
x A y {0, 1} p(|x|) (x, y) B.

Dmonstration Soit A coNP : par dfinition, c A NP, donc daprs la proposition 2AO, il existe B P et un polynme p(n) tels que
x c A y {0, 1} p(|x|) (x, y) B .

On en dduit que

x A y {0, 1} p(|x|) (x, y) B .

Il suffit alors de prendre B = c B (qui est bien un langage de P) pour obtenir notre

caractrisation.

On dduit en particulier de cette proposition que P coNP. Le fait que NP nest probablement pas clos par complmentaire donnera naissance la hirarchie polynomiale
quon tudiera au chapitre 8.
On pourra consulter lexercice B-A en annexe pour sentraner davantage sur le padding
et les thormes de hirarchie.

NP-compltude
Bien que la question P = NP ? rsiste depuis plusieurs dcennies, la quantit defforts
investis a permis davoir une comprhension bien meilleure du problme. La notion de
NP-compltude fait partie de ces avances majeures, une des premires : elle a dabord
montr limportance incroyable de la classe NP avant de donner un moyen aux algorithmiciens de contourner le problme P = NP ? .
En effet, nous allons voir quun trs grand nombre de problmes naturels et importants
en pratique sont tous quivalents et sont les plus difficiles de la classe NP : cela implique
quils ne possdent pas dalgorithme polynomial si P = NP. Puisque la croyance populaire
soutient que P = NP, on se contente de ces rsultats comme dune espce de preuve
que le problme est difficile et quon ne peut pas esprer obtenir un algorithme efficace .
Pour affirmer que certains problmes sont les plus difficiles , il faut pouvoir comparer
les problmes entre eux. On dfinit pour cela la notion de rduction qui tire ses origines
de la calculabilit. Il existe beaucoup de rductions diffrentes mais nous ne dfinirons
dans ce chapitre que lun des deux types les plus importants. Puis nous verrons plusieurs
problmes NP-complets avant de voir le thorme 3-AK de Ladner et celui de Mahaney 3AQ.

3.1

Rductions

Les notions de rduction permettent de comparer deux problmes A et B . Grosso-modo,


on dira que B est plus facile que A si on peut dcider efficacement lappartenance B ds
lors quon possde un moyen de tester lappartenance A : en effet, dans ce cas, rsoudre
1. En ralit on a vu que la classe P ne refltait quimparfaitement lensemble des problmes faciles . En
consquence les algorithmiciens ne sarrtent pas un rsultat de NP-compltude : ils peuvent chercher des solutions approches, des algorithmes qui fonctionneront sur la plupart des instances rencontres, programmer
des mthodes efficaces pour les petites entres, etc.

Chapitre 3. NP-compltude

64

A permet de rsoudre B et donc B nest pas plus difficile que A. Les diffrentes notions

de rduction varient par ce quon entend par efficacement et selon le moyen de


rsoudre A.
En dautres termes, pour rsoudre B on se ramne A : cest en ce sens que B est plus
simple que A. Plutt que se ramener , on utilise le terme se rduire : on dira que B
se rduit A, ou encore quil y a une rduction de B A.
3-A

Dfinition (rductions many-one polynomiales)

Une rduction many-one en temps polynomial dun problme B (sur lalphabet B )


un problme A (sur lalphabet A) est une fonction f : B A calculable en temps
polynomial telle que :
x B ,

x B f (x) A.

Si une telle fonction f existe, on dira que B se rduit A (via f ) et on notera B pm A.

3-B

Remarques Quelques commentaires sur cette dfinition :

La rsolution de B se ramne la rsolution de A par le calcul de f : il suffit dun


prcalcul simple (polynomial), cest en ce sens que B est plus simple que A. La
rduction transforme une instance x du problme B en une instance x du problme
A telles que x B ssi x A.
On notera que la dfinition est quivalente B = f 1 (A).
Le nom many-one vient de ce que plusieurs mots x B peuvent avoir la mme
image.
Nous avons dfini la rduction many-one en temps polynomial : on pourrait dfinir
dautres rductions many-one selon lefficacit du calcul de f . Lorsquon parlera de
rductions many-one sans prciser la complexit de f , on dsignera les rductions
many-one en temps polynomial.
Attention, le terme se rduire peut tre trompeur puisque habituellement on
se ramne une tche plus simple. Ici, lorsque B se rduit A, cest bien B qui est
plus simple !
La plupart des classes de complexit abordes dans cet ouvrage seront closes pour les
rduction many-one (cest--dire que A C et B pm A impliquent B C ), notamment
P, NP, EXP et NEXP. Une exception notable sont les classes E et NE et cest la raison pour
laquelle elles sont moins tudies.
3-C

Proposition

Les classes P et NP sont closes pour pm .

3.1. Rductions

65

Ide de la dmonstration Si B pm A via f , pour dcider B il suffit de calculer f (x) et


de dcider si f (x) A.
Dmonstration Pour la classe P : soit A P et B pm A via f , montrons que B P.
Soit k un entier suffisamment grand pour que f soit calculable en temps n k et A soit
dcidable en temps n k . Voici un algorithme pour B sur lentre x B :
Calculer f (x).
Dcider si f (x) A.
Cet algorithme dcide B par dfinition de la rduction f de B A, et il fonctionne en
temps polynomial :
le calcul de f prend un temps n k ;
2

puisque | f (x)| n k , dcider si f (x) A prend un temps (n k )k = n k .


2

Le temps total est O(n k ), donc B P.


Pour la classe NP, le raisonnement est exactement le mme. Si A est reconnu par
une machine non dterministe polynomiale NA, la machine non dterministe pour B
fonctionne ainsi sur lentre x :
Calculer f (x).
Excuter NA( f (x)).

3-D Remarque La clture de la classe P pour pm signifie quun problme B plus


simple quun problme A efficacement rsoluble est lui-mme efficacement rsoluble,
conformment lintuition.

. 3-E

Exercice
Montrer que les classes EXP et NEXP sont closes pour pm .

. 3-F

Exercice
Montrer que les classes E et NE ne sont pas closes pour pm .
Indication : par thorme de hirarchie, on sait que EXP = E. Utiliser un problme
L EXP \ E, le padder (cf. proposition 2-AU) pour obtenir un langage L E : alors
L pm L .

Chapitre 3. NP-compltude

66

Il est immdiat de constater que pm est une relation de pr-ordre sur lensemble des
langages, cest--dire quelle est rflexive et transitive.
3-G

Lemme

La relation pm est rflexive et transitive.


Dmonstration Rflexivit : soit A un langage, alors A pm A via lidentit.
Transitivit : soit A, B et C des langages tels que A pm B via f et B pm C via g . Alors

x A ssi f (x) B ssi g ( f (x)) C , donc A pm C via g f .

On en dduit la relation dquivalence suivante, signifiant que deux langages ont mme
difficult.
3-H

Dfinition

Si deux langages A et B vrifient A pm B et B pm A, on notera A mp B et on dira que A


et B sont quivalents pour les rductions many-one polynomiales.
Voici un exemple trs simple de rductions.
3-I

Exemple Soit ENSEMBLE INDPENDANT le problme suivant :


entre : un graphe non orient G et un entier k ;
question : existe-t-il un ensemble de k sommets indpendants, cest--dire tous
non relis deux deux ?

Ce problme semble trs proche du problme CLIQUE prsent au chapitre prcdent


(exemple 2-AM). Montrons en effet que ENSEMBLE INDPENDANT mp CLIQUE.
le graphe (V , c E) sur les mmes sommets
Pour un graphe G = (V , E), on notera G
ssi
mais dont les artes sont complmentaires celles de G : x et y sont relis dans G

ils ne sont pas relis dans G (voir figure 3.1). On remarque que le calcul de G partir
de G se fait en temps polynomial.
Pour rduire CLIQUE ENSEMBLE INDPENDANT, il sagit de transformer une instance
(G, k) de CLIQUE en une instance (G , k ) de ENSEMBLE INDPENDANT. La rduction
k), cest--dire quon prend le
f que nous proposons est dfinie par f (G, k) = (G,
complmentaire de G et quon garde la valeur de k . Cette fonction f est bien calculable en temps polynomial ; pour quil sagisse dune rduction, il reste montrer
k) ENSEMBLE INDPENDANT. Dans un sens, si
que (G, k) CLIQUE ssi f (G, k) = (G,
(G, k) CLIQUE alors G possde une clique de taille k , cest--dire k sommets tous re , ces k sommets sont tous non relis et forment un ensemble indpendant
lis : dans G
k) ENSEMBLE INDPENDANT. Lautre sens est similaire.
de taille k , donc (G,
Il savre que, par le mme raisonnement, f est galement une rduction de ENSEMBLE
INDPENDANT CLIQUE (ce qui est une proprit assez exceptionnelle et ne reflte pas

3.2. Compltude

67

avec
Figure 3.1 Un graphe G avec une clique de taille 3 et son complmentaire G
un ensemble indpendant de taille 3.

du tout le cas gnral des rductions entre problmes). Donc les deux problmes sont
quivalents.
Il va sans dire que ce premier exemple de rductions est particulirement simple : les
rductions que nous verrons par la suite seront bien plus volues.

3.2

Compltude

Les rductions permettent de comparer les problmes entre eux et donc de parler des
problmes les plus difficiles dune classe de complexit. Nous introduisons pour cela les
notions de difficult et de compltude.

3.2.1
3-J

Dfinition et premires proprits

Dfinition (difficult et compltude)

Soit une notion de rduction entre problmes. Soit A un problme et C une classe de
complexit.
A est dit C -difficile (ou C -dur) pour les rductions si pour tout B C , on a
B A.
A est dit C -complet pour les rductions sil est C -difficile pour les rductions
et si A C .
Cette notion dpend du type de rductions ; par dfaut, si lon ne prcise pas le type
de rductions, il sagira des rductions many-one en temps polynomial pm .
Ainsi, un problme C -difficile est un problme au moins aussi dur que tous ceux de C ;
on le qualifie en outre de C -complet sil appartient C (il fait donc partie des problmes

Chapitre 3. NP-compltude

68

3-K
Remarques
les
plus durs
de C ).
La condition est trs forte : il faut que tous les problmes de C se rduisent A. A
priori, rien ne dit quil existe des problmes C -difficiles ni (a fortiori) C -complets.
Attention, si un langage A est hors de C , cela nimplique pas quil est C -difficile !
Nous verrons un contre-exemple lexercice 3-AO.
Pour certaines classes usuelles, on ne sait pas si elles contiennent des problmes complets. Cependant, la magie de cette notion de compltude est lexistence de nombreux
problmes naturels complets pour les classes vues jusqu prsent, notamment NP. Mais
commenons par voir que cette notion est inutile pour la classe P.
3-L

Proposition

Tout problme A non trivial (cest--dire A = ; et A = A) est P-difficile pour les rductions many-one en temps polynomial.
Dmonstration Soit A non trivial, x0 A et x1 A. Soit B P : montrons que B pm A.
La rduction f de B A est alors dfinie comme suit :

f (x) =

x1 si x B
x0 sinon.

Puisque B P, cette fonction f est calculable en temps polynomial. Par ailleurs, si


x B alors f (x) = x1 A et si x B alors f (x) = x0 A : ainsi, x B ssi f (x) A,

donc f est une rduction de B A.

Un peu de recul
Ce rsultat vient du fait que la rduction est trop puissante pour la classe P : pour avoir une
pertinence, il faudra donc rduire la puissance des rductions. Nous verrons par la suite
que nous pouvons considrer pour cela les rduction many-one en espace logarithmique.
Il sagit dun phnomne gnral : plus la classe est petite, plus il faut utiliser des rductions
faibles pour comparer les problmes de la classe.
Les machines universelles vues prcdemment permettent de dfinir un premier problme
complet pour les classes vues jusqu prsent, ce que nous illustrons sur la classe NP.
3-M

Proposition

Le problme

A = {(N , x, 1 t ) | N (x) accepte en temps t },

o N est une machine non dterministe, x un mot et t un entier (donn ici en unaire),
est NP-complet.

3.2. Compltude

69

Ide de la dmonstration A NP car on peut simuler N (x) grce la machine universelle. Pour rduire tout problme B NP A, il suffit de simuler via A la machine non
dterministe reconnaissant B .
Dmonstration Montrons dabord que A NP. Soit Unondet la machine non dterministe universelle de la proposition 2-AB : voici un algorithme non dterministe pour
dcider si (N , x, 1 t ) A.
Simuler N (x) pendant t tapes en excutant Unondet (N , x).
Si le chemin simul a accept, accepter, sinon rejeter (le chemin simul na pas termin ou a rejet).
Par la proposition 2-AB, cet algorithme fonctionne en temps non dterministe polynomial et possde un chemin acceptant ssi N (x) en possde un en au plus t tapes.
Ainsi, A NP.
Montrons maintenant que A est NP-difficile. Soit B NP : B est reconnu par une
machine non dterministe NB fonctionnant en temps polynomial p(n). La rduction
de B A est alors la fonction f dfinie par f (x) = (NB , x, 1 p(|x|) ) : x B ssi NB (x)
accepte en temps p(|x|) ssi (NB , x, 1 p(|x|) ) A ssi f (x) A. Puisque f est clairement

calculable en temps polynomial, on a B pm A.

3-N Remarque Ce nest pas un problme NP-complet trs intressant car cest un
problme ad-hoc calqu sur la dfinition de NP. La NP-compltude devient pertinente
lorsquelle concerne des problmes naturels.

. 3-O

Exercice
Montrer que le problme
A = {(M , x, t ) | M (x) accepte en temps t },

o M est une machine dterministe, x un mot et t un entier donn en binaire,


est EXP-complet. De mme, si M est non dterministe, montrer que le problme
correspondant est NEXP-complet.
Un des intrts des problmes NP-complets rside dans le rsultat suivant.
3-P

Proposition

Les affirmations suivantes sont quivalentes :


1. P = NP ;

Chapitre 3. NP-compltude

70

2. tout problme NP-complet est dans P ;


3. il existe un problme NP-complet dans P.
Dmonstration Limplication 1 = 2 est vidente, ainsi que 2 = 3 car il existe au
moins un problme NP-complet (cf. proposition 3-M). Il reste seulement montrer
3 = 1. Soit B un langage de NP, montrons que B P. Soit A le langage NP-complet
donn par 3 : dune part, A P par 3 ; dautre part, B pm A par compltude de
A. Puisque P est clos par rduction many-one (proposition 3-C), on en dduit que

B P.

3.2.2

Compltude du problme SAT

Lavance majeure dans la comprhension de la classe NP a t la dcouverte que de nombreux problmes naturels rputs difficiles sont NP-complets. Cook [Coo71] et, indpendamment, Levin [Lev73] ont donn de tels problmes au dbut des annes 1970,
complts ensuite par Karp [Kar72] notamment. Ici notre premier problme sera SAT, la
satisfaisabilit de formules boolennes.
3-Q

Dfinition (formules boolennes)

Lensemble des formules boolennes sans quantificateur sur les variables x1 , . . . , xn est dfini
par induction comme suit.
Une variable xi est une formule.
Si 1 (x1 , . . . , xn ) et 2 (x1 , . . . , xn ) sont des formules, alors
(1 (x1 , . . . , xn ) 2 (x1 , . . . , xn )),
(1 (x1 , . . . , xn ) 2 (x1 , . . . , xn ))
(1 (x1 , . . . , xn ))

et

sont des formules.


Si a1 , . . . , an {V , F } (V pour vrai et F pour faux) sont des valeurs pour les variables
x1 , . . . , xn (on dit aussi une assignation), alors la valeur de vrit dune formule (x1 , . . . , xn )
en a1 , . . . , an , note (a1 , . . . , an ), est dfinie comme suit.
Si (x1 , . . . , xn ) = xi alors (a1 , . . . , an ) = ai .
Si = (1 2 ) (conjonction, ET) alors

V
(a1 , . . . , an ) =
F

si 1 (a1 , . . . , an ) = V et 2 (a1 , . . . , an ) = V
sinon.

Si = (1 2 ) (disjonction, OU) alors

V
(a1 , . . . , an ) =
F

si 1 (a1 , . . . , an ) = V ou 2 (a1 , . . . , an ) = V
sinon.

3.2. Compltude

71

Si = (1 ) (ngation, NON) alors

V
(a1 , . . . , an ) =
F

si 1 (a1 , . . . , an ) = F
sinon.

3-R Remarque On utilisera la plupart du temps 0 au lieu de F et 1 au lieu de V .


On se permettra galement les conventions usuelles concernant le parenthsage, ainsi que
des abrviations utiles comme
1 pour x1 x1 et 0 pour x1 x1 ;
pour ;
pour ( ) ( ).
Enfin, un uple de variables (x1 , . . . , xn ) sera souvent dsign par x si le nombre dlments
|x| du uple na pas besoin dtre prcis.

3-S Exemple (x1 , x2 , x3 ) = (x1 x2 ) (x1 (x2 x3 )) est une formule boolenne
sans quantificateur qui satisfait (0, 0, 0) = 0 et (0, 0, 1) = 1.
3-T

Remarques

On peut coder trs simplement une formule boolenne en binaire en codant les
symboles la suite, spars par un dlimiteur. Puisquil faut donner le numro des
variables, une formule sur n variables scrivant avec k symboles aura un codage de
taille O(k log n). La taille du codage dune formule sera not ||.
Une formule se reprsente galement sous la forme dun arbre o les feuilles sont
les variables (apparaissant ventuellement plusieurs fois) et les nuds les oprations
, et .
tant donnes une formule (x1 , . . . , xn ) et une assignation (a1 , . . . , an ) pour les variables, on peut dcider en temps polynomial si (a1 , . . . , an ) = 1. Il suffit pour cela
dvaluer larbre correspondant la formule depuis les feuilles jusqu la racine.

Nous pouvons maintenant introduire le problme SAT.

Chapitre 3. NP-compltude

72
3-U

Dfinition (SAT)

Une formule (x1 , . . . , xn ) est dite satisfaisable sil existe une assignation des variables
(a1 , . . . , an ) {0, 1}n telle que (a1 , . . . , an ) = 1.
Le problme SAT est le problme suivant :

3-V

entre : une formule boolenne sans quantificateur (x1 , . . . , xn ) ;

question : est-elle satisfaisable ?

Thorme (Cook 1971, Levin 1973)

Le problme SAT est NP-complet.


Plus prcisment, le fonctionnement en temps polynomial dune machine non dterministe N sur une entre x est dcrit par une formule calculable en temps polynomial telle
que le nombre dassignations satisfaisant est gal au nombre de chemins acceptants de
N (x).
Ide de la dmonstration SAT NP car il suffit de deviner une assignation des variables
et vrifier en temps polynomial quelle satisfait la formule.
La compltude vient du fait quon peut dcrire par une formule de taille polynomiale
le diagramme espace-temps dune excution dune machine non dterministe polynomiale car celui-ci rpond des rgles locales. En dautres termes, on dcrit par une
formule (y) le fonctionnement de la machine le long du chemin (dcoulant du choix
des transitions) dcrit par y . Pour savoir sil existe un chemin acceptant dans le calcul de la machine, il suffit alors de savoir sil existe une affectation des variables y de
la formule pour laquelle ltat final du diagramme dcrit est acceptant, ce qui est un
problme de type SAT.
Dmonstration Voici un algorithme non dterministe fonctionnant en temps polynomial pour SAT sur lentre (x1 , . . . , xn ) :
deviner (a1 , . . . , an ) {0, 1}n ;
vrifier que (a1 , . . . , an ) = 1.
Comme on la vu, la vrification prend un temps polynomial : ainsi, SAT NP.
Il reste donc montrer que SAT est NP-difficile. Soit B NP : toute instance x du
problme B , il sagit dassocier une formule x telle que x B ssi x est satisfaisable.
Les variables de x dsigneront en quelque sorte le chemin de calcul suivre. Soit N
une machine non dterministe polynomiale k rubans pour B (ensemble dtats Q ,
alphabet de travail ) : nous allons simuler le fonctionnement de N (x) le long dun
chemin arbitraire par x . Pour cela, nous allons considrer le diagramme espace-temps

3.2. Compltude

73

de N (x), cest--dire le diagramme reprsentant lvolution du contenu des rubans au


cours du temps. Par commodit, sur la figure 3.2 nous reprsentons un seul ruban de
travail. La case sur laquelle se situe la tte de lecture est indique par le symbole .
temps

..
.

espace

Figure 3.2 Diagramme espace-temps pour un ruban de travail.


Soit t (n) un polynme majorant le temps dexcution de N : si le calcul de N (x) se
termine en moins de t (|x|) tapes, alors sur le diagramme espace-temps on suppose
que N reste dans le mme tat jusquau temps t (|x|).
Lors des t tapes de calcul de N (x) ( t est un polynme en |x|, donc constructible en
temps), les cases visites du ruban se situent entre t et t . Nous considrons donc
seulement les (2t + 1)(t + 1) cases du diagramme reprsentes sur la figure.
Notre formule x va affirmer que le calcul commence dans la configuration initiale,
que le diagramme espace-temps de la machine est cohrent avec la relation de transition et quon termine dans un tat acceptant. Elle sera compose de quatre parties :
cohrence signifiant que deux valeurs ne sont pas assignes la mme case, deux
positions la mme tte, deux tats la mme tape ;
dbut x signifiant que la configuration initiale est la bonne : on est dans ltat
initial, les ttes sont en position initiale, x est crit sur le ruban de lecture et les
autres rubans sont vides ;
pour chaque tape j , transition j signifiant que la j -me transition est valide :
dplacements des ttes et symboles crits cohrents avec la relation de transition,
pas de changement pour les cellules non concernes par les ttes ;
accepte signifiant quon arrive dans un tat acceptant un temps t .
Voici maintenant les variables qui seront utilises dans notre formule.

Chapitre 3. NP-compltude

74

Pour chacune des tapes, chaque case des rubans va tre dcrite par plusieurs
variables : pour chaque symbole et pour chaque ruban r , on utilise une
variable cr,i, j qui vaut vrai ssi la i -me case du ruban r contient le symbole au
temps j (ici, 1 r k , t i t et 0 j t ).
La position de la tte au temps j sur chaque ruban r est dcrite par 2t + 1 variables : la variable pi,r j (o 1 r k , t i t et 0 j t ) vaut vrai ssi la
tte du ruban r est la position i au temps j .
Pour chaque tat q et chaque instant j , la variable eq, j vaut vrai ssi ltat des
ttes est q linstant j (ici, q Q et 0 j t ).
En tout, le nombre de variables est donc (t +1)(2t +1)| |k +(t +1)(2t +1)k +(t +1)|Q|,
qui est polynomial en la taille de x puisque t est polynomial et , k et Q sont constants
(dpendant seulement de la machine N et non de x ).
Dans un premier temps, il faut sassurer qu chaque tape, chaque case contient exactement une valeur, chaque tte est exactement un endroit et on est dans exactement un tat. On peut exprimer cela par la conjonction des formules suivantes (ici,
r {1, . . . , k} dsigne un ruban, i {t , . . . , t } une position, j {0, . . . , t } une tape
et un symbole) :
tout moment chaque case contient exactement un symbole :

(cr,i, j
cr ,i, j ) ;

r,i, j

tout moment chaque tte a exactement une position :

( pi,r j
pir , j ) ;
r, j

i =i

et tout moment on est dans exactement un tat :

eq , j ).
(eq, j
j

q =q

La conjonction de ces trois formules est de taille polynomiale et donne la formule


cohrence mentionne ci-dessus.
Pour exprimer que la configuration initiale est correcte, il sagit de tester si ltat au
temps 0 est q0 , si tous les rubans sont vides part le ruban de lecture qui contient
x = x1 . . . xn partir de la case 1, et si toutes les ttes sont en position 1. On peut crire
cela sous la forme dune conjonction des quatre formules suivantes :
eq0 ,0 (ltat de dpart est ltat initial q0 ) ;

cr
r >1,i B,i,0

(au dpart toutes les cases des rubans r > 1 contiennent le symbole

B) ;

le ruban de lecture contient x entre les positions 1 et n et B ailleurs :


(

i 0 i >n

1
)(
cB,i,0

1i n

c x1 ,i,0 ) ;
i

3.2. Compltude

75

la tte de chaque ruban r est en position 1 au temps 0 :

r
( p1,0
).
r

La conjonction de ces quatre formules est de taille polynomiale et donne la formule


dbut x mentionne prcdemment.
Pour allger les notations qui suivent et par abus de notation, pour tout k1 on
notera (qa , ) = {(qa , (B, . . . , B), (S, . . . , S))} et (q r , ) = {(q r , (B, . . . , B), (S, . . . , S))}
(alors quen ralit, par dfinition (qa , ) = (q r , ) = ; puisque le calcul sarrte).
Ce nest quune notation pour la suite, mais intuitivement cela revient considrer
que le calcul ne sarrte pas partir du moment o on atteint un tat terminal, et
qualors la configuration ne change plus.
Dans ce cas, la formule accepte est simple crire, il sagit dexprimer quau temps t
on est dans ltat acceptant qa : cela scrit eqa ,t .
Il reste le cur de la simulation : spcifier que le comportement de la machine correspond la relation de transition. Pour la j -me transition (o 1 j t ), il sagit de
sassurer que :
pour chaque ruban les cases ne contenant pas la tte nont pas chang de contenu :
contenu

pir, j 1

r,i


(cr,i , j cr,i , j 1 ) ;

et la valeur de la case contenant la tte, la position de la tte et ltat ont volu


selon une transition valide : pour tout tat q , tout uple de positions i et tout
uple de symboles , si ltape j 1, ltat est q , les positions des ttes sont i
et les symboles lus sont , alors lvolution doit se drouler selon une transition
(q , , d ) (q, ) (nouvel tat, nouveau contenu des cases et dplacement des
ttes). En symboles :
trans

eq, j 1

q,i ,

(q , ,d )(q, )

( pir , j 1 cr ,i

eq , j

(cr ,i
r

r ,j

r , j 1


)


pir +d , j ) .
r

Ici, i dsigne (i1 , . . . , ik ) ; dsigne (1 , . . . , k ) mais, utilis comme argument


de , seules les k 1 premires composantes sont concernes (puisque le k -me
ruban est en criture seule) ; de mme, dsigne (1 , . . . , k ) mais, utilis comme
image de , seules les k 1 dernires composantes sont concernes (puisque le
premier ruban est en lecture seule) ; d dsigne (d1 , . . . , dk ) ; enfin, i r + d r signifie
i r 1 si d r = G , i r si d r = S et i r + 1 si d r = D .
La formule transition j vaut alors (contenu trans ). On remarquera une nouvelle
fois que cette formule est de taille polynomiale.

Chapitre 3. NP-compltude

76
On peut enfin crire la formule x :
x = cohrence dbut x

transition j accepte.

1 j t

La formule x est de taille polynomiale et est satisfaisable si et seulement sil existe


un chemin acceptant dans le calcul de N (x). Par ailleurs, le code de N tant fix
par le choix de la machine dcidant le langage B , partir de linstance x il est ais
de construire en temps polynomial le code de x puisque nous venons dcrire cette
formule explicitement. Ainsi la fonction f : x 7 x est une rduction many-one polynomiale de B SAT.
Enfin, par construction (notamment grce la formule cohrence), il y a une bijection entre les assignations satisfaisant x et les chemins acceptants de N (x), donc le

nombre de celles-ci est gal au nombre de chemins acceptants de N (x).

Ce problme est notre premier problme NP-complet naturel et servira de base pour
montrer la compltude dune multitude dautres problmes. En effet, pour montrer la
NP-difficult dun problme A, il suffit maintenant de donner une rduction de SAT A
comme le montre le lemme suivant.
3-W

Lemme

Soit C un problme NP-complet et A NP. Si C pm A alors A est NP-complet.


Dmonstration Soit B NP. Par compltude de C , B pm C . Or par hypothse C pm A :
la transitivit de pm (lemme 3-G) permet de conclure que B pm A et donc que A est

NP-difficile.

3.2.3

Autres problmes NP-complets

Notre prochain problme NP-complet est une variante importante de SAT appele 3SAT :
il sagit de dcider la satisfaisabilit de formules donnes en 3-CNF, forme que nous dfinissons maintenant.

3-X

Dfinition (forme normale conjonctive)

Un littral est soit une variable ( xi ) soit la ngation dune variable (xi ).
Une clause est une disjonction de littraux : C =

l
i i

o li est un littral.

Une formule est dite sous forme normale conjonctive (CNF) si elle est la conjonction de clauses (cest--dire la conjonction de disjonctions de littraux) :
=

Ci

Ci =

li , j est une clause.

3.2. Compltude

77

Enfin, est en 3-CNF si elle est en CNF avec au plus trois littraux par clause.

3-Y

Exemple = (x1 x2 ) (x1 x3 x4 ) (x2 x3 x4 ) est en 3-CNF.

3SAT est alors le problme suivant :

entre : une formule (x1 , . . . , xn ) en 3-CNF ;


question : est-elle satisfaisable ?
3-Z

Proposition

Le problme 3SAT est NP-complet.


De plus, la rduction de SAT 3SAT prserve le nombre dassignations satisfaisant la formule.
Ide de la dmonstration On voit une instance (x) de SAT sous la forme dun arbre :
tester sa satisfaisabilit revient alors deviner les valeurs de x et celles des nuds de
larbre et tester la cohrence de ces choix. Ce test est local chaque nud de larbre
et ncessite seulement des clauses contenant trois littraux car le degr dun sommet
de larbre est au plus 3 (un pre et au plus deux fils).
Dmonstration Que 3SAT soit dans NP est une vidence puisquil suffit de tester (en
temps polynomial) si lentre est en 3-CNF et dappliquer lalgorithme non dterministe pour SAT.
Afin de montrer sa NP-difficult, nous donnons une rduction de SAT 3SAT. Soit
(x) une instance de SAT : nous allons construire une instance (x, y) de 3SAT de
sorte que soit satisfaisable ssi lest.
Pour cela, nous considrons larbre reprsentant la formule , dont les feuilles (entres) sont les variables xi (apparaissant ventuellement plusieurs fois) et les nuds les
oprations , et : chaque nud a donc au plus deux fils. On peut voir lexemple
dun tel arbre la figure 3.3.
Lobjectif est de dcrire la valeur de tous les nuds de larbre afin de connatre la valeur
de la racine. On associe donc une nouvelle variable y s chaque nud s de larbre. Les
clauses de notre formule (x, y) sont les suivantes :
si s est une feuille correspondant la variable xi , il sagit dexprimer que y s = xi ,
ce qui donne les deux clauses C s = (xi y s ) (xi y s ) ;
si s est une porte ayant pour fils la porte s , il sagit dexprimer que y s = y s ,
ce qui donne les deux clauses C s = (y s y s ) (y s y s ) ;
si s est une porte ayant pour fils les portes s1 et s2 , on exprime que y s = y s1 y s2 ,
ce qui donne les trois clauses C s = (y s y s1 y s2 ) (y s y s1 ) (y s y s2 ) ;

Chapitre 3. NP-compltude

78
x1

x2

x3

x2

Figure 3.3 Arbre correspondant la formule (x1 ) (x2 x3 ) (x2 ) .

enfin, si s est une porte ayant pour fils les portes s1 et s2 , il sagit dexprimer
que y s = y s1 y s2 , ce qui donne les trois clauses
C s = (y s y s1 y s2 ) (y s y s1 ) (y s y s2 ).

De cette faon, nous avons exprim le fait que toutes les variables y s prennent la valeur de la porte s correspondante. Il ne reste plus qu vrifier que la porte de sortie,
appelons-la t , a la valeur 1, ce qui donne au final la formule
(x, y) = y t

Cs ,

qui est bien en 3-CNF. Ainsi, (x) est satisfaisable ssi il existe une assignation des
variables x telle que la porte t vaille 1, ssi pour cette assignation des variables x , il
existe une (unique) assignation des variables y telle que (x, y) vaille 1. De plus, la
fonction 7 est bien sr calculable en temps polynomial puisquil suffit dcrire
les clauses que nous avons spcifies ci-dessus. Au final, nous venons de dcrire une

rduction de SAT 3SAT qui conserve le nombre de solutions.

3-AA Remarque Attention, le problme de la satisfaisabilit des formules en 2CNF (deux littraux par clause) est rsoluble en temps polynomial, bien que lalgorithme
ne soit pas trivial.
De mme pour les formules en forme normale disjonctive (DNF), o les clauses sont
des conjonctions de littraux et la formule est une disjonction de clauses (cf. exercice
ci-dessous).

. 3-AB

Exercice

Montrer que le problme de dcider la satisfaisabilit dune formule en DNF (forme


normale disjonctive o les clauses sont des conjonctions de littraux et la formule
est une disjonction de clauses) est dans P.

3.2. Compltude

79

partir de cette variante de SAT, nous pouvons montrer la compltude de plusieurs problmes dans des domaines varis : graphes, nombres, etc. Nous verrons seulement un petit
nombre dexemples mais la liste des problmes NP-complets est grande. De nombreuses
variantes de SAT sont NP-compltes et nous commenons par le problme 1Lit3SAT suivant :
entre : une formule (x1 , . . . , xn ) en 3-CNF ;
question : existe-t-il une affectation des variables rendant exactement un littral vrai
par clause ?
Il sagit bien sr dun sous-ensemble de 3SAT dont nous montrons quil est galement
NP-complet.
3-AC

Proposition

Le problme 1Lit3SAT est NP-complet.


Ide de la dmonstration Lappartenance NP est facile. La NP-difficult vient dune
rduction de 3SAT o lon spare les littraux de chaque clause en ajoutant des variables
pour garantir une solution avec exactement un littral vrai par clause.
Dmonstration Le problme est dans NP grce la machine non dterministe suivante,
fonctionnant en temps polynomial sur une formule (x1 , . . . , xn ) en 3-CNF :
deviner une affectation des variables ;
vrifier que chaque clause contient exactement un littral vrai.
Nous donnons maintenant une rduction du problme 3SAT au problme 1Lit3SAT.
Soit (x1 , . . . , xn ) une instance de 3SAT (cest--dire une formule en 3-CNF) ayant m
clauses.
Si C est une clause (x y z) de , o x, y, z sont des littraux (variables ou ngation
de variables), alors on remplace C par les quatre clauses
C = (x a b ) (y c d ) (z e f ) (a c e),

o a, . . . , f sont des nouvelles variables.


Si C est satisfaite par une affectation de x, y, z , alors il existe une affectation avec les
mmes valeurs de x, y, z rendant exactement un littral vrai par clause de C . Pour
montrer cela, raisonnons sur le nombre de littraux vrais dans C :
si un seul littral de C est vrai, par exemple x (les autres cas sont symtriques),
on fixe a = 1 et b , c, d , e, f = 0 ;
si deux littraux de C sont vrais, par exemple x et y (les autres cas sont symtriques), alors on fixe a, d = 1 et b , c, e, f = 0 ;
si les trois littraux de C sont vrais, on fixe a, d , f = 1 et b , c, e = 0.

Chapitre 3. NP-compltude

80

Rciproquement, si C est satisfaite par une affectation rendant exactement un littral


vrai par clause, alors la mme affectation de x, y, z satisfait C . En effet, exactement
lune des variables a, c, e doit tre vraie, par exemple a (les autres cas sont symtriques),
donc x doit tre vrai sinon la premire clause aurait deux littraux vrais.
Le remplacement de chaque clause de de cette faon,
en utilisant pour chacune de
nouvelles variables a, . . . , f , donne une formule = C C contenant 4m clauses et
n+6m variables. La formule est videmment calculable en temps polynomial partir
de . Par ce qui prcde, puisque les valeurs des littraux x, y, z sont prserves (ce qui
est important si plusieurs clauses utilisent les mmes littraux), si est satisfaisable
alors il existe une affectation rendant exactement un littral vrai par clause de ; et
rciproquement, si possde une affectation rendant exactement un littral vrai par

clause, alors la mme affectation des variables de satisfait .

Nous proposons en exercice de montrer quune autre variante de SAT est NP-complte.

. 3-AD

Exercice

Soit Half-3SAT le problme suivant :


entre : formule (x1 , . . . , xn ) en 3-CNF ;
question : existe-t-il une affectation des variables (x1 , . . . , xn ) satisfaisant exactement la moiti des clauses ?
Montrer que Half-3SAT est NP-complet.
Indication : on peut utiliser plusieurs fois une mme clause si ncessaire.
Les graphes sont aussi de grands pourvoyeurs de problmes NP-complets. Par exemple,
le problme ENSEMBLE INDPENDANT dfini prcdemment (exemple 3-I), pour lequel il
sagit de dcider sil existe k sommets non relis deux deux dans un graphe non orient.

3-AE

Proposition

Le problme ENSEMBLE INDPENDANT est NP-complet.


Ide de la dmonstration Le problme est dans NP car vrifier que k sommets sont
indpendants se fait en temps polynomial. Pour la NP-difficult, on rduit 3SAT : la
rduction transforme une formule en 3-CNF i clauses en un graphe contenant
i triangles (un pour chaque clause). Chaque sommet dun triangle correspond un
littral de la clause. Entre les triangles, on relie ensuite x et x . Si est satisfaisable,
alors les littraux valant 1 dans une solution forment un ensemble indpendant du
graphe, et rciproquement.
Dmonstration Voici une machine non dterministe pour ENSEMBLE INDPENDANT,
sur lentre (G, k) :

3.2. Compltude

81

deviner un sous-ensemble de k sommets x1 , . . . , xk ;


vrifier que x1 , . . . , xk sont distincts et sont tous deux deux non
relis.
Il est clair que cette machine fonctionne en temps polynomial et quil existe un chemin acceptant si et seulement sil existe un ensemble indpendant de taille k . Donc
ENSEMBLE INDPENDANT est dans NP.
Pour montrer la NP-difficult, nous rduisons 3SAT ENSEMBLE INDPENDANT. Soit
(x1 , . . . , xn ) une formule en 3-CNF (une instance de 3SAT) : le but est dassocier
en temps polynomial un graphe G et un entier k tel que est satisfaisable ssi G a un
ensemble indpendant de taille k . La formule est constitue de m clauses contenant
chacune trois littraux (si une clause contient moins de trois littraux, on ajoute lun
des littraux pour en obtenir exactement trois, par exemple (x1 x2 ) 7 (x1 x1 x2 )).
On pose alors k = m (le nombre de clauses). Chaque clause donne lieu un triangle
dans G reliant trois nouveaux sommets correspondant aux trois littraux apparaissant
dans la clause (voir la figure 3.4).
x2

x3

x1

Figure 3.4 Une clause est reprsente par un triangle dont les sommets sont les
littraux. Ici, la clause est (x1 x2 x3 ).
Ainsi, les sommets du graphe G seront tous les littraux apparaissant dans avec leur
multiplicit, et il y a des artes entre tous les littraux correspondant une mme
clause, formant donc k = m triangles dans G . Mais ce ne sont pas les seules artes du
graphe : on relie galement chaque littral sa ngation, par exemple on relie toutes les
occurences de x1 toutes les occurences de x1 . On obtient ainsi le graphe G associ
la formule , comme illustr la figure 3.5.
Cette construction de (G, k) partir de est clairement calculable en temps polynomial. Il reste montrer que est satisfaisable ssi G a un ensemble indpendant de
taille k = m .
Si est satisfaisable par une certaine affectation des variables, soit ai un littral gal 1
dans la clause i selon cette affectation (ai est de la forme x j ou x j ). Par construction,
un des sommets de G correspond ce littral. Puisque pour i = j , ai et a j sont dans
des clauses diffrentes, ils ne sont pas dans le mme triangle de G , et par ailleurs ils
ne sont pas la ngation lun de lautre car il existe une affectation qui les rend tous

Chapitre 3. NP-compltude

82
x1

x1
x3

x3

x2

x2

x1
x3
x2

Figure 3.5 Graphe correspondant la formule

(x1 , x2 , x3 ) = (x1 x2 x3 ) (x1 x2 x3 ) (x1 x2 x3 ) et ensemble indpendant


de taille 3 (en pointills) montrant que x1 = x2 = x3 = 1 satisfait .

deux vrais. Ainsi, il ny a pas darte entre eux dans G et a1 , . . . , a m est un ensemble
indpendant de taille k = m .
Rciproquement, supposons que G ait un ensemble indpendant {a1 , . . . , a m } de taille
k = m . Si i = j , ai et a j ne peuvent pas tre la ngation lun de lautre sinon ils seraient
relis dans G . Ainsi, il existe une affectation des variables de telle que tous les ai ont
valeur 1. De mme, il ne peuvent pas correspondre deux littraux de la mme clause
car ceux-ci sont relis dans G . Cette affectation rend donc au moins un littral vrai

par clause, et est satisfaisable.

3-AF Remarque Si k est fix (et non donn dans lentre), le problme se rsout en
temps polynomial puisquil suffit de tester tous les sous-ensembles de k sommets (il y en
a moins de n k ).
Par les rductions entre ENSEMBLE INDPENDANT et CLIQUE vues lexemple 3-I, nous
avons le corollaire suivant.
3-AG

Corollaire

Le problme CLIQUE est NP-complet.


Nous allons maintenant montrer que le problme SOMME PARTIELLE vu au chapitre prcdent (exemple 2-AM) est NP-complet.

3.2. Compltude
3-AH

83

Proposition

Le problme SOMME PARTIELLE est NP-complet.


Ide de la dmonstration Il suffit de deviner un sous-ensemble sommant t pour rsoudre ce problme dans NP. Pour la NP-difficult, on rduit 3SAT en imposant que
chaque clause soit satisfaite grce des entiers correspondant aux littraux et aux
clauses.
Dmonstration La machine non dterministe polynomiale suivante montre que le problme SOMME PARTIELLE est dans NP :
deviner un sous-ensemble S {1, . . . , m} ;
vrifier que

iS

ai = t .

Nous rduisons maintenant 3SAT au problme SOMME PARTIELLE pour montrer la

NP-difficult de ce dernier. Soit (x1 , . . . , xn ) une instance de 3SAT (cest--dire une

formule en 3-CNF) ayant m clauses C0 , . . . , C m1 .


chacun des deux littraux l {xi , xi } sur la variable xi , on associe lentier
a l = 6i+m1 +

6j .

j | l C j

En dautres termes, en base 6 le chiffre de j -me position est 1 si l apparat dans la


clause C j , et le chiffre de position i + m 1 est fix 1.
Par ailleurs, chaque clause Ci (0 i < m ), on associe les deux entiers bi = bi = 6i .
En dautres termes, en base 6 le chiffre de i -me position est fix 1.

m+n1 i
Enfin, lentier cible est dfini par t = 3 im1
6i + i=m
6 , cest--dire le nombre
=0
dont lcriture en base 6 est
1| .{z
. . 1} 3| .{z
. . 3} .
n fois

m fois

Un exemple est donn la figure 3.6.


Comme sur lexemple, on visualisera les nombres a, b , b et t en base 6, les n premires
colonnes reprsentant les variables xn , . . . , x1 et les m suivantes reprsentant les clauses
C m1 , . . . , C0 . On notera que lensemble des nombres a ne peut pas apporter plus de
trois chiffres 1 par colonne Ci car chaque clause contient trois littraux. Ainsi, chaque
colonne a au plus cinq chiffres 1 et il ny a donc jamais de retenue qui peut se propager
en base 6.
Cette instance de SOMME PARTIELLE est bien sr calculable en temps polynomial
partir de . Supposons que soit satisfaisable par laffectation (1 , . . . , n ) de ses
variables. Alors on choisit comme solution de SOMME PARTIELLE lensemble A des
entiers
a l tels que l est vrai (cest--dire l = xi si i = 1 ou l = xi si i = 0). Dans ce
cas, al A a l scrit en base 6 avec n chiffres 1 en tte (sur les colonnes des variables)
et les m chiffres suivants sont compris entre 1 et 3. En effet, puisque chaque clause est

Chapitre 3. NP-compltude

84
Instance de 3SAT

= (x1 x2 x3 ) (x1 x2 x4 ) (x1 x2 x3 ).

Reprsentation des entiers en base 6 :


x4
a x1
ax1
a x2
ax2
a x3
ax3
a x4
ax4
b1
b1
b2
b2
b3
b3

1
1

x3

x2

1
1
0
0

1
1
0
0
0
0

x1
1
1
0
0
0
0
0
0

C2
1
0
0
1
0
1
0
0

C1
0
1
0
1
0
0
1
0

1
1

1
1
0
0

C0
1
0
0
1
1
0
0
0
1
1
0
0
0
0

Figure 3.6 Illustration de la rduction de 3SAT SOMME PARTIELLE.

satisfaite, il y a au moins un 1 par colonne de clause (et au plus trois par la remarque
ci-dessus). Il suffit alors de complter la somme par les variables bi et bi ncessaires
pour amener chaque colonne de clause la valeur 3. Ainsi, cette instance de SOMME
PARTIELLE a une solution.
Rciproquement, si cette instance de SOMME PARTIELLE a une solution, on remarque
dabord que pour chaque variable xi , soit a xi soit axi a t choisi pour obtenir 1 dans
la colonne de xi . Si a xi est choisi, on affectera xi = 1 ; si cest axi qui est choisi, on
affectera xi = 0. Puisque chaque colonne de clause vaut 3 et que parmi les nombres
b , b , seuls deux peuvent y contribuer, cela signifie quil y a au moins un a l choisi
apportant un 1 dans cette colonne. La clause est donc satisfaite par le littral l . Au
total, chaque clause est satisfaite par laffectation des variables, donc est satisfaisable.
La fonction qui associe cette instance de SOMME PARTIELLE est donc une rduction
de 3SAT SOMME PARTIELLE, ce qui montre la NP-difficult de SOMME PARTIELLE.

3.2. Compltude

85
Un peu de recul

Nous avons vu quelques problmes NP-complets issus de domaines diffrents (logique,


graphes, nombres) mais il existe des centaines dautres problmes NP-complets importants
en pratique. Cest ce qui fait de la NP-compltude une notion centrale en complexit et
en algorithmique.
On ne connat dalgorithme polynomial pour aucun dentre eux. Rappelons que rsoudre
lun dentre eux en temps polynomial revient tous les rsoudre en temps polynomial.
Un rsultat de NP-compltude est donc considr comme une preuve que le problme
est difficile (mais ce nest pas une vraie preuve tant quon na pas montr P = NP !).
On pourra trouver de nombreux autres exemples de problmes NP-complets dans le livre
de Garey et Johnson [GJ79] par exemple.

3.2.4

Complmentaire

Nous avons dfini la classe coNP la section 2.2.8. Cette classe aussi admet des problmes
complets. En ralit, tout le travail fait ici se transpose aisment. Nous avons en effet le
rsultat suivant.
3-AI

Lemme

Si A est NP-complet, alors c A est coNP-complet.


Dmonstration Comme A NP, par dfinition c A est dans coNP. Il reste montrer
quil est coNP-difficile. Soit B coNP : par dfinition, c B NP, donc c B se rduit
A via une rduction f calculable en temps polynomial. En dautres termes, x c B ssi
f (x) A. Cela implique que x B ssi f (x) c A, cest--dire que B se rduit c A.

Donc c A est coNP-complet.

La remarque 2-AZ ne remet bien sr pas en cause ce rsultat. On en dduit que les problmes coSAT, coCLIQUE, etc., sont coNP-complets.

. 3-AJ

Exercice

Montrer que le problme TAUTOLOGIE suivant est coNP-complet :


entre : une formule boolenne (x1 , . . . , xn ) ;
question : est-elle une tautologie, cest--dire (a1 , . . . , an ) est-elle vraie pour
toute affectation (a1 , . . . , an ) ?
Indication : on pourra faire une rduction trs simple de coSAT.

Chapitre 3. NP-compltude

86

3.2.5

Thorme de Ladner

Dans NP, nous avons donc dun ct des problmes NP-complets qui sont difficiles si
P = NP, et de lautre des problmes P qui sont faciles. Si P = NP, y a-t-il quelque chose
entre les deux ? En dautres termes, si P = NP existe-t-il des problmes de NP qui soient
hors de P mais pas NP-complet (langages intermdiaires ) ?

NP-complet

NP-complet

ou
P

intermdiaire
P

Figure 3.7 Si P = NP, existe-t-il des problmes intermdiaires (figure de droite) ou


non (figure de gauche) ?

En sinspirant de mthodes issues de calculabilit, Ladner [Lad75a] rpond cette question ds 1975.
3-AK

Thorme (Ladner, 1975)

Si P = NP alors il existe un problme A NP tel que :


A P ;
A nest pas NP-complet.
Ide de la dmonstration Le langage A sera SAT avec des trous . Plus prcisment,
pour certains intervalles de longueur de mots, A sera vide ( trous ) tandis que pour
les autres intervalles de longueur de mots, A sera gal SAT (voir figure 3.8). Sils sont
assez grands, les premiers intervalles garantissent que A nest pas NP-complet, tandis
que les seconds garantissent quil nest pas dans P.
3-AL Remarque Avant de voir la dmonstration dtaille, il nous faut formaliser le
concept dnumration des machines de Turing fonctionnant en temps polynomial. Le code
dune machine de Turing nest quun mot sur un alphabet fini, ce nest donc pas difficile
dnumrer le code de toutes les machines, M1 , M2 , . . . On remarquera que dans cette liste,
pour chaque i il y a une infinit de machines quivalentes M i puisquil suffit dajouter
des instructions inutiles pour augmenter la taille du code.

3.2. Compltude

87

En revanche, pour numrer seulement les machines fonctionnant en temps polynomial


il faut une astuce. Il sagit dajouter un ruban la machine M i permettant de compter
le nombre dtapes de calcul. Ds que le compteur dpasse i + n i (o n est la taille de
lentre), on arrte le calcul en rejetant. On obtient ainsi une nouvelle numration (M i )
de certaines machines de Turing, dans laquelle M i fonctionne en temps polynomial (i +
n i ) mais est ventuellement interrompue au cours de son calcul.
Si M est une machine fonctionnant en temps polynomial p(n), alors il existe k tel que
p(n) k + n k pour tout n . Soit M i lune des machines quivalentes M et telle que
i k . Alors M i fonctionne en temps i + n i p(n), donc son calcul nest pas interrompu
et elle est aussi quivalente M . Ainsi, (M i ) est une numration de toutes les machines
fonctionnant en temps polynomial.

Dmonstration (th. 3-AK) Si h : N N est une fonction strictement croissante, on


dfinit
SAT h = { | SAT et i h(2i) || < h(2i + 1)}.

;
0

SAT

h(0)

h(1)

SAT

h(2)

SAT

h(3)

...

h(2i)

h(2i + 1) . . .

Figure 3.8 Langage SAT h .

Si, sur lentre 1n , on sait calculer en temps polynomial h(0), h(1), . . . , h(i ) o i est
le plus grand entier tel que h(i) n , alors SAT h NP. En effet, lalgorithme suivant
convient pour SAT h sur lentre :
calculer h(0), h(1), . . . , h(i ) o i est le plus grand entier tel que
h(i ) || ;
si i est impair, rejeter ;
dcider (de manire non dterministe) si SAT.
Lobjectif est maintenant de dfinir une fonction h ayant cette proprit, et telle que
SAT h ne soit ni dans P ni NP-complet. Pour cela, nous allons utiliser les deux observations suivantes.
1. Puisque P = NP (par hypothse) et que SAT est NP-complet, SAT P.
En dautres termes, pour toute machine dterministe polynomiale M et tout
entier n , il existe telle que
|| n ;

Chapitre 3. NP-compltude

88

M () accepte ssi SAT


(cest--dire [ SAT et M () rejette] ou [ SAT et M () accepte] ; en
dautres termes, M se trompe sur ).
2. Si A est un langage fini (donc dans P), puisque P = NP par hypothse, SAT ne se
rduit pas A.
En dautres termes, pour toute rduction polynomiale f et tout entier n , il existe
telle que
|| n ;
f () A ssi SAT
(cest--dire [ SAT et f () A] ou [ SAT et f () A]).
On dfinit arbitrairement h(0) = 0. Les valeurs suivantes de h vont tre dfinies grce
au temps de fonctionnement dune certaine machine M , qui prendra en entre des
entiers i et m0 , . . . , mi1 (plus tard on prendra m j = h( j )).
Soit (M i ) une numration des machines fonctionnant en temps polynomial (voir
remarque 3-AL) et qui calculent une fonction de {0, 1} dans {0, 1} : on verra tantt
M i comme calculant une rduction, tantt comme acceptant un langage (dans ce
mode acceptation , le mot est accept ssi le rsultat est 1).
Soit M la machine suivante, sur lentre (i , m0 , . . . , mi 1 ) :
si i est impair, i = 2k + 1, numrer par taille croissante toutes
les formules de taille > mi 1 et simuler M k (), jusqu trouver
telle que [M k () = 1 ssi SAT] ;
si i est pair, i = 2k , numrer par taille croissante toutes les formules de taille > mi1 et simuler M k (), jusqu trouver telle
que :

soit m j |M k ()| < m j +1 pour j pair, et [M k () SAT ssi


SAT] ;

soit m j |M k ()| < m j +1 pour j impair, et SAT ;

soit |M k ()| mi 1 et SAT.

Par les observations 1 et 2 prcdentes, de telles formules existent forcment.


On dfinit alors rcursivement h comme suit : h(i ) est gal h(i 1) auquel on ajoute le
temps de calcul de M (i, h(0), . . . , h(i 1)). On remarquera notamment que la formule
recherche par M vrifie h(i 1) || < h(i ) puisque le temps de calcul de M est
videmment suprieur la taille de . De plus, sur lentre 1n , on sait calculer en temps
polynomial h(0), h(1), . . . , h(i ) o i est le plus grand entier tel que h(i ) n , puisquil
suffit de simuler les fonctionnements successifs de M jusqu ce que le nombre dtapes
total de la simulation dpasse n . Ainsi, SAT h NP par ce qui prcde.
Nous prtendons que SAT h nest pas dans P et quil nest pas NP-complet. Pour montrer
cela, nous raisonnons par labsurde.

3.2. Compltude

89

Si SAT h P alors il est reconnu par une machine polynomiale M k . Par dfinition de
SAT h , pour tout si h(2k) || < h(2k + 1) alors [ SAT h ssi SAT]. Or par
dfinition de h , il existe une formule de taille comprise entre h(2k) et h(2k + 1)
telle que [M k () = 1 ssi SAT]. Ainsi, M k donne la mauvaise rponse pour , une

contradiction.
Si SAT h est NP-complet, alors il existe une rduction polynomiale de SAT SAT h calcule par une machine M k , cest--dire SAT M k () SAT h . Or par dfinition
de h , il existe de taille comprise entre h(2k 1) et h(2k) telle que :
soit h( j ) |M k ()| < h( j +1) pour j impair et SAT, dans ce cas M k () SAT h
et donc M k nest pas une rduction de SAT SAT h ;
soit h( j ) |M k ()| < h( j + 1) pour j pair et [M k () SAT ssi SAT]. Or la
taille de M k () implique que [M k () SAT ssi M k () SAT h ], donc M k nest pas
une rduction de SAT SAT h .
Ainsi, aucune machine polynomiale ne dcide SAT h ni ne rduit SAT SAT h , ce qui

conclut la preuve.

3-AM

Remarques

Le rsultat original de Ladner est en fait sensiblement plus fort. On peut en effet
faire la mme construction partir dun langage A P dcidable quelconque, plutt
que de partir de SAT. On obtient donc lnonc suivant : si A P est dcidable, alors
il existe B P tel que B pm A et A pm B .
En dautres termes, sous lhypothse P = NP il existe une infinit de langages
p

SAT > m A1 > m A2 > m . . .

tels que Ai +1 se rduit Ai mais Ai ne se rduit pas Ai+1 .


On ne connat pas de langage qui soit intermdiaire sous lhypothse P = NP et qui
soit plus naturel que la construction de Ladner ci-dessus (bien que le problme
de la factorisation dentiers et celui de lisomorphisme de graphes que lon verra au
chapitre 10 soient des candidats).
Il dcoule du thorme de Ladner que la NP-compltude ne peut pas tre dfinie
ainsi : les langages A NP tels que A P = P = NP . En effet, si P = NP
alors tout langage intermdiaire (un langage de NP qui ne soit ni complet ni dans
P) serait complet (car faux implique faux ), une absurdit.

. 3-AN

Exercice

Montrer le premier point de la remarque prcdente.

Chapitre 3. NP-compltude

90

. 3-AO

Exercice

Montrer quil existe un langage A EXP qui ne soit pas EXP-difficile.


Indication : grce une stratgie de preuve similaire celle pour le thorme de Ladner,
transformer un problme L EXP en un problme A EXP qui ne soit pas EXP-difficile.

3.2.6

Thorme de Mahaney

En guise dchauffement cette partie, on pourra sentraner rsoudre lexercice B-F.


Dans lobjectif de mieux comprendre les problmes NP-complet, nous allons maintenant
voir quun problme NP-difficile doit possder beaucoup dlments. Plus prcisment, si
P = NP alors il ne peut pas tre creux au sens de la dfinition suivante.
3-AP

Dfinition

Un langage A est dit creux sil existe un polynme p(n) tel que pour tout n , le nombre de
mots de A de taille n est au plus p(n).
De manire quivalente, A est creux si le
nombre de mots de A de taille n est major
par un polynme q(n) (prendre q(n) = ni=0 p(i)).
On rappelle que A=n et An dsignent respectivement lensemble des mots de A de taille
n et de taille n . On a donc |A=n | p(n) et |An | q(n) pour tout n .
Mahaney [Mah82] a en effet montr le rsultat suivant.
3-AQ

Thorme (Mahaney, 1982)

Sil existe un langage creux NP-difficile, alors P = NP.


Ide de la dmonstration Sous lhypothse dun langage creux NP-difficile, nous donnons un algorithme polynomial pour SAT. Celui-ci recherche la solution maximale (si
elle existe) dune formule . Si S est un langage creux NP-difficile et f une rduction
de SAT S , lide est de parcourir larbre des solutions possibles en se servant de f et
du caractre creux de S pour laguer des branches de larbre et nexplorer quun
nombre polynomial de nuds chaque niveau.
Dmonstration Supposons que S soit un langage creux NP-difficile possdant p(n)
mots de taille n , et que SAT se rduise S via f (calculable en temps polynomial) :
[ SAT ssi f () S ]. Soit q un polynme tel que | f ()| q(||). Nous allons nous
servir de f et du caractre creux de S pour donner un algorithme polynomial
pour SAT. Sur lentre , celui-ci va rechercher la solution de maximale pour lordre
lexicographique (si elle existe).

3.2. Compltude

91

Si (x) est une instance de SAT (o x = x1 . . . xn ), pour y = y1 . . . yn on note y (x) la


formule [(x y) (x)], o x y signifie que x est aprs y dans lordre lexicographique et peut scrire simplement avec les symboles autoriss habituels en disant que
soit x = y , soit il existe un prfixe identique de taille k 1 et que le k -me bit de x est
1 tandis que celui de y est 0 :
(

i[1,n]

xi yi )

k[1,n]

xi yi (xk yk ) .

i<k

Ainsi, y SAT ssi possde une solution x suprieure y (pour lordre lexicographique). Le code de y est bien sr calculable en temps polynomial partir de y et de
. On notera m la taille dune formule y .
Lavantage de considrer les formules y est que lensemble {y | y SAT} est clos
vers la gauche, cest--dire que si y SAT et y y alors y SAT (cf. illustration
figure 3.9). Cela va faciliter la recherche de la solution maximale de .
solution max
de

y = 0...0
y tels que y SAT

y = 1...1

y tels que y SAT

Figure 3.9 Clture vers la gauche des y tels que y SAT.


Notre algorithme pour rechercher la solution maximale de va dvelopper larbre
binaire complet des y pour |y| = n , dans lequel :
les 2i nuds la profondeur i sont tous les z0ni pour |z| = i ;
les fils de z0ni sont z 0ni 1 et z 0ni 1 o z = z0 et z = z1.
La branche descendant dun nud z0 . . . 0 est donc lensemble des y ayant z comme
prfixe. Grce f et au caractre creux de S , nous pourrons garder seulement
p(q(n)) nuds chaque niveau (cf. figure 3.10). Il faut toutefois maintenir linvariant
suivant :
chaque niveau, lune des branches restantes contient la solution maximale de
(de sorte que lune des feuilles est gale cette solution maximale).
Il y a deux raisons grce auxquelles on peut supprimer des nuds dans larbre tout en
prservant linvariant :
si f (y ) = f (y ) et y < y , alors par dfinition de f soit y et y sont tous deux
dans SAT, soit ils sont tous deux hors de SAT. Donc la solution x maximale de
vrifie soit x y , soit x < y . Dans les deux cas, il nest pas ncessaire dexplorer
la branche de y . Cela permet de se restreindre aux nuds ayant des images par
f toutes diffrentes.

Chapitre 3. NP-compltude

92

00...0

10...0
mme image

000...0

010...0

100...0

110...0

en surplus

solution
max de

Figure 3.10 lagage de larbre pour la formule .

Si aprs application de llagage prcdent, un niveau contient encore un nombre


N > p(q(m)) nuds, on peut supprimer les (N p(q(m))) plus grands nuds,
car ils sont en surplus . En effet, les images des N nuds sont toutes diffrentes
(par le point prcdent), donc au moins N p(q(m)) nuds ont leur image hors
de S (puisque |S q(m) | p(q(m))), cest--dire quils sont eux-mmes hors de
SAT. Et par clture gauche, seuls les p(q(m)) premiers peuvent ventuellement
appartenir SAT.
Lalgorithme parcourt larbre niveau par niveau en laguant les branches inutiles, de
sorte quil ne conserve quun nombre polynomial de nuds chaque niveau (au plus
p(q(m))). Au dernier niveau de larbre (le niveau n ), il y a p(q(m)) feuilles y1 , . . . , yk .
Par linvariant, lune dentre elles correspond la solution maximale de si elle existe.
Il suffit alors de vrifier si (yi ) est vrai pour lune des feuilles yi . Puisquil y a n niveaux,
lalgorithme est polynomial.
Plus prcisment, on maintient lensemble Yi des prfixes y indexant les nuds du
niveau i . Au dpart, Y1 {0, 1}. Voici la procdure pour calculer Yi +1 , o U est un
ensemble permettant de conserver les images par f des nuds vus jusqu prsent.
On numre les nuds du niveau prcdent par ordre dcroissant afin de pouvoir
supprimer le plus petit nud lorsque deux nuds ont la mme image.
Yi+1 ; ;
U ;;
Pour chaque y Yi par ordre dcroissant faire

u f (y10...0 ),

3.2. Compltude

93

si u U alors
Yi+1 Yi +1 {y1}
U U {u},

u f (y00...0 ),

si u U alors
Yi+1 Yi +1 {y0}
U U {u} ;

si Yi +1 contient N > p(q(m)) lments, alors supprimer les


(N p(q(m))) plus grands.
Une fois que Yn est calcul, il suffit de tester si (y) est vrai pour lun des y Yn .
Si cest le cas, alors SAT, sinon SAT puisque par linvariant, Yn contient la
solution maximale de si elle existe. Cet algorithme pour SAT fonctionne en temps

polynomial, donc P = NP.

3.2.7

Algorithme polynomial pour SAT si P = NP

Pour complter ce chapitre sur NP, nous allons voir que la question P = NP ? se ramne
lanalyse dun unique algorithme. Il nous faut tout dabord un lemme simple qui montre
comment transformer un problme dvaluation en un problme de dcision.
3-AR

Lemme

Si P = NP alors il existe une machine dterministe fonctionnant en temps polynomial


qui, sur lentre (une instance de SAT), accepte et renvoie une affectation satisfaisant
si est satisfaisable, ou rejette sinon.
Ide de la dmonstration Il sagit de raliser une recherche prfixe de la plus petite solution de .
Dmonstration Soit L le langage L = {(, a) | b , (a b ) = 1}, o a est le dbut dune
affectation (partielle) de et b est la fin de cette affectation. En dautres termes, L
permet de savoir si lon peut complter a de manire obtenir une solution de .
Cest bien sr un langage de NP donc, par hypothse, de P. Voici lalgorithme pour
trouver la plus petite solution de (x1 , . . . , xn ) :
a (affectation vide) ;
pour i de 1 n faire

Chapitre 3. NP-compltude

94

si (, a0) L alors a a0,

sinon a a1 ;

si (a) = 1 alors accepter et renvoyer a ,


sinon rejeter.
Cest ainsi une recherche prfixe de la plus petite solution de , qui se droule en

temps polynomial puisque le test (, a0) L se fait en temps polynomial.

Si P = NP alors SAT possde un algorithme polynomial, mais on ne sait pas lequel. Avec
un peu dastuce on peut tout de mme donner un algorithme A fix tel que A rsout
presque SAT et fonctionne en temps polynomial si P = NP. Il sagit dune variante de
lalgorithme optimal de recherche universelle de Levin [Lev73]. Lnonc prcis est donn
la proposition 3-AT.
Pour dcrire lalgorithme, on aura besoin comme la remarque 3-AL dune numration (M i ) des machines fonctionnant en temps polynomial. Ici, ces machines sont censes renvoyer une affectation des variables de la formule donne en entre (comme au
lemme 3-AR).
Voici cet algorithme M sur une entre de taille n (une formule boolenne, cest--dire
une instance de SAT).

i 1;
pour i de 1 n faire

simuler M i () pour toute formule de taille log n ,


si pour tout , M i donne toujours une affectation valide lorsque
SAT, sortir de la boucle ;

simuler M i (), produisant un rsultat a (une affectation des variables de ) ;


si (a) = 1 accepter, sinon rejeter.

3-AS Remarque Comme dans tout langage de programmation, la valeur de i aprs


la boucle pour est gale soit la valeur de i au moment de la sortie de boucle si on sort
prmaturment, soit n + 1 si la boucle sest droule compltement.

3.2. Compltude
3-AT

95

Proposition

Si P = NP alors la machine M ci-dessus vrifie :


M fonctionne en temps polynomial ;
M dcide SAT pour toute entre suffisamment grande, cest--dire quil existe m tel
que pour tout , si || m alors [M () = 1 ssi SAT].
Ide de la dmonstration M simule les machines M i les unes aprs les autres. Si P = NP
alors lune dentre elles, M i0 , rsout SAT. Pour toutes les entres suffisamment grandes,
on atteint M i0 et notre algorithme donne alors la bonne rponse. Le temps de calcul
est alors celui de M i0 , qui est polynomial.
Dmonstration Si P = NP, soit M i0 la premire machine de lnumration qui renvoie
une affectation valide pour toute formule SAT. Toute machine M i pour i < i0 se
trompe donc sur au moins une formule (cest--dire quil existe SAT et M i () nest
pas une affectation valide) : soit N la taille minimum telle que i < i0 , M i se trompe
sur une formule de taille < N .
Alors pour || max{i0 , 2N }, la boucle pour trouve une erreur pour toutes les machines M i telles que i < i0 , donc on sort de la boucle pour i = i0 . On simule alors
la machine M i0 qui donne une affectation valide si une telle affectation existe. Ainsi,
M () = 1 si SAT, et bien sr, par conception de lalgorithme, pour tout SAT,
M () = 0.
Pour le temps dexcution, rappelons que M i fonctionne en temps O(n i ), donc on
simule M i en temps O(n 2i ) par la machine universelle de la proposition 1-Q. On
excute au plus i0 fois la boucle pour, toutes les machines simules fonctionnent en
temps n i0 et sont simules sur 2log n = n formules de taille log n . Donc la boucle
pour prend un temps i0 n(log n)2i0 . Puis la simulation de M i0 () prend un temps

O(n 2i0 ) : au total, M fonctionne donc en temps polynomial.

3-AU

Remarques

Si P = NP alors la machine M ci-dessus ne fonctionne pas en temps polynomial car


elle va alors simuler des machines M i pour i de plus en plus grand. Or M i fonctionne
en temps n i , ce qui fait que M nest pas polynomiale. De plus, il ny a pas de
raison quelle reconnaisse correctement SAT, mme sur des instances suffisamment
grandes.
On ne sait pas construire une telle machine M qui fonctionnerait sur toute entre
(et non seulement sur des entres suffisamment grandes).

Pour complter les rflexions sur la NP-compltude, les exercices B-F et B-C en annexe
abordent des thmes traits dans ce chapitre.

Considrations de base
sur lespace
Jusqu prsent, nous avons abord la complexit algorithmique seulement travers le
prisme du temps de calcul. Pour quun calcul soit utilisable, il est en effet ncessaire quil
sexcute rapidement. Mais il existe une autre ressource critique : la mmoire. Par exemple,
un algorithme effectuant n 4 oprations peut ventuellement encore tre considr comme
raisonnablement efficace en termes de temps dexcution puisque le temps ncessaire
une machine actuelle effectuant 1011 oprations par seconde pour excuter lalgorithme
sur une entre de taille 10 000 est denviron un jour. Mais si chaque tape il utilise
une nouvelle case mmoire alors il lui faudra 1016 cases pour raliser son calcul. Cest
rdhibitoire actuellement, tout au moins si lon se restreint la mmoire vive afin dviter
les lents accs disque.
De la mme faon que nous lavons fait pour le temps de calcul, nous allons donc dfinir
et tudier des classes de complexit en espace. Cela nous amnera notamment ltude
de classes plus petites que P, du rle du non-dterminisme pour lespace ainsi que de
problmes complets naturels.

4.1

Espace dterministe

Comme pour le temps, nous dfinirons la complexit en espace en fonction de la taille de


lentre. Lespace utilis par une machine est simplement le nombre de cases diffrentes
visites sur les rubans de travail.

4.1.1

Dfinitions

Nous rappelons ici la dfinition 1-F concernant le dcompte de lespace utilis par une
machine avant de dfinir des classes de complexit.

98

Chapitre 4. Considrations de base sur lespace

4-A

Dfinition

Si M est une machine de Turing dterministe et x une entre, lespace utilis par M
sur x est le nombre de cases diffrentes visites par M sur ses rubans de travail au
cours de son calcul.
Si s : N N est une fonction, on dit que M fonctionne en espace O(s (n)) si elle
sarrte sur toute entre et sil existe une constante > 0 telle que pour toute entre
x , M (x) utilise un espace s (|x|).
Si s : N N est une fonction, la classe DSPACE(s (n)) est lensemble des langages
reconnus par une machine fonctionnant en espace O(s (n)).

4-B

Remarques

Une machine pourrait boucler infiniment et ne jamais sarrter tout en utilisant


un espace s (n), cest pourquoi nous devons imposer larrt sur toute entre des
machines que nous considrons.
Dans une dfinition alternative, quivalente mais moins lgante, on pourrait imposer que la tte du ruban de lecture ne dpasse de plus dune case, ni sur la gauche
ni sur la droite, les extrmits du mot dentre. Cela viterait de pouvoir dtourner
le rle de ce ruban en utilisant la position de la tte pour effectuer des calculs, et
simplifierait ainsi la preuve du lemme 4-V. lexercice 4-Y on verra lquivalence
des deux dfinitions.
Ainsi, comme pour le temps, la complexit en espace nest dfinie qu une constante multiplicative prs. Cela vient du fait que, de la mme manire que le thorme dacclration
linaire 2-E, on peut diviser par une constante lespace ncessaire en augmentant lalphabet de travail. La dmonstration est trs similaire celle du thorme 2-E mais on vite
de recopier lentre puisquon peut la lire directement sur le ruban dentre sans pnaliser
lespace. On obtient alors le thorme suivant que nous donnons sans dmonstration.
4-C

Thorme (rduction linaire de lespace)

Soit M une machine fonctionnant en espace s (n) et dcidant un langage A. Pour toute
constante > 0, il existe une machine M dcidant A et fonctionnant en espace s(n).

. 4-D

Exercice
Faire la dmonstration du thorme prcdent.

Afin de shabituer aux algorithmes en espace restreint, il nest pas inutile de voir ds
prsent quelques exemples.

4.1. Espace dterministe

99

4.1.2

Espace logarithmique
Un peu de recul

Le fait de ne compter que les rubans de travail dans le calcul de la complexit en espace
permet dautoriser en un espace sous-linaire lire quand mme lentre en entier, ce qui
est ncessaire pour la plupart des problmes non triviaux.
Comme nous les avons dfinies, nos machines de Turing ne peuvent pas tricher avec les
rubans dentre et de sortie car ceux-ci sont respectivement en lecture seule et en criture
seule, ce qui ne leur permet pas vraiment de raliser des calculs.
Cette remarque nous amne la dfinition de la classe trs usuelle des langages reconnus
en espace logarithmique. Par abus de langage, on notera log n pour dsigner la fonction
sur les entiers log n afin de respecter la dfinition ci-dessus, bien que cela ne change pas
grand-chose puisque lespace est mesur une constante prs.
4-E

Dfinition (espace logarithmique)

La classe L est lensemble des langages reconnus en espace logarithmique O(log n), cest-dire L = DSPACE(log n).
La restriction sur lespace semble si forte quon peut se demander ce quil est possible de
calculer en espace logarithmique. Voici quelques exemples.
4-F Exemple Machine qui ajoute 1 un nombre binaire donn en entre. Cette
machine est en fait un automate fini puisquelle na pas besoin de ruban de travail :
elle ne dispose que de son ruban dentre en lecture seule et de son ruban de sortie en
criture seule. Son fonctionnement est le suivant :
elle se dplace sur la dernire lettre de son ruban dentre ;
de droite gauche, tant quelle lit un 1 sur son ruban dentre, elle crit 0 sur son
ruban de sortie (la retenue se propage) ;
ds quelle lit 0 en entre elle crit 1 en sortie (la retenue) et continue son parcours
de droite gauche, en recopiant maintenant chaque symbole sur la sortie (il ny
a plus de retenue) ;
si elle arrive au dbut de lentre sans avoir vu de 0, alors elle ajoute un 1 en tte
(la retenue) sur le ruban de sortie.
Une dcrmentation peut bien sr se faire de manire similaire.
4-G

Exemple Machine un ruban de travail qui renvoie log n en unaire sur lentre

1n (n en unaire) :

un compteur binaire est initialis 0 sur le ruban de travail ;

100

Chapitre 4. Considrations de base sur lespace


on parcourt lentre de gauche droite tant que le symbole 1 est lu ;
le compteur est incrment de 1 chaque tape la faon de lexemple prcdent ;
enfin, on parcourt partir de la deuxime case la valeur finale du compteur en
crivant un 1 sur le ruban de sortie chaque symbole lu.

Puisque la longueur de lcriture binaire de n est 1+log n, on obtient bien le rsultat


voulu. Lespace utilis sur le ruban de travail ne dpasse jamais log n .
4-H

Exemple Machine deux rubans de travail qui prend en entre deux nombres

x et y en binaire, et calcule leur somme x + y en binaire. On va effectuer lalgorithme

de lcole primaire pour laddition. Mais puisquon ne peut pas crire sur le ruban
dentre pour se reprer dans les mots x et y , ni les recopier sur un ruban de travail (ce
qui dpasserait lespace logarithmique autoris), lide est de maintenir un compteur
binaire c sur le premier ruban de travail pour retenir la position en cours de traitement
dans x et y .
Initialiser le compteur c 0 et retenir une retenue r gale 0.
Tant que x et y nont pas t lus compltement, faire

aller la fin du mot x ;

se dplacer gauche de c cases : pour cela, recopier c sur le second ruban


de travail et le dcrmenter jusqu tomber sur 0, en se dplaant gauche
chaque dcrmentation ;

retenir le chiffre lu a ;

aller la fin du mot y ;

se dplacer gauche de c cases (mme mthode) ;

retenir le chiffre lu b ;

si a + b + r > 1 alors crire a + b + r 2 sur le ruban de sortie, se dplacer


gauche et retenir r = 1 ;
sinon crire a + b + r sur le ruban de sortie, se dplacer gauche et retenir
r = 0,
incrmenter c de 1 comme lexemple 4-F.

Lespace utilis sur les rubans de travail nexcde pas deux fois la longueur du compteur
et est donc logarithmique.
On le voit, lastuce pour utiliser seulement un espace logarithmique consiste souvent
utiliser des compteurs en binaire pour se reprer sur les rubans. En ralit, en espace
logarithmique on peut calculer beaucoup de fonctions de bases (addition, multiplication,
etc.), peut-tre plus quon pourrait le croire a priori.

4.1. Espace dterministe

. 4-I

101

Exercice
Dcrire le principe dune machine de Turing fonctionnant en espace logarithmique
qui calcule le produit de deux nombres binaires x et y donns en entre.

4.1.3

Composition

Puisque le ruban de sortie nest pas compt dans lespace, une fonction g :
calculable en espace s g (n) peut renvoyer un rsultat de taille | g (x)| trs suprieure s g (|x|).
Nanmoins, lors de la composition f g de deux fonctions f et g , il nest pas ncessaire
de calculer intgralement sur un ruban la valeur g (x) renvoye par g . En la calculant la
vole comme le montre la proposition suivante, on peut en effet conomiser de lespace
par rapport lalgorithme naf consistant calculer g (x) avant dexcuter f sur lentre
g (x), ce qui prendrait un espace O(s g (|x|) + | g (x)| + s f (| g (x)|)).
4-J

Proposition

Si f , g : sont deux fonctions calculables en espace s f (n) log n et s g (n)


respectivement, alors leur composition f g , x 7 f ( g (x)), est calculable en espace
O(s g (|x|) + s f (| g (x)|)).
Ide de la dmonstration Pour calculer f (g (x)), il sagit simplement dexcuter la machine pour f et, ds quelle souhaite lire une nouvelle case de son entre, de recalculer
g (x) la vole (grce la machine pour g ) sans stocker le rsultat.
Dmonstration Remarquons tout dabord quen espace s g (|x|) + log | g (x)|, sur lentre
(i, x) on peut calculer le i -me symbole de g (x). Voici comment procder, o M g
dsigne la machine calculant g en espace s g (n).
Simuler M g (x) sans crire sur le ruban de sortie, mais en mettant jour sur un
ruban de travail auxiliaire la position de la case la plus gauche du ruban de sortie
dans laquelle un symbole non vide est inscrit. Cela se fait en incrmentant un
compteur ds que la tte dpasse la prcdente position sur la gauche. Lespace
utilis est s g (|x|) pour la machine M g elle-mme, et O(log | g (x)|) pour maintenir
le compteur. Nous connaissons donc maintenant le numro de la case du premier
symbole de g (x) sur le ruban de sortie.
Simuler une nouvelle fois M g (x) sans crire sur le ruban de sortie, mais en mettant
jour sur un ruban de travail auxiliaire la position de la tte sur le ruban de sortie.
Ds que la tte passe par la i -me case partir de la position la plus gauche
(cest--dire ds quon passe par la case correspondant au i -me symbole de g (x)),
mettre jour le nouveau symbole inscrit.
la fin du calcul, nous avons bien le dernier symbole crit sur la case correspondant
au i -me symbole de g (x). Si M g a k g rubans de travail alors la machine que lon vient

102

Chapitre 4. Considrations de base sur lespace

de dcrire en a k g + 2.
Voici maintenant comment calculer f (g (x)) en espace O(s g (|x|) + s f (| g (x)|)), o M f
dsigne la machine calculant f en espace s f (n). Si k f dsigne le nombre de rubans de
travail de M f , alors le nombre de rubans de travail de la machine suivante est k f +k g +2.
Le ruban de sortie correspond celui de M f .
i 1;
tant que M f natteint pas un tat terminal faire

calculer le i -me symbole de g (x), not a ,

simuler une tape de calcul de M f en remplaant le rsultat


de la lecture du ruban dentre par le symbole a ,

si la tte du ruban dentre de M f se dplace vers la gauche,


alors i i 1 ; si elle se dplace vers la droite, alors i i +1.

Puisque s f (n) log n , que le calcul de f sur lentre g (x) utilise un espace s f (|g (x)|),
et quon rutilise chaque fois lespace pris par le calcul des symboles de g (x), lespace

total est O(s g (|x|) + s f (|g (x)|)).

4.1.4

Thorme de hirarchie

Comme pour la complexit en temps, un thorme de hirarchie d Stearns, Hartmanis


et Lewis [SHL65] montre que disposer de plus despace permet de dcider strictement
plus de langages. Pour lnoncer, nous avons besoin de la notion de fonction constructible
en espace.
4-K

Dfinition

Une fonction s : N N est constructible en espace sil existe une constante et une machine
de Turing M qui, sur lentre 1n (lentier n en unaire) renvoie 1 s(n) (lentier s(n) en unaire)
en utilisant un espace s(n).
L encore, les fonctions usuelles de complexit sont constructibles en espace, par exemple :
s(n) = log n comme on la vu lexemple 4-G ;
s(n) = n ;
si s (n) et s (n) sont constructibles en espace, alors il en est de mme de leur produit
et de leur somme : ainsi, tous les log nk et tous les polynmes sont constructibles
en espace ;
s(n) = 2n est constructible en espace.

4.2. Espace non dterministe

. 4-L

103

Exercice
Montrer que les fonctions ci-dessus sont constructibles en espace.

. 4-M

Exercice
Montrer que si s est constructible en espace et s = o(log n) alors s est ultimement
constante.
Indication : utiliser la proposition 4-W ci-aprs.

On montre le thorme de hirarchie en espace suivant de la mme faon que pour la


complexit en temps (thorme 2-J). Lcart entre f et g est plus rduit que pour le
temps car lespace utilis par la machine universelle de la proposition 1-Q nest quun
facteur constant plus grand que celui de la machine simule.
4-N

Thorme (hirarchie en espace dterministe)

Soit f : N N et g : N N des fonctions telles que f (n) = 0 (pour tout n N), g est
constructible en espace et f = o(g ). Alors DSPACE( f (n)) DSPACE(g (n)).

. 4-O

Exercice
Montrer ce thorme.

4.2

Espace non dterministe

De la mme faon que pour la complexit en temps, on peut aussi considrer des machines
de Turing non dterministes. Rappelons quun mot est accept par une machine de Turing
non dterministe si et seulement sil existe un chemin acceptant.
4-P

Dfinition

Si s : N N est une fonction, on dit quune machine non dterministe N fonctionne en espace O(s (n)) si elle sarrte sur toute entre le long de toute excution et
sil existe une constante > 0 telle que pour toute entre x , N (x) utilise un espace
s(n) sur tout chemin de calcul.
Si s : N N est une fonction, la classe NSPACE(s(n)) est lensemble des langages
reconnus par une machine de Turing non dterministe fonctionnant en espace
O(s (n)).

104

Chapitre 4. Considrations de base sur lespace

Encore une fois, nous disposons dun thorme de hirarchie. Pour le montrer, on peut
suivre la preuve du thorme 2-J de hirarchie en temps dterministe mais avec la machine
universelle de la remarque 2-AC, et utiliser le thorme 4-AZ dImmerman-Szelepcsnyi
ci-dessous pour prendre le complmentaire. Si lon se contente de f (n + 1) = o( g (n)),
alors on peut galement suivre la preuve du thorme 2-AI de hirarchie en temps non
dterministe combine avec le thorme 4-AS de Savitch ci-dessous pour simuler une
machine non dterministe par une machine dterministe.
4-Q

Thorme (hirarchie en espace non dterministe)

Soit f : N N et g : N N des fonctions telles que f (n) = 0 (pour tout n N), g est
constructible en espace et f = o( g ). Alors NSPACE( f (n)) NSPACE( g (n)).

. 4-R

Exercice
Rdiger les deux stratgies de preuve mentionnes ci-dessus.

Cependant, comme on le verra la section 4.5, le non-dterminisme occupe une moins


grande importance pour la complexit en espace, sauf pour lespace logarithmique.
cette section nous tudierons deux exemples dalgorithmes non dterministes en espace
restreint.

4.3

Comparaison avec les classes en temps

Si lon connat plus de rsultats sur la complexit en espace (par rapport celle en temps),
cest principalement grce une technique, consistant tudier le graphe des configurations de la machine fonctionnant en espace s(n). Nous en verrons plusieurs illustrations,
ce qui justifie den donner dabord le cadre gnral.
4-S

Dfinition (graphe des configurations)

Soit N une machine de Turing (ventuellement non dterministe).


On appelle configuration de travail de N la donne de ltat de la machine, du
contenu des rubans de travail et de la position des ttes des rubans dentre et de
travail. Il sagit donc dune configuration normale comme au chapitre 1 mais o
le contenu des rubans dentre et de sortie nest pas pris en compte, ni la position
de la tte sur le ruban de sortie.
Le graphe des configurations de N (x) est le graphe orient dont les sommets sont
les configurations de travail prises par N au cours de son calcul sur lentre x , et
il y a un arc dun sommet c1 un sommet c2 si N peut aller en une tape de la
configuration c1 la configuration c2 (cf. figure 4.1).

4.3. Comparaison avec les classes en temps

105

cacc,1

c1

cacc,2
cinit

c3

crej,1

c2

crej,2

Figure 4.1 Graphe des configurations dune machine non dterministe N sur une
entre x , o cinit est la configuration initiale, cacc,1 et cacc,2 sont des configurations
acceptantes et crej,1 et crej,2 rejetant.

4-T

Remarques

La raison pour laquelle on oublie le contenu des rubans dentre et de sortie est
que le premier est en lecture seule et son contenu nest donc jamais modifi, et le
second est en criture seule, ce qui fait que son contenu ninfluence pas le calcul de
la machine.
Une configuration de travail contient toute linformation ncessaire pour dterminer le comportement futur dune machine dterministe, puisque celui-ci ne dpend
que de ltat de la machine et du contenu des cases lues sur les rubans de travail et
dentre.
Lutilit de ce graphe dans le cadre de la complexit en espace vient du lemme suivant qui
montre quil ne peut pas tre trop grand.
4-U Remarque De nombreux textes utilisent, parfois de manire implicite, la dfinition alternative dcrite la remarque 4-B o la tte du ruban de lecture ne peut pas
sortir du mot dentre. Dans ce cas, seule le dbut, beaucoup plus simple, de la preuve du
lemme suivant est ncessaire. Cest la raison pour laquelle nous lavons divise en deux
parties : en premire lecture, on pourra sans crainte laisser de ct la seconde partie.
De mme, selon cette dfinition alternative, il ne serait plus utile de diffrencier configurations de travail et configurations potentielles (cf. dfinition 4-AH) et il suffirait de
dnombrer ces dernires.

106

Chapitre 4. Considrations de base sur lespace

4-V

Lemme

Soit N une machine de Turing (ventuellement non dterministe) fonctionnant en espace


s (n) log n . Alors il existe une constante telle que pour toute entre x , le graphe des
configurations de N (x) possde au plus 2s(|x|) sommets.
En particulier, il existe une constante telle que la position de la tte du ruban de lecture
reste dans lintervalle [2 s (|x|) , 2 s(|x|) ] au cours du calcul N (x).
Ide de la dmonstration La borne vient essentiellement du fait que seules O(s(n))
cases sont non vides sur chaque ruban de travail, donc le nombre de contenus diffrents est major par | |O(s(n)) . Il faut en outre prendre en compte le nombre dtats
et la position des ttes, ce qui ne change pas fondamentalement cette borne. La partie
technique est due la tte du ruban dentre qui nest pas contrainte par la borne en
espace (ce qui pourrait tre vit en adoptant la dfinition alternative de la remarque 4B) et on utilisera un argument de pompage pour rsoudre ce problme.
Dmonstration Soit k le nombre de rubans de N , et n = |x|.
Nous allons tout dabord ignorer les positions possibles de la tte sur le ruban dentre,
ce que nous appellerons de configurations partielles. La machine N peut tre dans lun
des |Q| tats. Le nombre de cases visites sur les rubans de travail est s(n) pour
une certaine constante > 0, cest--dire que la position de chaque tte prend au plus
s (n) valeurs. Le contenu des cases non visites reste inchang (cases vides), donc le
contenu de chaque ruban de travail prend au plus | |s(n) valeurs possibles. Au total,
sans compter la position de la tte sur le ruban dentre, le nombre de possibilits est
major par
|Q|(s (n))k | |k s (n) .

En prenant en considration que , |Q|, | | et k sont constants et que s (n)k 2k s (n) ,


on peut majorer ce nombre de configurations partielles par 2 s(n) pour une certaine
constante ne dpendant que de la machine N .
Afin de dnombrer les configurations de travail, il nous faut maintenant montrer quil
ny a pas trop de positions possibles pour la tte du ruban dentre (cette partie plus
technique serait inutile si lon adoptait la dfinition alternative de la remarque 4-B).
Cest un argument de pompage (comme dans le lemme de ltoile pour les automates finis) pour montrer que si la tte va trop loin sur le ruban de lecture, la machine
boucle et le calcul ne termine pas.
Si N est non dterministe, on fixe une excution de N (x). Soit m la position de la case
extrme visite sur le ruban de lecture droite du mot dentre x (donc m > 0). On
note i1 la premire tape laquelle on atteint la case la position m .
Si m > n + 1 + 2 s (n) , alors pour arriver la premire fois cette position extrme, la
machine a effectu au moins 1 + 2 s(n) tapes en ne visitant que des cases vides sur le
ruban dentre. On note i0 la dernire tape avant i1 laquelle la tte est en position
n + 1 : en particulier, i1 i0 1 + 2 s (n) et entre i0 et i1 seules des cases vides sont
lues sur le ruban dentre. On dfinit maintenant comme suit une suite dintervalles
[u j , v j ] inclus dans [i0 , i1 ] (voir figure 4.2) :
u0 = i0 ;

4.3. Comparaison avec les classes en temps

107

v j est tel que [u j , v j ] est le plus grand intervalle dtapes pendant lequel N se
dplace uniquement vers la droite ;
u j +1 est la premire tape aprs v j laquelle la position de la tte est droite de
celle ltape v j .

position
position extrme

n +1
u0

v0

u1

v1

u2

v2

temps

Figure 4.2 Intervalles o N se dplace de manire croissante sur le ruban dentre.

Soit I = j [u j , v j ] : si a < b sont deux tapes de I , la position de la tte ltape b


est plus droite que celle ltape a . La taille de I est au moins 1 + 2 s(n) puisquon
doit atteindre la position m en partant de la position n + 1. Puisque le nombre de
configurations partielles est major par 2 s(n) , il existe deux tapes a < b dans I pour
lesquelles N a la mme configuration partielle, et o les positions de la tte sur le
ruban dentre sont respectivement pa < p b . Entre ces deux tapes, la tte sur le ruban
dentre ne visite que des cases vides (par dfinition de i0 ) ; puisque la configuration
partielle est la mme, de ltape b on peut rpter exactement le comportement de la
machine pour aller de la case p b la case p b + ( p b pa ) (en ne visitant que des cases
vides), et ainsi de suite, cest--dire quil existe une excution allant droite linfini,
ce qui contredit lhypothse que toute excution doit sarrter.
On en conclut que m n + 1 + 2 s (n) . Le mme raisonnement vers la gauche montrerait que la position de la case extrme visite gauche vrifie m 2 s(n) . Cela
implique que le nombre de positions possibles pour la tte de lecture du ruban dentre est major par n + 2 + 21+ s(n) . Puisque le nombre de configurations de travail est
major par le nombre de configurations partielles multipli par le nombre de positions

possibles sur le ruban dentre, on en dduit le rsultat.

Notre premire application de cette mthode est la dmonstration de la proposition suivante comparant complexit en temps et en espace.

108
4-W

Chapitre 4. Considrations de base sur lespace


Proposition

1. Pour toute fonction t (n), NTIME(t (n)) DSPACE(t (n)) ;


2. Pour toute fonction s (n), NSPACE(s (n)) DTIME(2O(s (n)) ).
Ide de la dmonstration Pour 1, en espace t (n) on peut simplement numrer tous
les chemins possibles et simuler la machine fonctionnant en temps t (n).
Pour 2, le nombre de configurations diffrentes dune machine M fonctionnant en
espace s (n) ne dpasse pas 2O(s (n)) puisque les rubans de travail ne peuvent pas contenir
des mots de taille suprieure s(n) (lemme 4-V). Si M prenait un temps 2(s (n)) , elle
passerait alors deux fois par la mme configuration et bouclerait infiniment.
Dmonstration Montrons dabord 1. On suppose pour simplifier que t (n) est constructible en espace, mais on pourrait se passer de cette hypothse (voir lexercice 4-X).
Soit N une machine non dterministe fonctionnant en temps t (n) (pour une certaine constante > 0) et dcidant un langage A. Soit R un majorant du nombre de
transitions possibles chaque tape (R dpend seulement de la fonction de transition
de N ). Voici une machine M pour A fonctionnant en espace O(t (n)).
Calculer t (n) ;
pour chaque y {0, . . . , R 1}t (n) faire

excuter N (x) le long du chemin y ,

accepter si ce calcul accepte ;

rejeter.
Puisque t (n) est suppos constructible en espace, pour le calculer il suffit dun espace
O(t (n)). Pour numrer tous les mots y {0, . . . , R 1}t (n) , il suffit galement dun
espace O(t (n)) : on commence par y = 0t (n) , puis chaque itration on incrmente
y en place en supposant quil reprsente un entier en base R, de la mme faon qu
lexemple 4-F en base 2. Enfin, lexcution de N (x) le long du chemin y prend encore
un espace O(t (n)) puisque le temps dexcution est lui-mme O(t (n)). Noter qu
chaque nouvelle itration il faut rutiliser lespace pris aux itrations prcdentes et
qui ne sert plus.
Pour montrer 2, on utilise la technique du graphe des configurations de la dfinition 4S. Soit N une machine non dterministe fonctionnant en espace O(s (n)) pour dcider
un langage A. Par le lemme 4-V, il existe une constante telle que le graphe des
configurations Gx de N (x) soit de taille majore par 2s (|x|) . Afin de savoir si x A,
il suffit de dcider sil existe un chemin dans Gx de la configuration initiale une
configuration acceptante. Pour cela, on peut utiliser un algorithme de parcours (par
exemple en largeur) qui prend un temps polynomial en la taille du graphe. Chaque
sommet (correspondant une configuration) est reprsent par ltat de la machine,
le contenu des rubans de travail et la position des ttes sur les rubans dentre et de

4.3. Comparaison avec les classes en temps

109

travail. Pour implmenter un tel algorithme, il suffit dtre capable dnumrer les
voisins dun sommet, ce qui se fait aisment en simulant une tape de N le long de
toutes les transitions possibles.
Puisque le graphe est de taille 2O(s (n)) et que le parcours prend un temps polynomial
en la taille du graphe, on obtient un algorithme dterministe fonctionnant en temps

2O(s (n)) .

. 4-X

Exercice
On a suppos dans la preuve du point 1 de la proposition prcdente que la fonction
t (n) tait constructible en temps. Montrer que cette hypothse nest pas ncessaire.
Indication : numrer y bit par bit et simuler N (x) le long de y au fur et mesure,
jusqu un tat terminal, puis effectuer du backtracking.

. 4-Y

Exercice
Le lemme 4-V montre que la tte sur le ruban de lecture dune machine
fonctionnant en espace s (n) ne peut pas visiter des cases hors de lintervalle
[2O(s(n)) , 2O(s(n)) ].
En utilisant ce rsultat, montrer que les deux dfinitions de complexit en espace
donnes la dfinition 4-A et la remarque 4-B sont quivalentes.
Indication : maintenir un compteur pour connatre la position de la tte sur le ruban
dentre.

Outre la classe L vue prcdemment (dfinition 4-E), on dfinit galement deux autres
classes usuelles.
4-Z

Dfinition

La classe PSPACE est lensemble des langages reconnus par une machine de Turing
fonctionnant en espace polynomial, cest--dire PSPACE = k>0 DSPACE(n k ).
La classe NL est lensemble des langages reconnus par une machine de Turing non dterministe fonctionnant en espace logarithmique, cest--dire NL = NSPACE(log n).

On pourrait ajouter la classe NPSPACE des langages reconnus par une machine non dterministe fonctionnant en espace polynomial. Cependant, nous ne la hissons pas jusque
dans notre dfinition cause du corollaire 4-AU que nous verrons ci-dessous.
De la proposition 4-W nous dduisons les inclusions suivantes concernant les classes vues
jusqu prsent :
L NL P NP PSPACE EXP NEXP.

110

Chapitre 4. Considrations de base sur lespace

Par ailleurs, nous savons par les thormes de hirarchie que PSPACE = NL (grce au
corollaire 4-AU), EXP = P et NEXP = NP. Outre ces sparations, savoir si les autres
inclusions sont strictes est une question ouverte, notamment P = NL ? , PSPACE = P ?
et EXP = PSPACE ? .

4.4

Compltude

Cest notamment lexistence de problmes naturels complets qui lgitime la dfinition de


classes de complexit. Comme pour NP, nous allons ainsi voir des problmes PSPACEcomplet et NL-complet. Cela nous permettra aussi de mieux comprendre la puissance de
ces deux classes.

4.4.1

Espace polynomial

Le problme qui nous intresse ici est une gnralisation de SAT. Dans SAT, il sagit de
savoir si une formule avec un quantificateur existentiel est vraie. Dans le problme QBF
que nous allons prsenter, la formule contiendra la fois des quantificateurs existentiels
et universels.
4-AA

Dfinition

Une formule boolenne quantifie est une formule de la forme


Q1 x1 Q2 x2 . . . Qn xn (x1 , . . . , xn )

o Qi est un quantificateur ou , et (x1 , . . . , xn ) une formule boolenne sans


quantificateurs (cf. dfinition 3-Q) sur les variables x1 , . . . , xn . On notera quune
telle formule na pas de variable libre puisquelles sont toutes lies par un quantificateur.
Le langage QBF (pour Quantified Boolean Formula) est lensemble des formules boolennes quantifies qui sont vraies.

4-AB Exemple = xyz(x y z) ((x y) z) est une formule boolenne


quantifie qui est vraie, donc QBF.
Il savre que ce problme est PSPACE-complet comme lont montr ds 1973 Stockmeyer
et Meyer [SM73].
4-AC

Thorme

Le problme QBF est PSPACE-complet.

4.4. Compltude

111

Ide de la dmonstration QBF est dans PSPACE grce un algorithme qui teste toutes
les possibilits, en rutilisant lespace chaque nouveau cas.
Pour la compltude, il sagit dexprimer par une formule boolenne quantifie de taille
polynomiale le calcul dune machine fonctionnant en espace polynomial. Pour cela,
nous exprimons le fait quil existe un chemin dans le graphe des configurations de la
configuration initiale une configuration acceptante. Pour viter dobtenir une formule de taille exponentielle, lastuce consiste employer un quantificateur universel
afin quune mme variable puisse jouer deux rles.
Dmonstration Voici un algorithme rcursif pour QBF.
QBF-rec() :
si na pas de quantificateur, accepter ssi est vraie ;
si = x (x), renvoyer QBF-rec( (0)) QBF-rec( (1)) ;
si = x (x), renvoyer QBF-rec( (0)) QBF-rec( (1)).
Pour mettre en uvre cet algorithme, il faut rutiliser lespace lorsque celui-ci est libr.
Ainsi, une fois lvaluation QBF-rec( (0)) termine, on efface lespace qui a t utilis
et on utilise cet espace pour lvaluation de QBF-rec( (1)).
Lespace utilis dpend du nombre n de variables (gal au nombre de quantificateurs).
Si n = 0 alors nest compose que de constantes et son valuation requiert simplement de parcourir son arbre, soit un espace linaire.
Si n > 0, il y a des appels rcursifs. On appelle E() lespace utilis par lalgorithme
sur lentre . Lorsquon effectue un appel rcursif, il faut pouvoir revenir ltat
prcdant lappel pour continuer le calcul (dans la terminologie habituelle, il faut
empiler le contexte ). Il faut donc garder en mmoire la formule traite juste avant
lappel. Ainsi, en rutilisant lespace pour les deux appels rcursifs successifs (lun sur
(0) et lautre sur (1)), on obtient E() || + max(E( (0)), E( (1))) pour une
certaine constante .
Au final, en droulant les n appels rcursifs, on obtient E() = O(||2 ), cest--dire
que QBF PSPACE.
Montrons maintenant que QBF est PSPACE-difficile. Soit A PSPACE, nous devons
donner une rduction A pm QBF. Soit M une machine pour A fonctionnant en espace
polynomial, et x une instance de A de taille n . Lide est dutiliser le graphe des configurations de M (x) (dfinition 4-S). En effet, M (x) accepte si et seulement sil existe
un chemin de la configuration initiale c0 une configuration acceptante cacc dans ce
graphe. Il sagit alors de donner une formule exprimant lexistence dun tel chemin.
Pour cela, nous dfinissons une famille de formules i (u, v) exprimant le fait quil
existe un chemin de longueur 2i entre deux sommets u et v du graphe. Rappelons
que u et v sont des configurations, qui doivent donc tre encodes par un nombre
polynomial de variables reprsentant le contenu des rubans et les positions des ttes.
La premire de ces formules, 0 (u, v), affirme que u = v ou que v est voisin de u . En
dautres termes, soit le contenu des rubans et les positions des ttes sont identiques,

112

Chapitre 4. Considrations de base sur lespace

soit il existe une transition qui mne de u v . On a vu la preuve du thorme 3-V de


Cook-Levin comment exprimer cela par une formule boolenne de taille polynomiale
q(n).
Pour dfinir i +1 (u, v), on pourrait simplement dire w(i (u, w) i (w, v)). Cependant, la taille de la formule doublerait et serait trop grande au final. Il faut ruser : nous
dfinissons

i +1 (u, v) = wx, y (x = u y = w) (x = w y = v) i (x, y)

o, rappelons-le, u, v, w, x et y dsignent des configurations. Ainsi, on a lingalit


|i +1 | p(n) + |i |, o p(n) est un polynme tel que la premire partie de la formule
i +1 (les quantificateurs et les galits des configurations) prenne une taille p(n).
Cela implique que |i | i p(n) + |0 | i p(n) + q(n).
Par le lemme 4-V, le graphe de configurations de M (x) a une taille 2q(n) pour un
certain polynme q(n). Ainsi, sil existe un chemin entre deux configurations u et v ,
alors il existe un chemin de taille 2q(n) . La rduction de A QBF associe donc x
la formule x = c (c est acceptante) (q(n) (c0 , c)) qui exprime le fait quil existe un
chemin de taille 2q(n) entre la configuration initiale c0 et une configuration acceptante. Cette formule est calculable en temps polynomial et on a x A ssi x QBF,

donc A pm QBF

4-AD Remarque La rduction qui prcde sapplique aussi bien aux machines non
dterministes, ce qui fait que QBF est NPSPACE-difficile. Puisquil est dans PSPACE, cela
implique que PSPACE = NPSPACE. Nous montrerons un rsultat plus gnral au thorme 4-AS.
Nous nen verrons pas plus mais, de la mme manire que pour la classe NP, il existe
de nombreux autres problmes naturels PSPACE-complet. Plusieurs dentre eux portent
notamment sur la recherche de stratgies gagnantes dans des jeux deux joueurs. En effet,
dans ces jeux on retrouve lalternance de quantificateurs de QBF : il existe une stratgie
gagnante pour lun des joueurs sil existe un choix 1 (le premier coup) tel que pour tout
choix 2 (la rponse de ladversaire), il existe un choix 3 tel que pour tout choix 4 jusqu
arriver au coup gagnant.

4.4.2

Espace non dterministe logarithmique

Rductions en espace logarithmique


Puisque NL P, il nest pas pertinent dtudier les problmes NL-complets pour les rductions polynomiales (cf. proposition 3-L). Il nous faut des rductions plus faibles. Pour
comparer des problmes en fonction de leur complexit en espace, il est naturel de dfinir des rductions many-one en espace logarithmique.

4.4. Compltude
4-AE

113

Dfinition

Une rduction many-one en espace logarithmique dun problme B (sur lalphabet B )


un problme A (sur lalphabet A) est une fonction f : B A calculable en espace
logarithmique telle que :
x B ,

x B f (x) A.

Si une telle fonction f existe, on dira que B se rduit A (via f ) en espace logarithmique
et on notera B Lm A.
De la mme manire que prcdemment (cf. dfinition 3-J), on a bien sr aussi les notions
de C -difficult et C -compltude pour les rductions en espace logarithmique.
4-AF

. 4-AG

Remarque Si B Lm A alors B pm A.

Exercice

Vrifier que tous les langages complets que nous avons vus jusqu prsents restent
complets pour les rductions en espace logarithmique. On peut par exemple vrifier
que la rduction dun problme NP SAT donne au thorme 3-V se calcule en
espace logarithmique. De mme pour la rduction de SAT 3SAT (proposition 3-Z),
etc.
Compltude pour NL
Pour prparer la preuve de compltude pour NL, nous devons tout dabord dfinir une
variante du graphe des configurations (dfinition 4-S), o lon considre toutes les configurations potentielles, y compris celles qui ne sont pas accessibles depuis la configuration
initiale.
4-AH

Dfinition (graphe des configurations potentielles)

Soit N une machine non dterministe et x une entre. On appelle graphe des configurations
potentielles de N (x) en espace s(n) le graphe :
dont les sommets sont toutes les configurations de travail possibles qui utilisent un
espace s(|x|) et dont la position de la tte sur le ruban dentre est comprise entre
2 s(|x|) et 2 s(|x|) ;
il y a un arc de la configuration c la configuration c si N peut aller de c c en
une tape.

114
4-AI

Chapitre 4. Considrations de base sur lespace


Remarques

La diffrence avec le graphe des configurations de la dfinition 4-S est que toutes
les configurations sont prises en compte, et pas seulement celles accessibles depuis
la configuration initiale.
Par un dnombrement simple similaire la premire partie de celui de la preuve
du lemme 4-V, le nombre de sommets de ce graphe est major par 2s(n) pour une
constante .

Lintrt de ce graphe vient du fait quil est simple construire.

4-AJ

Lemme

Soit s(n) une fonction constructible en espace. Soit N une machine non dterministe
fonctionnant en espace s (n) et une constante. Alors il existe une constante telle
que le graphe des configurations potentielles de N (x) en espace s (n) est constructible
en espace dterministe s(n).

Dmonstration Soit Gx le graphe des configurations potentielles de N (x) en espace


s (n). Il sagit de construire la matrice dadjacence de Gx . Soit m le nombre des configurations potentielles en espace s (n) : il existe une constante telle que m 2s (n)
(cf. remarque 4-AI). Le codage de chaque configuration potentielle est simplement le
contenu des rubans de travail, ltat ainsi que la position des ttes. Cela correspond
un numro en binaire entre 0 et m 1.
On remplit la matrice dadjacence de Gx coefficient par coefficient. Pour le coefficient
(i , j ), on se place la bonne position sur le ruban de sortie, on simule une tape de
calcul de N partir de la configuration i pour toutes les transitions possibles. Si la
configuration j est ainsi obtenue partir de i alors on inscrit 1 sur le ruban de sortie,
sinon on inscrit 0.
Lespace requis par ce procd est major par s (n) pour une certaine constante : en
effet, dabord on calcule s(n) en espace O(s(n)) ; puis pour se dplacer sur le ruban de
sortie on utilise un compteur en binaire dont la valeur nexcde pas 2s (n) ; lcriture
de i et j ncessite galement s (n) bits, et enfin la simulation dune tape de N

partir de i utilise un espace supplmentaire s (n).

Sans surprise aprs tout ce qui prcde, le problme NL-complet que nous allons voir se
rapporte laccessibilit dans un graphe orient G pour lequel on note S lensemble des
sommets et A lensemble des arcs. Nous lavons dj rencontr la section 2.1.3.

4.4. Compltude
4-AK

115

Dfinition

Le problme ACCESSIBILIT est dfini comme suit :


entre : un graphe orient G = (S, A) et deux sommets s , t S ;
question : existe-t-il un chemin de s t dans G ?

4-AL

Proposition

Le langage ACCESSIBILIT est NL-complet pour les rductions en espace logarithmique.


Ide de la dmonstration Pour dcider ACCESSIBILIT en espace non dterministe logarithmique, il suffit de se diriger dans le graphe en partant de s et en devinant
chaque tape le voisin suivant jusqu trouver t . Si t na pas t trouv aprs |S| tapes,
on rejette.
La NL-difficult vient du fait que dcider si une machine non dterministe en espace
logarithmique N accepte revient trouver un chemin de la configuration initiale
une configuration acceptante dans le graphe des configurations de N .
Dmonstration Voici un algorithme pour ACCESSIBILIT sur lentre (G, s, t ) :
us;
Pour i allant de 0 |S| 1 faire

si u = t accepter,
choisir de manire non dterministe un voisin sortant v de
u,
uv;

rejeter.
Sil existe un chemin de s t , alors il existe un chemin simple de s t (cest--dire sans
boucle) et celui-ci est de taille < |S| (le nombre de sommets). Donc il existera une suite
de choix non dterministes dans lalgorithme arrivant t en au plus |S|1 tapes, cest-dire que lalgorithme acceptera. Si par contre t nest pas accessible depuis s , alors la
boucle se terminera sans avoir trouv t et tous les chemins rejetteront. Cet algorithme
non dterministe dcide donc ACCESSIBILIT.
Cet algorithme ncessite de conserver en mmoire le compteur i variant de 0 |S|1 :
en binaire, il prend 1+log(|S|1) cases. Il faut galement crire les deux sommets u et
v : on les dsigne par leur numro en binaire, ce qui prend encore un espace 1+log |S|.
Une fois v devin, vrifier quil sagit dun voisin sortant de u se fait en parcourant
lentre, de mme que vrifier si v = t . Au final, cet algorithme non dterministe
fonctionne en espace logarithmique, donc ACCESSIBILIT NL.

116

Chapitre 4. Considrations de base sur lespace

Pour la NL-difficult, nous allons rduire tout problme de NL ACCESSIBILIT. Soit


A NL et N une machine non dterministe pour A fonctionnant en espace log n ,
cest--dire que x A ssi N (x) a un chemin acceptant. Pour une entre x , on note Gx
le graphe des configurations potentielles (dfinition 4-AH) de N (x) en espace log n ,
o est la constante du lemme 4-V concernant le dplacement de la tte sur le ruban
dentre. partir de Gx on dfinit un nouveau graphe Gx en ajoutant un sommet
t et en reliant toutes les configurations acceptantes de Gx t . Pour s , on prend la
configuration initiale. Ainsi, N (x) accepte ssi t est accessible depuis s dans Gx . Notre
rduction f de A ACCESSIBILIT associe (Gx , s , t ) x . Par ce qui prcde, x A ssi
f (x) ACCESSIBILIT.
Le lemme 4-AJ montre que Gx est calculable en espace logarithmique. Pour en dduire Gx , il suffit de relier toutes les configurations acceptantes t , ce qui ncessite
simplement de parcourir chaque sommet et se fait en espace logarithmique galement.

Ainsi, f est calculable en espace dterministe logarithmique, ce qui conclut.

4-AM Remarque Quant lui, le problme ACCESSn.o. de laccessibilit dans un


graphe non orient, que nous rencontrerons au chapitre 12, nest probablement pas NLcomplet car ce problme est dans la classe L grce un algorithme sophistiqu (cf. thorme 12-C).

4.5

Le rle du non-dterminisme

On connat beaucoup plus de liens entre les classes dterministes et non dterministes
en espace que pour leurs analogues en temps. Cela provient toujours de la technique
du graphe des configurations. Le non-dterminisme semble apporter moins de puissance
aux classes en espace comme nous allons le voir. Nous commenons par donner une
caractrisation de NL en termes de certificats comme pour NP.

4.5.1

Certificats unidirectionnels

On pourrait penser que la caractrisation de NP grce aux certificats (proposition 2-AO) se


transpose aisment NL en imposant que la vrification soit faite en espace logarithmique.
Il nen est rien comme le montre la proposition suivante : si lon ny prend pas garde,
on se retrouve avec toute la puissance de NP. Nous donnerons simplement lide de la
dmonstration.
4-AN

Proposition

Soit A NP. Il existe un langage B L et un polynme p(n) tel que


x A y {0, 1} p(|x|) (x, y) B.

4.5. Le rle du non-dterminisme

117

Ide de la dmonstration Puisque 3SAT est NP-complet pour les rductions en espace
logarithmique (exercice 4-AG), il suffit de montrer quun certificat pour 3SAT peut tre
vrifi en espace logarithmique. Comme certificat pour une formule (x1 , . . . , xn ), on
donne la valuation (a1 , . . . , an ) des variables censes satisfaire . Pour vrifier quil sagit
bien dune solution, il suffit dvaluer (a1 , . . . , an ). Pour cela, on parcourt la formule
et on vrifie que chaque clause est satisfaite, ce qui prend un espace logarithmique.

Pour vraiment capturer la classe NL en termes de certificats, il faut imposer une restriction
sur la vrification : le certificat ne peut tre lu que de gauche droite.
4-AO

Dfinition

Un vrificateur unidirectionnel est une machine de Turing V qui possde un ruban


dentre supplmentaire sur lequel la tte ne peut pas se dplacer vers la gauche.
En dautres termes, les deux seuls mouvements possibles sont de rester sur place ou
daller dune case vers la droite.
Le vrificateur V prend donc deux entres x (lisible vers la gauche et vers la droite)
et y (lisible seulement vers la droite). Le mot y sera appel certificat unidirectionnel.
On notera V (x, y) le calcul de V sur lentre x et le certificat unidirectionnel y .

Cette notion nous permet maintenant de capturer NL.


4-AP

Proposition

Un langage A est dans NL si et seulement sil existe un vrificateur unidirectionnel V


fonctionnant en espace logarithmique et un polynme p(n) tels que
x A y {0, 1} p(|x|) V (x, y) = 1.

Ide de la dmonstration Sil existe un vrificateur unidirectionnel, alors dans NL il


suffit de le simuler en devinant le nouveau bit du certificat chaque dplacement
droite de la tte.
Dans lautre sens, si A NL via une machine N , alors il suffit de donner comme
certificat un chemin acceptant du calcul N (x) : pour simuler N le long de ce chemin,
il suffit de lire le certificat une seule fois de gauche droite.
Dmonstration Commenons par limplication de la droite vers la gauche. Si V est un
vrificateur unidirectionnel pour A et p(n) la taille de y , alors voici un algorithme non
dterministe pour A, sur lentre x :

118

Chapitre 4. Considrations de base sur lespace


simuler V (x, .) en devinant le nouveau bit du certificat y chaque
dplacement droite de la tte sur le second ruban dentre, tant
que |y| p(|x|) (le bit prcdent peut tre oubli) ;
accepter ssi V accepte.

Cet algorithme possde un chemin acceptant si et seulement sil existe y {0, 1} p(|x|) tel
que V (x, y) = 1, cest--dire ssi x A. De plus, il fonctionne en espace logarithmique
puisque V fonctionne en espace logarithmique. Ainsi, A NL.
Pour limplication de la gauche vers la droite, soit A NL reconnu par une machine
non dterministe N fonctionnant en espace logarithmique. Un chemin de calcul de
N (x) est dtermin par les choix non dterministes effectus dans larbre, que lon
code par un mot y {0, 1} . Puisque le temps de calcul de N (x) est polynomial (proposition 4-W), y est de taille polynomiale p(|x|). Le vrificateur V prend alors deux
entres x et y et simule N (x) le long du chemin y . Pour ce faire, il nest ncessaire de
lire y que de la gauche vers la droite sans revenir sur ses pas. Cest un calcul dtermi
niste qui prend un espace logarithmique, do le rsultat.

. 4-AQ

Exercice

Montrer que NP admet des vrificateurs unidirectionnels fonctionnant en temps


polynomial.
Indication : rpter plusieurs fois le certificat usuel du langage NP.

4.5.2

Thorme de Savitch

Le thorme de Savitch [Sav70] permet de relier espace dterministe et non dterministe


de manire beaucoup plus fine que pour le temps. Nous donnons dabord lalgorithme
dterministe pour ACCESSIBILIT (dfinition 4-AK) qui est au cur du thorme de
Savitch.
4-AR

Lemme

ACCESSIBILIT DSPACE((log n)2 ).

Ide de la dmonstration Si n est le nombre de sommets du graphe G , il suffit de dcider sil existe un chemin de taille n de s t .
Pour dcider sil existe un chemin de taille 2i dun sommet u un sommet v , on
teste tous les sommets w et on vrifie rcursivement sil existe un chemin de taille
2i1 de u w puis de w v . Cela ncessite i appels rcursifs imbriqus, chacun
prenant un espace O(log n), cest--dire que lalgorithme dterministe utilise au total,
pour i = log n , un espace O((log n)2 ).

4.5. Le rle du non-dterminisme

119

Dmonstration Soit Accs(G, u, v, i ) lalgorithme rcursif suivant afin de dcider sil


existe un chemin de taille 2i de u v dans le graphe G .
Accs(G, u, v, i ) :
si i = 0

accepter si u = v ou sil y un arc de u v ,

sinon rejeter ;

pour tout sommet w faire

si Accs(G, u, w, i 1) et Accs(G, w, v, i 1) alors accepter ;

rejeter.
Il est immdiat de montrer par rcurrence que Accs(G, u, v, i ) accepte si et seulement
sil existe un chemin de u v de taille 2i dans G .
Par ailleurs, sil existe un chemin de u v dans G , alors il existe un chemin simple
(sans boucle) de u v , et la longueur de celui-ci nexcde pas le nombre de sommets
n . On en dduit que lappel Accs(G, s, t , log n) rsout le problme daccessibilit.
Il reste montrer que cet algorithme fonctionne en espace (log n)2 . Soit C (i) lespace
utilis par un appel Accs(G, u, v, i ). Alors C (0) log n (pour une certaine constante
> 0) car il suffit daller lire le coefficient (u, v) de la matrice dadjacence, ce qui se
fait en comptant jusqu u et v avec des compteurs binaires.
Lors du calcul Accs(G, u, v, i + 1), on parcourt tous les sommets w (ce qui prend
un espace log n ) puis on appelle Accs(G, u, w, i ) (ce qui prend C (i )), on efface
lespace de calcul et on appelle Accs(G, w, v, i ) (qui utilise le mme espace prcdemment effac). En tout on a donc C (i +1) C (i )+ log n . Ainsi, C (log n) = O((log n)2 ),

ce qui conclut.

Nous en dduisons le thorme de Savitch.


4-AS

Thorme (Savitch, 1970)

Pour toute fonction s(n) log n constructible en espace,


NSPACE(s(n)) DSPACE(s (n)2 ).

Ide de la dmonstration Si N est une machine pour A NSPACE(s (n)), son graphe
des configurations est de taille 2O(s (n)) . Il suffit de dcider sil existe un chemin de taille
2O(s (n)) entre la configuration initiale et une configuration acceptante. On utilise pour
cela lalgorithme du lemme 4-AR.
Dmonstration Soit A NSPACE(s (n)) dcid par une machine non dterministe N
fonctionnant en espace s(n), et soit Gx le graphe des configurations potentielles

120

Chapitre 4. Considrations de base sur lespace

de N (x) en espace s (n) (dfinition 4-AH). partir de Gx on dfinit un nouveau


graphe Gx en ajoutant un sommet t et en reliant toutes les configurations acceptantes
de Gx t .
Voici un algorithme dterministe pour A sur lentre x :
sil existe un chemin de c0 (configuration initiale) t dans Gx ,
accepter ;
sinon rejeter.
On utilise pour cela lalgorithme du lemme 4-AR. Lalgorithme fonctionne en espace

O((log |Gx |)2 ) et le graphe Gx est de taille 2O(s (n)) et peut tre calcul en espace O(s(n))
(lemme 4-AJ). Donc appliquer lalgorithme au graphe Gx calcul la vole prend un

espace O(s (n)2 ) par la proposition 4-J, ce qui conclut la preuve.

4-AT

Corollaire

NL DSPACE(log2 n).

Un autre corollaire de ce thorme est que le non-dterminisme napporte pas de puissance aux classes DSPACE(F ) o F est un ensemble de fonctions clos par carr (cest-dire f F = f 2 F ). En particulier, nous retrouvons le rsultat de la remarque 4-AD.

4-AU

Corollaire

NPSPACE = PSPACE

La situation est donc trs diffrente de la complexit en temps, o mme pour de larges
bornes en temps, on suppose que le non-dterminisme augmente la puissance de calcul
(questions NP = P ? et NEXP = EXP ? ).

4.5.3

Thorme dImmerman-Szelepcsnyi

Nous allons voir encore une fois une proprit du non-dterminisme pour lespace qui
semble contraire aux classes en temps : les classe NSPACE sont closes par complment.
Aprs ce quon vient de voir, cest vident pour NPSPACE bien sr (puisque ce nest autre
que PSPACE), mais cest beaucoup plus surprenant pour NL.
Le problme de linaccessibilit dans un graphe
La classe coNL des langages dont le complmentaire est dans NL (cf. dfinition 2-AX)
peut galement tre caractrise en termes de machines non dterministes comme coNP
(proposition 2-AY).

4.5. Le rle du non-dterminisme


4-AV

121

Proposition (coNL)

La classe coNL est lensemble des langages A tels quil existe une machine de Turing non
dterministe N fonctionnant en espace logarithmique et satisfaisant :
x A ssi tous les chemins de calcul de N (x) sont acceptants.

Le rsultat de clture par complment montr indpendamment par Immerman et Szelepcsnyi dcoule de deux astucieux lemmes ci-dessous qui permettent de dcider dans
NL le complmentaire du problme NL-complet ACCESSIBILIT (proposition 4-AL). On
notera donc coACCESSIBILIT le problme suivant :
entre : un graphe orient G et deux sommets s et t ;
question : t est-il inaccessible depuis s dans G ?
Par le mme raisonnement quau lemme 3-AI, ce problme est coNL-complet.
Compter les sommets accessibles
Lide est dutiliser le nombre de sommets accessibles depuis s pour vrifier que nos calculs
non dterministes ont atteints tous les sommets voulus. Le premier lemme et son corollaire montrent quon peut compter dans NL le nombre de sommets de G accessibles
depuis un sommet s .
4-AW

Lemme

Si G est un graphe orient et s un sommet, on note Si lensemble des sommets de G


distance i de s .
Il existe une machine de Turing non dterministe N fonctionnant en espace logarithmique sur lentre (G, s , i, |Si |), telle que :
N (G, s , i, |Si |) possde au moins un chemin acceptant ;
|Si +1 | est inscrit en binaire sur le ruban de sortie la fin de tout chemin acceptant.
On nexige rien du rsultat si lentre donne une valeur erronne de |Si |.
Ide de la dmonstration On parcourt tous les sommets et pour chaque sommet on
teste sil appartient Si +1 . Ce test est bien sr la partie astucieuse. la fin du processus,
un compteur nous donnera la valeur de |Si+1 |. Voici comment tester si un sommet u
appartient Si+1 .
Il sagit de savoir sil est dans Si ou sil est voisin de Si . On parcourt tous les sommets
et pour chaque sommet v on teste sil appartient Si en se dplaant de manire non
dterministe de s v pendant i tapes. Il se peut bien sr que v soit accessible mais

122

Chapitre 4. Considrations de base sur lespace

que les choix non dterministes ne trouvent pas ce chemin : pour pouvoir reprer plus
tard cette ventualit (et ignorer le calcul correspondant), on incrmente un compteur
c si on a atteint v . Pendant le processus, on a vrifi si u tait dans Si ou sil tait voisin
de lun des sommets de Si .
Si tous les choix non dterministes ont t bons, on a trouv tous les sommets de Si ,
donc c = |Si |. Si ce nest pas le cas, on rejette, sinon on a bien test si u Si +1 . Lespace
est rest logarithmique.
Dmonstration On aura besoin dun test non dterministe en espace logarithmique qui
admet un calcul acceptant ssi il existe un chemin de longueur i de s un sommet
u (cest--dire ssi u Si ). Par manque despace, on ne peut pas deviner le chemin
complet. Il nous faut progresser dans le graphe pas pas en devinant un nouveau
sommet chaque tape et en oubliant les prcdents. Voici le test pour i 1.
Test1(s, u, i ) :
w s (se souvenir du dernier sommet) ;
pour d de 1 i faire

deviner un sommet x ,

rejeter si x = w et x nest pas voisin de w ,

accepter si x = u ,

wx;

rejeter.
Lespace utilis par ce test est celui ncessaire pour stocker d , w et x , cest--dire logarithmique.
Lorsque u Si , le test prcdent na que des calculs rejetant. Mais au contraire nous
voulons un test qui possde toujours au moins un chemin acceptant, et que ceuxci renvoient 1 lorsque u Si et 0 lorsque u Si . Lastuce pour raliser un tel test
est dutiliser une information supplmentaire, la taille de Si , avec un compteur pour
vrifier que lon a bien atteint tous les sommets de Si . Voici donc le nouveau test.
Test2(s, u, i , |Si |) :
c 0 (compteur pour le nombre de sommets atteints) ;
b 0 (boolen pour savoir si u a t atteint) ;
pour tout sommet v faire

tester si v Si par lalgorithme Test1,

si le calcul est acceptant


c c +1

4.5. Le rle du non-dterminisme

123

si v = u alors b 1 ;

si c = |Si | alors accepter et renvoyer b ;


sinon rejeter.
Il existe bien sr des suites de choix non dterministes telles que pour tout v Si ,
les tests v Si ? effectus par Test1 donnent tous un calcul acceptant. Le long de
ces calculs, on incrmente c chaque nouveau sommet v Si , donc on accepte. Sur
chacun de ces calculs acceptants, on renvoie la valeur de b , cest--dire 1 si u Si et 0
sinon.
Les autres calculs ont rat au moins lun des sommets v Si , donc c < |Si | et ils
rejettent. Ainsi, il existe des chemins acceptants, ils renvoient tous la mme valeur et
cette valeur est 1 ssi u Si . Lespace utilis est logarithmique car il suffit de maintenir
un compteur, dnumrer les sommets et dutiliser le test prcdent.
On peut enfin calculer |Si+1 | en fonction de |Si | laide dun compteur k et de Test2.
k 0 (compteur pour le nombre de sommets atteints) ;
pour tout sommet u faire

b 0 (boolen pour savoir si u Si+1 ),

pour tout sommet v faire


tester si v Si par lalgorithme Test2
si le calcul de Test2 est acceptant et renvoie b = 1, et si
u est gal v ou est un voisin de v , alors b 1,

k k + b ;

si tous les calculs de Test2 ont accept, alors accepter et renvoyer k ;


sinon rejeter.
Si lon a suivi un calcul acceptant pour tous les tests v Si par lalgorithme Test2, alors
on a incrment k ds que u est un sommet de Si ou un voisin, donc lalgorithme
renvoie la bonne valeur |Si+1 |. Lespace utilis est logarithmique puisquil suffit de

maintenir le compteur k , dnumrer les sommets u et v et dutiliser Test2.

4-AX

Corollaire

Il existe une machine de Turing non dterministe N fonctionnant en espace logarithmique sur lentre (G, s ), o G est un graphe orient et s un sommet de G , telle que :
N (G, s ) possde des chemins acceptants ;

124

Chapitre 4. Considrations de base sur lespace

le nombre de sommets accessibles depuis s est inscrit en binaire sur le ruban de


sortie la fin de tout chemin acceptant.
Dmonstration Il suffit de calculer successivement grce lalgorithme du lemme prcdent, en partant de |S0 | = 1, les valeurs de |S1 |, , |Sn |, o n est le nombre de sommets
de G (car si un sommet est accessible, il lest par un chemin de longueur n ). On a
besoin de retenir seulement la valeur |Si | pour calculer |Si +1 | donc lespace utilis reste

logarithmique.

Algorithme pour linaccessibilt


Ce comptage des sommets accessibles est un lment central dans lalgorithme du lemme
suivant.
4-AY

Lemme
coACCESSIBILIT NL.

Ide de la dmonstration Pour dcider si t nest pas accessible depuis s dans G , on


utilise lalgorithme du corollaire prcdent pour compter le nombre k de sommets
accessibles depuis s . Puis on numre tous les sommets u et pour chacun on teste de
manire non dterministe sil est accessible par un chemin de taille n . Pendant ce
processus on a galement compt le nombre de sommets accessibles en incrmentant
un compteur c . la fin du calcul, si c = k alors on a bien visit tous les sommets
accessibles donc on accepte ssi t na jamais t atteint depuis s .
Dmonstration Pour rsoudre coACCESSIBILIT, voici lalgorithme non dterministe
que lon utilise sur lentre (G, s , t ) :
c 0 (compteur pour le nombre de sommets atteints) ;
b 0 (boolen pour savoir si t a t atteint) ;
compter le nombre k de sommets accessibles depuis s grce
lalgorithme du corollaire 4-AX (rejeter si le calcul nest pas acceptant) ;
pour tout sommet u faire

tester sil existe un chemin de s u de taille n en se dplaant dans G de manire non dterministe comme dans la
preuve du lemme 4-AW,

4.5. Le rle du non-dterminisme

125

si le chemin a atteint u
c c +1
si u = t alors b 1,

si c = k et b = 0 alors accepter ;
sinon rejeter.
Un calcul ne peut tre acceptant que si c = k , cest--dire que tous les sommets accessibles depuis s ont t atteints. Il y a toujours au moins un tel calcul. Si t ne fait pas
partie des sommets atteints, alors b = 0 et on accepte, ce qui correspond bien au cas
o t nest pas accessible depuis s . Si t a t atteint, alors il est accessible depuis s et
b = 1 pour tous les calculs tels que c = k , donc tous les calculs rejettent. Au final, cet
algorithme dcide bien coACCESSIBILIT.
Lespace quil utilise est logarithmique puisquil suffit dnumrer tous les sommets,
de maintenir un compteur et dexcuter des tests recqurant un espace logarithmique.

Donc coACCESSIBILIT NL.

Nous obtenons en corollaire le thorme suivant d Szelepcsnyi [Sze87] et indpendamment Immerman [Imm88].
4-AZ

Thorme (Szelepcsnyi 1987, Immerman 1988)

Pour toute fonction s(n) log n constructible en espace,


coNSPACE(s(n)) = NSPACE(s (n)).

En particulier, NL = coNL.
Dmonstration Il sagit simplement de faire du padding (cf. proposition 2-AU). Soit
A coNSPACE(s (n)) et A sa version padde :
A = {(x, 12

s (|x|)

) | x A}.

Si n = |x|, la taille de lentre de A est maintenant m = n + 2 s(n) . Puisque s(n) log n ,


on a 2 s (n) m 21+s(n) .
Pour dcider A , on calcule s(n) en unaire, on en dduit lcriture binaire de 2 s(n) , on
s (n)
vrifie que lentre est de la forme (x, 12 ) (en parcourant les 1 et en dcrmentant le
compteur contenant 2 s (n) ), puis on lance lalgorithme coNSPACE pour A sur lentre
x . Sur une entre de taille m , cette procdure coNSPACE utilise un espace O(s (n)),
cest--dire O(log m).
Ainsi, A coNL. Par compltude de coACCESSIBILIT, A Lm coACCESSIBILIT.
Donc par le lemme 4-AY, A NL, cest--dire que A est reconnu par une machine
non dterministe N fonctionnant en espace O(log m). On en dduit lalgorithme non

126

Chapitre 4. Considrations de base sur lespace

dterministe suivant pour A sur lentre x . Simuler le comportement de N (x, 12 )


s (n)
sans crire 12 mais en maintenant sur un ruban de travail un compteur binaire c
gal la position de la tte du ruban de lecture de N . Si c [1, n] alors le symbole
lu sur le ruban dentre est xc , si c [n + 1, n + 2 s (n) ] alors le symbole lu est 1, sinon
cest le symbole blanc B . Cela nous permet donc de simuler N sans avoir crire
s (n)
12 qui prendrait trop despace. Lespace total utilis par cet algorithme pour A est
la taille du compteur c plus lespace utilis par N , cest--dire O(log m) = O(s (n)).

Donc A NSPACE(s(n)).

s(n)

4.5.4

Les questions ouvertes

Grce la mthode du graphe des configurations, on vient de voir que lon sait rsoudre
plus de questions concernant lespace que le temps. Cependant, il reste bien sr de nombreuses questions ouvertes. Nous en verrons deux importantes.
Lanalogue de P = NP ? pour lespace est la question L = NL ? . Bien que le nondterminisme napporte pas de puissance lorsquon dispose dun espace polynomial, nous
nen savons rien si lon se restreint un espace logarithmique. Par compltude du problme ACCESSIBILIT, montrer que L = NL revient donner un algorithme dterministe
fonctionnant en espace logarithmique pour dcider laccessibilit dans un graphe orient.
On a galement du mal comparer finement le temps et lespace. Par exemple, la question
P = PSPACE ? est toujours ouverte. En dautres termes, est-ce que lespace polynomial
est plus puissant que le temps polynomial ? Ou encore, y a-t-il un algorithme en temps
polynomial pour QBF ? Puisque P NP PSPACE, la sparation de P et NP implique
la sparation de P et PSPACE. Si les deux sparations sont vraies comme le pensent la
plupart des informaticiens, alors la question P = PSPACE ? serait moins difficile que
P = NP ? .
Signalons enfin que les exercices B-A et B-B touchent aux classes en espace.

Uniformit et
non-uniformit
Jusqu prsent, pour rsoudre un problme nous avons utilis un unique algorithme
permettant de traiter toutes les entres. Mais pourquoi devrions-nous utiliser la mme
mthode pour additionner deux entiers de 57 bits que pour additionner deux entiers de
73 bits ? Ou encore, les circuits que contiennent nos processeurs peuvent par exemple tre
spcialiss dans laddition de nombres de 64 bits, faut-il changer la conception du circuit
lorsquon passe des entiers de 128 bits ?
Lorsquon donne un unique algorithme pour toutes les entres dun problme, on parle
duniformit : la mme mthode convient pour toutes les tailles dentre. Cest une
notion trs pertinente pour rsoudre les problmes puisquune description finie permet
de traiter une infinit de cas, et elle est de plus trs naturelle. Cependant, il nest pas
moins naturel de considrer des circuits spcialiss traitant seulement une certaine taille
dentre : par exemple un additionneur 64 bits. En quelque sorte, on donne alors une
mthode spcifique pour chaque taille dentre. Dans ce cas, pour traiter toutes les entres
possibles, il faut donner une infinit de circuits (un circuit par taille dentre). Cest ce
quon appelle la non-uniformit .
Ltude de luniformit et de la non-uniformit est un aspect trs riche de la complexit.
Nous verrons dans ce chapitre les bases de la non-uniformit quon utilisera par la suite,
notamment au chapitre consacr aux bornes infrieures non uniformes.
Ce chapitre contient nouveau des simulations de machines (notamment par des circuits).
Nous serons moins prcis quaux chapitres prcdents et donnerons seulement lide des
dmonstrations.

128

5.1

Chapitre 5. Uniformit et non-uniformit

Conseils

Les conseils sont un moyen commode et trs gnral dintroduire de la non-uniformit


dans nos classes de complexit.

5.1.1

Dfinition

La non-uniformit consiste donner une information potentiellement diffrente pour


chaque taille dentre. Une formalisation de ce concept repose sur la notion de conseil :
on aide une machine reconnatre un langage en lui donnant une information qui dpend
de la taille de lentre. Cette dfinition vient de Karp et Lipton [KL82].
5-A

Dfinition

Soit une fonction f : N N et une classe de complexit C . La classe C / f (n) est lensemble des langages A tels quil existe B C et une suite de mots (an )nN satisfaisant :
an {0, 1} f (n) ;
pour tout mot x , x A ssi (x, a|x| ) B .

5-B

Remarques

Le conseil an utilis dpend uniquement de la taille de x et doit donc tre le mme


pour tous les mots de mme taille.
Le conseil fait partie de lentre du langage B donc sa taille est prise en compte
pour la complexit. Ainsi, dans la classe P/2n , lalgorithme doit tre polynomial
en (n +2n ), donc il dispose dun temps 2O(n) . Ce qui peut tre trompeur puisquon
parle quand mme de la classe P.

Un peu de recul
Il y a une diffrence fondamentale entre les classes uniformes et non uniformes : les premires sont dnombrables alors que les secondes ne le sont pas comme le montre la proposition suivante.

5-C

Proposition

Pour toute fonction f (n) > 0, L/ f (n) est non dnombrable.

5.1. Conseils

129

Ide de la dmonstration Il y a une quantit non dnombrable de suites de conseils


possibles, ce qui permet de dfinir une quantit non dnombrable de langages.
Dmonstration Soit b = (bn ) {0, 1}N une suite de bits quelconque. On dfinit le
langage Ab = {x {0, 1} | b|x| = 1} des mots dont la longueur correspond un bit 1
dans la suite b .
On dfinit la suite de conseils an = bn 0 f (n)1 , cest--dire le bit bn suivi du nombre de
zros ncessaires pour donner une taille f (n). Alors Ab L/ f (n) car il suffit de donner
la suite (an ) comme conseil : en effet, si lon dfinit B = {(x, y) | y1 = 1} (o y1 dsigne
le premier bit de y ), alors x Ab ssi (x, a|x| ) B . Or B est clairement dans L.
Ainsi, L/ f (n) contient tous les langages Ab possibles. Il y en a autant que de suites

(bn ) {0, 1}N , cest--dire une quantit non dnombrable.

5-D

Corollaire

Pour toute fonction f (n) > 0 et toute classe C vrifiant L C , la classe C / f (n) est non
dnombrable.
Dmonstration Lhypothse implique que C / f (n) L/ f (n) qui est non dnombrable

par la proposition 5-C.


5-E Remarque Puisque toutes les classes C que nous avons vues jusqu prsent
contiennent L, elles vrifient toutes que C / f (n) est non dnombrable. Ce rsultat est vrai
mme pour des classes plus petites que L puisquil faut simplement tre capable de dcider
si le premier bit du conseil est 1 ou non. Ainsi, toute classe non uniforme raisonnable
est non dnombrable.
En revanche, les classes uniformes sont dnombrables : chaque langage est reconnu par
une machine et il y a un nombre dnombrable de machines puisque leur code est un mot
fini.
Ainsi, en particulier, lorsquune classe uniforme est incluse dans une classe non-uniforme,
alors linclusion est stricte.

5-F

Corollaire

Pour toute fonction f (n) > 0 et toute classe C contenant L, il y a un langage indcidable
(cest--dire quaucune machine de Turing ne le reconnat) dans C / f (n).

5.1.2

Classes usuelles

Bien entendu, nous ne souhaitons pas toujours parler uniquement dun conseil de taille
f (n) pour une fonction f fixe, mais plutt de prendre la taille du conseil parmi un
ensemble de fonctions : taille polynomiale, linaire, logarithmique, etc.

130
5-G

Chapitre 5. Uniformit et non-uniformit


Dfinition

Soit F un ensemble de fonctions f : N N et C une classe de complexit. Alors par


dfinition,

C /F =

C / f (n).

f F

Certains ensembles de fonctions sont assez courants.


5-H

Dfinition

On dsigne par poly lensemble des fonctions polynomiales, cest--dire


poly = {n 7 k + n k | k N} ;

par lin lensemble des fonctions linaires, cest--dire


lin = {n 7 k(n + 1) | k N} ;

et par log lensemble des fonctions logarithmiques, cest--dire


log = {n 7 klog(n + 2) | k N}.

On considrera donc en particulier des classes de la forme C /poly, C /lin et C /log.

5-I Remarque Les fonctions de poly, lin et log peuvent tre aussi grandes que lon
veut en n = 0, cest pour cela quon a utilis k + n k plutt que n k , k(n + 1) plutt que k n
et klog(n + 2) plutt que klog n.
Cela nous permet dinsister sur une classe centrale : P/poly.
5-J

Dfinition

La classe P/poly est donc lensemble des langages reconnus en temps polynomial avec
conseil de taille polynomiale.
5-K Remarque Cette notion de conseils nest pas toujours adapte et des versions
diffrentes de non-uniformit ont t introduites, notamment pour des classes comme
BPP que nous verrons au chapitre suivant.
Avec la dfinition ci-dessus, en effet, la machine probabiliste devrait avoir un compor-

5.1. Conseils

131

tement de type BPP quel que soit le conseil, alors que souvent seul le bon conseil nous
intresse.

5.1.3

Premiers rsultats

Pour se familiariser avec le concept, nous commenons par quelques petits rsultats.
Nous montrons tout dabord quun conseil de taille exponentielle est beaucoup trop puissant.
5-L

Proposition

Tout langage sur un alphabet appartient P/||n .


Ide de la dmonstration Il suffit de donner en conseil les ||n bits permettant de savoir
si chacun des ||n mots de taille n est dans le langage ou non.
Dmonstration Soit A un langage quelconque sur un alphabet . Pour n fix, on ordonne les mots de n en les considrant comme des entiers en base || :
x1 < x2 < < x||n .

On dfinit alors le conseil an comme suit : an {0, 1}|| et le i -me bit de an vaut 1
ssi xi A.
Pour x n , on peut maintenant dcider si x A grce au conseil an : il suffit daller
lire le x -me bit de an . Le langage B associ pour la dfinition 5-A est donc
n

{(i, y) | yi = 1}, o i n et y {0, 1}|| :


n

ce langage est clairement dans P (il faut remarquer que le temps de calcul est polynomial en |i | + |y| qui est la taille de lentre de B , mais il est exponentiel en |i| qui est la

taille de lentre de A). Ainsi, A P/||n .

Voici maintenant un rsultat dans lesprit du thorme dImmerman-Szelepcsnyi (4-AZ)


mais beaucoup plus simple : disposer dun conseil donnant le nombre dlments de
taille n dun langage permet de prendre le complmentaire dun calcul non dterministe
exponentiel.
5-M

Proposition

coNEXP NEXP/lin.

Ide de la dmonstration Pour dcider un langage A coNEXP en temps non dterministe exponentiel, on donne comme conseil le nombre m de mots de c A de taille n .
On peut alors deviner m mots x1 , . . . , x m , vrifier sils sont tous dans c A, et accepter
ssi x nest pas dans la liste.

132

Chapitre 5. Uniformit et non-uniformit

Dmonstration Soit A coNEXP sur lalphabet et x un mot de taille n . Puisque


c
A NEXP, il est reconnu par une machine non dterministe Nc fonctionnant en
temps exponentiel. On dfinit le conseil an {0, 1} comme le nombre |(c A)=n | cod
en binaire (le nombre de mots de taille n de c A) : |(c A)=n | ||n donc |an | = O(n).
Voici un algorithme non dterministe pour A avec conseil an , sur lentre x de taille
n:
pour i de 1 an faire

deviner xi n ,

rejeter si xi {x1 , . . . , xi 1 } (les xi doivent tous tre diff-

rents),

simuler Nc (xi ),

si le chemin simul est rejetant, rejeter ;

accepter ssi x {x1 , . . . , xan }.


la fin de la boucle pour, le calcul na pas rejet seulement si on a devin an mots
distincts x1 , . . . , xan et que lon a suivi pour chacun un calcul acceptant dans Nc . En
dautres termes, xi c A pour tout i . On a donc (c A)=n = {x1 , . . . , xan } car an = |(c A)=n |.
Pour dcider si x A, il suffit donc de tester si x {x1 , . . . , xan }.
Tout ce calcul se fait en temps exponentiel : on effectue au plus ||n itrations de boucle
et chaque itration on simule la machine Nc fonctionnant en temps exponentiel.

Puisque le conseil est de taille linaire, A NEXP/lin.

Nous avons donc vu quun conseil de taille exponentielle est bien trop puissant et quun
conseil de taille linaire permet dj des choses non triviales (puisquil est probable que
NEXP = coNEXP). Nous voyons maintenant quun conseil de taille logarithmique ne peut
en revanche pas aider pour rsoudre des problmes NP en temps polynomial.
5-N

Proposition

Si NP P/log alors NP = P.
Ide de la dmonstration Si A NP et NP P/log alors le problme de trouver un
certificat y pour un mot x A est aussi dans P/log. On numre alors tous les conseils
possibles de taille logarithmique et on teste si le certificat obtenu est correct pour x .
Dmonstration Soit A NP : pour tout mot x , x A ssi y {0, 1} p(|x|) (x, y) B , o
p(n) est un polynme et B P. On dfinit le langage

W = {(x, y , 1 p(|x|)|y | ) | y {0, 1} p(|x|) , y y , (x, y) B},

o y est un prfixe dun tmoin y pour x . Nous allons nous servir de W pour effectuer
une recherche prfixe dun certificat y pour un mot x : les p(|x|)|y | symboles 1 sont
l pour tre sr dutiliser toujours le mme conseil lors de la recherche.

5.2. Circuits boolens

133

On a bien sr W NP, donc W P/log par hypothse : il existe un langage C P et


une famille (an ) de conseils de taille log n tels que

(x, y , 1 p(|x|)|y | ) W ((x, y , 1 p(|x|)|y | ), a m ) C ,

o m = |(x, y , 1 p(|x|)|y | )|. Nous en dduisons un algorithme avec conseil a m pour


trouver un certificat y pour x si un tel certificat existe, algorithme quon dcrit avec
un conseil a quelconque :
Cert( x, a ) :
y (mot vide) ;
pour i de 1 p(|x|) faire

si ((x, y 0, 1 p(|x|)|y 0| ), a) C alors y y 0 sinon y y 1 ;

renvoyer y .
Cet algorithme est polynomial puisque C P et que p(n) est un polynme. Si on lui
fournit le bon conseil a m , alors il effectue une recherche prfixe jusqu trouver le plus
petit certificat y (sil existe).
On en dduit un algorithme dterministe polynomial pour A, sur lentre x :
pour tout a {0, 1} log m faire

soit y = Cert(x, a),

accepter si (x, y) B ;

rejeter.
Cet algorithme fonctionne en temps polynomial puisquil y a m conseils de taille
log m et que m est polynomial en |x|. Si x A alors il ny a pas de certificat y et
chaque test (x, y) B est faux, donc on rejette. En revanche, si x A alors il existe un
certificat y . Celui-ci est trouv par lappel Cert( x, a ) lorsque a = a m (le bon conseil) et

dans ce cas le test (x, y) B est vrai donc on accepte. Ainsi, A P.

5.2

Circuits boolens

Lune des raisons de limportance des classes non uniformes, et notamment de P/poly,
provient de leurs liens avec les circuits boolens.

5.2.1

Dfinition

Un circuit boolen se prsente comme un circuit lectronique avec des entres, des portes
dopration et une ou plusieurs sorties. Il ne doit pas y avoir de boucle dans le circuit. On
obtient ainsi la dfinition suivante.

134
5-O

Chapitre 5. Uniformit et non-uniformit


Dfinition

Un circuit boolen est un graphe orient acyclique (et connexe) tel que :
les sommets de degr entrant nul sont appels entres et sont tiquets par le nom
dune variable xi ou par la constante 0 ou 1 ;
les sommets de degr entrant 1 sont appels portes de ngation et sont tiquets par
;
les autres sommets sont soit des portes de conjonction, soit des portes de disjonction,
respectivement tiquetes par et ;
les sommets de degr sortant nul sont galement appels sorties ;
les voisins entrants dune porte sont appels ses arguments.
Sauf mention contraire, nos circuits auront une unique sortie et les portes et auront
un degr entrant gal 2.
Enfin, si C est un circuit, on appellera sous-circuit de C issu dune porte le circuit dont
la sortie est et dont les sommets sont les prdcesseurs de dans C .

5-P Remarque Dautres types de portes (par exemple des portes de majorit) pourront tre ajouts selon la classe que lon souhaite obtenir.

On trouvera un exemple de circuit la figure 5.1.


x1

x2

x3

x4

Figure 5.1 Exemple de circuit de taille 10 et de profondeur 4, dont certaines portes


sont de degr entrant 3 et 4.

Un circuit boolen calcule une fonction boolenne, dfinie de manire naturelle comme
suit.

5.2. Circuits boolens


5-Q

135

Dfinition

Soit C un circuit boolen sur les variables x1 , . . . , xn . La fonction calcule par une porte
de C est la fonction f : {0, 1}n {0, 1} dfinie rcursivement comme suit :
si est une entre tiquete par une variable xi , alors f (x1 , . . . , xn ) = xi ;
si est une entre tiquete par une constante c = 0 ou 1, alors f (x1 , . . . , xn ) = c ;
si est une porte dont largument est la porte , alors f = f ;
si est une porte (respectivement ) dont les arguments sont les portes 1 , . . . , k ,

alors f = ki=1 fi (resp. f = ki=1 fi ).


Si k = 2, on a donc f = f1 f2 (resp. f = f1 f2 ).
Si le circuit C a k portes de sortie s1 , . . . , sk , la fonction calcule par C est la fonction
f : {0, 1}n {0, 1}k dont la i -me composante est la fonction calcule par si .
En particulier, dans le cas k = 1 o C a une unique porte de sortie , alors f = f .
On doit maintenant dfinir deux caractristiques importantes dun circuit.
5-R

Dfinition

Soit C un circuit boolen.


La taille de C , note |C |, est le nombre de sommets du graphe.
La profondeur de C est la taille maximale dun chemin dune entre une sortie.

5-S Remarque On peut videmment encoder un circuit sur lalphabet {0, 1} en


donnant par exemple la matrice dadjacence du graphe et le type de chaque porte. Dans
ce cas, si le circuit a n sommets, alors la taille de son codage sera O(n 2 ). On notera C
la fois pour le circuit lui-mme et pour son code, le contexte permettant de faire la
distinction. Attention, la taille |C | dun circuit C correspond au nombre de ses portes,
mais la taille de son code est O(|C |2 ).
On peut dores et dj donner un lien simple entre taille et profondeur.
5-T

Lemme

Soit C un circuit de profondeur p ayant une unique sortie. Si les portes ont un degr
entrant major par k (pour un entier k 2), alors p < |C | k p+1 1.

136

Chapitre 5. Uniformit et non-uniformit

Dmonstration On a bien sr p < |C | puisquun chemin dune entre une sortie


ne peut avoir une taille |C |. On montre lautre ingalit par rcurrence sur p . Le
rsultat est clair pour p = 0 puisque C a une seule porte.
Pour p > 0 : soit la porte de sortie, cest--dire lunique porte la profondeur maximale p , et C1 , . . . , Ck les sous-circuits issus de ses arguments, o k k . On a donc

|C | 1 + ki=1 |Ci | 1 + k maxi |Ci |. Par hypothse de rcurrence (chaque Ci ayant

une profondeur p 1), |Ci | k p 1 donc |C | 1 + k p+1 k 1 + k p+1 .

Nous pouvons galement majorer le nombre de circuits dune certaine taille.


5-U

Lemme

Soit t et k des entiers. Si les portes ont un degr entrant major par k , alors il y a au plus
3 t t (k+1)t circuits de taille t .
Dmonstration Un circuit C peut tre dcrit par la liste de ses portes avec pour chacune
delles lensemble de ses arguments. Chaque porte ayant au plus k arguments, dans

un circuit de taille t il y a donc au plus ki=0 t i t k+1 possibilits pour lensemble


des arguments de chaque porte (un circuit de taille < t est vu comme un circuit de
taille t o les portes superflues ne sont pas relies au reste du circuit). Il y a galement
3 faons de ltiqueter : par , ou . Ainsi, il y a au plus 3t k+1 possibilits pour

chaque porte, soit au plus 3 t t (k+1)t circuits diffrents de taille t au total.

Nous allons utiliser les circuits pour reconnatre des langages. Un circuit a un nombre
constant dentres, ce qui fait quil ne peut pas servir lui seul pour tous les mots dun
langage : nous aurons donc besoin dune famille (Cn )nN de circuits, un pour chaque taille
dentre (le circuit Cn reconnaissant des mots de taille n ).
5-V

Dfinition

Si C est un circuit sur n variables, un mot x {0, 1}n est accept par C (not
C (x) = 1) si la fonction calcule par le circuit vaut 1 en x . Sinon, celle-ci vaut 0 en
x et on dit que x est rejet par C (not C (x) = 0).
Si (Cn )nN est une famille de circuits o Cn est sur n variables, le langage reconnu
par (Cn ) est lensemble des mots accepts par lun des circuits de la suite (les mots
de longueur n tant traits par le circuit Cn ).
On dit quune famille de circuits (Cn )nN est de taille t (n) si pour tout n , |Cn | est
major par t (n). De mme, une famille de circuits (Cn )nN de profondeur p(n)
est telle que la profondeur de Cn est au plus p(n) pour tout n .

5.2. Circuits boolens

137

5-W Remarque Les circuits ne reconnaissent que des langages sur lalphabet {0, 1} :
pour tout autre alphabet, il faut effectuer une traduction vers {0, 1} grce un morphisme.

5.2.2

Machines et circuits

Dans les deux propositions suivantes, nous allons voir le lien troit en machines de Turing
et familles de circuits. Tout dabord, on peut valuer efficacement un circuit.
5-X

Proposition

Si C dsigne un circuit boolen de taille t et de profondeur p , et x une entre pour C ,


alors il existe une machine de Turing fonctionnant en temps O(t 3 ) et en espace O( p) qui
sur lentre (C , x) calcule C (x) (on remarquera que la taille de lentre (C , x) est O(t 2 )
cause du code de C ).
Dmonstration Nous pouvons valuer C (x) de manire rcursive en suivant la dfinition de la valeur dune porte du circuit.
Eval(C , x ) :
si C est rduit une entre tiquete par une variable xi alors
renvoyer la valeur de xi ;
si C est rduit une entre tiquete par une constante c alors
renvoyer la valeur de c ;
si la porte de sortie de C est une porte dont largument est le
sous-circuit C , renvoyer Eval(C , x ) ;
si la porte de sortie de C est une porte dont les arguments sont
les sous-circuits C1 et C2 , renvoyer Eval(C1 , x )Eval(C2 , x ) ;
si la porte de sortie de C est une porte dont les arguments sont
les sous-circuits C1 et C2 , renvoyer Eval(C1 , x )Eval(C2 , x ).
Le temps dexcution de cet algorithme vrifie
T (|C |) O(|C |2 ) + T (|C1 |) + T (|C2 |)

car on va chercher dans le code de C les sous-circuits C1 et C2 (ce qui prend O(|C |2 )
qui est la taille du codage de C ) puis on value C1 (x) et C2 (x) (ce qui prend un temps
T (|C1 |) + T (|C2 |)). Puisque |C1 | + |C2 | |C | 1, on a |C1 |3 + |C2 |3 (|C | 1)3 et on
montre aisment par rcurrence que T (t ) = O(t 3 ).

138

Chapitre 5. Uniformit et non-uniformit

Pour la borne en espace, si S( p) dsigne lespace utilis pour valuer un circuit de


profondeur p , on obtient
S( p) = max{O(log t ), S( p 1) + O(1)}

puisque lon va chercher dans le code de C le sous-circuit C1 (ce qui prend un espace
O(log |C |)), en rutilisant cet espace on value C1 (ce qui prend un espace S( p 1)
puisque C1 est de profondeur p 1), on mmorise le rsultat (espace O(1)) et on
fait de mme pour C2 en rutilisant lespace, puis on effectue lopration sur les deux
rsultats. Au total, on trouve donc un espace S( p) = O( p + log t ) ; puisque t 2 p+1

(lemme 5-T), on obtient O( p).

Rciproquement, une famille de circuits peut simuler le fonctionnement dune machine


de Turing.
5-Y

Proposition

Si A DTIME(t (n)) alors il existe une constante > 0 telle que A est reconnu par
une famille de circuits (Cn )nN de taille t (n)2 .
Si A NSPACE(s (n)) alors il existe une constante > 0 telle que A est reconnu par
une famille de circuits (Cn )nN de profondeur s(n)2 .

Ide de la dmonstration Si A est reconnu par une machine M fonctionnant en temps


t (n), on considre le diagramme espace-temps de M (x) comme la figure 3.2. Dans
ce diagramme, le contenu de la case i au temps m +1 dpend uniquement du contenu
des cases i 1, i et i + 1 au temps m , ainsi que de ltat au temps m . On construit
un circuit ayant t (n) niveaux , chaque niveau correspondant une tape dans le
calcul M (x) (voir la figure 5.2(a)). Chaque niveau contient O(t (n)) portes : un nombre
constant de portes dont les valeurs coderont ltat de la machine ltape en cours, et
pour chaque case un nombre constant de portes dont les valeurs coderont le contenu
de la case ltape en cours, et un boolen pour savoir si la tte de lecture est sur cette
case. Puisque le nombre dtats et la taille de lalphabet de travail sont des constantes,
un tel nombre de portes suffit.
Enfin, les cases du niveau m +1 prennent toutes leurs valeurs en fonction des cases du
niveau m : il suffit dun petit circuit, toujours le mme, de taille constante, dpendant
de la fonction de transition de M , calculant le contenu de la case i ltape m + 1
en fonction du contenu des cases i 1, i et i + 1 et de ltat au temps m (voir la
figure 5.2(b)). De mme, pour calculer ltat au temps m + 1, chaque case du niveau
m est affuble dun circuit de taille constante calculant, en fonction de ltat au temps
m , le nouvel tat si la tte est sur cette case au temps m , et 0 sinon : il suffit ensuite
de faire une grande disjonction bits bits de tous ces rsultats pour obtenir ltat au
temps m + 1 (voir la figure 5.2(c)). Tout cela donne un circuit de taille O(t (n)2 ).
Pour simuler une machine non dterministe fonctionnant en espace s(n), on utilise
nouveau la mthode du graphe des configurations. Il sagit de construire un circuit

5.2. Circuits boolens

139

sortie
q

niveau t

case i

circuiterie

niveau t 1

niveau t 2

..
.

circuiterie
tte

niveau 2

circuiterie

niveau 3

tat q

i 1

cases

i +1

tat

niveau 1

ruban

entre x

(a)

(b)

(c)

Figure 5.2 (a) Vue densemble du circuit simulant M (x) selon le diagramme
espace-temps de M (x). (b) Calcul du contenu de la case i en fonction de ltat q et du
contenu des cases voisines ltape prcdente. (c) Calcul du nouvel tat en fonction de
lancien et de la case lue.

dcidant sil existe un chemin de taille 2O(s (n)) de la configuration initiale une configuration acceptante. On suit pour cela lalgorithme de Savitch (thorme 4-AS) : pour
i de 0 s(n) on construit un circuit C i dcidant sil existe un chemin de taille 2i
dune configuration u une configuration v .
C 0 doit simplement dcider si u = v ou si v est accessible depuis u en une transition.
Il sagit de vrifier que les cases de u ne contenant pas la tte nont pas chang, que celle
contenant la tte a chang en accord avec la relation de transition, et de mme pour
ltat. Pour cela, on compare pour chaque case son contenu dans u et dans v (profondeur constante) et on doit faire la conjonction de ces s(n) comparaisons pour savoir
si toutes son correctes : sous la forme dun arbre, la profondeur est alors O(log s (n))
(voir figure 5.3(a)).
Pour construire C i +1 , sur lentre (u, v) on teste pour toute configuration w si on
a C i (u, w) = 1 et C i (w, v) = 1. On fait tous ces tests en parallle ( en largeur ,
cf. figure 5.3(b)) si bien que la profondeur est celle de C i un prs (et la largeur
est 2O(s(n)) ). Puis il faut encore faire la disjonction de tous les rsultats pour savoir sil
existe un tel w , ce qui prend une profondeur log(2O(s (n)) ) = O(s (n)) sous la forme dun
arbre. Ainsi, la profondeur de C i +1 est celle de C i laquelle on a ajout O(s(n)). On

en dduit que la profondeur de C s (n) est O(s(n)2 ).

5-Z Remarque La preuve prcdente est constructive et trs uniforme : elle donne
un algorithme dterministe fonctionnant en espace O(log t (n)) qui, sur lentre n en

140

Chapitre 5. Uniformit et non-uniformit

tte

tte

w1 w1
Ci

O(1)

v ... u

Ci

log s(n)

w2 s w2 s
Ci

...

sortie

sortie

(a)

(b)

Ci

v
i s(n)

s(n)

Figure 5.3 (a) Le circuit C 0 pour tester si une configuration v est accessible depuis
une configuration u en une tape. (b) Le circuit C i +1 construit partir de C i .

unaire, construit le circuit simulant la machine DTIME(t (n)) sur les entres de taille n .
Cette remarque nous servira notamment lorsquon abordera la question de luniformit
des circuits.

Un peu de recul
Ce qui prcde montre que la taille dun circuit correspond au temps de calcul, tandis
que sa profondeur correspond lespace. Il est facile de voir que la profondeur correspond
galement au temps de calcul parallle sur une machine disposant de suffisamment de
processeurs pour valuer en mme temps toutes les portes dun mme niveau.
Ainsi, le temps parallle et lespace sont polynomialement lis et sinterprtent comme la
profondeur dun circuit.

5-AA

Corollaire

Tout langage de P a des circuits de taille polynomiale.


Tout langage de PSPACE a des circuits de profondeur polynomiale.

On peut en outre dduire de ces deux propositions un rsultat de compltude d Ladner [Lad75b]. Soit VALEUR CIRCUIT le problme suivant :
entre : un circuit C dont toutes les entres sont des constantes 0 ou 1 ;
question : la valeur calcule par le circuit C est-elle 1 ?

5.2. Circuits boolens


5-AB

141

Proposition

Le problme VALEUR CIRCUIT est P-complet pour les rductions en espace logarithmique.
Ide de la dmonstration La proposition 5-X permet dvaluer en temps polynomial
un circuit donn en entre. Donc VALEUR CIRCUIT P.
Pour la P-difficult, soit A P reconnu par une machine fonctionnant en temps polynomial. Par la proposition 5-Y, A est reconnu par une famille (Cn ) de circuits de taille
polynomiale. Par ailleurs, la remarque 5-Z montre que ces circuits sont constructibles
en espace O(log n). Si a {0, 1}n est fix, on note Da le circuit Cn dans lequel lentre
xi est remplace par la constante ai (il sagit donc de Cn valu en a ).
La rduction f de A VALEUR CIRCUIT associe alors D x x : x A ssi C|x| (x) = 1
ssi D x vaut 1 ssi f (x) VALEUR CIRCUIT. Puisque f est calculable en espace logarithmique, on en dduit que VALEUR CIRCUIT est P-complet pour les rductions en

espace logarithmique.

Des problmes EXP-complets et NEXP-complets concernant les circuits sont proposs


lexercice B-C.

5.2.3

Circuits et conseils

On peut caractriser la classe P/poly en termes de circuits (cest dailleurs souvent cette
caractrisation qui est prise comme dfinition) grce au rsultat suivant montr par Karp
et Lipton [KL82].
5-AC

Proposition

P/poly est la classe des langages reconnus par une famille de circuits de taille polynomiale.

En dautres termes, un langage A est dans P/poly ssi il existe une famille (Cn ) de circuits
et un polynme p(n) tels que :
pour tout n , |Cn | p(n) ;
pour tout x {0, 1} , C|x| (x) = 1 ssi x A.
Ide de la dmonstration Si un langage est reconnu par une famille de circuits de taille
polynomiale, alors il suffit de donner comme conseil le codage du circuit correspondant la taille de lentre. La machine se contente dvaluer le circuit sur lentre x ,
ce qui prend un temps polynomial.
Rciproquement, si A P/poly alors il est reconnu par la famille de circuit qui simule
la machine avec le bon conseil. Puisque le conseil est le mme pour toutes les entres
de mme taille, on peut le coder en dur en entre du circuit. Le circuit a une taille
polynomiale puisque le temps de calcul est polynomial.

142

Chapitre 5. Uniformit et non-uniformit

Dmonstration Soit A un langage reconnu par une famille de circuits (Cn ) de taille
polynomiale. Par la proposition 5-X, il existe une machine de Turing M fonctionnant
en temps polynomial qui, sur lentre (x, C|x| ), calcule la valeur C|x| (x). On appellera
B P le langage reconnu par M . Pour reconnatre A, il suffit alors de donner comme
conseil pour les entres de taille n le code du circuit Cn , car x A ssi (x, Cn ) B .
Puisque Cn est de taille polynomiale, cela montre que A P/poly.
Rciproquement, si A P/poly, alors A est reconnu par une machine M polynomiale
avec conseils (an ) de taille polynomiale : x A ssi M (x, a|x| ) = 1. La proposition 5-Y
donne un circuit Cn (x, y) de taille polynomiale qui simule M (x, y) pour |x| = n et
|y| = |an |. On remplace alors les entres y par les constantes an , ce qui laisse la taille
du circuit inchange. Si lon appelle Dn le nouveau circuit, on a x A ssi D|x| (x) = 1,

ce qui conclut puisque Dn a une taille polynomiale.

Cest en partie cette proposition qui donne son importance la classe P/poly. Les autres
classes non uniformes nadmettent pas de caractrisations si simples, part peut-tre
L/poly qui correspond lensemble des langages reconnus par des branching programs de
taille polynomiale (nous ne dfinirons pas les branching programs car ils ne nous serviront
pas par la suite).

5.3

Uniformit des circuits

La relation entre machines et circuits va encore plus loin que ce quon vient de voir. En
effet, nous avons pour le moment tudi des familles o les circuits nont pas de lien entre
eux : certains peuvent tre compliqus, certains simples, mais la connaissance du circuit
Cn ne nous renseigne pas sur celle de Cn+1 . Or en imposant de pouvoir construire le code
de Cn efficacement, on retrouve les classes uniformes que lon a tudies jusqu prsent.
5-AD

Dfinition

Soit C une classe de complexit et (Cn ) une famille de circuits. On dit que (Cn ) est
C -uniforme si
{(1n , i) | le i -me bit du code de Cn est 1} C ,
o i est donn en binaire.
En particulier, une famille de circuits (Cn ) de taille polynomiale est P-uniforme (respectivement L-uniforme, PSPACE-uniforme) si on peut construire le code de Cn en temps
polynomial en n (resp. espace logarithmique, polynomial en n ).
Sans indication de la classe C , (Cn ) est dite uniforme si elle est P-uniforme.
Les familles uniformes de circuits de taille polynomiale reconnaissent une classe bien
connue.

5.4. Autres classes dfinies par circuits


5-AE

143

Proposition

La classe P est lensemble des langages reconnus par une famille uniforme de circuits de
taille polynomiale.
Ide de la dmonstration Si A est reconnu par une famille uniforme (Cn ) de circuits
de taille polynomiale, pour dcider si x A il suffit de :
construire C|x| en temps polynomial en |x| par uniformit ;
valuer C|x| (x) en temps polynomial par la proposition 5-X.
On dcide ainsi A en temps polynomial.
Rciproquement, si A P alors la remarque 5-Z montre que A possde une famille de
circuits de taille polynomiale dont le code est calculable en espace logarithmique : en

particulier, cette famille est P-uniforme.

. 5-AF

Exercice

Vrifier que la dmonstration ci-dessus montre en ralit que A P ssi A est reconnu
par des circuits L-uniformes de taille polynomiale. On en dduit que pour les circuits
de taille polynomiale, la P-uniformit et la L-uniformit ont la mme puissance.
De mme, montrer quun langage A est dans PSPACE ssi A possde des circuits PSPACE-uniformes de profondeur polynomiale ssi A possde des circuits Luniformes de profondeur polynomiale. Donc pour des circuits de profondeur polynomiale, les uniformits L, P et PSPACE ont mme puissance.
On peut sinterroger sur la pertinence de dfinir un modle non uniforme (les circuits)
pour y adjoindre ensuite une contrainte duniformit grce des machines de Turing.
Cest en effet peu utile pour les circuits de taille polynomiale puisquon retrouve la classe
P. En revanche, cela prend tout son sens pour des classes plus petites que nous verrons la
section suivante (circuits de profondeur borne par exemple), puisque ces classes nont pas
ncessairement danalogue dfini par machine de Turing et que luniformit est ncessaire
pour les comparer aux classes usuelles uniformes.
5-AG Remarque Pour de petites classes de circuits comme celles ci-dessous, dautres
notions duniformit plus restrictives ont t dfinies (par exemple luniformit DLOGTIME o la description de chaque bit du code du circuit Cn se fait en temps O(log n)),
mais nous ne les aborderons pas dans cet ouvrage.

5.4

Autres classes dfinies par circuits

Les circuits sont galement utiles pour dfinir de petites classes, incluses dans P/poly.
Nous ne les tudierons que marginalement dans ce livre, mais en donnons tout de mme

144

Chapitre 5. Uniformit et non-uniformit

la dfinition. Nous commenons par une classe uniforme.


5-AH

Dfinition

Pour i 1, NCi est la classe des langages reconnus par une famille L-uniforme de circuits
de taille polynomiale et de profondeur O((log n)i ).
NC dsigne lunion des NCi , cest--dire que la profondeur des circuits est polylogarithmique.

5-AI

Remarque Le N dans NC ne signifie pas non dterministe , mais NC dsigne

Nicks Class en lhonneur de Nick Pippenger qui a tudi ce genre de circuits.

Les propositions 5-X et 5-Y montrent le rsultat suivant.


5-AJ

Proposition

NC1 L NL NC2 NC P.

On peut encore restreindre la profondeur mais il faut alors autoriser les portes avoir un
degr entrant quelconque. Voici deux autres classes non uniformes importantes dfinies
par des circuits de profondeur constante.
5-AK

Dfinition

AC0 est la classe des langages reconnus par une famille de circuits de taille polynomiale et de profondeur constante (cest--dire quil existe une constante telle que
|Cn | pour tout n ) avec des portes et de degr entrant arbitraire.
Pour dfinir TC0 , on a besoin de portes de majorit (ou portes seuil ). Une
porte de majorit a un degr entrant arbitraire et renvoie 1 si au moins la moiti de
ses arguments valent 1, et 0 sinon.
TC0 est la classe des langages reconnus par une famille de circuits de taille polynomiale et de profondeur constante avec des portes et de degr entrant arbitraire
et des portes de majorit.

5-AL

Remarques

On pourrait dfinir ACi et TCi pour i 1 de la mme manire mais avec des circuits

5.5. Intrt des circuits et bornes infrieures non uniformes

145

de profondeur O((log n)i ). Cependant, ces classes sont beaucoup moins tudies.
Les noms AC et TC viennent de Alternation Circuits et de Threshold Circuits.

5-AM

Proposition

AC0 TC0 L/poly.

Ide de la dmonstration La premire inclusion est vidente. Pour la seconde, pour un


langage A de TC0 on donne comme conseil pour les entres de taille n la description
du circuit Cn . Il sagit alors de montrer quon peut lvaluer en espace logarithmique.
On procde de manire rcursive comme la proposition 5-X : pour valuer une
porte g darguments g1 , . . . , g m , on value les arguments dans lordre, en retenant o
lon en est par un compteur i {1, . . . , m}, et selon le type de porte g , soit on attend
dobtenir un 1 (pour une porte ) ou un 0 (pour une porte ), soit on compte le
nombre de 1 (pour une porte majorit). Lespace utilis la profondeur p satisfait
donc S( p) = O(log n) + S( p 1). Ainsi, S( p) = O( p log n), donc lespace utilis est

O(log n) puisque la profondeur p est constante.

5.5

Intrt des circuits et bornes infrieures non uniformes

Outre leur dfinition naturelle, les circuits ont t tudis notamment car leur manipulation est plus aise que celle des machines de Turing. Nous verrons au chapitre 7 sur les
limites de la diagonalisation que pour rsoudre une question comme P = NP ? , il faut
comprendre le fonctionnement interne des machines de Turing et non seulement les utiliser comme des botes noires. Or la dfinition des machines de Turing est trop complique
pour comprendre prcisment ce qui se passe, tandis quon peut manipuler plus aisment
celle des circuits. Ainsi, pour montrer que P = NP, une stratgie est de montrer que NP
na pas de circuits de taille polynomiale, comme le montre la proposition suivante.
5-AN

Proposition

Si NP na pas de circuits de taille polynomiale, alors P = NP.


Dmonstration Puisque P P/poly, si A NP \ (P/poly) alors A NP \ P.

Montrer quune classe de complexit nadmet pas de petits circuits est alors un problme
central en complexit, mais cest aussi un problme gnralement difficile. Nous tudierons plus en dtail ce genre de question au chapitre 11 sur les bornes infrieures non
uniformes.
Notre connaissance est trs limite ce sujet. Mentionnons par exemple que nous ne savons pas montrer quil existe des problmes dans EXP qui nont pas de circuits de taille

146

Chapitre 5. Uniformit et non-uniformit

polynomiale : en symboles, EXP P/poly ? est une question ouverte. Comme nous
lavons dj remarqu, ces deux classes sont diffrentes puisque P/poly est indnombrable,
cest donc bien linclusion qui nous importe. Notons que lanalogue uniforme de cette
question est bien connu : sparer EXP de P se fait simplement par le thorme de hirarchie en temps dterministe.
Il nous faudra plus doutils pour aborder ces questions, cest pourquoi nous le ferons
seulement au chapitre 11.

5.6

Circuits arithmtiques

Outre les circuits boolens, nous aurons besoin par la suite de circuits arithmtiques qui
calculent des polynmes. La dfinition est la mme mais les circuits possdent maintenant
des portes daddition et de multiplication plutt que de disjonction et de conjonction.
Pour parler de polynmes, on se place sur un corps K quelconque dans lequel vivront les
coefficients du polynme.
5-AO

Dfinition

Un circuit arithmtique sur un corps K est un graphe orient acyclique (et connexe) tel
que :
les sommets de degr entrant nul sont appels entres et sont tiquets par le nom
dune variable xi ou par une constante quelconque K ;
les autres sommets sont de degr entrant 2 et sont soit des portes daddition, soit des
portes de multiplication, respectivement tiquetes par + et ;
un unique sommet est de degr sortant nul et est appel sortie ;
les voisins entrants dune porte sont appels ses arguments.
Nous dirons quun circuit est sans constante sil nutilise pas de constante arbitraire de K
autre que 1 (pour pouvoir effectuer des soustractions).
La taille dun circuit arithmtique est le nombre de portes de celui-ci.

5-AP Remarque Un circuit arithmtique sans constante, en tant que graphe tiquet, peut bien sr tre encod en binaire, par exemple par sa matrice dadjacence et la
liste des tiquettes des sommets. En revanche, si des constantes quelconques dun corps
infini sont autorises alors celles-ci ne sont pas forcment encodable de manire finie.

Un circuit calcule un polynme de manire naturelle.

5.6. Circuits arithmtiques


5-AQ

147

Dfinition

Si C est un circuit arithmtique sur K sur les variables x1 , . . . , xn , alors chaque porte de
C calcule un polynme F K[x1 , . . . , xn ] dfini comme suit :
une porte tiquete par une constante K calcule le polynme constant
f (x1 , . . . , xn ) = ;
une porte tiquete par une variable xi calcule le polynme f (x1 , . . . , xn ) = xi ;
une porte tiquete par + (respectivement ) et dont les arguments sont 1 et 2
calcule le polynme f = f1 + f2 (resp. f = f1 f2 ).
Le polynme calcul par C est le polynme calcul par sa porte de sortie.
5-AR Remarque Attention, on manipule ici vraiment des polynmes, et non des
fonctions polynomiales.
On trouvera quelques exemples de circuits arithmtiques la figure 5.4, illustrant notamn
ment la technique des lvations au carr successives pour calculer lentier 22 en n + 1
oprations.
Attardons-nous sur une remarque. Puisque le degr du polynme calcul par une porte
est au plus la somme de ceux de ses arguments, on dduit le lemme suivant.
5-AS

Lemme

Si f est un polynme calcul par un circuit de taille t , alors son degr est major par 2 t .
n

Dans le mme esprit, 22 est le plus grand entier calculable en n + 1 oprations + ou


partir de la constante 1, comme le montre le lemme suivant. On peut aussi majorer les
coefficients dun polynme calcul par un circuit sans constante de taille t , rsultat dont
nous aurons besoin plus tard.
5-AT

Lemme

Si N Z est calcul par un circuit arithmtique sans constante de taille t , alors


t 1
|N | 22 .
Si p Z[x1 , . . . , xn ] est calcul par un circuit arithmtique sans constante de taille
2t
t , alors les coefficients de p sont strictement majors en valeur absolue par 22 .

Dmonstration Pour le premier point, nous montrons que la meilleure stratgie pour
calculer un grand entier est deffectuer des lvations au carr successives. On raisonne

148

Chapitre 5. Uniformit et non-uniformit


1
+

..
.

..
.

(a)

(b)

(c)
n

Figure 5.4 (a) Circuit arithmtique sans constante de taille n + 2 pour calculer 22 .
n
(b) Circuit arithmtique sans constante de taille n + 1 pour calculer le polynme x 2 .
(c) Circuit arithmtique sur R de taille 12 calculant le polynme
((x + y)2 + x + y + y z)(x + y + y z)( + y z).

t 1

par rcurrence sur t . Pour t = 1, la valeur du circuit est N = 1 donc |N | 22 . Pour


t > 1, si la porte de sortie du circuit est une addition, alors N est la somme de deux
t 2
t 1
termes calculs par un circuit de taille au plus t 1, donc |N | 2 22 22 par
t 2
t 1
hypothse de rcurrence. Si cest une multiplication, alors |N | (22 )2 = 22 . Donc
lhypothse est montre au rang t .
Pour le second point, un polynme en n variables calcul par un circuit de taille t a
un degr 2 t (lemme 5-AS). Ainsi, il a au plus (1 + 2 t )n monmes (correspondant au
choix dun degr entre 0 et 2 t pour chacune des n variables).
On montre le rsultat par rcurrence sur t . Pour t = 1, le rsultat est clair puisque
le polynme calcul est soit la constante 1 soit une variable xi . Pour t > 1, soit C
un circuit de taille t et g = g1 g2 sa porte de sortie, o {, +}. Par hypothse
de rcurrence, les coefficients de g1 et g2 ont tous leur valeur absolue majore par
2(t 1)
t 1 = 22
.
Si g = g1 + g2 alors les coefficients de g sont tous la somme dun coefficient de g1 et
dun coefficient de g2 donc ils sont majors en valeur absolue par 2 t 1 .
Si g = g1 g2 alors les coefficients de g sont la somme dau plus (1 + 2 t )n produits dun
coefficient de g1 et dun coefficient de g2 donc ils sont majors en valeur absolue par

5.6. Circuits arithmtiques

149

(1 + 2 t )n 2t 1 .
Puisque n t on a donc dans les deux cas :
2(t 1)

t (1 + 2 t ) t 2t 1 2 t (t +1) 222

2t 1

= 2 t (t +1)+2

2t

< 22 .

Dans certaines constructions, nous aurons besoin de tronquer un polynme. On appelle composante homogne de degr i dun polynme f (x1 , . . . , xn ) la somme des monnes
de f de degr i . Par exemple, la composante homogne de degr 2 de
1 + 2x + y + 3x 2 xy + 5y 2 2x 3 + x 2 y 4

est 3x 2 xy + 5y 2 . Le polynme f tronqu au degr d est la somme des composantes


homognes de f de degr allant de 0 d . Dans lexemple prcdent, le polynme tronqu
au degr 2 est 1+2x + y +3x 2 xy +5y 2 . Si d nest pas trop grand, il est facile de tronquer
un polynme calcul par un circuit.
5-AU

Lemme

Si un circuit arithmtique C de taille t calcule un polynme f , alors il existe un circuit


arithmtique D de taille d 2 t calculant f tronqu au degr d , o est une constante
indpendante de C .
Dmonstration Pour chaque porte g de C , on va ignorer les monnes de degr d + 1
et on va calculer les composantes homognes de degr compris entre 0 et d . On notera
gi la composante homogne de degr i de g . Pour le calcul par D des composantes homognes, on remplace chaque porte g de C par d +1 portes de D , la porte i calculant
gi .
Pour une constante K en entre, la porte de D correspondant la composante
homogne de degr 0 vaut , tandis que les autres valent 0. Pour une variable x , la
porte de D correspondant la composante homogne de degr 1 vaut x , tandis que
les autres valent 0. Pour une porte g = p + q , pour tout i on a gi = pi + qi , ce qui
permet de calculer chaque gi par une simple somme en fonction des
composantes
homognes de p et q . Enfin, si g = pq , alors pour tout i on a gi = ij =0 p j qi j , ce
qui permet de calculer chaque gi par une circuiterie de taille 2i +1 (soit une circuiterie

totale de taille di=0 (2i + 1) = (d + 1)2 pour les d + 1 composantes homognes). La


construction est illustre la figure 5.5.
La sortie du circuit D est alors la somme des d +1 composantes homognes de la sortie
de C , ce qui prend d portes daddition supplmentaires. Au total, la taille de D est

O(d 2 t ).

On aura remarqu que nos circuits nont pas de porte de division puisquon souhaite
rester dans lanneau des polynmes. Nanmoins, les divisions semblent a priori pouvoir
acclrer le calcul, comme par exemple pour calculer le polynme
d

i=0

xi =

x d +1 1
x 1

150
x1

Chapitre 5. Uniformit et non-uniformit


...

xn

...

x1
...

...

...

xn
...
...

1
...

...

...

...

...

...

circuit C


f0 f1

k
...

...
...

fd

f tronqu

circuit D

Figure 5.5 Transformation dun circuit C calculant f en un circuit D calculant f


tronqu au degr d .

pour lequel la division par x 1 rduit le nombre doprations O(log d ). En ralit, tant
quon calcule un polynme de petit degr celles-ci napportent pas grand-chose comme
le montre llimination des divisions de Strassen [Str73b] ci-dessous. Cest donc une
autre raison pour nautoriser que les oprations + et dans nos circuits.
5-AV

Proposition (Vermeidung von Divisionen)

Soit K un corps infini. Soit C un circuit arithmtique de taille t avec divisions calculant
dans le corps des fractions rationnelles K(x1 , . . . , xn ). Si C calcule un polynme f de degr
d , alors il existe un circuit arithmtique D sans division de taille (d 3 + d 2 t ) calculant
f , o est une constante indpendante de C et d .
Ide de la dmonstration On souhaiterait
remplacer une division f = p/(1 q) par
son dveloppement en srie entire p i0 q i , ce qui ne fait plus intervenir de division,
mais cette somme est infinie. En utilisant le fait que f est un polynme et en tronquant
le rsultat comme au lemme prcdent, on peut montrer que le dbut de cette somme

suffit, cest--dire quon remplacera la division par p di=0 q i puis on tronquera le


rsultat au degr d .
Dmonstration Tout dabord, on remplace chaque porte g de C par deux portes, la

5.6. Circuits arithmtiques

151

premire calculant le numrateur de g et la seconde son dnominateur. Puisque


( p/q)( p /q ) = ( p p )/(q q )

( p/q) + ( p /q ) = ( p q + p q)/(q q ),

et

on peut aisment calculer le numrateur et dnominateur dune porte daddition ou


de multiplication partir des numrateurs et dnominateurs de ses arguments, ce qui
permet de calculer les numrateurs et dnominateurs de toutes les portes de C en
multipliant la taille de C par une constante seulement. Dans ce nouveau circuit, il
ny a pas de division. Le polynme f est alors le quotient du numrateur de la porte
de sortie de C par son dnominateur, cest--dire quon sest ramen une unique
division f = p/q .
Soit K n un n -uple de constantes tel que q() = = 0, qui existe car K est infini
et q = 0 en tant que dnominateur. Pour x un n -uple de variables, on note alors
p (x) = 1 p( + x)

et

q (x) = 1 1 q( + x),

de sorte que q (0) = 0. On considre le circuit C qui calcule p et q , sa taille est


linaire en celle de C , et on note f (x) = f ( + x), qui reste un polynme de degr d
et vrifie f = p /(1 q ). On a alors f f q = p . Donc par tlescopage des termes
q i ,
p

i=0

q i = f

q i f q

i=0

q i = f (1 q d +1 ).

i=0
d +1

Puisque q (0) = 0, tout monme de q


a un degr d + 1, donc la troncature de

p di=0 q i au degr d vaut f .

Ainsi, le calcul de f seffectue en calculant dans un premier temps di=0 q i , qui requiert O(d ) portes supplmentaires une fois que q est calcul, cest--dire une taille

O(d + t ) puisque C a une taille O(t ). Puis on tronque le produit p di=0 q i au degr
d . Le lemme 5-AU indique quune telle opration multiplie la taille par O(d 2 ). Ainsi,
f se calcule par un circuit de taille O(d 3 + d 2 t ).
Enfin, pour calculer f il suffit dvaluer f en (x ) et on obtient donc un circuit

sans division et de taille O(d 3 + d 2 t ) pour f .

Prcisons enfin pour les lecteurs dsirant sentraner que les exercices B-B et B-G en annexe
traitent galement de non-uniformit.

Algorithmes
probabilistes
Beaucoup dalgorithmes utilisent le hasard pour tre plus efficaces, par exemple le classique tri rapide. Or les machines de Turing vues jusqu prsent ne parlent aucunement
de probabilits. Dans ce chapitre, nous allons donner le cadre thorique ncessaire pour
ltude des algorithmes probabilistes, dfinir les classes importantes de problmes rsolus
par algorithmes probabilistes et enfin les comparer avec celles vues jusqu prsent.
Nous commenons par lexemple du tri rapide pour illustrer les nouvelles caractristiques
des machines de Turing probabilistes. Cependant, nous nutiliserons pas ces machines par
la suite car tout peut tre dfini en termes de machines de Turing dterministes.

6.1

Machines de Turing probabilistes

Nous avons vu que la classe NP peut tre dfinie en termes de machines non dterministes ou en termes de machines dterministes avec un quantificateur existentiel (voir
section 2.2.6). De mme pour les classes probabilistes, on peut dfinir des machines probabilistes ou se contenter des machines dterministes. Nous privilgierons cette seconde
approche, mais souhaitons tout de mme dfinir les machines probabilistes pour mieux
coller la ralit des algorithmes probabilistes.
Il y a de nombreux exemples dalgorithmes probabilistes ; mais dans cette introduction
nous illustrons notre propos par le classique tri rapide (quicksort). Nous verrons un autre
exemple intressant plus loin dans ce chapitre.

6.1.1

Tri rapide

Nombre dalgorithmes existent pour trier par ordre croissant un tableau T = (x1 , . . . , xn )
de n nombres distincts. Parmi eux, le tri rapide fonctionne en choisissant un pivot xi ,

154

Chapitre 6. Algorithmes probabilistes

puis en triant rcursivement les deux tableaux T1 = {x j | x j < xi } et T2 = {x j | x j > xi }.


Pour former T1 et T2 , il suffit de parcourir T ce qui prend un temps linaire ((n)).
La diffrence entre les versions dterministe et probabiliste vient du choix du pivot. Voici
la version dterministe o on prend le premier lment x1 comme pivot.

TriRapide_det(T ) :
si T a 0 ou 1 lment, renvoyer T ; sinon :
T1 {x j | x j < x1 } ;
T2 {x j | x j > x1 } ;
renvoyer TriRapide_det(T1 ), x1 ,TriRapide_det(T2 ).
Le problme de cette version est quelle fonctionne en (n 2 ) tapes dans le pire cas. En
effet, dans le cas particulier o T est dj tri par ordre croissant, alors T1 est toujours vide
au cours de lalgorithme et T2 possde n 1 lments. Le nombre dtapes C (n) vrifie
donc la relation C (n) = (n) + C (n 1), ce qui donne C (n) = (n 2 ).
Pour remdier ce problme, la version probabiliste de lalgorithme choisit le pivot au
hasard parmi x1 , . . . , xn .

TriRapide_proba(T ) :
si T a 0 ou 1 lment, renvoyer T ; sinon :
choisir i au hasard parmi {1, . . . , n} ;
T1 {x j | x j < xi } ;
T2 {x j | x j > xi } ;
renvoyer TriRapide_proba(T1 ), xi ,TriRapide_proba(T2 ).
Dans ce cas, le nombre dtapes dpend du choix alatoire des pivots. Mais on peut valuer
le nombre moyen dtapes : pour tout i {1, . . . , n}, avec probabilit 1/n , T1 a i 1
lments et T2 en a n i . Donc le nombre moyen dtapes vrifie
C (n) = (n) +

(C (i 1) + C (n i))/n,

i =1

ce qui donne C (n) = (n log n), esprance du nombre dtapes de lalgorithme probabiliste dans tous les cas.

6.2. Classes probabilistes

155

Ainsi, lalgorithme probabiliste possde un temps moyen dexcution de (n log n) sur


toute entre, alors que pour certaines entres, lalgorithme dterministe a toujours un
temps dexcution de (n 2 ).
Pour excuter lalgorithme probabiliste, une machine doit tre capable de tirer un nombre
au hasard entre 1 et n . Plutt que le nombre lui-mme, on tire ses bits un un, ce qui
fait quil suffit de savoir tirer pile ou face (0 ou 1). Cela donne naissance la notion de
machine de Turing probabiliste.

6.1.2

Machines de Turing probabilistes

Comme pour les machines non dterministes, plusieurs transitions seront possibles
chaque tape (sans perte de gnralit, on se limitera deux possibilits). La diffrence
avec les machines non dterministes vient simplement de linterprtation du calcul : ici
on attribue des probabilits chaque choix.
6-A

Dfinition (machine de Turing probabiliste)

Une machine de Turing probabiliste M est une machine de Turing munie dune relation
de transition qui permet chaque tape deux transitions possibles. Lors de lexcution
de M sur une entre x , chaque tape lune ou lautre des deux transitions est applique,
avec probabilit 1/2 chacune, indpendamment des choix prcdents.
la fin du calcul, M accepte x (M (x) = 1) ou rejette x (M (x) = 0). Le rsultat de lexcution est donc une variable alatoire valeur dans {0, 1}.
On dit que M fonctionne en temps t (n) si pour toute entre x , le nombre dtapes de
lexcution de M (x) est infrieur t (|x|) quels que soient les choix probabilistes.
Larbre dexcution dune machine de Turing probabiliste est donc un arbre binaire, et la
probabilit dune branche de longueur l est 2l .

6.2

Classes probabilistes

Soit M une machine probabiliste fonctionnant en temps t (n). Si lon donne une suite
de choix probabilistes sous la forme dun mot r {0, 1} t (n) , alors on peut simuler de
manire dterministe le calcul de M le long de cette suite de choix. Il existe donc une
machine dterministe M qui, sur lentre (x, r ), excute le calcul de M (x) le long des
choix probabilistes donns par r .
Ainsi, plutt que de manipuler les machines probabilistes, nous utiliserons des machines
dterministes qui prendront en entre, en plus du mot x , le mot r des choix probabilistes
(que lon appellera bits alatoires). Souvent on ne parlera mme plus de machines mais
seulement de langages (dans P, par exemple).

156

Chapitre 6. Algorithmes probabilistes

6.2.1

Dfinitions

Nous devons les dfinitions qui suivent Gill [Gil77]. Une machine probabiliste M peut
accepter un mot x le long de certains choix probabilistes et le rejeter le long dautres choix.
Cependant, pour reconnatre raisonnablement un langage A, on sent intuitivement que
M ne doit pas faire trop derreurs : M (x) doit accepter avec grande probabilit si x A,
et rciproquement M (x) doit rejeter avec grande probabilit si x A. Cest ce qui donne
lieu la dfinition de la classe suivante.
6-B

Dfinition (BPP)

La classe BPP (pour Bounded error Probabilistic Polynomial time) est lensemble des langages A tels quil existe un polynme p(n) et un langage B P satisfaisant pour tout mot
x:

x A = Pr r {0,1} p(|x|) ((x, r ) B) 2/3 ;


x A = Pr r {0,1} p(|x|) ((x, r ) B) 2/3.

On peut reformuler cette dfinition comme suit : il existe un machine de Turing probabiliste fonctionnant en temps polynomial qui reconnat A avec erreur 1/3.
Une autre classe intressante est obtenue lorsquon impose la machine de ne pas faire
derreur pour les instances hors du langage.
6-C

Dfinition (RP)

La classe RP (pour Randomized Polynomial time) est lensemble des langages A tels quil
existe un polynme p(n) et un langage B P satisfaisant pour tout mot x :

x A = Pr r {0,1} p(|x|) ((x, r ) B) 2/3 ;


x A = r {0, 1} p(|x|) (x, r ) B.

On peut reformuler cette dfinition comme suit : il existe un machine de Turing probabiliste fonctionnant en temps polynomial qui reconnat A avec erreur 1/3 si x A et
sans erreur si x A.
Dans le cas de RP, on dit que lalgorithme fait une erreur dun seul ct . Il est vident
que lon a les inclusions P RP BPP.
6-D Remarque Souvent la dfinition de RP est donne avec une probabilit dacceptation 1/2 plutt que 2/3 dans le cas o x A. Nous avons choisi 2/3 pour la
similitude avec BPP. Les deux dfinitions sont quivalentes (exercice 6-H) puisquon peut
rduire la probabilit derreur arbitrairement comme nous le verrons la proposition 6-E.

6.2. Classes probabilistes

157
Un peu de recul

Ces deux classes sont appeles smantiques (par opposition syntaxiques ) car leur
dfinition dpend dune condition sur le comportement des machines probabilistes que
toutes ne satisfont pas : pour BPP par exemple, il faut en effet que sur toute entre elles
acceptent avec probabilit 1/3 ou 2/3. Cette proprit nest mme pas dcidable.

6.2.2

Rduction derreur

Dans ces deux dfinitions, le choix du seuil derreur 1/3 est arbitraire (tant quil est strictement infrieur 1/2 pour BPP), car on peut rduire la probabilit derreur comme le
montrent les deux propositions suivantes.
6-E

Proposition

La probabilit derreur pour les langages de RP peut tre rduite 2n .


Plus prcisment, si A RP alors pour toute constante c il existe un langage B P et un
polynme p(n) tels que pour tout mot x ,
O(1)

x A = Pr r {0,1} p(|x|) ((x, r ) B) 1 2|x| ;


x A = r {0, 1} p(|x|) (x, r ) B.
c

Ide de la dmonstration On rpte O(n c ) fois lalgorithme probabiliste : si lune des


excutions accepte alors x A, sinon on dcrte que x A.
Dmonstration Soit A RP reconnu par une machine M (x, r ), avec erreur 1/3 quand
x A. On considre lalgorithme probabiliste suivant pour A sur une entre x de taille
n:
pour i de 1 N = n c faire

choisir r au hasard et simuler M (x, r ) ;

accepter si M (x, r ) = 1 pour au moins une excution ;


sinon rejeter.
Si x A, alors toutes les excutions rejettent x donc lalgorithme rejette toujours. Si
x A, alors lalgorithme rejette seulement si toutes les excutions rejettent : puisquelles sont indpendantes et que chacune a une probabilit 1/3 de rejeter, la proc
babilit quelles rejettent toutes est (1/3)n . Au final, la probabilit derreur est bien
n c

2 .

158

Chapitre 6. Algorithmes probabilistes

La preuve pour BPP est lgrement plus subtile car lerreur peut survenir des deux cts.
6-F

Proposition

La probabilit derreur pour les langages de BPP peut tre rduite 2n .


Plus prcisment, si A BPP alors pour toute constante c il existe un langage B P et un
polynme p(n) tels que pour tout x ,
O(1)

x A = Pr r {0,1} p(|x|) ((x, r ) B) 1 2|x| ;


c
x A = Pr r {0,1} p(|x|) ((x, r ) B) 1 2|x| .
c

Ide de la dmonstration Comme prcdemment, on rpte O(n c ) fois lalgorithme


probabiliste, mais cette fois on prend la rponse majoritaire.
Dmonstration Soit A BPP reconnu par une machine M (x, r ) avec erreur 1/3.
Soit N tel que ( 3p4 2 ) < 1/2 (par exemple = 12). On considre lalgorithme
probabiliste suivant pour A sur une entre x de taille n :
pour i de 1 N = n c faire

choisir r au hasard et simuler M (x, r ) ;

accepter si M (x, r ) = 1 pour au moins la moiti des excutions ;


sinon rejeter.
On note Xi la variable alatoire qui vaut 0 si la i -me excution M (x, r ) donne
la bonne
rponse [x A] (probabilit 2/3), et 1 sinon (probabilit 1/3). Soit X = Ni=1 Xi :
lalgorithme ne fait donc pas derreur si X < N /2. Par les bornes de Chernoff (la
version faible donne la proposition A-M suffit), on a


1 + 1/3
Pr(X N /2)
p
2

N

4
= p
3 2

 n c

< 2n .
c

6-G Remarque La version faible des bornes de Chernoff (proposition A-M) permet
de
p rduire la probabilit derreur seulement lorsque celle-ci est initialement infrieure
( 2 1). Cependant, en procdant de la mme faon on pourrait partir de nimporte
quelle probabilit derreur p < 1/2 en utilisant la version plus forte donne la proposition A-N.

6.2. Classes probabilistes

. 6-H

159

Exercice
Montrer que la dfinition de RP est inchange si lon remplace la constante 2/3 par
toute constante ]0, 1[.
De mme, montrer que la dfinition de BPP est inchange si lon remplace la
constante 2/3 par toute constante ]1/2, 1[.

6.2.3

Comparaison avec les classes uniformes


Un peu de recul

Puisquen pratique, on sait tirer efficacement des nombres pseudo-alatoires qui


semblent suffire pour les algorithmes connus, et tant donn la rduction derreur extrme
que lon parvient obtenir (pour n = 100, une erreur 2n correspond une probabilit
1030 de se tromper), on considre en gnral que les problmes de BPP, et a fortiori de
RP, sont rsolubles efficacement.
Cependant, dans notre cadre thorique on ne sait toujours pas simuler efficacement de
manire dterministe les algorithmes probabilistes.
La meilleure inclusion connue de BPP dans une classe dterministe est linclusion vidente
suivante.
6-I

Lemme
BPP PSPACE

Ide de la dmonstration Il suffit de simuler la machine BPP le long de tous les chemins possibles et, en fonction du nombre de chemins acceptants, dvaluer la proba
bilit que le mot soit accept.

Pour RP, accepter une erreur seulement du ct o x A (plutt que x A) peut paratre
arbitraire. Le choix de cette convention vient du rsultat suivant.
6-J

Proposition
RP NP

160

Chapitre 6. Algorithmes probabilistes

Dmonstration Si A RP, en suivant la dfinition, soit B P et p(n) un polynme tels


que pour tout x :

x A = Pr r {0,1} p(|x|) ((x, r ) B) 2/3 ;


x A = r {0, 1} p(|x|) (x, r ) B.

Alors x A ssi r (x, r ) B . Cest exactement la caractrisation existentielle de NP.


6-K

Remarques

La classe coRP (lensemble des langages dont le complmentaire est dans RP) autorise, quant elle, lerreur seulement si x A, et on a bien sr coRP coNP.
Puisque BPP est clos par complmentaire, on a aussi coRP BPP.
On ne sait pas si BPP NP ou si NP BPP (ou ni lun ni lautre), mme si nous
verrons au chapitre 12 quelques indices laissant penser que BPP = RP = P.

. 6-L

Exercice
Montrer que NP BPP implique NP = RP.
Indication : concevoir un algorithme RP pour SAT sous lhypothse que NP BPP.

6.2.4

Thorme de hirarchie

On ne connat pas de thorme de hirarchie trs serr pour les classes probabilistes, ce
qui vient du fait quon ne peut pas dcider si une machine a un comportement de type
BPP. On peut nanmoins montrer un rsultat non trivial en faisant appel une mthode
simple.
De la mme manire que BPP, pour une fonction t : N N on dfinit BPTIME(t (n))
comme lensemble des langages reconnus par une machine de Turing probabiliste fonctionnant en temps O(t (n)) avec probabilit derreur 1/3. De plus, t (k) dsigne la fonction t itre k fois. Le meilleur thorme de hirarchie que lon connaisse pour les classes
probabilistes est alors le rsultat suivant d Karpinski et Verbeek [KV87].
6-M

Thorme (hirarchie probabiliste en temps)

Soit k > 0 un entier fix. Si t : N N est une fonction constructible en temps vrifiant
t (k) (n) = 2(n) , alors BPTIME(n) BPTIME(t (n)).
Et plus gnralement, si f : N N est constructible en temps, alors
BPTIME( f (n)) BPTIME(t ( f (n))).

6.2. Classes probabilistes

161

Ide de la dmonstration La preuve utilise la technique de padding que lon a dj vue


( la proposition 2-AU par exemple) pour multiplier lcart k fois afin de pouvoir
utiliser le thorme de hirarchie dterministe.
Plus prcisment, si BPTIME(t (n)) = BPTIME(n) alors pour tout 1 i k 1,
BPTIME(t (i+1) (n)) = BPTIME(t (i ) (n)) et donc BPTIME(t (k) (n)) = BPTIME(n) (cf. figure 6.1). Mais cela contredit le thorme de hirarchie dterministe car t (k) (n) = 2(n)
et BPTIME(n) DTIME(2O(n) ).

t (n)

t (2) (n)

t (3) (n)

t (k1) (n)

t (k) (n) = 2(n)

Figure 6.1 Illustration de la preuve du thorme de hirachie probabiliste en temps :


effondrement sous lhypothse BPTIME(t (n)) = BPTIME(n).

Dmonstration Pour allger les notations, nous ne donnons la dmonstration que pour
BPTIME(n) mais celle pour BPTIME( f (n)) est identique (en remplaant n par f (n)).
Supposons que BPTIME(t (n)) = BPTIME(n) et montrons que
pour tout i 0, BPTIME(t (i +1) (n)) = BPTIME(t (i ) (n)).
Dmonstration Soit A BPTIME(t (i +1) (n)), on dfinit sa version padde
(i )
Ai = {(x, 1 t (|x|)|x| ) | x A} : la taille de lentre est alors Ni = t (i ) (|x|).
Puisque t est constructible en temps, il en est de mme pour t (i) et on
peut donc reconnatre Ai par lalgorithme probabiliste suivant sur lentre
(x, y) :
calculer Ni = t (i) (|x|) et rejeter si y = 1Ni ;
dcider si x A.
Le premier calcul prend un temps linaire en Ni , tandis que le second calcul
prend un temps t (i +1) (|x|) puisque A BPTIME(t (i+1) (n)). Au total, lalgorithme fonctionne en temps O(t (Ni )) sur une entre de taille Ni , donc
Ai BPTIME(t (n)). Ainsi par hypothse, Ai BPTIME(n).
On en dduit quil existe un algorithme probabiliste fonctionnant en temps
O(Ni ) pour Ai ; le mme algorithme permet donc de dcider A en temps
O(Ni ) = O(t (i ) (n)). Donc A BPTIME(t (i) (n)).

162

Chapitre 6. Algorithmes probabilistes

De toutes ces galits, on dduit donc que


BPTIME(t (k) (n)) = BPTIME(n)

(6.1)

Puisque t (k) (n) = 2(n) , il existe une fonction (n) tendant vers linfini telle que
t (k) (n) = 2(n)n (remarque : 2(n)n = t (k) (n) est constructible en temps puisque t (n)
lest). On sait que BPTIME(n) DTIME(2O(n) ) en raisonnant comme au lemme 6-I
(numrer tous les choix probabilistes pour simuler de manire dterministe un problme de BPTIME(n)), et donc BPTIME(n) DTIME(2n(n)/2 ).
Mais par le thorme de hirarchie dterministe en temps 2-J,
BPTIME(n) DTIME(2n(n)/2 ) DTIME(2n(n) ) = DTIME(t (k) (n)) BPTIME(t (k) (n)).

On obtient donc BPTIME(t (k) (n)) = BPTIME(n) ce qui contredit lgalit (6.1) ci
dessus.

6-N

Remarques

Les plus petites fonctions t satisfaisant lhypothse du thorme t (k) (n) = 2(n) ne
sexpriment pas grce aux fonctions lmentaires habituelles. Il est facile de vrifier
o(1)
O(1)
par exemple que des fonctions en 2n conviennent, mais que les fonctions 2(log n)
sont trop petites.
Par ailleurs, ce thorme est aussi valide pour RP par la mme preuve.

En ralit cette technique sapplique aussi aux classes dterministes. On obtient ainsi
un resserrement du thorme de hirarchie 2-J que lon connat, appliqu ici la classe
DTIME(n) pour plus de simplicit.
6-O

Thorme

Soit k > 0 un entier fix. Alors DTIME(n) DTIME(n(log n)1/k ).


Plus gnralement, si f : N N est constructible en temps, alors
DTIME( f (n)) DTIME( f (n)(log f (n))1/k ).

Ide de la dmonstration La fonction t : n 7 n(log n)1/k vrifie t (k+1) (n) = (n log n).
Si DTIME(t (n)) = DTIME(n) alors par padding, DTIME(t (i+1) (n)) = DTIME(t (i ) (n))
pour tout i , et donc DTIME(t (k+1) (n)) = DTIME(n). Cela contredit le thorme de

hirarchie dterministe en temps 2-J.

6.3. Un exemple important

. 6-P

163

Exercice
Faire la dmonstration complte de ce thorme.

6.2.5

Circuits et algorithmes probabilistes

Nous verrons au chapitre 12 des liens troits entre bornes infrieures non uniformes et algorithmes probabilistes. Nous nous contentons ici de montrer que les circuits de taille polynomiale peuvent simuler des algorithmes probabilistes polynomiaux, un rsultat dAdleman [Adl78].
6-Q

Thorme (Adleman, 1978)


BPP P/poly

Ide de la dmonstration En rduisant suffisamment la probabilit derreur dun algorithme probabiliste, on montre quil existe une mme suite r {0, 1} p(n) de bits alatoires donnant la bonne rponse pour toutes les entres x de taille n . Il suffit alors
de donner cette suite r en conseil et de simuler de manire dterministe lalgorithme
probabiliste le long de cette suite de bits alatoires.
Dmonstration Soit A BPP sur lalphabet , et on note une constante telle que
2 ||. En rduisant la probabilit derreur par la proposition 6-F, il existe B P et
un polynme p(n) tels que pour toute entre x de taille n :

x A = Pr r {0,1} p(n) ((x, r ) B) < 2n ||n ;


x A = Pr r {0,1} p(n) ((x, r ) B) < 2n ||n .

En dautres termes, pour tout x de taille n on a Pr r (x A (x, r ) B) < ||n .


Puisquil y a ||n mots de taille n , on en dduit par lingalit de Boole (proposition AB) que
Pr(x n (x A (x, r ) B)) < ||n ||n = 1.
r

Ainsi, Pr r (x n (x A (x, r ) B)) > 0 donc il existe r0 {0, 1} p(n) tel que
x n (x A (x, r0 ) B). Cest exactement la caractrisation dun langage

dans P/poly avec conseil r0 .

6.3

Un exemple important

Outre lexemple introductif de lalgorithme probabiliste de tri rapide, il nous faut dcrire
un autre problme important que nous retrouverons au chapitre 12.

164

Chapitre 6. Algorithmes probabilistes

6.3.1

Test de circuits arithmtiques

La question BPP = P ? , cest--dire savoir si les probabilits acclrent vraiment le


calcul, est toujours ouverte. Mais la grande majorit des problmes naturels de BPP que
lon connat sont dj dans P. titre dexemple, le problme PRIMALIT (dcider si un
entier donn en binaire est premier, cf. exemple 2-R) est longtemps rest un problme
de BPP candidat tre hors de P ; mais Agrawal, Kayal et Saxena [AKS04] ont finalement montr quil peut tre dcid en temps polynomial dterministe. Nous tudierons
cette question de trouver des algorithmes dterministes pour BPP au chapitre 12 sur la
drandomisation .
Lun des rares candidats naturels restant pour tre dans BPP \ P concerne les circuits arithmtiques introduits au chapitre prcdent (section 5.6).
Soit TIP (Test dIdentit de Polynmes, en anglais Poynomial Identity Testing ou PIT) le
problme suivant :
entre : un circuit arithmtique sans constante donn par son code binaire (cf. remarque 5-AP), calculant un polynme p Z[x1 , . . . , xn ] ;
question : le polynme p est-il identiquement nul ( p 0) ?
Ce problme portant sur les polynmes admet une variante plus simple, appele TIE (Test
dIdentit dEntiers), restreinte aux circuits calculant des entiers :
entre : un circuit arithmtique sans variable et avec pour seule constante 1, calculant un entier N Z ;
question : N = 0 ?

6.3.2

quivalence des deux problmes

En ralit, ces deux problmes sont quivalents ; pour le montrer, nous avons besoin du
lemme suivant.
6-R

Lemme

Si p Z[x1 , . . . , xn ] est un polynme de degr d dont les coefficients sont majors en


valeur absolue par M , alors pour tout 1 , . . . , n N vrifiant 1 M + 1 et, pour
i [1, n 1], i+1 1 + M (d + 1)i id , on a : p 0 ssi p(1 , . . . , n ) = 0.
Dmonstration Par rcurrence sur le nombre de variables n .

Pour n = 1 : si p = 0 alors p scrit p(x) = di=0 ai x i avec ad = 0. Alors


| p(1 )| 1d |

i<d

ai 1i | ;

6.3. Un exemple important


or
|

165

ai 1i | M

d 1

1i = M (1d 1)/(1 1) < 1d

i=0

i<d

car 1 M + 1 : donc p(1 ) = 0.


Pour n > 1 : soit p0 , . . . , pd Z[x1 , . . . , xn1 ] les polynmes tels que
p(x1 , . . . , xn ) =

pi (x1 , . . . , xn1 )xni ;

i=0

si p = 0 alors il existe i0 tel que pi0 est non nul. Puisque pi0 est de degr d et
a ses coefficients majors en valeur absolue par M , lhypothse de rcurrence donne
pi0 (1 , . . . , n1 ) = 0. Ainsi, q(xn ) = p(1 , . . . , n1 , xn ) est un polynme non nul une
variable et ses coefficients sont les pi (1 , . . . , n1 ) : ils sont donc majors en valeur
d
absolue par M (d +1)n1 n1
puisque pi a au plus (d +1)n1 monmes et ses coefficients
sont majors par M . Par le cas n = 1,
d
si n 1 + M (d + 1)n1 n1
, alors q(n ) = 0.

Ainsi, p(1 , . . . , n ) = 0.

Nous pouvons maintenant montrer que TIP et TIE sont quivalents. Puisque TIE est
une restriction de TIP, il est clair que TIE se rduit TIP ; le lemme suivant montre la
rciproque.
6-S

Lemme

Le problme TIP se rduit au problme TIE pour les rductions many-one polynomiales :
TIP pm TIE.

Ide de la dmonstration On remplace les variables x1 , . . . , xn dune instance de TIP


par des entiers croissant suffisamment vite : cela permet de sparer le rle de chaque
variable (tout se passe comme si les entiers taient indpendants ).
Dmonstration Soit C une instance de TIP de taille t et p Z[x1 , . . . , xn ] le polynme
2t
calcul par C . Les coefficients de p sont strictement majors en valeur absolue par 22
t
(lemme 5-AT) et son degr par 2 (lemme 5-AS).
Par le lemme 6-R, p = 0 ssi p(1 , . . . , n ) = 0 ds que
2t

2t

1 22 et i +1 > 22 (1 + 2 t )i 2i .
2i t

On peut prendre i = 22 , qui est calculable par 2i t lvations au carr successives. Ainsi, notre instance de TIE est le circuit arithmtique D calculant lentier
C (1 , . . . , n ) en appliquant C aux nombres i calculs par lvations au carr successives : on a alors C TIP ssi D TIE et le code de D est calculable en temps

polynomial partir de celui de C .

166

Chapitre 6. Algorithmes probabilistes

6.3.3

Algorithme probabiliste

Nous donnons maintenant un algorithme probabiliste polynomial pour TIE (et donc
pour TIP par la rduction que lon vient de voir).
6-T Remarque Malgr la simplicit du problme TIE, on ne sait pas le rsoudre par
un algorithme dterministe polynomial. Une tentative naturelle est dvaluer simplement
chaque porte du circuit : cette approche choue car les entiers calculs peuvent avoir
n
une valeur doublement exponentielle (22 ), cest--dire quils scrivent avec un nombre
exponentiel de bits (2n ). On ne peut donc pas les manipuler en temps polynomial.
Cest une question ouverte de savoir si TIE P (et donc, bien sr, de mme pour TIP).

6-U

Lemme

TIE coRP, cest--dire quil existe un algorithme probabiliste polynomial tel que si un
circuit arithmtique C calcule un entier nul, alors C est accept avec probabilit 1, et
sinon C est rejet avec probabilit 2/3.

Ide de la dmonstration Pour viter lexplosion de la taille des valeurs calcules, on


value le circuit modulo un entier alatoire m .
Dmonstration Soit N lentier calcul par une instance C de TIE de taille n . On ne
peut pas calculer N en temps polynomial car il est potentiellement trop grand mais
on peut lvaluer modulo des entiers alatoires : il suffit de lvaluer porte par porte
modulo lentier choisi. Voici lalgorithme probabiliste :
rpter O(n 2 ) fois :
2

choisir m {2, . . . , 2n } au hasard,

valuer N mod m ;

rejeter ssi au moins lune des valuations est non nulle.


Si N = 0 alors lalgorithme accepte C puisque N mod m est toujours nul.
n
Si N = 0 : puisque N 22 (lemme 5-AT), il a au plus 2n diviseurs premiers. Or, par
le thorme des nombres premiers (thorme A-O), il existe une constante c > 0 telle
2
2
que le nombre de nombres premiers dans lintervalle [2, 2n ] est c2n /n 2 . Ainsi, si
2
m est choisi au hasard dans {2, . . . , 2n },
Pr(m ne divise pas N ) Pr(m est premier et ne divise pas N )
= Pr(m ne divise pas N |m premier) Pr(m premier)
2

(1 2n /(c2n /n 2 ))c/n 2 c/(2n 2 ).

6.4. Questions ouvertes

167

Par le lemme A-C, en choisissant 4n 2 /c modulos m (cest--dire en rptant 4n 2 /c


fois la boucle), on a donc une probabilit 2/3 que lun des m ne divise pas N :
lalgorithme rejette donc C avec probabilit 2/3.

Ainsi, TIE coRP.

6.4

Questions ouvertes

Nous terminons ce chapitre par quelques questions ouvertes concernant les classes probabilistes.

6.4.1

Problmes naturels de BPP

On la vu, TIE (ou TIP) est lun des rares problmes naturels de BPP pour lesquels on ne
connat pas dalgorithme dterministe polynomial. Ce problme est mme dans coRP. Il
est assez surprenant de constater quon ne dispose pas de rel problme naturel de BPP
quon ne sache pas mettre dans RP coRP. On peut bien sr concevoir des variantes de
TIE, comme dcider, parmi trois circuits arithmtiques, si deux calculent le mme entier.
Mais ce genre de problme nest gnralement pas considr naturel . Il y a aussi un
problme issu de la thorie des groupes, propos par Babai, Beals et Seress [BBS09], pour
lequel on dispose dun algorithme BPP mais ni RP ni coRP, mais le peu dattention quil
a reu en fait pour linstant un candidat de faible valeur.
Comme on le verra au chapitre 12 sur la drandomisation , certains indices laissent
penser que BPP = P. Si cest le cas, alors bien sr tous les problmes de BPP sont aussi
dans RP coRP et la question prcdente est dnue dintrt. Il nen reste pas moins
que le fait quune erreur dun seul ct suffise pour tous les problmes naturels est
intriguant.
Un dernier point important est le fait quon ne connat pas de problme complet pour
BPP (ni pour RP). En effet, comme on la vu, ces classes sont smantiques (dfinies par
une condition que toutes les machines probabilistes ne vrifient pas) ce qui empche de
dfinir le problme complet usuel de simulation de machines : par exemple, le langage
{(M , x, 1 t ) |

Pr (M (x, r ) = 1) 2/3, o M (x, r ) fonctionne en temps t }

r {0,1} t

est certes BPP-difficile mais na aucune raison dtre dans BPP.

6.4.2

Hirarchie

Le thorme de hirarchie 6-M prsent ce chapitre est le meilleur que lon connaisse.
Savoir si BPTIME(n log n ) = BPP par exemple est donc encore ouvert. Cela vient encore du
fait que BPP est une classe smantique et quon ne peut pas numrer les machines qui
ont un comportement BPP . Des thormes de hirarchie meilleurs ont cependant t
obtenus en ajoutant une dose de non-uniformit (voir par exemple [FS04] avec un bit de
conseil).

168

Chapitre 6. Algorithmes probabilistes

6.4.3

Temps exponentiel

Bien quon souponne que P = BPP (ou du moins que BPP DTIME(2O(n) )), ce qui
impliquerait bien sr que EXP = BPP par le thorme de hirarchie dterministe en
temps, en ralit on ne sait mme pas montrer ce jour (en 2013) que NEXP = BPP
La classe NEXP tant considre comme trs grande (on combine la puissance du nondterminisme avec celle dun temps de calcul exponentiel !) et BPP petite (classe des problmes quon peut rsoudre efficacement), ce manque de rsultats incite une certaine
humilit. noter toutefois que NEXP = RP puisque NEXP = NP par le thorme de hirarchie non-dterministe en temps, et que NP RP. Cependant, la question EXP = RP ?
reste ouverte elle aussi.
Pour sexercer sur les classes probabilistes, on trouvera en annexe les exercices B-B, B-D
et B-E sur des sujets abords dans ce chapitre.

Oracles et limites de la
diagonalisation
La seule technique vue jusqu prsent pour sparer des classes de complexit (thormes
de hirarchie, par exemple) est la diagonalisation. En deux mots, pour montrer quune
machine M ne peut pas reconnatre le langage L que lon souhaite dfinir, il sagit de
simuler M sur une entre x et de choisir si x L de faon ce que M commette une erreur
( x L ssi M (x) = 0). Si lon fait cela sur toutes les machines M fonctionnant en temps
O(t (n)) par exemple, on aura alors montr que L DTIME(t (n)). Dans un premier temps,
nous revisiterons les preuves des thormes de hirarchie pour montrer quelles entrent
bien dans ce cadre. Cette nouvelle prsentation des preuves permet de mieux comprendre
lessence de la diagonalisation et de montrer plus facilement des variantes de ces rsultats.
En ralit on dispose de peu dautres techniques de preuve de bornes infrieures. Cependant dans ce chapitre nous verrons une limitation ce que lon peut montrer par
diagonalisation, grce au concept doracle. En particulier, nous verrons que les principales
questions ouvertes (comme P = NP ? ) ne peuvent tre rsolues au seul moyen dune
diagonalisation simple qui simulerait les machines comme des botes noires , cest-dire sans prendre en compte leur fonctionnement intrieur.
Il nest toutefois pas vident de caractriser ce quon entend par diagonalisation et ce
sera lobjet dun rsultat assez surprenant : pour une certaine dfinition de cette mthode,
toute sparation peut tre dmontre par diagonalisation
Les oracles nous serviront galement au chapitre suivant pour dfinir de nouvelles classes
de complexit, savoir les diffrents niveaux de la hirarchie polynomiale.

7.1

Thormes de hirarchie

Avant de pouvoir revisiter les thormes des hirarchie que nous avons vus, il nous faut
revenir sur le concept dnumration de machines de Turing.

170

Chapitre 7. Oracles et limites de la diagonalisation

7.1.1

numration des machines

La preuve des thormes de hirarchie que nous avons vus ne fait pas apparatre clairement
le processus de diagonalisation. Pour cela, il est utile de travailler avec des numrations
de machines de Turing comme celle de la remarque 3-AL.
7-A

Dfinition

Une numration de machines pour une classe de complexit C est une suite (M i )i N de
codes de machines de Turing telle que :
pour tout i N, le langage reconnu par M i appartient C ;
pour tout A C , il existe i tel que M i reconnat A.
De la mme faon qu la remarque 3-AL, il existe des numrations de machines pour
DTIME(t (n)), NTIME(t (n)) et DSPACE(s (n)) si t (n) et s (n) sont constructibles respectivement en temps et en espace. Pour cela, il suffit de prendre une numration (M i ) des
machines de Turing et dy adjoindre un nouveau ruban comptant le nombre doprations
ou lespace utilis : on arrte alors le calcul de la machine M i ds que i t (n) tapes ont t
ralises, ou i s (n) cases visites (on pourrait aussi prendre (log i)t (n) tapes ou f (i)t (n)
pour toute fonction f tendant vers linfini). On obtient ainsi une nouvelle numration
(M i ) pour la classe concerne.

. 7-B

Exercice
En supposant que le code de M i est simplement i crit en binaire (un code incorrect
tant considr comme la machine rejetant toujours), montrer que calculer le code
de M i partir de i donn en unaire se fait en temps O(i) et en espace O(log i ).
Indication : il sagit de calculer i en binaire et dajouter au code ainsi obtenu le code du
ruban comptant les tapes.

7-C Remarque Nous nous intressons aux numrations efficaces o le code de M i


est calculable facilement partir de i comme lexercice prcdent.
Nanmoins, toutes les classes ne possdent pas dnumration efficace : par exemple, il
ny a aucune numration calculable de la classe probabiliste BPP que nous verrons au
chapitre suivant, car dcider si une machine a un comportement de type BPP est
indcidable.

7.1.2

Hirarchie dterministe

Contrairement aux preuves des thormes de hirarchie donnes prcdemment, la diagonalisation peut tre compltement explicite comme nous allons le voir. Nous allons

7.1. Thormes de hirarchie

171

prouver deux variantes du thorme de hirarchie en temps dterministe : une version


infiniment souvent et une autre presque partout . La premire nest autre quune
version plus faible du thorme 2-J puisque la diffrence entre f et g doit tre plus grande
((log f (n))(log n) au lieu de log f (n)) .
7-D

Thorme (hirarchie en temps dterministe infiniment souvent)

Soit f : N N et g : N N des fonctions constructibles en temps telles que f (n) = 0


(pour tout n ) et
f (n)(log f (n))(log n) = O(g (n)).

Alors DTIME( f (n)) DTIME( g (n)).


Cette version est appele infiniment souvent car le langage A DTIME( g (n)) construit
vrifie : pour tout B DTIME( f (n)), pour une infinit de n N, B =n = A=n (linfinit
de n venant de ce que chaque machine M i a une infinit de machines quivalentes dans
lnumration).
Ide de la dmonstration On construit le langage A mot par mot, spcifiquement pour
que chaque machine M i dune numration des machines fonctionnant en temps
O( f (n)) se trompe au moins sur le mot 0i (cf. figure 7.1).
01 02 03 04 . . .
M1
M2
M3
M4
..
.

01
10
10
01

Figure 7.1 Diagonalisation sur le rsultat des calculs M i (0i ).

Dmonstration On peut supposer sans perte de gnralit que f (n) = (n) : sinon
f pour une constante et g (n) = (n) car elles sont constructibles en temps
(cf. exercice 2-I). Alors le langage A = 0 (contenant exactement les mots 0i pour
i N) est dans DTIME(g (n)) mais pas dans DTIME( f (n)).
Soit (M i ) une numration des machines fonctionnant en temps (log i) f (n). Nous
allons dfinir un langage A DTIME(g (n)) sur lalphabet {0, 1} qui ne soit reconnu
par aucune des machines M i . Contrairement dhabitude, nous nallons pas dfinir A
par une simple expression ensembliste, mais nous allons plutt indiquer pour chaque
mot sil appartient A ou non.
1. Une autre diffrence est quici les deux fonctions f et g sont constructibles en temps, et pas seulement
la fonction g .

172

Chapitre 7. Oracles et limites de la diagonalisation


Aucun mot x contenant le symbole 1 nappartient A (cest--dire que A 0 ).
Le mot 0i appartient A ssi M i (0i ) = 0.

Le langage A ainsi dfini ne contient que des mots de la forme 0n .


Supposons que A DTIME( f (n)) : il est donc reconnu par une machine M i de lnumration. Mais alors 0i A ssi M i (0i ) = 0, une contradiction. Donc A DTIME( f (n)).
Il reste montrer que A DTIME( g (n)). Voici un algorithme pour A sur une entre x
de taille n :
si x = 0n , rejeter ;
accepter ssi M n (0n ) = 0.
Il sagit donc de construire le code de M n puis de simuler cette machine sur 0n . Or
construire le code de M n prend un temps O(n) comme on la vu lexercice 7-B
(donc un temps O(g (n)) puisque g (n) = (n)) ; la machine M n fonctionne en temps
(log n) f (n) donc la simulation par la machine universelle du thorme 1-S prend un
temps major par
(log n) f (n)(log log n + log f (n)) 2 f (n)(log f (n))(log n) = O(g (n)).

Au total, A DTIME( g (n)).

La version presque partout vrifie quant elle que A et B diffrent pour presque tout
n comme on le voit dans lnonc suivant.
7-E

Thorme (hirarchie en temps dterministe presque partout)

Soit f : N N et g : N N des fonctions constructibles en temps telles que f (n) = 0


(pour tout n ) et
f (n)(log f (n))(log n) = O(g (n)).

Alors il existe A DTIME(g (n)) tel que pour tout B DTIME( f (n)), il existe m N tel
que n m , B =n = A=n .
Ide de la dmonstration La dmonstration ressemble celle du thorme prcdent
mais on utilise davantage de mots (et non seulement 0i ) pour diagonaliser sur plus
dune machine par taille.
Dmonstration De mme qu la proposition prcdente, on peut supposer que
f (n) = (n) (sinon le langage A = 0 convient).
Soit (M i ) une numration des machines fonctionnant en temps (log i ) f (n). Nous allons dfinir un langage A DTIME(g (n)) sur lalphabet {0, 1} telle que chaque machine
M i se trompe pour presque toute longueur de mot.
Pour une taille dentre n fixe, on note x0 < x1 < < x2n 1 les mots de {0, 1}n
ordonns par ordre lexicographique. On dfinit alors A comme suit sur une entre x
de taille n :

7.2. Machines de Turing oracle

173

si x = xi pour i n alors x A ;
si x = xi pour 0 i < n alors [ x A ssi M i (xi ) = 0].
Le langage A ainsi dfini contient au plus n mots de taille n .
Soit B DTIME( f (n)), reconnu par une machine M i de lnumration. Alors pour
toute taille dentre n > i , xi A ssi M i (xi ) = 0 ssi xi B . Ainsi, pour tout n > i ,
B =n = A=n .
Il reste montrer que A DTIME(g (n)). Voici un algorithme pour A sur une entre x
de taille n :
calculer i tel que x = xi ;
si i n , rejeter ;
accepter ssi M i (xi ) = 0.
La premire tape revient simplement supprimer les ventuels zros de tte de lentre
x (puisque i est simplement le rang en binaire de x ). Le test i n est simple. Il reste
donc construire le code de M i puis simuler cette machine sur x . Construire le code
de M i prend un temps O(i) = O(n) comme on la vu lexercice 7-B (donc un temps
O(g (n)) puisque g (n) = (n)) ; la machine M i fonctionne en temps (log i) f (n) donc
la simulation par la machine universelle du thorme 1-S prend un temps major par
(log i ) f (n)(log log i + log f (n)) 2 f (n)(log f (n))(log n) = O( g (n)).

Au total, A DTIME(g (n)).

7.2

Machines de Turing oracle

Une notion qui nous vient de la calculabilit est celle doracle, qui est entre autre utile
pour dpasser la limite de ce qui est calculable. Il sagit dun langage L que la machine de
Turing peut interroger tout moment sur un mot u : elle obtient ainsi en une tape la
rponse la question u L ? , quelle que soit la complexit de L (do le nom oracle).
Plus prcisment, on obtient la dfinition suivante.
7-F

Dfinition (machine de Turing oracle)

Une machine de Turing oracle est une machine de Turing M quipe dun ruban
supplmentaire spcial appel ruban doracle et de trois tats spciaux q? , qoui et qnon .
Lorsquon adjoint M (qui travaille sur lalphabet ) un langage L appel oracle,
ce que lon note M L , le fonctionnement de M L sur une entre x (not M L (x)) est le
suivant :

174

Chapitre 7. Oracles et limites de la diagonalisation

tant que M L nentre pas dans ltat q? , son fonctionnement est celui dune
machine standard (en particulier, elle utilise le ruban doracle comme un ruban
normal, de mme les tats qoui et qnon sont utiliss normalement) ;
lorsque M L entre dans ltat q? , le mot u inscrit ce moment sur le ruban
doracle est considr :
si u L alors M L passe dans ltat qoui ,
si u L alors M L passe dans ltat qnon ,

et les ttes de lecture ne bougent pas ni ne changent le contenu des rubans.


De manire standard, le mot x est accept si M L (x) arrive un tat acceptant. Le
temps dexcution est compt usuellement, le passage de q? qoui ou qnon prenant
une seule tape.

u
u L?
q?

Figure 7.2 Ruban doracle dune machine de Turing avec oracle L.

7-G Exemple Voici une machine de Turing dterministe avec oracle SAT, fonctionnant en temps polynomial, qui calcule par recherche prfixe la plus petite affectation
(si elle existe) satisfaisant une formule (x1 , . . . , xn ) :
a ;
tant que |a| < n faire

demander loracle SAT si (a, 0, x|a|+2 , . . . , xn ) est satisfaisable :


si oui, a a0
sinon, a a1 ;

renvoyer a .
Le temps mis par cette machine dterministe est linaire en n . Si nest pas satisfaisable, alors elle renvoie a = 1 . . . 1.
On peut de mme concevoir des machines non dterministes avec oracle comme dans
lexemple ci-dessous.

7.2. Machines de Turing oracle

175

7-H Exemple Si L est un langage quelconque sur lalphabet , le code ci-dessous est
une machine non dterministe avec oracle L, fonctionnant en temps polynomial, qui
reconnat le langage AL = {1n | L=n = ;}. Sur lentre x :
si x = 1|x| , rejeter ;
deviner y |x| ;
demander loracle si y L :

si oui, accepter,

sinon, rejeter.

Grce la dfinition de machine oracle, on dfinit aussi des classes de complexit avec
oracle.
7-I

Dfinition (relativisation)

Si A est un langage, la classe DTIME(t (n))A (respectivement NTIME(t (n))A) est lensemble des langages reconnus en temps O(t (n)) par une machine de Turing dterministe (resp. non dterministe) avec oracle A.
Si C est une classe de complexit,
DTIME(t (n))C = AC DTIME(t (n))A

et

NTIME(t (n))C = AC NTIME(t (n))A.

On dfinit comme dhabitude


PA = k DTIME(n k )A,
PC = AC PA,

NPA = k NTIME(n k )A

et

NPC = AC NPA ;

de mme pour EXP et NEXP.


Le fait dadjoindre des oracles des classes de complexit sappelle relativisation.

7-J

Remarques

On trouve aussi parfois les notations P(A), P(C ), etc.


Nous nous contentons ici de dfinir la relativisation des classes en temps dterministe et non dterministe car il ny a pas de dfinition standard pour une classe de
complexit quelconque : en effet, la notion de relativisation dpend des machines

176

Chapitre 7. Oracles et limites de la diagonalisation


dfinissant la classe.
Par exemple, pour lespace, le concept varie selon que lon compte les cases du ruban
doracle dans lespace ou non. On dfinira des relativisations spcifiques dautres
classes lorsquon en aura besoin.

. 7-K

Exercice
Soit A un langage. Montrer que NPA admet la caractrisation existentielle habituelle
(proposition 2-AO) mais partir dun langage de PA plutt que de P.

7-L Remarque Nous prendrons comme convention que les classes dfinies partir
de P, comme BPP par exemple (cf. dfinition 6-B), se relativisent avec un oracle A en
changeant P par PA dans leur dfinition.
Dans le cas de BPP, cela requiert en particulier que la machine probabiliste ait un comportement de type BPP seulement avec loracle A, mais pas forcment sans oracle.

7.3

Quelques rsultats pour se faire la main

Pour shabituer la notion doracle, nous allons voir dans cette section quelques rsultats simples qui nous resserviront par la suite. Le premier lemme montre quun oracle
calculable en temps polynomial ne sert rien pour les classes usuelles.
7-M

Lemme

Soit C lune des classes P, NP, EXP ou NEXP. Alors C P = C .


Dmonstration Si loracle est A P, on peut simuler le calcul de C A sans oracle,
puisque sur une question de la forme a A ? il suffit de dcider la rponse sans
oracle, en temps polynomial en |a|.
Si C = P ou NP, |a| est polynomiale donc le temps de calcul de la rponse est polynomial et on reste dans la classe C .
O(1)
O(1)
Si C = EXP ou NEXP, |a| est 2n donc le temps de calcul de la rponse est 2n et

on reste dans la classe C .

Le rsultat suivant illustre le fait quune machine EXP peut demander son oracle une
question de taille exponentielle, ce qui lui confre beaucoup de puissance. La preuve
utilise un argument de padding comme on en a dj vu la proposition 2-AU par exemple.

7.3. Quelques rsultats pour se faire la main


7-N

177

Lemme

NEXP EXPNP .

Dmonstration Soit A NEXP reconnu par une machine non dterministe en temps
k
|x|k
2n . Alors la version dlaye A = {(x, 12 ) | x A} est dans NP (padding). Voici
une machine EXP avec oracle A pour reconnatre le langage A sur lentre x :
|x|k

calculer u = (x, 12 ) ;
accepter ssi u A.
k

Cette machine fonctionne en temps 2n (le temps de calculer u ) avec oracle NP, donc

A EXPNP .

Lorsquune classe admet un langage complet, donner ce langage en oracle suffit pour avoir
toute la puissance de la classe, comme on le voit grce au lemme suivant.
7-O

Lemme

Si A est un problme C -complet pour les rductions many-one en temps polynomial,


alors PC = PA, NPC = NPA, EXPC = EXPA et NEXPC = NEXPA.
Dmonstration Nous montrons le rsultat seulement pour NP, les autres cas tant similaires. Soit B NPC : par dfinition, B NPC pour un langage C C . On appelle
N la machine non dterministe polynomiale avec oracle C pour B .
Par C -compltude de A, il existe une rduction polynomiale f telle que
x C f (x) A.

Voici donc le fonctionnement dune machine NP avec oracle A pour B sur lentre
x : simuler le fonctionnement de N C (x), en remplaant les questions loracle de la
forme u C ? par le calcul de f (u) suivi de la question f (u) A ? . Puisque f
est calculable en temps polynomial, on reste dans NP ; et la machine accepte bien B

par dfinition de la rduction f .

Le rsultat suivant montre quun oracle PSPACE donne la mme puissance P et NP.
7-P

Lemme
PPSPACE = NPPSPACE = PSPACE

178

Chapitre 7. Oracles et limites de la diagonalisation

Dmonstration Il est clair que PSPACE PPSPACE NPPSPACE , donc il suffit de montrer
que NPPSPACE PSPACE.
Soit N une machine NP avec oracle A PSPACE. Son fonctionnement peut tre simul
dans PSPACE ainsi sur lentre x :
numrer tous les chemins de N A(x) et pour chacun deux :

ds que N demande son oracle une question u A ? ,


dcider si u A et continuer le calcul en consquence ;

accepter ssi lun des chemins a accept.


Puisque N pose son oracle A seulement des questions de taille polynomiale, dcider
si u A se fait en espace polynomial. Chaque chemin est de taille polynomiale donc
lnumration se fait aussi en espace polynomial. Au total, la machine N A est simule

en espace polynomial.

Le dernier rsultat est un peu plus subtil. Avant de laborder, il convient de comprendre
pourquoi il nest pas vident (et probablement faux) que NPNP = NP. Le point crucial est
que loracle peut tre utilis la fois positivement et ngativement : cest--dire que
ses rponses peuvent (bien sr) tre positives ou ngatives. En termes de certificats, une
rponse positive ne pose pas de problme puisquil existe un certificat, mais une rponse
ngative na pas de certificat et on ne peut donc vrifier quil sagit de la bonne rponse,
ce qui pose problme pour mettre le langage dans NP (cf. figure 7.3). Cest la mme
diffrence quentre NP et coNP (dailleurs, on a bien sr coNP NPNP ). Cette remarque
sera la base du prochain chapitre sur la hirarchie polynomiale.

calcul NP

oracle

aucun chemin acceptant :


quel certificat ?

u SAT ?
000

...

u SAT

Figure 7.3 Tentative de simulation dune machine NP avec oracle NP.

Le lemme suivant montre que si NP est clos par complment, alors en effet NPNP = NP.

7.3. Quelques rsultats pour se faire la main


7-Q

179

Lemme

Si NP = coNP alors NPNP = NP.


Ide de la dmonstration Afin de simuler dans NP le calcul de loracle, on utilisera le
certificat issu de NP lorsque la rponse de loracle est positive, et celui issu de coNP
lorsquelle est ngative.
Dmonstration Soit L NPNP dcid par une machine non dterministe polynomiale
N avec oracle A NP. Puisque NP = coNP, A possde les deux caractrisations suivantes, o p(n) est un polynme et B, B deux langages de P :
x A ssi y {0, 1} p(|x|) (x, y) B ;
x A ssi y {0, 1} p(|x|) (x, y ) B .
Lors du calcul N A(x), sur chaque chemin de calcul u un certain nombre de questions
a1 , . . . , ak sont poses loracle A. Pour dcider dans NP si x B , il sagit de deviner
un chemin acceptant de la machine N , de deviner les rponses de loracle le long de
ce chemin, et pour chaque question ai de deviner le certificat y ou y selon si ai A
ou ai A.
Le calcul N A(x) prend un temps q(|x|) pour un certain polynme q(n), et il fait donc
au plus q(|x|) appels son oracle. Les certificats pour B auront alors la forme

(u, b1 , y1 , y1 , . . . , bq(n) , yq(n) , yq(n)


),

o u est un mot de taille q(n) (un chemin de N ), yi et yi sont des mots de taille p(q(n))
(un certificat pour A ou c A pour un mot de taille q(n)), et bi sont des bits.
Voici la machine NP pour L sur lentre x :

deviner (u, b1 , y1 , y1 , . . . , bq(n) , yq(n) , yq(n)


);

simuler N A(x) le long du chemin u en rpondant aux questions


a1 , . . . , aq(n) poses loracle par b1 , . . . , bq(n) ;
pour tout 1 i q(n), vrifier que :

si bi = 1 alors (ai , yi ) B ,

si bi = 0 alors (ai , yi ) B ;

accepter ssi toutes ces vrifications sont positives et le chemin


simul accepte.
Cette machine non dterministe fonctionne bien en temps polynomial.
Si x L alors il existe un chemin u de N A(x) acceptant ; le long de ce chemin, des
questions a1 , . . . , aq(n) sont poses A, donnant des rponses b1 , . . . , bq(n) ; si bi = 1 alors
ai A donc il existe un certificat yi tel que (ai , yi ) B , et si bi = 0 alors ai A donc il
existe un certificat yi tel que (ai , yi ) B . Ainsi, la machine NP dcrite ci-dessus a un
chemin acceptant.

180

Chapitre 7. Oracles et limites de la diagonalisation

Rciproquement, sil existe un chemin acceptant (u, b1 , y1 , y1 , . . . , bq(n) , yq(n) , yq(n)


), cela
signifie que toutes les rponses bi devines sont correctes car elles sont certifies par les
certificats yi ou yi , et donc le chemin u simul correspond un vrai chemin acceptant

de N A(x). Donc x L.

. 7-R

Exercice
Montrer que BPPBPP = BPP (cf. remarque 7-L pour la dfinition de BPPBPP ).
Indication : penser la rduction derreur.

7.4

Langages creux et rduction Turing


7.4.1

Langages creux

Voici un exemple intressant de relativisation de la classe P d Berman et Hartmanis [BH77]. Nous rappelons la dfinition 3-AP dun langage creux.
7-S

Dfinition

Un langage A est dit creux sil existe un polynme p(n) tel que |A=n | p(n) pour tout
n 0. En dautres termes, le nombre de mots de A de mme taille est polynomialement
born.

7-T

Proposition

Si Creux dsigne lensemble des langages creux, alors


P/poly = PCreux .

Ide de la dmonstration Si L PS o S est creux, la machine avec oracle S demande


des mots de S de taille majore par un polynme p(n) car elle fonctionne en temps
polynomial. Il suffit alors de donner comme conseil la liste des mots de S de taille
p(n) pour connatre les rponses de loracle.
Si L P/poly est reconnu grce une famille de conseils (an ) de taille polynomiale
p(n), il suffit dencoder an dans les p(n) premiers mots de taille n dun langage creux.
Dmonstration Soit L PS o S est un langage creux : il est reconnu par une machine
dterministe M avec oracle S fonctionnant en temps polynomial p(n). Cette machine
ne peut demander son oracle que des mots de taille p(n). Puisque S est creux,

7.4. Langages creux et rduction Turing

181

le nombre de mots de S de taille p(n) est polynomial : on peut en donner la liste


dans un conseil a de taille polynomiale. On obtient alors la machine dterministe
polynomiale suivante pour dcider L avec conseil a sur lentre x :
simuler M S (x) ;
lorsque M fait appel son oracle sur un mot u , parcourir la liste
du conseil a et rpondre 1 si u est dans la liste et 0 sinon ;
accepter ssi la simulation accepte.
Cette machine fonctionne en temps polynomial et simule exactement M S (x) si le
conseil contient la liste des mots de S de taille p(n). Ainsi, L P/poly.
Rciproquement, si L P/poly, il est reconnu par une machine M avec conseils (a (n) )
de taille polynomiale. Soit n fix suffisamment grand pour que |a (n) | 2n . Pour allger
les notations, on note a = a1 a2 . . . a p(n) le conseil a (n) . Les mots de taille n sont ordonns
x1 < x2 < < x2n . On dfinit alors le langage S suivant pour les mots de taille n :
pour i |a|, xi S ssi ai = 1 (le i -me bit du conseil a ) ;
pour i > |a|, xi S .
On remarquera que |a| 2n donc il y a assez de mots de taille n pour satisfaire cette
dfinition. On notera n0 un entier partir duquel |a (n) | 2n . Pour toutes les entres
de taille < n0 , leur appartenance au langage sera code en dur dans la machine.
Puisque (a (n) ) est de taille polynomiale, le langage S ainsi dfini est creux car le nombre
de mots de taille n de S est au plus |a (n) |. Grce S en oracle, on peut maintenant
dcider L sur lentre x de taille n avec une machine oracle M S :
si n < n0 , rpondre directement grce au code de la machine M
dans lequel est cod en dur la rponse pour tous les x de taille
< n0 ;
sinon, demander loracle S ses rponses sur les p(n) premiers
mots de taille n : on note a1 , . . . , a p(n) ces rponses ;
simuler M (x) avec conseil a = a1 , . . . , a p(n) .
Le langage S nous a permis de retrouver le conseil a pour les mots de taille n et simuler
la machine M avec le bon conseil. Cette machine dterministe avec loracle S reconnat

L en temps polynomial, donc L PS .

. 7-U

Exercice
Un langage L est dit unaire si L 1 (les mots de L ne sont composs que de
symboles 1). On note Unaires lensemble des langages unaires.
Montrer que PUnaires = PCreux = P/poly.

182

Chapitre 7. Oracles et limites de la diagonalisation

. 7-V

Exercice
Soit A un langage unaire. Montrer que EA = E ssi A P.

7.4.2

Rduction Turing polynomiale

Le rsultat prcdent peut tre reformul grce un nouveau type de rductions.


7-W

Dfinition (rduction Turing polynomiale)

Si A et B sont deux langages, on dit que A se rduit B par une rduction Turing polynomiale, et on note A Tp B , si A PB . En dautres termes, il existe un algorithme polynomial
qui permet de rsoudre A sil a accs B comme oracle.

7-X

Proposition

La rduction Turing est plus puissante que la rduction many-one, cest--dire


p

A pm B = A T B.

Dmonstration Si A pm B alors il existe une fonction f calculable en temps polynomial


telle que x A f (x) B . On a alors A PB via la machine dterministe
polynomiale suivante avec oracle B , sur lentre x :
calculer f (x) ;
demander loracle si f (x) B ;
accepter ssi f (x) B .

On dduit de cette dfinition une reformulation de la proposition 7-T.


7-Y

Corollaire

Un langage A est dans P/poly si et seulement sil se rduit un langage creux par une
rduction Turing polynomiale.

7.5. Relativisation

7.5

183

Relativisation
7.5.1

Diagonalisation, oracles et la question P = NP ?

Certains rsultats ou certaines preuves sont toujours valides si lon adjoint toutes les machines un mme oracle A. On dit alors que la preuve ou le rsultat est relativisable (ou
encore quil se relativise, ou quil passe loracle). Cest le cas lorsque la preuve considre
les machines comme des botes noires , cest--dire quelle ne se proccupe pas du fonctionnement interne de la machine car une simple simulation pas pas est effectue sans
chercher comprendre son comportement : cette simulation reste valide si on adjoint aux
machines un oracle A.

. 7-Z

Exercice
En remplaant dans les preuves chaque machine M par une machine avec oracle
M A, vrifier que les thormes de hirarchie se relativisent : par exemple, pour tout
oracle A, EXPA = PA.

Un peu de recul
Il est gnralement considr quune preuve par diagonalisation se relativise toujours
car le comportement interne de la machine nest pas pris en compte : celle-ci est simplement simule sans plus de subtilits. Cela implique quune question qui ne se relativise
pas comme P = NP ? (cf. ci-dessous) ne pourrait pas tre rsolue par une simple diagonalisation. Nanmoins, dfinir formellement la notion de preuve par diagonalisation
nest pas chose aise comme nous le verrons la fin du chapitre.
Lintrt des circuits tait justement de faciliter ltude du comportement interne des
machines car ce comportement se voit dans la structure du circuit. Lespoir tait ainsi
de pouvoir dpasser la barrire de la relativisation, mais pour linstant celui-ci sest rvl
vain.
Le thorme suivant montrant que la question P = NP ? ne se relativise pas est de
Baker, Gill et Solovay [BGS75].
7-AA

Thorme (Baker, Gill et Solovay, 1975)

Il existe deux oracles A et B tels que


PA = NPA

et

PB = NPB .

184
7-AB

Chapitre 7. Oracles et limites de la diagonalisation


Remarque

Lorsquon nest pas habitu aux oracles, il pourrait sembler que si

P = NP alors pour tout oracle B , PB = NPB , et on pourrait donc conclure du thorme que
P = NP Cette implication nest bien sr pas exacte car les modes dutilisation de loracle

par une machine dterministe et par une machine non dterministe sont diffrents : dans
le second cas, la machine peut interroger son oracle indpendamment sur chaque chemin
dexcution et effectuer ainsi virtuellement un nombre exponentiel dappels loracle.
On peut mieux comprendre ce phnomne grce une image, la mtaphore des bcherons.
Deux bcherons travaillent dans une fort, lun sappelle P et lautre NP. Ils sont tous les
deux aussi forts (cest--dire que P = NP) et parviennent abattre chacun dix arbres par
jour avec leur hache. Certes le bcheron NP sait lire alors que ce nest pas le cas de P, mais
cela ne laide pas couper des arbres.
Un jour, on leur offre chacun la mme trononneuse sophistique (loracle B ), objet quils
ne savent bien sr pas encore utiliser. Cette machine vient avec un livret dinstructions
permettant dapprendre sen servir. Le bcheron NP, qui sait lire, apprend le soir
utiliser la trononneuse tandis que son collgue P ne peut rien en faire. Le lendemain,
NP peut ainsi couper cent arbres grce sa trononneuse alors que P nen coupe que dix
avec sa hache. On a donc NPB = PB , alors que P = NP. Une capacit orthogonale
la force brute, la lecture, permet dutiliser la trononneuse dans un cas mais pas dans
lautre : en dautres termes, la machine NP parvient utiliser son oracle pour augmenter
sa puissance, mais pas la machine P.

Figure 7.4 Bcheron par Ferdinand Hodler.

7.5. Relativisation

185

Ide de la dmonstration du thorme 7-AA Un langage assez puissant convient pour


A : intuitivement il crase les diffrences entre P et NP (ce serait dans la remarque
prcdente une trononneuse puissante mais simple dutilisation, que lon pourrait
utiliser sans livret dinstructions). Il est ais de voir quun problme PSPACE-complet
convient.
La construction de B est plus difficile et correspond la trononneuse de la remarque prcdente. Pour tout oracle B , on peut dcider dans NP sur lentre 1n si
B contient un mot de taille n : il suffit de deviner ce mot et de tester son appartenance par un appel loracle. Nous allons construire un oracle B tel quune machine
dterministe ne peut pas rpondre cette question en temps polynomial.
Pour cela, on dfinit B de sorte quune machine dterministe polynomiale M ne demande son oracle que des mots pour lesquels la rponse est ngative, cest--dire que
B naide pas la machine M . Cela nous permettra de faire en sorte que M se trompe sur
au moins une entre (diagonalisation).
Dmonstration du thorme 7-AA Les lemmes 7-O et 7-P montrent que le problme
PSPACE-complet QBF convient comme oracle A puisque PQBF = NPQBF = PSPACE.
La construction de B est un peu plus subtile. Nous allons diagonaliser sur les machines dterministes polynomiales tout en garantissant que notre langage reste dans
NP. Quel que soit le langage D , on dfinit pour cela LD = {1n | D =n = ;} lensemble
des longueurs n en unaire telles que D possde au moins un mot de taille n . Pour tout
langage D , LD NPD puisquil suffit de deviner un mot x de taille n et de vrifier quil
est dans D , comme lexemple 7-H.
Il sagit donc maintenant de construire un langage B tel que LB PB . On va faire en
sorte que toutes les questions poses par une machine dterministe polynomiale aient
une rponse ngative. Soit (M i ) une numration des machines de Turing oracle
fonctionnant en temps polynomial. On dfinit simultanment une suite densembles
finis Bi et une suite dentiers ui en commenant par u0 = 0 et B0 = ;, puis pour i 1 :
B B

1
i 1
soit v la taille maximale des mots demands son oracle par M i1
(1 ui 1 ) :
B Bi 1
si t (n) est le temps de calcul (polynomial) de M i 1
sur une entre de taille
n , on dfinit alors ui le premier entier > max(v, ui1 ) tel que t (ui ) < 2 ui (un tel
entier existe puisque t (n) est polynomial) ;

B Bi 1

(1 ui ) = 1 alors Bi = ; (et donc M i 1

B Bi 1

(1 ui ) = 0 alors

si M i 1
si M i 1

B Bi

B Bi1

Bi = {a | |a| = ui et M i 1

B Bi 1

(1 ui ) = M i 1

(1 ui )) ;

(1 ui ) ne demande pas a son oracle}.

Remarquons dans ce cas que Bi = ; grce au choix de ui : en effet, puisque


t (ui ) < 2 ui , M i ne peut pas demander son oracle les 2 ui mots de taille ui . ReB Bi 1 u
B Bi u
marquons aussi que M i 1
(1 i ) = M i 1
(1 i ) = 0 puisque lon ajoute
loracle seulement des mots qui ne sont pas demands par M i (1 ui ). Ce cas est
illustr la figure 7.5.
Intuitivement, ui+1 est dfini suffisamment grand partir de ui de sorte que les calculs
M j (1 u j ) soient indpendants les uns des autres. On pose alors B = i0 Bi .

186

Chapitre 7. Oracles et limites de la diagonalisation


Mots de taille n

x1

x2

Questions loracle

Mot dans B ?

x3

x4

x5

x6

...

x2n

...

...

Figure 7.5 Construction de loracle B tel que PB = NPB : cas o M i (1 ui ) = 0.

Considrons le fonctionnement de la machine M i avec oracle B sur lentre 1 ui . Par


B Bi 1 u
dfinition de Bi et ui +1 , M iB (1 ui ) = M i 1
(1 i ) car M i ne fait aucun appel son
oracle sur un mot de B \ (B1 Bi1 ). En effet, les mots de B j pour j > i sont trop
grands pour tre accessibles (de taille ui +1 ), et les mots de Bi ne sont pas demands
par dfinition de Bi .
Mais alors par dfinition de Bi , M iB (1 ui ) = 1 si B =ui = ; et M iB (1 ui ) = 0 si B =ui = ;,
donc M iB ne reconnat pas LB . Ainsi, aucune machine de lnumration avec oracle B

ne reconnat LB , donc LB PB .

Ce rsultat nous dit que pour rsoudre la question P = NP ? , les techniques simples
de diagonalisation que lon a utilises jusqu prsent, dans lesquelles les machines taient
simules comme des botes noires, ne suffiront pas. Il montre ainsi les limites de lune des
rares mthodes connues pour sparer des classes.
7-AC Remarque La construction de loracle B met en fait le langage LB non seulement dans NPB mais aussi dans RPB car la plupart des mots a dans la dfinition de Bi ne
sont pas demands par la machine puisquelle fonctionne en temps polynomial : pour dcider si 1n LB il suffit de choisir au hasard un mot x de taille n et de demander loracle
si x B . Si 1n LB alors aucun x ne conviendra, sinon la plupart des x conviendront.
Ainsi, la mme preuve montre que RPB = PB .

7.5.2

Relativisation de la question EXP = NP ?

Nous proposons un second rsultat de non-relativisation dune autre question ouverte


importante, EXP = NP ? . La difficult ici vient du fait que la machine EXP peut demander son oracle des questions de taille exponentielle, lui confrant ainsi une grande
puissance par rapport la machine NP. Ce rsultat a t montr par Heller [Hel84].
7-AD

Thorme (Heller, 1984)

Il existe deux oracles A et B tels que


EXPA = NPA

et

EXPB = NPB .

7.5. Relativisation

187

On en conclut nouveau quon ne peut se contenter de techniques de diagonalisation


simples comme celles vues jusqu prsent pour rsoudre la question EXP = NP ? . Cette
fois la partie difficile est la construction de A. La preuve de ce thorme est scinde en
deux lemmes ci-dessous, en commenant par la construction plus facile de loracle B .
7-AE

Lemme

Il existe un oracle B tel que EXPB = NPB .


Dmonstration Si NP = EXP alors B = ; convient.
Sinon, NP = EXP donc NP est clos par complment (NP = coNP) et NPNP = NP par le
lemme 7-Q.
Mais par ailleurs, EXPNP NEXP par le lemme 7-N donc par le thorme 2-AI de
hirarchie non dterministe en temps, EXPNP = NP.
Ainsi, B = SAT convient daprs le lemme 7-O puisque
EXPSAT = EXPNP NEXP NP = NPNP = NPSAT .

trangement, la construction de loracle A qui rend EXP gal NP ressemble en partie


celle de loracle sparant P et NP du thorme 7-AA.
7-AF

Lemme

Il existe un oracle A tel que EXPA = NPA = EXP.


Ide de la dmonstration Le langage A va contenir lensemble des requtes son oracle
effectues par une machine universelle U simulant les machines dterministes exponentielles. Ainsi, cet oracle naide pas U puisque ses rponses seront toujours oui, donc
EXPA = EXP.
Par ailleurs, puisque U pose au plus un nombre exponentiel de questions, certains
mots de taille polynomiale ne sont pas demands loracle et ninfluencent donc pas le
calcul de U A. On encode alors dans ces mots un problme EXP-complet : en devinant
lun de ces mots, dans NPA on pourra donc rsoudre tout problme EXP.
Dmonstration Pour un oracle B quelconque, soit C B le problme EXPB -complet canonique
C B = {(M , x, 1 t ) | M B (x) = 1 en temps 2 t }.
Ce problme est EXPB -complet comme on peut le voir en adaptant la preuve de la proposition 3-M. On peut le rsoudre en utilisant une machine universelle dterministe
U telle que pour tout oracle B , U B (M , x) simule M B (x) en temps O(t 2 ) si M B (x)
fonctionne en temps t (la construction de la proposition 1-Q convient) : le temps de
simulation est alors O(22n ) si n est la taille de lentre (M , x, 1 t ). On notera MC une
machine telle que pour tout oracle B , MCB dcide C B en temps O(22n ).

188

Chapitre 7. Oracles et limites de la diagonalisation

Nous pouvons maintenant dcrire loracle A du rsultat : il sera lunion densembles


finis Ai dfinis inductivement comme suit. Par commodit, on fixe A1 = ; et pour
2
chaque i on notera Ai = ij =0 A j (i+1) (o dsigne lalphabet quelconque sur
lequel on dfinit A, || 2). On dfinit alors pour i 0,
Ai = {(a, b ) | |(a, b )| i 2 et
(MC; (a) = 0 ou

x de taille i tel que MC i1 (x) demande (a, b ) son oracle)}.

Intuitivement, la partie MC; (a) = 0 permettra NP de dcider le problme EXPcomplet canonique C ; , tandis que le reste de la dfinition sert sassurer que loracle
naidera pas la machine MC car toutes ses rponses seront positives. Le mot b du couple
(a, b ) sert ici simplement de rembourrage pour sassurer un nombre suffisant de mots
dans la preuve de EXP = NPA.
On dfinit alors A = i0 Ai . Montrons que pour tout mot x de taille n , on a
A

MCA (x) = MC n1 (x).

Dmonstration Considrons r1 , . . . , rN les requtes de MCA (x) son oracle


et montrons par rcurrence sur i que la rponse ri est la mme que dans
A
le calcul MC n1 (x). Pour i = 1, la question r1 est la mme dans MCA (x) et
A

dans MC n1 (x) puisquil sagit de la premire. Si |r1 | < n 2 alors


r1 A r1 An1

donc la rponse est la mme. Si |r1 | n 2 , alors par dfinition de An le mot


r1 est dans A, et il est galement dans An1 par dfinition, donc la rponse
est encore identique dans les deux cas.
Pour i > 1 : toutes les questions et les rponses jusquau rang i 1 ont t les
A
mmes pour MCA (x) et MC n1 (x) par hypothse de rcurrence. Ainsi, les deux
calculs sont pour linstant identiques et en particulier la i -me question ri
est la mme dans les deux cas. Si |ri | < n 2 alors comme prcdemment
ri A ri An1 donc la rponse est identique dans les deux cas.
Si |ri | n 2 alors par dfinition de An le mot ri est dans A (puisque les
i premires questions sont identiques), et il est galement dans An1 par
dfinition, donc la rponse est encore identique dans les deux cas.
Ainsi, toutes les questions et rponses sont les mmes dans les deux cas,
donc les calculs sont identiques.

Pour la suite, nous aurons besoin dnumrer des lments de A : pour ce faire, nous
montrons que A EXP.
Dmonstration Soit (a, b ) de taille n . Puisque Ai ne contient
p que des
m
mots de taille i 2 , il sagit de tester si (a, b ) i=0
Ai o m = n.
On teste dabord si MC; (a) = 0, ce qui prend un temps 2O(|a|) , et on accepte
si cest le cas.

7.5. Relativisation

189

Sinon, nous construisons lensemble des lments de A0 , A1 , . . . , Am . Pour


A
construire Ai partir de A0 , . . . , Ai 1 , il suffit dexcuter MC i1 sur tous les
mots de taille i , ce que lon effectue en simulant les appels loracle par
un parcours des lments de ij 1
A , ou en rpondant 1 si le mot demand
=0 j
2
est de taille i . Puisque MC fonctionne en temps 2O(n) , lister les lments
de Ai partir de ceux de A0 , . . . , Ai1 prend donc un temps 2O(i) . Au total,
construire lensemble des lments de A0 , A1 , . . . , Am prend donc un temps
2O(m) .
Pour dcider si (a, b ) A, il suffit alors de tester si (a, b ) fait partie de la
liste dlments numrs, ce qui se fait en temps 2O(n) .

Nous pouvons maintenant montrer que EXPA = EXP.


Dmonstration Soit B EXPA : par compltude de C A, il existe une
rduction f calculable en temps polynomial telle que
x B f (x) C A MCA ( f (x)) = 1.
A

Fixons x et notons m = | f (x)|. Par ce qui prcde, MCA ( f (x)) = MC m1 ( f (x))


A

donc x B ssi MC m1 ( f (x)) = 1. Simuler ce calcul se fait en temps exponentiel sans oracle puisquil suffit dnumrer les lments de m1
A j (ce qui se
j =0
fait en temps exponentiel en m comme on la vu ci-dessus) et de remplacer
les rponses de loracle par 1 si (a, b ) m1
A j ou si |(a, b )| m 2 , et par 0
j =0
sinon.

Montrons maintenant que NPA = EXP.


Dmonstration Soit B EXP : il existe une rduction polynomiale f telle
que x B ssi MC; ( f (x)) = 1. On note m la taille de f (x). Voici une machine
non dterministe avec oracle A pour rsoudre B sur lentre x :
calculer f (x) (de taille m ) ;
deviner b de taille m 2 ;
accepter ssi ( f (x), b ) A.
Si MC; ( f (x)) = 0 alors par dfinition de A, tous les b satisfont ( f (x), b ) A
et donc on rejette. En revanche si MC; ( f (x)) = 1, il faut dabord remarquer
que MC ne peut pas poser plus de O(22m ) questions son oracle car elle
2
fonctionne en temps O(22m ). Puisquil y a 2 m = (2 m 22m ) mots de taille
m 2 , il existe un mot b0 de taille m 2 tel que ( f (x), b0 ) nest demand loracle
au cours du calcul de MCA sur aucune entre de taille m . Par dfinition de
A, ce mot satisfait donc ( f (x), b0 ) A et notre machine accepte x le long
du chemin devinant b0 .
Cette machine non dterministe dcide B en temps polynomial grce
loracle A, donc B NPA.

Nous avons donc montr que EXPA = NPA = EXP.

190

Chapitre 7. Oracles et limites de la diagonalisation

7-AG Remarque Dans lalgorithme NPA de la preuve ci-dessus, en ralit la majorit des mots b de taille m 2 fournissent la bonne rponse. La mme preuve montre donc
que RPA = EXPA.

7.6

De la difficult de dfinir la bonne notion de diagonalisation

Les rsultats prcdents montrent quune mthode de preuve qui passe loracle ne permet pas de rsoudre les grandes questions ouvertes de complexit. Nous avons interprt
ces rsultats comme limpossibilit dutiliser une diagonalisation simple pour ces questions, car en gnral les mthodes de diagonalisation simulent les machines comme des
botes noires et restent donc valides avec un oracle. Nanmoins, nous navons pas dfini
prcisment ce quest une diagonalisation car il ny a pas de dfinition formelle satisfaisante. titre dillustration, nous allons voir que pour une certaine dfinition naturelle
mais large de la diagonalisation, toute sparation est diagonalisation Nous donnons
ce rsultat pour contrebalancer linterprtation que nous avons faite des thormes de
non-relativisation, mais il ne remet pas en cause leur pertinence : il montre plutt que la
tentative ci-dessous de dfinition de la notion de diagonalisation est trop gnrale. Et il
montre quil faut tre prudent sur le terme diagonalisation .
Quels sont les ingrdients dune preuve par diagonalisation ? Pour montrer quun langage
L nest pas dans une classe C , on numre les machines (M i ) reconnaissant les langages
de C et on montre que chacune se trompe sur au moins un mot de L (cest--dire que
pour tout i il existe x tel que M i (x) = 0 ssi x L).
On peut donc considrer quune preuve par diagonalisation de L C est une manire
dnumrer les machines (M i ) de sorte quon parvienne montrer que chaque machine
se trompe sur au moins un mot x . Il sagit donc de trouver un ordre dnumration des
machines nous permettant de montrer cette proprit. En dautres termes, on cherche
une fonction h : N surjective (pour que chaque machine soit numre) telle que le
langage L soit gal
Diag h = {x | M h(x) (x) = 0}.

En effet, si h est surjective alors chaque machine sera numre et chacune fera une erreur,
ce qui montre que Diag h C (argument diagonal).
Le rsultat suivant, d Kozen [Koz80], montre que lon peut toujours exprimer L de
cette faon. Nous montrerons ce rsultat dans le cas particulier o C = P mais il se
gnralise aisment toute classe C qui admet une numration de machines (ce qui est
le cas de P comme on la vu la remarque 3-AL et la section 7.1.1).
On note donc (M i )i N une numration des machines dterministes fonctionnant en
temps polynomial et, pour toute fonction h : N, on note Diag h le langage
Diag h = {x | M h(x) (x) = 0}.

7.6. De la difficult de dfinir la bonne notion de diagonalisation


7-AH

191

Proposition (Kozen, 1980)

Soit L un langage hors de P. Alors il existe une fonction surjective h : N telle


que L = Diag h .
Ide de la dmonstration Puisquaucune machine M i ne reconnat L, chacune doit se
tromper sur au moins un mot x (cest--dire x L ssi M i (x) = 0). On peut donc associer un tel mot xi tout i , en prenant garde quils soient tous diffrents. La fonction
inverse h qui xi associe i vrifie donc xi L ssi M h(xi ) (xi ) = 0, ou en dautres termes
xi L ssi xi Diag h . Il est alors facile dtendre h tout pour conclure.
Dmonstration Nous allons dfinir h comme la fonction inverse dune fonction
f : N strictement croissante pour lordre lexicographique (et donc injective) ;
et si x f (N) alors h(x) sera gal une valeur convenue davance. Le fait que h soit
linverse dune fonction injective f assure que h est surjective. Donnons donc dans
un premier temps la dfinition de f : N .
Puisque L P et que M0 dfinit un langage de P, cette machine doit se tromper sur
un mot de L, cest--dire quil existe x0 tel que M0 (x0 ) = 0 ssi x0 L. On dfinit
alors f (0) = x0 .
Pour i > 0, dfinissons maintenant f (i ) en supposant que f (i 1) est dfini. La
machine M i fonctionnant en temps polynomial et L P, elle doit se tromper sur une
infinit de mots x (cest--dire x L ssi M i (x) = 0), sinon L serait dans P par clture
de P par changements finis (lemme 2-T). Donc il existe un mot xi > f (i 1) (pour
lordre lexicographique) tel que xi L ssi M i (xi ) = 0. On dfinit f (i) = xi .
La dfinition de f : N garantit que :
f est strictement croissante, et
pour tout i N, f (i) L ssi M i ( f (i)) = 0 (en dautres termes, la machine M i se
trompe pour le mot f (i)).
Nous pouvons maintenant passer la dfinition de la fonction h : N. On notera
i0 lindice dune machine M i0 qui rejette tous les mots (x , M i0 (x) = 0), et i1
lindice dune machine M i1 qui accepte tous les mots (x , M i1 (x) = 1). Soit
x :
si x a un antcdent i par f (cest--dire que f (i ) = x ), alors on dfinit h(x) = i ;

sinon, on dfinit h(x) =

i0 si x L
.
i1 si x L

Linjectivit de f implique que h est bien dfinie et surjective. Par ailleurs, deux cas se
prsentent pour un mot x :
si x f (N), disons f (i ) = x , alors x L ssi M i (x) = 0 ; mais puisque h(x) = i ,
on a donc x L ssi M h(x) (x) = 0 ssi x Diag h ;
sinon, si x L alors h(x) = i0 , et si x L alors h(x) = i1 : puisque M i0 (x) = 0 et
M i1 (x) = 1, dans ces deux cas x L ssi M h(x) (x) = 0 ssi x Diag h .
On en dduit que L = Diag h .

192

Chapitre 7. Oracles et limites de la diagonalisation

7-AI Remarque Il est facile de voir dans la preuve ci-dessus que si L est dcidable,
alors h est calculable.
Nous pouvons maintenant appliquer ce qui prcde la question P = NP ? pour
montrer que si P = NP alors il existe une preuve de type diagonalisation que SAT nest
pas dans P .
7-AJ

Corollaire

Si NP = P alors il existe une fonction h : {0, 1} N surjective telle que Diag h = SAT.
On peut considrer quil sagit dune sorte de preuve par diagonalisation du fait que
SAT P puisque Diag h est clairement hors de P par un argument diagonal.
Gardons tout de mme en tte que, malgr ce rsultat, les grandes questions ouvertes
en complexit ne peuvent tre rsolues par les mthodes connues de diagonalisation ,
dans lesquelles les machines sont simules comme des botes noires. En dautres termes,
de nouvelles techniques qui ne se relativisent pas doivent tre mises au point pour avoir
un espoir de rsoudre ces questions.
Mentionnons enfin que les exercices B-B et B-E en annexe permettent de sentraner sur
les oracles.

La hirarchie
polynomiale
Nous avons dj discut du fait que la classe NP nest probablement pas close par complmentaire. Nous avons donc t amens considrer la classe coNP et galement NPNP au
lemme 7-Q.
Nous allons voir comment cette remarque permet de construire une famille de classes de
complexit, appele hirarchie polynomiale, se situant entre P et PSPACE. La dfinition sera
donne en termes doracles, mais linstar de NP, nous montrerons une caractrisation
laide de quantificateurs.
Nous nous attacherons ensuite comparer la hirarchie polynomiale aux classes vues jusqu prsent. Puis le thorme 8-P de Karp et Lipton permettra de connecter la question
des bornes infrieures non uniformes pour NP celle de savoir si la hirarchie polynomiale
est stricte. Enfin, le genre de techniques dveloppes dans ce chapitre nous permettra de
montrer une borne infrieure sur le temps et lespace simultans ncessaires la rsolution
de problmes de type NP.

8.1

La hirarchie polynomiale

Pourquoi NP ne semble pas tre close par complment ? Que se passerait-il si elle ltait ?
Comment une machine non dterministe peut-elle mettre profit son oracle ? Cest notamment pour tudier ces questions que la hirarchie polynomiale a t introduite par
Meyer et Stockmeyer [MS72]. Les premires proprits ci-dessous et la compltude des
problmes SATi ont galement t montres dans cet article.

8.1.1

Dfinition et premires proprits

La hirarchie polynomiale est dfinie en termes doracles.

194
8-A

Chapitre 8. La hirarchie polynomiale


Dfinition (hirarchie polynomiale)

La famille des classes de complexit pi (pour i 0) est dfinie inductivement comme


suit :
p0 = P ;
pi +1 = NPi .
p

La hirarchie polynomiale est alors PH = i 0 pi .


On notera galement pi = copi lensemble des langages dont le complmentaire est dans
p
pi , et pi = Pi 1 pour i 1.
Ainsi, p1 = NP, p2 = PNP , p2 = NPNP , etc. (cf. figure 8.1). La classe pi est appel le
i -me niveau de la hirarchie polynomiale.
p1 = NP

p2
p2

p1 = coNP

p3
p3

p2

PSPACE

p3

Figure 8.1 Diffrents niveaux de la hirarchie polynomiale. Une flche C D


exprime linclusion C D .

La hirarchie polynomiale est incluse dans PSPACE comme le montre le rsultat suivant.
8-B

Lemme

PH PSPACE.

Dmonstration Il suffit de montrer que pour tout i , pi PSPACE. Nous procdons


par rcurrence.
Pour i = 0, le rsultat est clair puisque p0 = P.
p
Pour i > 0, pi = NPi1 . Par hypothse de rcurrence, on a donc pi NPPSPACE . Le

lemme 7-P permet de conclure puisque NPPSPACE = PSPACE.


Il est communment suppos que P = NP, cest--dire que le non-dterminisme apporte
de la puissance. Cette supposition peut tre gnralise la hirarchie polynomiale : lopinion dominante est que celle-ci est probablement stricte, cest--dire que pour tout i ,
pi+1 = pi . Le rsultat suivant montre que lgalit de deux niveaux successifs provoque
un effondrement de toute la hirarchie. Karp [Kar72] avait dj fait cette remarque avant
mme la dfinition de la hirarchie polynomiale par [MS72].

8.1. La hirarchie polynomiale


8-C

195

Proposition

Si P = NP alors PH = P.
Plus gnralement, pour i 0, si pi +1 = pi alors PH = pi .
Dmonstration Supposons pi +1 = pi et montrons par rcurrence sur j i que
pj = pi .
Pour j = i , le rsultat est trivial.
p
p
Pour j > i : pj = NP j 1 = NPi par hypothse de rcurrence. Ainsi, pj = pi+1 . Mais

par hypothse, pi+1 = pi , donc pj = pi .

La rciproque de ce rsultat est vidente, il sagit donc dune quivalence.


Le lemme 7-Q nous donne galement un autre rsultat deffondrement.
8-D

Corollaire

Si NP = coNP alors PH = NP.


Dmonstration Par le lemme 7-Q, si NP = coNP alors p2 = p1 . La proposition 8-C

implique que PH = p1 = NP.

On gnralisera ce rsultat (cf. corollaire 8-H) lorsquon aura vu la caractrisation de PH


en termes de quantificateurs.
Enfin, nous noterons que chaque niveau de la hirarchie polynomiale est clos par rduction many-one.
8-E

Lemme

Soit A et B deux langages. Si A pi et B pm A, alors B pi .


Dmonstration Par dfinition de pi , A est reconnue par une machine non dterministe
polynomiale N avec un oracle S pi 1 .
Soit f la rduction polynomiale de B A, cest--dire x B f (x) A. Voici une
machine non dterministe polynomiale NB avec oracle S pour dcider B sur lentre
x:
calculer f (x) ;
excuter le calcul non dterministe N S ( f (x)).
Cette machine non dterministe NB avec oracle S dcide B en temps polynomial.
p

Puisque S pi1 , on en dduit que B NPi 1 = pi .

196

Chapitre 8. La hirarchie polynomiale

8.1.2

Caractrisation en termes de quantificateurs

La classe NP admet la caractrisation existentielle que nous connaissons (proposition 2AO), coNP une caractrisation universelle. Que se passe-t-il si lon associe les deux, si
lon alterne les quantificateurs ? Le rsultat de PSPACE-compltude du langage QBF (thorme 4-AC) montre quun nombre arbitraire dalternances de quantificateurs dfini la
classe PSPACE. Nous allons voir comment caractriser la hirarchie polynomiale de cette
le
manire. Dans les dmonstrations, si Q {, } est un quantificateur, on notera Q

quantificateur oppos (cest--dire Q = si Q = , tandis que Q = si Q = ).


8-F

Proposition

Soit i 0. Un langage A est dans pi si et seulement sil existe un langage B P et un


polynme p(n) tels que :
x A

y1 {0, 1} p(|x|) y2 {0, 1} p(|x|) y3 {0, 1} p(|x|) . . . Qyi {0, 1} p(|x|) (x, y1 , . . . , yi ) B,

o Q est le quantificateur si i est impair et sinon.


En dautres termes, un problme est dans pi si et seulement sil sexprime par une alternance de i quantificateurs commenant par .
8-G Remarque Puisque pi = copi , la classe pi admet une caractrisation similaire
mais en commenant par plutt que par .
..

.NP

Ide de la dmonstration de la proposition 8-F Dans la dfinition de pi = NPNP ,


chaque oracle NP ajoute des quantificateurs : une rponse positive de loracle NP donne
un certificat et donc un quantificateur , tandis quune rponse ngative donne un
quantificateur . On pourrait donc croire quil faut une alternance de 2i quantificateurs (et non seulement i ).
Mais par induction, si le dernier quantificateur ajout tait , alors il prend dj en
compte le cas des rponses positives de loracle, donc on ajoute seulement une alternance avec le quantificateur pour les rponses ngatives. De mme si le dernier
quantificateur ajout tait , alors il prend dj en compte le cas des rponses ngatives de loracle, donc on ajoute seulement une alternance avec le quantificateur
pour les rponses positives. Ainsi, chaque oracle ajoute exactement une alternance de
quantificateurs.
Dmonstration de la proposition 8-F Nous commenons par montrer le sens . Supposons donc que lappartenance A sexprime par une alternance de i quantificateurs
comme dans lnonc. Nous montrons par rcurrence sur i qualors A pi .
Le rsultat est clair pour i = 0.
Pour i > 0 : si lon oublie le premier quantificateur , on obtient un langage A dont
les entres sont les couples (x, y1 ) vrifiant y2 y3 . . . Qyi (x, y1 , y2 , . . . , yi ) B . Il sagit

8.1. La hirarchie polynomiale

197

par hypothse de rcurrence dun langage pi 1 . Mais dcider A revient simplement,

sur lentre x , dcider si y1 (x, y1 ) A : on en dduit que A NPA puisquil suffit

de deviner y1 et de tester grce loracle si (x, y1 ) A .


Or adjoindre A comme oracle ou son complmentaire c A ne change rien puisquil
c
suffit dinverser les rponses de loracle : donc en dautres termes, A NP A . Puisque
p
c
A pi1 , on en dduit que A NPi 1 = pi .
Pour la rciproque , soit A pi et montrons par rcurrence quil sexprime comme
une alternance de i quantificateurs comme dans lnonc. La preuve ressemble celle
du lemme 7-Q.
Le rsultat est clair pour i = 0.
Pour i > 0 : par dfinition de pi , A est reconnu par une machine non dterministe
N fonctionnant en temps polynomial p(n) avec un oracle B pi1 . Par hypothse de
rcurrence, B sexprime par une alternance de i 1 quantificateurs :
y (v, y , . . . , y ) C ,
v B y1 {0, 1}q(|v|) y2 . . . Q
i 1
1
i1

o C P et q(n) est un polynme.


Un mot x est dans A si et seulement sil existe un chemin acceptant dans le calcul
N B (x). Pour exprimer cette condition sous la forme voulue, nous allons deviner le
chemin acceptant u , les questions (a1 , . . . , a m ) loracle et ses rponses (b1 , . . . , b m ) (o
m p(|x|), |ai | p(|x|) et bi {0, 1}) :
x A u {0, 1} p(|x|) (a1 , . . . , a m ) (b1 , . . . , b m )
le chemin u de N (x) o les rponses de loracle sont remplaces par
(b1 , . . . , b m ) est acceptant et pose les questions (a1 , . . . , a m ) son oracle,
et pour tout 1 j m, [b j = 1 a j B].

En connaissant u et (b1 , . . . , b m ), on peut dcider en temps polynomial si le chemin


u est acceptant et pose les questions (a1 , . . . , a m ) loracle, proprit que lon appellera . Il reste dterminer si les rponses (b1 , . . . , b m ) sont les bonnes, cest--dire si
[b j = 1 a j B], que lon peut rcrire en [(b j = 1 a j B) (b j = 0 a j B)].
Par la caractrisation de B , cela sexprime sous la forme
y (a , y , . . . , y ) C )
(b j = 1 y1 y2 . . . Q
i 1
j 1
i 1
(b j = 0 y1 y2 . . . Qyi1 (a j , y1 , . . . , yi1 ) C ).

Un nouveau jeu dcriture nous permet dobtenir la forme quivalente suivante :


z1 z2 . . . Q zi [(b j = 1 (a j , z1 , . . . , zi1 ) C ) (b j = 0 (a j , z2 , . . . , zi ) C )].

La conjonction de toutes ces formules pour j allant de 1 m sexprime donc sous la


forme :
z11 z12 . . . z1m z21 . . . z2m . . . Q zi1 . . . zim

[(b j = 1 (a j , z1 , . . . , zi 1 ) C ) (b j = 0 (a j , z2 , . . . , zi ) C )].

j =1

198

Chapitre 8. La hirarchie polynomiale

Rappelons que les variables zkj sont de taille polynomiale puisquelles correspondent
des certificats dans la caractrisation de B ; que les variables bk sont des bits (les
rponses de loracle) ; et que les variables ak sont de taille polynomiale puisquil sagit
des questions loracle.
On remarquera que la condition est dcidable en temps polynomial sur lentre
(a1 . . . a m , b1 . . . b m , z11 . . . zim ) puisque m est polynomial et C P.
Au final, lappartenance A sexprime alors comme suit :
x A u (a1 , . . . , a m ) (b1 , . . . , b m )
z11 z12 . . . z1m z21 . . . z2m . . . Q zi1 . . . zim [ ].

Les quatre premiers quantificateurs peuvent bien sr tre regroups au sein dun seul.
Puisque peut tre dcid en temps dterministe polynomial, il sagit bien de la

caractrisation voulue avec une alternance de i quantificateurs.

Cette caractrisation nous permettra de donner des problmes complets pour les classes
pi . Mais avant cela, elle nous autorise gnraliser le corollaire 8-D.
8-H

Corollaire

Si pi = pi alors PH = pi .
Dmonstration Grce la proposition 8-C, il suffit de montrer que pi+1 = pi . Soit
A pi+1 : il existe B P et un polynme p(n) tels que
x A y1 y2 . . . Qyi+1 (x, y1 , . . . , yi +1 ) B,

(8.1)

o les y j sont des mots de taille p(|x|).


Sur lentre (x, y1 ), dcider si y2 y3 . . . Qyi +1 (x, y1 , . . . , yi +1 ) B est un problme de
pi . Mais par hypothse, pi = pi : on peut donc le rcrire sous la forme
z (x, y , z , . . . , z ) C ,
z1 z2 . . . Q
i
1 1
i

(8.2)

o C P et les mots zi sont de taille polynomiale.


En combinant les expressions (8.1) et (8.2), on obtient
z (x, y , z , . . . , z ) C ,
x A y1 z1 z2 . . . Q
i
1 1
i

qui est lexpression dun langage dans pi .

Afin dillustrer ces nouvelles classes, nous donnons deux exemples de problmes naturels
contenus dans la hirarchie polynomiale diffrents niveaux, ainsi quune variante de
lun deux en exercice ; la section suivante nous verrons en outre pour chaque niveau un
problme complet.
8-I

Exemple

1. CLIQUE EXACTE :

8.1. La hirarchie polynomiale

199

entre : un graphe non orient G et un entier k ;


question : la clique de taille maximum de G est-elle de taille k ?
Ce problme peut tre exprim sous la forme
s1 , . . . , sk G distincts tels que {s1 , . . . , sk } est une clique

} nest pas une clique.


s1 , . . . , sk+1
G distincts, {s1 , . . . , sk+1

Il est donc dans PNP = p2 .


2. CIRCUIT MIN :
entre : un entier k et un circuit boolen C (x1 , . . . , xn ) calculant une fonction
f : {0, 1}n {0, 1} ;
question : existe-t-il un circuit C de taille k qui calcule f ?
Ce problme peut tre exprim sous la forme
C x {0, 1}n (|C | k C (x) = C (x))

et est donc dans p2 .

. 8-J

Exercice
Montrer que la variante du problme CIRCUIT MIN ci-dessus o lon demande si le
circuit minimum pour f est de taille exactement k , est dans p3 .

8.1.3

Problmes complets

Tout dabord, il faut garder lesprit que la hirarchie polynomiale est une union de
classes et de ce fait na probablement pas de problme complet, comme le montre le
lemme suivant.
8-K

Lemme

Si la hirarchie polynomiale possde un problme complet, alors elle seffondre (PH = pi


pour un certain i ).
Dmonstration Supposons que A PH soit PH-complet. Par dfinition de PH, A pi
pour un certain i .
Soit B PH : par compltude de A, il se rduit A pi donc par le lemme 8-E de

clture de pi par rduction, B pi . On en dduit que PH = pi .

Une application simple de ce lemme est lexercice suivant.

200

Chapitre 8. La hirarchie polynomiale

. 8-L

Exercice
Montrer que si PH = PSPACE alors PH seffondre (PH = pi pour un certain i ).

La caractrisation de la section prcdente nous permet nanmoins didentifier des problmes complets pour les classes pi . Voici la dfinition du problme SATi :
entre : une formule boolenne sans quantificateur (y1 , . . . , yi ), o les yi sont des
uples de variables ;
question : est-il vrai que y1 y2 . . . Qyi (y1 , . . . , yi ) ?
8-M

Proposition

Pour i 1, le problme SATi est pi complet.


Ide de la dmonstration Il sagit dutiliser la caractrisation en termes de quantificateurs de la proposition 8-F. Le dernier quantificateur ou sinterprte alors comme
lappartenance un problme NP ou coNP. Grce au rsultat de NP-compltude de
SAT (thorme de Cook et Levin 3-V), lappartenance ce langage NP ou coNP peut
tre remplace par un quantificateur devant une formule boolenne. Au total, on obtient une alternance de i quantificateurs devant une formule boolenne, cest--dire
une instance de SATi .
Dmonstration Si lon dispose des valeurs de y1 , . . . , yi (o pour tout j i , le uple
yi {0, 1} est de taille au plus linaire puisquil fait partie de lentre), dcider si
(y1 , . . . , yi ) est vrai se fait en temps polynomial, donc SATi pi par la caractrisation
de la proposition 8-F.
Montrons maintenant que SATi est pi -difficile. Soit A pi : sans perte de gnralit,
on suppose que A est sur lalphabet {0, 1}. Par la proposition 8-F, il sexprime sous la
forme
x A y1 {0, 1} p(|x|) y2 {0, 1} p(|x|) . . . Qyi {0, 1} p(|x|) (x, y1 , . . . , yi ) B,

o B P et p(n) est un polynme.


Nous allons distinguer deux cas selon si Q est ou (cest--dire selon si i est impair
ou pair) mais les raisonnements seront quasi identiques.
Premier cas : Q = . Le problme de savoir sur lentre (x, y1 , . . . , yi1 ) si
yi (x, y1 , . . . , yi ) B

est dans NP. Donc par NP-compltude de SAT (thorme 3-V), il se rduit SAT :
yi (x, y1 , . . . , yi ) B ssi z (x,y1 ,...,yi 1 ) (z), o (x,y1 ,...,yi 1 ) est une formule boolenne

calculable en temps polynomial. En inspectant la dmonstration du thorme 3-V,


on voit que les entres (x, y1 , . . . , yi1 ) du problme ne servent dans la formule qu
dfinir le contenu du ruban de lecture grce lexpression :

c x1 ,i ,0 .
i

1in

8.2. Comparaison avec les classes probabilistes

201

Puisquici lalphabet est {0, 1}, on peut rcrire cette expression en

1
1
(xi c1,i,0
) (xi c0,i
,0 )

1in

o maintenant les entres apparaissent sous la forme de variables dans la formule.


En dautres termes, linspection de la preuve du thorme 3-V permet dexprimer
yi (x, y1 , . . . , yi ) B sous la forme z (x, y1 , . . . , yi 1 , z), cest--dire que ne dpend
plus de (x, y1 , . . . , yi1 ) mais celles-ci apparaissent maintenant en tant que variables de
la formule.
Ainsi, lappartenance A sexprime sous la forme
x A y1 y2 . . . yi 1 z (x, y1 , . . . , yi 1 , z).

Cette instance de SATi est calculable en temps polynomial, ce qui donne une rduction
de A SATi .
Second cas : Q = , on procde symtriquement avec coNP. Le problme de savoir
sur lentre (x, y1 , . . . , yi1 ) si yi (x, y1 , . . . , yi ) B est dans coNP. Donc il se rduit
coSAT : yi (x, y1 , . . . , yi ) B ssi z (x, y1 , . . . , yi1 , z), o est une formule boolenne
calculable en temps polynomial. Ainsi, lappartenance A sexprime sous la forme
x A y1 y2 . . . yi1 z (x, y1 , . . . , yi 1 , z).

Cette instance de SATi est calculable en temps polynomial, ce qui donne une rduction

de A SATi .

8.2

Comparaison avec les classes probabilistes

Nous avons vu que P PH PSPACE. Par ailleurs, NP est lui-mme un niveau de la


hirarchie polynomiale. Pour avoir une vision plus complte, il reste situer la classe
BPP (dfinition 6-B) dans ce paysage. Sipser [Sip83] a dabord montr que BPP PH
avant que ce rsultat ne soit amlior par Gcs puis Lautemann [Lau83] pour donner le
thorme suivant.
8-N

Thorme (Sipser, Gcs, Lautemann, 1983)


BPP p2 p2

Pour montrer ce thorme, nous aurons besoin dun lemme technique. On dsigne par +
laddition des vecteurs de {0, 1}n (addition modulo 2, ou encore ou exclusif composante
par composante). Si R {0, 1}n et u {0, 1}n , on note R+ u = {r + u | r R}. Ce lemme
montre que si R {0, 1}n est suffisamment grand, alors un petit nombre de translations
de R permet de recouvrir compltement lensemble {0, 1}n .

202

Chapitre 8. La hirarchie polynomiale

8-O

Lemme

Soit [0, 1[. Soit R {0, 1}n tel que |R| (1 )2n . Soit k tel que k < 2n . Alors il
existe u1 , . . . , uk {0, 1}n tels que ki=1 (R + ui ) = {0, 1}n .
Dmonstration On choisit les vecteurs u1 , . . . , uk {0, 1}n alatoirement, indpendamment les uns des autres. Soit r0 {0, 1}n fix. Remarquons que r0 (R + ui ) ssi
ui (R + r0 ). Ainsi, les vnements r0 (R + ui ) (pour 1 i k ) sont indpendants dans leur ensemble.
Puisque |(R + ui )| = |R| (1 )2n , on a pour tout i que Pr u1 ,...,uk (r0 (R + ui )) .
On en dduit par indpendance que Pr u1 ,...,uk (r0 i (R + ui )) k . Par lingalit de
Boole (proposition A-B), puisquil y a 2n mots r {0, 1}n ,
Pr (r {0, 1}n , r i (R + ui )) 2n k .

u1 ,...,uk

Cette probabilit est < 1 puisque k < 2n , ce qui prouve lexistence de vecteurs

u1 , . . . , uk tels que pour tout r {0, 1}n , r i (R + ui ).

Ide de la dmonstration du thorme 8-N Soit A BPP : si x A alors la plupart des


choix probabilistes r mnent un calcul acceptant. Un petit nombre de translations
partir de ces choix probabilistes permet alors de recouvrir tous les mots daprs le
lemme prcdent 8-O.
En revanche, si x A alors la plupart des choix probabilistes r mnent un calcul
rejetant et les choix acceptants ne suffisent pas recouvrir tous les mots par un petit
nombre de translations. Une illustration de ces deux cas est donne la figure 8.2.
{0, 1} p(n)

translations

x A:

R x + u1

R x + u3

Rx
R x + u4

translations

x A :

R x + u3

Rx
R x + u4

R x + u2

R x + u1

R x + u2

Figure 8.2 Couverture de {0, 1} p(n) par translation si x A, impossible si x A.


On exprime donc lappartenance A avec deux quantificateurs : il existe des vecteurs
de translations tels que tout mot est couvert, ce qui donne un problme p2 .

8.3. Liens avec les circuits

203

Dmonstration du thorme 8-N Puisque BPP est clos par complment, il suffit de
montrer que BPP p2 car cela implique BPP = coBPP cop2 = p2 .
Soit A BPP. Par rduction derreur (proposition 6-F), il existe un langage B P et
un polynme p(n) tels que pour tout mot x :

x A = Pr r {0,1} p(|x|) ((x, r ) B) 1 2|x| ;


x A = Pr r {0,1} p(|x|) ((x, r ) B) 2|x| ,

cest--dire un algorithme probabiliste avec erreur = 2n utilisant des mots alatoires r de taille p(n) (o n dsigne la taille de x ). Soit k = 1 + p(n)/n de sorte que
k < 2 p(n) et k < 1 (lentier k tant polynomial et le rel exponentiellement petit).
Pour une entre x , on note R x = {r {0, 1} p(|x|) | (x, r ) B} lensemble des choix
probabilistes menant un calcul acceptant. Soit x {0, 1}n .
Si x A, alors |R x | (1 )2 p(n) donc le lemme 8-O implique lexistence de
u1 , . . . , uk {0, 1} p(n) tels que ki=1 (R x + ui ) = {0, 1} p(n) . En dautres termes,
u1 , . . . , uk {0, 1} p(n) r {0, 1} p(n)

r ki=1 (R x + ui ).

Si x A, alors |R x | 2 p(n) donc pour tous vecteurs u1 , . . . , uk {0, 1} p(n) , on a


| ki=1 (R x + ui )| k2 p(n) < 2 p(n) : en particulier, ki=1 (R x + ui ) = {0, 1} p(n) . En
dautres termes,
u1 , . . . , uk {0, 1} p(n) r {0, 1} p(n)

r ki=1 (R x + ui ).

Nous avons donc montr que


x A u1 , . . . , uk {0, 1} p(n) r {0, 1} p(n)

r ki=1 (R x + ui ).

Les mots ui et r sont de taille polynomiale et leur nombre k est aussi polynomial. De
plus, puisque R x = {r {0, 1} p(|x|) | (x, r ) B}, sur lentre (x, u1 , . . . , uk , r ) on peut
tester en temps polynomial si r ki=1 (R x + ui ) comme suit, en utilisant la remarque
que r (R x + ui ) (r + ui ) R x :
pour i de 1 k faire

si (x, r + ui ) B alors accepter ;

rejeter.
La caractrisation de PH la proposition 8-F permet de conclure que A p2 . Ainsi,

BPP p2 .

8.3

Liens avec les circuits

Les circuits boolens ont t introduits notamment dans lespoir de rsoudre des questions
comme P = NP ? grce ce modle plus simple manipuler. En effet, on sait bien sr
que si NP na pas de circuits de taille polynomiale, alors P = NP (cf. proposition 5-AN).

204

Chapitre 8. La hirarchie polynomiale

Mais quen est-il de la rciproque : montrer NP = P est-il aussi difficile que NP P/poly ?
Nous ne connaissons pas la rponse, mais Karp et Lipton [KL82] ont fait un pas dans
cette direction en montrant que la hirarchie polynomiale seffondre si NP a des circuits
de taille polynomiale. Puisque la hirarchie polynomiale est suppose tre stricte, cest un
signe de plus que NP na probablement pas de circuits de taille polynomiale.

8.3.1

Thorme de Karp et Lipton

Nayant dabord obtenu quun effondrement sur p3 , dans leur article Karp et Lipton
attribuent la version suivante de leur thorme Sipser.
8-P

Thorme (Karp et Lipton, Sipser, 1982)

Si NP P/poly alors p2 = p2 (et donc PH = p2 ).


Ide de la dmonstration Il sagit dintervertir un quantificateur avec un quantificateur pour passer de p2 p2 .
Dans une expression p2 de la forme y z (x, y, z) B , sur lentre (x, y) la partie
z (x, y, z) B est un langage NP, donc elle se rduit SAT. Lexpression p2 se rcrit
alors y f (x, y) SAT, o f est une rduction polynomiale.
Par hypothse, SAT a des circuits de taille polynomiale. Lide est alors de deviner ces
circuits avec un quantificateur en tte de formule. La partie f (x, y) SAT sexprime
alors par C ( f (x, y)) = 1 et on obtient C y C ( f (x, y)) = 1, mais il reste vrifier que
le circuit C devin est bien un circuit pour SAT.
Pour cela on utilise lautorductibilit de SAT en exigeant que pour toute formule
(x1 , . . . , xk ), on ait C ((x1 , . . . , xk )) = C ((0, x2 , . . . , xk )) C ((1, x2 , . . . , xk )) (condition que lon crira (C , ) D ). On a alors transform lexpression p2 de dpart en :
C y [(C , ) D C ( f (x, y)) = 1],

ce qui est une expression p2 .


Pour des raisons de simplicit quant la taille des arguments, dans la preuve ci-dessous
nous nallons pas manipuler des circuits mais des conseils.
Dmonstration La parenthse de lnonc dcoule du corollaire 8-H.
Pour montrer que p2 = p2 il suffit de montrer que p2 p2 car cela implique directement cop2 cop2 , soit p2 p2 .
Soit A p2 : lappartenance A sexprime sous la forme
x A y {0, 1} p(|x|) z {0, 1} p(|x|) (x, y, z) B,
1. Cest--dire le fait pour un langage A que dcider si x A se rduit dcider si y1 , . . . , yk A pour des
instances yi calculables en temps polynomial et de taille strictement infrieure celle de x .
Attention, cela nimplique pas ncessairement lexistence dalgorithmes efficaces pour A puisquen procdant de manire rcursive sur des entres plus petites, le nombre dinstances tester crot exponentiellement a
priori.

8.3. Liens avec les circuits

205

o B P et p(n) est un polynme. Sur lentre (x, y), dcider si


z {0, 1} p(|x|) (x, y, z) B

est un problme de NP et se rduit donc SAT par une rduction polynomiale f :


z {0, 1} p(|x|) (x, y, z) B f (x, y) SAT.

Si |x| = n et |y| = p(n), on notera q(n) la taille polynomiale de f (x, y). Mais par hypothse, SAT P/poly donc il est reconnu par une machine dterministe polynomiale
avec conseils (an ) de taille polynomiale r (n) :
SAT (, a|| ) C ,

o C P.

En combinant ces expressions, on obtient que


x A y {0, 1} p(n) ( f (x, y), aq(n) ) C .

(8.3)

Sans perte de gnralit, on supposera que le conseil a m convient pour toutes les entres de taille m , et non seulement celles de longueur exactement gale m (il suffit
pour cela dadjoindre a m les conseils a0 , . . . , a m1 ).
Le problme est quon ne sait pas construire le conseil a m . Lastuce est alors de le
deviner et de vrifier quil sagit dun bon conseil.
Pour la suite, si = (x1 , . . . , xk ) est une formule boolenne avec k variables libres, on
notera 0 (x2 , . . . , xk ) = (0, x2 , . . . , xk ) et 1 (x2 , . . . , xk ) = (1, x2 , . . . , xk ) les formules
boolennes k 1 variables libres o x1 est remplac respectivement par 0 et 1. On
remarquera que la taille du codage de 0 et de 1 est infrieure celle de puisquune
variable dsigne par un numro de log k bits est remplace par 0 ou 1.
Que doit vrifier un conseil a m de taille r (m) pour tre un bon conseil pour SAT ?
Voici trois conditions ncessaires :
1. si de taille m na pas de variables et est vraie, alors (, a m ) C ;
2. de mme si de taille m na pas de variables et est fausse, alors (, a m ) C ;
3. pour tout de taille m , (, a m ) C ssi [(0 , a m ) C ou (1 , a m ) C ].
Ces trois conditions sont aussi suffisantes comme on le montre maintenant.
Dmonstration Soit a m un conseil vrifiant les trois conditions ci-dessus.
Montrons quil sagit dun bon conseil par rcurrence sur le nombre de
variables de .
Si na pas de variable, alors les conditions 1 et 2 assurent que le conseil
permet dobtenir la bonne rponse.
Si a k > 0 variables x1 , . . . , xk , alors est satisfaisable ssi 0 ou 1 lest (en
effet, il faut bien donner la valeur 0 ou 1 la variable x1 ). Par hypothse
de rcurrence, a m permet dobtenir la bonne rponse sur 0 et 1 qui ont
chacune k 1 variables. Ainsi, la condition 3 garantit que le conseil permet
dobtenir la bonne rponse sur .

206

Chapitre 8. La hirarchie polynomiale

Ainsi, un conseil satisfaisant les trois conditions ci-dessus est un bon conseil pour SAT.
Pour rsoudre SAT, on peut donc deviner un conseil et vrifier quil satisfait ces trois
conditions. Pour notre problme A, cela va nous permettre dchanger un quantificateur par un , quitte ajouter un en tte
Grce lexpression (8.3), lappartenance A scrit alors
x A a {0, 1} r (n) y {0, 1} p(n) ( a est un bon conseil ( f (x, y), a) C ).

Vrifier que a est un bon conseil sexprime ainsi :


{0, 1}q(n) (, a) D

o D est le langage dfini selon les trois conditions ci-dessus :


(, a) D ( 1 (, a) C )
( 0 (, a) C )
((, a) C [((0 , a) C ) ((1 , a) C )]).

On a bien sr D P puisquil sagit simplement dvaluer si elle na pas de variables


et de tester des appartenances C P. On obtient donc :
x A a {0, 1} r (n) y {0, 1} p(n) {0, 1}q(n) (, a) D ( f (x, y), a) C .

Cest une expression p2 , donc A p2 .

8.3.2

Langages creux

On se rappelle du rsultat du corollaire 7-Y : un langage A est dans P/poly si et seulement


sil se rduit un langage creux par une rduction Turing polynomiale. Ainsi, NP P/poly
ssi SAT P/poly ssi SAT pT C o C est un langage creux. Le langage creux C est donc
NP-difficile pour les rductions Turing polynomiales.
On peut alors reformuler le thorme de Karp et Lipton en termes de rduction Turing :
NP P/poly devient il existe un langage creux NP-difficile pour les rductions Turing
polynomiales . Ce nest pas sans ressemblance avec le thorme de Mahaney 3-AQ. Nous
pouvons ainsi comparer ces deux thormes.
8-Q

Corollaire (reformulation des thormes de Mahaney et de Karp-Lipton)

1. Sil existe un langage creux NP-difficile pour les rductions many-one polynomiales,
alors P = NP (Mahaney).
2. Sil existe un langage creux NP-difficile pour les rductions Turing polynomiales,
alors p2 = p2 (Karp et Lipton).
Ce sont donc deux rsultats semblables, lun portant sur les rductions many-one, lautre
sur les rductions Turing. Puisque tout langage NP-difficile pour les rductions many-one
lest aussi pour les rductions Turing, lhypothse du premier point est plus forte. Mais la
conclusion lest aussi.

8.4. Borne infrieure sur le temps et lespace conjugus pour NTIME(n)

8.4

207

Borne infrieure sur le temps et lespace conjugus


pour NTIME(n)

En gnral, il est trs difficile dobtenir des bornes infrieures sur le temps de calcul ncessaire la rsolution dun problme. Par exemple, la meilleure borne infrieure connue
ce jour sur le temps dterministe ncessaire pour rsoudre un problme de NTIME(n)
est linaire. Il est donc intressant de constater que si lon contraint galement lespace,
alors nous pouvons faire mieux, et la dmonstration utilise une alternance de quantificateurs comme dans la hirarchie polynomiale. La technique trouve ses prmices dans Nepomnjai [Nep70] et dans Kannan [Kan83] ; lapplication TISP a dabord t faite par
Fortnow [For97] avant que Fortnow et van Melkebeek [FM00] nobtiennent le rsultat
suivant. Depuis, de meilleures bornes infrieures ont t montres, par Williams [Wil07]
par exemple.
8-R

Dfinition

La classe TISP(t (n), s(n)) (pour TIme-SPace) est lensemble des langages reconnus par
une machine de Turing dterministe fonctionnant en temps O(t (n)) et utilisant un espace
O(s (n)).
On peut alors montrer le rsultat suivant.
8-S

Thorme (Fortnow et van Melkebeek, 2000)

Soit 1 et deux constantes telles que ( + ) < 2. Alors NTIME(n) TISP(n , n ).


Par exemple, = 5/4 et = 3/10 conviennent.
Ide de la dmonstration laide de deux quantificateurs (calcul de type p2 ), on peut
p
acclrer le calcul M (x) dune machine TISP(t (n), s(n)) en devinant O( t (n)/s (n))
configurations intermdiaires C1 , . . . , C m rgulirement espaces et vrifier pour tout i
p
que Ci mne Ci+1 en t (n)s(n) tapes : chaque configuration tant de taille O(s (n)),
p
cela prend un temps O( t (n)s (n)).
Mais si NTIME(n) TISP(n , n ) alors le second quantificateur peut tre remplac
par un calcul dterministe prenant un temps n , ce qui permet dacclrer un calcul TISP(t (n), s (n)) grce une machine non dterministe (cest--dire avec un seul
quantificateur cette fois).
Pour un bon choix des paramtres et , lhypothse NTIME(n) TISP(n , n ) implique donc lacclration dun calcul non dterministe par une machine non dterministe, une contradiction avec le thorme de hirarchie en temps non dterministe.
La dmonstration de ce thorme repose sur le lemme suivant.

208

Chapitre 8. La hirarchie polynomiale

8-T

Lemme

Soit t (n) n 2 et s (n) deux fonctions constructibles en temps. Alors


p

TISP(t (n), s(n)) NTIME(

t (n)s(n))NTIME(n)[1] ,

o le [1] signifie quun seul appel loracle est effectu sur chaque chemin de calcul.
Dmonstration Soit L un langage de TISP(t (n), s(n)) reconnu par une machine dterministe M fonctionnant en temps O(t (n)) et en espace O(s (n)). Sur une entre x , le
calcul M (x) passe par O(t (n)) configurations C0 , C1 , . . . , Ck , et chacune dentre elles
peut tre dcrite par un mot de taille O(s(n)) puisque lespace utilis par la machine
est O(s (n)).
p
Voici maintenant comment reconnatre L dans NTIME( t (n)s (n))NTIME(n) (se reporter
la figure 8.3) :
p

deviner O( t (n)/s (n)) configurations C1 , . . . , C m , et une configuration finale C f ;


grce loracle NTIME(n), vrifier que pourptout i , le calcul d
terministe M (x) passe bien de Ci Ci+1
en t (n)s(n) tapes, et

de mme de C0 C1 et de C m C f ;
accepter ssi C f est une configuration acceptante.

configurations devines

C1

C0
p

t (n)s (n)

C2
p

C m

...

C f

Calcul M (x)
t (n)s (n)

tapes simules

Figure 8.3 Acclration du calcul en devinant m = O( t (n)/s (n)) configurations Ci


rgulirement espaces dans le calcul M (x).

Loracle est ici utilis comme un quantificateur universel permettant de tester la condition sur tous les i . On remarque que sur chaque chemin, loracle est appel une seule

8.4. Borne infrieure sur le temps et lespace conjugus pour NTIME(n)

209

fois. Lexistence dun chemin acceptant dans cette procdure garantit que M (x) passe
par les configurations Ci pour finalement accepter. Rciproquement, si M (x) accepte
alors cette procdure non dterministe possde un chemin acceptant puisquil suffit
de deviner les bonnes configurations Ci . Ainsi, cette procdure reconnat le langage
L.
p
Puisque chacune des O( t (n)/s (n)) configurations p
devines a une taille O(s (n)), la
premire tape prend un temps non dterministe O( t (n)s (n)). Quant
la seconde
p
2
tape, puisque t (n) n la question pose loracle a une taille O( t (n)s (n)) (on
fournit x et la description de toutes les configurations Ci ) et pour chaque i fix, il
p
suffit de vrifier quun calcul de longueur t (n)s (n) va de Ci Ci+1 , ce qui prend
p
O( t (n)s(n)) tapes soit, en fonction de la taille de lentre, un temps linaire. Le
test universel pour toutpi effectu par loracle se fait donc dans coNTIME(n), on en

conclut que L NTIME( t (n)s (n))NTIME(n)[1] .

8-U Remarque Dans la preuve prcdente, on remarquera que loracle utilise en


fait seulement O(log(t (n)/s (n))) bits non
p dterministes puisquil suffit de vrifier une
condition pour chaque i de 1 m =p
O( t (n)/s (n)). Mais il lui faut un temps de calcul
(dterministe) linaire pour simuler t (n)s (n) tapes de M (x).

Nous pouvons maintenant montrer le thorme.


Dmonstration du thorme 8-S Supposons que NTIME(n) TISP(n , n ). On pose
> 1 une constante telle que > 2 et soit L NTIME(n ). Nous allons obtenir une
contradiction en montrant que L NTIME(n ) pour un certain < , ce qui viole le
thorme de hirarchie en temps non dterministe 2-AI.
En utilisant une technique de padding similaire la preuve du thorme 4-AZ, lhypothse NTIME(n) TISP(n , n ) implique
NTIME(n ) TISP(n log n, n ).

Dmonstration Pour un langage A NTIME(n ), on considre le langage

dlay A = {(x, 1|x| ) | x A} : alors A NTIME(n) donc par hypothse


il existe une machine dterministe M fonctionnant en temps O(n ) et en
espace O(n ) pour A.
On construit alors une machine dterministe M pour A comme suit : M (x)

simule M (x, 1|x| ) sans crire 1|x| mais en maintenant un compteur binaire
c pour connatre la position de la tte sur le ruban de lecture de M . Le compteur c permet ainsi de savoir quelle lettre est lue en entre. La simulation
dune tape de M ncessite de mettre jour le compteur c , ce qui prend un
temps O(log n), donc M fonctionne en temps O(n log n) ; lespace utilis
est quant lui O(log n) + O(n ) = O(n ).

On en dduit que L TISP(n log n, n ).

210

Chapitre 8. La hirarchie polynomiale

Puisquon a trivialement linclusion TISP(n , n ) DTIME(n ), en particulier lhypothse implique que NTIME(n) DTIME(n ), donc par le lemme 8-T (que lon peut
appliquer car > 2)
TISP(n log n, n ) NTIME(n (+)/2 log n)DTIME(n

)[1]

Mais on peut directement simuler loracle DTIME(n ) lorsquon lui pose lunique question : puisque celle-ci est de taille O(n (+)/2 log n), et que 1, on obtient alors
que
NTIME(n (+)/2 log n)DTIME(n

)[1]

NTIME((n (+)/2 log n) ).

On en dduit que
TISP(n log n, n ) NTIME(n (+)/2 (log n) ).

Ainsi, L NTIME(n (+)/2 (log n) ).


Puisque L tait un langage quelconque de NTIME(n ), on en dduit que
NTIME(n ) NTIME(n (+)/2 (log n) ),

une contradiction avec le thorme de hirarchie non dterministe en temps 2-AI si

( + )/2 < 1.

8-V Remarque Avec un peu plus de travail, cette borne infrieure sapplique au
problme SAT directement (qui est un cas particulier de problme NTIME(n)), cest--dire
SAT TISP(n , n ) si ( + ) < 2. En effet, on peut montrer une version du thorme
de Cook-Levin 3-V o la rduction SAT est si facile calculer que SAT TISP(n , n )
implique NTIME(n) TISP(n + , n + ) pour tout .

Comptage
Jusqu prsent, nous nous sommes surtout intresss aux problmes de dcision, cest-dire ceux qui appellent une rponse oui ou non . Mais on peut galement vouloir
calculer des fonctions f : . En particulier, plutt que de dcider comme dans NP
sil existe une solution un problme, on peut vouloir compter le nombre de solutions.
De l vient la dfinition de la classe de comptage P ( dise-p en franais, sharp-pi
en anglais).
Cette classe et ses variantes ont plusieurs intrts en complexit. Dabord ce sont des gnralisations naturelles de classes vues jusqu prsent, et notamment nous verrons que la
dfinition de la classe PP (une de ses variantes) dcoule naturellement de celles des classes
probabilistes. Par ailleurs, de nombreux problmes intressants sont complets pour ces
classes, et cest probablement la compltude du permanent pour P qui assoit la lgitimit
de la dfinition : ce polynme joue en effet un rle central en complexit (boolenne et
algbrique), en thorie des graphes, en physique thorique, etc.
Enfin, si premire vue compter le nombre de solutions dun problme peut sembler
de difficult comparable dcider lexistence dune solution, nous verrons quil nen est
rien : le comptage apporte une puissance surprenante et compter le nombre de solutions
semble beaucoup plus difficile que dcider sil en existe une. Le thorme 9-AI de Toda
nous donne en effet une ide de la puissance quapporte le comptage : elle dpasse celle
de toute la hirarchie polynomiale.

9.1

Dfinitions

Dans cette premire partie nous verrons les dfinitions de base des classes de comptage.
Le terme comptage laisse penser des fonctions dont la valeur compte le nombre
de solutions dun problme. En effet, certaines des classes importantes sont des classes

212

Chapitre 9. Comptage

de fonctions. Mais plus gnralement, on considre aussi des classes de langages lorsque
celles-ci partagent certaines caractristiques avec la classe de fonctions P que lon va voir
en premier.

9.1.1

Classes de fonctions

La classe P a t introduite par Valiant [Val79b].


9-A

Dfinition (P)

La classe P est une classe de fonctions valeurs entires f : N, o est un alphabet


fini quelconque.
Une fonction f : N est dans P sil existe un langage A P et un polynme p(n) tels
que pour tout x ,
f (x) = |{y p(|x|) | (x, y) A}|.

En dautres termes, f (x) compte le nombre de mots y satisfaisant (x, y) A.


9-B Remarque Par dfinition, si f P et x , alors 0 f (x) || p(|x|) pour le
polynme p(n) de la dfinition. Ainsi, le nombre de chiffres de f (x) est polynomial.
Une autre caractrisation (souvent donne comme dfinition) est la suivante.
9-C

Proposition

Une fonction f est dans P si et seulement sil existe une machine de Turing non dterministe N fonctionnant en temps polynomial telle que pour tout x , f (x) est le nombre
de chemins acceptants de N (x).
Ide de la dmonstration Le langage A de la dfinition correspond simplement aux

couples (x, y) tels que y dsigne un chemin acceptant dans le calcul N (x).

. 9-D

Exercice
Montrer la proposition prcdente.

Il est facile de voir que lensemble des fonctions f : N calculables en temps polynomial (cest--dire que le nombre f (x) en binaire est calculable en temps polynomial
partir de x ), not FP, est contenu dans P.

9.1. Dfinitions
9-E

213

Proposition

Si f : N est calculable en temps polynomial, alors f P.


Dmonstration Puisque f est calculable en temps polynomial, le nombre de chiffres de
f (x) est polynomial en |x|. Il existe donc un polynme p(n) tel que f (x) < || p(|x|) .
On dfinit A = {(x, y) | y < f (x)} sur lalphabet , o y est considr comme le code
dun entier en base ||. Alors A P et f (x) = |{y p(|x|) | (x, y) A}|, ce qui montre

que f P.

Les fonctions de P ne prennent que des valeurs positives. On dfinit alors une autre classe
appele GapP autorisant les valeurs ngatives.
9-F

Dfinition

La classe GapP est lensemble des fonctions g : Z telles quil existe deux fonctions
f , f P satisfaisant pour tout x ,
g (x) = f (x) f (x).

En dautres termes, GapP est la clture de P par soustraction.


Une nouvelle fois, on peut caractriser GapP en termes de nombre de chemins dun calcul
non dterministe.
9-G

Proposition

Une fonction g : Z est dans GapP si et seulement sil existe une machine de Turing
non dterministe N fonctionnant en temps polynomial telle que pour tout x ,
g (x) = acc(N (x)) rej(N (x)),

o acc(N (x)) (respectivement rej(N (x))) dsigne le nombre de chemins acceptants (resp.
rejetant) de N (x).
Ide de la dmonstration Pour toute machine non dterministe N , on note N la machine fonctionnant comme N mais, lorsque N arrive dans un tat rejetant, N cre
exactement un chemin acceptant et un chemin rejetant. Une telle machine vrifie
acc(N (x)) = acc(N (x)) rej(N (x)).

Soit g = f f GapP et soit N et N les machines non dterministes dont f et f


comptent les chemins acceptants (proposition 9-C).
On construit la machine non dterministe N g suivante sur lentre x :

214

Chapitre 9. Comptage
deviner b {0, 1} ;
si b = 0, simuler N (x) ;
si b = 1, simuler N (x) en inversant les tats acceptant et rejetant.

On a alors
acc(N g (x)) rej(N g (x)) =

acc(N (x)) + rej(N (x)) rej(N (x)) + acc(N (x))

= acc(N (x)) rej(N (x)) acc(N (x)) rej(N (x))


= acc(N (x)) acc(N (x)) = f (x) f (x) = g (x).

Rciproquement, si g (x) = acc(N (x)) rej(N (x)) il suffit de dfinir deux fonctions
f (x) = acc(N (x)) et f (x) = rej(N (x)) : alors f , f P (cf. proposition 9-C) et on a

g = f f .

. 9-H

Exercice
Donner les dtails de la dmonstration de la proposition prcdente.

. 9-I

Exercice
Soit g GapP. Montrer quil existe f P et f FP (fonction calculable en temps
polynomial) telles que g = f f .

9.1.2

Classes de langages

Les classes que nous allons voir maintenant contiennent des problmes de dcision et non
plus des fonctions. Elles font tout de mme partie de ce quon appelle les classes de
comptage par analogie avec les classes vues ci-dessus.
Dans la premire, on cherche en quelque sorte savoir si le bit de poids fort dune fonction
P est 0 ou 1, ou encore si une majorit de certificats sont valides. Il serait donc lgitime
de lappeler Majorit-P mais son nom PP, qui vient de Probabilistic Polynomial time, a
t propos avant celui des classes probabilistes du chapitre 6. Cette classe a t introduite
par Gill [Gil77].

9.1. Dfinitions
9-J

215

Dfinition

La classe PP est lensemble des langages A tels quil existe B P et un polynme p(n)
satisfaisant pour tout x :
1
x A |{y p(|x|) | (x, y) B}| || p(|x|) .
2

En dautres termes, la majorit des mots y p(|x|) doit satisfaire (x, y) B . On peut donc
rcrire la dfinition sous la forme
Pr

y p(|x|)

. 9-K


(x, y) B 1/2.

Exercice
Montrer qu nouveau, il existe une caractrisation de PP en termes de calculs acceptants dune machine N non dterministe polynomiale : x A ssi au moins la
moiti des chemins de N (x) sont acceptants.

On peut galement faire le lien avec la classe GapP vue ci-dessus.


9-L

Proposition

Un langage A est dans PP si et seulement sil existe une fonction g GapP telle que pour
tout x ,
x A g (x) 0.

Dmonstration Dans le sens , soit B P le langage et p(n) le polynme pour A dans


la dfinition de PP. Soit f P la fonction f (x) = |{y p(|x|) | (x, y) B}|, et soit
f (x) = (1/2)|| p(|x|) , fonction elle aussi dans P puisque
f (x) = |{y p(|x|) | y < (1/2)|| p(|x|) }|

o y reprsente un nombre crit en base ||. Alors la fonction g = f f est dans


GapP et satisfait x A ssi g (x) 0.
Rciproquement, on sait grce la caractrisation de la proposition 9-G que
g (x) = acc(N (x)) rej(N (x))

pour une machine non dterministe N fonctionnant en temps polynomial p(n). Sans
perte de gnralit, on suppose que tout y p(|x|) dsigne un chemin valide de N (x),
qui est soit acceptant soit rejetant. Soit
B = {(x, y) | y est un chemin acceptant de N (x)} P.

216

Chapitre 9. Comptage

Alors x A ssi acc(N (x)) rej(N (x)) ssi (x, y) B pour au moins la moiti des mots

y , ce qui est la dfinition de A PP.

9-M Remarque En particulier, pour remplacer le seuil (1/2)|| p(n) de la dfinition


de PP, toute fonction f (n) calculable en temps polynomial convient (on a vu un rsultat
similaire pour GapP lexercice 9-I).
Pour lexercice suivant et au thorme 9-AI, on utilisera P en oracle. Disposer dune
fonction f : N en oracle signifie quau moment dune requte u , le contenu du
ruban doracle passe en temps unitaire f (u) crit en binaire. Et comme dhabitude,
PP = f P P f .

. 9-N

Exercice
Montrer que PPP = PP = PGapP .

Dans le mme esprit que P, on trouve galement des classes de comptage modulo ,
cest--dire o le nombre de solutions est compt modulo un entier k .
9-O

Dfinition

Soit k 2 un entier. La classe Modk P est lensemble des langages A tels quil existe B P
et un polynme p(n) vrifiant pour tout x :
x A |{y p(|x|) | (x, y) B}| 0 mod k.

Lorsque k = 2, la classe Mod2 P est aussi appele P ( parit-p ).


De manire quivalente, il existe une fonction f P, f : N, telle que
x A f (x) 0 mod k.

Comme on le verra ci-dessous (proposition 9-AE), si k est un nombre premier alors dans
la condition on peut remplacer 0 mod k par 0 mod k .

9.2

Premiers rsultats de compltude

Lun des rsultats de compltude les plus importants et les plus intressants pour les classes
de comptage est la compltude du permanent pour P que nous verrons la fin du chapitre. En attendant, nous allons voir des rsultats plus simples. Mais nous devons dabord
dfinir une notion de rduction entre fonctions.

9.2. Premiers rsultats de compltude

9.2.1

217

Rductions pour les classes de fonctions

Les rductions vues jusqu prsent (many-one et Turing) nont de sens que pour les
langages. Dans une rduction many-one e de A B , on transforme lentre x de A afin
dobtenir la mme rponse avec B , cest--dire que la transforme e(x) satisfait
x A e(x) B.

Une manire naturelle dtendre cette notion aux fonctions est donc de transformer lentre x afin dobtenir le mme rsultat avec les deux fonctions, comme suit.
9-P

Dfinition (rduction parcimonieuse)

Soit f , g : Z deux fonctions. On dit que f se rduit g par une rduction parcimonieuse, et on note f pparci g , sil existe une fonction e : calculable en temps
polynomial telle que
pour tout x , f (x) = g (e(x)).
Bien quimportante, cette rduction savre parfois trop faible et la notion plus gnrale
de rduction de comptage autorise galement un calcul sur la sortie de g (e(x)).
9-Q

Dfinition (rduction de comptage entre fonctions)

Soit f , g : Z deux fonctions. On dit que f se rduit g par une rduction de


comptage en temps polynomial, et on note f pc g , sil existe deux fonctions e, s :
calculables en temps polynomial telles que
pour tout x ,

f (x) = s(x, g (e(x))).

9-R Remarque La fonction de sortie s fait que cette rduction de comptage est
lanalogue dune rduction Turing o un seul appel loracle serait permis.
On remarquera que cette notion de rduction reste bien sr transitive. Cest cette rduction qui sert dfinir la P-compltude.
9-S

Dfinition (P-compltude)

Une fonction f : N est P-complte si


f P ;
pour tout g P, g pc f .

218

Chapitre 9. Comptage

Malgr cette dfinition gnrale, il nen reste pas moins que la rduction dans les rsultats
de P-compltude est souvent parcimonieuse, avec le permanent faisant figure dexception
notoire.

9.2.2

Compltude pour P

Soit 3SAT le problme de compter le nombre de solutions dune formule en 3-CNF,


cest--dire la fonction f : {0, 1} N telle que pour toute formule (x1 , . . . , xn ) en 3CNF code sur lalphabet {0, 1}, f () est le nombre daffectations satisfaisant .
9-T

Proposition

La fonction 3SAT est P-complte (et mme pour les rductions parcimonieuses).
Dmonstration Tout dabord, 3SAT P car il suffit de considrer le langage
A = {(, y) | (y) = 1},

o y = (y1 , . . . , yn ) {0, 1}n encode une affectation des variables de la formule : on


a alors A P et 3SAT() = |{y {0, 1}n | (, y) A}|.
Pour la P-difficult, la proposition 3-Z de NP-compltude de 3SAT et le thorme de
Cook-Levin 3-V montrent que toute machine non dterministe N (x) fonctionnant
en temps polynomial est simule par une instance (N ,x) de 3SAT dont le nombre
de solutions correspond au nombre de chemins acceptants de N (x). Cette rduction
eN : x 7 (N ,x) donne alors une rduction parcimonieuse de toute fonction P 3SAT :
en effet, si f P compte le nombre de chemins acceptants dune machine N , alors

pour tout x , f (x) = 3SAT(eN (x)).

Maintenant que lon a notre premier problme P-complet, pour montrer un autre rsultat de P-compltude, il suffit de montrer une rduction partir de 3SAT.
On peut dfinir de la mme faon la fonction de comptage associe au problme CLIQUE :
le problme CLIQUE consiste compter sur lentre (G, k) le nombre de cliques de taille
k dans le graphe G .
9-U

Proposition

Le problme CLIQUE est P-complet.


Dmonstration Tout dabord, CLIQUE P car il suffit de considrer le langage
A = {(G, k, y) | y est une clique de taille k},

o y encode un ensemble de k sommets de G : on a alors A P et


CLIQUE(G, k) = |{y | (G, k, y) A}|.

9.2. Premiers rsultats de compltude

219

Pour la P-difficult nous allons suivre la preuve de NP-compltude de CLIQUE. En


composant la rduction de 3SAT ENSEMBLE INDPENDANT (proposition 3-AE) et
celle de ENSEMBLE INDPENDANT CLIQUE (exemple 3-I), on obtient une rduction e
qui une instance de 3SAT associe un graphe et un entier, e() = (G, k) : on vrifie
aisment que le nombre de solutions de est gal au nombre de cliques de taille k
de G . On obtient ainsi une rduction parcimonieuse e de 3SAT CLIQUE, cest-dire que 3SAT() = CLIQUE(e()). Cela montre que CLIQUE est P-difficile puisque

3SAT lest.

On pourrait dfinir de mme les versions de comptage de nombreux problmes NPcomplets naturels et montrer quelles deviennent P-compltes (la plupart du temps grce
des rductions parcimonieuses issues des rductions de NP-compltude). Il est en effet
rare que la rduction perde linformation du nombre de solutions.

. 9-V

Exercice
Soit SOMME PARTIELLE le problme de comptage associ SOMME PARTIELLE vu
lexemple 2-AM, cest--dire compter le nombre densembles dont la somme donne
la valeur cible.
Montrer que SOMME PARTIELLE est P-complet.
Indication : transformer la rduction de NP-compltude de la proposition 3-AH en une
rduction parcimonieuse.

9.2.3

Compltude pour les autres classes

Lesprit de la classe PP est de dcider si la majorit des candidats sont des solutions. Il
nest donc gure surprenant que le problme MajSAT dfini ci-aprs soit PP-complet :
entre : une formule boolenne sans quantificateur (x1 , . . . , xn ) ;
question : (a1 , . . . , an ) est-elle vraie pour au moins la moiti des affectations des
variables par toutes les valeurs possibles (a1 , . . . , an ) {0, 1}n ?
9-W

Proposition

Le problme MajSAT est PP-complet.


Ide de la dmonstration MajSAT est dans PP puisquil suffit de dcider si
|{a {0, 1}n | (a) = 1}| 2n1 .

Pour montrer la compltude, soit A PP : par dfinition, il existe une fonction


P f : N telle que x A ssi f (x) (1/2)|| p(|x|) pour un certain polynme
p(n). Le rsultat de P-compltude de 3SAT (proposition 9-T) montre quon peut

220

Chapitre 9. Comptage

construire une formule boolenne x m variables dont le nombre de solutions x


est gal f (x). On cherche donc modifier x en une formule x de sorte que
x (1/2)|| p(|x|) ssi au moins la moiti des affectations satisfont x . On dfinit
alors x comme suit, o y = (y1 , . . . , y m ) sont les variables de x vues comme un
entier cod en binaire variant entre 0 et 2 m 1, et z est une nouvelle variable :
x (y, z) (z x (y)) (z y (1/2)|| p(|x|) ).

La condition y (1/2)|| p(|x|) sexprime facilement par une formule de taille polynomiale (exercice 9-X). Le nombre de solutions de x est x + (2 m (1/2)|| p(|x|) )
et la formule possde m + 1 variables. Ainsi, x MajSAT ssi
x + (2 m (1/2)|| p(|x|) ) 2 m ,

soit

x (1/2)|| p(|x|) ,

donc x A ssi x MajSAT, ce qui prouve la rduction de A MajSAT.

. 9-X

Exercice
Soit x, y des mots de taille n reprsentant deux entiers de [0, 2n 1] cods en binaire.
Exprimer x y par une formule boolenne de taille polynomiale en n .

9-Y Remarque On ne sait pas si la variante Maj3SAT de MajSAT o linstance est une
formule en 3-CNF, est PP-complte. Lcueil dans la preuve prcdente est notamment
lexercice 9-X o il faudrait une formule en 3-CNF.
De mme, les variantes de comptage modulo k de SAT (et cette fois de 3SAT galement)
sont Modk P-compltes : on appelle Modk 3SAT le problme suivant
entre : une formule boolenne sans quantificateur (x1 , . . . , xn ) en 3-CNF ;
question : le nombre m daffectations a1 , . . . , an {0, 1} rendant vraie vrifie-t-il
m 0 mod k ?
9-Z

Proposition

Pour tout entier k 2, le problme Modk 3SAT est Modk P-complet.

. 9-AA

Exercice

Montrer la proposition prcdente.


On notera en particulier 3SAT le problme P-complet Mod2 3SAT.

9.3. Proprits de clture

9.3

221

Proprits de clture

Aprs des proprits de clture de base des classes de comptage, nous allons aussi voir que
PP est clos par intersection et union (ce qui est moins facile).

9.3.1
9-AB

Proprits de base

Proposition

La classe P est close par opration polynomiale coefficients positifs.


Plus prcisment, si f P et p(n) est un polynme coefficients entiers positifs, alors
g : x 7 p( f (x)) est une fonction de P.
Dmonstration Il suffit de montrer que la classe P est close par addition et multiplication puisque p( f (x)) nest autre que la composition dun nombre constant dadditions
et de multiplications en partant de f (x) et de 1 (fonction constante gale 1, qui est
bien sr dans P).
Si f (x) = |{y | (x, y) A}| et g (x) = |{y | (x, y) B}| sont des fonctions P (et A, B P),
alors
( f + g )(x) = |{y b | ((x, y) A b = 0) ((x, y) B b = 1)}| o b est un bit,

et

( f g )(x) = |{yy | (x, y) A (x, y ) B}|.

Puisque ces conditions sont calculables en temps polynomial, il rsulte que ( f + g ) P

et f g P.

On en dduit un rsultat similaire concernant GapP, et une proprit de clture de Modk P


lorsque k est premier.
9-AC

Corollaire

La classe GapP est close par opration polynomiale coefficients entiers relatifs.
Plus prcisment, si f GapP et p(n) est un polynme coefficients dans Z, alors g :
x 7 p( f (x)) est une fonction de GapP.

. 9-AD

Exercice

Montrer le corollaire prcdent.

222
9-AE

Chapitre 9. Comptage
Proposition

Si k est un nombre premier, alors Modk P est clos par complmentaire.


Dmonstration Soit A Modk P, cest--dire que
x A f (x) 0 mod k,

o f P. On a alors

x c A f (x) 0 mod k,

et il sagit donc de montrer quil existe une fonction g de P telle que [ f (x) 0 mod k
ssi g (x) 0 mod k ]. On pourra ainsi dfinir c A par g (x) 0 mod k , ce qui est une
dfinition Modk P.
En utilisant une interpolation de Lagrange (extrmement simple dans notre cas), nous
allons dfinir un polynme de degr k 1 sur Z/kZ tel que

p(0) = 1
p(i ) = 0 pour i = 0

(i Z/kZ).

Puisque k est premier, Z/kZ est un corps donc tout lment non nul est inversible. Il
suffit alors de dfinir

j 1 (n j ) :

p(n) =

0< j <k

ainsi, comme voulu, p(0) = j =0 j


j =0 j = 1, et p(n) = 0 si n = 0. En particulier,
p( f (x)) 1 mod k si f (x) 0 mod k et p( f (x)) 0 mod k si f (x) 0 mod k .
Si on voit p comme un polynme coefficients dans N (et mme dans {0, . . . , k 1}),
alors g = p( f ) : x 7 p( f (x)) est une fonction P par la proposition 9-AB, qui vrifie
x c A f (x) 0 mod k g (x) 0 mod k.

Donc c A Modk P.
Enfin, la clture de PP par complmentaire est facile voir.
9-AF

Proposition

La classe PP est close par complmentaire.


Dmonstration Soit A PP dfini par
x A g (x) 0,

o g GapP. Alors h = ( g + 1) GapP et


x c A g (x) < 0 h(x) 0,

ce qui montre que c A PP daprs la proposition 9-L.

Nous allons maintenant voir la clture de PP par union ou intersection (lune dcoule de
lautre par la proposition prcdente puisque A B = c (c A c B)), mais cela requiert un
peu plus de travail.

9.3. Proprits de clture

223

9.3.2

PP est clos par union

Le rsultat suivant est d Beigel, Reingold et Spielman [BRS95].


9-AG

Proposition (Beigel, Reingold et Spielman, 1995)

La classe PP est close par union.


Ide de la dmonstration Lappartenance un problme PP sexprime comme un test
de positivit dune fonction GapP : pour deux langages A, B PP il existe donc deux
fonctions GapP a et b telles que a(x) 0 ssi x A (resp. b (x) 0 ssi x B ). Tout en
restant dans GapP, pour dcider lappartenance A B il sagit donc de construire un
test de positivit h(a, b ) vrifiant h(a, b ) 0 ssi a 0 ou b 0.
Lide est alors de dfinir une fraction rationnelle s (x) qui approxime le signe, cest-dire qui est proche de 0 lorsque x < 0 et qui est proche de 1 lorsque x > 0. Alors
h(a, b ) = s (a) + s (b ) 1/2 est le test recherch puisquil est positif exactement lorsque
a ou b est positif. Pour rester dans GapP, il suffit de le convertir en un polynme en
multipliant par un dnominateur commun.
Dmonstration Soit A et B deux langages de PP dfinis par x A a(x) 0 et
x B b (x) 0, o a et b sont deux fonctions GapP (cf. proposition 9-L).
Afin dviter les cas dannulation par la suite, on effectue le changement dchelle
a 7 8a + 5 et b 7 8b + 5, si bien que lon suppose que a(x) et b (x) sont impairs et de
valeur absolue 3. Enfin, on note m(n) un polynme vrifiant |a(x)|, |b (x)| 2 m(|x|) .
Pour le raisonnement, on fixe n = |x| et on notera plus simplement m la place de
m(n).
Soit P (t ) le polynme suivant dfini sur Z :
P (t ) =

(2i + t )2 .

i=0

Sur Z, ce polynme prend des valeurs entires positives et ne sannule pas si t est
impair et de valeur absolue 3, ce que lon supposera par la suite.
Nous allons montrer que
P (t )
> 9 si t [3, 2 m ] est impair.
P (t )

Dmonstration Il sagit de montrer que


m

i =0

(2i + t )2 > 9

(2i t )2

i =0

o 3 t < 2 m . Si j dsigne lentier tel que 2 j < t 2 j +1 , alors 2t 4.2 j et


donc 2 j + t 3(t 2 j ).
Puisque (2 j + t )2 9(2 j t )2 et que les autres termes vrifient (2i + t )2 >
(2i t )2 , lingalit est montre.

224

Chapitre 9. Comptage

On en dduit galement que P (t )/P (t ) < 1/9 si t [2 m , 3] est impair, puisque


P (t )/P (t ) > 9.
Ces deux proprits impliquent que
[a > 0 b > 0]

P (a)
P (b )
+
1 0,
P (a) P (b )

puisque pour que lexpression soit positive, les deux fractions ne peuvent pas tre
simultanment < 1/9. En dautres termes,
[a > 0 b > 0] P (a)P (b ) + P (a)P (b ) P (a)P (b ) 0.

Si on note f : Z la fonction suivante :


f (x) = P (a(x))P (b (x)) + P (a(x))P (b (x)) P (a(x))P (b (x)),

nous avons donc montr que x A B ssi (a(x) 0) (b (x) 0) ssi f (x) 0.
Il reste montrer que f GapP. Pour calculer f (x), il sagit deffectuer un nombre
polynomial de produits et sommes partir de a(x) et b (x).
Si a(x) = acc(N (x)) rej(N (x)), o N est une machine non dterministe fonctionnant en temps polynomial, alors pour 0 i m on note Ni la machine suivante sur
lentre x :
deviner b {0, 1} ;
si b = 0, excuter N (x) ;
si b = 1, crer 2i chemins acceptants.
La machine Ni vrifie alors acc(Ni (x)) rej(Ni (x)) = a(x) + 2i .
On peut alors dfinir unemachine N m dont la diffrence des nombres de chemins
m
acceptant et rejetant sera i=0
(a(x) + 2i ) : N m (x) fonctionne comme suit
Pour i de 0 m faire

excuter Ni (x) ;

accepter ssi le nombre de machines Ni ayant rejet est pair.


Lide est que les chemins rejetant contribuent avec un signe moins au rsultat, cest
pourquoi on soccupe seulement de leur parit. On montre par rcurrence sur m que
acc(N m (x)) rej(N m (x)) =

(a(x) + 2i ).
i =0

9.3. Proprits de clture

225

Dmonstration Pour m = 0 le rsultat est clair puisque seule N0 (x) est


excute et on accepte ssi N0 (x) na pas rejet : on calcule donc a(x)+20 .
m1

Pour m > 1 : par rcurrence, N m1


calcule i=0
(a(x) + 2i ). Or le

fonctionnement de N m revient excuter N m aprs N m1 et accepter ssi

(N m (x) et N m1
(x) acceptent) ou (N m (x) et N m1
(x) rejettent).

Le nombre de chemins acceptants de N m (x) est donc

acc(N m (x))acc(N m1
(x)) + rej(N m (x))rej(N m1
(x))

et de mme le nombre de chemins rejetant de N m (x) est

acc(N m (x))rej(N m1
(x)) + rej(N m (x))acc(N m1
(x)).

La diffrence des deux vaut donc

(acc(N m (x)) rej(N m (x)))(acc(N m1


(x)) rej(N m1
(x)))

cest--dire
(a(x) + 2 m )

m1

(a(x) + 2i )

i =0

par hypothse de rcurrence.

On peut bien sr faire de mme pour calculer i=0 (a(x) 2 ), i=0 (b (x) + 2i ) et
i
i =0 (b (x) 2 ) dans GapP. Il suffit enfin pour conclure dutiliser la clture de GapP
par un nombre constant doprations daddition ou multiplication (corollaire 9-AC)

pour calculer f (x) dans GapP.

Comme nous lavons dj mentionn, cela implique aussi la clture par intersection
puisque PP est clos par complmentaire.

9.3.3

P est-il clos par soustraction ?

Pour clore cette partie, il est intressant de mentionner un rsultat de Ogiwara et Hemachandra [OH93] concernant la clture ventuelle de P par soustraction. Plus prcisment, on dit que P est clos par soustraction propre si
f , g P max( f g , 0) P.

9-AH

Proposition

Si P est clos par soustraction propre, alors PH = NP (la hirarchie polynomiale seffondre
sur NP).
Ce rsultat, montrant que P nest probablement pas clos par soustraction propre, est
galement montr dans le livre [HO02] crit par les auteurs de ce rsultat.

226

9.4

Chapitre 9. Comptage

Thorme de Toda

En 1989, Toda [Tod89] montrait la surprenante puissance du comptage : le thorme de


Toda dit essentiellement que la classe de comptage P est au moins aussi puissante que
toute la hirarchie polynomiale.
On ne peut videmment pas comparer directement dune part une classe de langages (PH)
et dautre part une classe de fonctions (P) : pour contourner ce problme, on utilise P
en oracle de la classe P. Cela signifie que la machine polynomiale peut crire un mot u
sur son ruban doracle et obtenir en temps unitaire la valeur f (u), o f P.
9-AI

Thorme (Toda, 1989)


PH PP

Avant de voir en dtail la dmonstration de ce thorme, nous en esquissons les grandes


lignes. Pour tout i , il sagit de rsoudre dans PP le problme SATi qui est pi -complet
(cf. proposition 8-M), cest--dire de dcider si une formule ayant une alternance de i
quantificateurs est vraie.
Dans un premier temps, on raisonne sur une fonction boolenne : {0, 1}n {0, 1}
quelconque. En mettant des poids alatoires sur les variables x1 , . . . , xn , on montre quavec
probabilit 1/n O(1) il existe une unique solution de poids minimal x telle que (x) = 1
(thorme 9-AK). On utilise pour cela le lemme 9-AJ de Valiant et Vazirani (qui a de
nombreuses autres applications).
En exigeant non plus que la solution soit unique, mais que le nombre de solutions de poids
minimum soit impair, on peut amplifier la probabilit 1/n O(1) arbitrairement proche de
1 : essentiellement, il suffit de rpter suffisamment de fois le rsultat prcdent. Une telle
amplification nous permet alors ditrer le rsultat : si sexprime comme
= x (x),

par rcurrence on peut construire partir de (o seuls i 1 quantificateurs alternent)


une formule sans quantificateur qui, avec grande probabilit, aura un nombre impair
de solutions ssi est vraie. On applique alors le rsultat prcdent pour obtenir une
formule sans quantificateur qui, avec grande probabilit, aura un nombre impair de
solutions ssi est vraie. En dautres termes, on a rduit de manire probabiliste PH P
(lemme 9-AM).
Pour conclure, il nous faut une rduction dterministe mais plutt que P nous pouvons
utiliser P. Une transformation, grce au lemme 9-AN, de la formule obtenue permet de
se ramener des valeurs 1 ou 0 modulo 2k pour un grand k (et non plus modulo 2).
Pour k suffisamment grand, une somme sur lensemble des choix alatoires donne alors
des rsultats disjoints modulo 2k selon que est vraie ou non. Cette somme est value
grce un appel loracle P.

9.4. Thorme de Toda

227

Nous commenons donc par le lemme de Valiant et Vazirani issu de larticle [VV86].
9-AJ

Lemme (Valiant et Vazirani, 1986)

Soit E = {x1 , . . . , xn } un ensemble de n lments et une famille S1 , . . . , SN de sousensembles distincts de E . chaque lment xi on associe un poids wi {1, 2, . . . , 2n}
au hasard, indpendamment selon la distribution uniforme. Pour S E , on appelle poids
de S la somme des poids de ses lments, cest--dire
w(S) =

xi S

wi .

Alors la probabilit que, parmi la famille S1 , . . . , SN , il existe un unique ensemble Si de


poids minimal, est au moins 1/2.
Dmonstration Une fois que les poids sont fixs, on dit que x E est mauvais sil
appartient un ensemble Si de poids minimal mais pas tous. Sil existe un unique
ensemble Si de poids minimal, alors il est clair quaucun lment x E nest mauvais.
Rciproquement, sil existe au moins deux ensembles Si , S j de poids minimal, tout
lment de Si \ S j ou S j \ Si est mauvais. On a donc lquivalence : il existe un unique
ensemble Si de poids minimal ssi aucun lment x E nest mauvais.
Il suffit donc de montrer que la probabilit dexistence dun lment mauvais est majore par 1/2. Et pour cela de montrer que pour chaque xi , Pr(xi est mauvais) 1/(2n),
ce qui permet de conclure puisque par lingalit de Boole
Pr(i , xi est mauvais)

i =1

Pr(xi est mauvais) n

1
1
= .
2n 2

Considrons donc un lment xi fix et on suppose que le poids de tous les autres
lments a t dfini. On cherche savoir quelles valeurs peut prendre le poids de xi
pour rendre xi mauvais. On considre alors deux parties de la famille (Si ) :
on note M1 , . . . , M k les ensembles de la famille (Si ) de poids minimal parmi ceux
qui ne contiennent pas xi et on note leur poids m ;
parmi ceux qui contiennent xi , on note M1 , . . . , M l les ensembles de poids minimal
sans compter le poids de xi (non encore fix). On note m ce poids partiel .
Si m m alors quel que soit le poids de xi , les ensembles M j seront de poids infrieur
aux ensembles M j , donc xi ne fait pas partie dun ensemble de poids minimal et ne
sera jamais mauvais.
Si m > m , alors le seul choix possible de poids permettant de rendre xi mauvais est
wi = m m : en effet, si wi < m m alors les ensembles M j sont les ensembles
minimaux mais contiennent tous xi ; si wi > m m alors les ensembles M j sont les
ensembles minimaux mais aucun ne contient xi . Ainsi, la seule manire de rendre xi
mauvais est de choisir wi = m m , ce qui arrive avec probabilit 1/(2n) puisque les
poids prennent leurs valeurs dans {1, 2, . . . , 2n}.

228

Chapitre 9. Comptage

Au total, xi est mauvais avec probabilit 1/(2n), ce qui conclut la dmonstration.

On peut se servir de ce lemme afin de transformer avec une certaine probabilit une
formule satisfaisable en une formule ayant exactement une solution. On obtient le rsultat
suivant issu du mme article [VV86].
9-AK

Thorme (Valiant et Vazirani, 1986)

On dsigne par W = (w, w (1) , . . . , w (n) ) un (n+1)-uplet dentiers tels que w (i) {1, . . . , 2n}
et w {1, . . . , 2n 2 }.
Il existe un algorithme polynomial qui, sur lentre (1n ,W ), produit une formule boolenne W (x1 , . . . , xn ) vrifiant la proprit suivante : pour toute fonction boolenne
: {0, 1}n {0, 1},
x, (x) = 1 = Pr(il existe un unique x tel que ((x) = 1) W (x))
W

1
.
4n 2

Bien sr, si (x) = 0 pour tout x alors ((x) = 1) W na pas de solution non plus, quel
que soit W . En dautres termes, on transforme de manire uniforme une fonction boolenne en une fonction quivalente pour la satisfaisabilit mais qui, avec une probabilit
suffisante, a au plus une solution.
Ide de la dmonstration On associe le poids w (i) la variable xi . La formule W exprime le fait que la somme des poids des variables mises vrai vaut w . Par le lemme
de Valiant et Vazirani, avec probabilit 1/2 sur (w (1) , . . . , w (n) ) le poids minimal est
unique. Il suffit alors de choisir w gal ce poids minimal, ce qui se produit avec
probabilit 1/(2n 2 ).
Dmonstration Si lon considre que les variables xi valent 0 ou 1, alors la formule W
exprime le fait que
n

xi w (i) = w.

i=1

Nous allons simplement esquisser la preuve du fait que lon peut exprimer cette somme
par une formule boolenne W sans quantificateur et de taille polynomiale (en dautres
termes, que laddition itre est dans NC1 ).
Dmonstration On dispose des bits des nombres w (i) , il est donc facile
de calculer les bits de y (i) = xi w (i ) (entier qui vaut soit 0 soit w (i) ). Pour
calculer la somme des y (i) , on procde par rcurrence sur n . Si y est un
entier en binaire, on notera y j son j -me bit.
Pour n = 2, il sagit simplement dexprimer que le j -me bit de w est celui
que lon souhaite. Pour cela, il y a une retenue lorsque yk(1) = yk(2) = 1 pour
un certain k < j et que pour tout l {k, . . . , j }, y l(1) y l(2) = 1. On obtient

9.4. Thorme de Toda

229

donc la retenue au rang j par la formule suivante :

k< j

(1)

(2)

yk yk

k<l < j

(1)
(2) 
(y l y l ) .

Lexpression du j -me bit de la somme suit alors aisment et il suffit de


tester si tous les bits de w sont corrects.
Pour n > 2 : on groupe dabord les entiers y (i ) par trois. Lastuce est de
remplacer laddition des trois entiers de m bits de chaque groupe par laddition de deux entiers de m +1 bits, et ainsi se ramener laddition de 2n/3
entiers.
Pour ajouter trois entiers y, z, t de m bits, on dfinit deux entiers u, v de
m + 1 bits par y j + z j + t j = v j +1 u j (le nombre dont lcriture binaire est la
concatnation des deux bits v j +1 et u j ) : la somme des trois bits y j + z j + t j
prend une valeur parmi {0, . . . , 3} et se code donc sur deux bits. Le bit de
poids faible est stock par u la j -me position et le bit de poids fort par
v la position ( j + 1). En compltant la dfinition de u et v par u m+1 = 0
et v1 = 0, on a bien dfini deux entiers u et v tels que y + z + t = u + v .
Chaque bit de u et v sexprime comme une formule de taille constante en
fonction des bits de y , z et t .
On sest donc ramen laddition de 2n/3 nouveaux entiers, qui se fait
par induction en remplaant u et v par leur expression ci-dessus. Puisque
lexpression de chaque bit de u et v est de taille constante, on ajoute un
nombre linaire de portes la formule qui permet dadditionner ces 2n/3
termes. Au final, puisque linduction possde seulement O(log n) tapes, la
formule totale est de taille polynomiale.

On remarque que la description de W ci-dessus permet de dduire un algorithme


crivant cette formule en temps polynomial partir de W .
Revenons notre fonction (x1 , . . . , xn ). Si est satisfaisable (cest--dire x, (x) = 1),
soit s1 , . . . , sN la famille des solutions. Chaque si attribue des valeurs vrai ou faux aux
variables : pour la suite, on interprte si comme lensemble des variables mises vrai
par la solution si . Par le lemme 9-AJ, en choisissant un poids alatoire parmi {1, . . . , 2n}
pour chaque variable xi , avec probabilit 1/2 il existe une unique solution de poids
minimum wmin . On a alors une probabilit 1/(2n 2 ) de choisir w = wmin , et dans ce cas
W a une unique solution. Au total, puisque ce sont des vnements indpendants,

la probabilit que W ait une unique solution est 1/(4n 2 ).

On peut amplifier la probabilit dans lnonc prcdent en autorisant non plus une
unique solution, mais un nombre impair de solutions. On peut mme gnraliser des
formules ayant un nombre born dalternances de quantificateurs. Pour cela on a besoin
dune notation pratique sur le nombre de solutions dune formule .

230

Chapitre 9. Comptage

9-AL

Dfinition

Pour toute formule (x1 , . . . , x r ) r variables libres, on notera le nombre de


ses solutions (0 2 r ). Sil y a un doute sur les variables concernes, on les
prcisera en indice du : par exemple si a est fix, alors y ((a, y)) est le nombre
daffectations des variables y telles que (a, y) est vraie.
Pour toute formule (x1 , . . . , x r ) sur r variables, on notera (1 + ) la formule suivante sur r + 1 variables :
(1 + )(x1 , . . . , x r , y) = (y (x1 , . . . , x r )) y


xi ,
i =1

o y est une nouvelle variable. Le nombre de solutions de (1 + ) est alors celui de


plus un, cest--dire :
(1 + ) = 1 + .

Plus gnralement, si (x1 , . . . , x r ) et (y1 , . . . , y s ) sont des formules sur r et s variables respectivement avec r s , on note ( + ) la formule suivante sur r + 1
variables :
( + )(z, x1 , . . . , x r ) = (z (x1 , . . . , x r )) z (x1 , . . . , x s )


xi .

i=s+1

Le nombre de solutions de ( + ) est alors la somme de celui de et de , cest-dire :


( + ) = + .

De mme, si (x1 , . . . , x r ) et (y1 , . . . , y s ) sont des formules sur r et s variables


respectivement, on note ( ) la formule suivante sur r + s variables :
( )(x1 , . . . , x r , y1 , . . . , y s ) = (x1 , . . . , x r ) (y1 , . . . , y s ).

Le nombre de solutions de ( ) est alors le produit de celui de et de ,


cest--dire :
( ) = .

Enfin, pour une formule et un entier k , k dsignera + ( + ( + )) (k fois)


et k dsignera ( ( )) (k fois).

9-AM

Lemme

On suppose que (x) dsigne une formule de variables libres x et possdant q alternances
de quantificateurs (o q est une constante).
Il existe un algorithme polynomial qui, sur lentre (, 1 m , u) o u est un mot de taille

9.4. Thorme de Toda

231

polynomiale en || et m , produit une formule boolenne u (x, y) sans quantificateur


vrifiant la proprit suivante pour toute affectation a des variables x :

(a) vraie
(a) fausse

Pr u ( u (a, z) a un nombre impair de solutions z) 1 2m ,


Pr u ( u (a, z) a un nombre pair de solutions z) 1 2m .

=
=

En dautres termes, si lon voit (a) comme une valeur 0 ou 1,


Pr ( z ( u (a, z)) (a) mod 2) 1 2m .
u

Ide de la dmonstration En raisonnant par rcurrence sur le nombre de quantificateurs, lide est damplifier la probabilit 1/(4n 2 ) du thorme prcdent 9-AK en
requrant seulement que le nombre de solutions soit impair (et non plus gal 1).
Pour cela, comme dhabitude on rpte un nombre polynomial de fois le corollaire
prcdent et on encode le tout dans une formule boolenne.
Un peu plus prcisment, ltape dinduction revient grosso-modo traiter le cas de
base (a) = y (a, y). Or par le thorme 9-AK, il existe une formule boolenne
simple construire telle que :

y ( (a, y) (y)) impair = y (a, y),


y (a, y) = y ( (a, y) (y)) impair, avec probabilit 1/(4n 2 ).

Cette probabilit peut tre amplifie par rptition : en considrant k formules boolennes 1 , . . . , k on construit la formule (selon les notations de la dfinition 9-AL)
(a, y) = 1 +

(1 + ( (a, y) i (y))) :

i=1

on a alors y impair ssi lun des y ( i ) est impair. Donc, avec probabilit au moins
1 (1 1/(4n 2 ))k , on a y ((a, y)) impair ssi y (a, y) ssi (a) = 1. Il suffit de choisir
k polynomial suffisamment grand pour conclure.
Les dtails ci-dessous sont malheureusement obscurcis par les notations dues la gestion de la rcurrence.
Dmonstration On raisonne par rcurrence sur q . Pour q = 0, la formule na pas de
quantificateur donc il suffit de prendre u = qui vrifie que u (a) a 1 solution si
(a) est vraie, et 0 sinon.
Soit q > 0. Nous supposons tout dabord que le premier quantificateur est , cest-dire (x) = y (x, y) o y est un uple de variables. La formule (x, y) a (q 1)
alternances de quantificateurs, donc par hypothse de rcurrence, on peut construire
une formule sans quantificateur u (x, y, z), o u est un mot de taille polynomiale en
| | et m , vrifiant pour toute affectation (a, b ) de (x, y) :


Pr z u (a, b , z) (a, b ) mod 2 1 2|y|m1 .
u

232

Chapitre 9. Comptage

Puisquil y a 2|y| valeurs possibles pour b , par lingalit de Boole on en dduit que
pour tout a :


Pr b , z u (a, b , z) (a, b ) mod 2 1 2m1 .
u

Ainsi, avec probabilit 1 2m1 sur le choix de u , on a



(a) vrai y (a, y) y z u (a, y, z) impair.

Afin dliminer le quantificateur y , on va bien sr utiliser le thorme 9-AK. On note


u (x, y) la fonction boolenne suivante :


1 si z u (x, y, z) impair
0 sinon.

Par dfinition, on a donc pour tout (a, b ), z u (a, b , z) u (a, b ) mod 2 et lquivalence prcdente avec probabilit 1 2m1 sur le choix de u , se rcrit

u (x, y) =

(a) vrai y u (a, y).

(9.1)

On peut maintenant dbuter lamplification de la probabilit de succs du thorme 9AK en relchant la contrainte dunicit qui devient une contrainte de parit. Cela
va se faire grce plusieurs applications indpendantes du thorme. Si n dsigne
le nombre de variables de , on choisit un entier k polynomial en n et m tel que
(1 1/(4n 2 ))k 2m1 . On considre k uples W (i) alatoires, chacun de taille n + 1 :
le thorme 9-AK nous donne ainsi k formules W (i ) (x, y) qui vrifient chacune pour
tout a :

y u (a, y)
y u (a, y)

= PrW (i ) y ( u (a, y) W (i ) (a, y)) = 1 1/(4n 2 )


= W (i) , y ( u (a, y) W (i ) (a, y)) = 0.

Par lquivalence 9.1, avec probabilit 1 2m1 sur le choix de u , on a donc

(a) vrai
(a) faux

= PrW (i ) y ( u (a, y) W (i) (a, y)) = 1 1/(4n 2 )


= W (i) , y ( u (a, y) W (i ) (a, y)) = 0.

(9.2)

Nous souhaitons maintenant amplifier la probabilit 1/(4n 2 ) et remplacer u par u .


Remarquons que
y ( u (a, y) W (i) (a, y)) y,z u (a, y, z) W (i ) (a, y)

mod 2 :

(9.3)

en effet,

y,z u (a, y, z) W (i ) (a, y) =

y | W (i ) (a,y)

y | W (i ) (a,y)

z u (a, y, z)

u (a, y) y ( u (a, y) W (i) (a, y)) mod 2.

9.4. Thorme de Toda

233

Si u dsigne le uple (u ,W (1) , . . . ,W (k) ), on dfinit alors la formule u (x, y, z) suivante


grce aux notations de la dfinition 9-AL :


u (x, y, z) = 1 + 1 + u (x, y, z) W (1) (x, y) . . . 1 + u (x, y, z) W (k) (x, y) .

Puisque k est polynomial, cette formule a un nombre polynomial de variables, est de


taille polynomiale et son code est calculable en temps polynomial. Par lquation 9.3,
on a pour tout a :
y,z ( u (a, y, z)) 1 +

1 + y ( u (a, y) W (i ) (a, y)) mod 2

et donc
y,z ( u (a, y, z)) est impair i y ( u (a, y) W (i ) (a, y)) est impair.

Si (a) est vrai, alors lquation 9.2 et lindpendance des W (i ) nous apprennent
quavec probabilit 1 2m1 sur le choix de u ,
Pr

W (1) ,...,W (k)

i y ( u (a, y) W (i ) (a, y)) impair =

i, y ( u (a, y) W (i) (a, y)) pair


1
Pr
W (1) ,...,W (k)

1 (1/(4n 2 ))k 1 2m1 .

En revanche si (a) est faux, alors avec probabilit 1 2m1 sur le choix de u ,
Pr

W (1) ,...,W (k)

i y ( u (a, y) W (i ) (a, y)) impair = 0.

Au total, en prenant en compte les probabilits 1 2m1 sur le choix de u et sur le


choix des W (i ) (on a donc une probabilit 2m de mal choisir lun ou lautre), on a
donc montr quavec probabilit 1 2m sur le choix de u ,
(a) vrai y,z ( u (a, y, z)) impair,

ce qui conclut ce cas.


Il reste le cas o commence par le quantificateur . Dans ce cas, on raisonne sur
la formule = x (x) : par ce que lon vient de montrer, cela nous donne une
formule u . Il sagit alors simplement dinverser la parit du nombre de solutions, ce

qui se fait en remplaant u par (1 + u ).

On a ainsi rduit de manire probabiliste toute la hirarchie polynomiale P. Pour la


suite de la preuve, il nous faut une rduction dterministe, mais on a le droit P (et non
seulement P). On va donc pouvoir raisonner avec un modulo plus lev.

234
9-AN

Chapitre 9. Comptage
Lemme

Dans ce qui suit, lentier k est une puissance de 2.


Il existe un algorithme polynomial A qui prend en entre une formule boolenne (x)
sans quantificateur et un entier k en unaire, et qui renvoie une formule
(y) = A(, 1k )

vrifiant

0 mod 2 = 0 mod 2k
1 mod 2 = 1 mod 2k .

Dmonstration Selon les notations de la dfinition 9-AL, on dfinit

0 =
i +1 = 4(i )3 + 3(i )4

et on pose

pour i 0,

= log k .

Pour toutes formules et , la taille de ( + ) et de ( ) est une constante fois


celle de et . On en dduit que la taille de i est 2O(i) || : pour i = log k , la taille
de est donc polynomiale en la taille de lentre. De mme, le calcul de se fait en
temps polynomial.
Par ailleurs, on vrifie aisment que pour tout entier x ,

x 0 mod 2i
x 1 mod 2i

= 4x 3 + 3x 4 0 mod 22i ;
= 4x 3 + 3x 4 1 mod 22i .

On en dduit le rsultat pour .

On peut enfin montrer le thorme de Toda.


Ide de la dmonstration du thorme 9-AI On cherche dcider dans PP si une formule ayant une alternance de i quantificateurs est vraie. Le lemme prcdent combin au lemme 9-AM permet de calculer une formule u dont le nombre de solutions
est, avec grande probabilit sur u , soit 1 soit 0 modulo 2k selon que est vraie ou
non.
Dans P on peut faire la somme sur u de ces nombres de solutions et on obtient alors
des cas disjoints selon que est vraie ou non, ce qui permet de dcider dans PP la
vracit de .
Dmonstration du thorme 9-AI Puisque PP est clos par rduction many-one, il suffit de montrer que le problme pi -complet SATi (cf. proposition 8-M) est dans PP
pour tout i .
Soit i fix et une instance de SATi , cest--dire une formule boolenne de la forme
x1 x2 . . . Q xi (x1 , . . . , xi ).

9.5. Permanent

235

Grce au lemme 9-AM avec m = 2, on peut calculer en temps polynomial une formule
sans quantificateur u (z) telle que

vraie
fausse

=
=

Pr u ( u (z) a un nombre impair de solutions z) 3/4,


Pr u ( u (z) a un nombre pair de solutions z) 3/4.

Soit k la puissance de 2 telle que |u| + 1 k 2|u| + 1. Le lemme 9-AN produit en


temps polynomial une formule u vrifiant :
pour tout u , u est congru 0 ou 1 modulo 2k ;
si est vraie alors Pr u (u 1 mod 2k ) 3/4 ;
si est fausse alors Pr u (u 0 mod 2k ) 3/4.
En sommant sur tous les mots u possibles, on obtient donc :

si est vraie alors ( u u ) est congru modulo 2k une valeur de lintervalle


[2|u| , (3/4)2|u| ] ;

si est fausse alors ( u u ) est congru modulo 2k une valeur de lintervalle


[(1/4)2|u| , 0].
Ces deux intervalles sont disjoints modulo 2k puisque k |u| + 1. Or

u = |{(u, z) | u (z) vrai}|

et tester sur lentre (u, z) si u (z) est vrai se fait en temps polynomial. En dautres
termes,

( f : 7

u ) P.

Pour dcider si SATi , il suffit alors de demander loracle P la valeur de f () et


de tester si elle appartient lintervalle [2|u| , (3/4)2|u| ] ou [(1/4)2|u| , 0] modulo

2k .

9-AO

Remarques

Le rsultat montr est un peu plus fort quannonc car la construction ci-dessus ne
fait quun seul appel son oracle. On crit donc en gnral le thorme de Toda
sous la forme PH PP[1] pour signaler quun seul appel est effectu.
Lexercice 9-N montrant que PPP = PP implique que PH PPP galement.

9.5

Permanent

Chacun se rappelle la formule du dterminant dune matrice carre M = (xi , j )1i , j n de


taille n :
n
detn (x1,1 , . . . , x1,n , x2,1 , . . . , xn,n ) =

Sn

(1)()

i=1

xi ,(i ) ,

236

Chapitre 9. Comptage

o la somme est prise sur lensemble Sn des permutations de {1, . . . , n} (et o ()


dsigne la signature de ). Le dterminant dune matrice n n est ainsi un polynme
n 2 variables, qui correspondent aux coefficients de la matrice.
Lorsquon souhaite calculer le dterminant par une machine de Turing, il faut bien sr
coder la matrice : on supposera ses coefficients entiers et on les codera en binaire. En
utilisant une limination de Gauss, il est bien connu quon peut calculer le dterminant
en temps polynomial.
Il existe un autre polynme qui ressemble trangement au dterminant, il sagit du permanent. Le permanent dune matrice carre M = (xi, j )1i, j n de taille n est en effet dfini
ainsi :
n
pern (x1,1 , . . . , x1,n , x2,1 , . . . , xn,n ) =

Sn i=1

xi ,(i) .

La seule diffrence avec le dterminant est labsence du coefficient (1)() , cest--dire


que la signature de la permutation nintervient pas. Cest ce dtail qui donnait au
dterminant son interprtation gomtrique permettant de le calculer efficacement. Et
son absence rend le calcul du permanent singulirement plus compliqu. Cest ce que
nous allons tudier dans cette partie.
Mais dans un premier temps, nous allons voir pourquoi le permanent est un polynme
intressant et pourquoi il joue un rle important en complexit.

9.5.1

Intrts du permanent

Outre sa dfinition formelle pour une matrice quelconque, on peut galement considrer
le permanent de la matrice dadjacence dun graphe biparti. Rappelons quun graphe
biparti est un graphe non orient G = (V , E) tel quon peut partitionner lensemble V
des sommets en deux sous-ensembles V1 et V2 de sorte que toute arte de E soit entre un
sommet de V1 et un sommet de V2 . La matrice dadjacence de G est alors la matrice de
taille |V1 | |V2 | dont les lignes reprsentent les sommets de V1 et les colonnes ceux de V2 ,
et le coefficient lintersection de la ligne u V1 et de la colonne v V2 est
u,v =

1
0

si (u, v) E
sinon.

Un exemple de graphe biparti et sa matrice dadjacence est donn la figure 9.1. Le cas
qui nous intressera par la suite est celui o |V1 | = |V2 |.
Dans un graphe biparti, gnralement utilis pour reprsenter les appariements possibles
entre deux ensembles de n objets, une notion fondamentale est celle de couplage parfait,
cest--dire une manire de former des paires dobjets compatibles sans oublier dobjets.
Plus formellement, si G est un graphe biparti tel que |V1 | = |V2 | = n et E V1 V2 alors
un couplage parfait est simplement un sous-ensemble F E de n artes deux deux non
adjacentes (cest--dire n paires disjointes de sommets relis par une arte). On peut aussi
voir ce couplage parfait comme une permutation de {1, . . . , n}, envoyant les sommets
de V1 sur ceux de V2 le long des artes de G .

9.5. Permanent

237

u1

v1

u2

v2

u3

v3

u4

v4
V1

0 0 1 0
1 1 0 0

1 0 0 1
0 1 1 1

V2

Figure 9.1 Un graphe biparti (et un couplage parfait en gras), sa matrice dadjacence
et la couverture par cycles associe (en gras).

Il savre quil existe un algorithme polynomial pour dcider lexistence dun couplage parfait dans un graphe G . Si en revanche on veut compter le nombre de couplages
parfaits,
cela revient calculer le permanent de la matrice dadjacence. En effet, le terme i xi,(i)
vaut 1 si la permutation correspond un couplage parfait, et 0 sinon. Donc la valeur
du permanent
n

Sn i =1

xi,(i)

est bien gale au nombre de couplages parfaits de G . Puisque toute matrice coefficients
{0, 1} est la matrice dadjacence dun graphe biparti, caractriser la complexit du calcul
du permanent de matrices {0, 1} permet donc de connatre celle de compter les couplages
parfaits dans un graphe biparti.
Une autre faon de reprsenter un graphe biparti G pour lequel |V1 | = |V2 | = n est par
un graphe orient G n sommets, dans lequel il y a un arc de i j ssi dans G il y a une
arte entre ui et v j (cf. figure 9.1). Dans ce contexte, un couplage parfait de G , dcrit
par une permutation de {1, . . . , n} (o ui est reli v(i) ), est donn par les cycles de la
permutation et correspond donc une couverture des sommets de G par des cycles. Plus
prcisment, une couverture par cycles de G est un ensemble de cycles de G disjoints (
la fois en termes darcs et de sommets) dont la runion passe par tous les sommets de G .
Ainsi, le nombre de couplages parfaits de G est gal au nombre de couvertures par cycles
de G .
Nous voyons donc les nombreuses interprtations du permanent qui, outre les considrations de complexit que nous allons tudier, font tout son intrt.

1. Cet algorithme, dont le fonctionnement non trivial base de chemins augmentants ne nous intresse
pas ici, est d Edmonds [Edm65].

238

Chapitre 9. Comptage

9.5.2

Compltude du permanent

Nous sommes maintenant prts pour montrer que le permanent est difficile calculer.
En dautres termes, compter le nombre de couplages parfaits dun graphe biparti est difficile. Cest un exemple intressant car la plupart des problmes P-complets proviennent
de problmes de dcision eux-mmes NP-complets, alors quici le problme de dcision
associ (lexistence dun couplage parfait) est dans P : dcider lexistence dun couplage
parfait est facile tandis que compter le nombre de couplages parfaits est difficile puisque
par le thorme de Toda cest au moins aussi difficile que toute la hirarchie polynomiale.
Nous dfinissons tout dabord formellement le problme PERMANENT{0,1} :
entre : M une matrice n n coefficients dans {0, 1} ;
sortie : le permanent de M (entier compris entre 0 et n!).
Nous rappelons quil sagit ainsi dune fonction f : {0, 1} N. Plutt quune matrice,
on verra aussi lentre comme un graphe orient dont on cherche compter le nombre de
couvertures par cycles. La compltude du permanent a t montre par Valiant [Val79a].

9-AP

Thorme (Valiant, 1979)

PERMANENT{0,1} est P-complet pour les rductions de comptage pc .

Nous montrons dabord que ce problme est dans P avant de montrer sa difficult.
9-AQ

Lemme

PERMANENT{0,1} est dans P.

Dmonstration Soit A le langage suivant :


A = {(M , ) | Sn et

mi ,(i) = 1},

i=1

o M dsigne une matrice n n coefficients mi , j {0, 1} et une permutation de


{1, . . . , n}. Si lon dfinit
f (M ) = |{ | (M , ) A}|

alors f (M ) = per(M ). Puisque A P, on en dduit que PERMANENT{0,1} P.

La preuve de difficult du permanent se fait en deux tapes. Nous montrons dabord


que PERMANENTZ , le calcul du permanent de matrices coefficients entiers (et non seulement {0, 1}), est P-difficile, en rduisant 3SAT. Puis nous montrerons comment rduire
PERMANENTZ PERMANENT{0,1} .

9.5. Permanent

239

9-AR Remarque Le problme PERMANENTZ nest pas dans P car il peut prendre des
valeurs ngatives (on peut nanmoins le mettre dans GapP), cest pourquoi nous parlons
seulement de P-difficult et non de P-compltude.
Tout dabord, nous avons besoin de dfinir une version pondre des couvertures par
cycles. La matrice dadjacence contient maintenant des entiers relatifs quelconques. Un
nombre non nul w signifie que larc correspondant dans le graphe porte le
poids w . Le
poids dune couverture par cycles c est le produit des poids de ses arcs ac w(a) ; le
poids total des couvertures par cycles est la somme des poids de toutes les couvertures par
cycles :

poids totalcc =
w(a).
c

ac

Il sagit l encore de la valeur du permanent de la matrice (cf. figure 9.2). Pour la clart des
figures, les poids gaux 1 ne seront pas reprsents sur les arcs des graphes : en dautres
termes, un arc sans tiquette a pour poids 1.

0
0 3 0
1 5 0 0

4
0 0 6
0 2 1 2

3
1

4
2

Figure 9.2 La somme des poids des couvertures par cycles est gale au permanent de
la matrice.

Dans une rduction de 3SAT PERMANENTZ , le but sera donc de construire un graphe
pondr dont le poids total des couvertures par cycles sera en rapport avec le nombre de
solutions dune instance de 3SAT.
9-AS

Lemme

3SAT se rduit PERMANENTZ par une rduction de comptage pc .

Dmonstration partir dune instance de 3SAT (une formule boolenne en 3-CNF),


nous allons construire une instance G de PERMANENTZ , cest--dire un graphe orient

240

Chapitre 9. Comptage

dont les arcs sont pondrs par des entiers de Z. Sans perte de gnralit, on suppose
que chacune des clauses de a exactement trois littraux (et non seulement au
plus trois ). Si m est le nombre de clauses de , alors le poids total des couvertures
par cycles de G sera 43m (o dnote, rappelons-le, le nombre daffectations
satisfaisant ).
La construction de G requiert la dfinition dun gadget de littral et dun gadget de
clause, donns la figure 9.3. On associe chaque variable x de un gadget de littral,
dont on nommera par commodit les arcs extrieurs x et x . On associe galement
chaque clause Ci un gadget de clause. Si a n variables et m clauses, on obtient ainsi
n + m blocs indpendants (pour linstant), avec en tout 2n + 4m sommets.

Figure 9.3 Gadgets de littral et de clause.

Afin de relier entre eux ces blocs indpendants, nous dfinissons un gadget de liaison
que lon appellera ou-exclusif (ou XOR), donn la figure 9.4. Ce gadget permet
de relier des paires darcs (s, s ) et (t , t ) du graphe que lon est en train de dfinir.
Attention, ce gadget supprime les deux arcs existants (s , s ) et (t , t ) et relie les sommets
s , s , t et t par la construction indique la figure 9.4. Ainsi, certains arcs des gadgets
de littral et de clause disparatront au cours de la construction, au profit des arcs de
nombreux gadgets ou-exclusif.
Chacun des trois arcs externes dun gadget de clause reprsente un littral de la clause
correspondante. Il ne reste plus qu relier, grce au gadget de liaison XOR, chaque arc
externe des gadgets de clause au littral qui correspond dans les gadgets de littral (en
divisant larc dun littral si celui-ci est utilis plusieurs fois dans le gadget de littral).
La construction finale est illustre la figure 9.5.
Le graphe G ainsi dfini peut bien sr se construire en temps polynomial partir de .
Reste montrer que le nombre de couvertures par cycles de G est 43m , cest--dire

9.5. Permanent

241
Reprsentation graphique

t
t
Ou-exclusif des arcs (s, s ) et (t , t )
s
s

2
1

XOR

XOR
t

Figure 9.4 Gadget ou-exclusif et liaison de deux arcs par le gadget. Attention, les arcs
(s , s ) et (t , t ) de la reprsentation graphique disparaissent lorsquon les relie par le
gadget.

que chacun des 3m gadgets XOR multiplie par 4 le nombre de solutions de .


Pour cela nous avons besoin de plusieurs observations sur le gadget de clause et le
gadget XOR. Concernant le gadget de clause de la figure 9.3, on vrifiera aisment
que :
aucune couverture par cycles du gadget de clause ne passe par les trois arcs externes ;
pour tout sous-ensemble strict des trois arcs externes (y compris lensemble vide),
il existe une et une seule couverture par cycles empruntant les arcs externes du
sous-ensemble et vitant les autres.
Pour comprendre lappellation ou-exclusif du gadget de la figure 9.4, il faut imaginer un graphe H , auquel on adjoint un XOR entre deux arcs (s, s ) et (t , t ) (comme
illustr la figure 9.4) : on appelle H le graphe obtenu. On considre alors une couverture par cycles C de H :
si ni larc s s ni t t ne font partie de C , alors la seule faon dtendre C
au graphe H est dajouter C une couverture par cycles du gadget XOR (on
rappelle que les arcs s s et t t nexistent plus dans H ). Mais on vrifie que la
somme des poids des couvertures par cycles du XOR est nulle : en effet, cela

242

Chapitre 9. Comptage
= (x y z) (x y t ) (x z t )
| {z } |
{z
} |
{z
}
C1

C2

C3

C1
z
x

C2
y

y
t

C3

Figure 9.5 Construction gnrale pour la formule

(x y z) (x y t ) (x z t ). Dans les gadgets de littral, un arc est divis sil

est utilis plusieurs fois.

revient valuer le permanent de la matrice dadjacence du gadget, savoir

0
1

0
0

1 1 1
1 1
1
.
1
1
2
1
3
0

Le permanent de cette matrice est nulle, confirmant que le poids total des couvertures par cycles du XOR est nul ;
si les deux arcs s s et t t font partie de C , alors la seule faon dtendre C au
graphe H est de remplacer larc s s par sa et d s , et de remplacer larc t t par
t d et at . Pour obtenir une couverture par cycles, il faut complter la couverture
du gadget (les sommets b et c ne sont pas encore couverts) : il y a deux manires
dy parvenir, dune part en prenant la boucle sur b et celle sur c (poids de la
couverture 1), dautre part en prenant le cycle b c b (poids 1). Le poids total de
ces deux couvertures est donc nul ;

9.5. Permanent

243

si seul larc s s fait partie de C et non t t , alors la seule faon dtendre C


au graphe H est de remplacer larc s s par s a et d s , puis de couvrir le reste du
gadget en crant un chemin de a d . Pour ce faire, on peut dune part utiliser
larc ad , puis soit boucler sur b et sur c (poids 1), soit utiliser le cycle b c b (poids
1) ; on peut dautre part utiliser larc ab , puis soit b d en bouclant sur c (poids
1) soit b c et c d (poids 2) ; enfin, on peut aussi utiliser larc ac puis soit c d en
bouclant sur b (poids 2) soit c b et b d (poids 1). Au total, la somme des poids
des couvertures par cycles est 4 ;
le dernier cas est celui o seul larc t t fait partie de C et non s s . Alors la seule
faon dtendre C au graphe H est de remplacer larc t t par t d et a t , puis
de couvrir le reste du gadget en crant un chemin de d a . Pour ce faire, on peut
emprunter les arcs d b et b a et boucler sur c (poids 1), ou emprunter les arcs d c ,
c b et b a (poids 3). Au total, la somme des poids des couvertures par cycles est 4.
On comprend mieux lappellation XOR du gadget : si s s et t t sont tous deux dans
la couverture C ou en dehors delle, alors les extensions possibles de C H donnent
un poids nul, tandis que si s s C et t t C ou inversement, alors les extensions
possibles de C H donnent un poids non nul gal 4.
Revenons notre construction gnrale. Si est une affectation des variables satisfaisant , alors on construit une couverture par cycles en commenant par emprunter
les arcs des gadgets de littral correspondant (cest--dire en empruntant larc x
si x est vrai et larc x si x est faux). Pour obtenir un poids non nul, les proprits
du gadget XOR ci-dessus imposent de choisir exactement les arcs externes des gadgets
de clause qui ne sont pas relis (par XOR) aux arcs de littral choisis prcdemment.
Puisque satisfait , cela signifie quaucune clause na vu ses trois arcs externes choisis.
Par la proprit du gadget de clause ci-dessus, on peut donc complter dune unique
manire la couverture par cycles. Au total, puisquon traverse les 3m gadgets XOR
qui comptent chacun pour un poids 4, on obtient un poids 43m correspondant la
solution .
Rciproquement, si un choix darcs dans les gadgets de littral donne un poids non
nul dans une couverture par cycles, cela signifie quaucun gadget XOR na un poids
nul, donc que les arcs externes choisis dans les gadgets de clause sont exactement ceux
qui ne sont pas relis un arc de littral choisi. Aucune clause na ses trois arcs externes
choisis car sinon le poids serait nul (cf. proprit du gadget de clause ci-dessus). Donc
chaque clause est satisfaite par le choix des littraux, ce qui signifie quil sagit dune
solution de .
Au total, le poids des couvertures par cycles de G est bien 43m comme annonc.
On a donc
= s (G , PERMANENTZ (G ))

o s est la fonction qui divise par 43m (trouver lentier m ncessite de connatre G ).

Nous avons montr que 3SAT se rduit PERMANENTZ .

244

Chapitre 9. Comptage

9-AT

Lemme

PERMANENTZ se rduit PERMANENT{0,1} par une rduction de comptage pc .

Dmonstration Il sagit de transformer une instance de PERMANENTZ , cest--dire un


graphe orient G dont les arcs sont tiquets par des entiers relatifs, en une instance
de PERMANENT{0,1} , cest--dire un graphe orient H dont les arcs ne portent pas de
poids.
Les poids positifs de G ne posent pas trop de problme : comme illustr la figure 9.6,
un arc portant une puissance de 2 est remplac par une succession de triangles permettant chacun de multiplier par deux le nombre de couvertures par cycles. Un poids
positif quelconque se dcompose en une somme de puissances de 2 et on remplace
larc par un ensemble de blocs de puissances de 2 en parallle . On remarque le rle
essentiel des boucles permettant de complter les couvertures par cycles lorsquun des
2ai est choisi .

2n

ai
i=1 2

..
.

13

2a1

2a2

2a n

23

22

20

Figure 9.6 Remplacement dun arc pondr par des arcs non pondrs : poids gal
une puissance de 2, poids quelconque et exemple avec le poids 13.

9.5. Permanent

245

En revanche on ne peut pas remplacer directement les arcs de poids ngatif. Lastuce
consiste travailler modulo. Soit N un entier suffisamment grand pour que lon soit
assur que la valeur absolue du permanent de la matrice dadjacence MG de G (
coefficients dans Z) soit strictement infrieure N /2 (la raison pour laquelle on choisit
N /2 et non N vient de ce que le permanent peut tre ngatif, cf. ci-dessous). On peut
prendre par exemple (1 + 2n!m n ), o n dsigne la taille de la matrice et m la valeur
absolue maximale des coefficients de la matrice. Cet entier N a un nombre de chiffres
polynomial et est calculable en temps polynomial. On remplace alors un poids ngatif
w par N w (et on applique la transformation de la figure 9.6 pour revenir sur {0, 1}).
Au final, on a construit en temps polynomial un graphe non pondr H . Modulo N , le
permanent de sa matrice dadjacence M H est gal celui de MG , quon notera pG . Soit
pH [0, N 1] le permanent de M H modulo N . Puisque N est strictement suprieur
2| pG |, si pH N /2 alors pG = pH ; tandis que si pH > N /2 alors pG = pH N (valeur
ngative). La fonction s permettant de retrouver pG partir du permanent de M H est
donc calculable en temps polynomial : il sagit de prendre le modulo N et de renvoyer
pH ou pH N comme ci-dessus. Au final,
PERMANENTZ (MG ) = s (M H , PERMANENT{0,1} (M H ))

(il faut connatre M H pour connatre N ), ce qui montre que PERMANENTZ se rduit

PERMANENT{0,1} .

On dduit de ces trois lemmes la P-compltude de PERMANENT{0,1} , cest--dire le thorme 9-AP


9-AU Remarque Si P = NP, aucune rduction de 3SAT PERMANENT{0,1} ne peut
tre parcimonieuse. Sil existait une telle rduction parcimonieuse e , alors le nombre de
solutions dune formule serait gal au nombre de couplages parfaits de e(). Dans ce
cas, dcider si 3SAT se ferait en temps polynomial puisquil suffirait de dcider sil
existe un couplage parfait dans e(), ce qui est polynomial.

10

Protocoles interactifs
La caractrisation de la classe NP en termes de certificat peut tre rinterprte par le
mcanisme suivant : un prouveur P cherche convaincre un vrificateur V que
lentre x est dans le langage A. Pour cela, P envoie V une prtendue preuve que
x A, que V va ensuite vrifier. Si x A alors il existe un certificat que P peut envoyer
et dont V peut vrifier la correction en temps polynomial. En revanche si x A alors il
ny a pas de certificat et quel que soit le message envoy par P , il sera rejet par V . Dans
ce scnario, la preuve doit avoir une taille polynomiale, le prouveur est tout-puissant
et le vrificateur fonctionne en temps dterministe polynomial.
Cela correspond galement plus ou moins un mathmaticien donnant dans un article
sa preuve dun rsultat pour que celle-ci soit vrifie par un relecteur : la preuve peut tre
trs sophistique mais il suffit de la suivre pas pas pour la vrifier.
Cette vision des choses appelle naturellement ltude de variantes. Tout dabord sur les
capacits du vrificateur : on souhaite certes pouvoir vrifier la preuve efficacement, mais
on a vu que les algorithmes probabilistes polynomiaux peuvent tre considrs efficaces.
Une premire variante consiste donc autoriser le vrificateur tre probabiliste en lui
imposant une faible probabilit derreur.
Ensuite, si lon reprend lanalogie du mathmaticien dsirant valider sa preuve, plutt que
dcrire un article il peut aussi lexpliquer au tableau devant des tudiants ou des pairs.
Ceux-ci vont lui poser des questions pour clarifier les choses et une interaction entre le
prouveur et le vrificateur dbute alors. Cette interaction consiste en plusieurs tours au
cours desquels le vrificateur pose des questions et le prouveur fournit des rponses.
Ce cadre de rflexion sest avr particulirement instructif en complexit. De manire surprenante, Shamir a montr en 1990 que la combinaison dun vrificateur probabiliste et
dune interaction entre prouveur et vrificateur apporte une grande puissance puisquon
capture alors la classe PSPACE (thorme 10-G). Pour illustrer cela, supposons que monsieur V , par essence limit, ne parvienne pas distinguer un Romane-Conti 2005 dun
vulgaire vin de table. Monsieur P , amateur de vin, souhaite quant lui convaincre son

248

Chapitre 10. Protocoles interactifs

homologue que les deux vins sont rellement diffrents. Pour cela, ils mettent en place
le protocole suivant. Au dpart, un verre gauche contient le prcieux nectar tandis qu
droite un autre verre contient la piquette. Puis on effectue dix tours comme suit : hors de
la vue de P , V choisit au hasard de laisser les verres en place ou de les inverser ; P doit alors
goter les vins et dire lequel est le Romane-Conti. Puisquil a lui-mme invers ou non
les verres, V peut savoir si P dit vrai, et sil dit vrai dix fois de suite, alors V est convaincu
avec grande probabilit que les vins sont en effet diffrents et quil doit faire des progrs en
nologie. On note que ce protocole ne fonctionne que grce linteraction et au hasard.
ce chapitre nous allons tudier diffrentes variantes de ces protocoles interactifs, comparer les classes obtenues avec celles vues jusqu prsent, voir le rsultat de Shamir voqu ci-dessus (intressant galement car il ne se relativise pas) et montrer que le problme
disomorphisme de graphe nest probablement pas NP-complet. Nous mentionnerons galement le thorme PCP qui caractrise la classe NP en termes de protocoles interactifs et
permet de montrer des rsultats dinapproximabilit de problmes NP-complets.
La notion de protocoles interactifs et les dfinitions de ce chapitre ont t introduites par
Babai [Bab85] et par Goldwasser, Micali et Rackoff [GMR85].

10.1

Les classes IP
10.1.1

Dfinition

La premire variante que nous allons tudier sappelle simplement interactive protocols (IP).
Ce sont en gnral des protocoles dont le nombre de tours dpend de la taille de lentre.
Le vrificateur est une machine probabiliste dont les bits alatoires sont privs, cest-dire quils ne sont pas dvoils au prouveur (ils seront nots r dans la suite et considrs
comme un mot donn une fois pour toute). Aprs une srie de questions du vrificateur et
de rponses du prouveur, un mot du langage doit tre accept avec grande probabilit par
le vrificateur tandis quun mot hors du langage doit tre rejet avec grande probabilit.
La dfinition formelle est la suivante.
10-A

Dfinition

Un prouveur est une fonction P : , sans contrainte de calculabilit. Le


prouveur P produit ses rponses (des mots sur ) en fonction des questions du
vrificateur (des mots sur ) et de lentre x . Ainsi, si y1 , . . . , yk sont les k
premires questions du vrificateur, alors P (x, y1 , . . . , yk ) = zk est la k -me
rponse du prouveur.
Si x dsigne le mot dont on veut dcider lappartenance au langage, le vrificateur
est une fonction V : calculable en temps dterministe polynomial en |x|
qui produit les questions au prouveur en fonction de ses rponses prcdentes, de
lentre x et de bits alatoires. Ainsi, si z1 , . . . , zk sont les k premires rponses

10.1. Les classes IP

249

du prouveur, alors V (x, r, z1 , . . . , zk ) = yk+1 est la (k + 1)-me question du


vrificateur selon le mot alatoire r , o le temps de calcul de V est |x|O(1) quels que
soient les autres arguments (cf. remarque 10-B).
Pour allger le formalisme, on considrera la dernire question du vrificateur
comme tant sa dcision daccepter ou non le mot dentre x : 1 si x est accept, 0
sil est rejet.
Lexcution du protocole entre un prouveur P et le vrificateur V donne donc lieu
lchange des messages suivants :

y1 = V (x, r ) (premire question du vrificateur) ;

z1 = P (x, y1 ) (premire rponse du prouveur) ;

yi = V (x, r, z1 , . . . , zi 1 ) (i -me question du vrificateur) ;

zi = P (x, y1 , . . . , yi ) (i -me rponse du prouveur) ;

V (x, r, z1 , . . . , z s ) {0, 1} : dcision du vrificateur.

On dira que le nombre de tours dans ce protocole est 2s : cest le nombre de messages
changs par P et V .
Si s : N N est une fonction, IP[s(n)] est lensemble des langages L possdant un
protocole 2s (n)/2 tours, cest--dire tels quil existe un polynme p(n) et un
vrificateur V fonctionnant en temps p(|x|), satisfaisant :

x L =

il existe un prouveur P tel que

x L =

pour tout prouveur P ,

Pr r {0,1} p(|x|) (V (x, r, z1 , . . . , zs(|x|)/2 ) = 1) 2/3


Pr r {0,1} p(|x|) (V (x, r, z1 , . . . , zs(|x|)/2 ) = 1) 1/3,

o zi+1 = P (x,V (x, r ),V (x, r, z1 ), . . . ,V (x, r, z1 , . . . , zi )) est la (i + 1)-me rponse


du prouveur P .
La classe IP est dfinie par IP = kN IP[n k ], cest--dire des protocoles ayant un
nombre polynomial de tours.

10-B Remarque Dans cette dfinition il ny a pas de limitation de la taille des messages changs car celle-ci est contrainte par le temps de calcul de V , qui doit fonctionner
en temps polynomial en |x| (ne reprsentant quune partie de son entre). Il ne peut donc
ni produire ni lire des messages de taille plus que polynomiale en |x|. De mme pour le
nombre de bits alatoires qui peut tre suppos polynomial.

250

Chapitre 10. Protocoles interactifs

En dautres termes, la contrainte sur le temps de calcul de V permet de supposer sans


perte de gnralit que r , (z1 , . . . , zk ) et yk+1 sont de taille polynomiale en |x|.
En rptant le protocole un nombre polynomial de fois et en prenant la rponse majoritaire (comme la proposition 6-F), on obtient le lemme suivant.
10-C

Lemme

La classe IP est inchange si, au lieu dautoriser une erreur 1/3 dans la dfinition 10-A,
k
on limite lerreur 2n pour un k fix.
Cest--dire que si x L alors V accepte avec probabilit 1 2n et si x L alors V
k
accepte avec probabilit 2n
k

. 10-D

Exercice

Montrer le lemme prcdent.

10.1.2

Isomorphisme de graphes

Un problme bien connu est celui de lisomorphisme de graphes (ISO) :


entre : deux graphes non orients G1 = (V1 , E1 ) et G2 = (V2 , E2 ) ;
question : G1 et G2 sont-ils isomorphes ?
En dautres termes et comme illustr la figure 10.1, si V1 = V2 = {1, . . . , n}, existe-t-il
une permutation des sommets {1, . . . , n} de G1 telle que (i , j ),
(i , j ) E1 ((i ), ( j )) E2 ?

Ce problme est bien sr dans NP puisquil suffit de deviner la permutation et de vrifier


quil sagit dun isomorphisme.
Le complmentaire de ce problme, cest--dire non-isomorphisme de graphes (coISO) o
il sagit de dcider si G1 et G2 ne sont pas isomorphes, est donc dans coNP. En revanche, on
ne sait pas sil est dans NP. On peut nanmoins donner un protocole IP pour le problme
coISO dans le mme esprit que le protocole de lintroduction pour reprer la bouteille de
Romane-Conti. Ce protocole est d Goldreich, Micali et Wigderson [GMW87].

10.1. Les classes IP

251
5

Figure 10.1 Deux graphes isomorphes.

Protocole pour coISO sur lentre (G1 , G2 ) :


V Tirer au hasard i {1, 2}. Appliquer une permutation alatoire aux
sommets de Gi pour obtenir un nouveau graphe H . Envoyer H
P.
P Identifier quel graphe G j , pour j {1, 2}, a t permut pour obtenir
H . Envoyer j V .
V Accepter ssi i = j .

Analysons maintenant ce protocole.


Si (G1 , G2 ) coISO, alors les deux graphes ne sont pas isomorphes et un prouveur
est capable de dterminer lequel des deux graphes a t permut pour obtenir H . Il
peut donc donner V la bonne valeur de j , savoir i , et V accepte avec probabilit
1.
Si (G1 , G2 ) coISO, alors les deux graphes sont isomorphes et un prouveur est
incapable de dterminer lequel des deux graphes a t permut pour obtenir H ,
puisque les deux auraient pu faire laffaire. Ainsi il donne la bonne rponse pour j
avec probabilit 1/2 seulement.
Si lon souhaite rduire la probabilit derreur sous 1/3, une simple modification suffit,
puisqu linstar des classes probabilistes du chapitre 6, on peut rduire la probabilit
derreur en rptant le protocole :

Protocole avec erreur 1/4 pour coISO sur lentre (G1 , G2 ) :


V Tirer au hasard i , i {1, 2}. Appliquer une permutation alatoire aux
sommets de Gi pour obtenir un nouveau graphe H , et de Gi pour
obtenir H . Envoyer H et H P .

252

Chapitre 10. Protocoles interactifs


P Identifier quels graphes G j et G j , pour j , j {1, 2}, ont t permuts
pour obtenir H et H respectivement. Envoyer j et j V .
V Accepter ssi i = j et i = j .

Nous avons donc un protocole IP deux tours (une question de V /une rponse de P )
pour coISO, ce qui place ce problme dans la classe IP.
10-E Remarque Dans le protocole pour coISO que nous venons de voir, le vrificateur ne fait pas derreur dans le cas o lentre est dans le langage. Il sagit en ralit dun
rsultat gnral comme nous le verrons aprs la preuve de IP = PSPACE : tout langage de
IP a un protocole o le vrificateur accepte avec probabilit 1 lorsque x L.

. 10-F

Exercice

En utilisant n permutations alatoires des graphes G1 et G2 plutt que seulement


deux, montrer que lon peut diminuer la probabilit derreur 2n dans le protocole
prcdent.
Nous reverrons ce problme coISO lorsque nous aborderons les protocoles bits alatoires
publics.

10.1.3

IP = PSPACE

On pourrait a priori penser que le mcanisme de preuve de la classe IP najoute gure


de puissance par rapport une simple preuve vrifie de manire dterministe comme
pour la classe NP, puisque des indices laissent penser quun calcul probabiliste peut tre
dterminis (cf. chapitre 12). Mais en ralit la combinaison de lalatoire du vrificateur
et de linteraction entre prouveur et vrificateur (nombre polynomial de tours) apporte
une grande puissance IP, puisque IP = PSPACE. Ce rsultat de Shamir [Sha90], outre
son intrt intrinsque, est lun des rares qui ne se relativise pas, comme nous le verrons
la fin de cette section. La dmonstration que nous donnons est due Shen [She92].
10-G

Thorme (Shamir, 1990)


IP = PSPACE

De manire naturelle, nous allons scinder la preuve en deux parties, linclusion la plus

10.1. Les classes IP

253

simple IP PSPACE dabord, puis linclusion PSPACE IP o nous donnerons un protocole pour le problme PSPACE-complet QBF (cf. dfinition 4-AA et thorme 4-AC).
10-H

Lemme

IP PSPACE.

Pour montrer ce lemme, nous allons dabord voir que lon peut supposer que le prouveur
est dans PSPACE.
10-I

Lemme

Dans IP, le prouveur valide peut tre suppos dans PSPACE sans perte de gnralit.
Plus prcisment, limage de IP, soit IPPSPACE la classe des langages L tels quil existe un
prouveur P fonctionnant en espace polynomial en |x| satisfaisant :
si x L alors V accepte x avec probabilit 2/3 lors de son dialogue avec P ;
si x L alors pour tout prouveur P (sans restriction de calculabilit), V rejette x
avec probabilit 2/3 lors de son dialogue avec P .
Alors IPPSPACE = IP.
Ide de la dmonstration La difficult provient du fait que le prouveur dans IP est toutpuissant et peut donc calculer des choses qui ne sont pas calculables en espace polynomial. Mais pour chaque suite de rponses possibles, en numrant tous les bits
alatoires un prouveur peut calculer la probabilit que le vrificateur accepte, et ainsi
trouver la suite de rponses qui maximise la probabilit dacceptation. En particulier,
si x L alors cette probabilit est au moins 2/3 et V accepte.
Puisque lnumration porte sur des mots de taille polynomiale, le prouveur peut
leffectuer en espace polynomial.
Dmonstration Linclusion IPPSPACE IP est vidente : pour L IPPSPACE , si x L alors
le prouveur P permet V daccepter, donc il existe un prouveur qui convainc V ; si
x L alors aucun prouveur ne convainc V . Donc L IP.
Nous montrons maintenant lautre inclusion IP IPPSPACE . Soit L IP avec un protocole 2T = n O(1) tours. Si x L alors aucun prouveur ne convainc V , ce qui correspond aussi la dfinition de IPPSPACE . Pour le cas contraire, on dfinit un prouveur P
fonctionnant en espace polynomial qui convainc V que x L.
Nous avons dabord besoin de dfinir deux probabilits :
py1 ,z1 ,y2 ,...,yk ,zk est la probabilit que le meilleur prouveur convainque V partir du moment o les messages y1 , z1 , . . . , yk , zk ont t changs (k questions
y1 , y2 , . . . , yk et k rponses z1 , z2 , . . . , zk ) ;

254

Chapitre 10. Protocoles interactifs


qy1 ,z1 ,y2 ,...,yk est la probabilit que le meilleur prouveur convainque V partir du
moment o les messages y1 , z1 , . . . , yk ont t changs (k questions y1 , y2 , . . . , yk
et (k 1) rponses z1 , z2 , . . . , zk1 ).

Par dfinition de IP, nous avons donc x L p 2/3 (o le mot vide dsigne
le fait quaucun change na encore eu lieu). Il est maintenant facile de calculer ces
probabilits en partant de la fin du protocole grce aux relations suivantes :

py1 ,z1 ,...,yT ,zT


qy1 ,z1 ,...,yk

p
y1 ,z1 ,...,yk ,zk

= Pr r (V (x, r, z1 , . . . , zT ) = 1 | y1 , z1 , . . . , yT , zT )
= max zk py1 ,z1 ,...,yk ,zk

= yk+1 Pr r (yk+1 | y1 , z1 , . . . , yk , zk )qy1 ,z1 ,...,yk+1

o k 0 et o la notation Pr r (yk+1 | y1 , z1 , . . . , yk , zk ) dsigne la probabilit que la


(k +1)-me question soit yk+1 sachant que les k premires questions et rponses ont t
y1 , z1 , . . . , yk , zk , cest--dire quon se restreint aux bits alatoires r compatibles avec cet
change (ces probabilits conditionnelles ne seront considres que quand la condition
est non vide). Dtaillons ces trois relations :

la premire relation donne exactement la dfinition de py1 ,z1 ,...,yT ,zT : la probabilit
que V accepte sachant que les questions/rponses ont t y1 , z1 , . . . , yT , zT (cest-dire que la probabilit est prise sur lensemble des r qui ont pu donner cet
change) ;
la deuxime relation signifie simplement que le prouveur maximise la probabilit
de convaincre V , en dautres termes il choisit la meilleure rponse zk ;
la dernire sinterprte ainsi : le meilleur prouveur doit attendre la question yk+1
avant de pouvoir rpondre zk+1 qui maximise qy1 ,z1 ,...,yk+1 , et donc la probabilit
quil convainque V est la moyenne des qy1 ,z1 ,...,yk+1 sur lensemble des (k + 1)-me
questions yk+1 possibles de V .
Le calcul de py1 ,z1 ,...,yT ,zT se fait en numrant tous les mots r possibles et pour chacun
en simulant le protocole avec ce choix de r et avec les rponses z1 , . . . , zT : on compte
le nombre de fois que V accepte et que les questions de V ont bien t y1 , . . . , yT .
Si lon donne y1 , z1 , . . . , yk , calculer qy1 ,z1 ,...,yk se fait en valuant rcursivement les
py1 ,z1 ,...,yk ,zk pour tous les zk possibles.
Si lon donne y1 , z1 , . . . , yk , zk , calculer py1 ,z1 ,...,yk ,zk se fait en valuant rcursivement les
qy1 ,z1 ,...,yk+1 pour tous les yk+1 possibles.
Lespace total utilis pour ces calculs est polynomial car cela revient au pire numrer
toutes les possibilits de r, y1 , z1 , . . . , yT , zT , cest--dire un nombre polynomial de bits.
On remarque que dans le calcul de qy1 ,z1 ,...,yk (deuxime relation), outre la valeur du
max, on peut videmment calculer la rponse zk qui maximise la probabilit. Notre
prouveur agit alors comme ceci pour la k -me rponse, lorsque lchange a jusqu
prsent consist en y1 , z1 , . . . , yk :
calculer qy1 ,z1 ,...,yk et le zk correspondant qui maximise la probabilit ;
rpondre zk .

10.1. Les classes IP

255

Ce prouveur fonctionne en espace polynomial. Puisque la probabilit dacceptation


de V est maximise, un tel prouveur convainc V avec probabilit 2/3 si x L.

Nous obtenons le lemme 10-H en corollaire.


Dmonstration du lemme 10-H Soit L IP : par le lemme 10-I, L IPPSPACE et a
donc un protocole o le prouveur fonctionne en espace polynomial. Pour dcider si
x L, il suffit alors de simuler ce protocole : cela se fait en espace polynomial, donc

L PSPACE.

Nous en venons maintenant la partie difficile du thorme.


10-J

Lemme

PSPACE IP.

Plus prcisment, il existe un protocole interactif de type IP pour le langage PSPACEcomplet QBF, dans lequel un prouveur convainc le vrificateur avec probabilit 1 lorsque
linstance est dans le langage (cest--dire que V accepte x avec probabilit 1 si x QBF).
Tout dabord un lemme simple permettant de justifier la stratgie de preuve quon va
suivre.
10-K

Lemme

La classe IP est close par rductions many-one polynomiales.

. 10-L

Exercice

Montrer le lemme prcdent.


Il suffit donc de donner un protocole IP pour QBF, problme PSPACE-complet pour les rductions many-one polynomiales (cf. thorme 4-AC), puisque par clture cela implique
que la classe PSPACE est entirement contenue dans IP.
Nous aurons galement besoin du lemme suivant qui permet de vrifier de manire probabiliste lgalit de deux polynmes.
10-M

Lemme

Soit p un nombre premier. F p dsigne le corps p lments (les entiers modulo p ). Si


q(x) et q (x) sont deux polynmes distincts de degr d sur F p , alors
Pr (q(r ) = q (r )) d / p.

r F p

256

Chapitre 10. Protocoles interactifs

Dmonstration Si q = q alors q q = 0 et (q q ) est de degr au plus d , donc q q


a au plus d racines sur le corps F p . Il y a donc au plus d valeurs de r pour lesquelles

(q q )(r ) = 0, cest--dire q(r ) = q (r ).

Ide de la dmonstration du lemme 10-J Le protocole interactif pour le problme QBF


utilise une technique appele larithmtisation, cest--dire la transformation des formules boolennes en polynmes. Cela permet de se placer sur un corps fini plus grand
que {0, 1} et autorise plus de marge de manuvre.
En transformant la formule boolenne en un polynme, puis les quantificateurs en
sommes et en produits, il suffit de tester si la valeur obtenue est non nulle. Pour cela,
le prouveur aide le vrificateur en lui fournissant une valuation variable par variable,
cest--dire en se ramenant des polynmes une variable.
Dmonstration du lemme 10-J
Hypothses et notations Sans perte de gnralit, on suppose que les instances de QBF
sont de la forme
= a1 a2 a3 . . . an (a1 , . . . , an ),

o est une formule sans quantificateur en 3-CNF, n est pair et o ai {0, 1} (cest-dire que ai dsigne une unique variable et non un uple de variables).
On associe dabord un polynme Q de la manire suivante :
une variable boolenne ai on associe la variable xi , et ai on associe (1 xi ) ;
une clause constitue de trois littraux, on associe la somme : par exemple, la
clause (a1 a2 a3 ) est associ le polynme
x1 + (1 x2 ) + x3 ;

enfin, Q est le produit des polynmes associs aux clauses.


En particulier, Q est un polynme n variables de degr m si a m clauses. De plus,
sur Z, pour tout (a1 , . . . , an ) {0, 1}n , Q (a1 , . . . , an ) 0 et
Q (a1 , . . . , an ) > 0 ssi (a1 , . . . , an ) = 1.

En dautres termes, Q est non nul ssi est vraie.


On manipulera ce polynme sous sa forme factorise, cest--dire sans dvelopper le
produit des clauses, grce quoi son encodage est de taille linaire.
On dfinit ensuite lentier Q reprsentant , de telle sorte que Q 0 et [Q > 0 ssi
est vraie] :

Q =

...

a1 {0,1} a2 {0,1} a3 {0,1}

an {0,1}

Q (a1 , . . . , an ).

Sur Z, on a QBF ssi Q = 0. Nanmoins, les produits utiliss ici pour remplacer
les quantificateurs font exploser le degr des polynmes successifs qui devient exponentiel, ce qui ne convient pas pour le protocole que lon souhaite mettre en uvre.

10.1. Les classes IP

257

Oprateurs de linarisation, somme et produit Pour rduire ce degr, on remarque


que lon ne travaille que sur des valeurs ai {0, 1}, pour lesquelles aik = ai pour tout
k . Ainsi, pour tout i n et tout polynme Q(x1 , . . . , xn ), on dfinit loprateur de
linarisation de la i -me variable
Li (Q)(x1 , . . . , xn ) =
xi Q(x1 , . . . , xi1 , 1, xi +1 , . . . , xn ) + (1 xi )Q(x1 , . . . , xi 1 , 0, xi +1 , . . . , xn ).

On a alors
(a1 , . . . , an ) {0, 1}n , Q(a1 , . . . , an ) = Li (Q)(a1 , . . . , an )

et le degr en xi de Li (Q) est 1.


Pour faciliter les notations, on dfinit galement deux autres oprateurs qui reprsentent larithmtisation des quantificateurs xi et xi :
i (Q)(x1 , . . . , xi 1 , xi+1 , . . . , xn ) =
Q(x1 , . . . , xi1 , 0, xi +1 , . . . , xn ) Q(x1 , . . . , xi 1 , 1, xi +1 , . . . , xn )

et
i (Q)(x1 , . . . , xi1 , xi+1 , . . . , xn ) =
Q(x1 , . . . , xi1 , 0, xi +1 , . . . , xn ) + Q(x1 , . . . , xi 1 , 1, xi +1 , . . . , xn )

grce auxquels la variable xi est supprime. Ainsi lentier Q dfini prcdemment


peut tre exprim sous la forme
Q = 1 2 3 . . . n (Q ).

Lide est dinsrer des oprateurs de linarisation entre les oprateurs i et i afin de
ne pas subir dexplosion du degr. On dfinit alors (o les oprateurs sappliquent de
droite gauche, dabord Ln , Ln1 , , L1 puis n , etc.)
S = 1 L1 2 L1 L2 3 L1 L2 L3 4 L1 . . . L4 5 n1 L1 . . . Ln1 n L1 . . . Ln (Q )

Les linarisations assurent quaprs chaque application dun oprateur i (qui augmente potentiellement le degr), le polynme est linaris . On notera que cette expression est au final un entier car toutes les variables ont t instancies grce aux
oprateurs i et i : en effet, aprs lapplication de chaque i ou i , le polynme ne
contient plus que les variables x1 , . . . , xi1 . De plus, on a S = Q .
Rsultats de larithmtisation Par les considrations qui prcdent, QBF ssi S = 0
n
sur Z. Cest ce que notre protocole va tester. On remarque que S [0, 3 m2 ] o m est le
nombre de clauses de , puisque pour tout a1 , . . . , an {0, 1}, Q (a1 , . . . , an ) [0, 3 m ]
1. On aurait pu viter les linarisations aprs les oprateurs i mais celles-ci facilitent la description du
protocole en homognisant les notations.

258

Chapitre 10. Protocoles interactifs

et que chaque oprateur i lve au plus au carr la valeur maximale, chaque oprateur
i la double tandis que Li la laisse inchange. Si S = 0 alors il a au plus log2 (S) diviseurs
premiers. Ainsi grce au thorme des nombres premiers A-O, il existe une constante
n
telle que si S = 0 alors dans tout intervalle de taille T = m 2 22n inclus dans [0, 3 m2 ],
il existe un entier premier p qui ne divise pas S , car la densit des nombres premiers
dans un tel intervalle est (1/(m2n )).
On notera les polynmes successifs dans lexpression de S , qi aprs un oprateur ou
(0 i n ), et i , j aprs un oprateur L (1 j i n ), cest--dire :
qn (x1 , . . . , xn ) = Q (x1 , . . . , xn ) ;
i,i (x1 , . . . , xi ) = Li (qi )(x1 , . . . , xi ) ;
i, j (x1 , . . . , xi ) = L j (i, j +1 )(x1 , . . . , xi ) pour j < i ;
si i < n est pair alors qi (x1 , . . . , xi ) = i+1 (i+1,1 )(x1 , . . . , xi ) ;
si i < n est impair alors qi (x1 , . . . , xi ) = i +1 (i +1,1 )(x1 , . . . , xi ).
On a donc q0 = S ; 1,1 (x1 ) = L1 2 L1 L2 3 . . . Ln (Q ) ; q1 (x1 ) = 2 L1 L2 3 . . . Ln (Q ),
etc. (cf. figure 10.2).
S=

1
q0

L1
1,1

2
q1

L1

L2

2,1

2,2

3
q2

...

L1
n
qn1 n,1

...

Ln

n,n

qn

Figure 10.2 Polynmes successifs dans larithmtisation de .

Pour se reprer, on remarquera que pour tout i , qi et Li, j ont i variables (x1 , . . . , xi ).
Protocole En suivant les dfinitions ci-dessus des qi et i, j , voici le protocole pour
tester si S = 0. Nous en donnons dabord une description informelle. Le prouveur
envoie successivement les coefficients des polynmes q0 , 1,1 , q1 , 2,1 . . . dans lesquels
toutes les variables, sauf une, sont remplaces par des valeurs alatoires choisies par le
vrificateur : ainsi, le prouveur ne manipule que des polynmes univaris de degr 1
(ce faible degr est obtenu grce loprateur de linarisation), dont il peut aisment
donner les deux coefficients. Remplacer les variables par des valeurs alatoires permet
toujours au vrificateur de tester lgalit de polynmes grce au lemme 10-M. Entre
chaque envoi des coefficients dun polynme, le vrificateur vrifie que la dfinition
de ce polynme est respecte et renvoie pour la suite la nouvelle valeur alatoire quil
a attribue la variable non encore value. Plus prcisment, chaque tape, une
seule variable x j na pas de valeur attribue, toutes les autres (x1 , . . . , x j 1 , x j +1 , . . . , xi )
possdent une valeur (r1 , . . . , r j 1 , r j +1 , . . . , ri ) ; voici alors ce qui se passe :
lorsque le prouveur doit convaincre que
i ,i (r1 , . . . , r j 1 , x j , r j +1 , . . . , ri ) = Li (qi )(r1 , . . . , r j 1 , x j , r j +1 , . . . , ri ),

10.1. Les classes IP

259

il envoie les deux coefficients du polynme univari


i ,i (r1 , . . . , r j 1 , x j , r j +1 , . . . , ri ) ;

le vrificateur, qui dispose dj des coefficients de qi , vrifie que


i,i (r1 , . . . , r j 1 , x j , r j +1 , . . . , ri ) =
(1 x j )qi (r1 , . . . , r j 1 , 0, r j +1 , . . . , ri ) + x j qi (r1 , . . . , r j 1 , 1, r j +1 , . . . , ri )

en attribuant une nouvelle valeur alatoire r j la variable x j et en utilisant le


lemme 10-M, puis il envoie cette valeur r j au prouveur ;
ils procdent de la mme faon pour tous les autres cas en suivant les relations
dfinissant les polynmes qi et i, j ;
la fin, le vrificateur vrifie que lvaluation de qn est bien gale lvaluation
de Q sur les valeurs alatoires choisies (r1 , . . . , rn ).
Nanmoins lordre dvaluation des variables, compltement occult dans cette discussion, complique singulirement la description complte du protocole. Cette discussion informelle permet tout de mme de mieux apprhender le fonctionnement du
protocole suivant, dans lequel les polynmes changs nont quune variable et sont
de degr au plus 1, donc peuvent tre cods par la liste de leurs (deux) coefficients.
Le prouveur envoie dabord un entier premier p et tous les calculs seffectueront sur
F p . Il faut que p soit de taille polynomiale, mais assez grand pour que le prouveur ne
puisse pas convaincre avec grande probabilit le vrificateur daccepter si S = 0. Nous
verrons quil suffit de prendre p dans lintervalle [D, D +T ] o D = 3(n(n +3)/2+ m)
et o T = m 2 22n est dfini ci-dessus. Les lments r1 , . . . , rn F p sont des lments
alatoires tirs au fur et mesure comme indiqu dans le protocole, o un nouveau
tirage dun ri existant remplace lancienne valeur.
P envoie un entier premier p [D, D+T ] (o D et T sont dfinis
ci-dessus), et un entier q0 F p cens tre gal q0 ;
si p nest pas premier ou si q0 = 0 (sur F p ), alors V rejette.
P envoie un polynme 1,1 (x1 ) cens tre 1,1 (x1 ) (et vrifiant
donc 1 1,1 = q0 ) ;
si q0 = 1,1 (0) + 1,1 (1), V rejette.
P envoie un polynme q1 (x1 ) cens tre q1 (x1 ) ;
V choisit r1 F p au hasard et vrifie que
1,1 (r1 ) = (1 r1 )q1 (0) + r1 q1 (1) :
V rejette si ce nest pas le cas, sinon il envoie r1 .

Le protocole continue alors ainsi pour i de 2 n :

260

Chapitre 10. Protocoles interactifs


P envoie un polynme i ,1 (xi ) cens tre
i ,1 (r1 , . . . , ri1 , xi ) ;
V vrifie que

qi1
(ri1 ) = i ,1 (0) + i,1 (1) (si i est impair) ou

qi1 (ri 1 ) = i,1 (0) i ,1 (1) (si i est pair) :


V rejette si ce nest pas le cas, sinon il envoie ri F p choisi au

hasard.
P envoie un polynme i ,2 (x1 ) cens tre i,2 (x1 , r2 , . . . , ri ) ;
V vrifie que
i ,1 (ri ) = (1 r1 )i ,2 (0) + r1 i,2 (1) :
V rejette si ce nest pas le cas, sinon il envoie r1 F p choisi au

hasard.
Et pour j de 3 i :

P envoie un polynme i , j (x j 1 ) cens tre


i , j (r1 , . . . , r j 2 , x j 1 , r j , . . . , ri ) ;
V vrifie que
i, j 1 (r j 2 ) = (1 r j 1 )i, j (0) + r j 1 i, j (1) :
V rejette si ce nest pas le cas, sinon il envoie r j 1 F p choisi
au hasard.
(fin de la boucle sur j )

P envoie un polynme qi (xi ) cens tre qi (r1 , . . . , ri1 , xi ) ;


V vrifie que
i ,i (ri1 ) = (1 ri )qi (0) + ri qi (1) :
V rejette si ce nest pas le cas, sinon il envoie ri F p choisi au

hasard.
Le dernier test du protocole est alors le suivant :
V accepte ssi
qn (rn ) = qn (r1 , . . . , rn ) = Q (r1 , . . . , rn ).

10.1. Les classes IP

261

Les messages changs au dbut du protocole sont donc :


P
V
P
V

p, q0

1,1 (x1 )

q1 (x1 )

2,1 (x2 )
r1

q2 (x2 )

3,1 (x3 )
r2

3,2 (x1 )
r3

2,2 (x1 )
r2

3,3 (x2 )
r1

r1
q3 (x3 )

r2

r3

...
...

Analyse du protocole Si QBF alors il existe p [D, D + T ] premier qui ne divise


pas S (cest--dire S = 0 sur F p ). Il suffit donc au prouveur denvoyer un tel entier p
et ensuite les bons polynmes qi = qi et i, j = i , j pour convaincre le vrificateur
avec probabilit 1.
Si en revanche QBF, nous allons montrer quaucun prouveur ne convainc le vrificateur avec probabilit > 1/3. Nous allons donc majorer la probabilit quun prouveur
P convainque V . Au dernier tour du protocole, on doit avoir
qn (rn ) = Q (r1 , . . . , rn ) = qn (r1 , . . . , rn )

pour rn alatoire inconnu de P au moment o il a envoy qn . Puisque qn (xn ) et


qn (r1 , . . . , rn1 , xn ) sont des polynmes une variable de degr au plus m , cela signifie
que qn (xn ) = qn (r1 , . . . , rn1 , xn ) avec probabilit 1 m/ p par le lemme 10-M.
Raisonnons maintenant par rcurrence en suivant le protocole en sens inverse, pour i
variant de n 2.
Si qi (xi ) = qi (r1 , . . . , ri1 , xi ) alors le dernier test de la boucle i garantit que
i ,i (ri1 ) = i ,i (r1 , . . . , ri ) par dfinition de i,i . Puisque ri 1 est choisi au hasard et inconnu de P au moment o il a envoy i ,i , le lemme 10-M implique
que i,i (xi 1 ) = i,i (r1 , . . . , ri 2 , xi 1 , ri ) avec probabilit 1 1/ p .
Pour j variant de i 3 : si i, j (x j 1 ) = i , j (r1 , . . . , r j 2 , x j 1 , r j , . . . , ri ), alors le
test de V garantit que i, j 1 (r j 2 ) = i, j 1 (r1 , . . . , ri ) par dfinition de i , j 1 .
Puisque r j 2 est choisi au hasard et inconnu de P au moment o il a envoy i, j 1 ,
le lemme 10-M implique que i , j 1 (x j 2 ) = i, j 1 (r1 , . . . , r j 3 , x j 2 , r j 1 , . . . , ri )
avec probabilit 1 1/ p .
Si i ,2 (x1 ) = i,2 (x1 , r2 , . . . , ri ) alors le test prcdant la boucle j assure que lon
a i ,1 (ri ) = i,1 (r1 , . . . , ri ) par dfinition de i ,1 . Puisque ri est choisi au hasard
et inconnu de P au moment o il a envoy i,1 , le lemme 10-M implique que
i ,1 (xi ) = i ,1 (r1 , . . . , ri1 , xi ) avec probabilit 1 1/ p .
Si i ,1 (xi ) = i,1 (r1 , . . . , ri1 , xi ) alors le premier test de la boucle i assure que
qi1 (r1 , . . . , ri1 ) = qi 1 (r1 , . . . , ri1 ) par dfinition de qi1 . Puisque ri1 est choisi

au hasard et inconnu de P au moment o il a envoy qi1


, le lemme 10-M

implique que qi 1 (xi 1 ) = qi1 (r1 , . . . , ri2 , xi1 ) avec probabilit 1 1/ p .

262

Chapitre 10. Protocoles interactifs


Enfin, si q1 (x1 ) = q1 (x1 ) alors le test qui prcde la boucle sur i assure que
1,1 (x1 ) = 1,1 (x1 ) avec probabilit 1 1/ p ; puis si cest le cas, le test prcdent assure que q0 = q0 ; et enfin le premier test garantit que q0 = 0.

chacune des tapes dcrites ci-dessus, il y a une probabilit derreur dau plus
1/ p , sauf la premire (correspondant au dernier test de V ) o cest m/ p . Puisquil y
a n(n + 3)/2 tapes pouvant donner des erreurs, la probabilit que lun des polynmes
qi ou i , j ne soit pas celui quil est cens tre est au plus
n(n + 3)/2 + m
1/3.
p

Dans le cas o tous les polynmes sont les bons alors q0 = 0 puisque QBF, donc

V rejette. On en dduit que P convainc V avec probabilit au plus 1/3.

10-N

Corollaire

Tout langage de IP est reconnu par un protocole dans lequel le prouveur convainc le
vrificateur avec probabilit 1 quand le mot est dans le langage.
Dmonstration Soit L IP = PSPACE : L pm QBF donc il existe f calculable en temps
polynomial tel que x L f (x) QBF. Le protocole consiste donc faire tourner

le protocole pour QBF du lemme 10-J sur f (x).

. 10-O

Exercice

Montrer en revanche que si dans un protocole IP pour un langage L, tout prouveur


convainc le vrificateur avec probabilit 0 lorsque x L (cest--dire que V rejette
avec probabilit 1), alors L NP.
Puisque PP PSPACE, il est vident que PP a des protocoles IP. Cependant, en procdant comme pour le lemme 10-J mais de manire plus simple car il nest plus besoin de
sencombrer des oprateurs de linarisation et de produit, on peut obtenir le rsultat plus
fort suivant sur le problme PP-complet MajSAT (cf. section 9.2.3), qui nous servira au
chapitre suivant pour montrer une borne infrieure non uniforme sur la classe PP.
10-P

Proposition

Le problme MajSAT possde un protocole IP pour lequel il existe un prouveur valide


dans FPPP (la classe des fonctions calculables en temps polynomial grce un oracle PP).

10.1. Les classes IP

. 10-Q

263

Exercice

Montrer la proposition prcdente.

Non-relativisation
Le surprenant thorme 10-G a t dautant mieux accueilli quil ne se relativise pas
comme le montre le rsultat suivant de Fortnow et Sipser [FS88]. Dans un protocole
IP, cest videmment le vrificateur qui porte loracle, car celui-ci ne servirait pas au prouveur qui est dj tout-puissant.
10-R

Proposition (Fortnow et Sipser, 1988)

Il existe un oracle A tel que coNPA IPA, et donc IPA = PSPACEA.


Ide de la dmonstration On construit par diagonalisation un oracle A tel quaucun
protocole IPA ne peut dcider le langage {1n | A contient tous les mots de longueur n},
alors que ce langage est clairement dans coNPA.
Nous utilisons pour cela le fait que le vrificateur est probabiliste et ne peut donc pas
dtecter un changement ngligeable , contrairement une machine coNP : modifier
un mot de A qui nest demand quavec faible probabilit ne change pas la rponse du
vrificateur.
Dmonstration Si A est un langage, on note
L(A) = {1n | A contient tous les mots de longueur n}.

Pour tout oracle A, on a donc L(A) coNPA car il suffit, sur lentre 1n de vrifier de
manire non dterministe et grce loracle que pour tout mot x de taille n , x A.
Nous allons construire A de sorte que L(A) IPA.
On note (Vi )i 1 une numration des machines de Turing dterministes (voir la dfinition 7-A et la remarque 3-AL) o Vi fonctionne en temps n i lorsque n dsigne la
taille de lentre x . On considrera les protocoles 2n i tours dans lesquels Vi est le
vrificateur et on notera r (mot de taille n i ) les bits alatoires donns Vi .
Dans un protocole 2n i tours avec un prouveur P , sur lentre 1n le vrificateur Vi
fonctionnant en temps n i ne peut demander son oracle des mots de taille suprieure
n i . On dfinit une suite (ui )i1 par u1 = 18 et ui +1 = 1+uii , de sorte que sur lentre 1 ui
le vrificateur Vi ne demande son oracle que des mots de taille strictement infrieure
ui+1 . On a choisi la premire valeur u1 = 18 pour que ui2i /2 ui < 1/3 pour tout i 1
(ce choix deviendra clair ci-dessous), ce que lon vrifie aisment par rcurrence en
passant au logarithme.
On dfinit le langage A par tapes en commenant par A1 = {0, 1} (au dpart il
contient tous les mots) et en retirant des mots au fur et mesure. ltape i 1,
on considre les protocoles entre un prouveur P et Vi avec oracle Ai sur lentre 1 ui :

264

Chapitre 10. Protocoles interactifs


si aucun prouveur P ne convainc ViAi daccepter 1 ui avec probabilit 2/3, alors
Ai +1 = Ai (on ne retire aucun mot) ;
en revanche, sil existe un prouveur P qui convainc ViAi daccepter 1 ui avec probabilit 2/3, alors au cours du protocole, pour des bits alatoires r fixs, Vi
demande son oracle Ai au plus ui2i mots (car il y a uii tours de Vi lors desquels
son temps de calcul est au plus uii ). Il existe donc un mot x0 de taille ui dont la
probabilit dtre demand son oracle par ViAi est au plus ui2i /2 ui (o la probabilit est prise sur tous les choix de r possibles). On dfinit alors Ai +1 = Ai \ {x0 }
(cest--dire quon retire le mot x0 ).

Le langage A est enfin A = i 1 Ai . On remarque que la dfinition de la suite (ui )


A
implique que pour tout i , Vi i+1 et ViA ont le mme comportement sur 1 ui .
Par dfinition, si aucun prouveur P ne convainc ViAi daccepter 1 ui avec probabilit
2/3, alors Ai +1 = Ai donc aucun prouveur P ne convainc ViA daccepter 1 ui . Mais
A contient tous les mots de taille ui , donc 1 ui L(A) et ViA ne dcide correctement
L(A) dans aucun protocole 2n i tours.
De mme, sil existe un prouveur P qui convainc ViAi daccepter 1 ui avec probabilit
2/3, alors par rapport Ai , dans Ai+1 seul le mot x0 manque et celui-ci naffecte
quune proportion ui2i /2 ui < 1/3 des choix alatoires de ViAi . Donc P convainc encore
A
Vi i+1 daccepter 1 ui avec probabilit > 2/3 1/3 = 1/3, alors que 1 ui L(A) puisque
A ne contient plus x0 .
En conclusion, aucun vrificateur Vi polynomial avec oracle A ne reconnat le langage

L(A) dans un protocole 2n i tours. Donc L(A) IPA.

Ce rsultat a renforc lattention apporte aux protocoles interactifs qui permettent ainsi
de dpasser la barrire de la relativisation. Cependant, une autre barrire, larithmtisation gnralisant la relativisation, a depuis t trouve par Aaronson et Wigderson [AW08] en remarquant que les protocoles comme celui pour QBF utilisent massivement larithmtisation (cest--dire la transformation dobjets boolens en polynmes
pour utiliser des outils algbriques) mais que cette technique ne suffit pas pour rsoudre
les grandes questions ouvertes comme P = NP ? .

10.2

Les classes Arthur-Merlin

Une sous-classe des protocoles IP que nous avons vus consiste rendre publics les bits
alatoires du vrificateur. Le prouveur dans cette variante a reu le nom de Merlin (magicien tout puissant) et le vrificateur celui dArthur (roi intelligent que Merlin cherche
convaincre).

10.2. Les classes Arthur-Merlin

265

10.2.1

Dfinitions

Contrairement IP, le vrificateur ne peut pas cacher ses bits alatoires au prouveur. Nanmoins, ils ne sont rvls quau fur et mesure de leur utilisation et non tous dun coup
en dbut de protocole. Dans un protocole IP, seuls les bits alatoires privs du vrificateur
empchaient au prouveur tout-puissant de calculer lui-mme les questions du vrificateur.
Dans un protocole Arthur-Merlin, le vrificateur, en rvlant ses bits alatoires, na donc
pas besoin denvoyer sa question au prouveur.
10-S

Dfinition

Un protocole Arthur-Merlin est un protocole IP dans lequel le vrificateur (appel


Arthur et not A) envoie au prouveur (appel Merlin et not M ) seulement des
bits alatoires chaque tour, et effectue son calcul de manire dterministe la fin
du protocole en fonction de lentre et des messages changs (cest--dire les bits
alatoires quil a envoys et les rponses de Merlin).
En dautres termes, sur lentre x le protocole consiste en un change
r1 , z1 , r2 , z2 , . . . , rk , zk

(sil y a 2k tours o A commence, tous les autres choix tant possibles) o les ri sont
des mots alatoires de taille polynomiale (les questions dArthur) et o le mot
zi = M (x, r1 , r2 , . . . , ri1 ) est la i -me rponse de Merlin. La dernire tape est la
vrification par A : lentre x est accepte ssi A(x, r1 , z1 , . . . , rk , zk ) = 1. On rappelle
que A est une machine dterministe fonctionnant en temps polynomial en |x| et
que M est une fonction sans contrainte de calculabilit.
Pour k 2, la classe AM[k] est lensemble des langages L possdant un protocole
Arthur-Merlin k tours o Arthur commence, cest--dire tels quil existe un polynme p(n) et un vrificateur A fonctionnant en temps p(|x|), satisfaisant :

x L =

il existe un prouveur M tel que

x L =

pour tout prouveur M ,

Pr ri {0,1} p(|x|) (A(x, r1 , z1 , . . . ) = 1) 2/3


Pr ri {0,1} p(|x|) (A(x, r1 , z1 , . . . ) = 1) 1/3,

o A(x, r1 , z1 , . . . ) signifie
A(x, r1 , z1 , . . . , rk/2 , zk/2 ) si k est pair,

et A(x, r1 , z1 , . . . , r(k+1)/2 ) sinon.


La classe MA[k] est dfinie de la mme faon mais M dbute le protocole : lchange
est donc (z1 , r1 , z2 , . . . , zk/2 , rk/2 ) si k est pair et (z1 , r1 , z2 , . . . , z(k+1)/2 ) sinon.

266

Chapitre 10. Protocoles interactifs

Contrairement IP o lon sintressait aux protocoles ayant un nombre polynomial de tours, nous tudierons principalement les protocoles Arthur-Merlin avec
un nombre constant de tours. On note alors AM = AM[2] et MA = MA[2] pour une
raison qui sera claire avec le thorme 10-W.

10-T

Remarques

On trouve aussi la notation alternative AMA pour AM[3], MAM pour MA[3], AMAM
pour AM[4], etc. Nous utiliserons la plus commode des deux notations selon le
contexte.
Lorsque le protocole se termine par un tour dArthur, comme par exemple dans
MA ou AMA, etc., le dernier calcul dArthur est probabiliste puisquil tire des bits
alatoires au dbut de son tour (ce qui nest pas le cas pour AM, MAM, etc., o le
calcul final dArthur est dterministe). Par exemple dans MA, Merlin envoie une
preuve et Arthur la vrifie de manire probabiliste : on peut donc voir MA comme
une version probabiliste de NP.

Les deux classes AM = AM[2] et MA = MA[2] sont importantes (cf. thorme 10-W), cest
pourquoi nous en donnons une caractrisation spcifique qui dcoule directement de la
dfinition.
10-U

Proposition

Un langage L est dans AM sil existe un langage B P et un polynme p(n) tels que

x L =
x L =

Pr r {0,1} p(|x|) (y {0, 1} p(|x|) (x, r, y) B) 2/3,


Pr r {0,1} p(|x|) (y {0, 1} p(|x|) (x, r, y) B) 1/3.

Un langage L est dans MA sil existe un langage B P et un polynme p(n) tels que

x L =
x L =

y {0, 1} p(|x|) Pr r {0,1} p(|x|) ((x, y, r ) B) 2/3,


y {0, 1} p(|x|) Pr r {0,1} p(|x|) ((x, y, r ) B) 1/3.

Les preuves qui suivent concerneront souvent des inversions de quantificateurs Pr et


, il est donc utile de prendre le temps de rflchir leur signification et notamment aux
dpendances entre y et r .

10.2. Les classes Arthur-Merlin

. 10-V

267

Exercice

Montrer que MA PP.

10.2.2

Deux petits tours et puis sen vont

De manire surprenante, on peut montrer que deux tours suffisent dans les protocoles
Arthur-Merlin. Il sagit dun rsultat de Babai et Moran [BM88].
10-W

Thorme (Babai et Moran, 1988)

Pour toute constante k 2, AM[k] = AM[2] (cest--dire AM).


Puisque videmment MA[k] AM[k + 1], on obtient le corollaire suivant.
10-X

Corollaire

Pour un nombre constant de tours il ny a que deux classes Arthur-Merlin, MA et AM,


vrifiant MA AM.
Ide de la dmonstration du thorme 10-W Nous allons transformer tout protocole
AM[2k] en un protocole quivalent AM[2k 2] en changeant les tours 2k 2 et 2k 1,
ce qui transforme AM . . . AMAM en AM . . . AAMM = AM . . . AM (puisque deux tours A
successifs peuvent tre runis en un seul, et de mme pour M). Pour cela, il sagit tout
dabord de rduire exponentiellement la probabilit derreur sans toucher aux 2k 2
premiers tours : en effectuant une rptition parallle lors des deux derniers tours
(Arthur envoie plusieurs questions au tour 2k 1 et Merlin renvoie toutes les rponses
au tour 2k ), on rduit lerreur suffisamment pour quArthur puisse envoyer rk avant
que Merlin nenvoie zk1 et zk .
Dmonstration du thorme 10-W Pour k 2, montrons que AM[2k] AM[2k 2].
Soit L AM[2k] possdant un protocole 2k tours o sur lentre x , les messages
changs sont r1 , z1 , . . . , rk , zk ( ri dnote les mots alatoires envoys par Arthur et zi
dsigne les rponses de Merlin). On interprte zi comme une fonction de r1 , . . . , ri et
on crira zi (.) pour souligner le fait quil sagit dune fonction. Nanmoins, la dernire
rponse zk de Merlin vient aprs le choix de r1 , . . . , rk et en la rentrant dans la
probabilit, il suffit alors de quantifier sur un mot plutt quune fonction :

x L =

x L =

z1 (.), . . . , zk1 (.) Pr r1 ,...,rk zk (x, r1 , z1 (r1 ), r2 , z2 (r1 , r2 ), . . . ,



zk1 (r1 , . . . , rk1 ), rk , zk ) B 2/3
z1 (.), . . . , zk1 (.) Pr r1 ,...,rk zk (x, r1 , z1 (r1 ), r2 , z2 (r1 , r2 ), . . . ,

zk1 (r1 , . . . , rk1 ), rk , zk ) B 1/3,

268

Chapitre 10. Protocoles interactifs

o B P. Cest partir de cette nouvelle caractrisation de la classe AM[2k] que nous


allons travailler.
Rduction de la probabilit derreur Nous allons rduire la probabilit derreur de ce
protocole sans toucher aux 2k 2 premires tapes : dans le nouveau protocole, les
2k 2 premiers tours sont identiques. Au tour 2k 1, au lieu denvoyer seulement rk ,
A envoie N mots alatoires indpendants de taille |rk |, que lon notera rk1 , . . . , rkN . M
rpond alors par N mots de taille |zk | que lon notera zk1 , . . . , zkN . A accepte ssi pour la
majorit des i [1, N ], (x, r1 , z1 , . . . , zk1 , rki , zki ) B . Pour simplifier les notations, on
note rk = (rk1 , . . . , rkN ), zk = (zk1 , . . . , zkN ) et
C = {(x, r1 , z1 , . . . , zk1 , rk , zk ) | pour la majorit des i, (x, r1 , z1 , . . . , zk1 , rki , zki ) B}

qui sera la vrification finale de notre nouveau protocole. En rsum, le protocole


consiste donc en lenvoi de r1 par A, z1 par M , , zk1 par M , puis rk par A et enfin
zk par M .
Majorons la probabilit derreur de ce nouveau protocole (lanalyse est la mme que
pour BPP la proposition 6-F). Soit X la variable alatoire gale
au nombre dentiers
i [1, N ] tels que zki (x, r1 , z1 , . . . , zk1 , rki , zki ) B . Alors X = Ni=1 Xi o Xi {0, 1}
vaut 0 ssi zki (x, r1 , z1 , . . . , zk1 , rki , zki ) B . Les Xi sont indpendantes. Si x L, alors
Xi vaut 0 avec probabilit 2/3. Par les bornes de Chernoff (la version faible de
p
la proposition A-M suffit), Pr r1 ,...,rk1 ,r (X N /2) N o = 4/(3 2) < 1. En
k
choisissant N = (|zk1 | + 2)/( log ), la probabilit derreur du nouveau protocole est
donc infrieure 2|zk1 |2 . Le calcul est exactement le mme dans le cas o x L et
mne la mme probabilit derreur. En rsum, on a :

x L =

x L =

z1 (.), . . . , zk1 (.)



Pr r1 ,...,rk1 ,r zk (x, r1 , z1 (r1 ), . . . , rk , zk ) C 1 2|zk1 |2
k

z1 (.), . . . , zk1 (.)



Pr r1 ,...,rk1 ,r zk (x, r1 , z1 (r1 ), . . . , rk , zk ) C 2|zk1 |2
k

Inversion des deux dernires tapes Bien sr, dans le premier cas ( x L) on peut
rentrer le zk1 : en effet, il y a moins de contraintes sur zk1 car on peut maintenant
le choisir en fonction de rk . On en dduit que si x L alors
z1 (.), . . . , zk2 (.)
Pr

r1 ,...,rk1 ,rk


zk1 , zk (x, r1 , z1 (r1 ), . . . , rk1 , zk1 , rk , zk ) C 1 2|zk1 |2 .

Dun autre ct, si x L alors


z1 (.), . . . , zk2 (.)

Pr

r1 ,...,rk1 ,rk

Pr

zk1 r1 ,...,rk1 ,rk

zk1 , zk (x, z1 (r1 ), . . . , rk1 , zk1 , rk , zk ) C

 |z |2
zk (x, r1 , z1 (r1 ), . . . , rk , zk ) C
2 k1 = 1/4.
zk1

10.2. Les classes Arthur-Merlin

269

Do :

x L =

x L =

z1 (.), . . . , zk2 (.)



Pr r1 ,...,rk1 ,r zk1 , zk (x, r1 , z1 (r1 ), . . . , rk1 , zk1 , rk , zk ) C 2/3
k

z1 (.), . . . , zk2 (.)



Pr r1 ,...,rk1 ,r zk1 , zk (x, r1 , z1 (r1 ), . . . , rk1 , zk1 , rk , zk ) C 1/3,
k

ce qui est la dfinition dun protocole AM[2k 2] o A envoie r1 , M envoie z1 , , M


envoie zk2 , A envoie rk1 , rk et M envoie enfin zk1 , zk . Donc L AM[2k 2].

10-Y

Remarques

La technique de la rptition parallle vue dans la preuve prcdente permet


k
de rduire la probabilit derreur dans tout protocole AM ou MA jusqu 2n pour
toute constante k > 0.
On remarque en examinant la preuve que si le protocole AM[k] de dpart ne fait
aucune erreur dans le cas o x L (cest--dire que A accepte avec probabilit 1
dans ce cas), alors il en est de mme pour le protocole AM final.
Plus gnralement, on notera AM[t (n)] la classe des langages reconnus par un protocole Arthur-Merlin t (n) tours. Si t (n) est un polynme et t (n) 2, alors le thorme prcdent est tendu sans difficult lnonc suivant : pour toute constante
k 0, AM[t (n) + k] = AM[t (n)].

. 10-Z

Exercice

Montrer les diffrents points de la remarque prcdente.


Ainsi, lorsquon parle de protocoles Arthur-Merlin ayant un nombre constant de tours,
on parle en ralit seulement des classes MA ou AM.

10.2.3

Erreur dun seul ct

La dfinition de MA ou AM est symtrique dans le sens o lerreur maximale commise


lorsque x L ou lorsque x L est la mme, 1/3. On a vu la remarque 10-Y que lon
k
peut rduire cette erreur jusqu 2n . Nous allons voir que nous pouvons mme empcher
toute erreur dans le cas o x L.

270
10-AA

Chapitre 10. Protocoles interactifs


Proposition

Tout langage L MA est reconnu par un protocole MA qui ne fait aucune erreur lorsque
x L, cest--dire quArthur accepte avec probabilit 1 lorsque x L et avec probabilit
1/3 lorsque x L.
De mme, tout langage L AM est reconnu par un protocole AM qui ne fait aucune
erreur lorsque x L, cest--dire quArthur accepte avec probabilit 1 lorsque x L et
avec probabilit 1/3 lorsque x L.
Ide de la dmonstration Comme au thorme 8-N (BPP p2 ), lorsque x L la probabilit daccepter est grande donc on peut recouvrir tout lespace des choix alatoires
par un nombre polynomial de translations de lensemble des mots alatoires amenant
une acceptation.
Dans le cas MA, Merlin fournit ces translations : Arthur na plus qu vrifier quun
mot alatoire r appartient lune des translations et accepte avec probabilit 1 si x L.
En revanche, lorsque x L les translations ne couvrent quune petite partie de lespace
et Arthur rejette avec grande probabilit.
Dans le cas AM, on conoit dabord un protocole MAM pour que Merlin puisse fournir
les translations, puis le protocole est transform en AM grce au thorme 10-W et la
remarque 10-Y.
Dmonstration Nous commenons par MA. Soit L MA reconnu par un protocole
avec erreur maximale 2n (o n dsigne la taille de lentre x ) :

x L =
x L =

y Pr r ((x, y, r ) B) 1 2n
y Pr r ((x, y, r ) B) 2n .

Nous allons utiliser une technique similaire la preuve du thorme 8-N (BPP p2 ).
On note R x,y lensemble des mots r tels que (x, y, r ) B . On a donc : si x L alors
y, |R x,y | (12n )2|r | , et si x L alors y, |R x,y | 2|r |n . Par le lemme 8-O, si x L
alors il existe N = 1 + |r |/n mots u1 , . . . , uN de taille |r | tels que
i (R x,y + ui ) = {0, 1}|r | .

Et bien sr, si x L alors pour tous mots u1 , . . . , uN de taille |r |, on a


| i (R x,y + ui )| N 2|r |n < 1/3 2|r |

(pour n suffisamment grand). Voici donc le nouveau protocole MA pour L :


Merlin envoie y, u1 , . . . , uN ;
Arthur choisit v de taille |r | au hasard et accepte ssi v i (R x,y +
ui ), cest--dire si i , (x, y, v + ui ) B .

10.2. Les classes Arthur-Merlin

271

Si x L alors Merlin peut envoyer le bon y et les bons mots ui pour quArthur accepte
avec probabilit 1. Si x L, alors quels que soient y, u1 , . . . , uN , Arthur rejettera avec
probabilit au moins 2/3.
Nous passons maintenant au cas de AM, en partant dun protocole avec probabilit
derreur au plus 2n :

x L =
x L =

Pr r (y, (x, y, r ) B) 1 2n
Pr r (y, (x, y, r ) B) 2n .

Nous utilisons les mmes notations que prcdemment et lide est similaire.
Si x L alors | y R x,y | (1 2n )2|r | donc il existe des mots u1 , . . . , uN tels que
i,y (R x,y + ui ) = {0, 1}|r | . En revanche, si x L alors | y R x,y | 2|r |n et donc pour
tous mots u1 , . . . , uN , | i,y (R x,y + ui )| N 2|r |n < (1/3)2|r | (pour n suffisamment
grand).
Nous transformons le protocole AM en un protocole MAM comme suit :
Merlin envoie u1 , . . . , uN ;
Arthur envoie v ;
Merlin envoie y ;
Arthur vrifie que v i (R x,y + ui ), cest--dire que
i , (x, y, v + ui ) B.

Le dernier tour est dterministe, nous avons donc un protocole MAM. Si x L alors il
existe des mots ui tels que i ((y R x,y )+ ui ) = {0, 1}|r | . Au premier tour, Merlin envoie
de tels mots ui . Le mot v renvoy par Arthur appartient donc (R x,y + ui ) pour un
certain y et un certain i : Merlin peut envoyer le y correspondant et Arthur accepte
avec probabilit 1. Si x L, alors quels que soient les mots ui envoys par Merlin,
| i ,y (R x,y + ui )| < (1/3)2|r | donc la probabilit que v i (R x,y + ui ) est au plus 1/3.
Grce la remarque 10-Y, ce nouveau protocole MAM peut tre transform en un
protocole AM sans perdre la proprit daccepter avec probabilit 1 quand lentre est

dans le langage.

Cela nous permet de placer MA et AM dans la hirarchie polynomiale.


10-AB

Corollaire
MA p2

et

AM p2 .

272

Chapitre 10. Protocoles interactifs

Dmonstration Grce la proposition 10-AA, lappartenance un langage L MA


scrit :
x L yr (x, y, r ) B

o B P, cest--dire que L p2 . De mme, lappartenance un langage L AM


scrit :
x L r y(x, y, r ) B

o B P, cest--dire que L p2 .

10.2.4

Bits alatoires publics ou privs

La diffrence entre les protocoles Arthur-Merlin et les protocoles de type IP est que dans
ces derniers, les bits alatoires utiliss par le vrificateur sont privs, cest--dire inconnus du prouveur. Ce nest pas le cas de Merlin qui connat les bits alatoires dArthur au
moment o il les tire : on dit alors quils sont publics. Garder ses bits privs donne au
vrificateur plus de latitude, et le protocole pour le problme coISO donn plus haut (section 10.1.2) utilise en effet de manire cruciale le fait que les bits alatoires sont inconnus
du prouveur.
Nanmoins, et aussi surprenant que cela puisse paratre, Goldwasser et Sipser [GS86] ont
montr que cacher les bits alatoires au prouveur (cest--dire utiliser des bits privs) napporte pas de puissance supplmentaire. Nous navons introduit les classe Arthur-Merlin
que pour un nombre constant de tours, mais nous utiliserons la gnralisation vidente
un nombre polynomial t (n) de tours en notant AM[t (n)]. Nous avons tout dabord
besoin dun lemme technique permettant de concevoir un protocole pour calculer une
approximation de la taille dun ensemble .
10-AC

Lemme

Soit E {0, 1}n un ensemble de mots de taille n sur lalphabet {0, 1}, que lon verra comme
des vecteurs sur lespace vectoriel (F2 )n , et soit m < n et k m deux entiers (avec k 3).
Dans ce qui suit, A1 , . . . , Ak dsigneront des matrices alatoires sur F2 de taille m n (cest-dire des applications linaires de {0, 1}n vers {0, 1} m ) et y1 , . . . , y8k 2 dsigneront 8k 2 mots
alatoires de {0, 1} m formant un ensemble not Y . On note A(E) = j A j (E) {0, 1} m .
1. Si |E| 2 m3 alors la probabilit que Y A(E) = ; est suprieure 1 2k (grande
probabilit dintersection de Y par les images de E ).
2. Pour tout d > 0, si |E| 2 m /d alors la probabilit que Y A(E) = ; est infrieure
8k 3 /d (faible probabilit dintersection de Y par les images de E ).
2. Ce genre de protocole est une brique importante pour concevoir des protocoles plus sophistiqus. Cest
pourquoi dautres protocoles existent pour valuer la taille dun ensemble ; ils varient par la probabilit derreur ou par le nombre dlments dont il faut tester lappartenance lensemble. On peut citer notamment le
protocole de Sipser [Sip83].

10.2. Les classes Arthur-Merlin

273

Ide de la dmonstration Si lensemble E est grand alors ses images par les applications
Ai couvrent une grande partie de {0, 1} m et lun des mots alatoires yi a une grande
probabilit dappartenir lune de ces images.
Si en revanche lensemble E est petit, alors ses images le sont galement et un mot
alatoire yi aura une faible chance dtre dans lunion des images.
Dmonstration
1. On commence par le cas o E est de grande taille. Quitte considrer un sousensemble de E , on peut supposer que |E| 2 m2 .
Montrons dabord que |A(E)| |E|/k avec grande probabilit. Il suffit de montrer quavec grande probabilit il existe i tel que |Ai (E)| |E|/k . On appelle
classe par Ai dun lment x E lensemble des lments x E qui ont la
mme image que x par Ai . Il suffit alors de montrer quavec grande probabilit,
lun des Ai possde au moins |E|/k classes distinctes, et par le principe des tiroirs,
il est suffisant que le nombre total cumul de classes de A1 , de A2 , et de Ak
soit au moins |E|.
Pour cela, il suffit de montrer quavec grande probabilit,
x E, j , x E (x = x = A j x = A j x ) :

en effet, si tel est le cas alors tout point x E est seul dans sa classe pour lun
des A j , et donc le nombre total cumul de classes est au moins |E|. Nous allons
montrer que cette proprit est vraie avec probabilit au moins 12k2 (rsultat
intermdiaire quon notera ()), cest--dire que son complmentaire est vrai avec
probabilit au plus 2k2 .
Soit x {0, 1}n , x = 0, et i [1, m]. Pour exactement la moiti des matrices A de
taille m n sur F2 , la i -me coordonne de Ax est 1 : en effet, si le j -me bit de x
est non nul, alors il suffit de changer la coordonne (i , j ) de A pour faire passer la
i -me coordonne de Ax de 1 0. Par ailleurs, pour une matrice alatoire A, les
diffrentes coordonnes de Ax sont indpendantes les unes des autres puisque
la i -me dpend uniquement de la i -me ligne de A. On en dduit que pour
x = x , PrA(Ax = Ax ) = 2m puisque les m coordonnes de A(x x ) doivent
tre nulles, et donc que pour tout j , PrAj (x E (x = x A j x = A j x )) |E|2m
par lingalit de Boole (proposition A-B).
Puisque les matrices A1 , . . . , Ak sont indpendantes, on a donc
Pr

A1 ,...,Ak


j x E (x = x A j x = A j x ) |E|k 2mk .

On dduit par lingalit de Boole que


Pr

A1 ,...,Ak


x E j x E (x = x A j x = A j x ) |E|k+1 2mk .

Ainsi, si |E| 2 m2 alors la probabilit prcdente est majore par


2(m2)(k+1) 2mk = 22k+m2 2k2 puisque k m,

274

Chapitre 10. Protocoles interactifs


ce qui montre le rsultat ().
Donc |A(E)| |E|/k avec probabilit au moins 1 2k2 . Puisque |E| 2 m3 ,
on en dduit que |A(E)| 2 m /(8k) avec probabilit 1 2k2 . Si cest le cas,
alors en tirant 8k 2 points y1 , . . . , y8k 2 {0, 1} m , la probabilit que tous soient hors
2
de limage A(E) est au plus (1 1/(8k))8k 2k1 (pour k 3, en utilisant
n
lingalit (1 1/n) < 1/e ). On en dduit que
Pr

A1 ,...,Ak ,Y

(Y A(E) = ;) 1 2k1 2k2 1 2k .

2. Puisque A(E) est compos des images de E par k matrices, on a |A(E)| k|E|.
Donc |A(E)| k2 m /d par hypothse sur |E|, cest--dire |A(E)|/2 m k/d . Pour
chacun des 8k 2 mots y j , la probabilit quil soit dans A(E) est donc k/d . Par
lingalit de Boole (proposition A-B), la probabilit que lun dentre eux soit
dans A(E) est donc majore par 8k 3 /d .

Ce lemme permet de concevoir un protocole pour valuer la taille dun ensemble, dans lequel Merlin na besoin denvoyer quun seul mot de E . En effet, si Merlin veut convaincre
Arthur quun ensemble E a une taille au moins 2 m3 , on obtient le protocole suivant o
lon suppose que tester lappartenance E se fait en temps polynomial :

Merlin envoie m Arthur ;


Arthur envoie des matrices alatoires A1 , . . . , Ak et des mots alatoires y1 , . . . , y8k 2 ;
Merlin rpond par un mot x E ;
Arthur vrifie que {A1 (x), . . . , Ak (x)} {y1 , . . . , y8k 2 } = ;.
Si |E| 2 m3 alors Arthur accepte avec probabilit 1 2k ; si |E| 2 m /d alors Arthur
accepte avec probabilit 8k 3 /d .
Nous aurons en outre besoin dun lemme technique permettant de dcouper un grand
ensemble en de nombreuses grosses parties.
10-AD

Lemme

Soit E1 , . . . , En des ensembles finis non vides tels que | i Ei | = N . Alors il existe un entier
N 1 tel que le nombre de i satisfaisant |Ei | N soit au moins N /(N (1 + ln n)) (o le
logarithme est en base e ).
Pour n 10, 1 + ln n log n (o log dsigne le logarithme en base 2), donc on peut
minorer le nombre de i ci-dessus par N /(N log n).

10.2. Les classes Arthur-Merlin

275

Dmonstration Pour n = 1, il suffit de prendre N = N = |E1 |.


On considre donc maintenant n > 1. Remarquons dabord que
n

i =1

1/i < 1 +

d x/x = 1 + ln n.
1

Sans perte de gnralit on peut supposer que les Ei vrifient |E1 | |E2 | |En |.
Nous allons montrer quil existe i tel que i|Ei | N /(1 + ln n), ce qui impliquera le
rsultat puisque les i ensembles E1 , . . . , Ei seront chacun de cardinal N /(i(1 + ln n)).
Si ce nest pas le cas, on a alors |Ei | N /(i (1 + ln n)) pour tout i , donc
| i Ei |

N /(i(1 + ln n)) = (N /(1 + ln n))

i=1

une contradiction.
10-AE

1/i < N ,

i =1

Thorme (Goldwasser et Sipser, 1986)

Pour tout polynme t (n) 2, IP[t (n)] = AM[t (n)].


Ide de la dmonstration Linclusion intressante est IP[t (n)] AM[t (n)] o nous souhaitons transformer un protocole bits alatoires privs (type IP) en protocole bits
alatoires publics (type AM). Il sagit dvaluer par un protocole Arthur-Merlin le
nombre de choix alatoires (privs) qui font accepter le vrificateur, afin de dterminer
si la probabilit dacceptation est grande ou non.
Pour valuer la taille de cet ensemble, on utilise le lemme 10-AC, mais Arthur ne peut
pas tester directement lappartenance lensemble car il lui faut connatre les rponses
du prouveur. Le protocole Arthur-Merlin simule alors chaque tape du protocole IP,
et au cours de la simulation Merlin fournit Arthur les questions typiques du vrificateur et les rponses associes du prouveur. Il lui faut montrer que les questions
quil propose sont effectivement typiques (cest--dire quelles refltent le comportement le plus probable du vrificateur), ce qui se fait en valuant le nombre de choix
alatoires aboutissant ces questions, grce aux lemmes 10-AC et 10-AD.
Dmonstration Linclusion AM[t (n)] IP[t (n)] est vidente puisque dans un protocole IP bits privs, le vrificateur peut envoyer ses bits alatoires au prouveur et
simuler ainsi un protocole Arthur-Merlin.
Pour lautre inclusion, soit L IP[t (n)] par un protocole de type IP entre un vrificateur V et un prouveur P . partir du protocole de type IP[t (n)] entre V et P , nous
allons construire un protocole de type AM[t (n) + 4] entre A et M (et on se ramnera
AM[t (n)] grce la remarque 10-Y). Le but de Merlin est de convaincre Arthur que
pour la plupart des choix alatoires (privs) r du vrificateur V , inconnus de P , le
prouveur P arrivait convaincre V avec grande probabilit.
Hypothses et notations Sans perte de gnralit, on suppose que t (n) est pair et pour
simplifier on notera t (n) = 2s ; que V et P changent chaque tour un message de

276

Chapitre 10. Protocoles interactifs

p(n) bits, o p(n) est un polynme qui vrifie 2 p(n) 10 pour tout n (cest--dire
p(n) log 10, cela pour simplifier lapplication du lemme 10-AD) ; et que V dispose
au total de p(n) bits alatoires formant un mot r . On note y1 , z1 , y2 , . . . , y s , z s les 2s
messages envoys alternativement par V puis P , qui sont donc tous de taille p(n). On
fixe par ailleurs k = 2 + log(s + 1), de sorte que (s + 1)2k < 1/3.
On va aussi supposer que la probabilit derreur est faible. Si lon effectuait q rptitions parallles du protocole, on passerait dune probabilit derreur 1/3 q pour
une constante < 1 tandis que la taille des messages changs passerait q p(n) : on
pourrait choisir q polynomial en n tel que q < max(q p(n), 6k 3 )2s2 , cest--dire que
la probabilit derreur serait infrieure la taille des messages puissance (2s 2) et
(6k 3 )2s2 . Ainsi, sans perte de gnralit on supposera pour la suite que la probabilit
derreur finale est 2 o vrifie la fois < (1 2 ) p(n)s et < (6k 3 )s1 .
Pour i s on dfinit
Ey1 ,...,yi = {r | V (x, r ) = y1 V (x, r, z1 ) = y2 V (x, r, z1 , . . . , zi 1 ) = yi
x est accept dans le protocole entre V et P avec bits alatoires r },

cest--dire lensemble des bits alatoires de V qui permettent dobtenir la suite de messages y1 , . . . , yi sachant que les rponses de P sont z1 , . . . , zi1 (celles-ci ne dpendent
que des y1 , . . . , yi 1 et non de r puisque les bits alatoires de V sont privs), dans une
excution du protocole qui accepte x . On remarque en particulier que
pour tout 0 < i s,

Ey1 ,...,yi 1 =

yi

Ey1 ,...,yi .

Selon cette notation, E (o est le mot vide) dsigne lensemble


{r | x est accept dans le protocole entre V et P }.

On a alors x L ssi |E | > 2 p(n) : en effet, dans ce cas V accepte pour une proportion
strictement suprieure de ses choix alatoires r de taille p(n), donc x ne peut pas
tre hors de L par dfinition du protocole entre V et P qui a une probabilit derreur
2 . Ainsi, Merlin va chercher prouver Arthur que |E | > 2 p(n) .
Discussion informelle Le problme est que lappartenance dun mot r E nest a
priori pas testable par Arthur sans connatre les rponses z1 , . . . , z s de P , donc on ne
peut pas appliquer directement le protocole dapproximation de la taille dun ensemble
du lemme 10-AC. On peut en revanche lutiliser indirectement. Rappelons que P na
pas accs aux bits alatoires de V , donc il ne peut travailler directement sur r : il
manipule seulement les questions yi de V et ses rponses zi . Lide pour prouver que
E est gros est de montrer quil existe de nombreuses questions y1 pour lesquelles Ey1
est gros : cela implique que E = y1 Ey1 est gros. De mme, prouver que Ey1 est gros
ncessite de montrer quil existe de nombreuses questions y2 telles que Ey1 ,y2 est gros,
etc.
Donc Merlin souhaite montrer quil y a de nombreuses questions y1 pour lesquelles Ey1
est gros. Pour cela Arthur lui envoie des matrices alatoires selon le lemme 10-AC et

10.2. Les classes Arthur-Merlin

277

Merlin lui donne un tel y1 (cens certifier quil y a beaucoup de mots y1 tels que Ey1 est
gros), ainsi que la rponse z1 de P . Merlin prtend alors quil y a de nombreux y2 pour
lesquels Ey1 ,y2 est gros : Arthur lui envoie des matrices alatoires selon le lemme 10-AC
et Merlin lui donne un tel y2 , ainsi que la rponse z2 de P , etc.
La notion de beaucoup et de gros dans la discussion ci-dessus se rfre au
lemme 10-AD. Si x L alors on sait que |E | (1 2 )2 p(n) (mais il suffit de montrer
Arthur que |E | > 2 p(n) ). Par le lemme 10-AD, il existe N1 et N1 tels que pour au
moins N1 mots y1 , on ait
|Ey1 | N1 ,

et N1 N1 (1 2 )2 p(n) / p(n).

Merlin envoie un tel y1 et la rponse z1 de P . En ralit, il suffit Merlin de prouver


Arthur que |Ey1 | N1 = N1 / p(n) s1 , puisque N1 N1 > 2 p(n) par hypothse sur . Il
envoie donc N1 et N1 et prtend que |Ey1 | N1 .
Il agit de mme pour la suite : on sait que |Ey1 | N1 donc il existe N2 et N2 tels que
N2 N2 N1 / p(n) et pour au moins N2 mots y2 on ait |Ey1 ,y2 | N2 . Merlin envoie un
tel y2 ainsi que la rponse z2 de P . Mais il suffit Merlin de montrer que
|Ey1 ,y2 | N2 = N2 / p(n) s 2 .

Il envoie donc N2 et N2 et prtend que |Ey1 ,y2 | N2 . Et ainsi de suite. la dernire


tape, il doit montrer que |Ey1 ,...,ys | N s , ce qui se fait grce au lemme 10-AC en
envoyant un lment de Ey1 ,...,ys .
Si x L, alors E (1 2 )2 p(n) et la stratgie prcdente permet donc Merlin de
convaincre Arthur avec grande probabilit. En revanche, si x L alors les ensembles
Ey1 ,...,yi sont trop petits pour que Merlin puisse convaincre Arthur avec grande probabilit. Nous formalisons cette intuition dans la suite.
Le protocole Arthur-Merlin Plus prcisment, on obtient le protocole suivant entre
Arthur et Merlin.
Tours 1 et 2 :
Merlin envoie N1 , N1 et prtend que pour au moins N1 mots y1 ,
on a |Ey1 | N1 .
Arthur vrifie que N1 N1 > 2 p(n) (sinon il rejette).
Soit m1 = 3 + log N1 . Arthur renvoie des matrices alatoires
A11 , . . . , A1k de taille m1 p(n), ainsi que des mots alatoires
1
r11 , . . . , r8k
{0, 1} m1 formant un ensemble R1 comme au
2
lemme 10-AC.
Tours 2i 1 et 2i (2 i s ) :

278

Chapitre 10. Protocoles interactifs


Merlin envoie yi 1 , zi1 , Ni , Ni et prtend que pour au moins Ni
mots yi , on a |Ey1 ,...,yi | Ni .
Arthur vrifie que Ai 1 (yi1 ) Ri1 = ; (sinon il rejette).
Arthur vrifie que Ni Ni Ni1 (sinon il rejette).
Soit mi = 3 + log Ni . Arthur renvoie des matrices alatoires
A1i , . . . , Aik de taille mi p(n), ainsi que des mots alatoires
i
r1i , . . . , r8k
{0, 1} mi formant un ensemble Ri comme au
2
lemme 10-AC.
Tours 2s + 1 2s + 3 :
Merlin envoie y s , z s et prtend que |Ey1 ,...,ys | N s .
Arthur vrifie que As (y s ) R s = ; (sinon il rejette).
Soit m = 3 + log N s . Arthur renvoie des matrices alatoires
A1 , . . . , Ak de taille m p(n), ainsi que des mots alatoires

m
r1 , . . . , r8k
formant un ensemble R comme au
2 {0, 1}
lemme 10-AC.
Merlin envoie un mot r de taille p(n).
Arthur vrifie que r Ey1 ,...,ys et que A (r ) R = ; (sinon il
rejette). Si tous les tests ont russi, Arthur accepte.

On remarquera que la dernire intervention dArthur est dterministe donc nest pas
un tour proprement parler. Il y a 2s + 3 = t (n) + 3 tours et Merlin commence,
donc le protocole est du type MA[t (n)+3] AM[t (n)+4]. La remarque 10-Y permet
de se ramener AM[t (n)].
Analyse lorsque x L Si x L, alors Merlin peut convaincre Arthur de la faon
esquisse ci-dessus. Plus prcisment :
aux tours 1 et 2, |E | (1 2 )2 p(n) donc par le lemme 10-AD il existe N1 , N1
tels que N1 N1 (1 2 )2 p(n) / p(n) et au moins N1 mots y1 vrifient |Ey1 | N1 .
On dfinit N1 = N1 p(n)s+1 et Merlin envoie N1 et N1 . Par dfinition de , on
a N1 N1 > 2 p(n) donc Arthur ne rejette pas et envoie les matrices et les mots
alatoires.

Aux tours 2i 1 et 2i : le choix de Ni 1 et Ni1


assure quil existe au moins Ni 1

mots yi 1 pour lesquels |Ey1 ,...,yi 1 | Ni 1 . Par le lemme 10-AC, il y a suffisamment de tels mots yi1 pour que Merlin puisse rpondre au dfi dArthur den
trouver un tel que Ai 1 (yi 1 ) Ri 1 = ; avec probabilit 1 2k . En plus de ce
mot yi 1 , Merlin envoie la rponse zi 1 de P correspondante.
Puisque |Eyi1 | Ni1 , le lemme 10-AD garantit quil existe Ni , Ni tels que

Ni Ni Ni1
/ p(n)

10.2. Les classes Arthur-Merlin

279

et au moins Ni mots yi vrifient |Eyi | Ni . On dfinit Ni = Ni p(n)s+i et


Merlin envoie Ni et Ni .
Les tests dArthur sont positifs puisque Ai1 (yi 1 ) Ri 1 = ; et que de plus

p(n)s+i 1 = Ni1 .
Ni Ni = Ni Ni p(n)s+i Ni1
Aux tours 2s + 1 2s + 3 : le choix de N s et N s permet de sassurer quil existe
au moins N s mots y s pour lesquels |Ey1 ,...,ys | N s . Par le lemme 10-AC, il y a
suffisamment de tels mots y s pour que Merlin puisse rpondre au dfi dArthur
den trouver un tel que As (y s ) R s = ; avec probabilit 1 2k . En plus de ce
mot y s , Merlin envoie la rponse z s de P correspondante.
Puisque |Ey1 ,...,ys | N s = N s , Merlin peut rpondre au dernier dfi dArthur avec
probabilit 1 2k et envoyer un mot r tel que A (r ) R = ;. Il achve ainsi
de convaincre Arthur.
Lorsque x L, la probabilit que Merlin ne convainque pas Arthur est donc 2k
chacun des s + 1 dfis dArthur, soit au total sur lensemble du protocole au plus
(s + 1)2k . Le choix de k assure donc que Merlin convainc Arthur avec probabilit
2/3.
Analyse lorsque x L Nous montrons maintenant que Merlin ne peut pas convaincre
Arthur avec grande probabilit lorsque x L. Si x L, alors |E | 2 2 p(n) . Nous allons
raisonner par labsurde en partant de la fin du protocole et en supposant que Merlin
convainque Arthur avec probabilit > 1/3.
Au dernier tour, cela signifie que Merlin a pu trouver un mot r convenable avec

probabilit > 1/3 : le lemme 10-AC implique |Ey1 ,...,ys | 2 m /(24k 3 ) N s /(6k 3 ).
De mme au tour 2s + 1, pour convaincre Arthur avec probabilit > 1/3 il faut
que le nombre de y s tels que |Ey1 ,...,ys | N s /(6k 3 ) soit au moins N s /(6k 3 ) : on en
dduit que |Ey1 ,...,ys 1 | N s N s /(6k 3 )2 .
Pour les tours 2i 1 et 2i , o i varie de s 3 :
on doit avoir Ni Ni Ni1 pour tout i 2 (en particulier, N s N s N s1 donc
|Ey1 ,...,ys 1 | N s1 /(6k 3 )2 ) ;
le nombre de mots yi1 tels que |Ey1 ,...,yi 1 | Ni1 /(6k 3 ) si +2 doit tre au moins
Ni 1 /(6k 3 ), ce qui implique

|Ey1 ,...,yi 2 | Ni 1 Ni1


/(6k 3 ) si+3 Ni2
/(6k 3 ) si+3 .

Aux tours 3 et 4, on doit avoir que le nombre de mots y1 tels que |Ey1 | N1 /(6k 3 ) s
soit au moins N1 /(6k 3 ), donc |E | N1 N1 /(6k 3 ) s+1 . La premire vrification dArthur
sassure que N1 N1 > 2 p(n) , donc |E | > 2 p(n) /(6k 3 ) s +1 > 2 2 p(n) par dfinition de .
Cest une contradiction avec le fait que x L et que la probabilit derreur dans le

protocole entre V et P est 2 .

280
10-AF

Chapitre 10. Protocoles interactifs


Remarque

Attention, le thorme prcdent nimplique bien sr pas que

IP = AM, car pour des raisons historiques, comme nous lavons vu, les classes ArthurMerlin sont dfinies pour un nombre constant de tours alors que la classe IP lest pour

un nombre de tours polynomial

10.2.5

Le problme de lisomorphisme de graphes

Une application des protocoles interactifs concerne le problme de lisomorphisme de


graphes introduit la section 10.1.2. On ne sait pas si le problme ISO est NP-complet
ni sil est dans P. Il sagit de lun des rares problmes naturels dans ce cas, aux cts de
la factorisation dentiers. Nanmoins Boppana, Hstad et Zachos [BHZ87] ont montr
quil est peu probable quil soit NP-complet car cela amnerait un effondrement de la
hirarchie polynomiale.
10-AG

Thorme (Boppana, Hstad et Zachos, 1987)

Si coNP AM alors p2 = p2 (et donc PH = p2 ).

10-AH

Corollaire

Si ISO est NP-complet, alors p2 = p2 (et donc PH = p2 ).


Dmonstration Grce au thorme 10-AE, le protocole IP[2] pour coISO vu la section 10.1.2 peut tre transform en protocole AM, donc coISO AM.
Si ISO est NP-complet alors coISO est coNP-complet (cf. lemme 3-AI) : on en dduit

que coNP AM et le thorme 10-AG conclut.

Dmonstration du thorme 10-AG Il suffit de montrer que p2 p2 puisque cela implique p2 = cop2 cop2 = p2 . Soit L p2 : on a
x L yz(x, y, z) B,

o y et z sont de taille polynomiale et B P. Nous allons exprimer lappartenance


L sous une forme p2 .
Le langage C = {(x, y) | z(x, y, z) B} est dans coNP, donc dans AM par hypothse.
Par la proposition 10-AA et en rduisant la probabilit derreur, on a :

(x, y) C =
(x, y) C =

r t (x, y, r, t ) D
Pr r (t (x, y, r, t ) D) < 2|y| ,

o D P et r et t sont des mots de taille polynomiale. On en dduit que


x L = yr t (x, y, r, t ) D,

10.3. Le thorme PCP

281

ce qui implique videmment


x L = r yt (x, y, r, t ) D.

Lorsque x L, pour tout mot y soit Ry = {r | t (x, y, r, t ) D}. Par ce qui prcde,
on a :
x L = y|Ry | < 2|r ||y| ,

ce qui implique | y Ry | < 2|r | donc r y Ry , cest--dire :


x L = r yt (x, y, r, t ) D.

On en dduit que

x L r yt (x, y, r, t ) D,

donc L p2 .

Nous verrons une autre application des protocoles interactifs au chapitre 11 sur les bornes
infrieures non uniformes.

10.3

Le thorme PCP

Nous terminons ce chapitre par un bref aperu dun autre type de protocoles interactifs
appel Probabilistically Checkable Proofs. Le rsultat principal (et difficile) connu sous le
nom de thorme PCP a t une contribution majeure la complexit et a permis
de montrer des rsultats dinapproximabilit comme nous allons le voir. Nous ne donnerons pas la preuve de ce thorme et invitons le lecteur consulter le livre dArora et
Barak [AB09] pour les dtails. Les premires versions du thorme sont dues Arora et
Safra [AS92] et Arora, Lund, Motwani, Sudan et Szegedy [Aro+92]. Dinur [Din06] en
a grandement simplifi la preuve. La version que nous donnons et lapplication 3SAT
sont de Hstad [Hs97].

10.3.1

Probabilistically Checkable Proofs

Pour les preuves vrifiables de manire probabiliste , le mcanisme dinteraction ressemble fortement la classe NP mais avec une vrification probabiliste du certificat. Il
existe plusieurs variantes dans la dfinition des classes PCP notamment sur la probabilit
derreur, qui ne sont pas forcment quivalentes en termes de nombre de requtes ; nous
prsentons ici la variante qui permet dobtenir le meilleur rsultat dinapproximabilit.
10-AI

Dfinition

Soit M une machine de Turing dterministe et un mot de taille quelconque. On


dit que M a un accs direct , et on note M , si M peut demander de consulter le

282

Chapitre 10. Protocoles interactifs


i -me bit de (elle crit pour cela i en binaire sur un ruban spcial) et recevoir la
rponse en temps unitaire.
En dautres termes, M a accs loracle = {i | i = 1} o i est cod en binaire.
Ainsi, accder tout bit de demande M seulement O(log ||) tapes.

Si r (n) et s (n) sont des fonctions et ]0, 1/4[ une constante, la classe
PCP (r (n), s (n))

est lensemble des langages L tels quil existe une machine de Turing dterministe
M fonctionnant en temps polynomial telle que :

x L =
x L =

Pr r {0,1} r (|x|) (M (x, r ) = 1) 1


Pr r {0,1} r (|x|) (M (x, r ) = 1) 1/2 + ,

et M consulte au plus s(|x|) bits de de manire non adaptative (cf. remarque


ci-dessous).
Ainsi, r (n) est le nombre de bits alatoires autoriss et s (n) est le nombre maximal
de bits de que M consulte.

Le mcanisme de certificat habituel des classes non dterministes est donc gnralis
une vrification probabiliste de la preuve, mais o lon contrle finement le nombre de
bits alatoires et le nombre de bits lus dans la preuve.
10-AJ

Remarques

Aucune contrainte nest impose sur la taille du mot ; cependant, en pratique


celle-ci est limite cause du temps de fonctionnement de M puisquen temps
polynomial t (n) elle ne pourra pas demander des bits dont la position scrit avec
plus de t (n) bits. Donc sans perte de gnralit, la taille de peut tre restreinte
O(1)
2n .
Le fait que les requtes de M soient non adaptatives nous permet de reformuler
laccs par lexistence dune fonction f : N N, calculable en temps
dterministe polynomial et donnant les positions consultes dans la preuve :

x L =
x L =

Pr r {0,1} r (|x|) (M (x, r, f (x,r,1) . . . f (x,r,s (|x|)) ) = 1) 1


Pr r {0,1} r (|x|) (M (x, r, f (x,r,1) . . . f (x,r,s(|x|)) ) = 1) 1/2 + .

10.3.2

Rsultats

De manire incroyable, dans ce contexte le thorme PCP montre quil suffit de lire 3 bits
de la preuve pour capturer toute la puissance de la classe NP. Cest exactement comme

10.3. Le thorme PCP

283

si un enseignant mettait au point une faon pour les tudiants de rdiger leur copie (un
code suivre pour rdiger une copie) grce auquel il na besoin de lire que trois lettres
alatoires de chaque copie pour mettre sa note
10-AK

Thorme (Hstad, 1997)

Pour tout ]0, 1/4[, NP = PCP (O(log n), 3).


Encore une fois, cela tmoigne de la puissance de lalatoire dans linteraction prouveur/vrificateur.
Ce thorme a des consquences profondes concernant lapproximation de nombreux
problmes NP-complets. Nous donnerons seulement un exemple mais beaucoup dautres
problmes peuvent tre traits ainsi. Soit Max3SAT le problme dvaluation (cest--dire
une fonction Max3SAT : N) suivant :
entre : une formule boolenne (x1 , . . . , xn ) en 3-CNF ;
sortie : le nombre maximal de clauses satisfaisables simultanment par une assignation de (x1 , . . . , xn ).
Avant de voir le rsultat dinapproximabilit, nous avons besoin dun lemme technique.
10-AL

Lemme

Toute fonction boolenne trois variables peut tre exprime par une formule boolenne
en 3-CNF ayant au plus 4 clauses.
Dmonstration Soit f (x, y, z) une fonction boolenne 3 variables. Nous lexprimons
dabord facilement grce 8 clauses au plus. Pour cela, on considre les valeurs possibles (a, b , c) {0, 1}3 affectes (x, y, z) : a = 0 on associe le littral x et a = 1 on associe x , de mme pour b avec y , et pour c avec z . Pour chaque triplet (a, b , c) {0, 1}3
tel que f (a, b , c) = 0, on ajoute alors comme clause la disjonction des littraux associs.
Ainsi au triplet (0, 1, 0) par exemple, on associe la clause (x y z), qui est fausse
seulement en (0, 1, 0). Au final on obtient la conjonction dau plus 8 clauses et cette
conjonction est fausse pour toutes les valeurs telles que f (a, b , c) = 0 et vraie ailleurs,
donc elle exprime bien f .
Nous nous ramenons maintenant au plus 4 clauses. En ignorant la variable z , il ny
a que quatre groupes possibles de clauses : (x y), (x y), (x y) et (x y).
Sil y a deux clauses dans le mme groupe, elles ont les mmes littraux en x et en
y et des littraux opposs en z , et peuvent donc tre factorises en supprimant
3. En ralit, il doit lire seulement 3 bits (et non lettres), mais il ne peut rpondre que par vrai ou faux et
non mettre une note puisquil doit sagir dun problme de dcision. Par dichotomie, pour mettre une note
entire sur 20 il na qu rpter 5 fois la procdure, cest--dire lire 15 bits au total. videmment, pour tre
tout fait honnte il faudrait que lenseignant diminue la probabilit derreur et donc rpte toute la procdure
plusieurs fois.

284

Chapitre 10. Protocoles interactifs

z : par exemple, (x y z) et (x y z) sont dans le mme groupe donc on les


remplacerait par la clause (x y), ce qui est quivalent la conjonction des deux

clauses originales.

Nous sommes prts pour le rsultat dinapproximabilit de Max3SAT.


10-AM

Corollaire

Soit > 0 quelconque. Si P = NP alors il nexiste pas dalgorithme dterministe polynomial approximant Max3SAT (7/8 + ).
Cest--dire que si P = NP, alors pour toute fonction f : N calculable en temps
polynomial telle que f Max3SAT, il existe une instance telle que
f () < (7/8 + )Max3SAT().

Dmonstration Sans perte de gnralit, on suppose < 1/8.


Par le thorme PCP, 3SAT PCP/2 ( log n, 3) pour une certaine constante > 0. Par
contrapose, supposons quil existe une fonction f calculable en temps polynomial
telle (7/8+)Max3SAT f Max3SAT : pour une instance (x) en 3-CNF, on souhaite
dcider en temps dterministe polynomial si 3SAT.
Dans le protocole PCP pour 3SAT, pour chacun des n choix des log n bits alatoires
r utiliss par le vrificateur on a une fonction f r calculable en temps polynomial qui
prend en argument les 3 bits (i1 , i2 , i3 ) lus de la preuve et renvoie 1 ssi est
satisfaisable. On peut exprimer le fait que f r (i1 , i2 , i3 ) = 1 par une formule r en
3-CNF de taille constante : le lemme 10-AL montre quil suffit de 4 clauses.
En ajoutant une variable boolenne yi pour chaque bit i de la preuve lu au cours
dune des excutions possibles du vrificateurs (il y en a donc N 3.2|r | = n O(1) ), on
construit la formule

(y1 , . . . , yN ) =

r .

On note m le nombre de clauses de , o m 4.2|r | est polynomial.


Si est satisfaisable, alors il existe une preuve qui satisfait r pour plus dune fraction (1 /2) des mots r , donc le nombre de clauses satisfaisables simultanment
dans est au moins (1 /2)m . En revanche, si nest pas satisfaisable, alors toute
preuve satisfait r pour au plus une fraction (1/2 + /2) des mots r (et pour les
autres, au moins une des 4 clauses de r nest pas satisfaite) donc le nombre de clauses
satisfaisables simultanment dans est au plus
((1/2 + /2) + 3/4(1/2 /2))m = (7/8 + /8)m.

Ainsi, sil existe une approximation f de Max3SAT meilleure que (7/8 + ), alors si
est satisfaisable on a
f () (7/8 + )(1 /2)m > (7/8 + /2)m,

10.3. Le thorme PCP

285

tandis que si nest pas satisfaisable on a f () (7/8 + /8)m . On peut donc distin
guer les deux cas en temps polynomial et dcider si 3SAT.

10-AN Remarque Ce rsultat est optimal dans le sens suivant. En tirant une affectation alatoire des variables dune formule en 3-CNF o chacune des m clauses a vraiment
trois variables diffrentes, lesprance du nombre de clauses satisfaites est (7/8)m puisque
chaque clause est satisfaite avec probabilit 7/8. Cette observation peut tre transforme
en un algorithme dterministe polynomial. Pour les formules en 3-CNF nayant pas toujours exactement trois variables distinctes par clause (comme ce que produit la rduction
utilise dans la preuve ci-dessus), un algorithme dterministe polynomial d Karloff
et Zwick [KZ97] permet lui aussi de satisfaire au moins 7/8 des clauses des formules
satisfaisables.
Les autres rsultats dinapproximabilit utilisant le thorme PCP concernent les problmes MaxCLIQUE, MinVertexCover, MaxCSP, etc., et procdent gnralement par rduction partir dun rsultat dinapproximabilit dj montr. En ralit, plutt quune
simple implication, les auteurs de [Aro+92] ont montr quil existe une quivalence entre
le thorme PCP et linapproximabilit de certains problmes.

11

Bornes infrieures non


uniformes
Pour classifier les problmes en fonction de leur difficult, en complexit on doit montrer
des bornes infrieures sur les ressources ncessaires la rsolution de ces problmes. Cela
revient souvent sparer des classes : par exemple, EXP = P (corollaire 2-P) signifie que
tout problme EXP-difficile ne peut tre rsolu en temps dterministe polynomial. De
mme, sparer NP de P revient montrer une borne infrieure superpolynomiale sur
le temps ncessaire pour rsoudre le problme SAT. Alors quon sait sparer les classes
dterministes entre elles (par le thorme de hirarchie dterministe 2-J) ou les classes
non dterministes entre elles (par le thorme de hirarchie non dterministe 2-AI), on
ne sait pas vraiment comparer de manire satisfaisante les classes dterministes et les classes
non dterministes comme le rappelle la clbre question P = NP ? .
De la mme manire quil reste ouvert de montrer la puissance du non-dterminisme,
comprendre la puissance de la non-uniformit reste une qute largement balbutiante.
Pour montrer que les calculs non uniformes napportent pas une puissance dmesure, il
sagit de montrer que certains problmes ne peuvent pas tre rsolus par des circuits de
petite taille. Cest lobjet de ce chapitre. Malheureusement, nous le verrons, les rsultats
sont encore assez limits.
Nous commencerons par des mthodes habituelles de diagonalisation afin de montrer que
certaines classes nont pas de petits circuits. Puis nous verrons que certaines restrictions sur
les circuits (profondeur borne ou monotonicit notamment) empchent de calculer des
problmes trs simples. Enfin, nous tudierons le cas des circuits arithmtiques calculant
des polynmes.

11.1

Circuits boolens sans restriction

Pour cette partie on notera SIZE(s(n)) lensemble des langages pouvant tre dcids par
une famille de circuits boolens (Cn ) de taille O(s (n)) et dont les portes ont un degr
entrant au plus 2.

288

Chapitre 11. Bornes infrieures non uniformes

11.1.1

Bornes infrieures en (n k )

Nous nous proposons ici de montrer que certains langages nont pas de circuits de taille
n k pour une constante k fixe. Nous commenons par un rsultat facile que nous amliorerons par la suite. Celui-ci apparat dej dans Kannan [Kan81].
11-A

Proposition (Kannan, 1981)

Pour toute constante k , PSPACE SIZE(n k ).


Plus prcisment, pour tout k il existe un langage Lk PSPACE et un entier N tels que
n N , tout circuit de taille n k pour dcider L=n
fait une erreur sur au moins une entre
k
de taille n .
Ide de la dmonstration Il sagit dune simple diagonalisation : on construit un langage L PSPACE sur lequel tous les circuits de taille O(n k ) se trompent. Pour chaque
taille n , on considre successivement tous les mots de taille n . Pour dterminer si lon
doit mettre un mot x dans L, on value tous les circuits qui ne se sont pas tromps sur
les mots prcdents : on met x dans L ssi la rponse majoritaire est 0. Ainsi, chaque
tape la moiti des circuits qui restent se trompent, donc en un nombre polynomial
dtapes on parvient liminer tous les circuits.
Dmonstration On note Cn lensemble de tous les circuits boolens de taille n k+1
O(k)
n entres : on remarquera que |Cn | = 2n
(cf. lemme 5-U). Pour n fix, on note
n
x 1 , . . . , x 2 lensemble des mots de taille n sur lalphabet {0, 1}, dans lordre lexicographique.
Dfinissons L=n , lensemble des mots de taille n du langage L que lon souhaite
construire, avec pour objectif davoir L PSPACE \ SIZE(n k ). Lensemble L=n sera
dfini mot aprs mot : on notera Li les mots ajouts lors des i premires tapes, avec
au dbut L0 = ;. On notera Ri les circuits de Cn restants (non encore limins )
aprs les i premires tapes du processus, avec bien sr R0 = Cn . Pour i allant de 1
1 + log |Cn |, on dfinit alors :

Li =

Li 1 {x i }
Li 1

si pour au moins la moiti des circuits C Ri1 , C (x i ) = 0 ;


sinon.

On pose alors Ri = {C Ri1 | C (x i ) = 1} dans le premier cas et, dans le second,


Ri = {C Ri1 | C (x i ) = 0}. On pose finalement L=n = i Li = L1+log |Cn | .
Montrons dans un premier temps que L PSPACE. Soit x i un mot de taille n : si
i > 1 + log |Cn | alors x i L et on peut rejeter. Sinon, on teste successivement si
x 1 , . . . , x i1 L pour pouvoir dcider si x i L. Pour j de 1 i , afin de tester si x j L
lorsquon connat la rponse pour x 1 , . . . , x j 1 , on procde de la faon suivante :

11.1. Circuits boolens sans restriction

289

compter le nombre N de circuits C de Cn qui dcident correctement si x 1 L, x 2 L, , x j 1 L (on a donc N = |R j 1 |) ;


parmi ces circuits, compter le nombre N de ceux qui renvoient
0 sur x j ;
accepter x j ssi N N /2.
Cette procdure requiert de se souvenir si x 1 L, , x j 1 L, donc de mmoriser
au plus log |Cn | bits, et dnumrer et simuler tous les circuits de Cn de taille n k+1 .
Tout cela se fait en espace polynomial.
Montrons maintenant que L SIZE(n k ). Soit (Cn ) une famille de circuits de taille
O(n k ), et soit une constante telle que |Cn | n k . Ainsi, pour tout n , on a
n k+1 |Cn |.
Soit n , de sorte que Cn Cn . Par construction de L, on a |R0 | = |Cn | et
|Ri | |Ri 1 |/2, donc R1+log |Cn | = ;. Or Ri est lensemble des circuits de Cn qui
donnent la bonne rponse sur x 1 , . . . , x i . Ainsi, Cn R1+log |Cn | doit se tromper sur

lun des mots x 1 , . . . , x 1+log |Cn | et donc la famille (Cn ) ne reconnat pas L.

Nous mentionnons une variante de cette proposition, non pas sur les circuits, mais sur les
conseils cette fois. La stratgie est trs similaire mais il faut simuler des machines de Turing
fonctionnant en temps polynomial et diagonaliser contre tous les conseils possibles. Cette
proposition amliore le corollaire 2-P (EXP = P) du thorme de hirarchie dterministe.

11-B

Proposition

Pour toute constante k , EXP P/n k .

. 11-C

Exercice

Montrer la proposition prcdente.


En ralit nous pouvons montrer mieux que PSPACE dans la proposition 11-A : nous
pouvons en effet descendre jusquau deuxime niveau de la hirarchie polynomiale. Nous
avons dabord besoin dun lemme intressant en lui-mme, qui nest autre quun simple
dnombrement et donne un thorme de hirarchie non uniforme .
11-D

Lemme (hirarchie non uniforme)

Pour tout entier k 1, il existe un langage L SIZE(n k ) reconnu par une famille de
circuits de taille 2n k+2 .

290

Chapitre 11. Bornes infrieures non uniformes

En particulier, SIZE(n k ) SIZE(n k+2 ).


Plus prcisment, pour tout n suffisamment grand, il existe un circuit C0 de taille 2n k+2
reconnaissant un ensemble E {0, 1}n qui nest reconnu par aucun circuit de taille majore par n k log n .
n

Dmonstration n fix, on note x 1 , . . . , x 2 les mots de taille n dans lordre lexicok+1


graphique sur lalphabet {0, 1}. Pour tout mot a {0, 1}n , on note La {0, 1}n
lensemble vrifiant :
si i > n k+1 alors x i La ;
sinon, x i La ssi ai = 1.
k+1

Clairement La = L b si a = b : pour tout n il y a donc exactement 2n ensembles La


distincts. Or chacun deux est reconnu par un circuit de taille 2n k+2 comme suit.
Pour chaque i n k+1 tel que ai = 1, on cre un sous-circuit vrifiant que lentre
x est gale x i : aprs avoir calcul les littraux x j (ce qui ajoute n portes), cest
simplement une conjonction des littraux x j (si le j -me bit de x i est 1) ou x j (si le
j -me bit de x i est 0), ce qui se fait avec (n 1) portes . On fait ensuite la disjonction
de tous ces sous-circuits : il y en a au plus n k+1 , il faut donc n k+1 1 portes . En
comptant les entres, la taille totale du circuit est donc majore par
2n + n k+1 (n 1) + (n k+1 1) = n k+2 + 2n 1 2n k+2 .

Par ailleurs, daprs le lemme 5-U il y a au plus 3 t t 3t circuits de taille t , donc le


k
k
nombre de circuits de taille n k log n est major par 3n log n (n k log n)3n log n , ce qui est
k+1
infrieur 2n pour n suffisamment grand. On en dduit que, pour n suffisamment
k+1
grand, il existe au moins un mot a {0, 1}n tel que La nest pas reconnu par un
k+1
circuit de taille n k log n . Pour chaque n on note an un tel mot a {0, 1}n et
on dfinit le langage L = nN Lan . Ainsi, il existe une constante N telle que pour tout
m N et pour toute famille de circuits (Cn ) de taille n k log n , le circuit C m ne dcide
pas L=m . Puisque pour toute constante , on a n k log n n k pour n suffisamment

grand, on en dduit que L SIZE(n k ).

Dans le mme article [Kan81] que prcdemment, Kannan montre aussi le rsultat suivant.
11-E

Thorme (Kannan, 1981)

Pour toute constante k , p2 SIZE(n k ).


Ide de la dmonstration Avec quatre quantificateurs, donc dans p4 , on peut exprimer
quil existe un circuit C0 de taille 2n k+2 , qui soit le premier dans lordre lexicographique

11.1. Circuits boolens sans restriction

291

tel que pour tout circuit C de taille O(n k ), il existe un mot y pour lequel C (y) = C0 (y) :
ainsi, le langage reconnu par C0 nest pas dans SIZE(n k ).
Pour se ramener p2 plutt que p4 , lastuce consiste utiliser le thorme 8-P de Karp
et Lipton : si NP P/poly alors le rsultat suit ; sinon PH = p2 donc en particulier
p4 = p2 .
Dmonstration Par le lemme 11-D, il existe des familles de circuits de taille 2n k+2 qui
dcident un langage hors de SIZE(n k ). Pour chaque n , nous allons trouver le premier
circuit C0 dans lordre lexicographique qui vrifie une telle proprit : il suffit dexprimer quil existe un circuit C0 de taille 2n k+2 tel que :
pour tout circuit C de taille n k log n , il existe un mot y {0, 1}n tel que
C (y) = C0 (y) (la fonction calcule par C0 ne possde pas de circuit de taille
n k log n ) ;
pour tout circuit C0 de taille 2n k+2 , soit C0 lex C0 , soit il existe C de taille
n k log n tel que pour tout mot y {0, 1}n on ait C (y ) = C0 (y ) (le circuit C0 est
le premier dans lordre lexicographique).
Une fois C0 isol, sur lentre x il suffit de tester si C0 (x) = 1 et on dcide ainsi lensemble reconnu par C0 , qui nest reconnu par aucun circuit de taille n k log n .
En symboles, sur lentre x les considrations prcdentes sexpriment donc comme
suit :
C0

C , C0 y, C y

C (y) = C0 (y)
C0 lex C0

C (y

) = C0 (y )

C0 (x) = 1 ,

ce qui dfinit un langage L p4 . Par dfinition, pour tout n suffisamment grand,


aucun circuit de taille n k log n ne reconnat L=n , donc L SIZE(n k ).
Il sagit maintenant de se ramener p2 . Si NP P/poly alors a fortiori p2 SIZE(n k ).

Sinon, par le thorme 8-P de Karp et Lipton, PH = p2 donc L p2 .

Dans le mme genre mais plus difficile, on peut montrer que la classe PP nadmet pas
non plus de circuits de taille n k pour un k fix. Avec le thorme 9-AI de Toda, premire vue le rsultat peut sembler moins fort que lnonc prcdent portant sur p2 , mais
en ralit on ne sait pas comparer directement les deux classes p2 et PP. Le rsultat de
Vinodchandran [Vin05] qui suit combine de manire subtile plusieurs techniques, certaines issues notamment des protocoles interactifs. Nous nous appuyons fortement sur la
proposition 11-L de la section suivante, qui montre que PP P/poly = PH = MA et
qui concentre la difficult technique du rsultat.
11-F

Thorme (Vinodchandran, 2005)

Pour toute constante k , PP SIZE(n k ).

292

Chapitre 11. Bornes infrieures non uniformes

Dmonstration Si PP P/poly alors bien sr PP SIZE(n k ).


Sinon, la proposition 11-L implique PH = MA, donc par le thorme 11-E de Kannan,

MA SIZE(n k ). Puisque MA PP (cf. exercice 10-V), le rsultat suit.

11.1.2

Bornes infrieures en n (1)

la section prcdente nous avons vu des langages qui navaient pas de circuits de taille n k
pour une constante k fixe. Or si lon veut sparer certaines classes tudies prcdemment
(P et NP par exemple), les familles de circuits considrer sont celles de taille polynomiale,
cest--dire la classe P/poly o la borne polynomiale nest pas fixe. Dans cette direction
malheureusement, on ne connat pas de rsultat trs satisfaisant. En guise dchauffement,
nous proposons lexercice suivant qui se rsout dune manire similaire la proposition 11A.

. 11-G

Exercice

On note EXPSPACE = DSPACE(2n

O(1)

). Montrer que EXPSPACE P/poly.

Outre un thorme de Buhrman, Fortnow et Thierauf [BFT98] montrant que la version


exponentielle MAEXP de MA nest pas dans P/poly et qui sappuie sur la proposition 11J (cf. exercice 11-K), lun des meilleurs rsultats reste la mise lchelle ci-dessous du
thorme 11-E de Kannan. En particulier, il est encore ouvert de savoir si NEXPRP a des
circuits de taille polynomiale.
11-H

Proposition (Kannan, 1981)


NEXPNP P/poly

Ide de la dmonstration Il suffit dadapter la preuve du thorme 11-E au cas exponentiel, o lon peut quantifier et diagonaliser sur les circuits de taille n log n .
Pour cela il faut galement adapter la preuve du thorme 8-P de Karp et Lipton
au cas de la hirarchie exponentielle : dans notre cas, il suffit de montrer que
NP
NP P/poly = NEXPNP = NEXPNP (en effet, ladaptation du thorme 11-E
ne requiert que trois quantificateurs exponentiels, ceux sur les circuits, car les autres
portant sur les mots peuvent tre remplacs par une numration des mots de taille

n ).

. 11-I

Exercice
Donner les dtails de la dmonstration de la proposition prcdente.

11.1. Circuits boolens sans restriction

293

Nous nous tournons maintenant vers des bornes infrieures conditionnelles de la forme
si telle hypothse probable est vraie, alors telle classe na pas de circuits de taille polynomiale . Les quatre propositions suivantes montrent quil est improbable que PSPACE,
PP et EXP aient des circuits de taille polynomiale car cela impliquerait lgalit de classes
gnralement considres diffrentes. Nous nous servirons de lun de ces rsultats au chapitre suivant.
11-J

Proposition
PSPACE P/poly = PSPACE = MA

Ide de la dmonstration On sait que IP = PSPACE (thorme 10-G) et on peut supposer dans le protocole IP que le prouveur valide est dans PSPACE (lemme 10-I). Il
possde donc daprs lhypothse des circuits de taille polynomiale. On en dduit le
protocole AM suivant pour un langage de PSPACE : Merlin envoie le circuit pour le
prouveur et Arthur simule le protocole IP en calculant les rponses du prouveur grce
au circuit.
Dmonstration Soit L PSPACE et montrons que L MA. Les lemmes 10-J et 10-I
montrent quil existe un protocole IP pour L entre un vrificateur V et un prouveur,
dans lequel le prouveur valide P fonctionne en espace polynomial. Par hypothse, il
existe donc une famille de circuits de taille polynomiale calculant la fonction du prouveur valide (ce sont des circuits plusieurs sorties puisquils calculent des fonctions,
dont lexistence dcoule du fait que le calcul de chaque bit de la sortie est un langage
de PSPACE).
Voici donc un protocole de type MA pour L :
Merlin envoie un circuit C cens calculer les rponses de P (le
prouveur valide du protocole IP pour L) ;
Arthur simule le protocole IP en calculant les rponses de P grce
au circuit C . Arthur accepte ssi le vrificateur accepte.
Si x L alors en donnant le bon circuit C , Merlin sassure quArthur accepte avec
grande probabilit puisquil simule correctement le protocole IP avec le prouveur valide. Si x L, alors tout prouveur ne convainc le vrificateur quavec faible probabilit :
cest en particulier le cas du prouveur simul par le circuit C , donc Arthur rejette avec

grande probabilit. On en dduit que L MA.

. 11-K

Exercice

On appelle MAEXP la classe des langages reconnus par un protocole de type MA o le


O(1)
vrificateur est une machine probabiliste fonctionnant en temps exponentiel 2n
(en particulier, les messages changs peuvent tre de taille exponentielle).

294

Chapitre 11. Bornes infrieures non uniformes


Montrer que MAEXP P/poly (rsultat de [BFT98]).
Indication : montrer par padding que PSPACE = MA implique EXPSPACE = MAEXP ,
puis utiliser le rsultat de lexercice 11-G, et conclure grce la proposition 11-J.

En combinant lide de la preuve prcdente avec le thorme 9-AI de Toda, on obtient


le rsultat suivant d Babai, Fortnow et Lund [BFL91], et qui nous a servi montrer
que PP na pas de circuits de taille n k (thorme 11-F).
11-L

Proposition (Babai, Fortnow et Lund, 1991)

Si PP P/poly alors PH = MA.


Ide de la dmonstration Si PP P/poly alors le prouveur du protocole IP de la proposition 10-P pour le langage MajSAT a des circuits de taille polynomiale (car il est dans
PPP ). Pour dcider MajSAT dans MA, il suffit alors que Merlin donne un tel circuit et
quArthur simule le protocole IP en calculant les rponses du prouveur grce au circuit
donn par Merlin.
Afin de dcider un langage de PH, on combine ce protocole avec le thorme 9-AI de
Toda qui donne une sorte de rduction dun langage de PH MajSAT.
Dmonstration Puisque MA PH (corollaire 10-AB), il suffit de montrer que PH MA.
Soit L PH : la dmonstration du thorme 9-AI de Toda donne une rduction f
calculable en temps polynomial, qui toute entre x et tout mot r de taille polynomiale associe f (x, r ) {0, 1}, et des entiers N , k tels que N < 2k et :

x L = r f (x, r ) [0, N ] mod 2k ;

x L = r f (x, r ) [N + 1, 2k 1] mod 2k .

On note
B = {(x, a) |
B< = {(x, a) |
B = {(x, a) |

f (x, r ) a2k },
f (x, r ) < (a + 1)2k } et
f (x, r ) N + a2k } :

ces trois langages sont dans PP (cf. proposition 9-L) et si lon connat lentier a tel
que (x, a) B B< alors il suffit de dcider si (x, a) B pour savoir si x L. Pour
cela, dans un protocole MA Merlin va donner cet entier a , ainsi quun circuit pour les
langages PP. On note g , g< et g les rductions respectives de B , B< et B MajSAT.
Si PP P/poly alors le prouveur valide du protocole IP de la proposition 10-P pour
le langage MajSAT a des circuits de taille polynomiale puisquil est dans FPPP . Dans
ce protocole, sur toute entre de taille n on note p(n) un polynme majorant la taille

11.1. Circuits boolens sans restriction

295

des requtes loracle PP dans le fonctionnement du prouveur. On obtient alors le


protocole MA suivant pour MajSAT sur lentre x :
Merlin envoie un entier a et un circuit C cens dcider MajSAT
pour des entres de taille au plus
max( p(| g (x, a)|), p(| g< (x, a)|), p(|g (x, a)|)) ;

Arthur simule trois fois le protocole IP pour MajSAT, en calculant les rponses du prouveur grce au circuit C , afin de dcider
si g (x, a), g< (x, a), g (x, a) MajSAT : Arthur accepte ssi le vrificateur a accept lors de ces trois protocoles.
Si x L alors il existe a tel que g (x, a), g< (x, a), g (x, a) MajSAT : il suffit Merlin denvoyer un tel a et un circuit C pour MajSAT afin de convaincre Arthur avec
grande probabilit puisque ce dernier simule alors correctement le prouveur valide
qui parvient convaincre le vrificateur. En revanche, si x L alors au moins lune
des trois instances g (x, a), g< (x, a), g (x, a) est hors de MajSAT : pour une telle instance
de MajSAT, tout prouveur ne convainc le vrificateur quavec faible probabilit et cest
en particulier le cas du prouveur simul grce au circuit C , donc Arthur rejette avec
grande probabilit.

On en dduit que L MA et donc que PH MA.

Nous passons maintenant la classe EXP, avec un rsultat prliminaire que nous allons
ensuite amliorer par le corollaire qui le suit. Ce premier rsultat est donn dans larticle
de Karp et Lipton [KL82] et attribu Meyer.
11-M

Proposition (Meyer, 1982)


EXP P/poly = EXP = p2

Ide de la dmonstration Si M est une machine pour un langage L de EXP, par lhypothse il existe des circuits de taille polynomiale calculant sur lentre t chaque bit de
la configuration de M (x) au temps t . Pour dcider L dans PH, il suffit alors de deviner
un tel circuit, de vrifier quil est cohrent avec la fonction de transition de M , et de
tester si ltat final est acceptant. On se ramne ensuite p2 grce au thorme 8-P de
Karp et Lipton.
Dmonstration Soit L EXP et M une machine dterministe reconnaissant L en temps
k
2n . En particulier, la fonction qui (x, t , i ) o t et i sont des entiers donns en binaire,
associe ltat de M (x), la position des ttes de lecture et les symboles lus ltape
t , et le contenu de la case i au temps t sur chaque ruban, est calculable en temps
exponentiel. Puisque EXP P/poly par hypothse, il existe une famille de circuits de
taille polynomiale qui la calcule (ce sont ici des circuits plusieurs sorties).

296

Chapitre 11. Bornes infrieures non uniformes

On peut alors dcider L dans PH : il suffit de deviner le circuit correspondant la


taille de lentre, de vrifier quil calcule bien ce quil doit calculer, et enfin de tester
que ltat final est acceptant. Plus formellement, voici les diffrents points vrifier
concernant le circuit C :
initialisation : au temps t = 0, M (x) est dans ltat initial, les ttes en position 1
et les rubans sont vides sauf le ruban dentre qui contient x ;
respect des transitions de M : chaque temps t , les ttes crivent, se dplacent et
leur tat volue conformment la fonction de transition M de M ;
cohrence des rubans : pour tout t , le contenu de chaque case au temps t + 1 est
le mme quau temps t si la tte de lecture nest pas sur la case au temps t ;
k

acceptation : au temps t = 2n , ltat est acceptant.


On obtient donc une formule pour dcider L de la forme :
C

(i, C (x, 0, i ) renvoie le bon symbole pour la case i )

(t , C (x, t , 0) et C (x, t + 1, 0) dcrit un comportement conforme M )


(t , i, C (x, t , i ) et C (x, t + 1, i) donnent le mme symbole
la case i si la tte est ailleurs)
k

(C (x, 2n , 0) renvoie un tat acceptant).

Tester ces conditions se fait dans PH. En ayant devin le bon circuit, on dcide bien
L, donc L PH.
Puisque NP EXP P/poly, par le thorme 8-P de Karp et Lipton on a PH = p2 , ce

qui conclut.

Nous avons maintenant les outils pour renforcer la proposition prcdente. Ce rsultat
vient de [BFL91].
11-N

Corollaire
EXP P/poly = EXP = MA

Dmonstration Sous lhypothse EXP P/poly, la proposition 11-M donne dj lgalit EXP = p2 , donc en particulier EXP = PSPACE. Lhypothse implique en outre

PSPACE P/poly, donc par la proposition 11-J on a PSPACE = MA.

11.2

Circuits restreints

Si on ne sait pas montrer de bornes infrieures satisfaisantes dans le cas des circuits boolens gnraux, en revanche en imposant des restrictions naturelles sur les circuits on
parvient des rsultats beaucoup plus forts.

11.2. Circuits restreints

297

11.2.1

Monotonie

La premire restriction que nous mentionnons est labsence de portes de ngation dans
nos circuits. En effet, pour calculer des fonctions boolennes monotones, on peut se restreindre des circuits boolens monotones.
11-O

Dfinition

Une fonction f : {0, 1}n {0, 1} est monotone si pour tous x, y {0, 1}n ,
(i [1, n], xi yi ) = f (x) f (y).

Un circuit boolen est monotone sil ne contient pas de porte de ngation .

11-P

Remarques

La notion introduite correspond plutt la notion habituelle de fonction croissante


(et non seulement monotone), mais nous conservons ici la terminologie habituelle.
On remarquera quun circuit monotone ne peut calculer que des fonctions monotones et que toute fonction monotone peut tre calcule par un circuit monotone
(de taille ventuellement exponentielle).

La fonction CLIQUEn,k dsigne la fonction {0, 1}n(n1)/2 {0, 1} prenant en entre la


partie triangulaire suprieure de la matrice dadjacence dun graphe non orient G n
sommets, et qui vaut 1 ssi G possde une clique de taille k . Cest videmment une fonction
monotone puisque ajouter une arte G ne peut pas supprimer une clique existante. Sur
lentre (n, k, G), calculer CLIQUEn,k (G) est un problme NP-complet (cf. corollaire 3AG) ; cependant, on ne sait pas montrer de borne infrieure non linaire sur la taille des
circuits ncessaires. En revanche, en imposant que les circuits soient monotones, on peut
faire beaucoup mieux : Razborov [Raz85] a montr la premire borne infrieure pour le
calcul de CLIQUEn,k par des circuits monotones, qui a ensuite t amliore par Alon et
Boppana [AB87] pour obtenir le rsultat suivant. Pour une preuve de ce rsultat, nous
renvoyons au livre dArora et Barak [AB09].
11-Q

Thorme (Razborov 1985, Alon et Boppana 1987)

Il existe une constante >p0 telle que pour tout k n 1/4 , tout circuit monotone pour
CLIQUEn,k a une taille 2 k .

298

Chapitre 11. Bornes infrieures non uniformes

11.2.2

Profondeur constante

Une autre restriction concerne la profondeur des circuits. Nous allons voir que des familles
de circuits de profondeur constante ne sont pas trs puissantes, mme lorsque les circuits
sont munis de portes modulo.
11-R

Dfinition

Soit m 2 un entier.
Dans un circuit boolen, une porte MOD m a un degr entrant arbitraire, vaut 0 si
le nombre de ses entres valant 1 est congru 0 modulo m , et vaut 1 sinon.
La classe ACC0 (m) est lensemble des langages reconnus par des circuits boolens de
type AC0 (cf. dfinition 5-AK) munis de portes MOD m .
En dautres termes, un langage L est dans ACC0 (m) sil possde une famille de circuits de taille polynomiale et de profondeur constante, munis de portes MOD m et
dont les portes et sont aussi de degr entrant arbitraire.
Enfin, on appelle ACC0 la classe ACC0 = m2 ACC0 (m).
La notation MOD m dsignera galement la fonction boolenne MOD m : {0, 1} {0, 1}
valant 0 ssi la somme de ses arguments est congrue 0 modulo m . On pourra aussi voir
cette fonction boolenne comme un langage. Avant daborder le rsultat principal, on a
besoin dun lemme technique facile.
11-S

Lemme

Soit q un nombre premier, Fq dsigne le corps q lments (les entiers modulo q ). Soit
1 , . . . , m {0, 1} Fq . On dsigne par S un sous-ensemble alatoire de [1, m], o chaque
entier de [1, m] est choisi indpendamment avec probabilit 1/2.
Sil existe i [1, m] tel que i = 1, alors

Pr(
i = 0 sur Fq ) 1/2.
S

iS

Dmonstration Soit i0 [1, m] tel que i0 = 1. Puisque i0 appartient S avec probabilit


1/2, on a :
Pr(

i = 0) = (1/2) Pr(

iS

i = 1 | i0 S) + (1/2) Pr(

iS\{i0 }

i = 0 | i0 S).

iS\{i0 }

= 1 et i0 S sont indpendants, donc

Pr(
i = 1 | i0 S) = Pr(
i = 1).

Or les vnements

iS\{i0 } i

iS\{i0 }

i S\{i0 }

11.2. Circuits restreints

299

De mme,

Pr(

i = 0 | i0 S) = Pr(

i S\{i0 }

i = 0).

iS\{i0 }

On conclut la preuve en remarquant que


Pr(

i S\{i0 }

i = 1) + Pr(

i = 0) 1.

iS\{i0 }

En sinspirant de Razborov [Raz87] qui a montr une borne infrieure similaire pour la
fonction majorit (et non MOD p ), Smolensky [Smo87] a obtenu le rsultat suivant.
11-T

Thorme (Razborov 1987, Smolensky 1987)

Soit p et q deux entiers premiers distincts. Alors MOD p ACC0 (q).


Ide de la dmonstration Pour d et bien choisis, nous allons montrer que pour tout
circuit ACC0 (q) calculant une fonction boolenne f : {0, 1}n {0, 1}, il existe un
polynme de degr d sur Fq (le corps q lments) qui concide avec f sur une
fraction (1 ) des entres de {0, 1}n , alors quaucun polynme de degr d sur Fq ne
concide avec MOD p sur (1 ) des entres de {0, 1}n .
La premire partie se fait en approximant le circuit porte par porte par un polynme,
tandis que la seconde partie montre quun polynme de degr n (ce quest MOD p ) ne
p
peut pas tre bien approxim par un polynme de degr n/2.
Dmonstration Nous approximons dabord tout circuit ACC0 (q) par un polynme sur
le corps q lments Fq (les entiers modulo q ), avant de montrer que la fonction
MOD p ne peut tre approxime ainsi.
Approximation dun circuit par un polynme Soit k un entier que lon dterminera
plus tard. Sur le corps Fq , le polynme Q Fq [x] dfini par Q(x) = x q1 est de degr
(q 1) et vrifie :

0 si x = 0,
Q(x) =
1 sinon.
Soit C un circuit de type ACC0 (q) de taille tC et de profondeur hC , n entres. On
suppose sans perte de gnralit que C ne possde pas de porte puisque celles-ci
peuvent tre remplaces par la ngation dune porte dont toutes les entres sont
nies (y1 y m (y1 y m )), ce qui au pire triple la profondeur du circuit.
Pour chaque porte de C la profondeur h , nous allons montrer quil existe un
polynme P Fq [x1 , . . . , xn ] de degr au plus ((q 1)k) h tel que :
pour tout x {0, 1}n , P (x) {0, 1} Fq ;

300

Chapitre 11. Bornes infrieures non uniformes


pour au moins (1 tCh /2k )2n mots x {0, 1}n , on a P (x) = (x) {0, 1} (o (x)
dsigne la valeur de la porte lorsque lentre du circuit C est x ). (On dira que
P fait une erreur sur x lorsque P (x) = (x).)
Dmonstration Nous procdons par induction sur h . Pour h = 0, la porte
est une entre xi donc il suffit de prendre P (x) = xi et P ne fait aucune
erreur. Pour h > 0, il y a plusieurs cas selon le type de la porte .
Porte = : le polynme P = 1 P convient puisquil vaut (x)
sur toutes les entres o P (x) = (x).

m
Porte = MODq (1 , . . . , m ) : on pose P = Q( i=1
Pi ). Puisque
par hypothse de rcurrence, le degr de chaque Pi est major par
((q 1)k) h1 , le degr de P est major par

(q 1)((q 1)k) h1 ((q 1)k) h .

Si sur lentre x , aucune des portes i ne fait derreur, alors par dfinition de Q , on a P (x) = (x).
Concernant les erreurs cette fois, bien quil puisse ventuellement y
avoir plus de tC entres la porte (cest--dire m > tC ), on remarquera quil y a au plus tC portes distinctes en entre et donc au plus
tC ensembles distincts de mots x sur lesquels les i font des erreurs, et
ceux-ci sont de taille au plus (tCh1 /2k )2n par hypothse de rcurrence.
Ainsi, P fait une erreur sur une fraction au plus tC tCh1 /2k = tCh /2k
des entres x .
Porte
=
1

: la solution nave
i=1 i
m
(1

P
i ) ne convient pas car
i =1

de dfinir pour P le polynme


elle fait exploser le degr. Il faut

donc tre plus subtil.


Pour x fix, en prenant k sous-ensembles alatoires indpendants
S1 , . . . , Sk [1, m],

le lemme 11-S montre que


Pr (x)

S1 ,...,Sk


(
i (x) = 0) 1 2k .
j =1 i S j

Ainsi, pour chaque x la proportion des ensembles S1 , . . . , Sk mauvais


pour x est majore par 2k . En prenant lunion sur tous les mots x ,
chaque choix de S1 , . . . , Sk est mauvais en moyenne pour 2nk mots
x . Il existe donc un choix de S1 , . . . , Sk fix qui est mauvais pour au
plus une proportion 2k des mots x :
Pr

x{0,1}n

(x)


(
i (x) = 0) 1 2k .
j =1 iS j

11.2. Circuits restreints

301

On pose alors
P = 1

1 Q(

j =1

i S j


P i ) ,

cest--dire le OU des valeurs iS j Pi = 0 . Puisque le degr des


Pi est major par ((q 1)k) h1 , le degr de P est au plus
k(q 1)((q 1)k) h1 = ((q 1)k) h .

Par ce qui prcde, lorsque les P j ne se trompent pas sur x , alors P se


trompe avec probabilit au plus 2k . On remarquera que m tC 1
sans perte de gnralit, et que par hypothse de rcurrence, la probabilit derreur des P j est majore par tCh1 /2k . Au total, la probabilit
derreur de P est donc majore par 2k + (tC 1)tCh1 /2k tCh /2k .
La proprit est donc montre au rang h .

On en dduit quil existe un polynme PC Fq [x1 , . . . , xn ] de degr au plus ((q1)k) hC


tel que :
pour tout x {0, 1}n , PC (x) {0, 1} ;
pour au moins (1 tChC /2k )2n mots x {0, 1}n , on a PC (x) = C (x).
Impossibilit dapproximer MOD p Si lon dispose de la fonction MOD p , il est facile
de calculer par un circuit de profondeur constante les fonctions
MODi, p : {0, 1}n {0, 1},

qui valent 0 ssi la somme de leurs entres est congrue i modulo p . En effet, pour calculer MODi , p (a1 , . . . , an ), il suffit dappliquer MOD p (a1 , . . . , a p , a p+1 , . . . , an ) o le uple
(a1 , . . . , a p ) a t obtenu partir de (a1 , . . . , a p ) en passant i uns en zros si (a1 , . . . , a p )
contient au moins i uns, ou sinon p i zros en uns. Une telle opration se fait par
un circuit de taille constante puisque p est une constante.
Il suffit donc de montrer quon ne peut pas calculer toutes les fonctions MODi , p par
des circuits de type ACC0 (q), et pour cela de montrer quon ne peut pas toutes les
approximer par des polynmes de petit degr.
Lide va tre dutiliser de supposs polynmes de petit degr calculant les p
fonctions
MODi, p sur un ensemble E , pour calculer grce un polynme de degr n/2 une
variante de la fonction x {0, 1}n 7 (|x|1 mod p) (le nombre modulo p de composantes 1 dans x ). Or cette fonction correspond en ralit
p un monme de degr n ,
quon pourra donc remplacer par ce polynme de degr n/2 et ainsi abaisser le degr
de tout polynme : cela permettra de majorer de manire indirecte le cardinal de E .
1. Se restreindre au cas p = 2 et q = 3 permettrait de simplifier la preuve qui suit en allgeant notamment
les considrations algbriques. Nous avons nanmoins pris le parti de traiter le cas gnral et renvoyons le lecteur
au livre dArora et Barak sil se satisfait du cas p = 2 et q = 3.

302

Chapitre 11. Bornes infrieures non uniformes

Supposons donc que pour tout i [0, p 1] il existe un polynme Pi Fq [x1 , . . . , xn ]


p
de degr n/2 qui concide avec la fonction MODi, p sur un ensemble Ei {0, 1}n :
p1
la suite de la preuve consiste majorer |Ei |. On note E = i=0
Ei lensemble commun
o aucun Pi ne fait derreur .
Il nous faut nous placer sur un corps de caractristique q plus grand que Fq . Soit
K = Fq p1 le corps q p1 lments : son groupe multiplicatif K est cyclique et contient
q p1 1 lments. Ainsi, p divise |K | car q p1 1 mod p (on se sert ici du fait que
p est premier pour appliquer le petit thorme de Fermat) : K contient donc une
racine primitive p -me de lunit, cest--dire un lment K satisfaisant p = 1
et i [1, p 1], i = 1. On dfinit un polynme P K[x1 , . . . , xn ] par

P (x1 , . . . , xn ) =

p1

i =0

(1 Pi (x1 , . . . , xn )) i ,

cest--dire que pour tout x E , si le nombre de 1 dans x est congru k modulo p


p
alors P (x) = k . Le degr de P est major par celui des Pi , cest--dire n/2.
Enfin, on pose yi = ( 1)xi + 1 de sorte que yi vaut 1 si xi = 0 et si xi = 1, et on
dfinit R K[x1 , . . . , xn ] par
R(x1 , . . . , xn ) =

yi :

i=1

ainsi, R(x1 , . . . , xn ) vaut k si le nombre de composantes 1 dans x {0,p1}n est congru


k modulo p . Donc P et R concident sur E , mais lun est de degr n/2 alors que
lautre est de degr n . On va se servir de cette galit afin de diminuer le degr de
polynmes exprimant des fonctions de E dans K .
On dit quun polynme est multilinaire si le degr de chacune de ses variables est au
plus 1. Nous allons montrer que toute fonction fp: E K peut tre exprime par un
polynme multilinaire de degr au plus n/2 + n/2 1 (et puisquil y a peu de
tels polynmes, cela impliquera que E est ncessairement petit ).
Dmonstration Toute fonction f : E K peut bien sr tre exprime
par un polynme F K[x1 , . . . , xn ] en interpolant f sur tous les points
de E . Puisque E {0, 1}n , on peut supposer sans perte de gnralit que
le degr de chaque variable dans F est major par 1 car pour tout k > 1,
xik = xi . En particulier, chaque monme de F est de degr au plus n .
On exprime maintenant F en fonction des yi = ( 1)xi + 1, cest--dire
quon remplace dans F chaque variable xi par ( 1)1 (yi 1). Puisque la
substitution est linaire, le degr de chaque yi dans F est toujours au plus
1.

Soit m un monme de F en y1 , . . . , yn de degr n/2+1, m = iI yi avec


I [1, n] un ensemble de taille |I | n/2+1. Alors pour x E , le polynme
suivant prend les mmes valeurs que m , o c I dsigne le complmentaire
de I dans [1, n] :
(

i =1

yi )(

i c I

p1

yi

),

11.2. Circuits restreints

303

car yip1 vaut yi1 . Or sur E , le polynme yip1 exprim en xi , lorigine


de degr ( p 1) en xi , peut tre ramen un polynme en xi de degr 1

(toujours car k > 1, xik = xi sur E ), donc i c I yip1 est ramen sur E
un polynme en x1 , . . . , xn de degr
|c I | n (n/2 + 1) = n/2 1 n/2 1.

De plus, le polynme ni=1 yi vaut R(x1 , . . . , xn ) qui est gal P (x1 , . . . , xn )


sur E . On peut
p donc exprimer le monme m par le produit du polynme
P de degr n/2 et dun polynme de degr n/2
p 1, cest--dire au
final par un polynme en x1 , . . . , xn de degr n/2 + n/2 1.
Les monmes m qui nont pas t remplacs
p dans le processus sont ceux qui
n/21, donc le polynme comtaient dj de degr < n/2+1
n/2+
p
plet est bien de degr n/2+ n/21. Puisquon travaille sur lensemble
E {0, 1}n , on peut supposer nouveau que ce polynme est multilinaire.

p
Or un polynme multilinaire de degr n/2 + n/2 1 est dcrit par la liste des

coefficients
au plus
p (ventuellement nuls) de chaque monme multilinaire de degr
N
de
tels
monmes,
il
y
a
donc
|K|
polynmes
n/2 + n/2 1. Si N est le nombre
p
multilinaires de degr n/2 + n/2 1 dans K[x1 , . . . , xn ]. Nous allons montrer
que N (19/20)2n .
Dmonstration Pour caractriser un monme
multilinaire m en les vap
riables x1 , . . . , xn et de degr n/2 + n/2 1, il suffit de donner lensemble des variables qui apparaissent dans m . On a donc :
N=

p

n/2+
n/21
i=0

p


 
p 
n/2+
n/21 n
n
n
n
n1
2
+
2n1 +
2 n/2
i
i
i=n/2

(o la seconde ingalit est obtenue en majorant chaque coefficient binon


mial de la somme par n/2
). Or le corollaire A-Q de la formule A-P de
Stirling donne :


n
e2n
p ,
n/2
n

donc
N 2n1 +

e n
1
e n
2 =( +
)2 (19/20)2n .
2
2 2
|E|

|E|

|K|N ,

Puisque le nombre de fonctions f : E K est gal |K| , on dduit que |K|


donc |E| N (19/20)2n . Enfin, puisque E = ip1
E , il existe i [0, p 1] tel que
=0 i
|Ei | (1 1/(20 p))2n .

Conclusion En choisissant k = log(40 p t h ) dans la premire partie, tout circuit C de


type ACC0 (q) de profondeur h et de taille t concide avec un polynme PC de degr

304

Chapitre 11. Bornes infrieures non uniformes

(q log(40 p t h )) h sur une proportion au moins (11/(40 p)) des entres. Or pour une
famille ACC0 (q), t = t (n) est polynomial et h = h(n) est p
constant, donc le degr de
PC est polylogarithmique en n et en particulier infrieur n/2 pour n suffisamment

grand.
En revanche, grce la seconde partie lune des fonctions MODi , p ne peut concider
p
avec un polynme de degr n/2 que sur une fraction au plus (1 1/(20 p)) des
entres. On en dduit que la fonction MODi, p nest pas dans ACC0 (q), et donc de

mme pour la fonction MOD p .

11-U

Remarques

La preuve donne en ralit une meilleure borne


p infrieure, puisquon peut choisir
pour k toute valeur vrifiant ((q 1)k) h n/2 et t h /2k < 1/(20 p). Ainsi par
exemple, des circuits de type ACC(q) de profondeur O(log log n) et de taille polynomiale ne peuvent pas calculer MOD p . De mme pour une profondeur constante
o(1)
et une taille 2n .
En revanche, pour la classe ACC0 = m2 ACC0 (m), on est loin dune telle borne infrieure puisque le meilleur rsultat connu est NEXP ACC0 , d Williams [Wil11].

. 11-V

Exercice

On rappelle que ACC0 = m2 ACC0 (m) (dfinition 11-R) et que TC0 est la classe
des langages reconnus par circuits de taille polynomiale et de profondeur constante
ayant des portes de majorit (cf. dfinition 5-AK). En particulier on a TC0 L/poly
par la proposition 5-AM.
Montrer que ACC0 TC0 .
Indication : on pourra simuler une porte MOD m par un nombre polynomial de portes
de majorit en parallle (au mme niveau dans le circuit), auxquelles on ajoute un
certain nombre dentres constantes 0 ou 1.

11.3

Polynmes

Des techniques intressantes ont galement t dveloppes pour montrer des bornes infrieures sur la taille de circuits arithmtiques pour calculer des polynmes (pour un rappel
sur ces circuits, voir la section5.6). Nous allons voir un rsultat de Baur et Strassen [BS83]
montrant que le polynme ni=1 xin na pas de circuits arithmtiques de taille o(n log n),
puis un rsultat de Shnorr [Sch78] (amliorant des articles de Strassen [Str74] et de Lipton [Lip75]) montrant lexistence de polynmes une variable, de degr polynomial et
coefficients dans {0, 1}, qui nont pas de circuits de taille n k .

11.3. Polynmes

305

Une des difficults dans le cas des circuits arithmtiques provient du fait quil peuvent
utiliser des constantes arbitraires du corps sous-jacent (ici C), et donc que les mthodes
de dnombrement ou de diagonalisation usuelles ne fonctionnent plus.

11.3.1

Baur et Strassen

Afin de monter le rsultat de Baur et Strassen, nous allons dabord voir la degree bound
de Strassen [Str73a] par une dmonstration de Schnage [Sch76]. Il sagit de donner
une borne infrieure sur la taille dun circuit calculant plusieurs polynmes. Puis nous
verrons comment le calcul des drives partielles (par une dmonstration de Morgenstern [Mor85]) nous permettra de revenir au calcul dun seul polynme.
Borne du degr
Dans cette section, K dsigne un corps infini quelconque (par exemple C). Avant de
prouver le rsultat principal, nous avons besoin de plusieurs lemmes sur lexistence de
relations polynomiales entre des polynmes calculs par circuit. En guise dchauffement,
nous rappelons le nombre de monmes dun certain degr.
11-W

Lemme

Le nombre de monmes de degr d en x1 , . . . , xn est

n+d
d

Dmonstration Un monme en x1 , . . . , xn de degr d est vu comme un tableau de n +d


cases dans lesquelles sont placs n dlimiteurs : le nombre de cases libres entre le
dlimiteur i 1 et le dlimiteur i est le degr de xi (on suppose quil y a un dlimiteur
0 virtuel avant la premire case). Pour dnombrer ces monmes, il sagit donc

de placer n dlimiteurs dans un tableau de (n + d ) cases, cest--dire quil y a n+d
n

possibilits.

Le lemme suivant montre lexistence dun polynme annulateur, la partie difficile tant
de faire en sorte que le degr en y0 ne dpende pas de celui de p0 .
11-X

Lemme

Si p0 , p1 , . . . , p m K[x1 , . . . , x m ] sont des polynmes de degr deg( pi ) = di , alors il existe


un polynme non nul H K[y0 , . . . , y m ] tel que degy0 (H ) D = d1 d m et
H ( p0 , . . . , p m ) = 0.
Dmonstration Soit d un entier suffisamment grand (qui sera une borne sur le degr

total de H ( p0 , . . . , p m )). crivons un polynme H (y0 , . . . , y m ) = v cv y0v0 . . . y mvm , o


v = (v0 , . . . , v m ) N m+1 vrifient :
v0 D

et

v0 d0 + + v m d m d .

(11.1)

306

Chapitre 11. Bornes infrieures non uniformes

Comptons le nombre de tels v .


Tout dabord, dnombrons les solutions de
v1 d1 + + v m d m q

(11.2)

pour un certain q d . une solution u = (u1 , . . . , u m ) de lquation


u1 + + u m q

(11.3)

on associe la solution v de lquation 11.2 dfinie par vi = ui /di . Tout v a au plus D


antcdents (correspondant auxchoix des restes 0 ri < di dans les divisions entires
de ui par di ). Puisquil
y a q+m
solutions lquation 11.3 par le lemme 11-W, il y
m

q+m
en a au moins m /D lquation 11.2.
Pour notre application, q = d v0 d0 . Or



dm
m + (d v0 d0 )

m
m!

quand d tend vers linfini (ici, m , d0 , v0 et D sont des constantes). Puisquon peut
choisir v0 entre 0 et D , on en dduit que le nombre de solutions de 11.1 est au moins

D 

(D + 1)d m
m + (d v0 d0 )
/D
.
m
D m!
v =0
0

Pour d grand, le polynme H a donc plus de (1 + 1/(2D))d m /m! monmes.


Soit maintenant G(x1 , . . . , x m ) = H ( p0 , . . . , p m ) : le degr de G est au plus d puisque

v0 d0 + + v m d m d , donc G a au plus d +m
d m /m! coefficients par le lemme 11m
W. Pour d grand, le nombre de coefficients du polynme G est donc major par
(1 + 1/(2D))d m /m!.
Chaque coefficient de G est une combinaison linaire des coefficients cv . La contrainte
H ( p0 , . . . , p m ) = 0 se traduit donc en moins de (1 + 1/(2D))d m /m! quations linaires
en les coefficients cv (le coefficient de chaque monme en x1 , . . . , x m doit tre nul). Ce
systme linaire a une solution non nulle car le nombre dinconnues est plus grand

que le nombre dquations.

En appliquant le lemme prcdent au cas de polynmes calculs par un circuit plusieurs


sorties, on peut matriser le degr du polynme annulateur en fonction de la taille du
circuit.
11-Y

Lemme

Soit C un circuit arithmtique de taille t , calculant n polynmes


p1 , . . . , pn K[x1 , . . . , xn ].

Alors pour tout p0 K[x1 , . . . , xn ], il existe un polynme non nul H K[y0 , . . . , yn ] tel
que degy0 (H ) 2 t et H ( p0 , . . . , pn ) = 0.

11.3. Polynmes

307

Dmonstration On numrote les portes de C de 1 t de sorte que les n + k premires


portes soient les variables x1 , . . . , xn et les constantes 1 , . . . , k K du circuit, et on
introduit t nouvelles variables z1 , . . . , z t . Pour tout i entre 1 et (t + n), on dfinit un
polynme fi K[x1 , . . . , xn , z1 , . . . , z t ] (afin davoir moralement fi = zi pi o pi
est le polynme calcul la porte i ) de la manire suivante :
pour 1 i n (portes correspondant aux variables x1 , . . . , xn ), fi = zi xi ;
pour n + 1 i n + k (portes correspondant aux constantes 1 , . . . , k ), on pose
fi = zi in ;
pour n + k + 1 i t , si la porte i est une opration {+, } darguments j
et j , alors fi = zi (z j z j ) ;
enfin, pour i > t , soit jit la porte calculant pit : on dfinit alors fi = z ji t .
Au plus t de ces polynmes ont un degr 2, les autres ayant un degr 1. Par le
lemme 11-X, il existe donc un polynme non nul G K[y0 , . . . , y t +n ] tel que
degy0 (G) 2 t

et

G( p0 , f1 , . . . , f t +n ) = 0.

On peut voir G( p0 , f1 , . . . , f t +n ) comme un polynme de (K[x1 , . . . , xn ])[z1 , . . . , z t ].


Alors, par dfinition des polynmes fi , remarquons que, si gi (x1 , . . . , xn ) est le polynme calcul par la porte i , on a :
[G( p0 , f1 , . . . , f t , f t +1 , . . . , f t +n )](g1 , . . . , g t ) = G( p0 , 0, . . . , 0, p1 , . . . , pn ) = 0,

lgalit portant sur des polynmes de K[x1 , . . . , xn ] (puisque gi K[x1 , . . . , xn ]). Ainsi,

H (y0 , . . . , yn ) = G(y0 , 0, . . . , 0, y1 , . . . , yn ) est le polynme recherch.

Afin de pouvoir noncer le rsultat suivant, nous avons besoin dune dfinition.
11-Z

Dfinition

On dit que presque tout point x K n vrifie une proprit sil existe un polynme non
nul f K[x1 , . . . , xn ] tel que x vrifie la proprit ds que f (x) = 0 (cest--dire que la
proprit est vraie partout sauf ventuellement sur une hypersurface).
Voici maintenant le rsultat principal de cette sous-section : la degree bound de Strassen [Str73a].
11-AA

Thorme (Strassen, 1973)

Soit des polynmes p1 , . . . , pn C[x1 , . . . , xn ] et un entier d 1 tels que pour presque tout
point v = (v1 , . . . , vn ) Cn , le systme dquations polynomiales dinconnues (x1 , . . . , xn ),
Sv = ( pi (x1 , . . . , xn ) = vi )1in , a au moins d solutions distinctes sur Cn . Alors tout circuit
calculant les n polynmes p1 , . . . , pn a une taille au moins log(d ).

308

Chapitre 11. Bornes infrieures non uniformes

Dmonstration Soit C un circuit de taille t calculant p1 , . . . , pn . On introduit n nouvelles variables z1 , . . . , zn et on considre le calcul de C sur le corps K = C(z1 , . . . , zn ).
Soit p0 = z1 x1 + + zn xn K[x1 , . . . , xn ] : le lemme 11-Y fournit un polynme
H K[y0 , . . . , yn ] tel que degy0 (H ) 2 t et H ( p0 , . . . , pn ) = 0, quon peut crire
H (y0 , . . . , yn ) =

i =0

qi (y1 , . . . , yn )y0i ,

o M 2 , qi K[y1 , . . . , yn ] et qM = 0. Ainsi, le polynme P K[x1 , . . . , xn ] dfini


par P (x) = H ( p0 , . . . , pn )(x) est nul ; en dautres termes :
t

P (x) =

qi ( p1 (x), . . . , pn (x))(
z j x j )i = 0.
j =1

i=0

Soit f C[x1 , . . . , xn ] un polynme tel le systme Sv admette au moins d solutions


pour tout point v Cn vrifiant f (v) = 0, et soit = (1 , . . . , n ) Cn tel que f () = 0
et qM () = 0. Par hypothse, le systme dquations ( pi (x) = i )i [1,n] a au moins d
solutions distinctes a (1) , . . . , a (d ) Cn : pour tous i [1, n] et j [1, d ], pi (a ( j ) ) = i .

Soit b (i ) = p0 (a (i ) ) = j z j a (ij ) K : on a, pour tout k ,


P (a (k) ) =

i=0

n
M

(k)
qi ( p1 (a (k) ), . . . , pn (a (k) ))(
z j a j )i =
qi (1 , . . . , n )(b (k) )i = 0.
j =1

i=0

Ainsi, les b (i ) sont d racines distinctes du polynme


h(x) =

j =0

q j ()x j K[x]

qui est non nul car qM () = 0, donc d M 2 t , cest--dire t log d .

Drives partielles
Nous avons vu comment montrer une borne infrieure sur la taille dun circuit arithmtique calculant plusieurs polynmes simultanment ; nous allons maintenant voir comment se ramener au calcul dun seul polynme, en utilisant ses drives partielles. Pour
viter toute confusion, on appellera porte dopration toute porte qui nest pas une entre
dans un circuit arithmtique (cest--dire ni une variable ni une constante).
11-AB

Lemme

Soit p(x1 , . . . , xn ) K[x1 , . . . , xn ] un polynme calcul par un circuit arithmtique ayant


t portes dopration. Alors il existe un circuit arithmtique n sorties ayant 5t portes
dopration, les mmes entres (variables et constantes) et les constantes 0 et 1, calculant
toutes les drives partielles xp (x1 , . . . , xn ) pour i [1, n].
i

11.3. Polynmes

309

Dmonstration Par rcurrence sur t . Soit C (x1 , . . . , xn , 1 , . . . , k ) un circuit arithmtique t portes doprations calculant p , o les i K sont des constantes. Pour
t = 0, soit p = xi soit p = i et dans les deux cas on calcule ses drives partielles par
un circuit ayant 0 porte dopration (puisquil sagit des constantes 0 et 1).
Pour t 1 : soit g une porte dont les deux arguments sont des entres (constantes ou
variables). Sans perte de gnralit, on peut considrer quau moins lun des arguments
est une variable : en effet, si les deux arguments sont des constantes , , on peut
remplacer la porte g par une nouvelle constante g (, ) tout en faisant diminuant la
taille du circuit.
On considre le circuit C ayant (t 1) portes doprations et dont les entres sont
x1 , . . . , xn , 1 , . . . , k , g . Ce circuit calcule un polynme q(x1 , . . . , xn , y) (o y est la nouvelle variable cre par la nouvelle entre g ). On a : p(x1 , . . . , xn ) = q(x1 , . . . , xn , g ) et
donc
p
q
q
g
(x1 , . . . , xn ) =
(x1 , . . . , xn , g ) +
(x1 , . . . , xn , g )
.
xi
xi
y
xi

Par induction, il existe un circuit D (n+1) sorties, ayant 5t 5 portes doprations,


calculant xq (pour 1 i n ) et qy . Nous allons maintenant considrer les diffrents
i
cas possibles pour la porte g pour construire un circuit D calculant toutes les drives
partielles de p .
1. Addition dune constante et dune variable, g (xa , b ) = b + xa : pour tout i = a ,
p
p
g
q
q
q
= 0 et donc x = x . Pour i = a : x = x + y . Pour calculer toutes les
xi
i
i
a
a
drives partielles de p , il suffit donc dajouter une porte D (une addition) ;
par ailleurs, il faut galement calculer g , ce qui ajoute une porte. La taille de D
est donc 5t 3.
2. Multiplication dune constante et dune variable, g (xa , b ) = b xa : alors pour
tout i = a , xg = 0 et donc xp = xq . Pour i = a : xp = xq + b qy . Pour
i
i
i
a
a
calculer toutes les drives partielles de p , il suffit donc dajouter 2 portes (une
multiplication et une addition) ; par ailleurs, il faut galement calculer g , ce qui
ajoute une porte. La taille de D est donc 5t 2.
3. Addition de deux variables, g (xa , x b ) = xa + x b : pour tout i = a, b ,
p
xi

q
xi

p
xa

q
xa

q
,
y

g
xi

=0

de mme pour i = b . Pour


et donc
=
. Pour i = a :
=
+
calculer toutes les drives partielles de p , il suffit donc dajouter 2 portes (deux
additions) ; par ailleurs, il faut galement calculer g , ce qui ajoute une porte. La
taille de D est donc 5t 2.
4. Multiplication de deux variables, g (xa , x b ) = xa x b : pour tout i = a, b , xg = 0
i

et donc xp = xq . Pour i = a : xp = xq + x b qy , de mme pour i = b . Pour


i
i
a
a
calculer toutes les drives partielles de p , il suffit donc dajouter 4 portes (deux
multiplications et deux additions) ; par ailleurs, il faut galement calculer g , ce
qui ajoute une porte. La taille de D est donc 5t .
Dans tous les cas, il existe un circuit D ayant 5t portes dopration, les mmes
entres que C et les constantes 0 et 1, et calculant toutes les drives partielles de p .

310

Chapitre 11. Bornes infrieures non uniformes

En comptant cette fois les entres, on obtient le corollaire suivant.


11-AC

Corollaire

Soit p(x1 , . . . , xn ) K[x1 , . . . , xn ] un polynme calcul par un circuit arithmtique de


taille t . Alors il existe un circuit arithmtique de taille 5t n sorties calculant toutes
les drives partielles xp (x1 , . . . , xn ) pour i [1, n].
i

Dmonstration Soit C un circuit de taille t pour p(x) et soit m 1 le nombre dentres


(variables et constantes). Alors le nombre de portes doprations est t m , donc en
comptant les constantes 0 et 1, le lemme 11-AB fournit un circuit de taille majore

par 2 + m + 5(t m) = 5t 4m + 2 5t pour les drives partielles.

Le calcul des drives partielles combin la borne du degr permet de dduire des bornes
infrieures sur le calcul dun polynme seul [BS83].
11-AD

Corollaire (Baur et Strassen, 1983)

Tout circuit arithmtique sur C calculant le polynme p(x1 , . . . , xn ) =


au moins (n/5) log(d 1).

d
i =1 xi

a une taille

Dmonstration Soit t la taille dun plus petit circuit pour p . Par le corollaire 11-AC, il
existe un circuit de taille 5t calculant toutes les drives partielles de p , cest--dire
calculant d xid 1 pour tout i .
Or d x d 1 = C a exactement (d 1) racines distinctes,
sauf pour = 0. Ainsi, pour
presque tout v Cn (tous sauf les racines du polynme i xi ), le systme
(d xid 1 = vi )i [1,n]

a (d 1)n solutions distinctes. Par le thorme 11-AA, 5t log((d 1)n ), cest--dire

t (n/5) log(d 1).

11.3.2

Borne infrieure en (n k )

Nous prsentons maintenant le rsultat de Schnorr [Sch78] mentionn en dbut de section. Il parvient montrer, comme dans le cas boolen, une borne infrieure en (n k )
(pour k fix) sur un polynme univari de degr n O(1) . Certes (n k ) est mieux que
(n log n) (borne infrieure obtenue ci-dessus sur un polynme de degr n O(1) ), mais
contrairement au rsultat 11-AD de Baur et Strassen, le polynme est construit de manire ad-hoc et nest pas naturel . Dans toute cette partie, les circuits ont des constantes
arbitraires de C : lune des difficults vient de la prsence de ces constantes qui empchent
dutiliser des arguments de dnombrement. Mais commenons par spcifier sur quel
genre de polynme doit porter la borne infrieure.

11.3. Polynmes

311

Bornes infrieures triviales


Certains polynmes nont pas de petits circuits pour des raisons videntes et ils ne nous
intresseront pas ici :
t

le polynme p(x) = x 2 ne peut pas tre calcul par des circuits de taille < t car le
degr maximal dun polynme calcul par un circuit de taille s est 2 s ;

le polynme p(x1 , . . . , x t ) = it =1 xi ne peut pas tre calcul par des circuits de taille
< t car il a trop de variables ;

si 1 , . . . , t C sont algbriquement indpendants, alors p(x) = it =1 i x i ne peut


pas tre calcul par des circuits de taille < t car Q( p(1), . . . , p(t )) est de degr de
transcendance t alors que ce degr est major par le nombre de constantes utilises
par le circuit.
Pour viter ces raisons videntes, nous voulons pour tout k une borne infrieure (n k )
sur un polynme p une variable, de degr polynomial en n et coefficients dans {0, 1}.
Remarquons quun tel polynme est toujours calculable par un circuit arithmtique de
taille polynomiale.
Borne infrieure en n k
Bien que la borne infrieure porte sur des polynmes univaris, nous utiliserons aussi pour
les dmonstrations des polynmes multivaris. Nous nous intressons encore une fois
des relations polynomiales, mais cette fois entre les coefficients dun polynme calcul
par un circuit.
11-AE

Lemme

Pour tout t 1, il existe une famille de polynmes g j Z[y1 , . . . , y t 2 +2t 2 ], j N,


deg(g j ) 3t j + 1, satisfaisant la proprit suivante.
Si un polynme univari f (x) est calcul par un circuit C de taille au plus t alors
il existe 1 , . . . , t 2 +2t 2 C tels que pour tout j le coefficient de x j dans f (x) est
g j (1 , . . . , t 2 +2t 2 ).
Dmonstration On numrote partir de 1 les portes non constantes de C de manire
compatible avec leur profondeur (en particulier, la porte tiquete par la variable x
reoit le numro 1). Quitte augmenter la taille de C , on suppose que t est le numro de la porte de sortie de C (la dernire dans la numrotation). On dsignera

des uples de nouvelles variables par y = (yk,i )k[0,i 1],i [2,t ] , y = (yk,i
)k[0,i1],i[2,t ] et
z = (z1 , . . . , z t ). Pour i 1 et j 0, on va dfinir des polynmes hi C[x, y, y ] pouvant simuler le calcul de la porte i , et hi, j C[y, y , z] sera le coefficient de x j dans hi :
on prendra alors g j = h t , j . Pour linitialisation, on dfinit h0 = 1. Afin de matriser le
degr, on traite les coefficients constants part : pour tout i on pose hi ,0 = zi (donc
zi reprsente le coefficient constant de la porte i ).

312

Chapitre 11. Bornes infrieures non uniformes

On pose h1 = x , polynme calcul par la porte 1 (qui nest autre que la variable x ),
donc h1,1 = 1 et h1, j = 0 pour j > 1. Puis par rcurrence on dfinit pour i > 1
hi = (

et donc pour j > 0 :


hi, j =

i1

i 1

yk,i hk )(
yk,i
hk ),

k=0

k=0

j1 + j2 = j k1 ,k2 <i

yk1 ,i yk ,i hk1 , j1 hk2 , j2 .


2

On a hi Z[x, y, y ] et hi, j Z[y, y , z] (les variables zk reprsentant les coefficients


constants).

Il existe des valeurs C|y| et C|y | pour les y et y telles que hi (x, , ) soit le
polynme calcul par la porte i :

si la porte i est une addition hi1 + hi2 , il suffit de prendre i1 ,i = i2 ,i = 1, 0,i


=1
et le reste 0 ;

si la porte i est une multiplication hi1 hi2 , il suffit de prendre i1 ,i = i ,i = 1 et le


2
reste 0 ;
si la porte i est une multiplication par une constante, hi1 , il suffit de prendre

i1 ,i = , 0,i
= 1 et le reste 0 ;
enfin, si la porte i est une addition avec une constante, + hi1 , il suffit de prendre

0,i = , i1 ,i = 1, 0,i
= 1 et le reste 0.
Si par ailleurs on donne aux variables zi la valeur i du coefficient constant de la porte
i , alors hi, j (, , ) est le coefficient de x j de la porte i .
Les variables de h t , j sont yi,k et yi,k pour 2 i t et 0 k < i , ainsi que zi pour
1 i t , donc h t , j a (t 1)(t + 2) + t = t 2 + 2t 2 variables.
En outre, on montre par rcurrence sur i que deg(hi, j ) 3i j + 1 : cest vrai pour i = 1
et, i , pour j = 0. Pour i > 1 et j > 0 :
deg(hi, j ) 2 +

max

j1 + j2 = j ;k1 ,k2 <i

(deg(hk1 , j1 ) + deg(hk2 , j2 ))
2 + 3(i 1) j + 2 = 3i j + 4 3 j 3i j + 1.

Ainsi, g j = h t , j vrifie la proprit demande.

Nous avons besoin dun lemme qui nest pas sans rappeler le lemme 11-X, mais nous
devons ici avoir un contrle sur le degr total du polynme H .
11-AF

Lemme

Soit t 14 un entier. Si g1 , . . . , g t 3 Z[x1 , . . . , x t 2 +2t 2 ], deg( gi ) 3t 4 + 1, alors il existe


un polynme non nul H Z[y1 , . . . , y t 3 ], deg(H ) t 4 , tel que H ( g1 , . . . , g t 3 ) = 0.

11.3. Polynmes

313

Dmonstration On crit le systme que doivent vrifier les coefficients


= (i1 ,...,i 3 )i1 ++i 3 t 4
t

du polynme

H=

H (g1 , . . . , g t 3 )(x) =

i1 ,...,i t 3

i1 ++i t 3 t 4

on doit avoir

i1 ,...,i 3 y11 . . . y t t33 :


t

i1 ,...,i 3 g1 (x)i1 . . . g t 3 (x)it 3 = 0.


t

Le coefficient de chaque monme en x1 , . . . , x t 2 +2t 2 est une combinaison linaire des


3
, donc on a un systme linaire en . Le nombre dinconnues est au moins t t puisque
chaque i j peut prendre nimporte quelle valeur entre 0 et t .
Par ailleurs, le nombre dquations est gal au nombre de monmes en x1 , . . . , x t 2 +2t 2 :
puisquil y a t 2 + 2t 2 variables xi et que le degr de chaque monme est major par
t3

j =1

i j deg(g j ) t 3 t 4 (3t 4 + 1) < t 12 ,

il y a au plus t 12(t +2t 2) monmes en x1 , . . . , x t 2 +2t 2 .


Il y a plus dinconnues que dquations, donc le systme linaire admet une solution

non nulle.

Les deux lemmes prcdents nous donnent le rsultat suivant.


11-AG

Corollaire

Pour tout t 14, il existe un polynme non nul H Z[y1 , . . . , y t 3 ], deg(H ) t 4 , tel que
t 3
pour tout f (x) = i=1
i x i calcul par un circuit de taille t , H (1 , . . . , t 3 ) = 0.
Dmonstration Par le lemme 11-AE, il existe C t +2t 2 tel que i = gi (), o les
gi sont des polynmes vrifiant deg( gi ) 3t 4 + 1 pour 1 i t 3 . Par le lemme 11AF, il existe H tel que H (g1 , . . . , g t 3 ) = 0. En valuant H ( g1 , . . . , g t 3 ) en , on obtient

H (1 , . . . , t 3 ) = 0.

Enfin, le lemme suivant montre quun polynme non nul ne peut pas sannuler en tous
les points de petite valeur.
11-AH

Lemme

Soit un polynme non nul H Z[y1 , . . . , y t 3 ] tel que deg(H ) t 4 . Alors il existe
a1 , . . . , a t 3 {0, . . . , t 4 } tel que H (a1 , . . . , a t 3 ) = 0.

314

Chapitre 11. Bornes infrieures non uniformes

Dmonstration Il sagit dun rsultat classique. Montrons par rcurrence sur le nombre
n de variables que si p est un polynme non nul de degr d n variables, alors il existe
a {0, . . . , d }n tel que p(a) = 0.
Pour n = 1, le nombre de racines ne peut tre plus grand que le degr.

Pour n > 1 : on peut crire p sous la forme p(x1 , . . . , xn ) = i pi (x2 , . . . , xn )x1i o les
pi sont des polynmes (n 1) variables de degr d i . Puisque p est non nul, il
existe i0 tel que pi0 est non nul. Le degr de pi0 est d . Par hypothse de rcurrence, il
existe a2 , . . . , an {0, . . . , d } tel que pi0 (a2 , . . . , an ) = 0. Ainsi, le polynme une variable
q(x1 ) = p(x1 , a2 , . . . , an ) est non nul et de degr d : il existe donc a1 {0, . . . , d } tel

que q(a1 ) = p(a1 , . . . , an ) = 0.

Nous sommes maintenant prts pour la borne infrieure : en effet, du corollaire 11-AG
et du lemme 11-AH on dduit le rsultat suivant.
11-AI

Corollaire

Pour tout t 14, il existe a1 , . . . , a t 3 {0, . . . , t 4 } tel que le polynme


circuits de taille t .

t 3

i=1 ai x

na pas de

Enfin, on peut ramener les coefficients dans {0, 1}.


11-AJ

Corollaire (Srassen 1974, Lipton 1975, Schnorr 1978)

t
Pour tout t 14, il existe b1 , . . . , b t 3 {0, 1} tel que le polynme i=1
bi x i na pas de
circuits de taille t /(4 log t ).
En particulier, en choisissant t = n k+1 on obtient que pour tout k 1 et n 4, il existe
3(k+1)
b1 , . . . , bn 3(k+1) {0, 1} tel que le polynme ni=1 bi x i na pas de circuits de taille n k .

Dmonstration Soit a1 , . . . , a t 3 les coefficients donns par le corollaire 11-AI et soit


3
p(x) = it =1 ai x i . Soit
m

j =0

ai, j 2 j = ai

la dcomposition en base 2 des coefficients ai , avec m = log(t 4 ) = 4 log t et ai , j {0, 1}.


Alors
p(x) =

j =0

donc lun des polynmes

t 3

i=1 ai , j x

t3

ai, j x i

i=1

na pas de circuits de taille t /(4 log t ).

11.3. Polynmes

. 11-AK

315

Exercice

Mener des calculs plus prcis au lemme 11-AF pour annuler O(t 2 ) polynmes gi au
3
lieu
11-AJ est encore valide pour un polynme
de i t . En dduire2 que le corollaire
3
i bi x de degr O(t ) (au lieu de t ).

12

Drandomisation et
bornes infrieures
Nous avons vu dans les chapitres prcdents que de nombreux types de questions restent
ouverts en complexit. Deux dentre eux vont particulirement nous intresser ce chapitre. Dune part, lutilisation de lalatoire permet-elle dacclrer significativement les
algorithmes ? Ce sont des questions du type EXP = BPP ? : peut-on rsoudre tout problme exponentiel en temps probabiliste polynomial ? Ou en dautres termes, lalatoire
peut-il acclrer exponentiellement le calcul ? Bien entendu, toute acclration superpolynomiale (et pas forcment exponentielle) serait dj un apport dcisif, mais ce genre
de rsultat est gnralement considr comme improbable. Vue sous langle oppos, la
question revient se demander si lon peut transformer tout algorithme probabiliste en
un algorithme dterministe sans perdre trop en temps de calcul : a-t-on par exemple
BPP DTIME(n log n ) ou mme BPP = P ? Cest ce quon appelle la drandomisation.
Dautre part, la non-uniformit peut-elle acclrer grandement le calcul ? Cest le domaine
des bornes infrieures non uniformes tudi au chapitre prcdent : montrer par exemple
que EXP P/poly, cest montrer quen temps polynomial, la non-uniformit suffit
calculer tous les problmes exponentiels. L encore, on peut rechercher des acclrations
plus modestes plutt quune acclration exponentielle du temps de calcul : tout rsultat
de la forme DTIME(n f (n) ) P/poly, pour une fonction f tendant vers linfini, serait dj
un apport considrable, mais ce genre de rsultat est habituellement considr comme
improbable car les bornes infrieures de type EXP P/poly sont gnralement considres
comme vraies.
Lobjet de ce chapitre est de montrer que ces deux questions, drandomisation et bornes
infrieures non uniformes, sont troitement lies. Nous allons voir en effet quelles sont
presque quivalentes : une borne infrieure de type EXP P/poly implique un rsultat

de drandomisation de type BPP DTIME(2n ) (pour toute constante > 0), et renforcer
n
lhypothse jusqu E SIZE(2 ) entrane BPP = P (cf. corollaire 12-AV). Rciproquement, drandomiser un problme comme TIP (tester si un circuit arithmtique calcule
un polynme nul, cf. section 6.3.1) implique une borne infrieure, soit sur le permanent
soit sur NEXP (cf. thorme 12-BA).

318

Chapitre 12. Drandomisation et bornes infrieures

Nous commenons par quelques considrations sur la drandomisation avant de montrer que bornes infrieures non uniformes impliquent drandomisation, ce qui remplira
la majorit du chapitre et nous amnera tudier les codes correcteurs derreurs. Nous
terminerons par la dmonstration que la drandomisation de TIP implique un borne
infrieure non uniforme.

12.1

Drandomisation

Si jusquaux annes 1980, les chercheurs pensaient que lalatoire pouvait significativement acclrer le calcul et que, par exemple, BPP = P, la vision gnrale a compltement
chang dans les annes 1990 lorsque sont apparus les rsultats exposs dans ce chapitre. Il
fallait en effet tre cohrent, les bornes infrieures non uniformes de type EXP P/poly
sont habituellement considres comme vraies et celles-ci impliquent une drandomisation
Lavis gnral penche donc maintenant plutt du ct de lgalit entre BPP et P. De
nombreuses drandomisations de problmes naturels sont venues tayer cet avis comme
par exemple le problme PRIMALIT :
entre : un entier N donn en binaire ;
question : N est-il premier ?
On connat des algorithmes probabilistes efficaces pour ce problme depuis les annes
1970 (notamment le test de Miller et Rabin [Mil76 ; Rab80]) mais il a fallu 25 ans avant
de dcouvrir un algorithme dterministe polynomial [AKS04] :
12-A

Thorme (Agrawal, Kayal et Saxena, 2004)

PRIMALIT P.

Un des rares problmes naturels de BPP dont on ignore encore sil est dans P est TIP
(tester si un circuit arithmtique calcule un polynme nul, cf. section 6.3.1).
Des rsultats positifs sont galement connus depuis longtemps dans le cas de la complexit
en espace.
12-B

Dfinition

La classe RPSPACE est lensemble des langages L tels quil existe une machine de Turing
probabiliste M fonctionnant en espace polynomial et en temps exponentiel vrifiant pour
tout x :
si x L alors Pr(M (x) accepte) 1/2 ;
si x L alors Pr(M (x) accepte) = 0.

12.1. Drandomisation

319

Il est facile de voir que RPSPACE NPSPACE, et donc par le thorme 4-AS de Savitch, RPSPACE = PSPACE. Il sagit donc dune drandomisation de la classe probabiliste
RPSPACE.
En ralit, quelques techniques gnriques existent pour drandomiser des problmes : rduire lunivers tout en tant capable de dfinir des variables alatoires k k indpendantes
(et, si lunivers est suffisamment petit, le parcourir en entier pour rsoudre le problme) ;
la mthode des probabilits et des esprances conditionnelles (o il sagit de calculer itrativement la probabilit de succs) ; les expandeurs, etc. Nous renvoyons le lecteur au livre
dAlon et Spencer [AS04] pour approfondir ce sujet.
Les expandeurs ont justement permis Reingold [Rei05] de drandomiser le problme
daccessibilit dans un graphe non orient ACCESSn.o. :
entre : un graphe non orient G et deux sommets s et t ;
question : s et t sont-ils relis dans G ?
On connaissait depuis les annes 1970 un algorithme probabiliste simple et fonctionnant
en espace logarithmique pour ce problme : effectuer une marche alatoire dans G partir
de s et accepter ssi on atteint t en moins de n 3 tapes (Aleliunas, Karp, Lipton, Lovsz
et Rackoff [Ale+79]). La drandomisation suivante, connue sous le nom SL = L car SL
dsigne la classe des problmes qui se rduisent ACCESSn.o. , a donc provoqu lmoi de
la communaut.
12-C

Thorme (Reingold, 2005)

ACCESSn.o. L.

Nous renvoyons au livre de Goldreich [Gol08] pour la preuve de ce thorme grce aux
expandeurs.
Malgr toutes ces avances, aucune drandomisation gnrique de la classe BPP, par
exemple, ne semble porte de main. Une des raisons est que cela impliquerait de montrer une borne infrieure non uniforme, une tche rpute difficile. Nous exposerons ce
rsultat la fin du chapitre.
Mais avant cela, nous montrons dans un premier temps que des bornes infrieures non
uniformes impliquent une drandomisation de BPP. Le chemin pour ce faire est tortueux.
Stratgie de dmonstration Dans une premire section, nous verrons quon peut drandomiser BPP si lon possde une fonction imprdictible , cest--dire dont aucun
circuit de petite taille ne peut prdire correctement les bits de sortie : pour ces circuits, une
telle fonction est donc considre comme alatoire et on peut lutiliser pour remplacer
les bits alatoires dun algorithme probabiliste.
Puis nous verrons la section suivante comment construire une fonction imprdictible
si lon possde une fonction f difficile en moyenne, cest--dire quaucun circuit de petite
taille ne calcule correctement f sur une proportion des entres significativement plus

320

Chapitre 12. Drandomisation et bornes infrieures

grande que 1/2. En valuant f sur des sous-ensembles pseudo-alatoires construits grce
au gnrateur de Nisan et Wigderson (dfinition 12-Q), avec grande probabilit chaque
bit de la sortie est imprdictible.
Enfin, la section suivante nous montrerons que lexistence dune fonction g difficile
dans le pire cas (cest--dire une borne infrieure non uniforme comme nous le souhaitons) permet de construire une fonction difficile en moyenne. Il sagit de la partie la plus
technique et la plus longue car nous avons besoin de codes correcteurs derreurs trs performants. Supposons en effet que lon dispose dun code E pour lequel on soit capable de
retrouver le mot x cod lorsquon dispose dun mot y qui concide avec E(x) seulement
sur la moiti des bits. En voyant une fonction comme un mot gal sa table de vrit, on
dfinit alors g = E( f ) : si g diffre de g sur moins de la moiti des entres, alors partir
de g on sait retrouver f . En dautres termes, si f est difficile dans le pire cas, alors on ne
peut pas calculer g sur plus de la moiti des entres, donc g est difficile en moyenne.
Dans la suite, nous manipulerons donc de nombreuses fonctions. Par abus de notation
mais pour aider la lisibilit, nous dirons quune fonction f : {0, 1} {0, 1} est dans
DTIME(t (n)) si elle peut tre calcule par une machine de Turing dterministe en temps
O(t (n)), cest--dire que nous tendons la dfinition de DTIME(t (n)) aux fonctions. Nous
noterons f =n la restriction de f {0, 1}n .

12.2

Imprdictibilit implique drandomisation

Informellement, une fonction est imprdictible si, pour deviner le bit (i + 1) de sa sortie
lorsquon connat les i premiers bits, on ne peut pas faire beaucoup mieux que de choisir
au hasard.
12-D

Dfinition (imprdictibilit)

Soit m : N N. Une fonction f : {0, 1} {0, 1} est m(n)-imprdictible si


pour tout x {0, 1} , | f (x)| = m(|x|) et
pour tout n , pour tout i [0, m(n) 1] et pour tout circuit boolen C de taille
m(n)2 i entres, on a :
Pr

z{0,1}n :r = f (z)

. 12-E


C (r1 , . . . , ri ) = ri+1 < 1/2 + 1/(6m(n)).

Exercice

Montrer que la fonction identit id : {0, 1} {0, 1} est n -imprdictible.


Puisquon ne sait prdire un bit de f en fonction des prcdents, on peut utiliser f comme
un gnrateur de bits alatoires , ce qui nous permet de montrer le thorme suivant

12.2. Imprdictibilit implique drandomisation

321

de Yao [Yao82] (pour mmoire, la simulation dterministe


vidente dun algorithme pro
babiliste donne linclusion BPTIME o(m(u(n))) DTIME 2 m(u(n)) ).
12-F

Thorme (Yao, 1982)

Pour toutes fonctions m, t : N N, sil existe une fonction m(n)-imprdictible


f : {0, 1} {0, 1} calculable en temps O(t (n)), alors pour toute fonction u : N N
calculable en temps O(2 u(n) ),


BPTIME o(m(u(n))) DTIME 2 u(n) t (u(n)) .

Plus prcisment, si un langage de BPTIME o(m(u(n))) est reconnu par une machine de
Turing probabiliste M (x, r ) o |r | = m(u(|x|)), alors pour tout mot x de taille suffisamment grande,
x L

Pr

z{0,1} u(|x|)

(M (x, f (z)) = 1) 1/2.

Ide de la dmonstration Afin de donner une intuition de la preuve, supposons que


|r | = |z| = | f (z)| = 2 et que M (x, f (z)) = 1 avec probabilit 1/2 alors que M (x, r ) = 1
avec probabilit 1/4. Il y a donc un unique mot r0 tel que M (x, r0 ) = 1, disons r0 = 00,
ce qui implique quil y a deux mots z1 , z2 tels que f (z1 ) = f (z2 ) = 00, tandis que les
mots z3 et z4 ont une image diffrente, disons f (z3 ) = 01 et f (z4 ) = 11. On remarque
alors que le premier bit de f (z) est nul avec probabilit 3/4, donc prdictible . Mais
que se passe-t-il si par exemple f (z3 ) = f (z4 ) = 11 ? Dans ce cas, le second bit de f (z)
est prdictible puisquil est toujours gal au premier. Cest cet exemple simpliste que
nous allons gnraliser.
Dmonstration Dans le but dallger les notations, on note N = u(n). Soit un langage
L BPTIME o(m(N )) et M (x, r ) une machine de Turing fonctionnant en temps
o(m(N )) pour L, o le mot r dsigne les bits alatoires de M . Lide est de remplacer
les bits alatoires r {0, 1} m(N ) de M par f (z), o z parcourt tous les mots de taille
N , et de prendre la rponse majoritaire. Cela revient numrer tous les z {0, 1}N et
pour chacun de calculer f (z) et de simuler M (x, f (z)), ce qui donne un algorithme A
dterministe fonctionnant en temps O(2N (t (N ) + m(N ))) = O(2N t (N )) (car t m ).
Montrons que cet algorithme est correct. Par labsurde, supposons que A fasse une
erreur sur une certaine entre x0 {0, 1}n , cest--dire que
Pr (M (x0 , f (z)) = [x0 L]) 1/2,

z{0,1}N

alors que par dfinition de M , on a :


Pr

r {0,1} m(N )

(M (x0 , r ) = [x0 L]) < 1/3.

1. On rappelle que la notation [x L] (respectivement [x L]) dsigne le boolen qui vaut 1 ssi x L
(resp. x L).

322

Chapitre 12. Drandomisation et bornes infrieures

Nous allons construire un circuit C de taille m(N )2 tel quil existe i [0, m(N ) 1]
vrifiant
(C (r1 , . . . , ri ) = ri +1 ) > 1/2 + 1/(6m(N )).

Pr

z{0,1}N :r = f (z)

Nous dcrivons dabord un algorithme probabiliste B pour tenter de calculer ri+1 ,


dpendant de x0 et de [x0 L], avant de le transformer en circuit. Soit z {0, 1}N

et r = f (z) {0, 1} m(N ) : sur lentre r1 , . . . , ri , B choisit ri+1


, . . . , r m(N
au hasard et
)
renvoie le bit ai +1 dfini par :


ai+1 = ri+1

ai+1 = 1 ri+1

) = [x0 L]
si M (x0 , r1 . . . ri ri+1
. . . r m(N
)
sinon.

Lintuition est que, puisque M fait une erreur sur x0 lorsquelle utilise les bits f (z), elle

devrait avoir tendance renvoyer la mauvaise rponse si ri+1


= ri+1 . Si lon connat
x0 et [x0 L], le temps de calcul de B est o(m(N )). Nous allons montrer quil existe i
tel que Pr z,r (ai +1 = ri+1 ) > 1/2 + 1/(6m(N )). Soit
pi =

Pr

(M (x0 , r1 . . . ri ri+1
. . . r m(N
) ) = [x0 L]) :

z,r :r = f (z)

alors p0 < 1/3 et p m(N ) 1/2 par hypothse. On a :


Pr (ai+1 = ri+1 ) =

z,r

Pr

z,r :r = f (z)

M (x0 , r1 . . . ri ri+1 . . . r m(N


) ) = [x0 L] ri+1 = ri+1 +
Pr

z,r :r = f

(z)

M (x0 , r1 . . . ri ri+1
. . . r m(N
) ) = [x0 L] ri +1 = ri+1

car ai+1 = ri+1


ssi M se trompe. On note r = r1 . . . ri et r = ri+1 . . . r m(N
; alors par
)
dfinition des probabilits conditionnelles (cf. lemme A-D) :

= ri +1 Pr(ri+1
= ri +1 )+
Pr (ai+1 = ri+1 ) = Pr M (x0 , r r ) = [x0 L] | ri+1
z,r


1 Pr M (x0 , r r ) = [x0 L] | ri+1 = ri +1 Pr(ri+1 = ri+1 )

o les probabilits sont prises sur z et r , avec r = f (z).

Mais Pr(ri+1
= ri+1 ) = Pr(ri+1 = ri +1 ) = 1/2 et on a

Pr M (x0 , r r ) = [x0 L] | ri+1 = ri+1 =

Pr M (x0 , r1 . . . ri +1 ri+2
. . . r m(N
) ) = [x0 L] = pi+1 ,

donc :

Pr (ai+1 = ri +1 ) = 1/2 1 + pi +1 Pr M (x0 , r r ) = [x0 L] | ri+1


= ri +1 .

z,r

12.2. Imprdictibilit implique drandomisation


Ainsi,

323


Pr M (x0 , r r ) = [x0 L] | ri+1 = ri +1 = 1 + pi+1 2 Pr(ai+1 = ri +1 ).

On en dduit que
pi


Pr M (x0 , r r ) = [x0 L]


1/2 Pr M (x0 , r r ) = [x0 L] | ri+1 = ri +1 +


Pr M (x0 , r r ) = [x0 L] | ri+1


= ri+1

1/2 pi +1 + 1 + pi+1 2 Pr(ai+1 = ri+1 )

1/2 + pi+1 Pr(ai+1 = ri +1 )

=
=

donc
Puisque

m(N )1
i=0

Pr(ai+1 = ri+1 ) = 1/2 + pi+1 pi .


( pi +1 pi ) = p m(N ) p0 > 1/6, il existe i tel que
pi+1 pi >

1
6m(N )

et donc tel que Pr z,r (ai +1 = ri+1 ) > 1/2 + 1/ 6m(N ) .


Ainsi, il existe un choix r0 de r tel que Pr z (ai +1 = ri +1 ) > 1/2 + 1/(6m(N )). Maintenant, notre circuit C simule simplement B(x0 , r0 ) : sa taille est o(m(N )2 ) (puisque le
temps de calcul de B est o(m(N )), cf. proposition 5-Y) et
Pr

z{0,1}N :r = f (z)



C (r1 , . . . , ri ) = ri+1 > 1/2 + 1/ 6m(N ) ,

une contradiction avec limprdictibilit de f .


12-G

Corollaire

Si, pour une constante > 0, il existe une fonction f : {0, 1} {0, 1} dans
DTIME(2O(n) ) qui est 2n -imprdictible, alors BPP = P.
Si, pour une constante > 0, il existe une fonction f : {0, 1} {0, 1} dans

k
DTIME(2O(n) ) qui est 2n -imprdictible, alors BPP k DTIME(2(log n) ).
Si pour tout c > 0, il existe une fonction fc : {0, 1} {0, 1} dans DTIME(2O(n) ) qui

est n c -imprdictible, alors BPP DTIME(2n ).


Dmonstration
On a m(n) = 2n . Pour tout k , considrons u(n) = (k/) log n :
alors m(u(n)) = n k . Soit > 0 tel que f DTIME(2n ). Par le thorme 12-F,
BPTIME(o(n k )) DTIME(n k/ n k/ ) P.

324

Chapitre 12. Drandomisation et bornes infrieures

On a m(n) = 2n . Pour tout k , considrons la fonction u(n) = (k log n)1/ : alors


O(1)
m(u(n)) = n k . Par le thorme 12-F, BPTIME(o(n k )) DTIME(2(log n) ).
Soit et k fixs. On dfinit u(n) = n , c = k/ et m(n) = n c . Alors par le

thorme 12-F, BPTIME(o(n k )) DTIME(2O(n ) ).

12.3

Difficult en moyenne implique imprdictibilit

Comme nous allons le voir la dfinition suivante, une fonction est dite difficile en
moyenne si aucun circuit de petite taille ne peut la calculer sur une proportion significativement plus grande que la moiti des entres. Elle est dite difficile dans le pire cas si
aucun circuit de petite taille ne peut la calculer sur toutes ses entres. Dans ce qui suit
on parlera de probabilits prises sur lensemble des entres x : ce nest rien dautre quun
moyen commode de parler dune proportion dentres satisfaisant une proprit.
12-H

Dfinition (difficults en moyenne et dans le pire cas)

Soit f : {0, 1}n {0, 1} et [0, 1].


La -difficult en moyenne de f , note Dmoy ( f ), est le plus grand entier s tel que
pour tout circuit C de taille s , Pr x{0,1}n (C (x) = f (x)) < .
La difficult dans le pire cas de f est Dpire ( f ) = D1moy ( f ).
La difficult en moyenne de f est Dmoy ( f ) = max{s | D1/2+1/s
( f ) s }, cest--dire le
moy
plus grand s tel que pour tout circuit C de taille au plus s ,
Pr (C (x) = f (x)) < 1/2 + 1/s.

x{0,1}n

Si f : {0, 1} {0, 1} alors Dmoy ( f ) et Dpire ( f ) sont les fonctions N N qui sur
lentre n valent respectivement Dmoy ( f =n ) et Dpire ( f =n ).

12-I

Remarques

Pour toute fonction f : {0, 1} {0, 1}, Dpire ( f ) Dmoy ( f ).


Si s est la taille du plus petit circuit calculant f , alors Dpire ( f ) = s 1.

. 12-J

Exercice

12.3. Difficult en moyenne implique imprdictibilit

325

Montrer que la plupart des fonctions f : {0, 1} {0, 1} ont une difficult en
moyenne exponentielle (cest--dire Dmoy ( f ) = 2(n) ).
Indication : valuer la probabilit quune fonction alatoire soit calcule par un circuit de
taille 2n sur une fraction 1/2+2n des entres. On pourra utiliser une gnralisation
des bornes de Chernoff (proposition A-N) ou lingalit de Hoeffding.

12-K

Remarques

NP P/poly ssi Dpire (SAT) = n (1) .


Puisque BPP P/poly, si f BPP alors Dpire ( f ) = n O(1) .
Il savre quon peut transformer une fonction difficile en moyenne en une fonction imprdictible comme le montre le thorme suivant de Nisan et Wigderson [NW88].
12-L

Thorme (Nisan et Wigderson, 1988)

Soit s(n) une fonction telle quil existe d : N N dans DTIME(2n ) vrifiant

d (n) n/48 et 22d (n) < s ( nd (n)/12).

Supposons quil existe f : {0, 1} {0, 1} dans DTIME(2O(n) ) telle que Dmoy ( f ) s (n).
Alors il existe une fonction g DTIME(2O(n) ) qui est 2d (n)/2 -imprdictible.
Plus prcisment, partir de toute fonction f : {0, 1} m {0, 1} vrifiant Dmoy ( f ) s(m),
d ((m))/2

on construit une fonction g : {0, 1}(m) {0, 1}2


, o (m) vrifie
(m)d ((m)) = (m 2 ),

telle que g est 2d ((m))/2 -imprdictible. Le calcul de g se fait en temps 2O((m)) en effectuant des appels la fonction f .
Ide de la dmonstration Pour n > m , on va dfinir g =n partir de f =m . Si lon value f sur un sous-ensemble de taille m des entres x1 , . . . , xn , alors un petit circuit ne
pourra prdire le rsultat sur beaucoup plus de la moiti des entres puisque f est
difficile en moyenne. Si maintenant f est value sur N sous-ensembles disjoints de
taille m des entres x1 , . . . , xn , alors les N rsultats de f sur ces sous-ensembles sont
indpendants : on obtient ainsi N bits imprdictibles. Cela implique davoir N m variables pour g , ce qui est trop : on va donc construire des sous-ensembles de [1, n]
presque disjoints , qui peuvent tre nombreux sans faire exploser n , et on valuera
f sur chacun de ces sous-ensembles.
Pour la dmonstration nous avons besoin de lemmes techniques. Dfinissons dabord

326

Chapitre 12. Drandomisation et bornes infrieures

ce quon entend par sous-ensembles presque disjoints : une famille de grands sousensembles de [1, n] dont les intersections deux deux sont petites.
12-M

Dfinition (motif combinatoire)

Soit m , d et n des entiers. Une famille (I1 , . . . , IN ) de sous-ensembles de {1, . . . , n} est un


(m, d )-motif si
m 2d et n [12m 2 /d , 24m 2 /d ] ;
pour tout i , |Ii | = m ;
|Ii I j | d pour i = j .

12-N

m 2d .

Remarque

Les paramtres m, n, d ci-dessus satisfont n 24m 48d puisque

Nous nous attachons maintenant construire de tels ensembles.


12-O

Lemme

Soit d 2, m 2d et n [12m 2 /d , 24m 2 /d ]. Si I1 , . . . , Ik sont des sous-ensembles arbitraires de {1, . . . , n} de taille m , o k < 2d /2 , alors il existe J {1, . . . , n} tel que |J | = m et
pour tout i , |J Ii | d .
Dmonstration Nous utilisons la mthode probabiliste consistant montrer lexistence
dun tel ensemble J en le choisissant au hasard. On construit un sous-ensemble alatoire J de {1, . . . , n} comme suit : chaque lment x {1, . . . , n} est insr dans lensemble avec probabilit 2m/n d /(6m). On note X = |J | : alors lesprance et la
variance de X sont
E(X ) = 2m

et Var(X ) = n(2m/n)(1 2m/n) < 2m

comme somme de n variables indpendantes suivant une loi de Bernoulli (voir le


lemme A-K). Donc par lingalit de Tchebychev A-L :
Pr(X m) Pr(|X E(X )| m) = 1 Pr(|X E(X )| > m)
> 1 Var(X )/m 2 > 1 2/m 1/2

car m 4.
De plus pour tout i fix, puisque la probabilit dinsertion dun lment dans J est
2m/n d /(6m), on a :
 
m
Pr(|J Ii | > d )
(d /(6m))d < (m d /(d !))(d /m)d /6d 1/2d
d

12.3. Difficult en moyenne implique imprdictibilit

327

car d ! > (d /3)d par la formule A-P de Stirling. Ainsi


Pr(i, |J Ii | > d ) < 2d /2 /2d 1/2

donc Pr(i , |J Ii | d ) > 1/2. Au final,


Pr (i, |J Ii | d ) X m > 1 (1/2) (1/2) = 0,

donc il existe J tel que i , |J Ii | d et |J | m . Afin dobtenir |J | = m , il suffit

denlever des lments arbitraires de J puisque cela prserve la proprit.

12-P

Lemme

Pour tous d 2, m 2d , n [12m 2 /d , 24m 2 /d ] et N 2d /2 , un (m, d )-motif (I1 , . . . , IN )


existe et peut tre construit en temps O(22n ).
Dmonstration Un algorithme glouton va fonctionner. On choisit le premier ensemble
I1 de taille m arbitrairement, par exemple I1 = {1, . . . , m}. Puis chacune des N 1
tapes suivantes, on trouve par recherche exhaustive dans {1, . . . , n} un sous-ensemble
Ii +1 satisfaisant |Ii+1 | = m et pour tout j i , |I j Ii+1 | d . Un tel ensemble existe

par le lemme 12-O. Le temps ncessaire pour en trouver un est O(N m mn ) puisquil
faut numrer lensemble
des possibilits et comparer tous les sous-ensembles dj

construits. Or mn 2n : lalgorithme complet tourne donc en un temps
O(2

d /2

 
n
Nm
) = O(22n ).
m

Ces motifs nous permettent de dfinir le gnrateur de Nisan et Wigderson, dont une
illustration est donne la figure 12.1.
12-Q

Dfinition (gnrateur de Nisan et Wigderson)

Soit f : {0, 1} m {0, 1} une fonction et I = (I1 , . . . , IN ) un (m, d )-motif (o I1 , . . . , IN


sont des sous-ensembles de {1, . . . , n}, avec n [12m 2 /d , 24m 2 /d ]). Alors la fonction
fINW : {0, 1}n {0, 1}N est dfinie par
fINW (x) = f (x|I1 ) f (x|I2 ) . . . f (x|IN ),

o x|Ii est xi1 xi2 . . . xim si Ii = {i1 < i2 < < i m }. Cette dfinition stend aux fonctions
f : {0, 1} {0, 1} de manire naturelle si lon dispose de (m, d )-motifs pour tout m N.
Dans la suite, on supposera que le motif utilis est celui donn par le lemme 12-P, donc
on omettra la rfrence au motif pour allger les notations : on notera simplement f NW
au lieu de fINW .

328

Chapitre 12. Drandomisation et bornes infrieures


taille d

I1

I2

IN
...

x1

xn

f (x|I1 )

...

f (x|I2 )

f (x|IN )

fINW (x)

Figure 12.1 Gnrateur de Nisan et Wigderson (contrairement ce que suggre le


dessin, les I j sont des sous-ensembles quelconques, pas forcment des intervalles).

Du lemme 12-P et de la dfinition prcdente, on dduit le rsultat suivant.


12-R

Corollaire

Soit m(n) et d (n) des fonctions calculables en temps O(2n ) telles que m(n) 2d (n) et
n [12m(n)2 /d (n), 24m(n)2 /d (n)]. Si f DTIME(2n ) (pour une constante 1) alors
la fonction f NW : {0, 1} {0, 1} est calculable en temps O(2(+1)n ).
Dmonstration On commence par calculer le (m(n), d (n))-motif en temps O(22n ) par
le lemme 12-P. Puis on value f sur tous les N 2d (n)/2 sous-ensembles, ce qui prend

un temps O(N 2n ) = O(2(+1)n ), donc le temps de calcul total est O(2(+1)n ).

Nous sommes maintenant prts pour la dmonstration du thorme.


Dmonstration du thorme p
12-L Soit n fix, on notera d = d (n) pour allger les notations. Dfinissons m = nd /12 de sorte que n [12m 2 /d , 24m 2 /d ]. Puisque
n 48d , on a
m>

nd /12 1

48d 2 /12 1 = 2d 1, donc m 2d .

Soit N = 2d /2 et (I1 , . . . , IN ) un (m, d )-motif. Soit g = f NW , donc g : {0, 1}n {0, 1}N
et g DTIME(2O(n) ) par le corollaire 12-R. On remarque donc que g sur les entres de
taille n est calcule partir de f =m ; et si on appelle la fonction telle que (m) = n ,
on a (m)d ((m)) [12m 2 , 24m 2 ].
Supposons par labsurde que g nest pas N -imprdictible, cest--dire quil existe un
circuit C de taille N 2 et i [0, N 1] tels que
Pr

(C (r1 , . . . , ri ) = ri+1 ) 1/2 + 1/(6N ).

z{0,1}n :r = g (z)

12.3. Difficult en moyenne implique imprdictibilit

329

Nous allons obtenir une contradiction avec la difficult de f . Puisque r j = f (z|I j ), on


a:

Pr

z{0,1}n

C ( f (z|I1 ), . . . , f (z|Ii )) = f (z|Ii +1 ) 1/2 + 1/(6N ).

Appelons z les m variables z|Ii +1 , z les (n m) variables z|[1,n]\Ii +1 , et pour j = i + 1,


z j les d variables z|I j Ii+1 et z j les m d variables z|I j \Ii +1 . Alors
Pr

z {0,1} m ,z {0,1}nm


C ( f (z1 , z1 ), f (z2 , z2 ), . . . , f (zi , zi )) = f (z ) 1/2 + 1/(6N ).

Il existe donc un mot z fix tel que


C ( f (z1 , z1 ), f (z2 , z2 ), . . . , f (zi , zi )) = f (z ) 1/2 + 1/(6N ).

Pr

z {0,1} m

Maintenant, puisque z est fix, f (z j , z j ) dpend seulement des d variables z j et


a donc un circuit de taille d 2d (le circuit qui calcule simplement sa table de vrit).
Combin avec C , cela donne un circuit D de taille i d 2d + 2d 2d /2 d 2d + 2d tel que
Pr

z {0,1} m

(D(z ) = f (z )) 1/2 + 1/(6N ).

Cest p
une contradiction avec la difficultpde f ds que 2d /2 d 2d + 2d < s (m). Puisque

m = nd /12, il suffit que 22d (n) < s ( nd /12), ce qui est vrai par hypothse.
12-S

Corollaire

Sil existe une fonction f DTIME(2O(n) ) telle que Dmoy ( f ) 2n pour un certain
> 0, alors BPP = P.

Sil existe une fonction f DTIME(2O(n) ) telle que Dmoy ( f ) 2n pour un certain
k
> 0, alors BPP k DTIME(2(log n) ).
Si pour tout c > 0 il existe une fonction fc DTIME(2O(n) ) telle que Dmoy ( fc ) n c ,

alors BPP >0 DTIME(2n ).


Sans perte de gnralit, 1. Pour d (n) = (2 /50)n , la fonction
s(n) = 2 satisfait les hypothses du thorme 12-L :

Dmonstration

p
p
p
2
2
s ( nd /12) = s ((/ 600)n) = 2( / 600)n > 2( /25)n = 22d (n) .

Donc il existe une fonction 2 n/100 -imprdictible g DTIME(2O(n) ). Par le corollaire 12-G, cela implique BPP = P.
2

Sans perte de gnralit < 2. Pour d (n) = n /2 , la fonction s (n) = 2n satisfait


les hypothses du thorme 12-L :
s(

nd /12) = s(121/2 n 1/2+/4 ) = 212

/2 /2+2 /4

> 22n

/2

= 22d (n) .

330

Chapitre 12. Drandomisation et bornes infrieures


/2

Il existe donc une fonction 2(1/2)n -imprdictible g DTIME(2O(n) ). Par le cok


rollaire 12-G, cela implique BPP k DTIME(2(log n) ).
Pour d (n) = (c/4) log n , la fonction s (n) = n c satisfait les hypothses du thorme 12-L :
s(

nd /12) = ((c/48)n log n)c/2 > n c/2 = 22d (n) .

Il existe donc une fonction n c/8 -imprdictible g DTIME(2O(n) ). Par le corol


laire 12-G, cela implique BPP DTIME(2n ).

12.4

Difficult dans le pire cas implique difficult en


moyenne

Nous allons maintenant construire une fonction difficile en moyenne partir dune fonction difficile dans le pire cas. Pour cela, nous passerons par des codes correcteurs derreurs.
Informellement, un code correcteur derreurs est une fonction E qui code un mot x en
un mot y = E(x) de sorte quon peut retrouver x partir dune version errone y de
son image qui diffre de y sur une proportion des bits. Nous verrons une fonction
n
f : {0, 1}n {0, 1} comme un mot de {0, 1}2 correspondant sa table de vrit.
Lide pour transformer une fonction f difficile dans le pire cas en une fonction g difficile
en moyenne est la suivante. Supposons quon dispose dun bon code correcteur derreurs
E : on dfinit simplement g = E( f ). Ainsi, si on peut calculer g correctement sur une
fraction (1 ) de ses entres, alors on peut calculer (retrouver) f exactement grce au
code correcteur. Donc si f est difficile dans le pire cas, aucun petit circuit ne la calcule
correctement sur toutes les entres et on en dduit quaucun petit circuit ne calcule g sur
une fraction (1 ) de ses entres, et g est donc difficile en moyenne si est proche de
1/2.
La discussion qui prcde montre quil nous faut un code correcteur derreurs performant,
et cest le sujet de la partie (technique) qui suit.

12.4.1

Codes correcteurs derreurs

Nous allons voir deux codes correcteurs, celui de Hadamard et celui de Reed-Muller. Nous
montrerons quon peut dcoder efficacement ces codes, mais cela ne suffit pas. Pour notre
application, nous aurons besoin dune combinaison des deux, appele concatnation .
Nous devrons russir dcoder cette concatnation en temps polylogarithmique, cest-dire sans lire toute limage, tout en tant capable de retrouver chaque bit du mot original
lorsque prs de la moiti des bits du codage sont corrompus. Pour cela, nos algorithmes
renverront non pas directement le mot x qui a t cod, mais une petite liste de candidats
parmi lesquels figure x : nous pouvons ensuite retrouver x grce un conseil de taille
logarithmique donnant le numro de x dans cette liste. Le but de cette partie est de

12.4. Difficult dans le pire cas implique difficult en moyenne

331

donner les algorithmes de dcodage locaux avec conseil pour ces deux codes, et de montrer
comment les combiner pour obtenir le dcodage de la concatnation des codes.
Dans cette partie dsigne un ensemble fini (alphabet). On aura bientt besoin que
soit un corps fini, mais pour linstant cette hypothse est inutile.
12-T

Dfinition (distance de Hamming fractionnaire)

Pour x, y m , la distance de Hamming fractionnaire entre x et y est


(x, y) =

12-U

|{i [1, m] | xi = yi }|
.
m

Dfinition (code correcteur derreurs)

Pour ]0, 1[, un code correcteur derreurs de distance est une fonction E : n m
telle que
x = y = (E(x), E(y)) .

Cette dfinition se gnralise aux fonctions E : vrifiant


|x| = |y| = |E(x)| = |E(y)|.

Lentier m est appel taille du code E .

12-V

Remarques

La dfinition implique que tout code correcteur est injectif.


Sur {0, 1}, des codes de taille polynomiale (cest--dire que m est polynomial en n )
existent pour toute distance < 1/2 mais pas pour = 1/2, distance pour laquelle
seuls des codes de taille exponentielle existent. Enfin, aucun code, quelle que soit
sa taille, nexiste pour > 1/2 (attention, cela nest vrai que si || = 2).

12-W Remarque Si E : n m est un code de distance et x n , on peut


retrouver x partir de tout mot z m vrifiant (z, E(x)) < /2 : E(x) est en effet
le mot y Im(E) le plus proche de z et partir de E(x) il suffit alors dinverser E pour
retrouver x .
On rappelle que pour x, y {0, 1}n , le produit scalaire de x, y est x y =

i =1 xi yi

mod 2.

332
12-X

Chapitre 12. Drandomisation et bornes infrieures


Dfinition (code de Hadamard)

Le code de Hadamard est la fonction H : {0, 1} {0, 1} dfinie sur {0, 1}n par
H(x) = z0 z1 . . . z2n 1 , o z j = x j

(ici, j est interprt comme sa reprsentation binaire sur {0, 1}n ). On a donc |H(x)| = 2|x| .

12-Y

Lemme

La fonction H est un code de distance 1/2.


Dmonstration Soit x, y {0, 1}n deux mots diffrant au i -me bit. Alors pour tous
u {0, 1}i1 et v {0, 1}ni , soit x u0v = y u0v soit x u1v = y u1v , donc

x j = y j pour la moiti des entiers j [0, 2n 1].

Pour la dfinition des codes de Reed-Muller [Mul54], nous avons besoin dun lemme.
Pour un polynme, on appellera degrs individuels les degrs de chaque variable.
partir de maintenant, est un corps fini.
12-Z

Lemme

Soit k et d deux entiers tels que k divise d et d /k < ||. Pour tout ensemble S
de taille 1 + d /k , lapplication dfinie par ( p) = f p , o f p : S k est la fonction
dfinie par f p (x) = p(x), est une bijection entre lensemble des polynmes k variables
p : k de degrs individuels d /k (et donc de degr total d ) et lensemble des
fonctions f : S k .
Dmonstration Les polynmes k variables sur de degrs individuels d /k ont
k
(1 + d /k)k monmes, chacun avec un coefficient dans : il y a donc ||(1+d /k) tels
polynmes. Cest aussi le nombre de fonctions de S k dans puisque |S| = (1 + d /k).
Il suffit donc de montrer que la fonction est injective. Cela se fait en montrant que
pour tout polynme non nul p k variables de degrs individuels m sur un corps K
de taille > m et pour tout sous-ensemble T K de cardinal 1 + m , il existe a T k tel

que p(a) = 0. Cette simple adaptation du lemme 11-AH est laisse en exercice.

Soit k d deux entiers tels que d < || et k divise d . Par le lemme 12-Z, un polynme
k variables

p(x1 , . . . , xk ) =

d1 d /k,...,dk d /k

cd1 ,...,dk x1 1 . . . xk k

de degrs individuels d /k (et donc de degr total d ) sur est caractris par la liste
de ses valeurs sur toutes les entres de lensemble {0 , . . . , d /k }k , o les i sont des

12.4. Difficult dans le pire cas implique difficult en moyenne

333

lments distincts et arbitraires de . On prendra pour 0 , . . . , d /k les (1 + d /k) premiers


points dans lordre lexicographique dans la reprsentation binaire de . Cette reprsentation dun polynme p sera lentre de notre code correcteur.
12-AA

Dfinition (code de Reed-Muller)

Un polynme p [x1 , . . . , xk ] de degrs individuels d /k est cod par la liste de ses


valeurs sur les (1 + d /k) premiers points de .
La fonction RM : (1+d /k) || est dfinie sur un tel codage dun polynme p , par la
liste des valeurs que prend p sur k , cest--dire
k

RM( p) = ( p(a1 , . . . , ak ))a1 ,...,ak .

12-AB

Remarques

Ce nest pas la dfinition usuelle des codes de Reed-Muller, car ceux-ci prennent
habituellement comme entre la liste des coefficients de p . Notre version nous vite
de faire de linterpolation qui serait trop coteuse pour le dcodage, puisquil suffit
ici de calculer p(x) pour tout x {0 , . . . , d /k }.
Les entiers k et d dans le code de Reed-Muller seront fixs plus tard pour notre
application.
Le lemme suivant est classique et connu sous le nom de Schwartz-Zippel car il apparat
explicitement dans les articles [Zip79 ; Sch80] (on a dj vu des rsultats similaires aux
lemmes 10-M et 11-AH).
12-AC

Lemme (Zippel 1979, Schwartz 1980)

Si r est un polynme non nul k variables de degr d sur le corps fini , alors
Prak (r (a) = 0) 1 d /||.
Dmonstration Par rcurrence sur k . Pour k = 1, r a au plus d racines et le rsultat suit
(il sagit du lemme 10-M). Pour k > 1, on exprime r selon la variable x1 :
r (x1 , . . . , xk ) =

i =0

ri (x2 , . . . , xk )x1i

o les ri sont des polynmes (k 1) variables de degr d i . Puisque r est non nul,
il existe i tel que ri est non nul : soit i0 le plus grand i tel que ri = 0. Par hypothse
de rcurrence,
Pr (ri0 (a2 , . . . , ak ) = 0) 1 (d i0 )/||,

a2 ,...,ak

334

Chapitre 12. Drandomisation et bornes infrieures

et si ri0 (a2 , . . . , ak ) = 0 alors r (x1 , a2 , . . . , ak ) est un polynme univari non nul de degr
i0 . Donc
Pr (r (a1 , . . . , ak ) = 0) (1 (d i0 )/||)(1 i0 /||) 1 d /||.

a1 ,...,ak

12-AD

Lemme

La fonction RM est un code de distance 1 d /||.


Dmonstration Soit p = q deux polynmes k variables de degr d sur : alors
p q est un polynme non nul k variables de degr d . Le lemme 12-AC implique
que p(x) = q(x) pour une fraction 1 d /|| des points x k , ce qui conclut.

On suppose dornavant que || est une puissance de deux. On a donc = F2q (le
corps fini 2q lments) pour un certain entier q . La dfinition suivante introduit la
concatnation F E de deux codes E : et F : {0, 1} : il sagit du code o
lon applique F chaque symbole de E(x) (illustration la figure 12.2).
12-AE

Dfinition (concatnation de codes)

Un code E : n m peut tre vu comme une fonction E : {0, 1}n log || m en


encodant chaque symbole de par log || bits.
De mme, un code F : {0, 1}log || {0, 1} t peut aussi tre vu comme une fonction
F : {0, 1} t .
Si E : n m et F : {0, 1}log || {0, 1} t sont deux codes, leur concatnation est
le code F E : {0, 1}n log || {0, 1} mt dfini par (F E)(x) = F (y1 ) . . . F (y m ), o
y = E(x) m .

12-AF

Lemme

Si E : n m a une distance E et F : {0, 1}log || {0, 1} t a une distance F , alors F E


a une distance E F .
Dmonstration Soit x, y n deux entres distinctes. Alors E(x) et E(y) diffrent sur
au moins E m positions. Si i est une telle position (cest--dire E(x)i = E(y)i ), alors
F (E(x)i ) et F (E(y)i ) diffrent sur au moins F t positions. Au total, (F E)(x) et

(F E)(y) diffrent donc sur au moins E mF t positions.

12.4. Difficult dans le pire cas implique difficult en moyenne


xn

x1

x {0, 1}

335

E
y = E(x)

ym

y1

F
z {0, 1}

Figure 12.2 Concatnation de deux codes E : {0, 1} et F : {0, 1} .

12-AG

Lemme

La concatnation H RM : {0, 1}(1+d /k) log || {0, 1}|| du code de Reed-Muller


k
k
RM : (1+d /k) || et de celui de Hadamard H : {0, 1}log || {0, 1}|| est une fonction calculable en temps polynomial en ||k .
k

k+1

Dmonstration Soit p un polynme dont on connat la liste de ses valeurs sur lensemble {0 , . . . , d /k }k . On peut calculer les coefficients de p en rsolvant le systme
linaire correspondant, dans lequel les coefficients de p sont les inconnues. Ce systme
est de taille (1 + d /k)k ||k donc la rsolution se fait en temps polynomial en ||k
par limination de Gauss.
Une fois que lon dispose des coefficients de p , il est alors facile en temps polynomial
en ||k dvaluer p sur chaque point de k puis dappliquer la fonction H sur chaque

valeur obtenue.

Afin de construire une fonction difficile en moyenne partir dune fonction difficile dans
le pire cas, supposons que nous voulions appliquer lide dcrite en dbut de partie. Puisquaucun code sur {0, 1} nest de distance > 1/2, la remarque 12-W semble indiquer quon
ne pourrait pas dcoder correctement un mot ayant une proportion 1/4 derreurs, ce
qui nest pas suffisant. Ce problme est contourn grce au dcodage par liste : plutt que de dcoder de manire unique un mot, on donne une petite liste de candidats
possibles, ce qui permet daugmenter la proportion admissible derreurs.
Nous avons besoin de quelques lemmes avant dexpliquer la procdure de dcodage par
liste du code de Reed-Muller. Le premier, d Sudan [Sud96], montre que la liste de
candidats peut tre calcule efficacement dans le cas univari (k = 1).
12-AH

Lemme (Sudan, 1996)

Il y a un algorithme fonctionnant en temps polynomial qui, sur lentre un entier d < m/4
et m couples (a1 , b1 ), . . . , (a m , b m ) dlments de , renvoie la liste de tous les polynmes

336

Chapitre 12. Drandomisation et bornes infrieures

p
g : de degr d tels que le nombre de positions i auxquelles g (ai ) = bi est > 2 d m .
p
Cette liste contient au plus m/d polynmes.

Dmonstration Supposons que Q(x, y) est un polynme


non nul deux
p
p variables sur
tel que Q(ai , bi ) = 0 pour tout i , deg x (Q) md et degy (Q) m/d . Si g est
dans la liste, alors :
Q(x, g (x)) = 0 car le polynme une variable Q(x, g (x)) est de degr major par
p

md + d

p
m/d = 2 md

et sannule sur > 2 md points ;


g (x) y est un facteur de Q(x, y) : en effet, soit Q (y) = Q(x, y) ([x])[y],
alors g (x) est une racine de Q (y), donc y g (x) divise Q (y), cest--dire que
il existe R ([x])[y] tel que Q (y) = (y g (x))R (y) :
en dautres termes, il existe R [x, y] tel que
pQ(x, y) = (y g (x))R(x, y). Le
nombre de tels facteurs est au plus degy (Q) m/d .
Il est donc suffisant de trouver un tel polynme Q(x, y) et de le factoriser en utilisant,
par exemple, lalgorithme de Berlekamp [Ber67] qui permet de factoriser en temps
polynomial un polynme sur un corps fini. Afin de trouver Q , on crit les m quations
linaires (Q(ai , bi ) = 0)i [1,m] que ses coefficients doivent vrifier. Il y a
(1 +

md )(1 +

m/d ) > m

coefficients, donc le systme a une solution non nulle que lon trouve en temps poly
nomial par limination de Gauss.

Les deux lemmes qui suivent montrent qu partir du codage dun polynme comportant
des erreurs, on peut efficacement retrouver le polynme initial. Le premier rsultat, de
Gemmell et Sudan [GS92] (amliorant un algorithme original de Berlekamp et Welch)
concerne les polynmes univaris tandis que le second traite des polynmes plusieurs
variables. On remarquera que la borne polylogarithmique sur le temps dexcution porte
sur la taille de lentre qui est exponentielle en n , et il est donc ncessaire dobtenir une
si bonne borne pour obtenir un algorithme polynomial au final.
12-AI

Lemme (Berlekamp et Welch 1986, Gemmell et Sudan 1992)

Il existe un algorithme fonctionnant en temps polynomial qui, sur lentre constitue


dun entier d < || et dune liste (a1 , b1 ), . . . , (a m , b m ) de m > d couples dlments de
tels quil existe un polynme p : de degr d satisfaisant p(ai ) = bi pour au moins
t > m/2 + d /2 nombres i [1, m], renvoie la liste des coefficients de p .
On remarquera que p est unique : deux polynmes de degr d satisfaisant lnonc concident sur 2t m > d points, donc sont gaux.

12.4. Difficult dans le pire cas implique difficult en moyenne

337

Dmonstration Lalgorithme fonctionne comme suit.


Trouver un polynme A(x) de degr m t + d et un polynme B(x) non nul
de degr m t tels que A(ai ) = bi B(ai ) pour tout i [1, m]. De tels polynmes
existent car pour B on peut prendre un polynme non nul de degr m t qui
sannule sur les m t points ai pour lesquels p(ai ) = bi , et ainsi A = pB est de
degr m t + d .
Pour trouver A et B , il suffit de rsoudre un systme linaire 2m 2t + d + 2
inconnues (les coefficients de A et B ) et m quations (une pour chaque i ) : cela
prend un temps polynomial grce llimination de Gauss.
Renvoyer Q , le quotient dans la division euclidienne de A par B .
Puisque A(x) p(x)B(x) est de degr m t + d < t et est nul sur t points,
on a A(x) = p(x)B(x), donc Q(x) = p(x).

On rappelle quun algorithme A a accs direct un mot y , not Ay , sil dispose dun
oracle qui, sur lentre i en binaire, renvoie le i -me bit de y (cf. dfinition 10-AI). Nous
pouvons maintenant dcoder Reed-Muller sans lire toute lentre (do le nom local ).
Ce rsultat est d Gemmell, Lipton, Rubinfeld, Sudan et Wigderson [Gem+91].
12-AJ

Lemme (dcodeur local pour Reed-Muller)

Il existe un algorithme probabiliste D fonctionnant en temps (k||)O(1) tel que, pour tout
d < (|| 1)/3, si f : k concide avec un polynme P de degr d sur une fraction
17/18 des entres, alors pour tout x k , Pr(D f (x, d ) = P (x)) 5/6.
Dmonstration Lalgorithme D fonctionne comme suit sur lentre (x, d ).
Choisir z k au hasard et considrer la ligne
L z = {x + t z | t }.

Si X est lensemble des entres sur lesquelles f et P diffrent,


alors on dfinit N = |L z \{x}X | : puisque pour tout t = 0, x +t z
est uniformment distribu, on a
k

E(N ) =

t \{0}

Pr(x + t z X ) (|| 1)/18


z

donc, par lingalit de Markov (proposition A-I),


Pr(N >
z

|| 1
(|| 1)/18
)<
= 1/6.
3
(|| 1)/3

Ainsi, avec probabilit > 5/6, le nombre de points de L z \{x} sur


lesquels f et P concident est au moins
2(|| 1)/3 > (|| 1)/2 + d /2.

338

Chapitre 12. Drandomisation et bornes infrieures


Demander la valeur de f sur tous les || 1 points de L z \ {x}
afin dobtenir lensemble
{(t , f (x + t z)) | t \ {0}}.

Le polynme Q(t ) = P (x + t z) est univari de degr d . Excuter la procdure de Berlekamp-Welch (lemme 12-AI) sur les
points
{(t , f (x + t z)) | t \ {0}}

afin de retrouver un polynme Q (suppos gal Q ).


Renvoyer Q (0).
Avec probabilit > 5/6, L z \ {x} contient plus de (|| 1)/2 + d /2 points sur lesquels
f et P concident, donc la procdure de Berlekamp-Welch renvoie Q et lalgorithme

renvoie Q(0) = P (x).

Les deux lemmes techniques qui suivent concernent des courbes alatoires de degr 3 :
quand nous parlerons de polynmes q : k (courbes paramtres par t ), nous
utiliserons le produit t u = (t u1 , . . . , t uk ) si t et u = (u1 , . . . , uk ) k .
12-AK

Lemme

Soit S k un ensemble fix et x k un point fix. Soit q(t ) = x + t u + t 2 v + t 3 w un


polynme alatoire de degr 3 o t , et u, v, w k sont choisis au hasard, dfinissant
une courbe Q = q(). Alors pour tout t \ {0}, Pr(q(t ) S) = |S|/||k . En outre, pour
tous t = t , les vnements q(t ) S et q(t ) S sont indpendants.
Dmonstration Supposons dans un premier temps que t = 0 et t = 0. Nous montrons
dabord que pour t = t , si y, y k sont fixs, alors les vnements q(t ) = y et
q(t ) = y sont indpendants. On a
q(t ) = y u = (y x t 2 v t 3 w)/t ,

donc le choix de v et w est arbitraire mais alors u est fix, donc Pr(q(t ) = y) = 1/||k
et de mme pour q(t ) = y . De plus,
(q(t ) = y q(t ) = y )
(t u + t 2 v + t 3 w = y x t u + t 2 v + t 3 w = y x)
u = (y x t 2 v + t 3 w)/t (t t 2 t t 2 )v = t (y x) t (y x) (t t 3 t t 3 )w :

si t = t , on peut choisir arbitrairement w mais alors u et v sont fixs, donc


Pr(q(t ) = y q(t ) = y ) = 1/||2k = Pr(q(t ) = y) Pr(q(t ) = y ).

12.4. Difficult dans le pire cas implique difficult en moyenne

339

Par ailleurs, Pr(q(t ) S) = yS Pr(q(t ) = y) car ces vnements sont disjoints, donc
Pr(q(t ) S) = |S|/||k , et de mme pour Pr(q(t ) S). Mais pour t = t ,
Pr(q(t ) S q(t ) S) =

Pr(q(t ) = y q(t ) = y ) = |S|2 /||2k ,

y,y S

ce qui montre lindpendance.


Maintenant, si t ou t est nul, disons t = 0, alors soit x S et Pr(q(t ) S) = 1, soit
x S et Pr(q(t ) S) = 0 : dans tous les cas, les vnements q(t ) S et q(t ) S sont

indpendants.

12-AL

Lemme

Soit S k un ensemble fix tel que |S| ||k , o < 1/2, et soit x k fix. Soit
q(t ) = x + t u + t 2 v + t 3 w un polynme alatoire de degr 3 o t et o u, v, w k
sont choisis au hasard, dfinissant une courbe Q = q().
Alors Pr(|Q S| 2||/15) 1 25/(2 ||).
Dmonstration Puisque
q est de degr 3, chaque y k na pas plus de 3 antcdents.

Donc |Q S| ( t \{0} x t )/3 o x t = 1 si q(t ) S et x t = 0 sinon. Le lemme 12-AK


montre quil sagit dune somme de variables alatoires deux deux indpendantes, o
Pr(x t = 1) . On a
E(|Q S|) (|| 1)/3

donc
Pr(|Q S| 2||/15)



Pr |Q S| E(|Q S|) (|| 1)/3 2||/15 .

Mais puisque || 2, on a
(|| 1)/3 2||/15 ||/30.

Par ailleurs,
Var(|Q S|) (|| 1)/36

(cf. proprits de la variance au lemme A-K) donc par lingalit de Tchebychev (thorme A-L) :
Pr(|Q S| 2||/15)




Pr |Q S| E(|Q S|) ||/30
(|| 1)/(36(||/30)2 )

25/(2 ||).

340

Chapitre 12. Drandomisation et bornes infrieures

Pour notre application, nous avons besoin dalgorithmes de dcodage extrmement efficaces permettant de retrouver le mot cod lorsque seule une infime fraction du codage
est correcte. Nous nous aiderons pour cela dun conseil. Le conseil dont il sera question
dans nos dcodeurs peut tre vu comme le numro du mot x retrouver dans une liste de
candidats fournie par lalgorithme, cest pourquoi ce genre de dcodeur est aussi appel
liste plutt que conseil . On rappelle que dsigne la distance de Hamming
fractionnaire (dfinition 12-T).
12-AM

Dfinition (dcodeur local conseil)

Soit E : n m un code et soit 0 < < 1. Un algorithme probabiliste D (avec bit


alatoires r ) est dit dcodeur local conseil pour E corrigeant erreurs en temps t avec
conseil de taille s sil fonctionne en temps t et, pour tous x n et z m vrifiant
(E(x), z) , il existe a(r ) {0, 1} s (un conseil dpendant de x , z et r ) tel que pour
tout i [1, n],
Pr(D z (i, a(r ), r ) = xi ) 2/3,
r

cest--dire que D avec accs direct z dcode chaque bit xi avec probabilit 2/3, grce
un conseil indpendant de i .

12-AN

Remarques

Dans la suite, nous considrerons des dcodeurs locaux conseil fonctionnant en


temps polylogarithmique en m avec conseil de taille logarithmique en n .
Si F est lensemble des fonctions f : k , alors on peut considrer que le
code de Reed-Muller prend ses valeurs dans F . Dans la proposition suivante, nous
voulons un dcodeur local conseil pour le code de Reed-Muller : le conseil a
dpend de f mais doit tre le mme pour tous les mots x k .

Le dcodage suivant de Reed-Muller est d Sudan [Sud96] mais notre prsentation est
plus proche de Sudan, Trevisan et Vadhan [STV99].
12-AO

Proposition (dcodeur local conseil pour Reed-Muller)

Il existe une constante > 0 telle que pour tout entier d suffisamment grand,
si d 2 ||
p
alors le code de Reed-Muller a un dcodeur local conseil corrigeant 130 d /|| erreurs
en temps (k||) avec conseil de taille (k + 1) log ||.
Plus prcisment, il existe un algorithme probabiliste D fonctionnant en tempsp
(k||)
tel que, si f : k concide avec un polynme p de degr d sur une fraction 30 d /||
de ses entres, alors il existe (a, b ) k tel que pour tout x k , Pr(D f (x, a, b ) =
p(x)) 2/3.

12.4. Difficult dans le pire cas implique difficult en moyenne

341

Dmonstration Soit = (2/ d )1/2 , o d suffisamment grand garantit que < 1/18.
Nous dcrivons dabord un algorithme probabiliste avec conseil (a, b ) k , travaillant sur 1 des entres x k , qui a une probabilit de succs 1 .
Choisir au hasard r \ {0} et v, w k .
On dfinit u = (a x v r 2 w r 3 )/r et q(t ) = x + t u + t 2 v + t 3 w
(pour t ), de sorte que la courbe de degr 3, Q = q(), vrifie
q(0) = x et q(r ) = a .
Demander la valeur de f sur tous les points de Q afin dobtenir
les couples (t , f (q(t ))) pour tout t .
Excuter lalgorithme de Sudan (lemme 12-AH) pour obtenir
une liste g1 , . . . , g m de tous les polynmes
de degr 3d tels que
p
gi (t ) = f (q(t )) pour au moins 4 d || points t .
(On remarquera que lalgorithme de Sudan
renvoie
tous les pop
p
lynmes qui concident avec plus de 2 3d || < 4p d || points,
mais on peut ignorer ceux qui concident sur < 4 d || points)
Sil existe un unique i tel que gi (r ) = b alors renvoyer gi (0). Sinon sarrter (sans rien renvoyer).
Afin de montrer quun couple correct (a, b ) existe, nous allons utiliser un argument
probabiliste. Soit x k fix, on choisit a k au hasard et on pose b = p(a). Les
choix alatoires sont donc a, r, v et w . Alors la premire tape de lalgorithme revient
choisir une courbe alatoire Q telle que q(0) = x , et la dernire tape choisir un point
alatoire r et vrifier que gi (r ) = p(q(r )). Nous prtendons que la probabilit
que gi = p q est
leve. En effet, si S = {y k | f (y) = p(y)}, alors par hypothse
p
Pry (y S) 30 d /||, donc par le lemme 12-AL,

Pr (|Q S| 4 d ||) 1 1/(36d ).

a,r,v,w

Ainsi, p q est dans la liste g1 , . . . , g m avec probabilit 1 1/(36d ). De plus, la


probabilit quaucun autre polynme gi satisfasse gi (r ) = p(q(r )) est leve : gi et
p q , en tant que polynmes distincts de degr 3d , concident seulement sur au
plus 3d points, donc Pra,r,v,w ( gi (r ) = p(q(r ))) 3d /||. Au final, puisquil y a au
p
plus ||/(3d ) polynmes gi dans la liste, on a
Pr ( au plus un i tel que gi (r ) = p(q(r ))) 1

a,r,v,w

Donc avec probabilit au moins


1 1/(36d )

||/(3d )(3d /||) = 1

3d /||.

p
3d /|| 1 2/ d = 1 2

(pour d suffisamment grand) nous identifions p q de manire unique et renvoyons


p q(0) = p(x). Ainsi, Pra,r,v,w (D f (x, a, b ) = p(x)) 1 2 .

342

Chapitre 12. Drandomisation et bornes infrieures

Maintenant, soit A lvnement alatoire a est valide pour x dfini par


Pr (D f (x, a, b ) = p(x)) 1 .

r,v,w

Alors
Pr (D f (x, a, b ) = p(x)) =

a,r,v,w

Pr (D f (x, a, b ) = p(x) | a A) Pr(A) + Pr (D f (x, a, b ) = p(x) | a A)(1 Pr(A))

a,r,v,w

a,r,v,w

Pr(A) + (1 )(1 Pr(A)) = 1 + Pr(A).

Donc 1 + Pr(A) 1 2 , cest--dire que Pr(A) 1 . Ainsi, un a alatoire est


valide pour x avec probabilit 1 .
Puisque cet argument fonctionne pour un x k arbitraire, on a :
1 Pr Pr(a est valide pour x) = Pr Pr(a est valide pour x).
x

Donc il existe un point a spcifique qui est valide pour une fraction 1 des
entres x k .
Il reste obtenir le rsultat sur toutes les entres x k : nous voulons appliquer le
dcodeur local de Reed-Muller (lemme 12-AJ) afin de retrouver le polynme p qui,
grce lalgorithme prcdent, a t calcul correctement sur 1 > 17/18 des
entres. En dautres termes, nous voulons excuter le dcodeur et, chacune de ses
requtes une valeur de p , lancer lalgorithme prcdent pour calculer cette valeur.
Remarquons tout dabord que si on rpte lalgorithme prcdent (avec le mme
conseil correct a ) O(log(k||)) fois et quon prend la rponse majoritaire, alors la probabilit derreur devient (k||)(1) . Cela signifie quavec probabilit 5/6, pour
toutes les entres x sauf une fraction , toutes les (k||)O(1) requtes du dcodeur local
conseil de Reed-Muller recevront la bonne rponse de lalgorithme prcdent.
Ainsi, avec probabilit 5/6, le dcodeur local conseil de Reed-Muller fonctionne
comme sil avait accs un oracle calculant le polynme correct sur une fraction
k

1 > 17/18

des entres. Au final, la probabilit de succs de la combinaison des deux algorithmes

est au moins 1 (1/6 + 1/6) = 2/3.

De mme, le code de Hadamard possde un dcodeur local conseil. Avant de le dcrire,


nous avons besoin dun lemme technique.
12-AP

Lemme

Pour deux entiers m et n , soit s 1 , . . . , s m {0, 1}n des mots alatoires uniformes et indpendants. Pour j [0, 2 m 1] et i [1, m] on note ji le i -me bit de j dans son criture
binaire et on dfinit

rj =

si.

{i[1,m] | ji =1}

Alors chaque r j est uniforme sur {0, 1}n et les r j sont deux deux indpendants.

12.4. Difficult dans le pire cas implique difficult en moyenne

343

Dmonstration On montre par rcurrence sur k quune somme finie de k vecteurs


indpendants uniformes est encore uniforme. Pour k = 1 cest vident.
Pour k > 1 : soit x 1 , . . . , x k des vecteurs indpendants uniformes. Par hypothse de

rcurrence, k1
x i est uniforme. On peut alors crire pour tout a {0, 1}n :
i=1
k
k1

Pr(
x i = a b | x k = b ) Pr(x k = b )
Pr(
x i = a) =
i=1

b {0,1}n

i=1

Pr(

k1

x i = a b )2n = 2n

i=1

par uniformit de k1
x i et par indpendance des x i , ce qui montre lhypothse au
i =1
rang k .
On montre maintenant que les r j sont deux deux indpendants. Soit j = k deux
entiers de [0, 2 m 1] et a, b {0, 1}n . On note E = {i [1, m] | ji = ki }, cest--dire

lensemble des indices des vecteurs s i communs r j et r k , et on note S = iE s i .


Ainsi, r j S et r k S sont indpendants (et uniformes). On a donc :
Pr(r j = a r k = b ) = Pr(r j S = a S r k S = b S) =
Pr(r j S = a S) Pr(r k S = b S) = Pr(r j = a) Pr(r k = b ),

ce qui montre lindpendance de r j et r k .


Le dcodage suivant du code de Hadamard est d Goldreich et Levin [GL89].
12-AQ

Proposition (dcodeur local conseil du code de Hadamard)


n

Pour tout > 0, le code de Hadamard H : {0, 1}n {0, 1}2 a un dcodeur local conseil
corrigeant (1/2 ) erreurs en temps (n/)O(1) avec conseil de taille log(2n 2 /2 ). La
probabilit derreur de ce dcodeur est majore par 1/(8n).
Dmonstration On note le ou exclusif bit bit sur {0, 1}n .
On dispose dun accs direct un mot y qui concide avec H(x) sur une fraction
(1/2 + ) des bits : cest--dire quon peut demander une valeur de r x pour tout
r {0, 1}n et que la rponse nest correcte que pour une fraction (1/2 + ) des mots
r . Lobjectif est de concevoir un algorithme probabiliste qui fournit avec grande probabilit en temps (n/)O(1) une liste de taille = (n/)O(1) de mots x 1 , . . . , x {0, 1}n
parmi lesquels se trouve x : en effet, il suffira alors de donner comme conseil le numro
i tel que x i = x , conseil dont la taille binaire est O(log(n/)).
Si notre mot y tait exactement H(x), il suffirait bien sr de demander pour tout
i [1, n] la valeur de xe i (o e i = 0 . . . 010 . . . 0 possde un unique 1 en position i ) pour
obtenir tous les bits de x . Malheureusement, cause des erreurs cette information est
dilue dans y : lide est de demander x (r e i ) pour un mot r {0, 1}n alatoire,
Ide

344

Chapitre 12. Drandomisation et bornes infrieures

car (r e i ) est alors uniformment distribu. Puisque x (r e i ) = (x r ) (x e i ),


en connaissant x r on en dduit x e i : il faut donc construire des mots alatoires
r pour lesquels on connat x r . Mais pour rduire la taille du conseil, on va utiliser
seulement un nombre logarithmique de vrais mots alatoires s 1 , . . . , s m {0, 1}n et
m
dfinir partir deux 2 m mots r 1 , . . . , r 2 comme au lemme 12-AP. Il suffira alors de
donner la liste de tous les mots x correspondant toutes les 2 m valeurs possibles de
x s i : cette liste contiendra x avec grande probabilit. Il nous reste formaliser cette
ide.
Formalisation Soit m = log(2n 2 /2 ) et s 1 , . . . , s m {0, 1}n des mots alatoires. Pour
tout j [0, 2 m 1] on dfinit r j comme au lemme 12-AP : chaque r j est donc
uniformment
distribu sur {0, 1}n et ils sont deux deux indpendants. De plus,

j
x r = {i | ji =1} x s i (mod 2) donc on peut calculer x r j ds que lon connat toutes
les valeurs x s i . On en dduit lalgorithme probabiliste A suivant avec accs direct au
mot y qui retourne une liste de candidats pour x :
choisir s 1 , . . . , s m {0, 1}n alatoirement ;
pour tout v {0, 1} m (les 2 m valeurs possibles pour x s i ) faire :
pour tout j [0, 2 m 1], calculer w j =
(la valeur correspondante de x r j ),

{i | ji =1} vi

(mod 2)

pour tous i [1, n] et j [0, 2 m 1], consulter y pour


connatre la valeur suppose uij de x (r j e i ),

pour tout i [1, n], on pose xiv = la valeur majoritaire (sur


tous les j ) de w j + uij (mod 2) ;

renvoyer la liste des mots (x v )v{0,1}m .


Cet algorithme A renvoie une liste de mots de {0, 1}n de taille 2 m , donc le conseil doit
tre de taille m . Nous allons montrer quavec grande probabilit, cette liste contient
le mot x .
Dans cette analyse on sintresse uniquement litration lors de laquelle la valeur
de v vrifie vi = x s i pour tout i [1, n], de sorte que w j = x r j . Puisque r j est
uniforme par le lemme 12-AP, (r j e i ) est un mot uniforme de {0, 1}n , donc uij est
gal x (r j e i ) avec probabilit (1/2 + ). Ainsi, avec probabilit (1/2 + ), on a
j

w j + ui = (x r j ) + (x (r j e i )) = x (r j (r j e i )) = x e i = xi .

Nous montrons maintenant quen prenant la rponse majoritaire, alors xiv = xi avec
grande probabilit : soit Xi , j {0, 1} la variable alatoire qui vaut 1 ssi w j uij = xi
(en particulier, E(Xi, j ) 1/2 + et Var(Xi , j ) 1/4, cf. lemme A-K). Pour i fix, on

pose Si = j Xi , j le nombre de fois quon obtient la bonne valeur pour xi : on a

12.4. Difficult dans le pire cas implique difficult en moyenne

345

E(S) (1/2 + )2 m et, les Xi , j tant deux deux indpendantes par le lemme 12
AP, Var(Si ) = j Var(Xi, j ) 2 m /4. Par lingalit de Tchebychev (thorme A-L), on

obtient donc :
Pr(Si < 2 m /2) Pr(|Si E(Si )| > 2 m )

2 m /4
= 2m2 /2 .
(2 m )2

La probabilit que tous les bits xi soient corrects est donc minore par 1 n2m2 /2 ,
donc par 1 1/(8n) par dfinition de m . Ainsi, x est dans la liste avec probabilit
> 1 1/(8n).
Il ne reste pour conclure qu remarquer que lalgorithme fonctionne en temps poly
nomial en n/.

Nous montrons finalement que la concatnation de deux codes ayant chacun un dcodeur
local conseil, possde elle aussi un dcodeur local conseil.
12-AR

Lemme

Supposons que E : {0, 1}n m et F : {0, 1}q possdent des dcodeurs locaux
conseil corrigeant respectivement (1 E ) et (1/2 F ) erreurs en temps tE et tF avec
conseils de taille sE et sF , o F < 2E 2 sF . Supposons en outre que la probabilit derreur
du dcodage de E soit 1/6 et celle de F soit 1/(8 log ||).
Alors F E : {0, 1}n {0, 1} mq possde un dcodeur local conseil corrigeant (1/2 )
erreurs en temps tE tF avec conseil de taille sE + sF , o = 4E 2 sF .
Dmonstration Puisque le dcodeur de F a une probabilit derreur 1/(8 log ||), on
dcode correctement tous les (log ||) bits dun mot cod yi avec probabilit
7/8 en utilisant les mmes choix de bits alatoires et le mme conseil : on peut ainsi
supposer que lalgorithme de dcodage de F dcode dun coup un mot complet yi
avec probabilit 7/8 et conseil de taille sF .
On pourra se reporter la figure 12.2 (dont on conserve ici les notations) pour mieux
suivre la dmonstration. Pour dcoder F E sur lentre z {0, 1} mq , on va utiliser un
couple de conseils (aE , aF ), o aE est un conseil pour E et aF pour F . Le mot z est
constitu de m blocs de q bits, le bloc i tant une image avec erreurs par F dun mot
yi . Pour dcoder chaque bit de x , on excute le dcodeur pour E avec conseil aE ,
construisant son entre la vole : chaque fois quil demande une valeur yi ,
on dcode le i -me bloc de z en utilisant F avec conseil aF . La difficult provient du
fait que les conseils pour E et F dpendent du choix des bits alatoires.
Pour analyser cet algorithme, on fixe lensemble des bits alatoires rF utiliss lors
des diffrents dcodages de F . Montrons quil existe un choix de (aE , aF ) tel que la
procdure dcrite ci-dessus peut corriger (1/2 ) erreurs. En effet, supposons que
(z, F E(x)) < 1/2 : ils concident sur au moins (1/2+)q m bits. Donc le nombre
b de blocs de q bits pour lesquels ils concident sur au moins (1/2 + F )q bits satisfait
b q + (m b )(1/2 + F )q (1/2 + )q m,

346

Chapitre 12. Drandomisation et bornes infrieures

cest--dire
b ( F )/(1/2 F )m > 2( F )m > m.

Soit N = 2 sF le nombre total de conseils aF possibles : alors b > 4E N m par dfinition


de , donc il existe un mme conseil aF convenant pour plus de 4E m blocs. Pour
chaque choix alatoires rF fix ci-dessus, on obtient donc un conseil aF (rF ) convenant
pour plus de 4E m blocs.
Ainsi, en prenant rF au hasard, si Y dsigne le nombre de ces 4E m blocs qui sont mal
dcods cause de la probabilit derreur 1/8 de lalgorithme pour F , lesprance de Y
est majore par 4E m/8 = E m/2. Donc par lingalit de Markov (proposition A-I),
Pr(Y 3E m) 1/6 : cest--dire quavec probabilit 5/6, le mot y m dcod de
z par F avec conseil aF (rF ) concide avec E(x) m sur plus de E m positions.
Maintenant, puisque lerreur sur le mot E(x) est moins de (1 E ), le dcodeur pour
E avec le conseil aE (correspondant aux bits alatoires rE du dcodeur pour E ) permet
alors de dcoder chaque bit de x avec probabilit 5/6 : au total, la probabilit derreur

finale est majore par 1/3.

12-AS

Corollaire

Il existe une constante c > 0 telle que, pour = 30(d /||)1/6 log2 ||, H RM a un dcodeur
local conseil corrigeant 1/2 erreurs en temps (k||)c avec conseil de taille c k log ||.
Dmonstration Le dcodage local du code F = H : {0, 1}log || {0, 1}|| est assur par
la proposition 12-AQ avec probabilit derreur majore par 1/(8 log ||), corrigeant
(1/2 F ) erreurs o F = 4(d /||)1/6 , en temps tF = (||/d )O(1) avec conseil de taille
sF = log((2 log2 ||)/2F ).

La proposition 12-AO assure lepdcodage local de E = RM : (1+k/d ) || corrigeant (1E ) erreurs o E = 30 d /||, en temps tE = (k||)O(1) avec conseil de taille
(k + 1) log(||). En rptant un nombre constant de fois cette procdure, on atteint
une probabilit derreur 1/6 avec conseils de taille sE = O((k + 1) log ||).
On a donc
k

2E 2 sF > F

et

4E 2SF .

Le lemme 12-AR implique que F E possde un dcodeur local corrigeant (1/2 )

erreurs, fonctionnant en temps (k||)O(1) avec conseil de taille O(k log ||).

12.4. Difficult dans le pire cas implique difficult en moyenne

12.4.2

347

Application

Nous pouvons maintenant appliquer la thorie prcdente des codes correcteurs notre
propos. Le rsultat suivant dImpagliazzo et Wigderson [IW97] montre quon peut transformer une fonction difficile dans le pire cas en une fonction difficile en moyenne. Avec les
lemmes qui prcdent, nous avons suivi la preuve de Sudan, Trevisan et Vadhan [STV99].

12-AT

Thorme (Impagliazzo et Wigderson, 1997)

Il existe une constante a > 0 telle que, pour toute fonction croissante s (n) n a constructible en temps, sil existe une fonction f DTIME(2O(n) ) vrifiant Dpire ( f ) s (n), alors il
existe une fonction g DTIME(2O(n) ) telle que Dmoy ( g ) s(n/5)4/(15a) .
Plus prcisment, partir de toute fonction f : {0, 1} m {0, 1} dont la difficult dans
le pire cas vrifie Dpire ( f ) s (m), on construit une fonction g : {0, 1}(m) {0, 1} o
m < (m) 5m et telle que Dmoy ( g ) > s (m)4/(15a) . Le calcul de g se fait en temps 2O(m)
en effectuant des appels la fonction f .
Dmonstration
Paramtres Soit a = 16(c + 1), o c est la constante du corollaire 12-AS (dcodeur
local conseil de H RM) : donc en particulier a 16. La restriction de f {0, 1}n
est considre comme un mot sur {0, 1} de taille 2n . Soit un entier m et = F2m
le corps 2 m lments tels que 2 m = s(n)4/a . Puisque s (n) n2n (toute fonction f
n
n 1/4
possde des circuits de taille
p n2 calculant sa table de vrit), on a donc || (n2 )
k
n
et log || < n/3. Soit d = || et k tels que (1 + d /k) log || = 2 . En particulier, on
remarque que k [5, n] donc
p k
|| log || 2n ,

En outre,
et ainsi

donc

d = s(n)2/a n 2 ,

k
log || n log(n/3)
2

donc

et

et

(1 + k) log || > n.

d /k ||1/4

k log(||1/4 ) k log(d /k) k log(1 + d /k) + log log || = n,

donc k log || 4n , cest--dire ||k 24n . On a donc au final :


n < (1 + k) log || 5n.
(k+1)

Analyse Soit g = H RM( f ) {0, 1}|| , cest--dire g : {0, 1}(k+1) log || {0, 1}. La
fonction g est calculable en temps 2O(n) car H RM est calculable en temps polynomial
en ||k (cf. lemme 12-AG) : il suffit de calculer f (x) pour tout x {0, 1}n afin dobtenir
la chane caractristique f de f , puis de calculer H RM( f ) en temps polynomial en
||k 24n . Au final, g DTIME(2O(n) ).

348

Chapitre 12. Drandomisation et bornes infrieures

Soit h = Dmoy (g ) et supposons h < ||1/15 = s (n)4/(15a) : g peut donc tre calcule par
un circuit C de taille h +1 sur une fraction 1/2+1/h de ses entres. Soit x {0, 1}n :
nous voulons calculer f (x). Il suffit dexcuter le dcodeur local conseil pour H RM
du corollaire 12-AS : en effet,
30(d /||)1/6 log2 || < 1/h

puisque

(d /||)1/6 = ||1/12 .

En rptant O(n) fois ce dcodeur, la probabilit derreur devient < 2n donc il existe
un choix de bits alatoires fonctionnant pour tout x {0, 1}n . Pour ce choix, le conseil
du dcodeur est de taille n (c k log ||) et le temps pour dcoder est n(k||)c . Un tel
dcodeur peut tre transform en un circuit D pour f de taille O(n 2 (k||)2c ) avec des
appels la fonction g (cf. proposition 5-Y) : au final, si les appels g sont remplacs
par le circuit C , on obtient un circuit pour f de taille O(n 2 (k||)2c (h + 1)). Cest une
contradiction puisque n 2 (k||)2c (h + 1) = o(s (n)), car
n 2 (k||)2c h n 2c+2 s(n)8c/a+4/(15a) n a/8 s (n)9/15 = o(s (n)).

Avec le corollaire 12-S, on obtient donc directement le rsultat suivant.


12-AU

Corollaire

Sil existe une fonction f DTIME(2O(n) ) telle que Dpire ( f ) 2n pour un certain
> 0, alors BPP = P.

Sil existe une fonction f DTIME(2O(n) ) telle que Dpire ( f ) 2n pour un certain
k
> 0, alors BPP k DTIME(2(log n) ).
Si pour tout c > 0 il existe une fonction fc DTIME(2O(n) ) vrifiant Dpire ( fc ) n c ,

alors BPP >0 DTIME(2n ).

Nous pouvons reformuler cela en termes de classes de complexit. On rappelle quon


dsigne par SIZE(s(n)) lensemble des langages calculs par une famille de circuits boolens
O(1)
de taille O(s(n)), que EXP = DTIME(2n ) et que E = DTIME(2O(n) ).
12-AV

Corollaire

Si E SIZE(2n ) pour un certain > 0, alors BPP = P.

Si EXP SIZE(2n ) pour un certain > 0, alors BPP k DTIME(2(log n) ).


k

Si EXP P/poly alors BPP >0 DTIME(2n ).

12.4. Difficult dans le pire cas implique difficult en moyenne

349

Dmonstration
Si E SIZE(2n ) alors il existe une fonction f DTIME(2O(n) )
telle que Dpire ( f ) 2n pour une constante > 0, donc Dpire ( f ) 2(/2)n pour
n assez grand, ce qui permet dappliquer le corollaire 12-AU.

Si EXP SIZE(2n ) alors il existe f DTIME(2n ) telle que Dpire ( f ) 2n pour


k
une constante > 0 ; alors la fonction g dfinie par g (x0n ) = f (x) est dans
/k
/(2k)
DTIME(2O(n) ) et satisfait Dpire (g ) 2n 2n
pour n assez grand, ce qui
permet dappliquer le corollaire 12-AU.
k

Si EXP P/poly alors il existe f DTIME(2n ) telle que Dpire ( f ) n c pour tout
k
c ; alors la fonction g dfinie par g (x0n ) = f (x) est dans DTIME(2O(n) ) et satisfait

Dpire (g ) n c/k pour tout c , ce qui permet dappliquer le corollaire 12-AU.

Plus gnralement, la combinaison des thormes 12-F, 12-L et 12-AT donne le corollaire
suivant.
12-AW

Corollaire

Il existe une constante a > 0 telle que si lon a accs une fonction f : {0, 1}n {0, 1}
vrifiant Dpire ( f ) n k pour k a , alors on peut calculer en temps 2O((n)) une fonction
k/(30a)
h : {0, 1}(n) {0, 1}(n)
qui est (n)k/(30a) -imprdictible, o (n) = (n 2 / log n).
En particulier, sil existe une fonction f DTIME(2O(n) ) telle que Dpire ( f ) n k pour k a ,
alors pour toute fonction u : N N calculable en temps O(2 u(n) ), on a
BPTIME(o(u(n)k/(30a) )) DTIME(2O(u(n)) ).

Dmonstration Soit a la constante du thorme 12-AT. Le thorme 12-AT permet


de calculer en temps 2O(n) partir de f une fonction g : {0, 1} m {0, 1} telle que
Dmoy (g ) s (m) = (m/5)4k/(15a) , o n < m 5n .
Pour d (m) = (k/15a) log m , qui vrifie donc pour m suffisamment grand :
s

md (m)/12 > 22d (m) ,

le thorme 12-L permet de calculer en temps 2O( (m)) partir de g une fonction
k/(30a)
h : {0, 1} (m) {0, 1} (m)
qui est (m)k/(30a) -imprdictible, o
(m)d ( (m)) = (m 2 ), cest--dire (m) = (m 2 / log m).

On pose (n) = (m), vrifiant donc (n) = (n 2 / log n) : on dispose ainsi dune
k/(30a)
fonction h : {0, 1}(n) {0, 1}(n)
qui est (n)k/(30a) -imprdictible. De plus, h apO(n)
partient DTIME(2 ) si f DTIME(2O(n) ).
Le thorme 12-F, pour m(n) = n k/(30a) et t (n) = 2O(n) , montre que
BPTIME(o(u(n)k/(30a) )) DTIME(2O(u(n)) ).

350

12.5

Chapitre 12. Drandomisation et bornes infrieures

Drandomisation implique borne infrieure

Nous nous intressons maintenant la rciproque de ce qui prcde. Nous avons montr que les bornes infrieures non uniformes impliquaient une drandomisation, nous
montrons dornavant quune drandomisation implique une certaine borne infrieure
non uniforme. Comme nous verrons, cette borne infrieure est hybride en ceci quelle
porte soit sur des circuits boolens, soit sur des circuits arithmtiques. Il est ouvert de
montrer, sous hypothse de drandomisation, une borne infrieure non dj connue et
qui soit purement boolenne.
Nous avons besoin dun premier ingrdient ressemblant aux rsultats montrs au chapitre
prcdent, dont la technique de preuve est intressante en soi. Il est d Impagliazzo,
Kabanets et Wigderson [IKW01].
12-AX

Dfinition

Soit C et C deux classes de complexit. On dit que C i.s. C (pour inclus infiniment
souvent ) si pour tout langage L C , il existe un langage L C tel que pour une
infinit dentiers n , L=n = L=n .

12-AY

Thorme (Impagliazzo, Kabanets et Wigderson, 2001)

NEXP P/poly = NEXP = EXP.

Ide de la dmonstration Si NEXP = EXP alors les certificats non dterministes pour
un langage L NEXP \ EXP ne sont pas calculables en temps dterministe exponentiel,
donc ne possdent pas de circuits de taille n k (pour k fix). On peut ainsi se servir dun
tel certificat pour drandomiser un algorithme probabiliste grce au corollaire 12-AW.
Sous lhypothse NEXP P/poly, le corollaire 11-N donne EXP = MA. Or tout protocole MA peut maintenant tre drandomis comme suit : deviner le message envoy
par Merlin, deviner un certificat y pour L nayant pas de circuits de taille n k , se servir
de y pour drandomiser lalgorithme dArthur. On a donc un algorithme non dterc
ministe fonctionnant en temps 2n pour c fix pour tout langage de MA = EXP. Or
tout algorithme de ce type a des circuits de taille n d pour d fix si NEXP P/poly,
donc EXP SIZE(n d ), une contradiction avec le proposition 11-A.
Dmonstration Nous allons aboutir une contradiction en supposant la fois que
NEXP = EXP et que NEXP P/poly. La preuve va se drouler en deux tapes. Dans
un premier temps, on montre en utilisant les thormes des sections prcdentes que
si NEXP = EXP alors il existe une constante telle que
pour tout k 1, BPTIME(o(n k )) i.s. NTIME(2O(n
/k

/k

)/n 1/k

(temps non dterministe 2O(n ) avec conseil de taille n 1/k ). Puis en passant par les pro
tocoles MA on montre que EXP i.s. NTIME(2n )/n , ce qui implique, sous lhypothse

12.5. Drandomisation implique borne infrieure

351

NEXP P/poly, que EXP i.s. SIZE(n ) pour une constante fixe, une contradiction
avec la proposition 11-A.

Premire tape Nous commenons donc par montrer, sous lhypothse NEXP = EXP,
que tout langage B BPTIME(o(n k )) est reconnu pour une infinit de longueurs n
/k
par un algorithme NTIME(2O(n ) )/n 1/k (pour une certaine constante indpendante
de k ). Soit L NEXP \ EXP : il existe un langage A P et une constante tels que
|x| /2

x L y {0, 1}2

(x, y) A.

On note a la constante du corollaire 12-AW et n = |x|. Supposons dabord, par labsurde, que tous les certificats de L, sauf ventuellement pour un nombre fini dentres,
puissent tre calculs par des circuits de taille n 30ak , cest--dire quon dispose, pour
/2
presque tout x de taille n , dun circuit de taille n 30ak qui sur lentre i [0, 2n 1]
en binaire renvoie le i -me bit dun mot y cens certifier que x L. Alors on peut
dcider L EXP de la manire suivante : sur lentre x de taille n , on numre tous
/2
les circuits C de taille n 30ak , on les simule sur tout i [0, 2n 1] pour connatre
le mot y quils calculent, et on vrifie si (x, y) A. Cest une contradiction avec le
fait que L EXP, ce qui signifie que pour une infinit de mots x les certificats de L
nadmettent pas de petits circuits. Donc il existe une suite infinie de mots (x jk ) j N tels
que :
pour tout j , x jk L ;
|x k | /2
j

aucun y {0, 1}2


|x jk |30ak .

tel que (x jk , y) A nest calcul par un circuit C de taille


/2

Si on voit les mots y comme des fonctions y : {0, 1} {0, 1} pour = |x jk |, le second
point peut tre reformul en Dpire (y) > 30ak .
Soit B BPP reconnu par une machine M (x, r ) fonctionnant en temps o(n k ). Pour
mieux comprendre ce qui suit, il faut garder en tte que nous comptons appliquer
2
le thorme 12-F de Yao avec les paramtres u(n) = n 1/k et m(n) = n k (de sorte
2
que m(u(n)) = n k ). On fixe j arbitraire, on note x0 = x jk , on pose = |x0 | et on va
sintresser aux entres x de taille n = k . Les considrations qui prcdent donnent
pour B lalgorithme non dterministe suivant sur une entre x {0, 1}n , avec conseil
x0 :
/2

deviner y {0, 1}2

si (x0 , y) A, rejeter ;
2. Les mots x en nombre fini dont les certificats nont pas de petits circuits sont cods en dur dans lalgorithme et traits part.

352

Chapitre 12. Drandomisation et bornes infrieures

sinon Dpire (y) > 30ak : donc grce au corollaire 12-AW, pour
() = ( / log ), on peut calculer en temps 2O(()) park2
tir de y une fonction h : {0, 1}() {0, 1}() qui est
2
()k -imprdictible, cest--dire au moins n k -imprdictible ;
en numrant tous les mots z {0, 1}() , calculer
q = Pr(M (x, h(z)) = 1)
z

et accepter ssi q 1/2.


Le thorme 12-F de Yao montre que cet algorithme non dterministe reconnat le

langage B sur les entres de taille n = k , et il fonctionne en temps 2O( ) avec conseil
/k
de taille . En dautres termes, BPTIME(o(n k )) i.s. NTIME(2O(n ) )/n 1/k . Cela conclut
la premire tape.
Seconde tape Nous montrons maintenant que sous lhypothse NEXP P/poly, on

a EXP i.s. NTIME(2n )/n . On a bien sr EXP P/poly donc par le corollaire 11-N,

EXP = MA. Il suffit donc de montrer que MA i.s. NTIME(2n )/n . Soit L MA reconnu
par un protocole o Merlin envoie une preuve y de taille n k et Arthur la vrifie en
temps probabiliste polynomial : sur lentre (x, y), si x L ou si x L et y est une
preuve valide, alors Arthur a un comportement de type BPP. Sans perte de gnralit,

on peut supposer quil sagit dun comportement de type BPTIME(o(n k )) pour k > k .
Par ce qui prcde,

BPTIME(o(n k )) i.s. NTIME(2O(n

/k

)/n 1/k .

Par un algorithme non dterministe avec conseil, sur une infinit de tailles dentres on
/k

peut donc deviner la preuve y de Merlin et simuler Arthur dans NTIME(2O(n ) )/n 1/k
k

sur son entre (x, y) de taille n + n . Puisque k > k , lalgorithme fonctionne en temps

O(2|x| ) avec conseil de taille |x|. Donc MA i.s. NTIME(2n )/n , ce qui conclut la
seconde partie.

Conclusion Or NEXP P/poly implique que NTIME(2n )/n SIZE(n ) pour une

constante fixe : en effet, tout langage L NTIME(2n ) se rduit au langage


A = {(N , x, t ) | N (x) accepte en temps t }

(o N est une machine non dterministe et t est cod en binaire) par une rduction

fL : x 7 (NL , x, tL ) o NL est une machine pour L et tL = O(2|x| ) son temps dexcution. La rduction est donc de taille O(|x| ). Puisque NEXP P/poly, il existe
une certaine constante telle que A SIZE(n ), et on a donc L SIZE(n ) o
= ; ajouter le conseil de taille n se fait en le codant en dur dans les circuits,

donc NTIME(2n )/n SIZE(n ).


On en dduit que MA = EXP i.s. SIZE(n ), ce qui contredit la proposition 11-A.

12.5. Drandomisation implique borne infrieure

353

Nous avons maintenant besoin dun lemme sur des circuits arithmtiques pour le permanent. Pour un rappel sur les circuits arithmtiques, voir la section 5.6, sur le permanent
voir la section 9.5, et sur le test didentit de polynmes TIP voir la section 6.3.1.
12-AZ

Lemme

Soit A le problme consistant dcider, tant donn un circuit arithmtique C n 2


entres, si C calcule pern .
Si TIP P alors A P.
Dmonstration On utilise le dveloppement selon les lignes et colonnes du permanent :
en effet, si M = (mi , j )i, j [1,n] est une matrice de taille n n et que M i, j dsigne la sousmatrice de taille (n 1) (n 1) o lon a enlev la i -me ligne et la j -me colonne,
alors
n
pern (M ) =

mi,n pern1 (M i ,n ).

i=1

Pour vrifier que C calcule le permanent, il suffit donc de tester si cette galit est
vraie tous les rangs de n 1, puis de vrifier que pour les matrices de taille 1 on a
C (M ) = m1,1 .
Pour m [1, n], on notera C m le circuit m 2 entres X = (xi , j )i , j m qui est gal C
calcul sur la matrice

X
0

0
I

o I dsigne la matrice identit de taille n m . Si C calcule pern , alors C m calcule


per m . Il sagit alors de vrifier pour tout m [1, n], grce au problme TIP, que
C m (X ) =

xi ,m C m1 (Xi,m )

i=1

et que C 1 (x) = x , ce qui se fait en temps polynomial si TIP P.

Nous sommes maintenant prts pour montrer la borne infrieure principale de cette section, due Kabanets et Impagliazzo [KI03].
12-BA

Thorme (Kabanets et Impagliazzo, 2003)

Si TIP P alors NEXP P/poly ou le permanent na pas de circuits arithmtiques de taille


polynomiale.
Dmonstration Par labsurde, supposons quon ait la fois TIP P, NEXP P/poly et le
permanent a des circuits arithmtiques de taille polynomiale. Alors le thorme 12-AY
et le corollaire 11-N impliquent que NEXP = EXP = MA. Or MA PH (corollaire 10AB), PH PP (thorme 9-AI de Toda) et le problme PERMANENT{0,1} est P-complet
(thorme 9-AP), donc
NEXP PPERMANENT{0,1} .

354

Chapitre 12. Drandomisation et bornes infrieures

Or nous allons montrer, sous nos hypothses, que tout langage L PPERMANENT{0,1} appartient NP, ce qui aboutit une contradiction puisque NEXP NP (thorme 2-AI).
Sur lentre x , lalgorithme polynomial avec oracle PERMANENT{0,1} pour L fait des appels son oracle de taille au plus p(|x|) pour un certain polynme p . On peut dcider
si x L ainsi de manire non dterministe :
deviner un circuit arithmtique C de taille polynomiale pour
per p(|x|) ;
tester comme au lemme 12-AZ que C calcule le permanent ;
simuler lalgorithme polynomial pour L en remplaant les appels
loracle par une valuation du circuit C .
Puisque par hypothse le permanent a des circuits arithmtiques de taille polynomiale,
et que tester si C calcule le permanent se fait en temps polynomial par le lemme 12-AZ
car TIP P, cet algorithme non dterministe dcide le langage L et donc L NP.

Probabilits et
arithmtique
Nous donnons ici un simple aide-mmoire des notions minimales utiles dans ce livre
en probabilits, ainsi que deux rsultats darithmtique dont nous nous servons. Pour
approfondir le domaine des probabilits, nous conseillons par exemple le livre de Jacod
et Protter [JP02], en particulier les chapitres traitant des espaces finis ou dnombrables.

A.1

Probabilits

On sintressera ici uniquement au cas trs simplifi des espaces probabilistes finis. Un
espace probabiliste fini est un ensemble
= {a1 , . . . , an } appel univers auquel on associe
des rels p1 , . . . , pn [0, 1] tels que i pi = 1. Le rel pi est la probabilitde ai , que lon
crira Pr(ai ). Si S , alors la probabilit de lensemble S est Pr(S) = ai S pi . Un tel
ensemble S est appel vnement.
Nous commenons par un lemme vident qui rcapitule quelques proprits de base.
A-A

Lemme

Soit A et B des vnements sur un univers .


Pr(c A) = 1 Pr(A).
Si A et B sont disjoints alors Pr(A B) = Pr(A) + Pr(B).
Si A est un vnement tel que Pr(A) > 0, alors A = ;.
Nous continuons par une ingalit trs simple aussi connue sous son nom anglais de union
bound.

356
A-B

Annexe A. Probabilits et arithmtique


Proposition (ingalit de Boole)

Si A1 , . . . , An sont des vnements sur un univers , alors


Pr(

Ai )

i =1

Pr(Ai ).

i=1

Dmonstration Si
lon appelle
p1 , . . . , pn les probabilits des lments a1 , . . . , an de lunivers , alors Pr( ni=1 Ai ) = a j i Ai p j . Chaque lment a j de la somme apparat dans
au moins un vnement Ai , donc cette somme est majore par
n
n

(
pj ) =
Pr(Ai ).
i=1 a j Ai

i=1

On dit que des vnements S1 , . . . , Sn sont indpendants si


T {1, . . . , n}, Pr(i T Si ) =

Pr(Si ).

iT

Le rsultat suivant nous servira pour valuer le nombre de rptitions ncessaires afin
dobtenir un succs dans une exprience.
A-C

Lemme

Soit A1 , . . . , An des vnements indpendants se produisant chacun avec probabilit p > 0.


Alors
Pr(ni=1 Ai ) = 1 (1 p)n .

En particulier, si n > 2/ p alors Pr(ni=1 Ai ) 2/3.


Dmonstration Pr(Ai ) = 1 Pr((c Ai )) = 1 (1 p)n par indpendance.
La fonction (1 1/x) x est croissante sur [1, +[ et tend vers 1/e quand x tend vers
linfini. Donc pour tout x 1,
(1 1/x)2x < 1/e 2 :

en dautres termes, si n > 2/ p alors (1 p)n < 1/e 2 , donc


Pr(Ai ) > 1 1/e 2 > 2/3.

Si A et B sont deux vnements sur un univers tels que Pr(B) = 0, on dfinit la probabilit
conditionnelle de A sachant B par
Pr(A|B) =

Pr(A B)
.
Pr(B)

A.1. Probabilits

357

On a donc immdiatement le rsultat suivant.


A-D

Lemme

Si A et B sont deux vnements tels que Pr(B) = 0, alors Pr(A B) = Pr(A|B) Pr(B).
Plus gnralement, le conditionnement par cas dsigne la formule suivante.
A-E

Lemme

Sur un univers , soit A un vnement et B1 , . . . , Bn une partition de . Alors


Pr(A) =

i =1

Pr(A|Bi ) Pr(Bi ).

Dmonstration Puisque B1 , . . . , Bn partitionne , les ensembles A Bi sont disjoints et


A = i (A Bi ). Donc
Pr(A) =

i =1

Pr(A Bi ) =

i =1

Pr(A|Bi ) Pr(Bi ).

Une variable alatoire est une fonction X de dans R, qui associe donc un rel xi chaque
ai . Si R R, la probabilit que X prenne une valeur dans R est Pr(X R) = Pr(X 1 (R)).
On peut donc voir une variable alatoire comme une variable prenant des valeurs relles
avec certaines probabilits. Un type de variables alatoires nous sera particulirement utile.

A-F

Dfinition

On dit quune variable alatoire X suit une loi de Bernoulli de paramtre p si X est
valeurs dans {0, 1} et vrifie :

1
X=
0

avec probabilit p
avec probabilit 1 p.

Lesprance de X est sa valeur moyenne, cest--dire le rel E(X ) = ni=1 xi Pr(X = xi ).


Il est bien connu que lesprance est linaire comme le montre le lemme suivant (en

particulier, E( ki=1 Xi ) = ki=1 E(Xi )).

358

Annexe A. Probabilits et arithmtique

A-G

Lemme (linarit de lesprance)

Si est une constante et X et Y des variables alatoires, alors E(X +Y ) = E(X )+E(Y ).
Dmonstration Si les valeurs prises par X sont x1 , . . . , xn et celles prises par Y sont
y1 , . . . , y m , alors
E(X + Y ) =

i,j

xi

(xi + y j ) Pr(X = xi Y = y j )

Pr(X = xi Y = y j ) +

yj

xi Pr(X = xi ) +

Pr(X = xi Y = y j )

y j Pr(Y = y j ) = E(X ) + E(Y ).

Des variables alatoires X1 , . . . , Xn sont dites indpendantes si pour tous sous-ensembles


R1 , . . . , Rn de R, les vnements Xi1 (Ri ) sont indpendants.
A-H

Lemme

Si X1 , . . . , Xn sont des variables alatoires indpendantes, alors E(

i =1 Xi ) =

i=1 E(Xi ).

Dmonstration Nous donnons la preuve pour deux variables alatoires indpendantes


X et Y , le cas gnral tant similaire. On suppose que X prend les valeurs x1 , . . . , xn
et Y les valeurs y1 , . . . , y m . On a alors
E(X Y ) =

Pr(X = xi Y = y j )xi y j .

i, j

Par indpendance de X et Y ,
Pr(X = xi Y = y j ) = Pr(X = xi ) Pr(Y = y j ),

donc
E(X Y ) =

Pr(X = xi ) Pr(Y = y j )xi y j =

i,j

Pr(X = xi )xi )(

Pr(Y = y j )y j ) = E(X )E(Y ).

A.1. Probabilits
A-I

359

Proposition (ingalit de Markov)

Si X est une variable alatoire valeurs positives, alors pour tout t > 0,
Pr(X t ) E(X )/t .

Dmonstration E(X ) =

pi xi =

xi <t

pi xi +

xi t

pi xi t

xi t

pi = t Pr(X t ).

Lorsquon possde plus dinformation sur la distribution de X , on peut gnralement


montrer une ingalit meilleure que celle de Markov. Par exemple, celle de BienaymTchebychev utilise la variance que nous dfinissons maintenant. La variance mesure la
dispersion de X autour de sa moyenne.
A-J

Dfinition (variance)

Soit X une variable alatoire. La variance de X est le rel


Var(X ) = E(X 2 ) E(X )2 .

A-K

Lemme

Si a R est une constante et X une variable alatoire, alors Var(aX ) = a 2Var(X ).


La variance dune variable alatoire X qui suit une loi de Bernoulli de paramtre p
est p(1 p), donc en particulier Var(X ) 1/4.
Si X1 , . . . , Xn sont des variables alatoires deux deux indpendantes, alors
n
n

Var(
Xi ) =
Var(Xi ).
i =1

Dmonstration

i =1

En utilisant la linarit de lesprance, on a :

Var(aX ) = E(a 2 X 2 ) E(aX )2 = a 2 E(X 2 ) a 2 E(X )2 = a 2Var(X ).

X 2 vaut 1 avec probabilit p et 0 sinon, donc E(X 2 ) = p . Puisque E(X ) = p , on


a donc
Var(X ) = p p 2 = p(1 p).

Cette quantit est maximale quand p = 1/2 et vaut alors 1/4.

360

Annexe A. Probabilits et arithmtique


On a :
Var(

Xi ) = E((

Xi )2 ) E(
X i )2 =

E(Xi2 ) + 2

E(Xi X j )

i< j

E(Xi )2 2

i<j

E(Xi )E(X j ).

Or Xi et X j sont indpendantes si i < j , donc E(Xi X j ) = E(Xi )E(X j ) par le


lemme A-H, donc
Var(

Xi ) =

E(Xi2 )

E(Xi )2 =

Var(Xi ).

A-L

Thorme (ingalit de Bienaym-Tchebychev)

Soit X une variable alatoire. Alors pour tout rel t > 0, on a


Pr(|X E(X )| t )

Var(X )
.
t2

Dmonstration Soit Y = (X E(X ))2 . En utilisant le fait que E(X ) est une constante
(donc E(E(X )) = E(X )) et la linarit de lesprance, on a
E(Y ) = E(X 2 ) 2E(X )2 + E(X )2 = Var(X ).

Lingalit de Markov donne donc :


Pr(|X E(X )| t ) = Pr(Y t 2 )

E(Y ) Var(X )
=
.
t2
t2

Si on suppose plus de rgularit dans nos variables alatoires, on peut encore montrer
de meilleures ingalits. Dans ce livre nous naurons besoin que dune version faible des
bornes de Chernoff dont la dmonstration est facile, mais nous donnons tout de mme
aussi la version habituelle plus bas (sans dmonstration).
A-M

Proposition (version faible des bornes de Chernoff)

Soit p [0, 1] et X1 , . . . , Xn des variables alatoires indpendantes telles que

Xi =

Soit X =

i =1 Xi .

Alors

1 avec probabilit p
0 avec probabilit (1 p).


1+ p
Pr(X n/2) p
2

n
.

A.2. Arithmtique

361

Dmonstration On pose Y = 2X : on cherche donc majorer Pr(Y 2n/2 ). Par lingalit de Markov,
Pr(Y 2n/2 ) E(Y )2n/2 .

Xi
Or Y = ni=1 2Xi et les variables alatoires
indpendantes puisque les Xi le
n 2 sont
sont. Donc par le lemme A-H, E(Y ) = i =1 E(2Xi ). Puisque 2Xi vaut 1 avec probabilit (1 p) et 2 avec probabilit p ,

E(2Xi ) = (1 p) + 2 p = 1 + p.

Ainsi, E(Y ) = (1 + p)n . On en dduit que


1+ p
Pr(Y 2n/2 ) E(Y )2n/2 = ( p )n .
2

Avec un peu plus de travail on obtient la version plus gnrale suivante qui donne un
rsultat non trivial pour tout
p p [0, 1/2[ (contrairement la version faible qui nest plus
intressante ds que p 2 1), et dont lnonc a t adapt notre propos.
A-N

Proposition (bornes de Chernoff)

Soit p [0, 1/2[ et X1 , . . . , Xn des variables alatoires indpendantes telles que

Xi =

Soit X =

i=1 Xi .

1
0

avec probabilit p
avec probabilit (1 p).

Alors pour = 1/2 p on a :


Pr(X n/2) 2( /2)n .
2

A.2

Arithmtique

Nous donnerons sans dmonstration deux thormes darithmtique, dont le premier


nest pas facile montrer. Il donne une estimation asymptotique de la densit des nombres
premiers.
A-O

Thorme (des nombres premiers)

Si x est un rel positif, on note (x) le nombre de nombres premiers x . Alors


(x) x+

x
.
ln(x)

362

Annexe A. Probabilits et arithmtique

Le second concerne la formule de Stirling, qui est bien connue dans sa version asymptotique ; ici nous donnons un encadrement de la factorielle. Cela nous permettra de majorer
ci-dessous des coefficients binomiaux.
A-P

Thorme (formule de Stirling)

Pour tout entier n 1,

 n n p
2n
e

n!

 n n p
e n.
e

Par simple calcul, on en dduit le corollaire suivant.


A-Q

Corollaire

Pour tout entier pair n 2,


n
e2n
p .
n/2
n

Dmonstration Le thorme A-P, donne la majoration suivante :





p
e n(n/e)n
n
n!
e2n
=

= p .
n/2
(n/2)!2
n(n/2e)n
n

Exercices
supplmentaires
Outre les exercices contenus dans les diffrents chapitres, nous donnons ici quelques exercices et problmes supplmentaires.

Padding et thormes de hirarchie

. B-A

Exercice
Soit c > 0 une constante.
1. Montrer que si DSPACE(n c ) NP, alors PSPACE NP.
2. En dduire que DSPACE(n c ) = NP.
c
3. Raisonner de mme pour montrer que DTIME(2n ) = NP.

Circuits, oracles, padding

. B-B

Exercice
On rappelle que E = DTIME(2O(n) ).
1. Montrer que E = DSPACE(2O(n) ) PSPACE P/poly = P.
Indication : sinspirer de la preuve de lexercice 7-U et de celle de la proposition 7-T
pour se ramener un langage unaire de PSPACE.
2. En dduire que P = RP = E = DSPACE(2O(n) ).

364

Annexe B. Exercices supplmentaires

Problmes succincts et compltude pour le temps exponentiel

. B-C

Exercice
Un circuit boolen C peut fournir le code dun autre circuit boolen D comme
suit : sur lentre i en binaire, C (i ) est gal au i -me bit du code de D . On peut
ainsi reprsenter des circuits D de taille exponentielle grce un circuit C de taille
polynomiale. On dit alors que C reprsente succinctement le circuit D .
Soit VALEUR CIRCUITsucc. le problme suivant :
entre : un circuit C reprsentant succinctement un circuit D sans variables ;
question : la valeur de D est-elle 1 ?
Montrer que VALEUR CIRCUITsucc. est EXP-complet.
Soit SAT-CIRCUITsucc. le problme suivant :
entre : un circuit C reprsentant succinctement un circuit D(x1 , . . . , xN ) ;
question : existe-t-il une affectation (a1 , . . . , aN ) {0, 1}N des variables
(x1 , . . . , xN ) telle que D(a1 , . . . , aN ) = 1 ?
Montrer que SAT-CIRCUITsucc. est NEXP-complet.

La classe ZPP

. B-D

Exercice
La classe ZPP (pour Zero-error Probabilistic Polynomial time) est dfinie comme lensemble des langages A pour lesquels il existe un polynme p(n) et une machine
dterministe polynomiale M trois tats terminaux qa , q r et q? , vrifiant pour tout
x :
si x A alors Pr r {0,1} p(|x|) (M (x, r ) q r ) = 0 et Pr r {0,1} p(|x|) (M (x, r ) q? )
1/2 ;
si x A alors Pr r {0,1} p(|x|) (M (x, r ) qa ) = 0 et Pr r {0,1} p(|x|) (M (x, r ) q? ) 1/2.

En dautres termes, la machine M ne se trompe jamais mais peut ne pas rpondre


(tat q? ) avec probabilit 1/2.
1. Montrer que ZPP = RP coRP
2. Montrer quun langage A est dans ZPP ssi il est reconnu par une machine
probabiliste qui rpond avec probabilit 1, ne se trompe jamais et dont le temps
dexcution est polynomial en moyenne.

Annexe B. Exercices supplmentaires

365

Oracles alatoires et RP

. B-E

Exercice
Lorsquon met chaque mot de {0, 1} avec probabilit 1/2 dans un langage A, on
obtient un langage alatoire dont on se servira en oracle.
Montrer quavec probabilit 1 sur le choix de loracle alatoire A, PA = RPA.
Indication : soit M une machine probabiliste avec oracle A pour un langage RPA. Dans
PA, interroger loracle sur des mots non demands par M (x) afin dobtenir des bits
alatoires pour pouvoir simuler M (x).

NP-compltude et langages unaires

. B-F

Exercice
Le but de cet exercice est de montrer une version faible du thorme 3-AQ de Mahaney, due Berman [Ber78] :
sil existe un langage unaire A NP-difficile, alors P = NP.
On rappelle quun langage A est dit unaire si A 1 (tous les mots de A ne
contiennent que le symbole 1).
Supposons A unaire et NP-difficile : nous allons montrer que SAT P. Puisque A est
NP-difficile, il existe une rduction polynomiale f de SAT A.
Lide est dutiliser lautorductibilit de SAT et de maintenir grce f un ensemble
de taille polynomiale de formules.
Soit (x1 , . . . , xn ) une instance de SAT : nous devons dcider en temps polynomial
si SAT.
1. Que dire de si f () 1 ?
2. Pour une formule (x1 , . . . , xn ), on dsigne par 0 la formule 0 (x2 , . . . , xn ) =
(0, x2 , . . . , xn ) et par 1 la formule 1 (x2 , . . . , xn ) = (1, x2 , . . . , xn ).
Montrer que SAT ssi [0 SAT ou 1 SAT] (autorductibilit).
Pour simplifier, pour toute formule on suppose que la taille |0 | (respectivement |1 |) du codage de 0 (resp. 1 ) est gale la taille || du codage de
.
3. Tout au long de lalgorithme pour SAT quon cherche dcrire, on maintiendra
un ensemble de formules boolennes. On appellera i cet ensemble ltape
i n . Au dpart, on a 0 = {}.
On dfinit alors i+1 par la procdure suivante :

366

Annexe B. Exercices supplmentaires

i+1 ;
I ;
Pour tout i faire

u f (0 )

Si u 1 et u I alors
I I {u}
i +1 i+1 {0 }

u f (1 )

Si u 1 et u I alors
I I {u}
i +1 i+1 {1 }

Renvoyer i+1
Remarquer quon limine une variable chaque fois : lensemble i contient
des formules n i variables. Il y aura ainsi n tapes.
Pour tout i , montrer que SAT si et seulement sil existe i satisfaisable.
4. Montrer quil existe un polynme p(n) tel que pour tout i , |i | p(||) (ce
polynme dpend de la rduction f ).
5. Conclure que SAT P.
Langages P-slectifs

. B-G

Exercice
Cet exercice est adapt du chapitre 3 du livre [HO02].
Un langage L est dit P-slectif (L P-sel) sil existe une fonction f : {0, 1} {0, 1}
{0, 1} calculable en temps polynomial telle que x, y {0, 1} :
f (x, y) {x, y}, et
si x L ou y L alors f (x, y) L.
On appelle f fonction de slection pour L.
1. Montrer que P P-sel.
2. Montrer que P-sel est clos par complmentaire.
3. Montrer que sil existe un langage L NP-difficile dans P-sel, alors P = NP.

Annexe B. Exercices supplmentaires

4.
5.
6.

7.
8.

9.
10.
11.

367

Indication : en saidant de L, on pourra donner un algorithme polynomial pour SAT


qui utilise lautorductibilit de SAT : (x1 , . . . , xn ) SAT [(0, x2 , . . . , xn )
SAT ou (1, x2 . . . , xn ) SAT].
Soit r [0, 1] un rel. Soit L r lensemble des mots b = b1 . . . bn {0, 1} tels
que le rel 0, b1 . . . bn [0, 1] soit major par r . Montrer que L r P-sel.
En dduire quil existe un langage non rcursif dans P-sel.
On appelle tournoi tout graphe complet dont on a orient les artes.
Montrer le lemme suivant : si G = (S, A) est un tournoi k sommets, il existe
un sous-ensemble des sommets H S de cardinal au plus log k tel que pour
tout s S \ H il existe h H tel que (s , h) A.
Soit L P-sel. Montrer quil existe une fonction de slection f pour L telle
que x, y, f (x, y) = f (y, x).
Soit L P-sel et soit une fonction de slection f pour L telle que pour tout x
et y , f (x, y) = f (y, x).
Montrer quil existe un sous-ensemble Hn de L=n de cardinal au plus n tel que
s appartient L=n si et seulement sil existe un mot h de Hn tel que f (s , h) = s .
En dduire que P-sel P/n 2 .
Montrer que si G est un tournoi alors il existe un sommet s tel que tout sommet
soit accessible partir de s par un chemin orient de longueur au plus deux.
En dduire que P-sel NP/(n + 1).
Remarque : on peut montrer que P-sel NP/n (cf. [HO02, chapitre 3]).

Solutions des exercices


Les solutions qui suivent se veulent seulement des lments de correction, plus dtaills
que des indications mais moins que de relles corrections. Nul doute quelles seront tout
de mme suffisantes pour le lecteur dsirant vrifier sa solution ou tant bloqu sur un
exercice.
Exercice 1-K
Palindrome : machine un ruban de travail. Sur le ruban de lecture, se dplacer vers
la droite tout en recopiant les symboles lus sur le ruban de travail en se dplaant
vers la gauche (cest--dire quon recopie lentre lenvers).
Lorsquon atteint le symbole B , revenir au dbut du mot dentre tout en restant
sur place sur le ruban de travail. Puis, en se dplaant vers la gauche sur les deux
rubans, comparer lettre lettre le mot dentre et son miroir. Rejeter ssi lun des
symboles diffre.
Multiplication : on effectue lalgorithme de lcole primaire. Sur lentre x#y , on
recopie y sur le premier ruban de travail. Puis on parcourt x de droite gauche : si le
i -me bit de x est 1, on ajoute y0i au deuxime ruban de travail grce lalgorithme
daddition dcrit lexemple 1-J.
Exercice 1-P
Si est lalphabet de travail de la machine simuler, on choisit comme
nouvel alphabet de travail = ( {})k , o les symboles permettront de savoir o
se trouvent les ttes de lecture. Un k -uple la cellule i dsigne le contenu des k cellules
la position i sur les k rubans de travail de la machine simuler.
Pour simuler une tape, on effectue un aller sur le ruban de travail afin de connatre les
k symboles vus par les k ttes de lectures (repres grce au symbole ), que lon retient
grce aux tats de la nouvelle machine, ce qui nous permet deffectuer la transition lors

370

Annexe C. Solutions des exercices

du retour sur le ruban de travail, en modifiant ventuellement le contenu des cellules


contenant le symbole (et en dplaant ces symboles si ncessaire).
La simulation dune tape ncessite donc un aller-retour sur le ruban de travail, qui
contient au plus t cases. Le temps total est donc O(t 2 ).
Exercice 2-H
t (n) = c est constructible en temps grce la machine qui crit 1c indpendamment
de lentre.
t (n) = n est constructible en temps grce la machine qui recopie lentre 1n sur
le ruban de sortie.
c

Pour t (n) = 2n , en partant de 1, multiplier c fois la valeur courante par n (pour cela,
recopier n fois cette valeur) afin dobtenir n c en unaire. Puis partir de 1, doubler
c
la valeur courante n c fois en utilisant deux rubans, afin dobtenir 2n en unaire. Le
nc
temps total est O(2 ).
Soit M1 et M2 des machines pour t1 et t2 . Alors t1 + t2 est constructible en temps
grce la machine qui simule M1 (1n ) en crivant le rsultat sur un ruban de travail,
de mme pour M2 (1n ) sur un autre ruban, puis qui concatne les deux rsultats sur
le ruban de sortie.
Pour t1 t2 , faire tourner M1 (1n ) en crivant le rsultat sur un ruban de travail puis,
pour chaque symbole 1 crit, faire tourner M2 (1n ) en crivant le rsultat sur un
nouveau ruban de travail, lequel est chaque fois recopi la suite sur le ruban de
sortie et effac.
Exercice 2-I
Soit M une machine calculant 1 f (n) en temps t (n) = O( f (n)) = o(n).
Soit N tel que n N , t (n) < n . Alors pour n N , M (1n ) et M (1n+1 ) lisent exactement
la mme chose sur le ruban dentre donc ont exactement le mme comportement, donc
f (n) = f (n + 1).
Exercice 2-M

Il suffit de prendre u1 = f (n 1) + 1.

Exercice 2-Q
P DTIME(2n ) DTIME(22n ) E o la deuxime inclusion est stricte
grce au thorme de hirarchie.
Exercice 2-S Nous donnons des indications seulement pour deux problmes.
1. Cf. exercice 1-K sur la multiplication. Le nombre dtapes est O(n) pour recopier
lentre, puis pour chaque bit de x au plus |y| tapes, donc au total un temps O(n 2 ),
donc le problme est dans P.
6. On numre toutes les possibilits : donner un numro de bote dans [1, m] pour
chaque objet (il y a donc m m choix possibles), et pour chaque choix, tester si cest
une solution valide, cest--dire que pour tout i [1, m], la somme des poids des
objets de la bote i doit tre au plus p . Le temps total est exponentiel.

Annexe C. Solutions des exercices


Exercice 2-AD
nistes.

371

Rien ne change dans le thorme 1-S pour des machines non dtermi-

Exercice 2-AH (Voir aussi lexercice 4-X.)


On utilise lalgorithme rcursif suivant simu(x, ) (o dsigne le mot vide) pour simuler
une machine N non dterministe. Le mot u {0, 1} dsigne le prfixe (cest--dire le
dbut) dun chemin de la machine N .

simu(x, u) :

si N (x) le long de u termine et accepte, renvoyer Vrai ;


si N (x) le long de u termine et rejette, renvoyer Faux ;
sinon renvoyer simu(x, u0)simu(x, u1).
Alors simu(x, ) renvoie Vrai ssi N (x) accepte.
Il existe une constante > 0 telle que le temps dexcution de N soit major par t (n).
Le temps de calcul T (n, u) de la simulation dterministe ci-dessus, pour n = |x|, vrifie
alors :

T (n, u) t (n)
si |u| t (n) ;
T (n, u) T (n, u0) + T (n, u1) + t (n) sinon.
Le premier cas vient de ce que le chemin u est alors complet, donc la simulation se termine
en t (n) tapes ; tandis que dans le second cas on effectue les deux appels rcursifs entre
lesquels on doit effacer le ruban de calcul.
Par rcurrence, on en dduit que T (n, u) 2t (n)|u| t (n), donc
T (n, ) 2t (n) t (n) = 2O(t (n)) .

Exercice 2-AJ Si g (n) = (n) alors g (n) = o(n) car g est croissante, donc g (n) = O(1)
car elle est constructible en temps (cf. exercice 2-I), donc f (n + 1) = o(1) = 0.
Exercice 2-AN
Nous donnons seulement une indication pour le problme CLIQUE
(point 1). Voici un algorithme non dterministe pour CLIQUE sur un graphe n sommets
x1 , . . . , x n :
deviner i1 , . . . , ik [1, n] distincts ;
accepter ssi pour tous j < j , xi j et xi j sont relis.

372

Annexe C. Solutions des exercices

Le temps de calcul est O(k log n) pour ltape 1, et O(k 2 n) pour ltape 2, soit au total
un temps polynomial.
Exercice 2-AP
Pour cet exercice, on appellera NP la variante o le certificat est de
taille au plus p(n) .
Si A NP est caractris par x A y {0, 1} p(|x|) (x, y) B , o p est un polynme
et B P, alors on pose B = {(x, y) | |y| = p(|x|) (x, y) B}. Alors
x A y {0, 1} p(n) (x, y) B ,

donc A NP .
Si A NP est caractris par x A y {0, 1} p(|x|) (x, y) B , o p est un polynme
et B P, alors on pose B = {(x, y) | |y| = p(|x|) y y, (x, y ) B}. Alors
x A y {0, 1} p(n) (x, y) B ,

donc A NP.
Exercice 2-AQ
n O(1)

C DTIME(22 ) car il suffit dnumrer tous les mots y {0, 1}2


O( p(n))
si (x, y) B : le temps total est 22
.
p(n)
Pour linclusion rciproque : soit A DTIME(22 ) et

p(|x|)

et de tester

B = {(x, y) | |y| = 2 p(|x|) x A},

donc B EXP (padding). Alors x A y {0, 1}2

p(|x|)

(x, y) B .

EXP C est vident. Pour lautre inclusion, soit A C : on n