Difetto nel mio NP = CoNP Proof?


12

Ho questa "prova" molto semplice per NP = CoNP e penso di aver fatto qualcosa di sbagliato da qualche parte, ma non riesco a trovare ciò che è sbagliato. Qualcuno mi può aiutare?

Sia A un problema in NP, e sia M il fattore decisivo per A. Sia B il complemento, ovvero B sia in CoNP. Poiché M è un decisore, puoi usarlo anche per decidere B (capovolgi la risposta). Ciò non significa che risolviamo i problemi NP e CoNP con la stessa M?

Per dirla più concretamente.

Sia A un problema NP-completo e sia M il decisore per A. Considerare qualsiasi problema B in CoNP. Consideriamo il suo complemento non B, che è in NP, e quindi otteniamo una riduzione polinomiale ad A. Quindi eseguiamo il nostro decisore M e capovolgiamo la nostra risposta. Otteniamo così un decisore per B. Ciò implica che anche B è in NP.

Posso sapere cosa c'è di sbagliato nel mio ragionamento?


2
Come le risposte che seguono spiegano a lungo, non stai usando correttamente la nozione di "decisore". I problemi nel coNP non sono quelli con un "decisore NP capovolto". Esiste un'importante assimmetria nei problemi NP tra l'accettazione di un input ("ci sono scelte non deterministiche che portano all'accettazione") e il rifiuto ("tutte le scelte non deterministiche portano al rifiuto"). Il tuo argomento presuppone che per NP rifiutare una stringa significhi ("ci sono scelte non deterministiche che portano al rifiuto"), e questo è il difetto. In altre parole, hai confuso i tuoi quantificatori.
Andrej Bauer,

1
Potresti trovare illuminanti le risposte a questa domanda .
Raffaello

@Raphael Sorprendentemente, quella domanda non menziona affatto il co-NP! (Anche se sono d'accordo che sia una lettura utile per qualcuno che non è sicuro di questo genere di cose.)
David Richerby,

@DavidRicherby Dato che la risposta è, fondamentalmente, "usa la definizione di NP invece di intuizione imperfetta", lo spero!
Raffaello

1
Regola empirica: la costruzione "capovolgi gli stati finali" funziona solo per modelli deterministici. Studia come non riesce a capire perché NFA. Vedi anche qui e qui .
Raffaello

Risposte:


16

Ci sono due possibili bug in questa prova:

  1. Quando dici "decisore", intendi una TM deterministica. In questo caso, la migliore traduzione (a nostra conoscenza) da una macchina NP ad una macchina deterministica può produrre una macchina che viene eseguito in tempo esponenziale, così dopo che completa si avrà un decisore per il complemento in tempo esponenziale, dimostrando che (o, dopo qualche ottimizzazione, c o - N P P S P A C E ).coNPEXPcoNPPSPACE

  2. Quando dici "decisore" intendi una TM non deterministica. In questo caso, capovolgere la risposta non completerà necessariamente la lingua. In effetti, il linguaggio della macchina capovolta sarà tutte le parole per le quali esiste una corsa di rifiuto di su wMw


Non sono sicuro del perché sia ​​importante. La mia definizione di decisore è che accetto se l'input è in L e rifiuto se l'input non è in L. Questo decider può essere deterministico o non deterministico. Tuttavia, dico che L è in NP, e quindi se sto usando una TM non deterministica, prenderò il tempo polinomiale. Inoltre, posso sapere perché lanciare il bit non integra necessariamente la lingua. Per quanto ne so CoNP = {L | non L \ in NP}. Pertanto, se capovolgo il bit, dovrei ottenere la risposta?

Let . Considera una TM non deterministica che funziona come segue: in una corsa, produce sempre "rifiutare". In altre esecuzioni, riconosce L in tempo polinomiale (possibile da L N P ). Considera cosa succede se capovolgi il bit - la corsa di rifiuto diventa accettabile per ogni input, quindi la macchina completata riconosce Σ - che non è il complemento a meno che L = . Ti suggerisco di rivedere attentamente le definizioni di non determinismo per comprenderlo appieno. LNPLLNPΣL=
Shaull

Non voglio dire che capovolgo il bit di ogni singolo percorso di calcolo. Ciò che intendo è che se la mia TM accetta, significa che esiste un percorso di calcolo che raggiunge uno stato di accettazione. Questo significa che L è in NP, il che significa che il complemento è in coNP. Se la mia TM rifiuta, significa che ogni percorso di calcolo viene rifiutato. Ciò significa che il complemento è in NP, il che significa che L è in CoNP.

4
@simpleton: sai che un NTM non ha accesso a tutti i percorsi contemporaneamente, solo un percorso? Pensi come qualcuno che analizza deterministicamente il comportamento dell'NTM dall'esterno.
frafl

7
Penso che l'OP potrebbe trarre vantaggio dal cercare più attentamente la definizione di NP.
MCH

15

Ecco un altro modo di esaminare il punto che Shaull fa riguardo ai "decisori".

Un problema è in NP se e solo se esiste un algoritmo tale cheV:{0,1}n×{0,1}poly(n){0,1}

  • per ogni istanza YES , esiste un certificato p { 0 , 1 } p o l y ( n ) tale che V ( x , p ) = 1 ; ex{0,1}np{0,1}poly(n)V(x,p)=1

  • per ogni istanza NO , abbiamo V ( x , p ) = 0 per tutto p { 0 , 1 } p o l y ( n ) .x{0,1}nV(x,p)=0p{0,1}poly(n)

Queste sono generalmente descritte come condizioni di completezza e solidità per l' algoritmo di verifica NP : la condizione di "completezza" indica che ogni istanza YES ha un certificato e la condizione di "solidità" indica che l'algoritmo non viene mai ingannato da un'istanza NO. Per coNP è il contrario: esiste un algoritmo di verifica che accetterà almeno un certificato per qualsiasi istanza NO, ma che non può mai essere ingannato da un'istanza YES.

Se vuoi mostrare che NPcoNP , devi mostrare che ogni problema NP ha un verificatore di tipo coNP , che può certificare NO istanze invece di YES istanze. Non è possibile farlo con una macchina di Turing non deterministica: non esiste alcun modo che conosciamo, ad esempio, per mappare in modo efficiente istanze di SAT tra loro, in modo tale che tutte le formule insoddisfacenti siano mappate su quelle soddisfacenti, e viceversa. (Negare l'output della formula non è sufficiente, ad esempio: una formula che è soddisfacente ma non una tautologia verrebbe semplicemente mappata su una formula diversa che era soddisfacente ma non una tautologia, quando invece avremmo bisogno di una formula insoddisfacente). Semplicemente non sappiamo in alcun modo di "ingannare" una macchina non deterministica nel rilevare qualcosa come tutti i suoi percorsi che vengono rifiutati.

Potresti chiedere: "La macchina di Turing non deterministica non sa quale risultato ottiene?" La risposta sarebbe no , non lo è. Il funzionamento della macchina non deterministica non gli dà accesso a nessuna informazione su più di un percorso computazionale alla volta: potresti pensare che funzioni in molti percorsi in parallelo, ma all'interno di ogni percorso conosce solo quel percorso. Se provi ad equipaggiarlo con la capacità di "realizzare" se ci sono o meno soluzioni come qualche punto, stai invece descrivendo una macchina con un oracolo NP , che è più (potenzialmente!) Potente di una semplice macchina di Turing non deterministica.

  • Δ2PPNPPNP

  • Σ2PNPNPPNPnon ha una risposta a causa dell'oracolo, ma sarebbe comunque bloccato ad operare all'interno di uno dei suoi (piuttosto potenti) rami computazionali, in modo che non sarebbe in grado di dire se tutti i suoi rami computazionali stessero rifiutando.

NPNPNP

Quindi, no, non esiste una macchina (deterministica o di altro tipo) che può semplicemente "decidere" che un problema è un'istanza SI o NO in modo efficiente, a meno che non utilizziamo gli oracoli; ma anche con un simile oracolo, finiamo con una macchina che è (probabilmente) più potente di NP o coNP , non quella che mostra che sono uguali.


Ciao, grazie a te e Shauli per i commenti. Stai dicendo che un NTM può riconoscere un linguaggio NP in polytime, ma non può decidere un linguaggio NP in polytime? Penso che sia quello che sto assumendo quando dico di avere un decisore per problemi NP.
Simpleton,

2
PNPNPPNPCoNPPNPUNSATNP

5
La durezza NP è definita con riduzioni multiple, non riduzioni oracolari.
Yuval Filmus

6

Il tuo ragionamento implica che RE = coRE, ma questo è dimostrabilmente falso. Potresti provare a capirne una prova e poi vedere dove la tua riduzione fallisce.

{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


2

Ecco una versione TL; DR; Ho anche pubblicato una risposta più lunga a una domanda simile.

AMxAMxMx. Se inverti semplicemente gli stati di accettazione e di rifiuto, passerai da una macchina che ha avuto alcuni percorsi di accettazione e alcuni di quelli rifiutati a una macchina che ha dei percorsi di rifiuto e alcuni di quelli che accettano. In altre parole, ha ancora accettare percorsi, quindi accetta ancora. Capovolgere gli stati di accettazione e rifiuto di una macchina non deterministica non comporta, in generale, l'accettazione del linguaggio del complemento.

È questa asimmetria di definizione (accetta se qualsiasi percorso accetta; rifiuta solo se tutti i percorsi rifiutano) che rende difficile il problema NP vs co-NP .


-2

In realtà concordo sul fatto che la tua macchina non deterministica M può decidere se una determinata stringa di input è in B. Tuttavia, "decide" in modo leggermente diverso rispetto al modo in cui decide se un determinato input è in A. In quest'ultimo caso, lo fa da ( non deterministicamente) trovare uno stato accettante. Nel primo caso, lo fa non trovando alcun stato accettante. Perché questa differenza è importante? Vediamo:

Alla domanda M "La stringa è nella lingua A?"

M raggiunge uno stato di accettazione. Questo, puoi provare (vedi, ad esempio, il teorema del libro Sipser 7.20) implica che esiste una macchina deterministica che verifica che la stringa sia in A nel tempo polinomiale

Alla domanda M "La stringa è nella lingua B?"

M raggiunge gli stati di rifiuto su tutti i rami del suo calcolo non deterministico. Se pensi a come funziona la prova del verificatore sopra, vedrai che non può essere realizzato in questa situazione. Ciò è approssimativamente dovuto al fatto che il verificatore utilizza il percorso che M prende come "prova" il suo spazio di stato. In questo caso, non esiste nessuno di questi percorsi.

Conclusione:

Se consideri l'esistenza di un verificatore deterministico del tempo polinomiale per una lingua come la definizione di una lingua NP (che dovresti), l'esistenza di M non prova che B sia in NP.


1
MBBM
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.