COMPLEXIT
ALGORITHMIQUE
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.
ix
Prliminaires et notations
xv
1 Le modle de calcul
1.1
1.2
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
14
1.2.4
27
1.2.5
Indcidabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.2
31
Temps dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.1.1
32
2.1.2
Thorme de hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.1.3
39
43
2.2.1
43
2.2.2
45
2.2.3
46
2.2.4
49
2.2.5
52
iv
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
67
3.2.2
70
3.2.3
76
3.2.4
Complmentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
3.2.5
Thorme de Ladner . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
3.2.6
Thorme de Mahaney . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
3.2.7
93
97
Espace dterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
4.1.1
Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
4.1.2
Espace logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
4.1.3
Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.1.4
4.2
4.3
4.4
Compltude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.5
4.4.1
4.4.2
4.5.2
4.5.3
4.5.4
5 Uniformit et non-uniformit
5.1
127
Conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.1.1
Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2
5.3
5.4
5.5
5.6
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
7.5
7.6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
vii
Compltude du permanent . . . . . . . . . . . . . . . . . . . . . . . . 238
10 Protocoles interactifs
247
287
317
viii
A Probabilits et arithmtique
355
A.1 Probabilits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
A.2 Arithmtique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
B Exercices supplmentaires
363
369
389
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
xii
Introduction
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}
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)
Prliminaires et notations
xvii
g ( f ) f o(g )
g ( f ) f O(g ) et g O( f ).
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.
mot dentre
machine
mot de sortie
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
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.
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 :
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
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
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
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
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.
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
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.
(k1)
k1
(q, (ci , . . . , ci
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
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)
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
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 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.
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),
ruban dentre
tte
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
(q0 , (u, B)) = (q0 , (B, u), (D, S, D)) pour tout u {0, 1} (recopier lentre
(q0 , (B, B)) = (qa , (B, 0), (S, S, S)) (crire un zro la fin du mot),
(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))
(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),
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
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
(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
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
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
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
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)
16
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
17
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 .
(qlec1
u a1 ,...,uk1 ak1
18
(qlec1
v ,...,vk
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
b ,...,bk
i j = b + 1 si d j = G ,
i j = 0 si d j = S ,
i j = b 1 si d j = D ,
On a alors
(recr2
b ,...,bk
i ,...,ik ;x
1
, (a1 , . . . , ak1 )) = (rdep
, (b2 , . . . , bk ), (d1 , . . . , dk )) ;
0,...,0;
(rdep
, (a1 , . . . , ak1 )) = (rlec1
19
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
1
, (a1 , . . . , ak1 )) = (rdep
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
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
20
(ruban dentre)
(ruban de travail 1)
(ruban de travail 2)
(ruban de travail 3)
sortie de M
(ruban de sortie)
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
22
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.
23
24
G1
G0
D0
D1
D2
nombre de cases : 4
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) ;
25
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
26
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 ,
27
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
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
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
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
29
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
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
2.1.1
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
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
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
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
c trans.
1
3
4
1
1
2
5
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 ;
35
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
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
2-F
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
. 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
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
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
2-K
Remarques
Nous verrons au thorme 6-O une astuce permettant de rduire un peu lcart
38
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
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-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.1.3
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
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 ).
40
2-P
Corollaire
P EXP
. 2-Q
Exercice
Sparer de mme E et P.
2-R
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
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
L P.
2.2
43
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
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
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
temps
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.
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-
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
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} ;
46
2.2.3
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
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
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)
(ruban de travail 2)
(ruban de travail 3)
(ruban de travail 4)
sortie de N
(ruban de sortie)
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
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
49
t car on inscrit chaque tape le contenu des cases devines sur le deuxime ruban de
travail.
. 2-AD
Exercice
2.2.4
Les machines non dterministes nous permettent de dfinir les classes NTIME, analogues
non dterministes de DTIME.
2-AE
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)).
Proposition
50
b =2
N1
N1
N2
acc
L1 L2
acc
N2
N2
N2
acc
L1 L2
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
52
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
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
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
53
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
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
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.
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
2-AO
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.
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.
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
. 2-AP
Exercice
. 2-AQ
Exercice
p(|x|)
(x, y) B.
n O(1)
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
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
. 2-AT
Exercice
EXP = P
et
NEXP = NP.
Cependant, cest une question ouverte de savoir si chacune des inclusions P NP,
59
Le problme P = NP?
2.2.7
Proposition
P = NP = EXP = NEXP
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
|x|k
excuter M (x, 12 ).
k
L EXP.
2-AV
. 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.
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.
62
2-BA
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
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
Chapitre 3. NP-compltude
64
A permet de rsoudre B et donc B nest pas plus difficile que A. Les diffrentes notions
x B f (x) A.
3-B
Proposition
3.1. Rductions
65
. 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
On en dduit la relation dquivalence suivante, signifiant que deux langages ont mme
difficult.
3-H
Dfinition
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
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.
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
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
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 },
Proposition
Chapitre 3. NP-compltude
70
B P.
3.2.2
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
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
V
(a1 , . . . , an ) =
F
si 1 (a1 , . . . , an ) = V et 2 (a1 , . . . , an ) = V
sinon.
V
(a1 , . . . , an ) =
F
si 1 (a1 , . . . , an ) = V ou 2 (a1 , . . . , an ) = V
sinon.
3.2. Compltude
71
V
(a1 , . . . , an ) =
F
si 1 (a1 , . . . , an ) = F
sinon.
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.
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
3.2. Compltude
73
..
.
espace
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
( pi,r j
pir , j ) ;
r, j
i =i
eq , j ).
(eq, j
j
q =q
cr
r >1,i B,i,0
(au dpart toutes les cases des rubans r > 1 contiennent le symbole
B) ;
i 0 i >n
1
)(
cB,i,0
1i n
c x1 ,i,0 ) ;
i
3.2. Compltude
75
r
( p1,0
).
r
pir, j 1
r,i
(cr,i , j cr,i , j 1 ) ;
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
Chapitre 3. NP-compltude
76
On peut enfin crire la formule x :
x = cohrence dbut x
transition j accepte.
1 j t
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
NP-difficile.
3.2.3
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
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 =
3.2. Compltude
77
Enfin, est en 3-CNF si elle est en CNF avec au plus trois littraux par clause.
3-Y
Proposition
Chapitre 3. NP-compltude
78
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
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
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
Chapitre 3. NP-compltude
80
Nous proposons en exercice de montrer quune autre variante de SAT est NP-complte.
. 3-AD
Exercice
3-AE
Proposition
3.2. Compltude
81
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
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
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
3.2. Compltude
3-AH
83
Proposition
iS
ai = t .
6j .
j | l C j
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
Chapitre 3. NP-compltude
84
Instance de 3SAT
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
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
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
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
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
En sinspirant de mthodes issues de calculabilit, Ladner [Lad75a] rpond cette question ds 1975.
3-AK
3.2. Compltude
87
;
0
SAT
h(0)
h(1)
SAT
h(2)
SAT
h(3)
...
h(2i)
h(2i + 1) . . .
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
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
. 3-AN
Exercice
Chapitre 3. NP-compltude
90
. 3-AO
Exercice
3.2.6
Thorme de Mahaney
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
3.2. Compltude
91
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
Chapitre 3. NP-compltude
92
00...0
10...0
mme image
000...0
010...0
100...0
110...0
en surplus
solution
max de
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} ;
3.2.7
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
Chapitre 3. NP-compltude
94
sinon a a1 ;
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
3.2. Compltude
3-AT
95
Proposition
3-AU
Remarques
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
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
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
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.
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
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) :
100
Exemple Machine deux rubans de travail qui prend en entre deux nombres
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
retenir le chiffre lu a ;
retenir le chiffre lu b ;
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-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
102
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
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
4.1.4
Thorme de hirarchie
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-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.
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
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
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
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.
4.3
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
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
4-V
Lemme
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
Notre premire application de cette mthode est la dmonstration de la proposition suivante comparant complexit en temps et en espace.
108
4-W
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
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
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
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
Thorme
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
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
4.4. Compltude
4-AE
113
Dfinition
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
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
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 .
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).
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
4-AL
Proposition
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
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
Proposition
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
Proposition
118
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
4.5.2
Thorme de Savitch
Lemme
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 ).
119
sinon rejeter ;
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.
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
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
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).
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
122
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 ,
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
123
si v = u alors b 1 ;
k k + b ;
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
logarithmique.
Lemme
coACCESSIBILIT NL.
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,
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.
Nous obtenons en corollaire le thorme suivant d Szelepcsnyi [Sze87] et indpendamment Immerman [Imm88].
4-AZ
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}.
126
Donc A NSPACE(s(n)).
s(n)
4.5.4
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
Conseils
5.1.1
Dfinition
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
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
5.1. Conseils
129
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
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
C /F =
C / f (n).
f F
Dfinition
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
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
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
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
deviner xi n ,
rents),
simuler Nc (xi ),
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
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.
133
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
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
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
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.
x2
x3
x4
Un circuit boolen calcule une fonction boolenne, dfinie de manire naturelle comme
suit.
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 ,
Dfinition
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
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
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 .
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
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
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
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 .
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
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
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
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 ?
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.
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
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,
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
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.
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
. 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
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
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
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
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
5.5
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
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
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.
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
Lemme
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
..
.
..
.
(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
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
Lemme
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
xn
...
x1
...
...
...
xn
...
...
1
...
...
...
...
...
...
circuit C
f0 f1
k
...
...
...
fd
f tronqu
circuit 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
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
151
( p/q) + ( p /q ) = ( p q + p q)/(q q ),
et
et
q (x) = 1 1 q( + x),
i=0
q i = f
q i f q
i=0
q i = f (1 q d +1 ).
i=0
d +1
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
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
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
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.
155
6.1.2
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
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
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:
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 :
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.
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
2 .
158
La preuve pour BPP est lgrement plus subtile car lerreur peut survenir des deux cts.
6-F
Proposition
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-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
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
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
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))).
161
t (n)
t (2) (n)
t (3) (n)
t (k1) (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
(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
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
. 6-P
163
Exercice
Faire la dmonstration complte de ce thorme.
6.2.5
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
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 :
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
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
6.3.1
6.3.2
En ralit, ces deux problmes sont quivalents ; pour le montrer, nous avons besoin du
lemme suivant.
6-R
Lemme
i<d
ai 1i | ;
165
ai 1i | M
d 1
i=0
i<d
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.
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
166
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.
valuer N mod m ;
167
6.4
Questions ouvertes
Nous terminons ce chapitre par quelques questions ouvertes concernant les classes probabilistes.
6.4.1
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 ) |
r {0,1} t
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
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
7.1.1
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.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
171
01
10
10
01
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
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
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 :
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)).
7.2
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
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
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 ,
u
u L?
q?
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
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.
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
NPA = k NTIME(n k )A
et
NPC = AC NPA ;
7-J
Remarques
176
. 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
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
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.
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
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
Le rsultat suivant montre quun oracle PSPACE donne la mme puissance P et NP.
7-P
Lemme
PPSPACE = NPPSPACE = PSPACE
178
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 :
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
u SAT ?
000
...
u SAT
Le lemme suivant montre que si NP est clos par complment, alors en effet NPNP = NP.
179
Lemme
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 :
si bi = 1 alors (ai , yi ) B ,
si bi = 0 alors (ai , yi ) B ;
180
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
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
181
. 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
. 7-V
Exercice
Soit A un langage unaire. Montrer que EA = E ssi A P.
7.4.2
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
A pm B = A T B.
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
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
et
PB = NPB .
184
7-AB
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.
7.5. Relativisation
185
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
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 )) ;
186
x1
x2
Questions loracle
Mot dans B ?
x3
x4
x5
x6
...
x2n
...
...
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
et
EXPB = NPB .
7.5. Relativisation
187
Lemme
Lemme
188
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
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
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.
190
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
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}.
191
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
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
194
8-A
p2
p2
p1 = coNP
p3
p3
p2
PSPACE
p3
La hirarchie polynomiale est incluse dans PSPACE comme le montre le rsultat suivant.
8-B
Lemme
PH PSPACE.
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
Corollaire
Lemme
196
8.1.2
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
Proposition
y1 {0, 1} p(|x|) y2 {0, 1} p(|x|) y3 {0, 1} p(|x|) . . . Qyi {0, 1} p(|x|) (x, y1 , . . . , yi ) B,
.NP
197
[(b j = 1 (a j , z1 , . . . , zi 1 ) C ) (b j = 0 (a j , z2 , . . . , zi ) C )].
j =1
198
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
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)
(8.2)
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 :
199
. 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
200
. 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
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
c x1 ,i ,0 .
i
1in
201
1
1
(xi c1,i,0
) (xi c0,i
,0 )
1in
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
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
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
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
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 :
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 ).
r ki=1 (R x + ui ).
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
rejeter.
La caractrisation de PH la proposition 8-F permet de conclure que A p2 . Ainsi,
BPP p2 .
8.3
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
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
Nayant dabord obtenu quun effondrement sur p3 , dans leur article Karp et Lipton
attribuent la version suivante de leur thorme Sipser.
8-P
205
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.
(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
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 ).
8.3.2
Langages creux
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
207
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
208
8-T
Lemme
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
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
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
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
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 ).
210
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]
On en dduit que
TISP(n log n, n ) NTIME(n (+)/2 (log n) ).
( + )/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
Dfinition (P)
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
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).
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)).
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)) =
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.
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.
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
. 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.
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
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.1
217
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
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
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)
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
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},
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
219
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
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
220
Chapitre 9. Comptage
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|) ,
. 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
. 9-AA
Exercice
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
et
et f g P.
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
222
9-AE
Chapitre 9. Comptage
Proposition
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
Donc c A Modk P.
Enfin, la clture de PP par complmentaire est facile voir.
9-AF
Proposition
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.
223
9.3.2
(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 )
i =0
(2i + t )2 > 9
(2i t )2
i =0
224
Chapitre 9. Comptage
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.
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) ;
(a(x) + 2i ).
i =0
225
(N m (x) et N m1
(x) acceptent) ou (N m (x) et N m1
(x) rejettent).
acc(N m (x))acc(N m1
(x)) + rej(N m (x))rej(N m1
(x))
acc(N m (x))rej(N m1
(x)) + rej(N m (x))acc(N m1
(x)).
cest--dire
(a(x) + 2 m )
m1
(a(x) + 2i )
i =0
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)
Comme nous lavons dj mentionn, cela implique aussi la clture par intersection
puisque PP est clos par complmentaire.
9.3.3
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
227
Nous commenons donc par le lemme de Valiant et Vazirani issu de larticle [VV86].
9-AJ
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 .
i =1
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
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
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
229
k< j
(1)
(2)
yk yk
k<l < j
(1)
(2)
(y l y l ) .
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
xi ,
i =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
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
231
(a) vraie
(a) fausse
=
=
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 :
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
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) =
(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)
(a) vrai
(a) faux
(9.2)
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)
233
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
En revanche si (a) est faux, alors avec probabilit 1 2m1 sur le choix de u ,
Pr
234
9-AN
Chapitre 9. Comptage
Lemme
vrifiant
0 mod 2 = 0 mod 2k
1 mod 2 = 1 mod 2k .
0 =
i +1 = 4(i )3 + 3(i )4
et on pose
pour i 0,
= log k .
x 0 mod 2i
x 1 mod 2i
= 4x 3 + 3x 4 0 mod 22i ;
= 4x 3 + 3x 4 1 mod 22i .
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
=
=
et tester sur lentre (u, z) si u (z) est vrai se fait en temps polynomial. En dautres
termes,
( f : 7
u ) P.
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
Sn
(1)()
i=1
xi ,(i ) ,
236
Chapitre 9. Comptage
Sn i=1
xi ,(i) .
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
Nous montrons dabord que ce problme est dans P avant de montrer sa difficult.
9-AQ
Lemme
mi ,(i) = 1},
i=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
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.
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.
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
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
o s est la fonction qui divise par 43m (trouver lentier m ncessite de connatre G ).
244
Chapitre 9. Comptage
9-AT
Lemme
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} .
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
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
249
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 =
x L =
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
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
10.1.2
Isomorphisme de graphes
251
5
252
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
10.1.3
IP = PSPACE
De manire naturelle, nous allons scinder la preuve en deux parties, linclusion la plus
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
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 :
p
y1 ,z1 ,...,yk ,zk
= Pr r (V (x, r, z1 , . . . , zT ) = 1 | y1 , z1 , . . . , yT , zT )
= max zk py1 ,z1 ,...,yk ,zk
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 .
255
L PSPACE.
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
. 10-L
Exercice
Lemme
r F p
256
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 ;
Q =
...
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.
257
On a alors
(a1 , . . . , an ) {0, 1}n , Q(a1 , . . . , an ) = Li (Q)(a1 , . . . , an )
et
i (Q)(x1 , . . . , xi1 , xi+1 , . . . , xn ) =
Q(x1 , . . . , xi1 , 0, xi +1 , . . . , xn ) + Q(x1 , . . . , xi 1 , 1, xi +1 , . . . , xn )
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
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
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 ),
259
260
qi1
(ri1 ) = i ,1 (0) + i,1 (1) (si i est impair) ou
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 :
hasard.
Le dernier test du protocole est alors le suivant :
V accepte ssi
qn (rn ) = qn (r1 , . . . , rn ) = Q (r1 , . . . , rn ).
261
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
...
...
262
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
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
. 10-O
Exercice
Proposition
. 10-Q
263
Exercice
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
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
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
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).
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
(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 =
x L =
o A(x, r1 , z1 , . . . ) signifie
A(x, r1 , z1 , . . . , rk/2 , zk/2 ) si k est pair,
266
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 =
Un langage L est dans MA sil existe un langage B P et un polynme p(n) tels que
x L =
x L =
. 10-V
267
Exercice
10.2.2
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
Corollaire
x L =
x L =
268
x L =
x L =
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 .
Pr
r1 ,...,rk1 ,rk
Pr
|z |2
zk (x, r1 , z1 (r1 ), . . . , rk , zk ) C
2 k1 = 1/4.
zk1
269
Do :
x L =
x L =
10-Y
Remarques
. 10-Z
Exercice
10.2.3
270
10-AA
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 | .
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.
Corollaire
MA p2
et
AM p2 .
272
o B P, cest--dire que L p2 .
10.2.4
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].
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 .
A1 ,...,Ak
x E j x E (x = x A j x = A j x ) |E|k+1 2mk .
274
A1 ,...,Ak ,Y
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 :
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).
275
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 |
i=1
une contradiction.
10-AE
1/i < N ,
i =1
276
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 .
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
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).
278
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.
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)
279
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
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
280
10-AF
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
10.2.5
10-AH
Corollaire
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,
(x, y) C =
(x, y) C =
r t (x, y, r, t ) D
Pr r (t (x, y, r, t ) D) < 2|y| ,
281
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| ,
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
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
282
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 =
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
x L =
x L =
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
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
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
clauses originales.
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().
(y1 , . . . , yN ) =
r .
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,
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
11.1
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
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
Li =
Li 1 {x i }
Li 1
289
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
. 11-C
Exercice
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
Dans le mme article [Kan81] que prcdemment, Kannan montre aussi le rsultat suivant.
11-E
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 ,
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
292
11.1.2
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
O(1)
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.
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
. 11-K
Exercice
294
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
295
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.
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
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
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
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.
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).
11-P
Remarques
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
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
i = 0) = (1/2) Pr(
iS
i = 1 | i0 S) + (1/2) Pr(
iS\{i0 }
i = 0 | i0 S).
iS\{i0 }
Pr(
i = 1 | i0 S) = Pr(
i = 1).
Or les vnements
iS\{i0 } i
iS\{i0 }
i S\{i0 }
299
De mme,
Pr(
i = 0 | i0 S) = Pr(
i S\{i0 }
i = 0).
iS\{i0 }
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
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
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
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
S1 ,...,Sk
(
i (x) = 0) 1 2k .
j =1 i S j
x{0,1}n
(x)
(
i (x) = 0) 1 2k .
j =1 iS j
301
On pose alors
P = 1
1 Q(
j =1
i S j
P i ) ,
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
P (x1 , . . . , xn ) =
p1
i =0
(1 Pi (x1 , . . . , xn )) i ,
yi :
i=1
i =1
yi )(
i c I
p1
yi
),
303
(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.
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
donc
N 2n1 +
e n
1
e n
2 =( +
)2 (19/20)2n .
2
2 2
|E|
|E|
|K|N ,
304
(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
11-U
Remarques
. 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
n+d
d
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
et
v0 d0 + + v m d m d .
(11.1)
306
(11.2)
(11.3)
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
Lemme
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
et
G( p0 , f1 , . . . , f t +n ) = 0.
lgalit portant sur des polynmes de K[x1 , . . . , xn ] (puisque gi K[x1 , . . . , xn ]). Ainsi,
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
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
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 ,
P (x) =
qi ( p1 (x), . . . , pn (x))(
z j x j )i = 0.
j =1
i=0
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
j =0
q j ()x j K[x]
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
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
q
xi
p
xa
q
xa
q
,
y
g
xi
=0
310
Corollaire
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
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]
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
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 ;
Lemme
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
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 = (
i1
i 1
yk,i hk )(
yk,i
hk ),
k=0
k=0
j1 + j2 = j k1 ,k2 <i
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 :
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
(deg(hk1 , j1 ) + deg(hk2 , j2 ))
2 + 3(i 1) j + 2 = 3i j + 4 3 j 3i j + 1.
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
11.3. Polynmes
313
du polynme
H=
H (g1 , . . . , g t 3 )(x) =
i1 ,...,i t 3
i1 ++i t 3 t 4
on doit avoir
j =1
non nulle.
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
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
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
t 3
i=1 ai x
na pas de
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 .
j =0
ai, j 2 j = ai
j =0
t 3
i=1 ai , j x
t3
ai, j x i
i=1
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
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
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
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
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
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)
z{0,1}n :r = f (z)
. 12-E
C (r1 , . . . , ri ) = ri+1 < 1/2 + 1/(6m(n)).
Exercice
321
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|)
z{0,1}N
r {0,1} m(N )
1. On rappelle que la notation [x L] (respectivement [x L]) dsigne le boolen qui vaut 1 ssi x L
(resp. x L).
322
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)
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
Pr
(M (x0 , r1 . . . ri ri+1
. . . r m(N
) ) = [x0 L]) :
z,r :r = f (z)
z,r
Pr
z,r :r = f (z)
z,r :r = f
(z)
M (x0 , r1 . . . ri ri+1
. . . r m(N
) ) = [x0 L] ri +1 = ri+1
= 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 )
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 :
z,r
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 +
=
=
donc
Puisque
m(N )1
i=0
1
6m(N )
z{0,1}N :r = f (z)
C (r1 , . . . , ri ) = ri+1 > 1/2 + 1/ 6m(N ) ,
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
324
12.3
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
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
. 12-J
Exercice
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
Soit s(n) une fonction telle quil existe d : N N dans DTIME(2n ) vrifiant
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
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
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
12-N
m 2d .
Remarque
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
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
327
Pr (i, |J Ii | d ) X m > 1 (1/2) (1/2) = 0,
12-P
Lemme
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
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
I1
I2
IN
...
x1
xn
f (x|I1 )
...
f (x|I2 )
f (x|IN )
fINW (x)
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
nd /12 1
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
z{0,1}n :r = g (z)
329
z{0,1}n
z {0,1} m ,z {0,1}nm
C ( f (z1 , z1 ), f (z2 , z2 ), . . . , f (zi , zi )) = f (z ) 1/2 + 1/(6N ).
C ( f (z1 , z1 ), f (z2 , z2 ), . . . , f (zi , zi )) = f (z ) 1/2 + 1/(6N ).
Pr
z {0,1} m
z {0,1} m
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 ,
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
/2 /2+2 /4
> 22n
/2
= 22d (n) .
330
12.4
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
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
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
12-U
|{i [1, m] | xi = yi }|
.
m
Pour ]0, 1[, un code correcteur derreurs de distance est une fonction E : n m
telle que
x = y = (E(x), E(y)) .
12-V
Remarques
i =1 xi yi
mod 2.
332
12-X
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
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
333
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
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
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
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
12-AF
Lemme
x1
x {0, 1}
335
E
y = E(x)
ym
y1
F
z {0, 1}
12-AG
Lemme
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
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
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.
md + d
p
m/d = 2 md
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
337
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
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 }.
E(N ) =
t \{0}
|| 1
(|| 1)/18
)<
= 1/6.
3
(|| 1)/3
338
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}}
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
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 :
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) =
y,y S
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
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
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
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
Le dcodage suivant de Reed-Muller est d Sudan [Sud96] mais notre prsentation est
plus proche de Sudan, Trevisan et Vadhan [STV99].
12-AO
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.
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,
a,r,v,w
a,r,v,w
3d /||.
p
3d /|| 1 2/ d = 1 2
342
r,v,w
Alors
Pr (D f (x, a, b ) = p(x)) =
a,r,v,w
a,r,v,w
a,r,v,w
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
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.
343
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
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
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)
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
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
cest--dire
b ( F )/(1/2 F )m > 2( F )m > m.
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 .
erreurs, fonctionnant en temps (k||)O(1) avec conseil de taille O(k log ||).
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
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
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
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)).
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 ,
Corollaire
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 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
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)) ).
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
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
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
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
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
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
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
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,
/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
(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,
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
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
xi ,m C m1 (Xi,m )
i=1
Nous sommes maintenant prts pour montrer la borne infrieure principale de cette section, due Kabanets et Impagliazzo [KI03].
12-BA
354
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
356
A-B
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
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
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
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
i =1
Pr(A|Bi ) Pr(Bi ).
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.
358
A-G
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 )
Lemme
i =1 Xi ) =
i=1 E(Xi ).
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 ) =
i,j
Pr(X = xi )xi )(
A.1. Probabilits
A-I
359
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 ).
Dfinition (variance)
A-K
Lemme
Var(
Xi ) =
Var(Xi ).
i =1
Dmonstration
i =1
360
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 ).
Xi ) =
E(Xi2 )
E(Xi )2 =
Var(Xi ).
A-L
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 ).
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
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.
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
Xi =
Soit X =
i=1 Xi .
1
0
avec probabilit p
avec probabilit (1 p).
A.2
Arithmtique
x
.
ln(x)
362
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
n n p
2n
e
n!
n n p
e n.
e
Corollaire
n
e2n
p .
n/2
n
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.
. 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.
. 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
. 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.
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).
. 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
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.
4.
5.
6.
7.
8.
9.
10.
11.
367
370
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.
371
Rien ne change dans le thorme 1-S pour des machines non dtermi-
simu(x, u) :
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
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)
p(|x|)
et de tester
p(|x|)
(x, y) B .
EXP C est vident. Pour lautre inclusion, soit A C : on numre tous les mots
y {0, 1} p(|x|) et on teste si (x, y) B , ce qui se fait dans EXP.
Exercice 2-AT
NP NTIME(2n ) NTIME(22n ) NE, o la deuxime inclusion est
stricte grce au thorme de hirarchie non dterministe.
Exercice 2-AW
1 = 2 : soit L NE \ E. Pour x L on note x la reprsentation unaire du nombre
1x , et L = {
x | x L}. Alors L est unaire ; si L P alors L E (car il suffit sur lentre
x dcrire x puis dexcuter lalgorithme pour L), donc L P ; enfin, L NP car sur
lentre x on crit x et on excute lalgorithme NE pour L.
2 = 3 : vident.
3 = 1 (cf. [HO02, lemme 1.21]) : soit L NP \ P creux et soit
L = {(n, i ) | |L=n | i} {(n, i , j , k) | y1 < < yk L, le i -me bit de y j est 1}.
373
Alors L NE. Si L E alors L P ainsi : on trouve c = |L=n | par recherche dichotomique en un nombre logarithmique de requtes (n, i) la premire partie de L,
puis on construit lensemble des mots de L de taille n grce des requtes (n, i, j , c).
Exercice 3-E
Soit A EXP dcidable en temps 2 p(n) , et soit B pm A : il existe une
fonction f calculable en temps polynomial q(n) tel que x B f (x) A. Pour
dcider si x B , on calcule alors f (x), de taille q(|x|), puis on excute lalgorithme
pour A : le temps total est donc O(2 p(q(|x|)) ).
Idem pour NEXP.
Exercice 3-F Soit L EXP \ E dcidable en temps 2 p(n) , et L = {(x, 1 p(|x|) ) | x L} E
(padding). Alors L pm L mais L E.
Idem pour NE.
Exercice 3-O
A EXP puisquil suffit de simuler M (x) pendant t tapes.
Soit B EXP reconnu par une machine M en temps t (n) = 2 p(n) (o p est un polynme).
Soit f : x 7 (M , x, t (|x|)) : la fonction f est calculable en temps polynomial et
x B f (x) A.
374
Exercice 3-AN
ant SAT par A.
Exercice 3-AO
partir dun langage L EXP et dune fonction h , on dfinit de
mme qu la preuve du thorme 3-AK de Ladner le langage L h gal L avec des
trous . Lide tant que si h crot suffisamment vite, alors L h ne peut tre EXP-complet
cause des trous , mais il reste hors de EXP grce aux pleins . Pour montrer le rsultat
on procde exactement comme la preuve du thorme de Ladner mais en numrant
les machines EXP et les rductions polynomiales.
Exercice 4-D Comme au thorme 2-E, regrouper c = 1/ cases en une en travaillant
sur lalphabet c , sauf sur le ruban dentre qui reste inchang.
Soient x = xn . . . x0 et y = yn . . . y0 les nombres multiplier (en binaire) et
r = x y = r2n+1 . . . r0 le rsultat. On applique lalgorithme de multiplication de lcole
Exercice 4-I
ri = ci + j +k=i x j yk ;
ci+1 = ri /2.
Alors ri ri mod 2 car on ajoute les bits de la i -me colonne obtenue par y0 xi , y1 xi1 ,
, yi x0 , et ci est la retenue issue de la colonne prcdente. La somme est majore par n ,
donc la retenue ci par i + n par rcurrence :
c0 = 0 et ci+1 =
ri
c +n
i + 2n
i
i + n.
2
2
2
375
de travail 1 sur le ruban de travail 2, puis on crase le contenu du ruban 1 par celui
du ruban 2, quon efface. Enfin, aprs ces n tapes, on recopie le contenu du ruban
1 sur le ruban de sortie.
Exercice 4-M Daprs la proposition 4-W gnralise aux fonctions, si s est constructibles en espace alors on peut calculer 1 s (n) en temps 2O(s (n)) . Or pour s (n) = o(log n), on
a 2O(s(n)) = o(n) donc lentre ne peut tre lue compltement donc s (n) est ultimement
constante (cf. exercice 2-I)
Exercice 4-O
Adapter la preuve du thorme 2-J o la machine M est simule tant
que lespace ne dpasse pas f (n) et le temps 2O( f (n)) .
Exercice 4-R
1. Suivre la preuve du thorme 2-J comme lexercice 4-O grce la machine universelle de la remarque 2-AC. Accepter ssi U rejette se fait grce au thorme 4-AZ
dImmerman-Szelepcsnyi.
2. Suivre la preuve du thorme 2-AI : utiliser le thorme 4-AS de Savitch pour simuler la machine N non dterministe si i g (m)2 tant que lespace reste g (m)2 et le
2
temps 2O( g (m) ) ; sinon simuler N de manire non dterministe tant que lespace
reste g (n) et le temps 2O( g (n)) .
Exercice 4-X
(Voir aussi lexercice 2-AH.)
Voici un algorithme rcursif pour la simulation de N (x), o u dsigne le dbut dun
chemin de calcul de N :
simu(x, u) :
Un ruban de travail sert marquer lentre u des appels rcursifs (pour excuter le second
appel simu(x, u1), on efface la fin de u jusquau 0 le plus droite). On doit retenir un
bit (le rsultat de lappel rcursif excut) qui est mis jour au fur et mesure en faisant
la disjonction des rsultats. Dautres rubans de travail servent la simulation. Au total,
lespace utilis est O(1 + |u| + t (n)) = O(t (n)).
Exercice 4-Y
Il est clair que la dfinition 4-A est plus gnrale que la remarque 4B. Rciproquement, si M est une machine pouvant aller au-del du mot dentre, on
376
Exercice 4-AQ
Soit A NP : il existe une machine dterministe M fonctionnant en
temps polynomial p(|x|) telle que x A y {0, 1}q(|x|) M (x, y) = 1. Le vrificateur unidirectionnel V prend comme certificat y p(|x|) (cest--dire p(|x|) rptitions de
y ). Le fonctionnement de V (x, y p(|x|) ) est le suivant : simuler M , et ds quelle a besoin
daller gauche sur le ruban de y , aller droite pendant |y| 1 cases. Ainsi, V est bien
unidirectionnel, fonctionne en temps polynomial et simule M (x, y).
Exercice 5-AF
Concevoir des circuits L-uniformes de profondeur polynomiale (et de
taille exponentielle) pour QBF en alternant des couches de (pour remplacer le quantificateur ) et (pour le quantificateur ). Un langage A PSPACE possde alors comme
circuits lassociation des circuits de la rduction A pm QBF (qui sont de taille polynomiale
et L-uniformes par le premier point de lexercice) avec ceux pour QBF.
Exercice 6-H Si A RP, alors par rduction derreur (proposition 6-E) on peut rduire
lerreur moins de (1 ) pour toute constante ]0, 1[. Inversement, si lon part dune
probabilit derreur (1 ) alors par rptition on peut ramener cette erreur sous 1/3.
Le mme raisonnement sapplique BPP.
Exercice 6-L
Si NP BPP alors il existe un algorithme de type BPP avec probabilit
derreur < 1/(3n) pour le langage
A = {(, a) | y a, (y) = 1}.
a ;
pour i de 1 m faire
si (, a0) A alors a a0
sinon a a1 ;
377
lingalit de Boole (proposition A-B), la probabilit que lun des tests soit faux est majore
par m(1/3n) 1/3, donc lalgorithme accepte avec probabilit 2/3. On en dduit que
SAT RP et donc NP = RP.
Exercice 6-P
Exercice 7-B
Sur lentre 1i , on calcule dabord le code de M i (cest--dire i en binaire). On y ajoute un ruban (en changeant dans le code 1k en 1k+1 ), puis on ajoute des
transitions fixes permettant de calculer t (n) en unaire en dbut de calcul et de multiplier
par i en recopiant i fois t (n) sur un ruban r . Enfin, on rcrit chaque transition pour
enlever un 1 chaque tape sur le ruban r .
Le nombre de transitions est O(|Q|| |k ) = O(|M i |2 ) = O(log2 i) (la premire galit
venant du fait que |M i | (|Q| 2)| |k1 ). On peut donc crire le nouveau code en
temps O(i ), et en espace O(log i ) car ce sont des transformations locales du code de M i .
Exercice 7-K Soit L NPA dcid par une machine N A non dterministe polynomiale
avec oracle A : x L N A(x) a au moins un chemin acceptant y, (x, y) B o
B = {(x, y) | N A(x) accepte le long du chemin y}.
x B =
x B =
Pr r ((x, r ) C ) > 1 2n
Pr r ((x, r ) C ) < 2n
o r est de taille polynomiale. Soit n k une borne sur le temps dexcution de lalgorithme
probabiliste A (avec oracle B ) pour A avec probabilit derreur 1/4 : quitte modifier
lgrement B (considrer B = {(x, y) | x B}), celui-ci demande B au plus n k requtes
de taille comprise entre n et n k . On obtient alors lalgorithme suivant pour A sur lentre
x:
378
Si toutes les rponses simules de loracle sont correctes, alors la probabilit derreur de
notre algorithme est majore par 1/4 puisquon simule correctement A B . Or la probabilit quau moins une des n k rponses soit incorrecte est majore par n k 2n , donc au total
lalgorithme se trompe avec probabilit 1/4 + n k 2n < 1/3, donc A BPP.
Exercice 7-U Il est vident que PUnaires PCreux . Montrons donc linclusion rciproque.
Soit A PC o C est creux. Soit p(n) une borne sur le nombre de mots de taille n de
C , et q(n) sur le temps de lalgorithme PC pour A. On note = x0 x1 x2 . . . la chane des
mots de C concatns dans lordre lexicographique et on dfinit le langage unaire U par
1n U n = 1. Alors pour simuler le calcul x A, il suffit de savoir, pour tout
n p(q(|x|))q(|x|), si 1n U . En effet, on connat alors pour tout mot de taille q(|x|)
sil est dans C ou non et on peut donc simuler lalgorithme PC car les requtes C sont
de taille au plus q(|x|). Donc A PU .
Exercice 7-V
Si A P alors dans EA on simule les appels loracle A en excutant
lalgorithme polynomial pour A : la taille des requtes est 2O(n) et donc la simulation
prend un temps 2O(n) , cest--dire que le calcul reste dans E, donc EA = E.
Rciproquement, si EA = E avec A unaire, en particulier pour dcider si 1n A on demande si n (en binaire) appartient au langage B = {n | 1n A}. Or B EA = E et le mot
demand est de taille O(log n) donc la requte n B ? prend un temps 2O(log n) = n O(1) ,
donc A P.
Exercice 7-Z
Exercice 8-J
Dx (|D| = k D(x) = C (x)) Dx (|D| < k = D(x) = C (x))
Exercice 8-L
Si PH = PSPACE alors QBF pi pour un certain i . Or QBF est PSPACEcomplet donc PSPACE = PH = pi .
Exercice 9-D
Soit f P, f (x) = |{y | (x, y) A} o A P et y de taille polynomiale.
Soit N la machine non dterministe suivante sur lentre x :
deviner y , et accepter ssi (x, y) A.
Alors acc(N (x)) = f (x) et N fonctionne en temps polynomial.
Rciproquement, si N est une machine non dterministe fonctionnant en temps polynomial et f (x) = acc(N (x)), alors on dfinit A = {(x, y) | N (x) accepte le long du chemin y}
qui est dans P. On a f (x) = |{y | (x, y) A}| donc f P.
Exercice 9-H
379
Exercice 9-I
Soit g GapP telle que g = f1 f1 avec f1 , f1 P. Alors il existe A1 P
et un polynme p(n) tels que f1 (x) = |{y {0, 1} p(|x|) | (x, y) A1 }| : en particulier
2 p(|x|) f1 (x) = |{y | (x, y) c A1 }| P. On en dduit que f = f1 + (2 p(n) f1 ) est dans
P. On dfinit alors f (x) = 2 p(|x|) FP et on a g = f f .
Exercice 9-K
Soit A PP : x A |{y | (x, y) B}| (1/2)|||y| o B P et y de
taille polynomiale. Soit N la machine non dterministe suivante :
deviner y , et accepter ssi (x, y) B .
Alors x A ssi au moins la moiti des chemins de N (x) acceptent.
Rciproquement, si un langage A vrifie x A ssi au moins la moiti des chemins de
N (x) acceptent pour une certaine machine non dterministe polynomiale N , alors on
dfinit B = {(x, y) | N (x) accepte le long du chemin y} P. Ainsi on obtient comme
voulu x A |{y | (x, y) B}| (1/2)|||y| .
Exercice 9-N
Par la proposition 9-L, A PP ssi [x A g (x) 0] o g GapP.
Donc PPP PGapP en remplaant les appels A PP par des appels g GapP.
De plus, PGapP PP : en effet, on peut remplacer chaque appel une fonction g = f f
en oracle, o f , f P, par un appel f et un appel f .
Il reste montrer que PP PPP . Soit A P f o f P. Soit B = {(x, z) | f (x) z} :
B PP car (x, z) B g (x, z) 0 o g (x, z) = f (x)z GapP. On remplace alors un
appel f (u) par une recherche dichotomique de f (u) grce loracle B . Plus prcisment,
ds quune valeur f (u) [0, N ] est demande loracle, on effectue des appels loracle
B selon lalgorithme suivant :
Recherche-dichotomique(N )
z N /2, min 0, max N (invariant : f (u) [min, max]) ;
tant que (min < max) faire
renvoyer min.
la fin de la recherche dichotomique on obtient la valeur de f (u). Un appel f est donc
simul par un nombre polynomial dappels B , donc PP PPP .
Exercice 9-V Clairement SOMME PARTIELLE P. De plus, en changeant la rduction
de la proposition 3-AH par bi = 2 et t = 1 . . . 14 . . . 4, on la rend parcimonieuse, donc
3SAT pc SOMME PARTIELLE. Do la P-compltude.
380
Exercice 9-X
On note x = x1 . . . xn et y = y1 . . . yn o x1 et y1 sont les bits de poids
fort. La comparaison x y sexprime alors par la formule suivante :
n
i =1
xi yi
(xi yi ).
j <i
Exercice 9-AA
Il est clair que Modk 3SAT Modk P.
Pour la Modk P-difficult, soit A Modk P : x A f (x) 0 mod k o f P.
Par P-compltude de 3SAT pour les rductions parcimonieuses (proposition 9-T), on
a x A x 0 mod k o x est une formule en 3-CNF calculable en temps
polynomial. On en dduit que x A x Modk 3SAT, donc le problme Modk 3SAT
est Modk P-dur.
Si p Z[x], soit q, r N[x] tels que p(n) = q(n) r (n). Alors
p( f (x)) = q( f (x)) r ( f (x)) est la diffrence de deux fonctions P par la proposition 9AB, donc p( f ) GapP.
Exercice 9-AD
Exercice 10-D
Si A IP alors en rptant O(n k ) fois le protocole et en prenant la
k
rponse majoritaire, on rduit la probabilit derreur 2n comme pour BPP la proposition 6-F.
Exercice 10-F
On envoie n permutations alatoires dun des deux graphes choisi au
hasard, et le prouveur doit retrouver les n graphes permuts : le vrificateur accepte ssi le
prouveur se trompe pour aucun dentre eux. Si G1 nest pas isomorphe G2 , le prouveur
rpond correctement pour toutes les permutations avec probabilit 2n . Sinon il rpond
toujours correctement.
Exercice 10-L
Soit A IP et B pm A via f : x B f (x) A. Alors V et P
excutent le protocole pour A sur f (x).
Exercice 10-O
Voici lalgorithme NP pour L : simuler le protocole en devinant les
rponses du prouveur.
Si x L alors il existe un chemin acceptant. Si x L alors tous les chemins rejettent.
Donc L NP.
Exercice 10-Q On suit la preuve du lemme 10-J mais sans produits ni linarisations. Il
sagit darithmtiser linstance de MajSAT : x y 7 x + y xy , x y 7 x y et x 7 1 x ,
ce qui nous donne un polynme Q (x1 , . . . , xn ) de degr major par ||. On dfinit alors
381
a3 ...an
Q (r1 , x2 , a3 , . . . , an ) ;
S=
..
.
Q (a).
a{0,1}n
Il y a n tapes et la probabilit derreur chaque tape est < ||/ p < ||/2n < 1/(3n),
donc au total la probabilit derreur est < 1/3. Le prouveur doit tre capable de calculer
des sommes, ce quil peut faire dans FPP = FPPP .
Exercice 10-V On utilise les notations de la proposition 10-U. Par rptition parallle
(remarque 10-Y), dans MA on rduit la probabilit derreur 2|y|2 , donc :
x L =
x L =
382
Alors la moiti des conseils est limine chaque tape donc aucun conseil de taille n k
ne permet M n de dcider L=n correctement. De plus, L EXP puisquil suffit dnumrer
les conseils de taille n k et de simuler M n .
Exercice 11-G
On procde de mme qu la proposition 11-A mais on numre les
circuits de taille n log n : lespace ncessaire est n O(log n) .
Exercice 11-I
Comme indiqu dans lide de la dmonstration, nous expliquons
dabord comment adapter le thorme 8-P de Karp et Lipton au cas exponentiel, puis
comment adapter le thorme 11-E de Kannan.
NP
n O(1)
z {0, 1}2
n O(1)
t {0, 1}2
n O(1)
(x, y, z, t ) B
O(1)
Comme la preuve du thorme 8-P, tester si C est un bon circuit se fait avec deux
quantificateurs ( et ). Au final, on a exprim A sous la forme o les quantificateurs
portent sur des mots de taille exponentielle, donc A NEXPNP .
Pour Kannan : si NP P/poly alors en particulier NEXPNP P/poly. Sinon on dfinit L
ainsi :
x L C0 de taille 2n 2 log n
383
Les quantifications sur y {0, 1}n se font en ralit en temps exponentiel sans quantificaNP
teur, donc L NEXPNP = NEXPNP car NP P/poly. Or L SIZE(n log n ).
Exercice 11-K
|x|
A = {(x, 02 ) | x A} PSPACE (padding).
i .
i0 mod m
Exercice 11-AK Dans le lemme 11-AF, remplacer t 3 par 14t 2 , les majorations passent
encore ; de mme dans les rsultats suivants.
Exercice 12-E
Exercice 12-J
Soit ]0, 1/4[. Soit f : {0, 1}n {0, 1} alatoire, et C dsignera un
circuit. On dfinit la variable alatoire
XC = |{x {0, 1}n | C (x) = f (x)},
car
x, f
384
(en dautres termes, XC suit une loi binomiale de paramtres 2n et p = 1/2). Donc par une
gnralisation des bornes de Chernoff (proposition A-N) ou par lingalit de Hoeffding,
on a :
n2n
Pr(XC 2n1 + 2(1)n ) 22
2n
Or il y a 32 23n2 < 22
lit A-B de Boole :
n2n
< 22
Exercice B-A
1. Supposons que DSPACE(n c ) NP et soit A PSPACE : pour un certain k on a
k/c
A DSPACE(n k ). Alors A = {(x, 1|x| ) | x A} DSPACE(n c ) NP. Donc A NP.
2. Donc DSPACE(n c ) = NP implique PSPACE = NP = DSPACE(n c ), contradiction
avec le thorme de hirarchie en espace.
c
385
x A =
x A =
donc A RP. Idem pour coRP en remplaant q? par qa . Donc ZPP RP coRP.
Rciproquement, soit A RP coRP : il existe des machines M et M telles que
x A =
x A =
On dfinit une machine N qui simule M (x, r ) et M (x, r ) (o r, r sont des mots
alatoires indpendants), et dont ltat terminal est :
qa si M et M acceptent ;
q r si M et M rejettent ;
q? sinon.
Alors
x A =
x A =
donc A ZPP.
2. Soit A ZPP via M en temps n k . On rpte le calcul de M jusqu avoir un tat qa
ou q r . Alors
Pr(qa ou q r une rptition donne) 1/2
donc
E(temps)
= 1/2
2t
386
Exercice B-E Soit (M i ) une numration des machines de Turing probabilistes oracle
fonctionnant en temps polynomial. Pour > 0 petit fix, on note M i la machine qui
rpte (i + 2n + log ) fois M i (de sorte que, si M i a un comportement de type RP, alors
la probabilit derreur de M i sera 2i 2n ), et on note ti son temps dexcution.
Soit NiA la machine dterministe qui simule M i A en remplaant chaque bit alatoire par
une requte loracle des mots x1 , . . . , x ti (dans lordre) de taille ti2 (donc qui ne sont pas
demands par M i A). Si A est alatoire, alors les rponses de loracle sont des bits alatoires
et indpendants. Ainsi, si M iA est de type RPA et reconnat le langage L(M iA), alors
Pr(NiA(x) = [x L(M iA)]) < 2i 2n
A
donc
Donc avec grande probabilit, pour tout i les langages reconnus par NiA et par M iA concident. Puisque le raisonnement est valable pour tout , et que Ni est dterministe polynomiale, on en dduit que PA = RPA avec probabilit 1.
Exercice B-F
1. Si f () 1 alors f () A donc SAT.
2. Si 0 SAT alors SAT, et de mme pour 1 .
Si SAT alors a1 . . . an (a1 . . . an ) = 1. Si a1 = 0 alors 0 (a2 . . . an ) = 1 donc
0 SAT, sinon 1 (a2 . . . an ) = 1 donc 1 SAT.
3. Par rcurrence. Pour i = 0, cest vident car 0 = {}. Pour i + 1 :
si SAT alors par hypothse de rcurrence il existe i satisfaisable. Si 0
est satisfaisable alors f (0 ) 1 donc 0 ou une formule de mme image
par f se retrouve dans i+1 . Or f (0 ) = f ( ) = [0 SAT SAT]
donc il y a une formule satisfaisable dans i+1 .
De mme si cest 1 qui est satisfaisable ;
si SAT alors par hypothse de rcurrence, aucun i nest satisfaisable,
donc ni 0 ni 1 ne le sont, donc i +1 ne contient pas de formules satisfaisables.
4. Les lments ajouts i ont toutes leurs images par f distinctes et unaires (grce
aux deux tests u I et u 1 ). Or le nombre de telles images est major par
max||=|| | f ()| qui est polynomial en || par dfinition de f .
387
f (x, y) =
x
y
si x A
sinon.
f (x, y) =
x
y
si f (x, y) = y
sinon.
si f (g (0 ), g (1 )) = g (0 ) alors 0 ,
sinon 1 ;
388
8. L=n est vu comme un tournoi dont les sommets sont les mots de L=n et il y a un
arc de x y ssi f (x, y) = x .
Par le point 6 il existe Hn de cardinal au plus log |L=n | n tel que pour tout
s L=n \ Hn , il existe h s Hn tel que f (s, h s ) = s .
Soit s {0, 1}n :
si s L alors f (s, h s ) = h s car h s L ;
si s L \ Hn alors f (s , h s ) = s car il y a un arc de s h s ;
si s Hn alors f (s , s ) = s et on pose h s = s .
Donc s L f (s, h s ) = s .
9. Il suffit de donner en conseil les n mots de Hn : la taille totale du conseil est n 2 .
Puis sur lentre x on teste sil existe h Hn tel que f (x, h) = x .
10. Par rcurrence sur le nombre de sommets. Pour n = 1 cest vident. Pour n +1 : soit
a un sommet quelconque de G et H = G \ {a}. Pour un sommet x et un entier i ,
on note Vi (x) les voisins de x dans G distance i . Par hypothse de rcurrence,
il existe s H tel que H V2 (s ). Si a V2 (s ) alors le sommet s convient pour G .
Sinon, V1 (a) V1 (s ) (autrement dun voisin de s on pourrait accder a ), donc
V2 (a) = G car V1 (V1 (s )) = H .
11. Soit L P-sel. On considre le tournoi dont les sommets sont L=n et il y a un arc
de x y ssi f (x, y) = y . On donne comme conseil a le mot 1s (o s est dfini au
point prcdent) si L=n = ;, et 0n+1 sinon. Voici lalgorithme non dterministe avec
conseil a pour L sur lentre x de taille n :
si a = 0n+1 , rejeter ;
sinon deviner z {0, 1}n ;
accepter ssi f (s , z) = z et f (z, x) = x .
Si x L=n alors il existe un chemin de longueur 2 de s x donc on accepte. Sinon
f (s , z) = z (si z L) ou f (z, x) = x (si z L), donc on rejette. Ainsi L NP/(n +1).
Classes de complexit
rencontres dans ce livre
Nous donnons ici la liste de toutes les classes de complexit apparaissant dans cet ouvrage,
avec une brve description pour chacune.
En outre, les figures qui suivent dcrivent les principales classes. La figure D.1 reprsente
les classes dterministes et non dterministes. La figure D.2 les classes probabilistes, avec
quelques autres points de repre en gris. De mme pour la figure D.3 qui reprsente les
classes non uniformes.
Liste des classes de complexit
Voici une liste de ces classes par ordre alphabtique et lendroit o elles sont dfinies :
ACC0 , langages reconnus par une famille de circuits de taille polynomiale et de
profondeur constante avec portes modulo : dfinition 11-R.
AC0 , langages reconnus par une famille de circuits de taille polynomiale et de profondeur constante : dfinition 5-AK.
AM, langages reconnus par un protocole Arthur-Merlin : dfinition 10-S.
BPP, langages reconnus en temps polynomial par un algorithme probabiliste avec
faible probabilit derreur : dfinition 6-B.
BPTIME( f (n)), langages reconnus en temps O( f (n)) par un algorithme probabiliste
avec faible probabilit derreur : cf. section 6.2.4.
C / f (n), classe de complexit C avec conseil de taille f (n) : dfinition 5-A.
coRP, complmentaire dun langage RP : remarque 6-K.
coNL, complmentaire dun langage NL : proposition 4-AV.
coNP, complmentaire dun langage NP : proposition 2-AY.
390
NEXP
EXP
PSPACE
PPP
PH
coNP
NP
P
NL
391
AM
p2
p2
MA
BPP
coNP
coRP
RP
NP
ZPP
P
392
NP
BPP
P/poly
P
L
L/poly
NC1
TC0
ACC0
AC0
Figure D.3 Principales classes de complexit non uniformes rencontres dans ce livre.
393
et P coNP PH. Par ailleurs, on sait sparer PSPACE de NL, EXP de P et NEXP de NP.
Classes probabilistes
Concernant les classes probabilistes, voici un petit rsum des inclusions que nous avons
vues :
P RP BPP MA AM p2
P coRP BPP p2 p2
et RP NP.
Classes non uniformes
Concernant les classes non uniformes, voici un petit rsum des inclusions que nous avons
vues :
AC0 ACC0 TC0 NC1 L/poly P/poly
et BPP P/poly. Le rcent rsultat de Williams [Wil11] montre que NEXP ACC0 .
Indications pour
lenseignant
Quelques commentaires sur le contenu de cet ouvrage pourront aider lenseignant qui
souhaiterait utiliser ce livre. Il couvre un large spectre de la complexit algorithmique et
ne peut gure tre trait en un seul cours car il faudrait au moins une centaine dheures
pour tout enseigner. Nous donnons donc des suggestions de cours ci-dessous.
Cours introductif
Les cours introductifs la complexit, en L3 ou M1 par exemple, sont souvent coupls
une introduction la calculabilit, ce qui permet de mettre en commun une bonne partie
du chapitre 1 sur les machines de Turing. En vitant les dtails trop formels pour se consacrer lintuition du modle de calcul, ce chapitre peut tre trait en 3 heures environ si
lon se contente de la machine universelle avec ralentissement quadratique (cest--dire
quon ne montre pas la machine universelle avec ralentissement logarithmique du thorme 1-S).
Il reste donc en gnral de 8 12 heures consacrer la complexit. Un droulement
logique est certainement de traiter le chapitre 2 (en laissant ventuellement le thorme
de la lacune 2-L de ct) : si on doit rduire le temps consacr ce chapitre, en plus du
thorme de la lacune on supprimera la machine universelle non dterministe (proposition 2-AB) et le thorme 2-AI de hirarchie non dterministe, mais il semble difficile
dy passer moins de 3 heures.
Puis le chapitre 3 semble incontournable pour des tudiants en informatique. On nchappera pas au thorme 3-V de Cook-Levin de NP-compltude de SAT qui, selon les dtails
donns, peut prendre de 30 minutes une heure, et quelques exemples de rductions.
On pourra sans crainte supprimer le thorme 3-AQ de Mahaney. Mais l encore, mme
en sabrant le thorme 3-AK de Ladner, difficile de passer moins de 2 3 heures sur ce
chapitre.
396
397
section 11.3. Si le temps le permet, on pourra complter le cours avec une introduction
VP et VNP grce au livre de Brgisser [Br00].
Un autre thme possible concerne les protocoles interactifs, avec lintgralit du chapitre 10 et les bornes infrieures du chapitre 11 qui utilisent ces notions (par exemple
le thorme 11-F ou le corollaire 11-N). Avec un peu de travail, on pourra complter
lexpos par une preuve du thorme PCP et dautres applications linapproximabilit
de problmes doptimisation NP-complets (cf. section 10.3), grce au livre dArora et Barak [AB09] par exemple (pour les ides de la preuve, on pourra aussi se rfrer celui de
Goldreich [Gol08]). Au total, il y a largement de quoi remplir un cours complet.
On peut encore se consacrer aux bornes infrieures sur les circuits, en traitant le chapitre 11 en entier et en le compltant avec la preuve du thorme 11-Q sur les circuits
monotones pour CLIQUE, que lon trouvera par exemple dans le livre dHemaspaandra et
Ogihara [HO02] ou celui dArora et Barak [AB09]. Avec les rappels ncessaires sur les
circuits (boolens et arithmtiques, chapitre 5), sur la hirarchie polynomiale (chapitre 8)
et sur les protocoles interactifs (chapitre 10), on y passera de lordre de 15 heures. Dans
le temps qui reste, avec un peu de travail on pourra aborder des rsultats plus rcents
comme la borne infrieure de Williams [Wil11] (NEXP ACC0 ), ou dautres bornes infrieures sur les circuits arithmtiques (circuits monotones, circuits multilinaires, etc., voir
lexcellent survol de Shpilka et Yehudayoff [SY10]).
Enfin, on peut donner un cours sur la drandomisation et ses liens avec les bornes infrieures non uniformes. Un contenu cohrent serait de faire quelques rappels sur les algorithmes probabilistes (chapitre 6) et sur le problme didentit de polynmes (section 6.3),
de donner quelques bornes infrieures non uniformes du chapitre 11, de donner quelques
exemples de drandomisation grce au livre dAlon et Spencer [AS04] (cf. section 12.1),
et enfin de traiter le chapitre 12 en entier. Avec les rappels ncessaires sur les circuits et
les algorithmes probabilistes notamment, il y a du matriel pour remplir un cours de 25
heures. Pour le thorme 12-BA de Kabanets et Impagliazzo, dfaut de plus de temps
on sera malheureusement oblig dadmettre quelques rsultats (le thorme 9-AI de Toda
par exemple).
Bibliographie
[AB09]
[AB87]
[Adl78]
[AKS04]
[Ale+79]
[Aro+92]
[AS04]
[AS92]
[AW08]
[Bab85]
[BBS09]
[BDG88]
[Ber67]
[Ber78]
Sanjeev Arora et Boaz Barak. Computational Complexity - A Modern Approach. Cambridge University Press, 2009, p. IXXIV, 1579 (cf. p. i, xiii,
281, 297, 397).
Noga Alon et Ravi B. Boppana. The monotone circuit complexity of
Boolean functions . In : Combinatorica 7.1 (1987), p. 122 (cf. p. 297).
Leonard M. Adleman. Two Theorems on Random Polynomial Time .
In : FOCS. 1978, p. 7583 (cf. p. 163).
Manindra Agrawal, Neeraj Kayal et Nitin Saxena. PRIMES is in P . In :
Annals of mathematics 160.2 (2004), p. 781793 (cf. p. 41, 164, 318).
Romas Aleliunas, Richard M. Karp, Richard J. Lipton, Lszl Lovsz et
Charles Rackoff. Random Walks, Universal Traversal Sequences, and the
Complexity of Maze Problems . In : FOCS. 1979, p. 218223 (cf. p. 319).
Sanjeev Arora, Carsten Lund, Rajeev Motwani, Madhu Sudan et Mario
Szegedy. Proof Verification and Hardness of Approximation Problems .
In : FOCS. 1992, p. 1423 (cf. p. 281, 285).
Noga Alon et Joel H. Spencer. The Probabilistic Method. Wiley, 2004 (cf.
p. 319, 397).
Sanjeev Arora et Shmuel Safra. Probabilistic Checking of Proofs ; A New
Characterization of NP . In : FOCS. 1992, p. 213 (cf. p. 281).
Scott Aaronson et Avi Wigderson. Algebrization : a new barrier in complexity theory . In : STOC. 2008, p. 731740 (cf. p. 264).
Lszl Babai. Trading Group Theory for Randomness . In : STOC. 1985,
p. 421429 (cf. p. 248).
Lszl Babai, Robert Beals et kos Seress. Polynomial-time theory of
matrix groups . In : STOC. 2009, p. 5564 (cf. p. 167).
Jos L. Balczar, Josep Daz et Joaquim Gabarr. Structural complexity 1.
T. 11. Springer, 1988 (cf. p. xii).
Elwyn R. Berlekamp. Factoring Polynomials Over Finite Fields . In : Bell
System Technical Journal 46 (1967), p. 18531859 (cf. p. 336).
Piotr Berman. Relationship Between Density and Deterministic Complexity of NP-Complete Languages . In : ICALP. T. 62. 1978, p. 6371
(cf. p. 365).
400
[BFL91]
[BFT98]
[BGS75]
[BH77]
[BHZ87]
[BM88]
[Bor72]
[BRS95]
[BS83]
[Br00]
[Car08]
[Chu36]
[Cob65]
[Coo04]
[Coo71]
[Coo72]
Bibliographie
Lszl Babai, Lance Fortnow et Carsten Lund. Non-Deterministic Exponential Time has Two-Prover Interactive Protocols . In : Computational
Complexity 1 (1991), p. 340 (cf. p. 294, 296).
Harry Buhrman, Lance Fortnow et Thomas Thierauf. Nonrelativizing
Separations . In : IEEE Conference on Computational Complexity. 1998,
p. 812 (cf. p. 292, 294).
Theodore P. Baker, John Gill et Robert Solovay. Relativizatons of the
P =?NP Question . In : SIAM J. Comput. 4.4 (1975), p. 431442 (cf.
p. 183).
Leonard Berman et Juris Hartmanis. On Isomorphisms and Density of
NP and Other Complete Sets . In : SIAM J. Comput. 6.2 (1977), p. 305
322 (cf. p. 180).
Ravi B. Boppana, Johan Hstad et Stathis Zachos. Does coNP Have
Short Interactive Proofs ? In : Inf. Process. Lett. 25.2 (1987), p. 127132
(cf. p. 280).
Lszl Babai et Shlomo Moran. Arthur-Merlin Games : A Randomized
Proof System, and a Hierarchy of Complexity Classes . In : J. Comput. Syst.
Sci. 36.2 (1988), p. 254276 (cf. p. 267).
Allan Borodin. Computational Complexity and the Existence of Complexity Gaps . In : J. ACM 19.1 (1972), p. 158174 (cf. p. 38).
Richard Beigel, Nick Reingold et Daniel A. Spielman. PP Is Closed
under Intersection . In : J. Comput. Syst. Sci. 50.2 (1995), p. 191202 (cf.
p. 223).
Walter Baur et Volker Strassen. The Complexity of Partial Derivatives .
In : Theor. Comput. Sci. 22 (1983), p. 317330 (cf. p. 304, 310).
Peter Brgisser. Completeness and Reduction in Algebraic Complexity Theory.
Springer, 2000 (cf. p. 397).
Olivier Carton. Langages formels, calculabilit et complexit. 240 pages. Vuibert, 2008 (cf. p. xiii).
Alonzo Church. A Note on the Entscheidungsproblem . In : J. Symb.
Log. 1.1 (1936), p. 4041 (cf. p. x, 1).
Alan Cobham. The Intrinsic Computational Difficulty of Functions . In :
Logic, Methodology and Philosophy of Science, proceedings of the second International Congress, held in Jerusalem, 1964. 1965 (cf. p. x, 39).
S. Barry Cooper. Computability Theory. Chapman & Hall/CRC Mathematics, 2004 (cf. p. xiii).
Stephen A. Cook. The Complexity of Theorem-Proving Procedures . In :
STOC. 1971, p. 151158 (cf. p. xi, 70).
Stephen A. Cook. A Hierarchy for Nondeterministic Time Complexity .
In : STOC. 1972, p. 187192 (cf. p. 52).
Bibliographie
[Cor+10]
401
402
[GS86]
[GS92]
[Hs97]
[Hel84]
[HO02]
[HS65]
[HS66]
[IKW01]
[Imm88]
[Imm99]
[IW97]
[JP02]
[Kan81]
[Kan83]
[Kar72]
[KI03]
[KL82]
[Koz80]
Bibliographie
Shafi Goldwasser et Michael Sipser. Private Coins versus Public Coins
in Interactive Proof Systems . In : STOC. 1986, p. 5968 (cf. p. 272).
Peter Gemmell et Madhu Sudan. Highly Resilient Correctors for Polynomials . In : Inf. Process. Lett. 43.4 (1992), p. 169174 (cf. p. 336).
Johan Hstad. Some Optimal Inapproximability Results . In : STOC.
1997, p. 110 (cf. p. 281).
Hans Heller. On Relativized Polynomial and Exponential Computations . In : SIAM J. Comput. 13.4 (1984), p. 717725 (cf. p. 186).
Lane A. Hemaspaandra et Mitsunori Ogihara. The Complexity Theory
Companion. Springer, 2002 (cf. p. xii, 225, 366, 367, 372, 397).
Juris Hartmanis et Richard E. Stearns. On the computational complexity of algorithms . In : Transactions of the American Mathematical Society
117 (1965), p. 285306 (cf. p. x, 32, 33, 36).
F. C. Hennie et Richard E. Stearns. Two-Tape Simulation of Multitape
Turing Machines . In : J. ACM 13.4 (1966), p. 533546 (cf. p. 21, 36).
Russell Impagliazzo, Valentine Kabanets et Avi Wigderson. In Search
of an Easy Witness : Exponential Time vs. Probabilistic Polynomial
Time . In : IEEE Conference on Computational Complexity. 2001, p. 212
(cf. p. 350).
Neil Immerman. Nondeterministic Space is Closed Under Complementation . In : SIAM J. Comput. 17.5 (1988), p. 935938 (cf. p. 125).
Neil Immerman. Descriptive Complexity. Springer, 1999 (cf. p. xiii).
Russell Impagliazzo et Avi Wigderson. P = BPP if EXP Requires Exponential Circuits : Derandomizing the XOR Lemma . In : STOC. 1997,
p. 220229 (cf. p. 347).
Jean Jacod et Phillip Protter. Lessentiel en thorie des probabilits. Cassini,
2002 (cf. p. 355).
Ravi Kannan. A Circuit-Size Lower Bound . In : FOCS. 1981, p. 304
309 (cf. p. 288, 290).
Ravi Kannan. Alternation and the Power of Nondeterminism . In :
STOC. 1983, p. 344346 (cf. p. 207).
Richard M. Karp. Reducibility Among Combinatorial Problems . In :
Complexity of Computer Computations. 1972, p. 85103 (cf. p. xi, 70, 194).
Valentine Kabanets et Russell Impagliazzo. Derandomizing polynomial
identity tests means proving circuit lower bounds . In : STOC. 2003,
p. 355364 (cf. p. 353).
Richard M. Karp et Richard Lipton. Turing machines that take advice .
In : Enseign. Math 28.2 (1982), p. 191209 (cf. p. 128, 141, 204, 295).
Dexter Kozen. Indexings of Subrecursive Classes . In : Theor. Comput.
Sci. 11 (1980), p. 277301 (cf. p. 190).
Bibliographie
[KV87]
[KZ97]
[Lad75a]
[Lad75b]
[Lau83]
[Lav08]
[Lev73]
[Lip75]
[LR96]
[Mah82]
[Mil76]
[Mor85]
[MS72]
[Mul54]
[Nep70]
[NW88]
403
Marek Karpinski et Rutger Verbeek. On the Monte Carlo Space
Constructible Functions and Seperation Results for Probabilistic
Complexity Classes . In : Inf. Comput. 75.2 (1987), p. 178189
(cf. p. 160).
Howard J. Karloff et Uri Zwick. A 7/8-Approximation Algorithm for
MAX 3SAT ? In : FOCS. 1997, p. 406415 (cf. p. 285).
Richard E. Ladner. On the Structure of Polynomial Time Reducibility .
In : J. ACM 22.1 (1975), p. 155171 (cf. p. 86).
Richard E. Ladner. The circuit value problem is log space complete for
P . In : SIGACT News 7.1 (1975), p. 1820 (cf. p. 140).
Clemens Lautemann. BPP and the Polynomial Hierarchy . In : Inf. Process. Lett. 17.4 (1983), p. 215217 (cf. p. 201).
Ivan Lavalle. Complexit et algorithmique avance : Une introduction. ditions Hermann, 2008 (cf. p. xiii).
Leonid Levin. Universal sequential search problems . In : Problemy Peredachi Informatsii 9.3 (1973), p. 115116 (cf. p. xi, 70, 94).
Richard J. Lipton. Polynomials with 0-1 Coefficients that Are Hard to
Evaluate . In : FOCS. 1975, p. 610 (cf. p. 304).
Richard Lassaigne et Michel de Rougemont. Logique et complexit. Herms, 1996 (cf. p. xiii).
Stephen R. Mahaney. Sparse Complete Sets of NP : Solution of a Conjecture of Berman and Hartmanis . In : J. Comput. Syst. Sci. 25.2 (1982),
p. 130143 (cf. p. 90).
Gary L. Miller. Riemanns Hypothesis and Tests for Primality . In : J.
Comput. Syst. Sci. 13.3 (1976), p. 300317 (cf. p. 318).
Jacques Morgenstern. How to compute fast a function and all its derivatives : A variation on the theorem of Baur-Strassen . In : ACM SIGACT
News 16.4 (1985), p. 6062 (cf. p. 305).
Albert R. Meyer et Larry J. Stockmeyer. The Equivalence Problem for
Regular Expressions with Squaring Requires Exponential Space . In : SWAT
(FOCS). 1972, p. 125129 (cf. p. 193, 194).
David E. Muller. Application of Boolean algebra to switching circuit
design and to error detection . In : Electronic Computers, Transactions of the
IRE Professional Group on 3 (1954), p. 612 (cf. p. 332).
V. A. Nepomnjai
. Rudimentary predicates and Turing computations .
In : Dokl. Akad. Nauk SSSR 195 (1970). En russe ; traduction anglaise dans
Soviet Mathematics Doklady, Vol. 11, pp. 16421645, 1970., p. 282284
(cf. p. 207).
Noam Nisan et Avi Wigderson. Hardness vs. Randomness (Extended
Abstract) . In : FOCS. 1988, p. 211 (cf. p. 325).
404
[Odi92]
[OH93]
[Pap94]
[Rab80]
[Raz85]
[Raz87]
[Rei05]
[Rey04]
[Sav70]
[Sch76]
[Sch78]
[Sch80]
[SFM78]
[Sha90]
[She92]
[SHL65]
[Sip83]
Bibliographie
Piergiorgio Odifreddi. Classical recursion theory, I and II. Elsevier, 1992
(cf. p. xiii).
Mitsunori Ogiwara et Lane A. Hemachandra. A Complexity Theory for
Feasible Closure Properties . In : J. Comput. Syst. Sci. 46.3 (1993), p. 295
325 (cf. p. 225).
Christos H. Papadimitriou. Computational complexity. Addison-Wesley,
1994, p. IXV, 1523 (cf. p. xii).
Michael O. Rabin. Probabilistic algorithm for testing primality . In : Journal of Number Theory 12.1 (1980), p. 128138 (cf. p. 318).
Alexander A. Razborov. Lower bounds for the monotone complexity of
some Boolean functions . In : Soviet Math. Dokl. 31.2 (1985), p. 354357
(cf. p. 297).
Alexander A. Razborov. Lower bounds on the size of bounded depth
circuits over a complete basis with logical addition . In : Math. notes of the
Academy of Sciences of the USSR 41.4 (1987), p. 333338 (cf. p. 299).
Omer Reingold. Undirected ST-connectivity in log-space . In : STOC.
2005, p. 376385 (cf. p. 319).
Jean-Franois Rey. Calculabilit, complexit et approximation. 363 pages.
Vuibert, 2004 (cf. p. xiii).
Walter J. Savitch. Relationships Between Nondeterministic and Deterministic Tape Complexities . In : J. Comput. Syst. Sci. 4.2 (1970), p. 177
192 (cf. p. 118).
Arnold Schnhage. An elementary proof for Strassens degree bound .
In : Theoretical Computer Science 3.2 (1976), p. 267272 (cf. p. 305).
Claus-Peter Schnorr. Improved Lower Bounds on the Number of Multiplications/Divisions which are Necessary of Evaluate Polynomials . In :
Theor. Comput. Sci. 7 (1978), p. 251261 (cf. p. 304, 310).
Jack T. Schwartz. Fast Probabilistic Algorithms for Verification of Polynomial Identities . In : J. ACM 27.4 (1980), p. 701717 (cf. p. 333).
Joel I. Seiferas, Michael J. Fischer et Albert R. Meyer. Separating Nondeterministic Time Complexity Classes . In : J. ACM 25.1 (1978), p. 146
167 (cf. p. 52).
Adi Shamir. IP = PSPACE . In : FOCS. 1990, p. 1115 (cf. p. 252).
Alexander Shen. IP = PSPACE : Simplified Proof . In : J. ACM 39.4
(1992), p. 878880 (cf. p. 252).
Richard Edwin Stearns, Juris Hartmanis et Philip M. Lewis. Hierarchies of memory limited computations . In : SWCT (FOCS). 1965, p. 179
190 (cf. p. 102).
Michael Sipser. A Complexity Theoretic Approach to Randomness . In :
STOC. 1983, p. 330335 (cf. p. 201, 272).
Bibliographie
[Sip97]
[SM73]
[Smo87]
[Str73a]
[Str73b]
[Str74]
[STV99]
[Sud96]
[SY10]
[Sze87]
[Tod89]
[Tra64]
[Tur37]
[Val79a]
[Val79b]
[Vin05]
[VV86]
[Wil07]
405
Michael Sipser. Introduction to the theory of computation. PWS Publishing
Company, 1997, p. IXV, 1396 (cf. p. xii).
Larry J. Stockmeyer et Albert R. Meyer. Word Problems Requiring Exponential Time : Preliminary Report . In : STOC. 1973, p. 19 (cf. p. 110).
Roman Smolensky. Algebraic Methods in the Theory of Lower Bounds
for Boolean Circuit Complexity . In : STOC. 1987, p. 7782 (cf. p. 299).
Volker Strassen. Die Berechnungskomplexitt von elementarsymmetrischen Funktionen und von Interpolationskoeffizienten . In : Numerische
Mathematik 20.3 (1973), p. 238251 (cf. p. 305, 307).
Volker Strassen. Vermeidung von Divisionen . In : Journal fr die reine
und angewandte Mathematik 264.2 (1973), p. 184202 (cf. p. 150).
Volker Strassen. Polynomials with Rational Coefficients Which are Hard
to Compute . In : SIAM J. Comput. 3.2 (1974), p. 128149 (cf. p. 304).
Madhu Sudan, Luca Trevisan et Salil P. Vadhan. Pseudorandom Generators Without the XOR Lemma (Extended Abstract) . In : STOC. 1999,
p. 537546 (cf. p. 340, 347).
Madhu Sudan. Maximum Likelihood Decoding of Reed Solomon
Codes . In : FOCS. 1996, p. 164172 (cf. p. 335, 340).
Amir Shpilka et Amir Yehudayoff. Arithmetic Circuits : A survey of
recent results and open questions . In : Foundations and Trends in Theoretical Computer Science 5.3-4 (2010), p. 207388 (cf. p. 397).
Rbert Szelepcsnyi. The method of focing for nondeterministic automata . In : Bulletin of the EATCS 33 (1987), p. 9699 (cf. p. 125).
Seinosuke Toda. On the Computational Power of PP and P . In : FOCS.
1989, p. 514519 (cf. p. 226).
Boris Trakhtenbrot. Turing Computations with Logarithmic Delay .
In : Algebra i Logika 3.4 (1964), p. 3348 (cf. p. 38).
Alan M. Turing. On Computable Numbers, with an Application to the
Entscheidungsproblem . In : Proceedings of the London Mathematical Society
s2-42.1 (1937), p. 230265 (cf. p. x, 1, 14, 43).
Leslie G. Valiant. The Complexity of Computing the Permanent . In :
Theor. Comput. Sci. 8 (1979), p. 189201 (cf. p. 238).
Leslie G. Valiant. The Complexity of Enumeration and Reliability Problems . In : SIAM J. Comput. 8.3 (1979), p. 410421 (cf. p. 212).
N. V. Vinodchandran. A note on the circuit complexity of PP . In :
Theor. Comput. Sci. 347.1-2 (2005), p. 415418 (cf. p. 291).
Leslie G. Valiant et Vijay V. Vazirani. NP is as Easy as Detecting Unique
Solutions . In : Theor. Comput. Sci. 47.3 (1986), p. 8593 (cf. p. 227, 228).
Ryan Williams. Time-Space Tradeoffs for Counting NP Solutions Modulo Integers . In : IEEE Conference on Computational Complexity. 2007,
p. 7082 (cf. p. 207).
406
[Wil11]
[Wol06]
[WW86]
[Yao82]
[k83]
[Zip79]
Bibliographie
Ryan Williams. Non-uniform ACC Circuit Lower Bounds . In : IEEE
Conference on Computational Complexity. 2011, p. 115125 (cf. p. 304, 393,
397).
Pierre Wolper. Introduction la calculabilit. 3me dition. Dunod, 2006
(cf. p. xiii, 29).
K. Wagner et G. Wechsung. Computational Complexity. Springer, 1986
(cf. p. xii).
Andrew Chi-Chih Yao. Theory and Applications of Trapdoor Functions
(Extended Abstract) . In : FOCS. 1982, p. 8091 (cf. p. 321).
Stanislav k. A Turing Machine Time Hierarchy . In : Theor. Comput.
Sci. 26 (1983), p. 327333 (cf. p. 52).
Richard Zippel. Probabilistic algorithms for sparse polynomials . In : EUROSAM. T. 72. 1979, p. 216226 (cf. p. 333).
Index
1Lit3SAT (problme), 79
NP-complet, 79
3-CNF, 76
3SAT (problme), 77
NP-complet, 77
NL-complet, 115
ACC0 , 298
C / f (n), 128
408
Index
Drandomisation, 318
Diagonalisation, 170, 183, 191
retarde, 52
CLIQUE (problme), 218
P-complet, 218
P, 212
3SAT (problme), 218
P-complet, 218
Difficult, 67
Difficult dune fonction
dans le pire cas, 324
en moyenne, 324
DSPACE, 98
DTIME, 32
E, 39
66
NP-complet, 80
F
G
GapP, 213
Half-3SAT, 80
Immerman-Szelepcsnyi (thorme),
125
Impagliazzo-Kabanets-Wigderson
(thorme), 350
Impagliazzo-Wigderson (thorme),
347
Imprdictibilit, 320
Indcidabilit, 2930
IP, 248
IP=PSPACE, voir Shamir (thorme)
ISO (problme), 250
probablement pas NP-complet,
280
Isomorphisme de graphe, voir ISO (problme)
L, 99
Index
Lacune (thorme), 38
Ladner (thorme), 86
Langage, 4
MA, 265
MA[k], 265
Machine de Turing
oracle, 173
code, 1415
dterministe, 510
numration, 86, 170
non dterministe, 4345
probabiliste, 155
simulation, 15
universelle dterministe, 19, 21
universelle non dterministe, 46
MAEXP , 293
Mahaney (thorme), 90, 206
MajSAT (problme), 219
PP-complet, 219
Max3SAT (problme), 283
inapproximabilit, 284
Modk P, 216
Motif combinatoire, 326
NC , 144
NE, 54
NEXP, 54
Nisan-Wigderson
gnrateur, 327
thorme, 325
NL, 109
NP, 54
NP-complet, 68, 72, 77, 79, 80, 82, 83
NSPACE, 103
NTIME, 49
Oracle, 173
alatoire, 365
Ordre lexicographique, xv
409
P, 39
P = NP ? , 59
P/poly, 130, 141, 180, 181
P-slectif (langage), 366
Padding, 59, 363
P, 216
PCP, 281
inapproximabilit, voir Max3SAT
(inapproximabilit)
thorme, 283
PERMANENT{0,1} (problme), 238
P-complet, 238
Permanent
polynme, 236
problme, voir PERMANENT{0,1}
(problme)
PH, 194
dans PP , voir Toda (thorme)
p
i , 194
PP, 215
clture par soustraction ?, 225
clture par union, 223
PRIMALIT, 318
dans P, voir Agrawal, Kayal et
Saxena (thorme)
Probabilistically checkable proofs, voir
PCP
Problme dvaluation, 4
Problme de dcision, 4
Protocoles interactifs
Arthur-Merlin, voir Arthur-Merlin
(classes)
bits alatoires publics ou privs,
272
IP, voir IP
Prouveur, 248
PSPACE, 109
410
Razborov
circuits monotones pour CLIQUEn,k ,
297
thorme de Razborov-Smolensky,
299
Rduction
de comptage entre fonctions, 217
many-one en espace logarithmique, 113
many-one polynomiale, 64
parcimonieuse, 217
Turing polynomiale, 182
Reingold (thorme), 319
Relativisation, 175
de EXP = NP , 186
de IP = PSPACE , 263
de P = NP , 183
RP, 156
rduction derreur, 157
SAT (problme), 72
NP-complet, 72
SATi (problme), 200
pi -complet, 200
Index
TC0 , 144
U
V
P-complet, 141
Vrificateur, 248
Vermeidung von Divisionen, voir Strassen (limination des divisions)
Vinodchandran (thorme), 291
Y
Z
ZPP, 364