Complexit ´e algorithmique
Pierre Rouchon
Centre Automatique et Syst `emes Mines ParisTech, PSL Research University
pierre.rouchon@mines-paristech.fr
Octobre 2018
Plan
1 Introduction
2 ClasseP
3 ClasseNP
4 ClasseRP
5 Fonctions `a sens unique etP6=NP
Satisfaisabilit ´e des formules bool ´eennes
La donn ´ee (on parle aussi d’instance) est un entiernetFn une fonction bool ´eenne denvariables bool ´eennes (xi ∈ {0,1}, i =1, ...,n)
(x1, ...,xn)7→Fn(x1, ...,xn)∈ {0,1}.
o `uF est construite avec des expressions faisant intervenir les op ´erateurs logiques usuels (et, ou et n ´egation). La question est :
existe-t-il un(x1, ...,xn)tel queFn(x1, ...,xn) =1 ? Probl `eme repr ´esentatif de la classe des probl `emes dits de compl ´exit ´eNPcar c’est un probl `eme de difficult ´e maximale dans cette classe (probl `eme ditNP-complet). Un probl `eme est ditNPsi l’on peut certifier ces instances positives en temps polyn ˆomial en npar un oracle(nest bien la taille des donn ´ees).
V ´eracit ´e des formules bool ´eennes quantifi ´ees
La donn ´ee est un entiern,Fnune fonction bool ´eenne den variables bool ´eennes (xi ∈ {0,1},i=1, ...,n) et la formule avec quantificateurs
∀xi,∃xj, .... F(x1, ...,xn).
La question est alors :cette formule est-elle vraie ?
Le second probl `eme est repr ´esentatif de la classe des probl `emes dits decompl ´exit ´e PSPACEcar c’est un probl `eme de difficult ´e maximale dans cette classe. Nous n’aborderons pas cette classe de probl `emes qui admettent un algorithme n ´ecessitant un espace m ´emoire polyn ˆomial enn.
Dixi `eme probl `eme de Hilbert
La donn ´ee est un entiernet un polyn ˆome `a coefficients entiers de nvariablesP(x1, ...,xn). La question est alors (dixi `eme probl `eme de Hilbert) :l’ ´equation diophantienneP(x1, ...,xn) =0 admet-elle une solution enti `ere(x1, ...,xn)∈Zn?
Il n’existe pas d’algorithme pour d ´ecider si la r ´eponse est oui ou non.
Prototype deprobl `eme ind ´ecidableau sens de G ¨odel :
∀(a1, . . . ,ak)∈Zk, ∃(x1, . . . ,xn)∈Zn,tel queP(a,x) =0 o `uPest un polyn ˆome `a coefficients entiers enaetx.
Ind ´ecidable :qui n’est pas une cons ´equence finitiste
(cons ´equence ”courte”) des axiomes de base de l’arithm ´etique.
ClasseP
D ´efinition : le probl `emeP sera dit de classePs’il existe un algorithme polyn ˆomial en temps(i.e., en nombre d’op ´erations
´el ´ementaires) qui le r ´esout. Par polyn ˆomial, nous entendons polyn ˆomial par rapport `a l’espace n ´ecessaire pour coder les donn ´eesx.
Exemple :Les donn ´ees sont deux entiers positifsm<n. La question est : les entiersmetnsont-ils premiers entre eux ? Nous savons par l’algorithme d’Euclide calculer le pgcd. Ce calcul n ´ecessite au plusE log(n)
log
1+√ 5 2
!
divisions pourm≤n.
Equivalence
Equivalence entre
le calcul en temps polyn ˆomial d’une famille de fonctions(fn)n∈Nde {1, ...n}dans lui m ˆeme et le probl `eme de d ´ecision suivant.
Les donn ´ees sont l’entiernet deux autres entiersx ettplus petits quen. La question est :
Σ : A-t-on fn(x)≤t ?
En effet sifn(x)se calcule en temps polyn ˆomial par rapport `a log(n), le probl `emeΣest de fac¸on ´evidente dansP.
Supposons maintenant queΣest dansP. Prenonsnetx entiers avec 1≤x ≤n, voyons comment calculerfn(x)en temps
polyn ˆomial. Pour cela, nous pouvons savoir en temps polyn ˆomial sifn(x)∈[1,n/2]oufn(x)∈[n/2,n]. Sifn(x)∈[1,n/2]on peut savoir en temps polyn ˆomial sifn(x)∈[1,n/4]ou
fn(x)∈[n/4,n/2]. Sifn(x)∈[n/2,n]on peut savoir en temps polyn ˆomial sifn(x)∈[n/2,3n/4]oufn(x)∈[3n/4,n]. On voit bien qu’avec de tellesdichotomies, on sait en faisantappels-fois `aΣsi fn(x)est dans un intervalle de longueur au plusn/2s. Il suffit maintenant de prendres=E(log2(n))pour avoir la valeur exacte defn(x)puisque c’est un entier. On aura obtenu ainsi la valeur de fn(x)en r ´esolvantE(log2(n))fois le probl `emeΣ.Donc le calcul de fn(x)est polyn ˆomial en log(n).
ClasseNP
Le probl `eme de d ´ecisionP est dit calculablepar un algorithme non d ´eterministe et polyn ˆomial en temps,si et seulement si,
il existe un algorithme (certification) ayant comme donn ´ees de d ´epartx etaussiy (fini et correspondant `al’oracle),
tel que pour toute instancex v ´erifiantP(x)vraialors il existe un certificaty(x)tel que cet algorithme ayantx ety(x)comme donn ´ees calculeP(x)vrai en temps polyn ˆomial par rapport `a la taille des donn ´ees de d ´epartx.
Le probl `eme de la factorisation est dansNP.Nous le traduisons d’abord en un probl `eme de d ´ecision : les donn ´ees sont deux entiersnetM<n. La question est :existe-t-il un diviseur den plus petit queMet>1.
Par dichotomie successive, on voit que si l’on sait r ´esoudre ce probl `eme enΥ(log(n))op ´erations ´el ´ementaires , on sait trouver un diviseur denen temps polyn ˆomial. On part deM =E(n/2), un premier calcul donne la position du diviseur ´eventuel soit dans [2,E(n/2)[ou[E(n/2),n[, i.e. dans un intervalle de longueur au plusn/2. Un second calcul va le localiser dans un intervalle de longueur au plusn/4. Apr `esscalculs on a localis ´e le diviseur dans un intervalle de longueur au plusn/2s. Ainsi avec
s=E(log2(n))on aura localis ´e le diviseur dans un intervalle de longueur au plus de 1, i.e. on aura donc le diviseur au bout du tempsΥ(log(n))log2(n).
Les sp ´ecialistes pensent queΥne peut pas ˆetre un polyn ˆome en logn.
Le probl `eme de d ´ecision,existe-t-il un diviseur denplus petit que M et>1est dansNP.
Il suffit pour les instancesx = (n,M)positives (i.e., telles qu’il existe un diviseur denplus petit queM) de prendre un diviseur de nplus petit queMque nous noteronsy(n,M)(oracle).
L’algorithme de v ´erification consiste simplement `a divisernpar y(n,M)et ainsi on v ´erifie quena bien un diviseur non trivial plus petit queM.
Le probl `eme de d ´ecision,existe-t-il un diviseur denplus petit que M et>1est danscoNP.
On s’int ´eresse `ax = (n,M)tel qu’il n’existe pas de diviseur den plus petit queM. Pour cela,la structure dey est plus lourde. En effet, il faut quey comporte les donn ´ees suivantes : la
d ´ecomposition denen facteurs premiersn=Qk i=1pkνk. Avec ces donn ´ees suppl ´ementairesy = (pi, νi)i=1,...,k nous pouvons proposer l’algorithme non optimal suivant :
1 v ´erification via AKS que lesk nombrespi sont des nombres premiers ;
2 v ´erification que lespi sont plus grands queM.
3 v ´erification quen=Qk i=1pνkk.
On laisse au lecteur le soin de montrer que cet algorithme totalement sous optimal est cependant en temps polyn ˆomial par rapport `a log(n).
On peut utiliser la m ˆeme d ´emarche pour montrer que le logarithme discret est dansNPet aussi danscoNP.
Pourppremier,αprimitif modulo-petn<pon d ´efinit la fonction log ainsi
(p, α,n)7→log(p, α,n) =
m sipest premier,αprimitif modulo-p etml’unique entier dans{1, . . . ,p−1}
tel queαm=n mod(p) 0 sinon.
le probl `eme de d ´ecision est alors le suivant : les donn ´ees sontp et les nombresα,nettplus petits quep;
la question est ” A-t-on log(p, α,n)<t? ”
ClasseRP
Probl `emes pouvant ˆetre r ´esolus par desalgorithmes probabilistes polyn ˆomiaux.Un probl `emeP(x)est dansRPssi :
1 ils existent des polyn ˆomesp(n)etq(n)(nest la taille dex;n=log(x)si x est un entier)
2 il existe un algorithme ayant comme donn ´ees de d ´epartx ety (certificat) et qui donne une r ´eponse binaireR(x,y)∈ {−1,1}en un temps plus petit queq(n)si le certificaty est de taille plus petite quep(n).
3 P(x)est faux si et seulement siR(x,y) =−1 pour tout certificaty de taille plus petit quep(n).
4 SiP(x)est vrai, alors en choisissant au hazard un certificaty de taille plus petite quep(n), on aR(x,y) =1 avec une probabilit ´e sup ´erieure ou
´egale `a 1/2
Exo:Montrer que le seuil de 1/2 pour la probabilit ´e peut ˆetre remplac ´e par n’importe quel r ´eelσavec 0< σ <1.
Exo:Montrer queRPest dansNP.
Cette d ´efinition est faite sur mesure pour letest de Miller-Rabin de primalit ´e.
P(x):l’entierx est-il compos ´e ? Avecn=log(x)
1 y correspond `a un entier entre 2 etx,p(n) =netq(n)est la complexit ´e du test de Miller-Rabin :x est-il fortement premier en basey?
2 R(x,y) =−1 six est fortement premier en basey, R(x,y) =1 sinon.
3 P(x)faux ´equivaut `a∀y ≤x on aR(x,y) =−1 (x premier ´equivaut `a
∀y ≤x,x fortement premier en basey).
4 P(x)vrai implique que, pour au moins la moiti ´e des certificatsy de taille plus petite quep(n), on aR(x,y) =1 (six est compos ´e alors pour au moins les 3/4 desy entre 2 etx−1,x n’est pas fortement premier en basey).
Fonctions `a sens unique etP6=NP
L’existence de fonctions `a sens unique est une conjecture aussi difficile queP6=NP.
Chaquefnest une bijection deAn={1, ...,n}dansBn={1, ...,n}.
On consid `ere alors la famille(fn)n∈N.
Le fait que lesfnsoient faciles `a calculer se formalise alors via le probl `eme not ´eF suivant : les donn ´ees sont un entiernet deux autres entiersx ett entre 1 etn. La question est :
F(n,x,t):A-t-onfn(x)≤t?
Si pour chaquenle calcul defn(x)est polyn ˆomial, le probl `emeF est dansP.
Supposons doncF dansP.
Calcul de l’inverse desfnest associ ´e au probl `eme de d ´ecision suivant not ´eF−1: les donn ´ees sont
un entiernet deux autres entiersxettentre 1 etn; la question est : F−1(n,x,t):a-t-onfn−1(x)≤t?
F−1est dansNP. En effet, il suffit de prendre comme certificat y =fn−1(x).
Le fait que le probl `emeF−1soit difficile, i.e., que lesfnsoient `a sens unique, se traduit donc par le fait queF−1n’est pas dansP (car sinon le calcul defn−1serait polyn ˆomial).
CommeF−1est n ´ecessairement dansNPsiF est dansP, on voit que l’existence d’une fonction `a sens unique implique
P6=NP.
R ´eduction polynomiale : probl `emesNP-complets
On dit qu’un probl `eme de d ´ecisionF se r ´eduit polynomialement `a un probl `emeF∗, s’il est possible, `a partir d’un algorithme qui r ´esout les instances positives deF∗, de construire, avec des calculs suppl ´ementaires au plus polyn ˆomiaux, un algorithme qui r ´esout les instances positives deF (siF∗ est dansP(resp.NP) alorsF l’est aussi).
Un probl `emeF∗ est ditNP-complet, s’il est dansNPet si tout probl `eme deNPse r ´eduit polynomialement `aF∗.
Le probl `eme SAT estNP-complet :
existe-t-il un(x1, ...,xn)tel queFn(x1, ...,xn) =1 ? o `uFnest une fonction bool ´eenne des variables binairesxi.
Les diverses conjectures sur les classes de complexit ´e
On a les inclusions ´evidentes suivantes :
P⊆RP⊆NP et P⊆(NP∩coNP) On conjecture que :
P$RP$NP et P$(NP∩coNP)$NP.