Versione breve.
La prova originale che # 2-SAT è # P- completo mostra, infatti, che quelle istanze di # 2-SAT che sono sia monotone (che non implicano le negazioni di alcuna variabile) sia bipartite (il grafico formato dalle clausole sopra il variabili è un grafico bipartito) sono #P -hard. Pertanto, i due casi speciali # 2-MONOTONE-SAT e # 2-BIPARTITE-SAT sono #P -hard. Ci sono altri casi speciali che possono essere caratterizzati in termini di proprietà "naturali" della formula, che sono anche #P -hard?
Versione lunga.
Il problema # 2-SAT è il compito dell'informatica - per una formula booleana consistente nella congiunzione di più clausole, in cui ogni clausola è una disgiunzione di due letterali o - il numero di stringhe booleane tale che . Scoprire se esiste una tale è facile; ma contare il numero di soluzioni in generale è # P-completo, come mostrato da Valiant inLa complessità dei problemi di enumerazione e affidabilità, SIAM J. Comput., 8 , pp. 410–421 .
Per il caso di # 2-SAT in particolare, ciò che Valiant mostra in realtà è una riduzione a # 2-SAT dal conteggio degli abbinamenti (compresi quelli imperfetti) nei grafici bipartiti, che dà origine a casi di # 2-SAT con una struttura molto particolare , come segue.
In primo luogo, si noti che il problema monotono è equivalente, per sostituzione, al problema in cui per ciascuna variabile , sia si verifica nella formula o fa ma non entrambe. In particolare, il problema della "riduzione monotona" in cui si verificano solo le negazioni per ogni variabile è esattamente duro come il caso monotono.
Per ogni grafo con bordi, possiamo costruire una 2-SAT formula monotona decrescente corrispondente ad abbinamenti - collezioni di bordi che non condividono alcuna vertici - assegnando una variabile per ciascun bordo, rappresenta se è incluso in un bordo; la proprietà di un insieme essendo una corrispondenza è equivalente al vettore di incidenza soddisfa la formula CNF cui clausole sono date da per ogni coppia di bordi che condividono un vertice. Per costruzione, φ ha come molte soluzioni soddisfacenti x ∈ { 0 , 1 } m come ci sono (eventualmente imperfetto) matchings nel grafico G .
Se il grafico per il quale vogliamo contare gli abbinamenti è bipartito, allora non contiene cicli dispari - che possiamo descrivere come una sequenza di bordi nel grafico che inizia e termina con lo stesso bordo (senza contare due volte il bordo finale) . Poi ci sono nessuna sequenza di variabili x e , x f , x g , ... , x e di lunghezza dispari in φ , in cui le variabili adiacenti sono coinvolti in una clausola comune. Quindi la formula ϕ sarebbe bipartita nel modo descritto in precedenza.
Il conteggio del numero di corrispondenze nei grafici bipartiti arbitrari, in particolare, può essere utilizzato per contare il numero di corrispondenze perfette in un grafico bipartito: dato un grafico bitrarite di input con due bipartizioni A , B del stessa taglia n , si può creare grafici G k aumentando a con ovunque 0 ⩽ k ⩽ n vertici aggiuntivi collegati a tutti i vertici di B . Perché tutti gli abbinamenti in Gdi una determinata dimensione contribuisce in modo diverso al numero di corrispondenze in , contando queste si può determinare il numero di corrispondenze in G di dimensione n (cioè, che sono abbinamenti perfetti); e nota che contare il numero di corrispondenze perfette nei grafici bipartiti equivale a calcolare permanenti di matrici { 0 , 1 } mediante una semplice corrispondenza.
La classe di istanze di # 2-SAT che vengono mostrate come #P -hard sono quindi le istanze bipartite monotone.
Domanda: Quali sono gli altri casi speciali di # 2-SAT che sono # P- completi, a seguito di questa o di qualche altra riduzione?
Sarebbe interessante se, oltre a mostrare / citare una riduzione, le persone potessero anche descrivere un motivo intuitivo per come il caso speciale potrebbe fornire ostacoli agli approcci naturali al conteggio dei compiti di valutazione. Ad esempio, sebbene MONOTONE-2-SAT sia banalmente risolvibile ( è sempre una soluzione), le istanze monotone sono quelle in cui l'assegnazione di una variabile a un valore fisso fallirà sistematicamente nell'imporre molti vincoli alle variabili rimanenti. La correzione di qualsiasi variabile x j = 0 limita solo i valori delle variabili immediatamente correlate ad essa da una clausola; e impostando x j = 1non limita affatto i possibili valori di altre variabili. (Non è chiaro che la restrizione comparabile ai grafici bipartiti sia significativa allo stesso modo, tuttavia; la restrizione bipartita sembra aggiungere struttura anziché rimuoverla, ma non riesce ad aggiungere una struttura sufficiente per contare in modo efficiente.)
Modificato per aggiungere. I punti bonus verranno assegnati per qualsiasi classe di questo tipo che non si basa in definitiva sull'esistenza di istanze monotone (come sopra # 2-BIPARTITE-SAT, la cui durezza è apparentemente dovuta all'inclusione del caso speciale #P -hard # 2 -MONOTONE-bipartita-SAT). Ad esempio, un argomento per la durezza di # 2-BIPARTITE-SAT che non si basa su istanze monotoniche (ma potrebbe fare affidamento su qualche altra sottofamiglia) sarebbe interessante.