Cela dépend un peu de l'interprétation précise de votre question, mais je pense que votre scénario peut être génériquement décrit comme un problème « COMPUTE Y » où donné un algorithme de temps polynomial fixe universel et polynôme , sur l' entrée , affichez une chaîne , de telle sorte que génère 1, et existe toujours pour tous les possibles .Tp⟨x,1n⟩y∈{0,1}p(n)T(x,y,1n)yx
Une question pourrait alors être de savoir si un algorithme de temps polynomial pour «COMPUTE Y» impliqueP=NP
Dans ce cas, supposez que vous pouvez résoudre (disons) 3SAT en temps polynomial avec un nombre constant d'appels à un oracle qui résout 'COMPUTE Y', c'est-à-dire un algorithme où ssi est satisfaisable, sinon. Retournez le bit de sortie pour obtenir , un algorithme où si est satisfaisable et si n'est pas satisfaisant.AA(ϕ)=1ϕA(ϕ)=0A¯A¯(ϕ)=0ϕA¯(ϕ)=1ϕ
Convertissez cet algorithme (qui utilise un oracle pour 'COMPUTE Y') en un algorithme non déterministe (qui n'utilise aucun oracle) en remplaçant simplement chaque appel oracle par une supposition non déterministe de que vous pouvez vérifier avec un appel à . Vous avez maintenant un algorithme non déterministe qui décide avec succès des instances 3CNF insatisfaisantes, donc yTNP=coNPA¯yTNP=coNP
Soit dit en passant , si , cela implique que tous problèmes complets (comme -clique ou 3SAT) ont de légères variations dont le problème de décision est facile (toujours «oui») mais dont la version de recherche est difficileN P k N PNP=coNPNPkNP