Formule 3-CNF minime insoddisfacenti


19

Al momento sono interessato a ottenere (o costruire) e studiare formule 3-CNF che sono insoddisfacenti e di dimensioni minime. Cioè, devono consistere nel minor numero possibile di clausole (m = 8 preferibilmente) e nel minor numero possibile di variabili distinte (n = 4 o più), in modo tale che la rimozione di almeno una clausola renda la formula soddisfacente.

Più formalmente, qualsiasi formula 3-CNF qualificante deve soddisfare le seguenti condizioni:

  1. F non è soddisfacente
  2. F ha una quantità minima (4+) di variabili distinte (o la loro negazione)
  3. F ha un numero minimo di clausole (8+)
  4. ogni sottoinsieme corretto di F è soddisfacente (consentendo la rimozione di qualsiasi clausola o clausola arbitraria).
  5. F non ha 2 clausole che sono riducibili a una clausola 2-CNF, ad esempio (i, j, k) & (i, j, ~k)NON è consentito (si riducono a (i,j))

Ad esempio, con n = 4, esistono molte formule minime 3-CNF a 8 clausole che sono insoddisfacenti. Per uno, guardando il 4-ipercubo e cercando di coprirlo con i bordi (2 facce), si può costruire la seguente formula insoddisfacente:

1. (~A,  B,  D)
2. (~B,  C,  D)
3. ( A, ~C   D)
4. ( A, ~B, ~D)
5. ( B, ~C, ~D)
6. (~A,  C, ~D)
7. ( A,  B,  C)
8. (~A, ~B, ~C)

Questo si qualifica come una formula 3-CNF minima insoddisfacente perché:

  1. Non è soddisfacente:

    • Le clausole 1-3 sono equivalenti a: D or A=B=C
    • Le clausole 4-6 sono equivalenti a: ~D or A=B=C
    • Implicano A=B=C, ma dalle clausole 7 e 8, questa è una contraddizione.
  2. Ci sono solo 4 variabili distinte.

  3. Ci sono solo 8 clausole.
  4. La rimozione di qualsiasi clausola la rende soddisfacente.
  5. Le clausole n. 2 sono "riducibili" a una clausola 2-CNF.

Quindi immagino che le mie domande generali qui siano, in ordine di importanza per me:

  1. Quali sono alcune altre formule minime che soddisfano le condizioni di cui sopra? (vale a dire, 4,5,6 variabili e 8,9,10 clausole)

  2. Esiste una sorta di database o "atlante" di tali formule minime?

  3. Quali algoritmi non casuali esistono per costruirli direttamente, se ce ne sono?

  4. Quali sono alcuni approfondimenti sulle caratteristiche di queste formule? Possono essere contati o stimati, dati n (# variabili) e m (# clausole)?

Grazie in anticipo per le risposte. Accolgo con favore qualsiasi risposta o commento.


Ogni clausola 3-CNF non ammette 1/8 delle possibili soluzioni. Quindi chiaramente hai sempre bisogno di almeno 8 clausole, o più se le serie di soluzioni non consentite si sovrappongono. Poiché la tua condizione 5 proibisce insiemi non sovrapposti di soluzioni non consentite per n = 3, in questo caso sono necessarie più di 8 clausole: nota che il tuo esempio non obbedisce alla condizione 5.
— András Salamon,

Sì, hai ragione su tutti i punti András. 8 clausole sono un minimo richiesto per una formula 3-CNF insoddisfacente, quindi la condizione 5 potrebbe essere un po 'troppo restrittiva per i miei scopi nel trovare / costruire formule qualificanti. Mi rendo conto che per n = 3, la condizione 5 deve essere necessariamente violata, ma è stata inclusa solo a scopo illustrativo. Sono strettamente interessato a formule qualificanti di dimensione n = 4 + (ovvero 4 o più variabili, ma non troppe altre). Forse graffierò la condizione 5.
— MAF

Penso che il tuo “esempio” con n = 3 sia confuso piuttosto che illustrativo, perché (come sottolineato da András nel suo commento) non è proprio un esempio di ciò che stai chiedendo in questa domanda. L'esempio con n = 4 è perfettamente perfetto e illustrativo. Perché non rimuovi semplicemente l'esempio con n = 3?
— Tsuyoshi Ito,

Buon punto, Tsuyoshi. Fatto.
— MAF

1
@MAF: la rimozione della condizione 5 si traduce in un esempio banale: iniziare con l'istanza insoddisfacente contenente le clausole e { x ′ } , quindi sostituire ogni clausola C con due clausole C ∪ { v } e C ∪ { v ′ } per un nuova variabile v e continua fino a quando tutte le clausole hanno 3 valori letterali. Ciò produce una formula insoddisfacente di 7 variabili con 8 clausole. Questo sta semplicemente tagliando lo spazio della soluzione in 8 pezzi disgiunti, che di solito non è un codice interessante. {X}{X'}CC∪{v}C∪{v'}v
— András Salamon

Risposte:


11

Prendi la formula nel tuo esempio, rimuovi la clausola e aggiungi le seguenti 2 clausole: ¬UN∨¬B∨¬C2

¬ B ∨ ¬ C ∨ E¬UN∨¬B∨¬E
¬B∨¬C∨E

Otterrai una formula minima insoddisfacente con , m = 9 obbedendo alla condizione 5. n=5m=9

In generale, puoi scegliere casualmente una clausola e dividerla in 2l1∨l2∨l32 clausole:

l1∨l2∨v
l2∨l3∨¬v

vnm1r=mn1nr=1


Grazie per la risposta, Walter. La procedura che descrivi è davvero molto utile per generare formule min unsat ancora più leggermente più grandi di struttura "simile", cioè una volta che hai un set di base che trovi ha proprietà interessanti.
— MAF,

@MAF: Prego. Grazie per aver pubblicato una domanda così interessante.
— Giorgio Camerani,

0

Credo che la condizione numero 5 non sia realmente contenuta nel tuo esempio e non possa essere mantenuta mai.
Siano equivalenti le seguenti clausole:

( p, q) = (~A,B,D)(A,~B,~D)

Il che ci consentirà di mappare le clausole di A, B, C e D su nuove variabili p, q, r e s come la seguente tabella di verità:

A B C D | p q r s
-----------------
0 0 0 0 | 0 1 0 0
0 0 0 1 | 0 1 0 1
0 0 1 0 | 0 1 1 0
0 0 1 1 | 0 1 1 1
-----------------
0 1 0 0 | 1 0 0 0
0 1 0 1 | 0 0 0 0
0 1 1 0 | 1 0 0 1
0 1 1 1 | 0 0 0 1
-----------------
1 0 0 0 | 0 0 1 0
1 0 0 1 | 1 0 1 0
1 0 1 0 | 0 0 1 1
1 0 1 1 | 1 0 1 1
-----------------
1 1 0 0 | 1 1 0 0
1 1 0 1 | 1 1 0 1
1 1 1 0 | 1 1 1 0
1 1 1 1 | 1 1 1 1
-----------------

E ora possiamo esprimere le clausole di A, B, C e D in termini di p, q, r e s:

1. (~A,  B,  D) = ( p, q,~r, s)( p, q,~r,~s)
2. (~B,  C,  D) = (~p, q, r, s)(~p,~q, r, s)
3. ( A, ~C   D) = ( p,~q,~r, s)(~p, q, r,~s)
4. ( A, ~B, ~D) = ( p, q, r, s)( p, q, r,~s)
5. ( B, ~C, ~D) = ( p,~q,~r,~s)(~p, q,~r,~s)
6. (~A,  C, ~D) = (~p, q,~r, s)(~p,~q, r,~s)
7. ( A,  B,  C) = ( p,~q, r, s)( p,~q, r,~s)
8. (~A, ~B, ~C) = (~p,~q,~r, s)(~p,~q,~r,~s)

Poiché tutte le clausole sono mostrate e associate a clausole A, B, C e D. Quindi possiamo affermare che le clausole p, q, r e s possono essere ridotte a:

( p, q, r)
( p, q,~r)
( p,~q, r)
( p,~q,~r)
(~p, q, r)
(~p, q,~r)
(~p,~q, r)
(~p,~q,~r)

Il che ovviamente viola la condizione numero 5.

Quello che voglio sottolineare è che anche l'esempio non mostra esplicitamente che ci sono 2 clausole che possono essere ridotte a 2-CNF, ma implicitamente ha (es. (~ A, B, D) e (A, ~ B, ~ D)), potresti non essere in grado di esprimere il 2-CNF con le variabili indicate ma quando introduci una mappatura diversa per il problema sarai in grado di esprimerli.

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.