La complessità di verificare se due CNF hanno lo stesso numero di soluzioni


14

Dato due CNF, se hanno lo stesso numero di incarichi per realizzarli, rispondi "Sì", altrimenti rispondi "No".

È facile vedere che è in , poiché se conosciamo il numero esatto di soluzioni a questi due CNF, li accampiamo e rispondiamo "Sì" o "No".P#P

Qual è la complessità di questo problema?

Risposte:


14

Il problema è coNP -hard; puoi facilmente ridurre il problema UNSAT a questo problema.

Una caratterizzazione più precisa è che il problema è C = P -completo. In effetti, una definizione della classe C = P è che è la classe di problemi che sono molti volte polinomiali riducibili a questo stesso problema (di solito questa definizione è dichiarata in termini di funzioni GapP ). Ma dal momento che questo non dice molto, permettimi di definire questa classe in un altro modo.

Sia C = P la classe di problemi che sono molti volte polinomiali riducibili al seguente problema: dato un circuito booleano φ e un intero K (in binario), decidere se il numero di assegnazioni soddisfacenti di φ è uguale a K . Con una riduzione standard che mostra la completezza # P di # 3SAT, possiamo limitare φ ad essere una formula 3CNF senza influenzare la classe. La classe C = P contiene una classe chiamata US , che contiene sia UP che coNP.

Con questa definizione, il tuo problema è C = P-complete. In realtà, la durezza C = P è facile da vedere dalla definizione della classe C = P (che utilizza le formule 3CNF).

Per dimostrare l'appartenenza a C = P, supponiamo che dobbiamo decidere se due date formule CNF φ 1 e φ 2 hanno lo stesso numero di incarichi soddisfacenti o meno. Senza perdita di generalità possiamo supporre che le due formule abbiano lo stesso numero di variabili, diciamo n . Costruire un circuito booleano φ che accetta n +1 bit come input in modo che il numero di assegnazioni soddisfacenti di φ sia uguale a c 1 + (2 n - c 2 ), dove c 1 e c 2essere il numero di incarichi soddisfacenti di φ 1 e φ 2 , rispettivamente. Quindi il numero di incarichi soddisfacenti di φ è uguale a 2 n se e solo se c 1 = c 2 .


@Kaveh: puoi elaborare?
Tsuyoshi Ito,

1
@Kaveh: No, non è quello che vogliamo. Vogliamo decidere se φ_1 e φ_2 hanno lo stesso numero di incarichi soddisfacenti, non necessariamente lo stesso insieme di incarichi soddisfacenti.
Tsuyoshi Ito,

1
@Tsuyoshi: in base alla tua definizione di , GI è in ? Penso che almeno GI . C = P F P C = PC=PC=PFPC=P
Mike Chen,

1
@Mike: grazie per l'interessante commento. Stai parlando del risultato che Graph Isomorphism ∈ SPP (Arvind and Kurur 2006 dx.doi.org/10.1016/j.ic.2006.02.002 )? Se è così, hai ragione; SPP è contenuto in , quindi Isomorfismo grafico ∈ . C = PC=PC=P
Tsuyoshi Ito,

1
@Mike: ho imparato che prima del risultato GraphIso∈SPP, era noto che GraphIso ∈ LWPP : Köbler, Schöning e Torán 1992 . Poiché LWPP ⊆ WPP ⊆ , non abbiamo avuto bisogno del risultato più forte di Arvind e Kurur per dire che GraphIso∈ . C = PC=PC=P
Tsuyoshi Ito,

6

Ecco una piccola variazione sulla domanda originale. Sia un oracolo che, in input genera 1 se CNF ha più soluzioni di CNF .( f 1 , f 2 ) f 1 f 2O(f1,f2)f1f2

Dato questo oracolo, costruiamo una macchina poli-tempo grado di risolvere il problema # P-completo di calcolare il numero di soluzioni per un dato CNF . Nota che può avere un numero esponenziale di soluzioni.φ φMφφ

O φ i φM funziona come segue: genera formule con un numero noto di soluzioni, e usando la ricerca binaria e chiedendo alla maggior parte delle domande polinomiali a , trova una formula che ha lo stesso numero di soluzioni di . Produce infine il numero di soluzioni appena trovate.Oφiφ

Ciò dimostra che ha complessità #P.MO


Perdona la mia ignoranza, ma come si genera una formula con un numero predefinito di soluzioni?
Giorgio Camerani,

3
Sia M un numero a bit (k + 1) , e sia S l'indice i dove m i = 1 . Crea una formula con le variabili x 0 , , x k e y 0 , , y k . Per ogni i S , sia F i i seguenti sottomoduli: "Tutti i sono veri E traM=i=0kmi2iSimi=1x0,,xky0,,ykiSFi{x0,,xki}{y0,,yk} solo è vero. " ha compiti soddisfacenti (le variabili sono gratuite), e per , le assegnazioni soddisfacente e sono disgiunti causa delle . variabili La formula ha soddisfacente assegnazioni.yiFi2i{xki+1,,xk}ijFiFjyiSFiM
mikero

Si noti che è completo PP per decidere se, date due formule CNF f_1 e f_2, f_1 ha compiti più soddisfacenti di f_2 oppure no.
Tsuyoshi Ito,

@mikero: Ah, stupido me! Avrei dovuto immaginarlo. Grazie per la tua spiegazione illuminante.
Giorgio Camerani,

5

Sembra quasi NP-difficile poiché si può facilmente costruire una formula SAT con una sola soluzione. Quindi, secondo il teorema di Valiant-Vazirani, c'è una riduzione probabilistica da ogni formula SAT a una serie di problemi Unique-SAT (determinando se una formula ha una soluzione unica) e confrontando quei problemi Unique-SAT con la formula SAT costruita con una sola soluzione consente di determinare la soddisfacibilità della formula SAT in esame.


Per essere precisi, la prima frase dovrebbe menzionare "sotto riducibilità randomizzata" (sebbene tu la menzioni nella seconda frase).
Tsuyoshi Ito,
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.