Un oracle est-il jamais utile si vous ne pouvez pas contrôler les instances d'entrée?


8

Disons F est un oracle pour un problème NP, mais je ne peux pas appeler cet oracle avec une instance d'entrée. Au lieu de cela, chaque fois que j'appelleFJe reçois retourné une instance aléatoire et une solution. Ainsi, je sais queF est en fait capable de résoudre arbitrairement NP-des problèmes difficiles, je ne peux pas spécifier celui que je veux résoudre.

Est-il possible d’utiliser un tel oracle pour résoudre un NP-problème plus rapide? Mon instinct dit non parce que l'utilisation naïve de l'oracle nécessite toujoursO(2n)temps en appelant l'oracle suffisamment pour vérifier chaque solution. Je ne peux tout simplement pas penser à un moyen de le prouver.


2
Vous devriez peut-être modifier la question de cette façon: "... chaque fois que j'appelle FJe reçois une instance aléatoire de taille n avec une distribution uniforme ... "(oùn est la taille de l'entrée de la machine de Turing qui peut accéder F).
Vor

@Vor, j'ai aussi pensé à ajouter cette stipulation, mais je ne suis pas sûr que cela fasse vraiment une différence. Même si la distribution était telle qu'elle permettait à un nombre polynomial d'appels d'obtenir certaines instances, il faudrait tout de même plus que des appels polynomiaux pour obtenir une grande majorité d'instances. Je pense que la seule chose qui compte, c'est que la distribution est que je ne peux pas en quelque sorte modifier la distribution pour l'incliner en faveur de mon cas spécifique.
Mike Izbicki

1
Je suis d'accord avec vous, mais sans limite / distribution "instance aléatoire" n'a pas de sens.
Vor

1
Je pense que par "plus vite" vous voulez dire "en P" mais vous voudrez peut-être plutôt demander si c'est en BPP .
Xodarap

@Xodarap Je suis plus intéressé par une méthode pour utiliser un tel oracle pour convertir n'importe quelle classe (hypothétiquement) plus complexe en une classe plus faible. Pas nécessairement NP -> P. De plus, je ne vois pas particulièrement à quel point les classes probabilistes seraient utiles.
Mike Izbicki

Réponses:


8

Comme l'a souligné Xodarap, si vous avez besoin que votre algorithme avec «l'oracle aléatoire» produise toujours la bonne réponse, alors l'oracle aléatoire est inutile. Le problème devient plus intéressant si nous permettons une faible probabilité d'erreur (où la probabilité est par rapport à l'instance aléatoire choisie par l'oracle).

De plus, comme l'a souligné Vor dans ses commentaires sur la question, il est inutile de dire «instance aléatoire» sans spécifier de distribution de probabilité. L'une des hypothèses raisonnables à faire ici est que cette instance aléatoire est choisie uniformément au hasard dans l'ensemble de toutes les chaînes de longueur p ( n ), où n est la longueur d'entrée et p est un polynôme fixe. Nous pourrions faire d'autres hypothèses, plus faibles, sur la distribution de probabilité.

Ici, nous ferons l'hypothèse assez générale et montrerons que l'existence d'un algorithme à temps polynomial randomisé avec un «oracle aléatoire» pour les problèmes NP-complets a une conséquence surprenante même sous cette faible hypothèse.

Supprimons l'exigence selon laquelle «l'oracle aléatoire» résoudra un problème dans NP (sur une instance choisie au hasard). Maintenant, «l'oracle aléatoire» peut être n'importe quelle distribution de probabilité prédéterminée sur des chaînes de longueur polynomiale, et chaque fois qu'il est demandé, il émet une chaîne selon cette distribution de probabilité. La seule exigence est que cette distribution de probabilité ne dépend que de la longueur d'entrée. Notez que votre modèle est en effet un cas particulier de ce modèle. Dans votre modèle, la distribution de probabilité doit avoir la forme suivante: elle choisit d'abord une instance uniformément aléatoire y dans un ensemble en fonction de la longueur d'entrée, puis renvoie une paire ( y , g ( y )), où g: {0, 1} * → {0, 1} est la fonction caractéristique d'un problème de décision dans NP. Maintenant, nous autorisons toute distribution de probabilité, tant que la distribution est déterminée par la seule longueur d'entrée.

Un «oracle» de cette forme générale est appelé un conseil randomisé . La classe des problèmes de décision qui peuvent être résolus par un algorithme de temps polynomial randomisé avec un conseil randomisé (avec erreur bilatérale bornée) est appelée BPP / rpoly, et il est connu que cette classe est égale à P / poly . (L'inclusion BPP / rpoly⊆P / poly peut être prouvée de la même manière qu'une inclusion BPP⊆P / poly bien connue. Pour une preuve de ce dernier, voir par exemple le théorème 6.3 de Goldreich [Gol08].)

Cela signifie que si un problème NP-complet peut être résolu dans votre modèle, alors NP⊆P / poly. Cependant, il est connu que NP⊆P / poly implique que la hiérarchie polynomiale s'effondre au deuxième niveau [KW98, Cai07]. La plupart des théoriciens de la complexité considèrent l'effondrement de la hiérarchie polynomiale comme une grande surprise. Si nous pensons que la hiérarchie polynomiale ne s'effondre pas, alors les problèmes NP-complets ne peuvent pas être résolus efficacement avec «l'oracle aléatoire» dans votre sens.

Références

[Cai07] Jin-Yi Cai. S 2 p ⊆ ZPP NP . Journal of Computer and System Sciences , 73 (1): 25–35, février 2007. DOI: 10.1016 / j.jcss.2003.07.015 .

[Gol08] Odre Goldreich. Complexité informatique: une perspective conceptuelle . Cambridge University Press, 2008.

[KW98] Johannes Köbler et Osamu Watanabe. Nouvelles conséquences de l'effondrement du NP ayant de petits circuits. SIAM Journal on Computing , 28 (1): 311–324, 1998. DOI: 10.1137 / S0097539795296206 .


0

Pensons spécifiquement au problème NP-complet préféré de tout le monde: 3SAT.

Il est possible (bien que peu probable) que chaque fois que vous appelez votre oracle, il vous donne une affectation pour la même instance. Plus précisément, chaque fois que cela pourrait vous donner une affectation pour la phrase triviale:

(xxx)(xxx)

Mais vous connaissez déjà la mission pour cela. Votre Oracle ne peut donc pas être utile.

Plus formellement, si nous appelons votre oracle A, puis PANP (en supposant PNP...)


Cela ne signifie pas que deux instances 3SAT sont réductibles en temps polynomial. Seulement, ils sont réductibles en temps polynomial étant donné un oracle à instance aléatoire. Droite?
Mike Izbicki

Clarifié; faites-moi savoir si je ne comprends pas ce que vous entendez par "oracle à instance aléatoire".
Xodarap

Eh bien, il faudra un nombre exponentiel d'appels pour obtenir une affectation pour la même instance. En fait, il faudra autant d'appels que pour obtenir une affectation au problème particulier que j'essaie de résoudre! Vous jetez tout ce travail et il peut y avoir un moyen intelligent de l'utiliser.
Mike Izbicki

@Mike: La complexité concerne le pire des cas . Puisque dans le pire des cas, l'oracle est inutile (comme indiqué ci-dessus), c'est tout ce que nous devons savoir.
Xodarap
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.