Comme déjà indiqué dans les commentaires, cela dépend des définitions, comme d'habitude. Ma tentative de répondre à cela nécessite plusieurs définitions, ce sera donc un autre exemple de mon incapacité à donner des réponses concises.
Définition: Un problème d'optimisation est un tuple avec(X,F,Z,⊙)
- X l'ensemble d' instances ou d' entrées correctement codées (chaînes) .
- x ∈ X F ( x ) xF est une fonction qui mappe chaque instance à un ensemble de solutions possibles de .x∈XF(x)x
- ( x , y ) x ∈ X y ∈ F ( x ) Z ( x , y ) yZ est la fonction objective qui mappe chaque paire , où et , à un nombre réel appelé la valeur de .(x,y)x∈Xy∈F(x)Z(x,y)y
- min max⊙ est la direction d'optimisation , soit soit .minmax
Définition: Une solution optimale d'une instance d'un problème d'optimisation est une solution réalisable pour laquelle . La valeur d'une solution optimale est notée et appelée l' optimum .P O y ∈ F ( x ) Z ( x , y ) = ⊙ { Z ( x , y ′ ) ∣ y ′ ∈ F ( x ) } O p t ( x )x∈XPOy∈F(x)Z(x,y)=⊙{Z(x,y′)∣y′∈F(x)}Opt(x)
Définition: Le problème d'évaluation , noté , correspondant au problème d'optimisation est le suivant: Étant donné une instance , calculez si a une solution optimale et sortons «pas de solution optimale» sinon.P O x ∈ X O p t ( x ) xPEPOx∈XOpt(x)x
Notez que cela demande simplement la valeur de la solution optimale et non la solution entière elle-même avec tous ses détails.
Définition: Le problème de décision , noté correspondant au problème d'optimisation est le suivant: Étant donné une paire , où et , décider si a une solution réalisable tel que if et tel que if .P O ( x , k ) x ∈ X k ∈ Q x y Z ( x , y ) ≤ k ⊙ = min Z ( x , y ) ≥ k ⊙ = maxPDPO(x,k)x∈Xk∈QxyZ(x,y)≤k⊙=minZ(x,y)≥k⊙=max
Une première observation est maintenant que . La preuve n'est pas difficile et omise ici.PO∈NPO⇒PD∈NP
Or intuitivement et correspondant à ne sont pas plus difficiles que lui-même. Pour exprimer ce sentiment de manière formelle (définissant ainsi ce que l' équivalent est censé signifier), nous utiliserons des réductions.P D P O P OPEPDPOPO
Rappelons qu'un langage est temps polynomial réductible à un autre langage s'il existe une fonction , calculable en temps polynomial, telle que pour tous les mots , . Ce type de réductibilité est appelé Karp ou réductibilité plusieurs-à-un , et si est réductible à de cette manière, nous l'exprimons en écrivant . Il s'agit d'un concept central dans la définition de l'achèvement de NP.L 2 f x x ∈ L 1 ⇔ f ( x ) ∈ L 2 L 1 L 2 L 1 ≤ m L 2L1L2fxx∈L1⇔f(x)∈L2L1L2L1≤mL2
Malheureusement, les réductions de plusieurs à un vont entre les langues et il n'est pas clair comment les utiliser dans le contexte de problèmes d'optimisation. Par conséquent, nous devons envisager un autre type de réductibilité, la réductibilité de Turing . Nous avons d'abord besoin de ceci:
Définition: Un oracle pour un problème est un sous-programme (hypothétique) qui peut résoudre des instances de en temps constant.PPP
Définition: Un problème est polynomial en temps Turing-réductible à un problème , écrit , si les instances de peuvent être résolues en temps polynomial par un algorithme ayant accès à un oracle pour .P 2 P 1 ≤ T P 2 P 1 P 2P1P2P1≤TP2P1P2
Informellement, tout comme avec , la relation exprime que n'est pas plus difficile que . Il est également facile de voir que si peut être résolu en temps polynomial, . Encore une fois est une relation transitive. Le fait suivant est évident:P 1 ≤ T P 2 P 1 P 2 P 2 P 1 ≤ T≤mP1≤TP2P1P2P2P1≤T
Soit , puis .P D ≤ T P E ≤ T P OPO∈NPOPD≤TPE≤TPO
Parce que, étant donné la solution complète, calculer sa valeur et décider si elle respecte la borne est simple.k
Définition: Si pour deux problèmes et deux relations , tiennent, on écrit ; notre notion d' équivalence .P 2 P 1 ≤ T P 2 P 2 ≤ P 1 P 1 ≡ T P 2P1P2P1≤TP2P2≤P1P1≡TP2
Nous sommes maintenant prêts à prouver que étant donné que le problème d'optimisation correspondant est et est une valeur entière. Nous devons montrer que est . Nous pouvons déterminer avec une recherche binaire utilisant l'orcale pour . La définition de garantit que pour un polynôme , donc le nombre d'étapes dans la recherche binaire est polynomial dans. P O ∈ N P O Z P E ≤ T P D ⊙ { Z ( x , y ) ∣ y ∈ F ( x ) } P D N P O | Z ( x , y ) | ≤ 2 q ( | x | ) q | x | ◻PD≡TPEPO∈NPOZPE≤TPD⊙{Z(x,y)∣y∈F(x)}PDNPO|Z(x,y)|≤2q(|x|)q|x|□
Pour un problème d'optimisation la relation avec est moins claire. Dans de nombreux cas concrets, on peut montrer directement que . Pour prouver que cela est généralement valable dans le cadre donné ici, nous avons besoin d'une hypothèse supplémentaire.P E P D ≡ T P E ≡ T P OPOPEPD≡TPE≡TPO
Nous devons d'abord étendre des paires de langues aux paires des problèmes de décision correspondants. Ensuite, il est facile de voir que est plus général que .≤ T ≤ m≤m≤T≤m
Soit et problèmes de décision; puis . Cela tient parce qu'une réduction de plusieurs à un peut être interprétée comme faisant usage d'un oracle de manière très restreinte: l'oracle est appelé une fois, à la fin, et son résultat est également renvoyé comme résultat global. P ′ P ≤ m P ′ ⇒ P ≤ T P ′ ◻PP′P≤mP′⇒P≤TP′□
Maintenant, nous sommes prêts pour la finale:
Soit et supposons que valeur entière et que est NP-complet, alorsAvec les observations précédentes il reste à montrer . Pour ce faire nous allons présenter un problème tel que . Nous avons alorsLes deuxième et troisième tiennent en raison de l'équivalence de la version de décision et d'évaluation vérifiée plus tôt. Le troisième découle de la NP-complétude de et des deux faits mentionnés précédemment, à savoir ZPO∈NPOZP D ≡ T P E ≡ T P O . P O ≤ T P E P ' O ∈ N P O P O ≤ T P ' E P O ≤ T P ' E ≤ T P ' D ≤ T P D ≤ T P E .PD
PD≡TPE≡TPO.
PO≤TPEP′O∈NPOPO≤TP′EPO≤TP′E≤TP′D≤TPD≤TPE.
≤ T P D P O ∈ N P O ⇒ P D ∈ N P P ≤ m P ′ O ⇒ P ≤ T P ′ O≤T≤TPDPO∈NPO⇒PD∈NP et .
P≤mP′O⇒P≤TP′O
Maintenant les détails: Supposons que les solutions réalisables de soient encodées en utilisant un alphabet équipé d'une commande totale. Soit les mots de listés par ordre de longueur non décroissante et ordre lexicographique dans les blocs de mots de longueur commune. (Ainsi est le mot vide.) Pour tout soit désigne l'entier unique tel que . Les deux et peut être calculé en temps polynomial. Soit un polynôme tel que pour tout Σ w 0 , w 1 , … Σ ∗ w 0 y ∈ Σ ∗ σ ( y ) i y = w i σ σ - 1 q x ∈ X y ∈ F ( x ) σ ( y ) < 2 q ( | x | )POΣw0,w1,…Σ∗w0y∈Σ∗σ(y)iy=wiσσ−1qx∈Xet tout nous avons .y∈F(x)σ(y)<2q(|x|)
Or le problème est identique à exception d'une fonction objectif modifiée . Pour et nous prenons . est calculable en temps polynomial donc . P O Z ′ x ∈ X y ∈ F ( x ) Z ′ ( x , y ) = 2 q ( | x | ) ⋅ Z ( x , y ) + σ ( y ) Z ′ P ′ O ∈ N P OP′OPOZ′x∈Xy∈F(x)Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)Z′P′O∈NPO
Pour montrer que nous observons que est faisable pour si et seulement si c'est faisable pour . Nous pouvons supposer que c'est le cas, car le cas opposé est trivial à gérer. x P O P ′ EPO≤TP′ExPOP′E
La substitution de pour est monotone en ce sens que pour tout , si alors . Cela implique que toute solution optimale pour dans est une solution optimale de dans . Ainsi notre tâche se réduit au calcul d'une solution optimale de dans .Z′y 1 , y 2 ∈ F ( x ) Z ( x , y 1 ) < Z ( x , y 2 ) Z ′ ( x , y 1 ) < Z ′ ( x , y 2 ) x P ′ O x P O y x P ′ OZy1,y2∈F(x)Z(x,y1)<Z(x,y2)Z′(x,y1)<Z′(x,y2)xP′OxPOyxP′O
En interrogeant l'oracle pour nous pouvons obtenir la valeur de . La formation du reste de ce nombre modulo donne partir duquel peut être calculé en temps polynomial. Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(P′EZ′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)2q(|x|)σ(y)y