Calcolo di qualsiasi informazione su Max-3SAT


26

Per una formula 3CNF lasciate sia il numero massimo di clausole soddisfatti in qualsiasi assegnazione a . È noto che Max-3SAT è difficile da approssimare (soggetto a P ≠ NP), cioè non esiste un algoritmo polytime il cui input è una formula 3CNF e il cui output è il numero tale che è all'interno di un fattore moltiplicativo da , dove è una costante positiva assoluta.CM(C)CCMM(C)1+cMc>0

Credo che sia anche NP-difficile calcolare per qualsiasi modulo costante p . Mi chiedo se la seguente generalizzazione comune di questi due fatti sia vera: non esiste un algoritmo polytime il cui input è una formula 3CNF C con clausole N e una stringa di bit di avviso \ log_2 NB e il cui output è M (C) . Qui B è una costante assoluta. In parole semplici, non esiste un algoritmo che calcola B bit di informazioni di M (C) .M(C)modppCNlog2NBM(C)BBM(C)

Mi scuso se la domanda ha una risposta ben nota, dal momento che non sono un teorico della complessità a proposito del background.


1
Di solito un "consiglio" può dipendere solo dalla lunghezza dell'input. Credo che il tuo intento sia che un "consiglio" qui possa dipendere dall'input stesso. Non conosco una terminologia standard per questa nozione.
Tsuyoshi Ito,

9
È una domanda molto interessante. Per confermare che M(C)modp è davvero difficile da calcolare, si può notare che la dimostrazione del teorema di Cook produce un m formula -variable F che è o soddisfacibile o tale che M(F)=m1 .
Luca Trevisan,

16
La domanda può essere riformulata nel modo seguente: può esistere un algoritmo temporale polinomiale che, data una formula 3CNF F con variabili m , genera un elenco di numeri m/2B tale che uno di quei numeri sia M(F) ?
Luca Trevisan,

2
sì, m avrebbe dovuto essere il numero di clausole nel commento sopra.
Luca Trevisan,

9
è equivalente perché se si dispone di un algoritmo come descritto nel post, è possibile eseguire l'algoritmo su ciascuna delle 2log2mB=m/2B possibile stringa di avviso, ottenere quante (o meno se ci sono collisioni) risposte, e una di queste è corretta. Se hai un algoritmo come nel mio commento sopra, i bit di avviso log2mB sono sufficienti per specificare che la risposta corretta è l' i -esimo più grande degli output dell'algoritmo, per alcuni i .
Luca Trevisan,

Risposte:


14

Ecco un argomento secondo cui se si potesse risolvere Max 3SAT su un'istanza della clausola m dato un numero costante di consigli, la gerarchia polinomiale collasserebbe.

Risolvi un problema NP completo L. Dal teorema di Cook, conosciamo una trasformazione f () degli input x per L in formule 3SAT f (x), in modo che

1) se alloraxLM(f(x))=m

2) se alloraxLM(f(x))=m1

dove è il numero di clausole in .mf(x)

Abbiamo anche un teorema di Kadin, che dice che, se dati input di un problema NP-completo, hai un algoritmo temporale polinomiale che effettua query su un oracolo NP e determina il risposta corretta ai problemi NP , poi crolla la gerarchia polinomiale.kx1,,xkk1kxi?L

Supponiamo di avere un algoritmo che risolve Max SAT sugli input della clausola m dato k k di consigli. Useremo il risultato di Hastad per costruire un algoritmo come nella premessa del teorema di Kadin.

Partenza dalla ingressi al problema . Applica il teorema di Cook a ciascuno di essi. Dopo un po 'di normalizzazione (che può essere fatta assegnando pesi alle clausole o duplicandole se non vogliamo usare pesi), costruiamo le formule dove, per un certo :K=2k+1x1,,xKLKF1,,FKm

1) se e altrimentiM(F1)=m1x1LM(F1)=m2

2) se e altrimentiM(F2)=m(m1)x2LM(F2)=m(m2)

...

k) se e altrimentiM(FK)=mK1(m1)xKLM(FK)=mK1(m2)

Ora prendete l'unione delle formule, che sono stati costruiti più di variabili disgiunti set, e lo chiamano . Quindi abbiamo e possiamo "leggere" la risposta ai problemi guardando il base- rappresentazione di . Se possiamo calcolare dato bit di consiglio, significa che possiamo trovare valori in modo tale che uno di essi sia . Possiamo quindi chiedere a un oracolo NP in modo non adattativo se per ciascuno dei valori candidatiFM(F)=M(F1)++M(Fk)Kxi?LmM(F)M(F)k2kM(F)M(F)nin1,,n2kabbiamo generato. Quindi siamo stati in grado di risolvere istanze di problemi NP-completi facendo query non adattative a un oracolo NP, il che implica che la gerarchia polinomiale collassa.2k+12k

Usando il teorema di Hastad invece del teorema di Cook, è possibile spingere la dimensione di su invece di , quindi è possibile spingere su e il numero di bit di avviso su . Capire cosa succede quando ti vengono dati i consigli di sembra davvero difficile.FO(1)kmmkklogmloglogmlogmO(1)


A cura di aggiungere: Krentel ( La complessità dei problemi di ottimizzazione . J. Comput. Syst. Sci. 36 (3): 490-509 (1988) ) ha dimostrato che il calcolo del valore dell'ottimale del massimo problema di cricca è completo per , la classe di funzioni calcolabili in tempo polinomiale con interroga un oracolo NP. La completezza è sotto "riduzioni di una query", in cui la funzione f è riducibile alla funzione g se si può scrivere per il tempo polinomiale calcolabile e . Presumibilmente lo stesso vale per Max Clique. Ora, se Max Clique avesse un algoritmo temporale polinomiale che produce un elenco diFPNP[O(logn)]O(logn)f(x)=r1(g(r2(x))r1r2mo(1)valori possibili, sarebbe in , perché è possibile utilizzare la ricerca binaria per trovare l'ottimale con un numero di query che è il registro delle dimensioni dell'elenco.FPNP[o(logn)]

Ora, se avessimo avremmo sicuramente , che è il caso speciale per problemi di decisione, e che è noto, dai risultati di Wagner (migliorando un risultato di Kadin che si applica a un numero costante di query), per far crollare la gerarchia polinomiale. Ma penso che si possa sapere che implicherebbe effettivamente P = NP. Ma in ogni caso i risultati di Krentel e Kadin-Wagner dovrebbero essere sufficienti per dare un'altra prova del risultato di Andy Drucker. Ora mi chiedo se sia effettivamente la stessa prova, cioè se il risultato Fortnow-Van Melkebeek funziona, esplicitamente o implicitamente, tramite un argomento "simulazione di query NP con meno query NP".FPNP[O(logn)]=FPNP[o(logn)]PNP[O(logn)]=PNP[o(logn)]FPNP[O(logn)]=FPNP[o(logn)]

Un buon documento di indagine che spiega cosa sta succedendo con problemi di ottimizzazione e classi di query limitate:

http://www.csee.umbc.edu/~chang/papers/bqabh/npfsat.pdf


8

Vorrei indicare una ragione per cui è difficile dimostrare la durezza NP di questo problema.

In un commento sulla domanda, Luca Trevisan ha fornito un buon modo per ribadire il problema: il seguente problema è risolvibile in tempo polinomiale per ogni costante k ? Data una formula CNF C con clausole m , emette al massimo interi m / k in modo che uno di questi sia uguale a M ( C ). Qui k è relativo a B da k = 2 B .

Tuttavia, chiediamo di più. Vale a dire, consideriamo il seguente problema: data una formula CNF C , emette due numeri interi in modo che uno di questi sia uguale a M ( C ). Indichiamo questo problema con Π. Il problema Π è difficile almeno quanto il problema originale, quindi se il problema originale è NP-difficile, Π deve anche essere NP-difficile.

Si noti che Π è un problema di relazione. Uno dei più semplici tipi di riduzioni che possono essere utilizzati per ridurre un problema L a un problema di relazione Π è una riduzione di Levin nel tempo polinomiale, che è un caso speciale di una riduzione di Turing nel tempo polinomiale in cui la riduzione chiama l'oracolo solo per Π una volta.

Sosteniamo che P Π [1] = P. Ciò implica ovviamente che NP⊈P Π [1] a meno che P = NP, cioè Π non sia NP-difficile sotto la riducibilità della levina nel tempo polinomiale a meno che P = NP.

Prova . Sia L ∈P Π [1] , o in altre parole, esiste una riduzione del Levin da L a Π. Ciò significa che esiste una coppia ( f , g ) di una funzione calcolabile a tempo polinomiale f : {0,1} * → {0,1} * che mappa ogni istanza x del problema L con una formula CNF f ( x ) e un predicato calcolabile in tempo polinomiale g : {0,1} * × ℕ × ℕ → {0,1} tale che g ( x , i , j ) = L( x ) se i o j è uguale a M ( f ( x )). (Qui L ( x ) = 1 se x è un'istanza yes di L e L ( x ) = 0 se x è un'istanza no.)

Costruiamo un algoritmo a tempo polinomiale per L da questo come segue. Lascia che x sia un input.

  1. Lasciate C = f ( x ), e lasciare che m sia il numero di clausole C .
  2. Trova uno i ∈ {0, ..., m } tale che il valore g ( x , i , j ) sia costante indipendentemente da j ∈ {0, ..., m }.
  3. Emette questa costante g ( x , i , 0).

Nel passaggio 2, tale i esiste sempre perché i = M ( f ( x )) soddisfa la condizione. Inoltre, questo algoritmo non può generare una risposta errata perché g ( x , i , M ( f ( x ))) deve essere la risposta corretta. Pertanto, questo algoritmo risolve L correttamente. QED .

Se non sbaglio, la stessa idea può essere usata per dimostrare che P Π [ k ( n )] ⊆DTIME [ n O ( k ( n )) ]. Ciò implica che NP⊈P Π [ k ] per qualsiasi costante k a meno che P = NP e che NP⊈P Π [polilogo] a meno di NP⊆DTIME [2 polillog ]. Tuttavia, questa idea da sola non sembra escludere la possibilità che Π sia NP-difficile sotto la riducibilità di Turing a tempo polinomiale.


1
Potresti fornire un link alla risposta di Dana?
Mohammad Al-Turkistany,

@turkistany: aveva cancellato la sua risposta dopo aver pubblicato la prima revisione di questa risposta. Ho appena rimosso un riferimento ad esso da questa risposta.
Tsuyoshi Ito,

8

Credo che possiamo mostrare:

Richiesta. C'è un valore tale che quanto segue è vero. Supponiamo che esista un algoritmo poli-temporale deterministico che, data un'istanza 3-SAT -clause , genera un elenco al massimo di valori , tale che ; poi crolla la gerarchia polinomiale.0<c<1mϕSmcM(ϕ)S

La prova utilizza i risultati di Fortnow e Santhanam sull'impossibilità di compressione dell'istanza dal loro documento http://www.cs.uchicago.edu/~fortnow/papers/compress.pdf

In particolare, guardando la loro prova di Thm 3.1, credo che si possa estrarre quanto segue (lo ricontrollerò presto):

"Teorema" [FS]. Ci sono numeri interi tali che quanto segue è vero. Supponiamo in poli-tempo deterministico, uno può trasformare un OR di formule booleane (ciascuna di lunghezza e su insiemi di variabili disgiunti) in un OR di formule (di nuovo variabile-disgiunto e di lunghezza ), preservando la soddisfacibilità / insoddisfazione dell'OR. Quindi e la gerarchia polinomiale collassa.0<d<dndnndnNPcoNP/poly

La prova del nostro reclamo sarà una riduzione dall'attività di compressione OR menzionata nel teorema [FS] sopra, al problema del list-computing . Supponiamo che sia un elenco di formule di cui OR vogliamo comprimere.M(ϕ)ψ1,,ψnd

Primo passo: definire un circuito di dimensioni polinomiali su stringhe di input . Qui la stringa codifica un'assegnazione a e codifica un numero compreso tra e .Γ(v,y1,,ynd)yiψiv{0,1}dlogn+10nd

Abbiamo accetta se e solo se sia , o .Γv=0ψv(yv)=1

Ora lascia che denoti il ​​valore massimo , in modo che il circuito limitato sia soddisfacente. (Questa quantità è sempre almeno 0).M(Γ)vΓ(v,,,)

Supponiamo di poter produrre in modo efficiente un elenco di possibili valori per . Quindi l'affermazione è che nella nostra lista , possiamo buttare via tutto per il quale ; l'elenco risultante contiene una formula soddisfacente, se presente. Spero che questo sia chiaro dall'ispezione.SM(Γ)ψ1,,ψndψiiS

Conclusione: non è possibile produrre in modo affidabile un elenco di possibili valori per , a meno che la polirarchia non collassi.SndM(Γ)

Secondo passo: riduciamo dal problema del list computing a quello del list computing per le istanze 3-SAT .M(Γ)M(ϕ)ϕ

Per fare ciò, eseguiamo prima la riduzione di Cook su per ottenere un'istanza 3-SAT di dimensione . ha lo stesso set di variabili di , insieme ad alcune variabili ausiliarie. Soprattutto per i nostri scopi, è soddisfacente se è soddisfacente.Γϕ1m=poly(nd)ϕ1Γϕ1(v,)Γ(v,)

Chiamiamo i `vincoli forti '. Diamo a ciascuno di questi vincoli un peso di (aggiungendo vincoli duplicati).ϕ12m

Quindi aggiungiamo un insieme di `vincoli deboli ' che aggiungono una preferenza per l'indice (definito nel passaggio 1) per essere il più alto possibile. Esiste un vincolo per ogni bit di , vale a dire . Lasciamo che il bit più significativo di di abbia un vincolo di peso . Poiché è di lunghezza , questi pesi possono essere resi integrali (dobbiamo solo pad per lasciare che sia una potenza di 2).ϕ2vvtv[vt=1]tvm/2t1vdlogn+1m

Infine, lascia che sia l'output della nostra riduzione.ϕ=ϕ1ϕ2

Per analizzare , sia l'insieme variabile di , con come prima. Prima nota che dato qualsiasi assegnazione a , si può inferire il valore di dalla quantità (peso totale dei vincoli soddisfatti da ). Ciò deriva dal disegno gerarchico dei pesi dei vincoli (analogamente a una tecnica della risposta di Luca). Allo stesso modo, il valore massimo raggiungibile è raggiunto da un'impostazione che soddisfa tutti i vincoli forti e dove (soggetto a questo)ϕ(v,z)ϕv(v,z)vN(v,z)=ϕv,z
M(ϕ)(v,z)vè il più grande possibile. Questo è l'indice più grande per il quale è soddisfacente, ovvero . (Nota, è sempre possibile, impostando all-0, per soddisfare tutti i vincoli forti, poiché in tal caso è soddisfacente.)vΓ(v,)M(Γ)v=Γ(v,)

Ne consegue che, se ci viene fornito un elenco di possibili valori di , possiamo derivare un elenco dipossibili valori di . Quindi non possiamo avere meno che la poli gerarchia non collassi. Questo dà la richiesta, poiché .SM(ϕ)|S|M(Γ)|S|ndnd=mΩ(1)

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.