Problema SAT
Il problema SAT cerca l'esistenza di un istanza che porti un'espressione logica ad essere vera. Analogamente, il problema del CIRCUIT-SAT cerca l'input che porti un circuito logico a restituire .
Entrambi sono NP completi, e vengono detti soddisfacibili quando possiedono un'istanza positiva.
Per esempio, l'espressione è soddisfacibile con .
Forma normale congiunta
Nell'algebra booleana è più comodo usare formule in forma canonica, o forma normale congiunta (FNC).
In questa forma, la struttura è suddivisa in clausole ognuna composta da letterali:
In particolare, il formato -FNC sono quelle espressioni che hanno letterali su ogni clausola.
Classe della clique
Si può dimostrare che il problema della clique è NP completo, infatti si riconosce da:
-
, perchè è verificabile in se ogni coppia di nodi ha un arco
-
Il problema SAT-3FNC, cioè il SAT in formato -FNC, è riducibile a
Questo è dimostrabile perchè una qualunque sua istanza come è trasformabile in un grafo, creando un nodo per ogni letterale, escludendo:- gli archi tra letterali della stessa clausola
- archi tra letterali opposti
con cui si ottiene il grafo:
Di conseguenza, l'espressione è soddisfacibile sse esiste una clique da nodi, infatti se si pongono a i nodi blu della clique scelta si ottengono , e arbitrario, che soddisfano .
Gestire problemi intrattabili
Per poter gestire problemi NP completi si può ricorrere a:
- Algoritmi di approssimazioni: trovano una soluzione, meno un errore , in tempo polinomiale
- Gestire solo i casi speciali, sperando che il problema ne rientri
- Affidarsi ad euristiche: tentano di trovare la soluzione senza certezze