Problemi approssimativi # P-hard


9

Considera il classico problema # 3 P-completo # 3SAT, vale a dire, contare il numero di valutazioni per rendere soddisfacente un 3CNF con variabili. Sono interessato all'approssimabilità additiva . Chiaramente, esiste un algoritmo banale per ottenere 2 n - 1 -error, ma se k < 2 n - 1 , è possibile avere un algoritmo di approssimazione efficiente, o questo problema è anche # P-difficile?n2n1k<2n1


Se , esiste un algoritmo poly-time con errore additivo k . Se k = 2 n / p o l y ( n ) , ci sarebbe un algoritmo a tempo multiplo randomizzato con errore additivo k . Quando k è significativamente più piccolo (ma non polinomialmente piccolo), mi aspetterei che sia NP-duro, ma non # P-duro, poiché la durezza #P di solito dipende dal fatto che sia un calcolo esatto. k=2n1poly(n)kk=2n/poly(n)kk
Thomas

Potresti fornire un riferimento per i primi due reclami? Scusa, sono un principiante ...
user0928,

Risposte:


10

Siamo interessati ad approssimazioni additive a # 3SAT. cioè dato un 3CNF su n variabili contano il numero di assegnazioni soddisfacenti (chiamare questo a ) fino all'errore additivo k .ϕnak

Ecco alcuni risultati di base per questo:

Caso 1: k=2n1poly(n)

Qui c'è un algoritmo deterministico poli-tempo: Let . Ora valutare φ su m ingressi arbitrarie (ad esempio, i primi lexicographically m ingressi). Supponiamo che di questi input soddisfi ϕ . Quindi conosciamo un ℓ in quanto vi sono almeno incarichi soddisfacenti e un 2 n - ( m - )m=2n2k=poly(n)ϕmmϕaa2n(m)poiché ci sono almeno incarichi insoddisfacenti. La lunghezza di questo intervallo è 2 n - ( m - ) - = 2 k . Quindi, se produciamo il punto medio 2 n - 1 - m / 2 + questo è entro k della risposta corretta, come richiesto.m2n(m)=2k2n1m/2+k

Caso 2: k=2n/poly(n)

Qui abbiamo un algoritmo randomizzato poly-time: Valuta at m punti casuali X 1 , , X m{ 0 , 1 } n . Lascia α = 1ϕmX1,,Xm{0,1}neε=k/2n. Emettiamo2nα. Per avere questo errore al massimokabbiamo bisogno dik| 2nα-a| =2n| α-a/2n| ,che equivale a| α-a/2nα=1mi=1mϕ(Xi)ε=k/2n2nαk

k|2nαa|=2n|αa/2n|,
Di unlimite di Chernoff, P [ | α - a / 2 n | > ε ] 2 - Ω ( m ε 2 ) , come E [ ϕ ( X i ) ] = E [ α ] = a / 2 n . Ciò implica che, se scegliamo m = O ( 1 / ε|αa/2n|ε.
P[|αa/2n|>ε]2Ω(mε2),
E[ϕ(Xi)]=E[α]=a/2n (e assicurati che m sia una potenza di 2 ), quindi con probabilità almeno 0,99 , l'errore è al massimo k .m=O(1/ε2)=poly(n)m20.99k

Caso 3: per c < 1k=2cn+o(n)c<1

ψmnmk<2nm1n=O(m/(1c))ϕ=ψϕnmψbϕb2nmnma^|a^a|ka^ϕk

|ba^/2nm|=|aa^2nm|k2nm<1/2.
bba^ba^

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.