2-SAT con relazioni XOR NP-complete?


11

Mi chiedo se esiste un algoritmo polinomiale per "2-SAT con relazioni XOR". Sia 2-SAT che XOR-SAT sono in P, ma è la sua combinazione?

Esempio di input:

  • Parte 2-SAT: (a or !b) and (b or c) and (b or d)

  • Parte XOR: (a xor b xor c xor 1) and (b xor c xor d)

In altre parole, l'input è la seguente formula booleana:

(a¬b)(bc)(bd)(ab¬c)(bcd).

Esempio di output: soddisfacente: a = 1, b = 1, c = 0, d = 0.

Sia il numero di clausole 2-SAT che il numero di clausole XOR nell'input sono , dove n è il numero di variabili booleane.O(n)n


1
questo problema è abbastanza vicino, bit xor di vettori per eguagliare un vettore bersaglio , cstheory.se
vzn

Risposte:


11

(x1x2x3)
(x1y¯)(yx2z)(z¯x3)
yz

Tutte le risposte sembrano corrette o di aiuto, ma ho trovato questo il più elegante (imho).
Albert Hendriks,

1
Bella risposta. Vale la pena ricordare che la semplice equità non sarebbe sufficiente qui (poiché le assegnazioni soddisfacenti delle espressioni corrispondenti a tutte le clausole di un CNF soddisfacente potrebbero non corrispondere), ma l'espressione riscritta in realtà ha un compito soddisfacente corrispondente per ogni compito soddisfacente di la clausola originale.
Klaus Draeger,

7

Non hai specificato l'arità delle tue relazioni XOR, ma come nella solita riduzione da SAT a 3SAT, puoi sempre organizzare che la loro arità sia al massimo 3. Ora sei in ottima posizione per applicare il teorema di dicotomia di Schaefer , che indica se il problema è in P o NP completo (queste sono le uniche due opzioni). Se risulta essere in P, il passo successivo potrebbe essere quello di Allender et al. , che ti farà sapere quanto è facile il tuo problema.


O(n)

5

Secondo il teorema di dicotomia di Schaefer , questo è NP-completo.

ΓR(x,y,z)xyx¬y¬x¬yxyzxy¬z

Ora applica il teorema di dicotomia di Schaefer, nella sua forma moderna . Controlla ciascuna delle sei operazioni per vedere se sono un polimorfismo:

  • xy
  • ¬x¬y
  • xy(0,1,0)(1,0,0)(0,0,0)
  • ¬x¬y(0,1,0)(1,0,0)(1,1,0)
  • xyz(0,0,1)(0,1,0)(1,0,0)(0,0,0)
  • xy(0,1,0)(1,0,0)(1,1,0)(0,0,0)

Ne consegue che questo problema è NP-completo, anche se si limita la lunghezza di tutte le clausole XOR al massimo 3.


(xy)(xy)(¬x¬y)

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.