Tutti gli algoritmi noti per la risoluzione dei problemi NP-completi sono costruttivi?


11

Esistono algoritmi noti che generano correttamente "sì" a un problema NP completo senza generare implicitamente un certificato?

Capisco che è semplice trasformare un oracolo di soddisfacibilità in un cercatore di assegnazione soddisfacente: basta scorrere le variabili, chiedendo ogni volta all'oracolo di soddisfacibilità di risolvere la congiunzione di quella variabile con il problema originale.

Ma un tale involucro sarebbe mai utile? Tutti i solutori di sat effettuano ricerche nello spazio di possibili incarichi?

Oppure ci sono alcuni tipi di problemi NP completi (commesso viaggiatore, somma di sottogruppi, ecc.) In cui il risolutore può, per esempio, sfruttare un teorema matematico per dimostrare che deve esistere una soluzione? Ti piace fare una prova per contraddizione?

Risposte:


11

A quanto ho capito, stai ponendo due domande: (1) ci sono ad esempio algoritmi SAT più intelligenti della forza bruta ingenua e (2) ci sono algoritmi che danno semplicemente una risposta SÌ / NO quando si risolve un problema NP-completo senza effettivamente trovare la soluzione. Risponderò a entrambe le domande in questo ordine.

(1) È perfettamente possibile risolvere un problema senza forza bruta, cioè senza provare ingenuamente tutte le possibilità. Per fare un esempio, i moderni solutori SAT completi possono applicare algoritmi intelligenti che inferiscono o dimostrano che certi incarichi (parziali) non possono portare a una soluzione, quindi non esaminano nemmeno quella parte.

n!nnO(2nn2)

K

KsolKsolK

O*(2K)K


KO*(2K)


Perfetto. Il documento k-path è esattamente il tipo di cosa che stavo cercando. Grazie!
user82928,
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.