• Aucun résultat trouvé

Quelques résultats pour se faire la main

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 196-200)

Oracles et limites de la diagonalisation

7.3 Quelques résultats pour se faire la main

Pour s’habituer à la notion d’oracle, nous allons voir dans cette section quelques résul-tats simples qui nous resserviront par la suite. Le premier lemme montre qu’un oracle calculable en temps polynomial ne sert à rien pour les classes usuelles.

7-M Lemme

SoitC l’une des classesP,NP,EXPouNEXP. AlorsCP=C.

Démonstration Si l’oracle est A P, on peut simuler le calcul de CA sans oracle, puisque sur une question de la forme «aA? » il suffit de décider la réponse sans oracle, en temps polynomial en|a|.

SiC=PouNP,|a|est polynomiale donc le temps de calcul de la réponse est polyno-mial et on reste dans la classeC.

SiC =EXPouNEXP,|a|est2nO(1) donc le temps de calcul de la réponse est2nO(1) et

on reste dans la classeC. ⊓⊔

Le résultat suivant illustre le fait qu’une machineEXPpeut demander à son oracle une question de taille exponentielle, ce qui lui confère beaucoup de puissance. La preuve utilise un argument depaddingcomme on en a déjà vu à la proposition2-AUpar exemple.

7.3. Quelques résultats pour se faire la main 177 7-N Lemme

NEXPEXPNP.

Démonstration SoitANEXPreconnu par une machine non déterministe en temps 2nk. Alors la version « délayée »A˜={(x, 12|x|k)|xA}est dansNP(padding). Voici une machineEXPavec oracleA˜pour reconnaître le langageAsur l’entréex:

– calculeru= (x, 12|x|k); – accepterssiuA˜.

Cette machine fonctionne en temps2nk (le temps de calculeru) avec oracleNP, donc

AEXPNP. ⊓⊔

Lorsqu’une classe admet un langage complet, donner ce langage en oracle suffit pour avoir toute la puissance de la classe, comme on le voit grâce au lemme suivant.

7-O Lemme

SiAest un problème C-complet pour les réductions many-one en temps polynomial, alorsPC =PA,NPC =NPA,EXPC =EXPAetNEXPC =NEXPA.

Démonstration Nous montrons le résultat seulement pour NP, les autres cas étant si-milaires. SoitBNPC : par définition,BNPC pour un langageC∈ C. On appelle N la machine non déterministe polynomiale avec oracleC pourB.

ParC-complétude deA, il existe une réduction polynomiale f telle que xC ⇐⇒ f(x)A.

Voici donc le fonctionnement d’une machineNP avec oracleApour B sur l’entrée x: simuler le fonctionnement deNC(x), en remplaçant les questions à l’oracle de la forme «uC? » par le calcul de f(u)suivi de la question « f(u)A? ». Puisque f est calculable en temps polynomial, on reste dansNP; et la machine accepte bienB

par définition de la réductionf. ⊓⊔

Le résultat suivant montre qu’un oraclePSPACEdonne la même puissance àPetNP. 7-P Lemme

PPSPACE=NPPSPACE=PSPACE

178 Chapitre 7. Oracles et limites de la diagonalisation Démonstration Il est clair quePSPACEPPSPACENPPSPACE, donc il suffit de montrer

queNPPSPACEPSPACE.

SoitNune machineNPavec oracleAPSPACE. Son fonctionnement peut être simulé dansPSPACEainsi sur l’entréex:

– énumérer tous les chemins deNA(x)et pour chacun d’eux :

dès que N demande à son oracle une question « u A? », décider siuAet continuer le calcul en conséquence ; – accepterssi l’un des chemins a accepté.

PuisqueN pose à son oracleAseulement des questions de taille polynomiale, décider siuAse fait en espace polynomial. Chaque chemin est de taille polynomiale donc l’énumération se fait aussi en espace polynomial. Au total, la machineNAest simulée

en espace polynomial. ⊓⊔

Le dernier résultat est un peu plus subtil. Avant de l’aborder, il convient de comprendre pourquoi il n’est pas évident (et probablement faux) queNPNP=NP. Le point crucial est que l’oracle « peut être utilisé à la fois positivement et négativement » : c’est-à-dire que ses réponses peuvent (bien sûr) être positives ou négatives. En termes de certificats, une réponse positive ne pose pas de problème puisqu’il existe un certificat, mais une réponse négative n’a pas de certificat et on ne peut donc vérifier qu’il s’agit de la bonne réponse, ce qui pose problème pour mettre le langage dans NP (cf. figure 7.3). C’est la même différence qu’entreNPetcoNP(d’ailleurs, on a bien sûrcoNPNPNP). Cette remarque sera à la base du prochain chapitre sur la hiérarchie polynomiale.

calculNP

oracle uSAT?

0 0 0 . . . 0

u̸∈SAT

aucun chemin acceptant : quel certificat ?

Figure 7.3 – Tentative de simulation d’une machineNPavec oracleNP.

Le lemme suivant montre que siNPest clos par complément, alors en effetNPNP=NP.

7.3. Quelques résultats pour se faire la main 179 7-Q Lemme

SiNP=coNPalorsNPNP=NP.

Idée de la démonstration Afin de simuler dansNPle calcul de l’oracle, on utilisera le certificat issu deNPlorsque la réponse de l’oracle est positive, et celui issu decoNP lorsqu’elle est négative.

Démonstration SoitLNPNPdécidé par une machine non déterministe polynomiale N avec oracleANP. PuisqueNP=coNP,Apossède les deux caractérisations sui-vantes, où p(n)est un polynôme etB,Bdeux langages deP:

xAssi∃y∈ {0, 1}p(|x|)(x,y)B; – x̸∈Assi∃y∈ {0, 1}p(|x|)(x,y)B.

Lors du calculNA(x), sur chaque chemin de calculuun certain nombre de questions a1, . . . ,ak sont posées à l’oracleA. Pour décider dansNPsi xB, il s’agit de deviner un chemin acceptant de la machineN, de deviner les réponses de l’oracle le long de ce chemin, et pour chaque questionai de deviner le certificaty ouyselon siaiA ouai̸∈A.

Le calculNA(x)prend un tempsq(|x|)pour un certain polynômeq(n), et il fait donc au plusq(|x|)appels à son oracle. Les certificats pourBauront alors la forme

(u,b1,y1,y1, . . . ,bq(n),yq(n),yq(n)),

uest un mot de tailleq(n)(un chemin deN),yietyisont des mots de taillep(q(n)) (un certificat pourAoucApour un mot de tailleq(n)), etbi sont des bits.

Voici la machineNPpourLsur l’entréex:

– deviner(u,b1,y1,y1, . . . ,bq(n),yq(n),yq(n) );

– simulerNA(x)le long du cheminuen répondant aux questions a1, . . . ,aq(n)posées à l’oracle parb1, . . . ,bq(n);

– pour tout1iq(n), vérifier que :

si bi=1alors(ai,yi)B,

si bi=0alors(ai,yi)B;

accepterssi toutes ces vérifications sont positives et le chemin simulé accepte.

Cette machine non déterministe fonctionne bien en temps polynomial.

Si xLalors il existe un chemin u deNA(x)acceptant ; le long de ce chemin, des questionsa1, . . . ,aq(n)sont posées àA, donnant des réponsesb1, . . . ,bq(n); sibi=1alors aiAdonc il existe un certificatyi tel que(ai,yi)B, et sibi=0alorsai̸∈Adonc il existe un certificatyitel que(ai,yi)B. Ainsi, la machineNPdécrite ci-dessus a un chemin acceptant.

180 Chapitre 7. Oracles et limites de la diagonalisation Réciproquement, s’il existe un chemin acceptant(u,b1,y1,y1, . . . ,bq(n),yq(n),yq(n) ), cela signifie que toutes les réponsesbidevinées sont correctes car elles sont certifiées par les certificatsyi ouyi, et donc le cheminusimulé correspond à un vrai chemin acceptant

deNA(x). DoncxL. ⊓⊔

. 7-R Exercice

Montrer queBPPBPP=BPP(cf. remarque7-Lpour la définition deBPPBPP).

Indication : penser à la réduction d’erreur.

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 196-200)