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¬CE

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 2l1l2l32 clausole:

l1l2v
l2l3¬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.