• Aucun résultat trouvé

Complexité du complémentaire

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

Considérations de base sur le temps

2.2 Temps non déterministe

2.2.8 Complexité du complémentaire

Le caractère asymétrique de la définition deNTIMEappelle quelques remarques. Le non-déterminisme est une notion naturelle dont l’importance sera approfondie au chapitre suivant. Mais le fait qu’on ne sache pas passer efficacement au complémentaire amène la définition de nouvelles classes de complexité.

2.2. Temps non déterministe 61 2-AX Définition

SiC est une classe de complexité, alors la classecoC est l’ensemble des complémentaires des langages deC. En d’autres termes,

coC={cA|A∈ C }.

On obtient ainsi la classecoNPpar exemple, l’ensemble des langages dont le complémen-taire est dansNP. Quitte à transformer les chemins acceptants en chemins rejetant dans un machineNPet inversement, on peut reformuler la définition decoNPcomme suit.

2-AY Proposition (coNP)

La classecoNPest l’ensemble des langagesAtels qu’il existe une machine de Turing non déterministeN fonctionnant en temps polynomial et satisfaisant :

xAssi tous les chemins de calcul deN(x)sont acceptants.

Comme on l’a vu auparavant, on ne sait pas décider dansNPle complémentaire de tout langage deNP : cela se traduit par le fait que la question «NP= coNP? » est ouverte.

Il est utile de réfléchir un moment à cette question pour comprendre l’essence du non-déterminisme.

2-AZ Remarque Formellement, le complémentaire dansΣdu langageCLIQUEpar exemple (cf. exemple2-AM) est l’ensemble des motsx:

– soit qui ne codent pas un couple(G,k)(un graphe et un entier) ;

– soit qui codent un couple(G,k)tel queGne possède pas de clique de taillek. Cependant, lorsqu’on parle du complémentairecoCLIQUEdu problèmeCLIQUE, on dé-signe le langage{(G,k)|Gn’a pas de clique de taillek} : on garde ainsi les mêmes en-trées et on inverse simplement la question. En effet, on parle du complémentaire dans l’ensemble{(G,k)|Gest un graphe etk un entier}(l’ensemble des entrées valides pour ce problème) et non dans l’ensembleΣ.

Par rapport à prendre le complémentaire dansΣ, cela ne change pas la complexité s’il est facile de décider qu’un mot code une entrée « valide » du langage (par exemple un graphe, un couple d’entiers, etc.), comme c’est toujours le cas.

De la même manière qu’à la proposition2-AO, on peut donner une caractérisation de coNPen termes de quantification universelle : on remarque que par rapport à NP, on remplace simplement le quantificateurpar un quantificateur.

62 Chapitre 2. Considérations de base sur le temps 2-BA Proposition (caractérisation universelle decoNP)

Un langageAest danscoNPssi il existe un polynôme p(n)et un langageBPtels que xA ⇐⇒ ∀y∈ {0, 1}p(|x|)(x,y)B.

Démonstration SoitAcoNP: par définition,cANP, donc d’après la proposition 2-AO, il existeBPet un polynôme p(n)tels que

xcA ⇐⇒ ∃y∈ {0, 1}p(|x|)(x,y)B. On en déduit que

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

Il suffit alors de prendreB=cB (qui est bien un langage deP) pour obtenir notre

caractérisation. ⊓⊔

On déduit en particulier de cette proposition quePcoNP. Le fait queNP n’est pro-bablement pas clos par complémentaire donnera naissance à la hiérarchie polynomiale qu’on étudiera au chapitre8.

On pourra consulter l’exerciceB-Aen annexe pour s’entraîner davantage sur le padding et les théorèmes de hiérarchie.

3

NP -complétude

Bien que la question «P=NP? » résiste depuis plusieurs décennies, la quantité d’efforts investis a permis d’avoir une compréhension bien meilleure du problème. La notion de NP-complétude fait partie de ces avancées majeures, une des premières : elle a d’abord montré l’importance incroyable de la classeNPavant de donner un moyen aux algorith-miciens de contourner le problème «P=NP? ».

En effet, nous allons voir qu’un très grand nombre de problèmes naturels et importants en pratique sont tous équivalents et sont les plus difficiles de la classeNP: cela implique qu’ils ne possèdent pas d’algorithme polynomial siP̸=NP. Puisque la croyance populaire soutient queP̸=NP, on se contente de ces résultats comme d’une espèce de « preuve » que le problème est difficile et qu’on ne peut pas espérer obtenir un algorithme efficace¹.

Pour affirmer que certains problèmes « sont les plus difficiles », il faut pouvoir comparer les problèmes entre eux. On définit pour cela la notion deréductionqui tire ses origines de la calculabilité. Il existe beaucoup de réductions différentes mais nous ne définirons dans ce chapitre que l’un des deux types les plus importants. Puis nous verrons plusieurs problèmesNP-complets avant de voir le théorème3-AKde Ladner et celui de Mahaney 3-AQ.

3.1 Réductions

Les notions de réduction permettent de comparer deux problèmesAetB. Grosso-modo, on dira queBest plus facile queAsi on peut déciderefficacementl’appartenance àBdès lors qu’on possèdeun moyende tester l’appartenance àA: en effet, dans ce cas, résoudre

1. En réalité on a vu que la classePne reflétait qu’imparfaitement l’ensemble des problèmes « faciles ». En conséquence les algorithmiciens ne s’arrêtent pas à un résultat deNP-complétude : ils peuvent chercher des solu-tions approchées, des algorithmes qui fonctionneront sur « la plupart » des instances rencontrées, programmer des méthodes efficaces pour les petites entrées, etc.

64 Chapitre 3. NP-complétude Apermet de résoudreB et doncB n’est pas plus difficile queA. Les différentes notions de réduction varient par ce qu’on entend par « efficacement » et selon le « moyen » de résoudreA.

En d’autres termes, pour résoudreBon « se ramène à »A: c’est en ce sens queBest plus simple queA. Plutôt que « se ramener à », on utilise le termese réduire à: on dira queB se réduit àA, ou encore qu’il y a une réduction deBàA.

3-A Définition (réductions many-one polynomiales)

Uneréduction many-one en temps polynomial d’un problème B (sur l’alphabetΣB) à un problèmeA(sur l’alphabet ΣA) est une fonction f :ΣB ΣA calculable en temps polynomial telle que :

∀xΣB, xB ⇐⇒ f(x)A.

Si une telle fonction f existe, on dira queBse réduit àA(via f) et on noteraBpmA.

3-B Remarques Quelques commentaires sur cette définition :

– La résolution deBse ramène à la résolution deApar le calcul de f : il suffit d’un précalcul simple (polynomial), c’est en ce sens que B est plus simple que A. La réduction transforme une instancexdu problèmeBen une instancexdu problème Atelles quexBssixA.

– On notera que la définition est équivalente àB=f−1(A).

– Le nommany-onevient de ce que plusieurs mots xΣB peuvent avoir la même image.

– Nous avons défini la réduction many-one en temps polynomial : on pourrait définir d’autres réductions many-one selon l’efficacité du calcul def. Lorsqu’on parlera de réductions many-one sans préciser la complexité de f, on désignera les réductions many-one en temps polynomial.

Attention, le terme « se réduire à » peut être trompeur puisque habituellement on se ramène à une tâche plus simple. Ici, lorsqueBse réduit àA, c’est bienBqui est plus simple !

La plupart des classes de complexité abordées dans cet ouvrage seront closes pour les réduction many-one (c’est-à-dire queA∈ C etBpmAimpliquentB∈ C), notamment P,NP,EXPetNEXP. Une exception notable sont les classesEetNEet c’est la raison pour laquelle elles sont moins étudiées.

3-C Proposition

Les classesPetNPsont closes pourpm.

3.1. Réductions 65 Idée de la démonstration SiBpmAvia f, pour déciderB il suffit de calculer f(x)et

de décider si f(x)A.

Démonstration Pour la classe P: soit AP et B pm Avia f, montrons queB P. Soitk un entier suffisamment grand pour quef soit calculable en tempsnk etAsoit décidable en tempsnk. Voici un algorithme pourBsur l’entréexΣB :

– Calculer f(x). – Décider si f(x)A.

Cet algorithme décideBpar définition de la réduction f deBàA, et il fonctionne en temps polynomial :

– le calcul de f prend un tempsnk;

– puisque|f(x)|nk, décider si f(x)Aprend un temps(nk)k=nk2. Le temps total estO(nk2), doncBP.

Pour la classe NP, le raisonnement est exactement le même. Si A est reconnu par une machine non déterministe polynomialeNA, la machine non déterministe pourB fonctionne ainsi sur l’entréex :

– Calculer f(x). – ExécuterNA(f(x)).

⊓⊔

3-D Remarque La clôture de la classePpourpm signifie qu’un problèmeB plus simple qu’un problèmeA efficacement résoluble est lui-même efficacement résoluble, conformément à l’intuition.

. 3-E Exercice

Montrer que les classesEXPetNEXPsont closes pourpm.

. 3-F Exercice

Montrer que les classesEetNEne sont pas closes pourpm.

Indication : par théorème de hiérarchie, on sait queEXP ̸=E. Utiliser un problème LEXP\E, le « padder » (cf. proposition2-AU) pour obtenir un langageLE: alors LpmL.

66 Chapitre 3. NP-complétude Il est immédiat de constater que pm est une relation de pré-ordre sur l’ensemble des langages, c’est-à-dire qu’elle est réflexive et transitive.

3-G Lemme

La relationpmest réflexive et transitive.

Démonstration Réflexivité : soitAun langage, alorsApmAvia l’identité.

Transitivité : soitA,BetC des langages tels queApmBviaf etBpmC viag. Alors xAssi f(x)Bssig(f(x))C, doncApmC viagf. ⊓⊔

On en déduit la relation d’équivalence suivante, signifiant que deux langages ont même difficulté.

3-H Définition

Si deux langagesAetB vérifientApmBetBpmA, on noteraApmBet on dira queA etBsont équivalents pour les réductions many-one polynomiales.

Voici un exemple très simple de réductions.

3-I Exemple SoitENSEMBLE INDÉPENDANTle problème suivant : – entrée: un graphe non orientéGet un entierk;

question: existe-t-il un ensemble dek sommets indépendants, c’est-à-dire tous non reliés deux à deux ?

Ce problème semble très proche du problèmeCLIQUEprésenté au chapitre précédent (exemple2-AM). Montrons en effet queENSEMBLE INDÉPENDANTmp CLIQUE. Pour un grapheG= (V,E), on noteraG¯ le graphe(V,cE)sur les mêmes sommets mais dont les arêtes sont complémentaires à celles deG:xetysont reliés dansG¯ ssi ils ne sont pas reliés dansG(voir figure3.1). On remarque que le calcul deG¯ à partir deGse fait en temps polynomial.

Pour réduireCLIQUEàENSEMBLE INDÉPENDANT, il s’agit de transformer une instance (G,k)deCLIQUEen une instance(G,k)deENSEMBLE INDÉPENDANT. La réduction f que nous proposons est définie par f(G,k) = (G,¯ k), c’est-à-dire qu’on prend le complémentaire deG et qu’on garde la valeur de k. Cette fonction f est bien cal-culable en temps polynomial ; pour qu’il s’agisse d’une réduction, il reste à montrer que(G,k)CLIQUEssi f(G,k) = (G,¯ k)ENSEMBLE INDÉPENDANT. Dans un sens, si (G,k)CLIQUEalorsGpossède une clique de taillek, c’est-à-direksommets tous re-liés : dansG¯, cesksommets sont tous non reliés et forment un ensemble indépendant de taillek, donc(G,¯ k)ENSEMBLE INDÉPENDANT. L’autre sens est similaire.

Il s’avère que, par le même raisonnement,f est également une réduction deENSEMBLE INDÉPENDANTàCLIQUE(ce qui est une propriété assez exceptionnelle et ne reflète pas

3.2. Complétude 67

G G¯

Figure 3.1 – Un grapheGavec une clique de taille 3 et son « complémentaire »G¯ avec un ensemble indépendant de taille 3.

du tout le cas général des réductions entre problèmes). Donc les deux problèmes sont équivalents.

Il va sans dire que ce premier exemple de réductions est particulièrement simple : les réductions que nous verrons par la suite seront bien plus évoluées.

3.2 Complétude

Les réductions permettent de comparer les problèmes entre eux et donc de parler des problèmesles plus difficiles d’une classe de complexité. Nous introduisons pour cela les notions de difficulté et de complétude.

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