CNF-SAT: Sat Solver with Backtracking and Graph-Based Backjumping

Introduzione al CNF-SAT

In questo elaborato è stato trattato il problema denominato CNF-SAT ossia quello di decidere la soddisfacibilità booleana di formule di logica proposizionale in forma normale congiuntiva (CNF).

L'algoritmo usato è il DPLL con Backtracking e Backjumping Graph-Based, sono previste come euristiche la FOV (First Order Variable), MRV (Minimum Remaining Values) e la LCV (Least Constrained Variable).

 

Algoritmi di risoluzione

Sono state analizzate ed implementate due strategie di ricerca:

Implementazione

L'elaborato è stato programmato in C++ e le principali classi sono:

Risultati

Tutti i risultati vengo riportati nel file Soluzione.txt è possibile avere diverse istanze di input dalla cartella CNF. Per utilizzare le istanze è sufficiente copiare il file scelto dalla cartella CNF alla cartella dell'eseguibile SATSolver.x e rinominarlo come "standard.cnf".

Link