Problèmes de décision vs problèmes «réels» qui ne sont pas oui ou non


36

J'ai lu dans de nombreux endroits que certains problèmes sont difficiles à approximer (il est difficile de les approcher ). Mais l'approximation n'est pas un problème de décision: la réponse est un nombre réel et non Oui ou Non. De plus, pour chaque facteur d'approximation souhaité, il existe de nombreuses réponses correctes et de nombreuses erreurs, ce qui change avec le facteur d'approximation souhaité!

Alors, comment peut-on dire que ce problème est NP-difficile?

(inspiré par la deuxième puce de Comment est-il difficile de compter le nombre de chemins simples entre deux nœuds dans un graphe orienté? )

Réponses:


27

Comme vous l'avez dit, il n'y a pas de décision à prendre. Il faut donc de nouvelles classes de complexité et de nouveaux types de réductions pour parvenir à une définition appropriée de la dureté NP pour les problèmes d' optimisation .

Une façon de faire est d’avoir deux nouvelles classes NPO et PO contenant des problèmes d’optimisation et qui imitent bien sûr les classes NP et P pour les problèmes de décision. De nouvelles réductions sont également nécessaires. Ensuite, nous pouvons recréer une version de NP-hardness pour les problèmes d’optimisation dans le sens indiqué pour les problèmes de décision. Mais nous devons d’abord convenir de ce qu’est un problème d’optimisation .

Définition: Soit un problème d’optimisation . est l'ensemble d' entrées ou d' instances convenablement codées sous forme de chaînes. est une fonction qui mappe chaque instance sur un ensemble de chaînes, solutions réalisables de l’instance . C'est un ensemble parce qu'il existe de nombreuses solutions à un problème d'optimisation. Nous n’avons donc pas de fonction objective qui nous indique pour chaque paire d’instance et solutionne son coût ou sa valeur . O=(X,L,f,opt)XLxXx ( x , y ) y L ( x ) o p tf(x,y) yL(x)opt nous dit si nous maximisons ou minimisons.

Cela nous permet de définir ce qu'est une solution optimale : Soit la solution optimale d'une instance d'un problème d'optimisation avecLa solution optimale est souvent désignée par .x X O = ( X , L , f , o p t ) f ( x , y o p t ) = o p t { f ( x , y ' ) | y 'L ( x ) } . y *yoptL(x)xXO=(X,L,f,opt)

f(x,yopt)=opt{f(x,y)yL(x)}.
y

Nous pouvons maintenant définir la classe NPO : Soit l’ensemble de tous les problèmes d’optimisation avec:O = ( X , L , f , o p t )NPOO=(X,L,f,opt)

  1. XP
  2. Il existe un polynôme avec pour toutes les instances et toutes les solutions possibles . De plus, il existe un algorithme déterministe qui décide en temps polynomial si .| y | p ( | x | ) x X y L ( x ) y L ( x )p|y|p(|x|)xXyL(x)yL(x)
  3. f peut être évalué en temps polynomial.

L'intuition derrière cela est:

  1. Nous pouvons vérifier efficacement si est réellement une instance valide de notre problème d'optimisation.x
  2. La taille des solutions possibles est polynomiale dans la taille des entrées. Et nous pouvons vérifier efficacement si est une solution fesible de l’instance .xyL(x)x
  3. La valeur d'une solution peut être déterminée efficacement.yL(x)

Cela reflète la définition de , maintenant pour PO : Soit l'ensemble des problèmes de qui peuvent être résolus par un algorithme déterministe en temps polynomial.P O N P ONPPONPO

Nous pouvons maintenant définir ce que nous voulons appeler un algorithme d'approximation : un algorithme d' approximation d'un problème d'optimisation est un algorithme qui calcule une solution réalisable pour une instance .y L ( x ) x XO=(X,L,f,opt)yL(x)xX

Remarque: pour que nous ne demandions pas une solution optimale , nous souhaitons seulement avoir une solution réalisable .

Maintenant nous avons deux types d’erreurs: L’ erreur absolue d’une solution réalisable d’une instance du problème d’optimisation est.x X O = ( X , L , f , o p t ) | f ( x , y ) - f ( x , y ) |yL(x)xXO=(X,L,f,opt)|f(x,y)f(x,y)|

Nous appelons l'erreur absolue d'un algorithme d'approximation pour le problème d'optimisation lié par si l'algorithme calcule pour chaque instance une solution réalisable avec une erreur absolue liée à .O k A x X kAOkAxXk

Exemple: Selon le théorème de Vizing, l' index chromatique d'un graphe (le nombre de couleurs dans la coloration des contours avec le moins de couleurs utilisées) est ou , où est le degré maximal du noeud. À partir de la démonstration du théorème, on peut concevoir un algorithme d'approximation calculant une coloration de contour avec couleurs. En conséquence, nous avons un algorithme d'approximation pour le -Problem où l'erreur absolue est limitée par .ô + 1 ô ô + 1 M i n i m u m - E d g e C o l o r i n g 1ΔΔ+1ΔΔ+1MinimumEdgeColoring1

Cet exemple est une exception, les petites erreurs absolues sont rares, nous définissons donc l' erreur relative de l'algorithme d'approximation sur l'instance du problème d'optimisation avec pour tout et soitA x O = ( X , L , f , o p t ) f ( x , y ) > 0 x X y L ( x )ϵA(x)AxO=(X,L,f,opt)f(x,y)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

où est une solution réalisable calculée par l'approximation de l' algorithme .A(x)=yL(x)A

Nous pouvons maintenant définir l'approximation-algorithme pour le problème d'optimisation comme étant un -approximation-algorithme pour si l'erreur relative est bornée par pour chaque instance , ainsi AO=(X,L,f,opt)δOϵA(x)δ0xX

ϵA(x)δxX.

Le choix de dans le dénominateur de la définition de l'erreur relative a été sélectionné pour rendre la définition symétrique permettant de maximiser et de minimiser. La valeur de l'erreur relative . En cas de problème d’agrandissement, la valeur de la solution n’est jamais inférieure à et jamais supérieure à pour un problème de minimisation.max{f(x,A(x)),f(x,y)}ϵA(x)[0,1](1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

Nous pouvons maintenant appeler un problʻeme d'optimisation approximatif s'il existe un algorithme aproximation pour qui s'exécute en temps polynomial.δδAO

Nous ne voulons pas regarder l'erreur pour chaque instance , nous regardons seulement dans le pire des cas. Ainsi , nous définissons , l' erreur de relativ MAXIMAL de l'approximation algorithme pour le problème d'optimisation être xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

Oùdevrait être la taille de l'instance.|x|

Exemple: une correspondance maximale dans un graphique peut être transformée en une couverture de nœud minimale en ajoutant tous les nœuds incidents de la correspondance à la couverture de sommet. Doncles bords sont couverts. Comme chaque sommet de sommet, y compris celui optimal, doit avoir l’un des nœuds de chaque bord couvert, sinon il pourrait être amélioré, nous avons . Il en résulte que Ainsi, l'algorithme glouton pour une correspondance maximale est un approximatif algorithme pour . Par conséquent, vaut approximativement.C1/2|C|1/2|C|f(x,y)

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

Malheureusement, l'erreur relative n'est pas toujours la meilleure notion de qualité pour une approximation, comme le montre l'exemple suivant:

Exemple: Un simple algorithme glouton peut approcher . Une analyse montre que et donc serait -approximable.MinimumSetCover

|C||C|Hn1+ln(n)
MinimumSetCoverln(n)1+ln(n)

Si l'erreur relative est proche de la définition suivante est avantageuse.1

Soit être un-problème d'optimisation avec pour tout et et une approximation de l' algorithme pour . Le rapport approximatif de la solution réalisable de l'instance est O=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x)A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

Comme précédemment on appelle une approximation de l' algorithme un -approximation algorithme pour le problème d'optimisation si l'approximation du rapport est délimitée par pour chaque entrée . Et encore une fois si nous avons un algorithme de -approximation pour le problème d'optimisation alors est appelé approximable . Encore une fois, nous nous intéressons uniquement au cas le plus défavorable et définissons le rapport d’approximation maximal comme étant ArOrA(x)r1xX

rA(x)r
rAOOr rA(n)
rA(n)=sup{rA(x)|x|n}.
En conséquence, le rapport d'approximation est supérieur à pour les solutions sous-optimales. Ainsi, les meilleures solutions ont des ratios plus faibles. Pour nous pouvons maintenant écrire qu'il est approximatif . Et dans le cas de nous savons d'après l'exemple précédent qu'il est approximativement égal à . Entre erreur relative et approximation-ratio nous avons des relations simples: 1MinimumSetCover(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

Pour les petits écarts par rapport aux valeurs optimales et l'erreur relative est avantageuse par rapport au rapport d'approximation, ce qui indique ses points forts pour les grands écarts et .ϵ<1/2r<2ϵ1/2r2

Les deux versions de approximable ne se chevauchent pas, une version a toujours et l'autre . Le cas n'est pas problématique car il n'est atteint que par des algorithmes produisant une solution exacte et ne nécessitant par conséquent pas d'être traités comme des algorithmes d'approximation.αα1α1α=1

Une autre classe apparaît souvent APX . Il est définit comme l'ensemble de tous les problèmes d'optimisation- de ce havre un -approximation algorithme avec qui fonctionne en temps polynomiale.ONPOrr1

Nous sommes presque à travers. Nous aimerions copier les idées réussies de réductions et de complétude de la théorie de la complexité. L'observation est que beaucoup de variantes de décision NP-difficiles de problèmes d'optimisation sont réductibles les unes aux autres, alors que leurs variantes d'optimisation ont des propriétés différentes quant à leur approximabilité. Cela est dû à la réduction polynomiale de temps-Karp utilisée dans les réductions de NP-complétude, ce qui ne préserve pas la fonction objective. Et même si les fonctions objectives sont préservées, la réduction de temps polynomial peut réduire la qualité de la solution.

Nous avons besoin d’une version plus forte de la réduction, qui mappe non seulement les instances du problème d’optimisation aux instances de , mais également les bonnes solutions de et les bonnes solutions de .O1O2O2O1

Nous définissons donc l’ approximation-préservation-réduction pour deux problèmes d’optimisation et de . Nous appelons réductible à , écrit comme : , s'il existe deux fonctions et et une constante avec:O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1APO2ghc

  1. g(x1,r)X2 pour tous et rationnelx1X1r>1
  2. L2(g(x,r1)) si pour tous les et rationnelL1(x1)x1X1r>1
  3. h(x1,y2,r)L1(x1) pour tout et rationnel et pour toutx1X1r>1y2L2(g(x1,r))
  4. Pour fixé, les deux fonctions et peuvent être calculées par deux algorithmes en temps polynomial dans la longueur de leurs entrées.rgh
  5. Nous avons pour tout et rationnel et pour tout
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

Dans cette définition, et dépendent de la qualité de la solution . Ainsi, pour différentes qualités, les fonctions peuvent différer. Cette généralité n'est pas toujours nécessaire et nous travaillons simplement avec et .ghrg(x1)h(x1,y2)

Maintenant que nous avons la notion d'une réduction pour l'optimisation, nous pouvons enfin transférer beaucoup de choses de la théorie de la complexité. Par exemple, si nous savons que et que nous montrons que il en résulte que aussi.O2APXO1APO2O1APX

Enfin, nous pouvons définir ce que nous entendons par -hard et -complete pour des problèmes d'optimisation:CC

Soit un problème d'optimisation de et une classe de problèmes d'optimisation de puis s'appelle -hard en ce qui concerne si pour tout est en .ONPOCNPOOCAPOC OAPO

Ainsi, une fois de plus, nous avons la notion du problème le plus difficile de la classe. Pas étonnant qu'un problème dur soit appelé -complet par rapport à s'il s'agit d'un élément de .CCAPC

Ainsi, nous pouvons maintenant parler de complet et de complet, etc. Et bien sûr, il nous est maintenant demandé de présenter un premier problème complet avec qui prend le rôle de . Il est presque naturel que puisse être démontré comme étant complet. Avec l'aide du théorème PCP, on peut même montrer que est .NPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
Oh, et s'il te plaît, accepte mes excuses pour cette publication relativement longue, mais je n'ai pas eu le temps d'en écrire une plus courte.
Uli

1
La ligne de frappe est bien sûr que, selon le théorème PCP, vous pouvez lier MAX3SAT et SAT, montrant ainsi qu’il est NP-difficile d’approcher MAX 3SAT à une valeur supérieure à une constante. C'est l'équivalent du théorème de Cook-Levin, dans un sens.
Suresh

1
@Suresh Bien sûr, mais ce résultat que vous mentionnez nécessite une réduction préservant les écarts, pour autant que je m'en souvienne. Et comme vous en avez déjà parlé dans votre message, je ne voulais pas les reproduire ici.
uli

Bonne réponse, +1! Je me demande si votre réponse est basée sur certaines références?
Tim

@ Tim Bien sûr, il existe des livres, j'ai énuméré quelques-uns dans les commentaires d'une autre réponse
uli

19

Ce qui est généralement montré est la dureté NP d'une version "Gap" du problème. Par exemple, supposons que vous vouliez montrer qu'il est difficile d'approximer SET COVER avec un facteur de 2.

Vous définissez l'instance "promise" suivante de SET COVER que nous appellerons 2-GAP-SET-COVER:

Corrige un nombre . 2-GAP-SET-COVER comprend toutes les occurrences de couvertures de jeu où la taille de la couverture de jeu optimale est soit:

  • au plus
  • au moins2

Supposons que nous montrions que le problème consistant à décider dans lequel des deux cas tombe un problème est NP-complet. Ensuite, nous avons montré que l'approximation de SET COVER dans un facteur de 2 est NP-difficile, car nous pourrions utiliser un tel algorithme pour distinguer ces deux cas.


4

Les deux réponses existantes sont très instructives, mais je ne pense pas qu’une d’elles réponde réellement à la question suivante: "Comment un problème qui n’est même pas un problème de décision peut-il être NP-difficile, alors que NP est une classe de problèmes de décision ? "

La réponse est de se rappeler ce que NP-hard signifie. Un problème  est NP-dur sous une sorte de réduction si tous les problèmes de NP peut être réduit à  . (Et  est NP-complet si c'est NP-difficile et en NP.) Informellement, NP-difficile signifie "si je pouvais résoudre ce problème, je pourrais tout résoudre en NP", même si le problème dont vous parlez n'est pas t dans NP. La dureté de la NP ne nécessite pas l'appartenance à la NP, mais elle nécessite la bonne notion de réduction.LLL

Quelques exemples.

  1. Tout problème NEXPTIME-complet  est NP-difficile avec des réductions multiples de temps polynomiales. Tout problème dans NP est dans NEXPTIME et est donc réductible à  par définition. D'après le théorème de la hiérarchie temporelle,  ne peut pas être dans NP, donc   n'est pas NP-complet.LLLL
  2. #SAT est le problème du calcul du nombre d'assignations satisfaisantes aux formules CNF. Ce n'est clairement pas dans NP car, comme vous l'avez fait remarquer, NP est une classe de problèmes de décision et #SAT n'en fait pas partie. Cependant, #SAT est NP-difficile avec des réductions de Turing en temps polynomial, car nous pouvons y réduire la SAT. Dans un exemple SAT, nous demandons combien d'assignations satisfaisantes il y a: s'il y en a au moins une, nous disons "satisfiable"; sinon, "insatisfiable".
  3. Soit APPROXSAT le problème du calcul d’un nombre compris dans un facteur dix du nombre d’assignations satisfaisantes d’une formule CNF  . Juste pour être ennuyeux, supposons que vous ayez le droit d’arrondir. Ainsi, si  a trois assignations satisfaisantes, l’algorithme est autorisé à penser "0,3" et à arrondir à zéro. Ceci est NP-difficile avec des réductions de Turing en temps polynomial, car nous pouvons toujours réduire la SAT à ce niveau. Avec une formule CNF  , demandez le nombre d'assignations satisfaisantes à , où les  sont de nouvelles variables.  est satisfiable si, et seulement si,  est, maisφ φ φ ' = φ ( Z 1Z 10 ) Z i φ ' φ φ ' φ φ 'φφφφ=φ(Z1Z10)Ziφφφ  est garanti que aura plus de 1 000 assignations satisfaisantes, le cas échéant. Donc,  est satisfiable si, et seulement si, l'algorithme APPROXSAT dit que  a au moins 100 assignations satisfaisantes.φφ
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.