• Aucun résultat trouvé

Un exemple important

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 183-187)

Algorithmes probabilistes

6.3 Un exemple important

. 6-P Exercice

Faire la démonstration complète de ce théorème.

6.2.5 Circuits et algorithmes probabilistes

Nous verrons au chapitre12des liens étroits entre bornes inférieures non uniformes et al-gorithmes probabilistes. Nous nous contentons ici de montrer que les circuits de taille po-lynomiale peuvent simuler des algorithmes probabilistes polynomiaux, un résultat d’Ad-leman [Adl78].

6-Q Théorème (Adleman, 1978)

BPPP/poly

Idée de la démonstration En réduisant suffisamment la probabilité d’erreur d’un algo-rithme probabiliste, on montre qu’il existe une même suite r∈ {0, 1}p(n) de bits aléa-toires donnant la bonne réponse pour toutes les entrées x de taillen. Il suffit alors de donner cette suiter en conseil et de simuler de manière déterministe l’algorithme probabiliste le long de cette suite de bits aléatoires.

Démonstration Soit ABPP sur l’alphabetΣ, et on note αune constante telle que 2α|Σ|. En réduisant la probabilité d’erreur par la proposition6-F, il existeBPet un polynôme p(n)tels que pour toute entréexde taillen:

¨xA = Prr∈{0,1}p(n)((x,r)̸∈B)<2−αn|Σ|−n; x̸∈A = Prr∈{0,1}p(n)((x,r)B)<2−αn|Σ|−n.

En d’autres termes, pour toutx de taillen on aPrr(xA ⇐⇒ (x,r)̸∈B)<|Σ|n. Puisqu’il y a|Σ|nmots de taillen, on en déduit par l’inégalité de Boole (proposition A-B) que

Prr (∃xΣn(xA⇐⇒ (x,r)̸∈B))<|Σ|n· |Σ|−n=1.

Ainsi,Prr(∀xΣn (xA ⇐⇒ (x,r)B))>0donc il existe r0∈ {0, 1}p(n) tel que

∀x Σn (x A ⇐⇒ (x,r0)B). C’est exactement la caractérisation d’un langage

dansP/polyavec conseilr0. ⊓⊔

6.3 Un exemple important

Outre l’exemple introductif de l’algorithme probabiliste de tri rapide, il nous faut décrire un autre problème important que nous retrouverons au chapitre12.

164 Chapitre 6. Algorithmes probabilistes

6.3.1 Test de circuits arithmétiques

La question «BPP ̸= P? », c’est-à-dire savoir si les probabilités accélèrent vraiment le calcul, est toujours ouverte. Mais la grande majorité des problèmes naturels deBPPque l’on connaît sont déjà dansP. À titre d’exemple, le problèmePRIMALITÉ(décider si un entier donné en binaire est premier, cf. exemple2-R) est longtemps resté un problème deBPP candidat à être hors deP; mais Agrawal, Kayal et Saxena [AKS04] ont finale-ment montré qu’il peut être décidé en temps polynomialdéterministe. Nous étudierons cette question de trouver des algorithmes déterministes pourBPPau chapitre12sur la

« dérandomisation ».

L’un des rares candidats naturels restant pour être dansBPP\Pconcerne les circuits arith-métiques introduits au chapitre précédent (section5.6).

SoitTIP(Test d’Identité de Polynômes, en anglaisPoynomial Identity Testing ouPIT) le problème suivant :

entrée: un circuit arithmétique sans constante donné par son code binaire (cf. re-marque5-AP), calculant un polynôme pZ[x1, . . . ,xn];

question: le polynôme pest-il identiquement nul (p0) ?

Ce problème portant sur les polynômes admet une variante plus simple, appeléeTIE(Test d’Identité d’Entiers), restreinte aux circuits calculant des entiers :

entrée: un circuit arithmétique sans variable et avec pour seule constante−1, cal-culant un entierNZ;

question:N=0?

6.3.2 Équivalence des deux problèmes

En réalité, ces deux problèmes sont équivalents ; pour le montrer, nous avons besoin du lemme suivant.

6-R Lemme

Si p Z[x1, . . . ,xn] est un polynôme de degréd dont les coefficients sont majorés en valeur absolue par M, alors pour tout α1, . . . ,αn N vérifiant α1 M+1 et, pour i[1,n1],αi+11+M(d+1)iαdi, on a : p0ssi p(α1, . . . ,αn) =0.

Démonstration Par récurrence sur le nombre de variablesn. Pourn=1: sip̸=0alors ps’écrit p(x) =d

i=0aixi avecad ̸=0. Alors

|p(α1)|α1d− |

i<d

aiαi1|;

6.3. Un exemple important 165 a ses coefficients majorés en valeur absolue par M, l’hypothèse de récurrence donne

pi

Nous pouvons maintenant montrer que TIPet TIE sont équivalents. PuisqueTIE est une restriction deTIP, il est clair queTIEse réduit àTIP; le lemme suivant montre la réciproque.

6-S Lemme

Le problèmeTIPse réduit au problèmeTIEpour les réductions many-one polynomiales : TIPpmTIE.

Idée de la démonstration On remplace les variables x1, . . . ,xn d’une instance de TIP par des entiers croissant suffisamment vite : cela permet de séparer le rôle de chaque variable (tout se passe comme si les entiers étaient « indépendants »).

Démonstration SoitC une instance deTIPde tailletet pZ[x1, . . . ,xn]le polynôme calculé parC. Les coefficients de psont strictement majorés en valeur absolue par222t (lemme5-AT) et son degré par2t (lemme5-AS).

Par le lemme6-R, p=0ssi p(α1, . . . ,αn) =0dès que α1222t etαi+1>222t(1+2t)iα2it.

On peut prendre αi = 222i t, qui est calculable par 2i t élévations au carré succes-sives. Ainsi, notre instance de TIE est le circuit arithmétique D calculant l’entier C1, . . . ,αn) en appliquantC aux nombres αi calculés par élévations au carré suc-cessives : on a alorsC TIPssi D TIEet le code de D est calculable en temps

polynomial à partir de celui deC. ⊓⊔

166 Chapitre 6. Algorithmes probabilistes

6.3.3 Algorithme probabiliste

Nous donnons maintenant un algorithme probabiliste polynomial pour TIE(et donc pourTIPpar la réduction que l’on vient de voir).

6-T Remarque Malgré la simplicité du problèmeTIE, on ne sait pas le résoudre par un algorithme déterministe polynomial. Une tentative naturelle est d’évaluer simplement chaque porte du circuit : cette approche échoue car les entiers calculés peuvent avoir une valeur doublement exponentielle (22n), c’est-à-dire qu’ils s’écrivent avec un nombre exponentiel de bits (2n). On ne peut donc pas les manipuler en temps polynomial.

C’est une question ouverte de savoir siTIEP(et donc, bien sûr, de même pourTIP).

6-U Lemme

TIEcoRP, c’est-à-dire qu’il existe un algorithme probabiliste polynomial tel que si un circuit arithmétiqueC calcule un entier nul, alorsC est accepté avec probabilité1, et sinonC est rejeté avec probabilité2/3.

Idée de la démonstration Pour éviter l’explosion de la taille des valeurs calculées, on évalue le circuit modulo un entier aléatoirem.

Démonstration Soit N l’entier calculé par une instanceC deTIEde taille n. On ne peut pas calculerN en temps polynomial car il est potentiellement trop grand mais on peut l’évaluer modulo des entiers aléatoires : il suffit de l’évaluer porte par porte modulo l’entier choisi. Voici l’algorithme probabiliste :

répéterO(n2)fois :

choisirm∈ {2, . . . , 2n2}au hasard,

évaluerN modm;

rejeterssi au moins l’une des évaluations est non nulle.

SiN=0alors l’algorithme accepteC puisqueN modmest toujours nul.

SiN̸=0: puisqueN22n (lemme5-AT), il a au plus2ndiviseurs premiers. Or, par le théorème des nombres premiers (théorèmeA-O), il existe une constantec>0telle que le nombre de nombres premiers dans l’intervalle[2, 2n2]estc2n2/n2. Ainsi, si mest choisi au hasard dans{2, . . . , 2n2},

Pr(mne divise pasN)Pr(mest premier et ne divise pasN)

=Pr(mne divise pasN|mpremier)Pr(mpremier)

(12n/(c2n2/n2))c/n2c/(2n2).

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 183-187)