Version d'optimisation des problèmes de décision


26

Il est connu que chaque problème d'optimisation / recherche a un problème de décision équivalent. Par exemple, le problème de chemin le plus court

  • version optimisation / recherche: Étant donné un graphique non pondéré non orienté G=(V,E) et deux sommets v,uV , trouver un chemin le plus court entre v et u .
  • version de décision: Étant donné un graphe non pondéré non orienté G=(V,E) , deux sommets v,uV et un entier non négatif k , existe-t-il un chemin dans G entre u et v dont la longueur est au plus k ?

xXf(x)=min{f(x)xX}xXf(x)k

Mais l'inverse est-il également vrai, c'est-à-dire qu'il existe un problème d'optimisation équivalent pour chaque problème de décision? Sinon, quel est un exemple d'un problème de décision qui n'a pas de problème d'optimisation équivalent?


6
Ce bit est-il égal à zéro?
JeffE

5
Vous devez expliquer "équivalent" plus en détail, par exemple, voulez-vous dire que l'un peut être résolu en utilisant l'autre comme oracle / boîte noire en temps polynomial (ou dans l'espace logarithmique)? Vous souciez-vous de tous les problèmes ou seulement des problèmes à l'intérieur de NP ?
Kaveh

1
Selon votre point de vue, la question est soit banale (prendre tout problème de décision qui n'a pas de " k ") soit non répondable (comment prouver qu'il n'y a "pas de problème opt. Équivalent"?).
Raphael

Réponses:


28

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 .xXF(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)xXyF(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 )xXPOyF(x)Z(x,y)={Z(x,y)yF(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 ) xPEPOxXOpt(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)xXkQxyZ(x,y)k=minZ(x,y)k=max

Une première observation est maintenant que . La preuve n'est pas difficile et omise ici.PONPOPDNP

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 1f ( x ) L 2 L 1 L 2 L 1 m L 2L1L2fxxL1f(x)L2L1L2L1mL2

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 2P1P2P1TP2P1P2

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 TmP1TP2P1P2P2P1T

Soit , puis .P D T P E T P OPONPOPDTPETPO

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 2P 1 P 1 T P 2P1P2P1TP2P2P1P1TP2

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 ON 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 | PDTPEPONPOZPETPD{Z(x,y)yF(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 OPOPEPDTPETPO

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 mmTm

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 PPPmPPTP

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 ZPONPOZP D T P E T P O . P O T P E P ' ON P O P O T P ' E P O T P ' ET P ' DT P D T P E .PD

PDTPETPO.
POTPEPONPOPOTPE
POTPETPDTPDTPE.
T P D P ON P OP DN P P m P OP T P OTTPDPONPOPDNP et .PmPOPTPO

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σσ1qxXet tout nous avons .yF(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 ON P OPOPOZxXyF(x)Z(x,y)=2q(|x|)Z(x,y)+σ(y)ZPONPO

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 EPOTPExPOPE

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 .Zy 1 , y 2F ( 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,y2F(x)Z(x,y1)<Z(x,y2)Z(x,y1)<Z(x,y2)xPOxPOyxPO

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)+σ(PEZ(x,y)=2q(|x|)Z(x,y)+σ(y)2q(|x|)σ(y)y


"Un oracle pour un problème P est un sous-programme (hypothétique) qui peut résoudre des instances de P en temps constant." Un oracle ne doit-il prendre qu'un temps constant?
Tim

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

En ce qui concerne l'oracle @ Tim: Si vous avez trouvé / conçu une réduction entre deux problèmes et vous avez réduit le problème de trouver un algorithme efficace pour à trouver un algorithme efficace pour . Ou autrement dit la réduction vous dit que pour résoudre , vous pouvez utiliser . Il est comme en utilisant un sous - programme pour dans un algorithme de . Cependant les problèmes etATBABABABBAABsont souvent des problèmes où nous ne connaissons pas de solutions efficaces. Et en cas de réductibilité de Turing, nous l'utilisons même dans les cas où les problèmes impliqués ne sont pas du tout décidables.
uli

@Tim Ainsi est un sous-programme inconnu. Il est devenu une coutume en théorie de la complexité pour appeler l'algorithme hypothétique pour dérivé de la réduction comme un algorithme avec Oracle . L' appel du sous - programme inconnu pour un oracle exprime tout simplement que nous ne pouvons pas espérer trouver un algorithme efficace pour tout comme nous ne pouvons pas espérer obtenir un oracle pour . Ce choix est quelque peu malheureux, car il implique une capacité magique. Le coût pour l'oracle devrait êtrecomme sous-programme doit au moins lire l'entrée . BABBBB|x|x
uli

3
Une excellente réponse tout autour; la seule chose que j'ajouterais (en y revenant maintenant via une autre question) est que la «direction d'optimisation» est un peu inutile de complexité et pour être concret, nous pouvons toujours présumer que la fonction objectif doit être maximisée; si l'intention est de minimiser, alors nous pouvons simplement définir une nouvelle fonction objectif et réécrire toute la minimisation de comme maximisation de . ZZ=ZZZ
Steven Stadnicki

5

Comme le disent les commentaires, la réponse dépend des définitions exactes. Permettez-moi d'interpréter la question d'une manière très basique (voire naïve).

Soit une relation, c'est-à-dire .SS{(a,b)a,bΣ}

Nous définissons maintenant un problème de recherche pour :S

Étant donné , trouver un tel que .ab(a,b)S

et un problème de décision pour :S

Compte tenu réponse ou non .(a,b)(a,b)S

(par exemple, dans l'exemple donné dans la question, contiendra toutes les paires telle sorte qu'il existe un chemin entre et qui est plus court que .)S(u,v,k)uvk

Notez que ces deux problèmes sont bien définis . Pour cette définition , on peut se demander si les deux problèmes sont « équivalents » pour tout . En "équivalent", je veux dire que si l'un d'eux est calculable (c'est-à-dire qu'il existe un algorithme qui le résout), l'autre est également calculable. En général, ils ne le sont pas.S

Allégation 1 : la décision implique une recherche .

Preuve: Soit être l'algorithme qui résout le problème de la décision de . Étant donné une entrée , nous pouvons exécuter pour n'importe quel , l'un après l'autre ou en parallèle. S'il existe tel que , on finira par le trouver. Sinon, l'algorithme pourrait ne pas arrêter .DSSaDS(a,x)xΣb(a,b)S

Revendication 2 : Recherche ne pas implique la décision .

La raison en est que l'algorithme de recherche peut renvoyer un différent de celui dont nous avons besoin. C'est-à-dire que pour chaque il y a un qui est très facile à trouver, mais un autre qui ne l'est pas. Par exemple, laissez être un langage indécidable, puis définissez Pour chaque l'algorithme de recherche peut retourner . Mais aucun algorithme de décision ne peut répondre correctement si , pour toutes les paires . Si c'était le cas, il aurait résolu un problème indécidable, ce qui est impossible.a b b L S = { ( x , 0 ) x Σ } { ( x , 1 ) x L } . x 0 ( x , 1 ) S ( x , 1 )babbL

S={(x,0)xΣ}{(x,1)xL}.
x0(x,1)S(x,1)


S S Cela dépend de . Si, par exemple, est borné, il peut exister un algorithme qui s'arrête.SS


2
Le problème de décision est l' existence de st . a , b Sba,bS
Kaveh

Si la décision est définie comme l'existence de , alors la recherche implique la décision. b
Ran G.

1
Dans un sens faible, la calculabilité mais pas la complexité est une question plus délicate.
Kaveh
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.