Ci sono problemi facili da calcolare ma difficili da verificare?


25

Supponendo che i problemi P NP, NP-completi siano "difficili da risolvere, ma hanno risposte che sono facili da controllare". Ha senso considerare il contrario, cioè i problemi per i quali è facile calcolare una risposta corretta, ma difficile da verificare una soluzione presunta arbitraria?

Penso che un simile problema implicherebbe:

  1. Esponenzialmente molte risposte "corrette" per ogni dato input, perché altrimenti la verifica potrebbe essere effettuata semplicemente calcolando tutte le risposte corrette.

  2. Alcune risposte "corrette" sono facili da calcolare, ma altre sono difficili da trovare.


2
Ne dubito. Se una risposta è facile da calcolare, la scelta del certificato è semplice: fornire la risposta presunta con il problema e "controllare" la risposta risolvendo il problema e vedere se la risposta presunta è effettivamente la risposta.
Patrick87,

1
@ Patrick87 - Penso di aver affrontato questo problema nella domanda. Che dire di una funzione multivalore che associa un insieme di valori I f ( x ) = { y 1 , y 2 , ... } con un input x ? Supponiamo che | I f ( x ) | = 2 | x | e che è facile scegliere un elemento da I f ( x ) , ma dato z è difficile determinare se z fiof(X)={y1,y2,...}X|iof(X)|=2|X|iof(X)z . ziof(X)
rphv,

2
@ Patrick87 Il risolutore può essere deterministico e generare solo una delle risposte esistenti. È quindi necessario un modo efficiente per verificare se due soluzioni sono equivalenti. L'equivalenza su un set può essere più difficile della risoluzione di un problema su di esso?
Raffaello

In realtà mi è mancata quella parte, scusa. Tuttavia, sono propenso a dubitare della premessa. Ci penserò un po 'di più e tornerò se avrò pensieri più pertinenti.
Patrick87,

1
Un certificato di solito significa che esiste un modo semplice per ricostruire una prova, quindi per definizione se si fornisce un certificato la verifica è semplice. Una soluzione senza certificato potrebbe essere difficile.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


24

Se stai bene con problemi artificiali, puoi farne molti. Eccone alcuni:

  • Dato un intero positivo n in unario, rispondi a una formula 3CNF soddisfacente in n variabili booleane.
    Dare una formula 3CNF soddisfacente è facile, ma decidere se una determinata formula 3CNF è soddisfacente o meno è 3SAT, un noto problema NP-completo.
  • Non ci sono input. Rispondi a una macchina di Turing che si ferma (quando viene eseguita con un nastro di input vuoto).
    Dare una di queste macchine di Turing è facile, ma se una determinata macchina di Turing si ferma o no è indecidibile.

Aggiunto : A proposito, non penso che ciò che hai scritto nell'ultimo paragrafo contenga:

Penso che un tale problema implicherebbe in modo esponenziale molte risposte "corrette" per ogni dato input, perché altrimenti la verifica potrebbe essere effettuata semplicemente calcolando tutte le risposte corrette.

Se il problema ha una soluzione, in effetti controllare una risposta non è più difficile che calcolare la soluzione corretta. Tuttavia, se il problema ha una soluzione semplice e una soluzione difficile, non è possibile calcolare tutte le soluzioni in modo efficiente. Ecco uno di questi problemi (che è molto artificiale):

  • Data una macchina Turing M , rispondi a una delle seguenti affermazioni che sia vera: " M si ferma sul nastro di input vuoto", " M non si ferma sul nastro di input vuoto" e " M è una macchina di Turing".
    Fornire una soluzione è facile : puoi sempre scegliere " M is a Turing machine". Tuttavia, se una determinata risposta è corretta o meno è indecidibile. Si noti che in questo problema, esistono solo due soluzioni per ogni istanza.

Esiste un modo ragionevole per definire formalmente cosa significa che tali problemi sono "artificiali"? (Con il termine “ragionevole”, ho qualcosa media che possiamo ampiamente concordare, come dire che una definizione di “calcolabile” cattura la nostra intuizione di ciò che dovrebbe significare.)
Gilles 'SO-tappa è male'

@Gilles: No, non credo. Ho chiamato questi problemi "artificiali" perché è molto improbabile che qualcuno incontri prima questi problemi e poi scopra che è facile dare una risposta e difficile decidere la correttezza di un dato candidato di risposta. Ma questa "artificialità" non è affatto una nozione rigorosa.
Tsuyoshi Ito,

@Tsuyoshi Ito - Grazie per la tua chiara risposta. Ho modificato l'ultimo paragrafo per riflettere la tua intuizione.
rphv,

1

Sebbene la risposta di Tsuyoshi Ito copra la risposta "principale", c'erano due note più sottili che volevo aggiungere.

  1. Anche quando la soluzione è difficile da verificare, il controllo della soluzione è comunque facile da controllare con una stringa di prova breve. Cioè, estendendo un po 'la soluzione con ulteriori informazioni, diventa facilmente controllabile; la verifica è sempre in NP. Un modo per vedere questo è che l'agente che sta elaborando una soluzione può registrare tutti i bit casuali che usano e quindi il verificatore può usare quella stessa stringa casuale per eseguire lo stesso calcolo. (Il prover deve usare bit casuali, altrimenti emettono sempre la stessa risposta e il verificatore può sempre controllare facilmente calcolando una risposta con lo stesso metodo.)

  2. Per i computer quantistici, questa è una domanda molto aperta. Per i computer classici, il verificatore può sempre fare qualcosa come simulare il prover e verificare che ottengano la stessa risposta. È del tutto possibile che, per qualche problematico problema, esista un algoritmo quantico che produce una distribuzione uniforme tra tutte le soluzioni (esponenzialmente molte), che sono difficili da verificare. Non puoi rieseguire il prover, perché molto probabilmente otterrai una risposta diversa ogni volta.

    Come esempio di un simile tipo di problema, il problema di Deutsch-Jozsa ne soffre un po '. Se un oracolo non è una funzione bilanciata, un computer quantistico può determinare rapidamente che è così, ma non ci sono prove brevi che consentirebbero a un computer classico di verificarlo. (Questo è solo un problema "simile" perché può ancora essere controllato da un altro computer quantistico e il controllo è anche nel BPP classico anche se non è in P.)

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.