Pourquoi les problèmes NP-complets sont-ils si différents en termes d'approximation?


22

J'aimerais commencer la question en disant que je suis programmeur et que je n'ai pas beaucoup d'expérience en théorie de la complexité.

Une chose que j'ai remarquée est que bien que de nombreux problèmes soient NP-complets, lorsqu'ils sont étendus à des problèmes d'optimisation, certains sont beaucoup plus difficiles à estimer que d'autres.

Un bon exemple est TSP. Bien que toutes sortes de TSP soient NP-complètes, les problèmes d'optimisation correspondants deviennent de plus en plus faciles à estimer avec des simplifications successives. Le cas général est NPO-complet, le cas métrique est APX-complet et le cas euclidien a en fait un PTAS.

Cela me semble contre-intuitif et je me demande s'il y a une raison à cela.


2
Si vous souhaitez lire les bases, consultez notre question de référence . Quant à votre question, vous observez la différence entre les problèmes faiblement et fortement NP-complets.
Raphael

Réponses:


14

L'une des raisons pour lesquelles nous constatons des complexités d'approximation différentes pour les problèmes NP-complets est que les conditions nécessaires pour NP-complet constituent une mesure très grossière de la complexité d'un problème. Vous connaissez peut - être la définition de base d'un problème étant NP-complet:Π

  1. est en NP, etΠ
  2. Pour tout autre problème dans NP, nous pouvons transformer une instance x de Ξ en une instance y de Π en temps polynomial de telle sorte que y est une instance oui de Π si et seulement si x est une instance oui de Ξ .ΞxΞyΠyΠxΞ

Considérons la condition 2: tout ce qui est requis, c'est que nous puissions prendre et le transformer en un y qui préserve la réponse oui / non "bit unique". Par exemple, la taille relative des témoins par rapport au oui ou au non (c'est-à-dire la taille de la solution dans le contexte d'optimisation) n'est pas conditionnée. La seule mesure utilisée est donc la taille totale de l'entrée qui ne donne qu'une condition très faible sur la taille de la solution. Il est donc assez "facile" de transformer un Ξ en un Π .xyΞΠ

Nous pouvons voir la différence dans divers problèmes NP-complets en examinant la complexité de certains algorithmes simples. -Coloration a une force brute O ( k n ) (où n est la taille d'entrée). Pour k -Dominating Set, une approche par force brute prend O ( n k ) . Ce sont, en substance, les meilleurs algorithmes exacts dont nous disposons. k -Vertex Cover a cependant un O très simple ( 2 k n c )kO(kn)nkO(nk)kO(2knc)algorithme (choisissez un bord, une branche sur quel point de terminaison inclure, marquez tous les couverts, continuez jusqu'à ce que vous n'ayez aucun bord non marqué ou que vous atteigniez votre budget de et bactrack). Sous les réductions de plusieurs un en temps polynomial (réductions de Karp, c'est-à-dire ce que nous faisons dans la condition 2 ci-dessus), ces problèmes sont équivalents.k

Lorsque nous commençons à aborder la complexité avec des outils encore plus délicats (complexité d'approximation, complexité paramétrée, toutes celles auxquelles je ne peux pas penser), les réductions que nous utilisons deviennent plus strictes, ou plutôt, plus sensibles à la structure de la solution, et les différences commencent à apparaître; -Vertex Cover (comme Yuval l'a mentionné) a une simple approximation 2 (mais n'a pas de FPTAS à moins que certaines classes de complexité ne s'effondrent), k -Dominating Set a un algorithme d'approximation ( 1 + log n ) (mais pas ( c log n ) -approximation pour certains c > 0kk(1+logn)(clogn)c>0), et l'approximation n'a pas vraiment de sens du tout pour la version simple de -Coloring.k


13

Une façon de considérer la différence entre la version de décision et la version d'optimisation consiste à considérer différentes versions d'optimisation de la même version de décision. Prenons par exemple le problème MAX-CLIQUE, qui est très difficile à estimer en termes de paramètre habituel - la taille de la clique. Si nous changeons le paramètre d'optimisation en logarithme de la taille de la clique, nous obtenons un problème avec un algorithme d'approximation . Si nous changeons le paramètre d'optimisation à 1 / 2 + k / n , où k est la taille de la clique, alors nous pouvons obtenir un O ( 1 )O(logn)1/2+k/nkO(1) algorithme d'approximation.

Ces exemples ne sont pas complètement inventés. Les problèmes de MAX-INDEPENDENT-SET (équivalent à MAX-CLIQUE) et MIN-VERTEX-COVER sont étroitement liés - le complément d'un ensemble indépendant est une couverture de sommets. Mais alors que le premier est difficile à approximer, le second a une simple approximation à 2.

Des réductions montrant la dureté NP d'un problème donné peuvent parfois être utilisées pour montrer également la dureté d'approximation, mais ce n'est pas toujours le cas - cela dépend de la réduction. Par exemple, la réduction de MAX-INDEPENDENT-SET à MIN-VERTEX-COVER n'implique pas la dureté d'approximation de ce dernier problème, qui est beaucoup plus facile à estimer que le premier.

En résumé, la dureté NP n'est qu'un aspect d'un problème. La dureté de l'approximation est un aspect différent, et elle dépend fortement de la notion d'approximation.


Êtes-vous d'accord avec la déclaration intuitive de Luke Mathieson selon laquelle les réductions de karp sont intrinsèquement moins "délicates" que les réductions utilisées pour les classes de complexité d'approximation? Sinon, avez-vous de bons exemples (peut-être dans d'autres classes de complexité comme EXP) contre cette idée?
GregRos

PNPP=NP

5

En tant qu'approche intuitive, considérez que les instanciations de problèmes NP-complets ne sont pas toujours aussi difficiles que le cas général. La satisifiabilité binaire (SAT) est NP-complète, mais il est trivial de trouver la solution à A v B v C v D v ... Les algorithmes de complexité ne font que délimiter le pire des cas, pas le cas moyen, ni même le cas à 90% .

Le moyen le plus simple de réduire un problème NP-complet à quelque chose de plus simple est d'exclure simplement les parties dures. C'est de la triche, oui. Mais souvent, les parties restantes sont toujours utiles pour résoudre des problèmes du monde réel. Dans certains cas, la ligne entre «facile» et «difficile» est facile à tracer. Comme vous l'avez souligné pour le TSP, il y a une forte réduction de la difficulté lorsque vous limitez le problème dans des directions «normales» auxquelles vous pourriez penser. Pour d'autres problèmes , il est plus difficile de trouver des moyens utiles réels de séparer les parties faciles et difficiles.

Pour quitter totalement le domaine de la CS et des mathématiques, pensez à une vieille voiture. Votre ami veut le conduire. Si vous devez lui dire: "Hé, la voiture fonctionne parfaitement. Ne la prenez pas au-dessus de 95 mph. Il y a une vilaine oscillation qui vous fera tomber de la route", ce n'est probablement pas un gros problème. De toute façon, votre ami voulait seulement l'emmener en ville. Cependant, si vous devez lui dire: "vous devez mettre l'embrayage en place juste pour passer du 1er au 2e, sinon le moteur va caler", il pourrait être plus difficile pour votre ami d'utiliser la voiture en ville sans une formation mineure.

De même, si un problème NP-complet ne devient difficile que dans des cas exotiques, il réduit la complexité assez rapidement lorsque vous examinez les sous-domaines. Cependant, si cela devient difficile dans les cas courants, il n'y a pas autant de sous-domaines utiles qui évitent la partie difficile.


P=NP
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.