Solutori NP ottimali


12

Risolvi un problema di ricerca NP completo, ad es. Il modulo di ricerca di SAT. La ricerca di Levin fornisce un algoritmo per risolvere che è ottimale in un certo senso. In particolare, l'algoritmo è "Esegui tutti i possibili programmi in coda di rondine sull'input , una volta che alcuni restituiscono risposte test se è corretto". È ottimale nel senso che dato un programma che risolve con complessità temporale , la complessità temporale di soddisfaX{0,1}×{0,1}LXPxPyPXtP(n)tL(n)L

tL(n)<2|P|p(tP(n))

dove è un polinomio fisso che dipende dal modello di calcolo precisop

L 'ottimalità di può essere formulata in un modo un po' più forte. Vale a dire, per ogni e un programma che risolve con la promessa nel tempo , la complessità temporale di limitata agli input in soddisfaM{0,1}QXMtQM(n)tLM(n)LM

tLM(n)<2|Q|q(n,tQM(n))

dove è un polinomio fisso. La differenza cruciale è che può essere ad esempio polinomiale anche seqtQM(n)PNP

L'ovvia "debolezza" di è il grande fattore in questo limite. È facile vedere che se esiste un algoritmo che soddisfa un limite della stessa forma con sostituito da un polinomio inquindi . Questo perché possiamo ritenere che sia un programma che risolve una determinata istanza di codificando a fondo la risposta. Allo stesso modo, se può essere sostituito da una funzione sub esponenziale diquindi viene violata l'ipotesi del tempo esponenziale. Tuttavia, la risposta alla seguente domanda è meno ovvia (per me):L2|Q|2|Q||Q|P=NPQX2|Q||Q|

Supponendo l'ipotesi del tempo esponenziale e altre congetture ben note (ad es. Non degenerazione della gerarchia polinomiale, esistenza di funzioni unidirezionali), se necessario, esiste un algoritmo risolve per ogni e un programma che risolve con la promessa nel tempo , la complessità temporale di limitata agli input in soddisfaAXM{0,1}QXMtQM(n)tAM(n)AM

tAM(n)<f(|Q|)q(n,tQM(n))+g(|Q|)

dove è polinomiale, è sub-esponenziale e è arbitrarioqfg

Se la risposta è positiva, può essere polinomio? Qual è il tasso di crescita di (chiaramente almeno esponenziale sotto ETH)? Se la risposta è negativa, può esistere il polinomio se ETH è sbagliato ma ?fgfPNP

Risposte:


12

Considera il seguente algoritmo (una variante dell'algoritmo di Levin):

Esegui i primi algoritmi in parallelo. Inoltre, esegui in parallelo un algoritmo a forza bruta che prova tutte le possibili soluzioni una per una. (Esegui tutti gli algoritmi con la stessa velocità.)n

Interrompi quando uno degli algoritmi trova una soluzione.

Considera due casi (dato un input di lunghezza ):xn

  • Q è uno dei primi algoritmi. Quindi il tempo di esecuzione è .nO(ntQM(n))poly(n)

  • Q non è uno dei primi algoritmi (quindi ). Quindi il tempo di esecuzione è limitato dal tempo di esecuzione dell'algoritmo a forza bruta. Abbiamo che il tempo di esecuzione è .nn<2|Q|2nO(1)=22O(|Q|)

Abbiamo

tAM(n)poly(n)tQM(n)+22O(|Q|).

(Qui, è polinomiale e è doppia esponenziale in ; possiamo migliorare la dipendenza di su peggiorando la dipendenza di su .)f(n)g(n)ng(n)nf(n)n


C'è una variante di questo che soddisfa in qualche modo un limite migliore, sebbene non sia della forma che ho richiesto. Vale a dire, invece di utilizzare un algoritmo a forza bruta, esegui la normale ricerca di Levin. Questo produce lo stesso limite con il secondo termine sostituito da ~2|Q|tQM(2|Q|)
Vanessa
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.