• Aucun résultat trouvé

Théorème de Ladner

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 106-110)

Considérations de base sur le temps

2.2 Temps non déterministe

3.2.5 Théorème de Ladner

DansNP, nous avons donc d’un côté des problèmesNP-complets qui sont difficiles si P̸=NP, et de l’autre des problèmesPqui sont faciles. SiP̸=NP, y a-t-il quelque chose entre les deux ? En d’autres termes, siP̸=NPexiste-t-il des problèmes deNPqui soient hors dePmais pasNP-complet (langages « intermédiaires ») ?

P NP-complet

ou

P intermédiaire

NP-complet

Figure 3.7 – SiP̸=NP, existe-t-il des problèmes « intermédiaires » (figure de droite) ou non (figure de gauche) ?

En s’inspirant de méthodes issues de calculabilité, Ladner [Lad75a] répond à cette ques-tion dès 1975.

3-AK Théorème (Ladner, 1975)

SiP̸=NPalors il existe un problèmeANPtel que : – A̸∈P;

An’est pasNP-complet.

Idée de la démonstration Le langageAseraSATavec des « trous ». Plus précisément, pour certains intervalles de longueur de mots,Asera vide (« trous ») tandis que pour les autres intervalles de longueur de mots,Asera égal àSAT(voir figure3.8). S’ils sont assez grands, les premiers intervalles garantissent queAn’est pasNP-complet, tandis que les seconds garantissent qu’il n’est pas dansP.

3-AL Remarque Avant de voir la démonstration détaillée, il nous faut formaliser le conceptd’énumération des machines de Turing fonctionnant en temps polynomial. Le code d’une machine de Turing n’est qu’un mot sur un alphabet fini, ce n’est donc pas difficile d’énumérer le code de toutes les machines,M1,M2, . . .On remarquera que dans cette liste, pour chaquei il y a une infinité de machines équivalentes àMi puisqu’il suffit d’ajouter des instructions inutiles pour augmenter la taille du code.

3.2. Complétude 87 En revanche, pour énumérer seulement les machines fonctionnant en temps polynomial il faut une astuce. Il s’agit d’ajouter un ruban à la machineMi permettant de compter le nombre d’étapes de calcul. Dès que le compteur dépassei+ni (oùn est la taille de l’entrée), on arrête le calcul en rejetant. On obtient ainsi une nouvelle énumération(Mi) de certaines machines de Turing, dans laquelleMifonctionne en temps polynomial (i+ ni) mais est éventuellement interrompue au cours de son calcul.

SiM est une machine fonctionnant en temps polynomial p(n), alors il existek tel que p(n) k+nk pour tout n. SoitMi l’une des machines équivalentes à M et telle que ik. AlorsMifonctionne en tempsi+nip(n), donc son calcul n’est pas interrompu et elle est aussi équivalente àM. Ainsi,(Mi)est une énumération de toutes les machines fonctionnant en temps polynomial.

Démonstration (th.3-AK) Si h :NN est une fonction strictement croissante, on définit

SATh=|φSATet∃i h(2i)|φ|<h(2i+1)}.

0 h(0) h(1) h(2) h(3) . . . h(2i) h(2i+1) . . . n

; SAT ; SAT SAT

Figure 3.8 – LangageSATh.

Si, sur l’entrée1n, on sait calculer en temps polynomial h(0),h(1), . . . ,h(i)i est le plus grand entier tel queh(i)n, alorsSATh NP. En effet, l’algorithme suivant convient pourSATh sur l’entréeφ:

– calculer h(0),h(1), . . . ,h(i)i est le plus grand entier tel que h(i)|φ|;

– sii est impair,rejeter;

– décider (de manière non déterministe) siφSAT.

L’objectif est maintenant de définir une fonctionhayant cette propriété, et telle que SATh ne soit ni dansPniNP-complet. Pour cela, nous allons utiliser les deux observa-tions suivantes.

1. PuisqueP̸=NP(par hypothèse) et queSATestNP-complet,SAT̸∈P.

En d’autres termes, pour toute machine déterministe polynomiale M et tout entiern, il existeφtelle que

|φ|n;

88 Chapitre 3. NP-complétudeM(φ)accepte ssiφ̸∈SAT

(c’est-à-dire [φ SATet M(φ) rejette] ou [φ ̸∈SAT et M(φ) accepte] ; en d’autres termes,Mse trompe surφ).

2. SiAest un langage fini (donc dansP), puisqueP̸=NPpar hypothèse,SATne se réduit pas àA.

En d’autres termes, pour toute réduction polynomialef et tout entiern, il existe φtelle que

|φ|n;

f(φ)Assiφ̸∈SAT

(c’est-à-dire [φSATet f(φ)̸∈A] ou [φ̸∈SATet f(φ)A]).

On définit arbitrairementh(0) =0. Les valeurs suivantes deh vont être définies grâce au temps de fonctionnement d’une certaine machine M, qui prendra en entrée des entiersi etm0, . . . ,mi−1(plus tard on prendramj=h(j)).

Soit (Mi) une énumération des machines fonctionnant en temps polynomial (voir remarque3-AL) et qui calculent une fonction de{0, 1}dans{0, 1}: on verra tantôt Mi comme calculant une réduction, tantôt comme acceptant un langage (dans ce mode « acceptation », le mot est accepté ssi le résultat est1).

SoitM la machine suivante, sur l’entrée(i,m0, . . . ,mi−1):

– si i est impair, i =2k+1, énumérer par taille croissante toutes les formulesφde taille>mi1et simulerMk(φ), jusqu’à trouver φtelle que [Mk(φ) =1ssiφ̸∈SAT] ;

– sii est pair,i =2k, énumérer par taille croissante toutes les for-mulesφde taille>mi−1et simulerMk(φ), jusqu’à trouverφtelle

Par les observations 1 et 2 précédentes, de telles formules existent forcément.

On définit alors récursivementhcomme suit :h(i)est égal àh(i−1)auquel on ajoute le temps de calcul deM(i,h(0), . . . ,h(i1)). On remarquera notamment que la formule φrecherchée par M vérifieh(i1)|φ|<h(i)puisque le temps de calcul de M est évidemment supérieur à la taille deφ. De plus, sur l’entrée1n, on sait calculer en temps polynomialh(0),h(1), . . . ,h(i)i est le plus grand entier tel queh(i)n, puisqu’il suffit de simuler les fonctionnements successifs deMjusqu’à ce que le nombre d’étapes total de la simulation dépassen. Ainsi,SAThNPpar ce qui précède.

Nous prétendons queSAThn’est pas dansPet qu’il n’est pasNP-complet. Pour montrer cela, nous raisonnons par l’absurde.

3.2. Complétude 89 SiSAThPalors il est reconnu par une machine polynomialeMk. Par définition de SATh, pour toutφ si h(2k)|φ|< h(2k+1)alors [φ SATh ssiφSAT]. Or par définition de h, il existe une formule φ de taille comprise entre h(2k)et h(2k+1) telle que [Mk(φ) =1ssiφ̸∈SAT]. Ainsi,Mk donne la mauvaise réponse pourφ, une contradiction.

SiSATh estNP-complet, alors il existe une réduction polynomiale deSATàSATh cal-culée par une machineMk, c’est-à-direφSAT ⇐⇒ Mk(φ)SATh. Or par définition deh, il existeφde taille comprise entreh(2k1)eth(2k)telle que :

– soith(j)|Mk(φ)|<h(j+1)pourjimpair etφSAT, dans ce casMk(φ)̸∈SATh et doncMk n’est pas une réduction deSATàSATh;

– soit h(j)|Mk(φ)|< h(j+1)pour j pair et [Mk(φ)SATssiφ̸∈SAT]. Or la taille deMk(φ)implique que [Mk(φ)SATssiMk(φ)SATh], doncMk n’est pas une réduction deSATàSATh.

Ainsi, aucune machine polynomiale ne décideSATh ni ne réduitSATàSATh, ce qui

conclut la preuve. ⊓⊔

3-AM Remarques

– Le résultat original de Ladner est en fait sensiblement plus fort. On peut en effet faire la même construction à partir d’un langageA̸∈Pdécidable quelconque, plutôt que de partir deSAT. On obtient donc l’énoncé suivant : siA̸∈Pest décidable, alors il existeB̸∈Ptel queBpmAetA̸⩽pmB.

En d’autres termes, sous l’hypothèseP̸=NPil existe une infinité de langages SAT>mp A1>mp A2>mp . . .

tels queAi+1se réduit àAi maisAi ne se réduit pas àAi+1.

– On ne connaît pas de langage qui soit intermédiaire sous l’hypothèseP̸=NPet qui soit plus « naturel » que la construction de Ladner ci-dessus (bien que le problème de la factorisation d’entiers et celui de l’isomorphisme de graphes que l’on verra au chapitre10soient des candidats).

– Il découle du théorème de Ladner que la NP-complétudene peut pas être définie ainsi : « les langagesANPtels queAP = P=NP». En effet, siP̸=NP alors tout langage intermédiaire (un langage deNPqui ne soit ni complet ni dans P) serait complet (car « faux implique faux »), une absurdité.

. 3-AN Exercice

Montrer le premier point de la remarque précédente.

90 Chapitre 3. NP-complétude . 3-AO Exercice

Montrer qu’il existe un langageA̸∈EXPqui ne soit pasEXP-difficile.

Indication : grâce à une stratégie de preuve similaire à celle pour le théorème de Ladner, transformer un problèmeL̸∈EXPen un problèmeA̸∈EXPqui ne soit pasEXP-difficile.

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 106-110)