Un défaut dans mon NP = CoNP Proof?

12

J'ai cette "preuve" très simple pour NP = CoNP et je pense que j'ai fait quelque chose de mal quelque part, mais je ne trouve pas ce qui ne va pas. Est-ce que quelqu'un peut m'aider?

Soit A un problème dans NP, et soit M le décideur de A. Soit B le complément, c'est-à-dire que B est dans CoNP. Puisque M est un décideur, vous pouvez également l'utiliser pour décider B (inversez simplement la réponse). Cela ne signifie-t-il pas que nous résolvons les problèmes de NP et de CoNP avec le même M?

Pour le dire plus concrètement.

Soit A un problème NP-complet, et soit M un décideur pour A. Considérons tout problème B dans CoNP. Nous considérons son complément non-B, qui est en NP, puis obtenons une réduction polynomiale à A. Ensuite, nous exécutons notre décideur M et retournons notre réponse. Nous obtenons donc un décideur pour B. Cela implique que B est également dans NP.

Puis-je savoir ce qui ne va pas avec mon raisonnement?

niais
la source
2
Comme les réponses ci-dessous l'expliquent en détail, vous n'utilisez pas correctement la notion de «décideur». Les problèmes dans le coNP ne sont pas ceux avec un "décideur NP inversé". Il y a une asymétrie importante dans les problèmes NP entre l'acceptation d'une entrée ("il y a des choix non déterministes qui conduisent à l'acceptation") et le rejet ("tous les choix non déterministes conduisent au rejet"). Votre argument suppose que pour NP rejeter une chaîne signifie ("il y a des choix non déterministes qui conduisent au rejet"), et c'est le défaut. En d'autres termes, vous avez mélangé vos quantificateurs.
Andrej Bauer
1
Vous pourriez trouver les réponses à cette question éclairantes.
Raphael
@Raphael Étonnamment, cette question ne mentionne pas du tout le co-NP! (Bien que je convienne que c'est une lecture utile pour quelqu'un qui n'est pas sûr de ce genre de chose.)
David Richerby
@DavidRicherby Puisque la réponse est, fondamentalement, "utilisez la définition de NP au lieu d'une intuition imparfaite", j'espère bien!
Raphael
1
Règle générale: la construction "flip final states" ne fonctionne que pour les modèles déterministes. Étudiez les raisons pour lesquelles NFA échoue à comprendre pourquoi. Voir aussi ici et ici .
Raphael

Réponses:

16

Il y a deux bogues possibles dans cette preuve:

  1. Lorsque vous dites «décideur» - vous voulez dire une MT déterministe. Dans ce cas, la meilleure traduction (à notre connaissance) d'une machine NP vers une machine déterministe peut produire une machine qui s'exécute en temps exponentiel, donc après le complément vous aurez un décideur pour le complément en temps exponentiel, prouvant que (ou, après une certaine optimisation, ).c o - N P P S P A C EcoNPEXPcoNPPSPACE

  2. Quand vous dites «décideur», vous voulez dire une MT non déterministe. Dans ce cas, retourner la réponse ne complètera pas nécessairement la langue. En effet, le langage de la machine retournée sera tous les mots pour lesquels il existe un rejet de surwMw

Shaull
la source
Je ne sais pas pourquoi cela compte. Ma définition d'un décideur est que j'accepte si l'entrée est en L et que je rejette si l'entrée n'est pas en L. Ce décideur peut être déterministe ou non déterministe. Cependant, je dis que L est dans NP, et donc si j'utilise un TM non déterministe alors je prendrai le temps polynomial. Aussi, puis-je savoir pourquoi retourner le bit ne complète pas nécessairement la langue. À ma connaissance CoNP = {L | pas L \ dans NP}. Par conséquent, si je retourne le bit, dois-je obtenir la réponse?
Soit . Considérons une MT non déterministe qui fonctionne comme suit - en une seule fois, elle génère toujours "rejet". Dans d'autres exécutions, il reconnaît en temps polynomial (possible depuis ). Considérez ce qui se passe si vous retournez le bit - le cycle de rejet devient acceptant pour chaque entrée, de sorte que la machine complémentée reconnaît - qui n'est le complément que si . Je vous suggère de revoir attentivement les définitions du non-déterminisme pour bien comprendre cela. L L N P Σ L = LNPLLNPΣL=
Shaull
Je ne veux pas dire que je retourne le bit de chaque chemin de calcul unique. Ce que je veux dire, c'est que si ma MT accepte, cela signifie qu'il existe un chemin de calcul qui atteint un état d'acceptation. Cela signifie que L est en NP, ce qui signifie que le complément est en coNP. Si ma MT rejette, cela signifie que chaque chemin de calcul est rejeté. Cela signifie que le complément est en NP, ce qui signifie que L est en CoNP.
4
@simpleton: Vous savez qu'un NTM n'a pas accès à tous les chemins à la fois, un seul chemin? Vous pensez comme quelqu'un qui analyse de façon déterministe le comportement de la MNT de l'extérieur.
frafl
7
Je pense que le PO pourrait bénéficier d'une recherche plus approfondie de la définition de NP.
MCH
15

Voici une autre façon de voir l'argument que Shaull fait à propos des «décideurs».

Un problème est en NP si et seulement s'il existe un algorithme tel queV:{0,1}n×{0,1}poly(n){0,1}

  • pour chaque instance OUI , il existe un certificat p { 0 , 1 } p o l y ( n ) tel que V ( x , p ) = 1 ; etx{0,1}np{0,1}poly(n)V(x,p)=1

  • pour chaque instance NO , nous avons V ( x , p ) = 0 pour tout p { 0 , 1 } p o l y ( n ) .x{0,1}nV(x,p)=0p{0,1}poly(n)

Celles-ci sont généralement décrites comme les conditions d' exhaustivité et de solidité de l' algorithme de vérification NP : la condition d '"exhaustivité" indique que chaque instance YES possède un certificat, et la condition de "solidité" indique que l'algorithme n'est jamais trompé par une instance NO. Pour coNP, c'est l'inverse: il existe un algorithme de vérification qui accepte au moins un certificat pour n'importe quelle instance NO, mais qui ne peut jamais être dupé par une instance YES.

Si vous voulez montrer que NPcoNP , vous devez montrer que chaque problème NP a un vérificateur de type coNP , qui peut certifier AUCUNE instance au lieu des instances OUI. Vous ne pouvez pas le faire avec une machine de Turing non déterministe: il n'y a aucun moyen à notre connaissance, par exemple, de mapper efficacement les instances de SAT les unes aux autres, de telle sorte que toutes les formules non satisfaisantes soient mappées à des formules satisfaisables, et vice versa. (Nier la sortie de la formule ne suffit pas, par exemple: une formule qui est satisfaisable mais pas une tautologie serait simplement mise en correspondance avec une formule différente qui était satisfaisante mais pas une tautologie, alors que nous aurions plutôt besoin d'une formule insatisfaisante.) Il n'y a tout simplement aucun moyen que nous connaissions de «tromper» une machine non déterministe pour détecter quoi que ce soit comme tous ses chemins étant des chemins de rejet.

Vous pourriez vous demander: "La machine de Turing non déterministe ne sait- elle pas quel résultat elle obtient?" La réponse serait non , ce n'est pas le cas. Le fonctionnement de la machine non déterministe ne lui donne accès à aucune information sur plus d'un chemin de calcul à la fois: vous pourriez penser qu'elle fonctionne sur plusieurs chemins en parallèle, mais à l'intérieur de chaque chemin, elle ne connaît que ce chemin. Si vous essayez de lui donner la capacité de "réaliser" s'il existe ou non des solutions à un moment donné, vous décrivez plutôt une machine avec un oracle NP , qui est plus (potentiellement!) Plus puissant qu'une simple machine de Turing non déterministe.

  • Par exemple, si vous équipez un (déterministe) avec une machine de Turing NP oracle, alors les problèmes qui peuvent être résolus en temps polynomial sur cette machine est appelée , qui est souvent écrit P N P . L '«oracle» permet à la machine de recevoir simplement les réponses aux problèmes NP- complétés en une seule étape, et donc P N P contient évidemment P ; et parce que vous pouvez annuler les réponses, il contient également évidemment du coNP . Mais nous ne savons pas si les confinements inverses se maintiennent, exactement parce que nous ne savons pas comment inciter les machines de Turing non déterministes à détecter les réponses NON.Δ2PPNPPNP

  • De plus, si vous donnez à une machine de Turing non déterministe la capacité de se rendre compte de l'issue d'un problème dans NP , les problèmes que cette machine peut résoudre en temps polynomial sont appelés , ou N P N P , et ceci est largement considéré comme strictement supérieur à la classe P N P . Il contient également à la fois NP et coNP - mais comme NP , il n'est pas connu qu'il soit fermé sous des compléments: la machine oracle non déterministe pourrait être en mesure de savoir quand un problème dans NPΣ2PNPNPPNPa une réponse NON à cause de l'oracle, mais il serait toujours obligé de fonctionner dans l'une de ses propres branches de calcul (assez puissantes), de sorte qu'il ne serait pas en mesure de dire si toutes ses propres branches de calcul étaient rejetées.

Si vous continuez à fournir à la machine des oracles plus puissants pour résoudre les problèmes dans , N P N P , etc., vous finissez par définir les classes de la hiérarchie polynomiale , qui sont considérées comme toutes distinctes les unes des autres des premier niveau.NPNPNP

Donc, non, il n'y a pas de machine (déterministe ou autre) qui puisse simplement «décider» qu'un problème est une instance OUI ou NON efficacement, à moins que nous n'utilisions des oracles; mais même avec un tel oracle, nous nous retrouvons avec une machine qui est (probablement) plus puissante que NP ou coNP , pas une qui montre qu'ils sont égaux.

Niel de Beaudrap
la source
Salut, merci à toi et Shauli pour les commentaires. Êtes-vous en train de dire qu'un NTM peut reconnaître un langage NP en polytime, mais ne peut pas décider d'un langage NP en polytime? Je pense que c'est ce que je suppose quand je dis que j'ai un décideur pour les problèmes de NP.
nigaud
2
PNPNPPNPCoNPPNPUNSATNP
5
La dureté NP est définie avec plusieurs réductions, pas des réductions oracle.
Yuval Filmus
6

Votre raisonnement implique que RE = coRE, mais c'est prouvablement faux. Vous pouvez essayer de trouver une preuve de cela et voir ensuite où votre réduction échoue.

{x:P halts on input x}{x:(x,w)L for some w}L

L={x:p halts on input x}L={(x,w):p halts on input x in w steps}LL={x:(x,w)L for some w}

L={x:(x,w)L for some w}LP(x,w)Q(x)wP(x,w)wP(x,w)wQL={x:Q halts on input x}

L={(P,x):P halts on input x}PxHH(P,x)(P,x)LGG(x)=H(x,x)(G,G)LGGH(G,G)(G,G)L(G,G)LGGH(G,G)(G,G)LH

H

Yuval Filmus
la source
2

Voici une version TL; DR; J'ai également publié une réponse plus longue à une question similaire.

AMxAMxMx. Si vous inversez simplement les états d'acceptation et de rejet, vous passerez d'une machine qui avait des chemins d'acceptation et de rejet à une machine qui a des chemins de rejet et des chemins d'acceptation. En d'autres termes, il a toujours des chemins acceptants, il accepte donc toujours. Inverser les états d'acceptation et de rejet d'une machine non déterministe ne vous fait généralement pas accepter le langage du complément.

C'est cette asymétrie de définition (accepter si n'importe quel chemin accepte; rejeter seulement si tous les chemins rejettent) qui rend le problème NP vs co-NP difficile.

David Richerby
la source
-2

En fait, je suis d'accord que votre machine non déterministe M peut décider si une chaîne d'entrée donnée est en B. Cependant, elle "décide" légèrement différemment de la façon dont elle décide si une entrée donnée est en A. Dans ce dernier cas, elle le fait par ( non déterministe) trouver un état acceptant. Dans le premier cas, il le fait en ne trouvant aucun État acceptant. Pourquoi cette différence est-elle importante? Voyons voir:

Lorsque vous demandez à M "la chaîne est-elle dans la langue A?"

M atteint un état accepté. Ceci, vous pouvez le prouver (voir, par exemple, le théorème du livre Sipser 7.20) implique qu'il existe une machine déterministe qui vérifie que la chaîne est en A en temps polynomial

Lorsque vous demandez à M "la chaîne est-elle dans la langue B?"

M atteint des états de rejet sur toutes les branches de son calcul non déterministe. Si vous pensez au fonctionnement de la preuve vérificateur ci-dessus, vous verrez qu'elle ne peut pas être accomplie dans cette situation. C'est à peu près parce que le vérificateur utilise le chemin que M emprunte à travers son espace d'état comme "preuve". Dans ce cas, il n'y a pas un seul tel chemin.

Conclusion:

Si vous considérez l'existence d'un vérificateur polynomial déterministe du temps pour une langue comme la définition d'une langue NP (ce que vous devriez), l'existence de M ne prouve pas que B est dans NP.

Alex
la source
1
MBBM