Come è verificabile il problema del commesso viaggiatore in tempo polinomiale?


21

Quindi capisco l'idea che il problema decisionale sia definito come

Esiste un percorso P tale che il costo sia inferiore a C?

e puoi facilmente verificare che ciò sia vero verificando un percorso che ricevi.

Tuttavia, cosa succede se non esiste un percorso che soddisfi questi criteri? Come verificheresti la risposta di "no" senza risolvere il problema del percorso TSP migliore e scoprire che quello migliore ha un costo peggiore di C?


Personalmente, avevo solo sentito che la classe NP significava verifica dei poli-tempi, ma non avevo mai visto la limitazione che ciò significa solo verificare le risposte di "sì, ecco la soluzione". Sembra intuitivo immaginare che devi essere in grado di verificare qualsiasi soluzione in poly-time.
wjmccann,

Risposte:


36

NP è la classe di problemi in cui è possibile verificare le istanze "sì". Non viene fornita alcuna garanzia che è possibile verificare le istanze "no".

C

Ci sono alcuni problemi, come la fattorizzazione a numeri interi e qualsiasi problema in  P , che sappiamo essere sia in NP che in co-NP . (Grazie a user21820 per averlo segnalato.)

Non è noto se NP e co-NP siano la stessa serie di problemi. Se sono uguali, possiamo verificare sia l'istanza "yes" che "no" di TSP. Se sono diversi, allora PNP , poiché sappiamo che P=co-P (perché possiamo semplicemente negare la risposta di una macchina deterministica, dando la risposta al problema del complemento).


4
Vale la pena ricordare che conosciamo alcuni problemi sia in NP che in coNP, ma che non sappiamo se sono in P o no, come la fattorizzazione dei numeri interi.
user21820

@ user21820 La fattorizzazione a numeri interi non è un problema decisionale. La primalità è un problema decisionale e per anni è stato conosciuto sia in NP che in co-NP . Alla fine è stato dimostrato di essere in P pure. Non so se ci sono ancora dei problemi noti per essere sia in NP e co-NP senza aver dimostrato di essere in P .
Kasperd,

4
@kasperd: È risaputo che la fattorizzazione in numeri interi se trasformata in un problema decisionale (n ha un fattore primo inferiore a m?) è sia in NP che in coNP (entrambi i casi sì / no possono essere verificati in tempo polinomiale tramite il test di primalità dell'AKS dato il fattore di fattorizzazione in primo piano come certificato), ma non è stato ancora mostrato di essere in P.
user21820

1
@ user21820 Esistono modi molto più semplici e veloci per verificare una fattorizzazione rispetto a AKS.
Kasperd,

@kasperd: sarei curioso di sapere qui. Per verificare una fattorizzazione, è necessario ad esempio i fattori primi e per ogni fattore primo la prova che è primi.
gnasher729,

2

"Come è verificabile il problema del commesso viaggiatore in tempo polinomiale?"

O nel modo in cui descrivi, o non è noto che sia così.

"Tuttavia, cosa succede se non esiste un percorso che soddisfi questi criteri?"

In tal caso, per tutte le macchine NP per il problema decisionale, la macchina restituirà no per tutti i certificati candidati.

"Come verificheresti la risposta di" no "senza risolvere il problema del percorso TSP migliore e scoprire che quello migliore ha un costo peggiore di C?"

Bene, si potrebbe ricevere una prova interattiva che non esistono tali percorsi .

Il problema che descrivi, TSP, non è noto per essere in coNP , quindi non è noto per essere un modo "NP-simile" per verificare che non esiste tale percorso.

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.