• Aucun résultat trouvé

Temps non déterministe polynomial et exponentiel

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 74-80)

Considérations de base sur le temps

2.2 Temps non déterministe

2.2.6 Temps non déterministe polynomial et exponentiel

Nous passons maintenant à la définition de deux classes de complexité non déterministes importantes,NPetNEXP.

2-AK Définition (temps non déterministe polynomial et exponentiel)

La classeNPest l’ensemble des langages reconnus par une machine non déterministe en temps polynomial, c’est-à-dire

NP=NTIME(nO(1)) =k∈NNTIME(nk).

La classeNEXPest l’ensemble des langages reconnus par une machine non déterministe en temps exponentiel, c’est-à-dire

NEXP=NTIME(2nO(1)) =k∈NNTIME(2nk).

Enfin, une dernière classe que l’on étudiera moins est notéeNE, il s’agit de l’ensemble des langages reconnus en temps non déterministe exponentiel avec exposant linéaire, c’est-à-dire :

NE=NTIME(2O(n)) =k∈NNTIME(2kn).

2-AL Remarque Attention, une erreur souvent commise est de croire queNP signi-fie « non polynomial » alors que c’est une abréviation pourNondeterministicPolynomial time.

2.2. Temps non déterministe 55 2-AM Exemple Voici quelques exemples de problèmes dansNPet dansNEXP(nous

verrons d’autres problèmesNPau chapitre suivant).

1. CLIQUE:

entrée: un graphe non orientéGet un entierk; – question:Ga-t-il une clique de taillek?

Une clique de taille k est un ensemble de k sommets tous reliés les uns aux autres. Ce problème est dansNP: une machine non déterministe polynomiale pour le reconnaître peut deviner un ensemble deksommets puis vérifier que ces k sommets sont tous reliés entre eux. Nous verrons que ce problème est «NP -complet ».

2. SOMME PARTIELLE:

entrée: une liste d’entiersa1, . . . ,am et un entier ciblet;

question: existe-t-il une sous-liste dont la somme vautt? En d’autres termes, existe-t-ilS⊆ {1, . . . ,m}tel quei∈Sai=t?

Ce problème est dansNP: il suffit de deviner les éléments de l’ensembleSet de vérifier si la somme des entiers correspondants vautt. Il est appeléSUBSET SUM en anglais. Comme le précédent, ce problème estNP-complet.

3. ARRÊT NEXP:

entrée: le code d’une machine non déterministeNet un entierken binaire ; – question: est-ce queN(ε)s’arrête enk étapes ?

Ce problème est dansNEXPcar on peut simulerN(ε)pendant k étapes grâce à une machine universelle non déterministe : puisque la taille de l’entréek est logk, cela prend un temps exponentiel. Nous n’avons pas encore vu cette notion, mais mentionnons au passage que ce problème estNEXP-complet.

4. Un problème deNEXPplus « naturel » est, sur l’entréeC, de décider s’il existe une instanciation des variables satisfaisant le circuit booléenD dont le code est décrit par le circuit booléenC donné en entrée (nous définirons les circuits au chapitre5). PuisqueD peut être de taille exponentielle, il s’agit de deviner une instanciation de taille exponentielle et d’évaluer le circuit, ce qui se fait dans NEXP. Comme le précédent, c’est un problèmeNEXP-complet (exerciceB-C).

. 2-AN Exercice

Justifier plus rigoureusement que ces problèmes sont chacun dans la classe annoncée.

Pour décider les deux exemples précédents de langages deNP, nos machines n’utilisaient leur non-déterminisme que pour deviner un mot, puis elles vérifiaient une propriété facile sur ce mot. Cette remarque est en fait générale : les classesNPetNEXPont une belle ca-ractérisation utilisant un quantificateur existentiel. On supposera toujours que l’alphabet Σcontient au moins deux symboles notés0et1.

56 Chapitre 2. Considérations de base sur le temps 2-AO Proposition (caractérisation existentielle deNPetNEXP)

– Un langageAest dansNPssi il existe un polynôme p(n)et un langageBPtels que

xA ⇐⇒ ∃y∈ {0, 1}p(|x|)(x,y)B.

– Un langageAest dansNEXPssi il existe un polynôme p(n)et un langageBPtels que

xA⇐⇒ ∃y∈ {0, 1}2p(|x|) (x,y)B.

Le motyjustifiant l’appartenance dexàAest appelépreuveoucertificat.

Idée de la démonstration Le certificatycorrespond au chemin acceptant dans la ma-chine non déterministe reconnaissant le langageA.

Démonstration Nous faisons en détail le cas deNPpuis verrons comment l’adapter à NEXP.

SoitN une machine non déterministe polynomiale reconnaissantA: on suppose qu’elle fonctionne en temps q(n). À chaque étape,N a le choix entre un nombre constant R de transitions possibles : R dépend seulement deN, pas de l’entrée x. Ainsi, l’arbre de calcul deN(x)est un arbre de hauteurq(n)et tel que chaque nœud a au plusRfils : un chemin dans un tel arbre peut être encodé par un moty∈ {0, 1}de tailleq(n)⌈logR⌉(une succession deq(n)numéros de fils). Soit ple polynôme défini par p(n) =q(n)⌈logR⌉.

On définit alorsBl’ensemble des couples(x,y)y∈ {0, 1}p(|x|)est tel que le chemin encodé par y dans le calculN(x) accepte (si y n’encode pas un chemin valide, on décrète que(x,y)̸∈B). PuisquexAssi il existe un chemin acceptant, on a bien

xA ⇐⇒ ∃y∈ {0, 1}p(|x|)(x,y)B.

Il ne reste plus qu’à montrer queBP. Pour décider si(x,y)B, il s’agit d’exécuter N(x)le long du cheminy: puisque l’on connaît le chemin, cela revient à exécuter une machine déterministe fonctionnant en tempsq(n). DoncBP.

SoitBPreconnu par une machine déterministeMfonctionnant en temps poly-nomialq(n)et supposons queAsoit défini par

xA ⇐⇒ ∃y∈ {0, 1}p(|x|)(x,y)B.

Montrons queANP. Voici une machine non déterministe pourAsur l’entréex:

devinery∈ {0, 1}p(|x|); – accepterssiM(x,y)accepte.

2.2. Temps non déterministe 57 Cette machine non déterministe fonctionne en temps polynomialp(n) +q(n+p(n)) puisque devineryprend un tempsp(n), puisMfonctionne en tempsqsur une entrée (x,y)de taillen+p(n). DoncANP.

PourNEXP: la même preuve s’applique à ceci près que le certificatydoit être de taille exponentielle puisque la machine N fonctionne maintenant en temps exponentiel.

Mais attention, le langageB reste dansPcar l’entrée(x,y)deB est maintenant de taille exponentielle et donc l’exécution deN(x)selon le chemin y prend un temps polynomial (et même linéaire) en la taille de(x,y). ⊓⊔

Nous utiliserons souvent cette caractérisation existentielle par la suite.

. 2-AP Exercice

Montrer qu’on obtient la même caractérisation deNPsi l’on ne demande plus au certificatyd’être de taille exactement p(n)mais « au plus p(n)».

. 2-AQ Exercice

Le fait de demander à ce que le langage sous-jacent soit dansPdans la caractérisation existentielle deNEXPpeut sembler étrange à première vue. Mais les deux variantes suivantes ne capturent pasNEXP.

– SoitC l’ensemble des langages A tels qu’il existe un polynôme p(n) et un langageBEXPvérifiant

xA ⇐⇒ ∃y∈ {0, 1}2p(|x|)(x,y)B.

Montrer queC =DTIME(22nO(1)) (temps déterministe doublement exponen-tiel).

Indication : on pourra d’abord se familiariser avec le padding à la proposition 2-AUet à l’exercice2-AW.

– SoitC l’ensemble des langages A tels qu’il existe un polynôme p(n) et un langageBEXPvérifiant

xA ⇐⇒ ∃y∈ {0, 1}p(|x|)(x,y)B.

Montrer queC=EXP.

Un peu de recul

SiPest la classe des problèmes pour lesquels on peut trouver une solution efficacement, NPest la classe des problèmes pour lesquels on peutvérifierune solution efficacement. En

58 Chapitre 2. Considérations de base sur le temps

effet, on nous donne une preuveyet on doitvérifieren temps polynomial que cette preuve est correcte. En d’autres termes, on nous donne une solution potentielle (un chemin acceptant) et on doit vérifier qu’il s’agit en effet d’une solution.

On retrouve cela dans les deux exemples précédents de problèmesNP: pourCLIQUE, on choisissait (de manière non déterministe) l’ensemble formant la clique et il fallait vérifier qu’il formait bien une clique ; pourSOMME PARTIELLE, on choisissait (de manière non déterministe) le sous-ensemble et il fallait vérifier que la somme valait bient. Ces deux exemples illustrent un phénomène général :

NPest la classe des problèmes « faciles à vérifier ».

Nous pouvons maintenant comparer les quatre classes vues jusqu’à présent. La proposi-tion2-AGnous donne les inclusions suivantes.

2-AR Corollaire

PNPEXPNEXP

Par ailleurs, le théorème de hiérarchie en temps non déterministe2-AI nous donne la séparation suivante.

2-AS Corollaire

NPNEXP

Démonstration Il suffit de remarquer queNPNTIME(2n)puis, par le théorème2-AI, queNTIME(2n)NTIME(2n2)et enfin queNTIME(2n2)NEXP. ⊓⊔

. 2-AT Exercice

Séparer de mêmeNEetNP. Pour résumer, nous savons que

PNPEXPNEXP, EXP̸=P et NEXP̸=NP.

Cependant, c’est une question ouverte de savoir si chacune des inclusions P NP, NPEXPetEXPNEXPest stricte.

2.2. Temps non déterministe 59

2.2.7 Le problème «

P=NP?

»

En particulier, la question de savoir siP=NPest ouverte et centrale en complexité. Pour reprendre la caractérisation précédente, cela revient à savoir si trouver une solution est aussi simple³que de vérifier une solution. Par exemple, est-il aussi facile de trouver une démonstration d’un énoncé mathématique que de vérifier qu’une démonstration donnée est correcte ? Est-il aussi facile de remplir une grille de Sudoku que de vérifier qu’un remplissage donné est bien une solution ? On pourrait bien sûr multiplier les exemples.

Notre expérience semble indiquer qu’il est plus difficile de trouver une solution car il faut faire preuve d’imagination ou d’intuition : c’est une des raisons pour lesquelles de nom-breuses personnes pensent queP̸=NP. Nous exposerons une autre raison au prochain chapitre : malgré énormément d’efforts, nous ne connaissons pas d’algorithme polyno-mial pour une vaste classe de problèmes deNP.

Enfin, nous terminons ce chapitre en montrant les liens entre la questionP=NPet son analogue exponentiel,EXP=NEXP.

2-AU Proposition

P=NP =⇒EXP=NEXP

Idée de la démonstration La technique s’appellepadding (qu’on pourrait traduire par

« rembourrage »). Il s’agit d’augmenter délibérément la longueur de l’entrée pour que les machines disposent de plus de temps, puisque le temps est calculé en fonction de la taille de l’entrée.

Ici, on augmente exponentiellement l’entrée d’un langage deNEXPpour le ramener dansNPet pouvoir appliquer l’hypothèse.

Démonstration On supposeP=NP. SoitLNEXP. Il est reconnu par une machine non déterministeN fonctionnant en temps2nk pour un certaink. On définit le lan-gage L˜ = {(x, 12|x|k) | x L}, c’est-à-dire qu’on augmente la taille de l’entrée avec un nombre exponentiel de symboles 1. La nouvelle entrée a maintenant une taille m2|x|k.

Voici une machine non déterministeN˜pourL˜:

– vérifier que l’entrée est de la forme(x,y)(sinonrejeter) ; – vérifier quey=12|x|k (sinonrejeter) ;

– exécuterN(x).

3. Dans cette discussion, « simple » ou « facile » signifie efficace : ce pourrait être un algorithme très com-pliqué pourvu qu’il soit rapide.

60 Chapitre 2. Considérations de base sur le temps Cette machine reconnaîtL˜en tempsO(2nk), c’est-à-dire en temps non déterministe linéaire enm (la taille de l’entrée). Ainsi,L˜NP: par hypothèse, on en déduit que L˜P. Il existe donc une machine déterministeM˜ fonctionnant en temps polynomial pourL˜. Cette machine fonctionne en tempsmk.

Voici maintenant une machine déterministeM pourLsur l’entréex:

– écrire(x, 12|x|k)sur un ruban de travail ; – exécuterM(x, 1˜ 2|x|k).

La première étape prend un tempsO(2nk); la seconde étape prend un temps mkm = 2O(nk) est la taille de (x, 12|x|k). En tout, M fonctionne en temps 2O(nk), donc

LEXP. ⊓⊔

2-AV Remarque La réciproque de la proposition précédente n’est pas connue.

Nous proposons l’exercice suivant pour manipuler les techniques de padding.

. 2-AW Exercice

Un langage Lest ditcreux s’il existe un polynôme p(n) tel que pour toutn N,

|L=n|p(n). Il est ditunairesiL1(tout mot deLn’est composé que de symboles 1).

Montrer que les trois assertions suivantes sont équivalentes : – E̸=NE;

NP\Pcontient un langage unaire ; – NP\Pcontient un langage creux.

Indication : montrer1 = 2 = 3 =⇒ 1. Pour3 = 1, « compresser » un langage unaireLNP\Ppour obtenir un langageL˜deNE: siNE=EalorsL˜Eet on peut s’en servir pour placerLdansP.

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 74-80)