Skip to content

JavaFX application that helps run SAT solvers (participants of 2017 and 2018 SAT Competition). GUI allows users to compare performance of exact solvers and to find solutions of considered SAT problems

Notifications You must be signed in to change notification settings

monikanana/SAT-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAT-interface

JavaFX application that helps run SAT solvers (participants of 2017 and 2018 SAT Competition). GUI allows users to compare performance of exact solvers and to find solutions of considered SAT problems.

Application interface:

app-view

On the left there are four buttons and one combo list with solvers:

  1. Load CNF file
  2. Combo list with solvers
  3. Output file - select file where you would like to save the output. Button becomes active when you select solver with such option available.
  4. Use Satelite - if this button is green problem will be minimized before solving.
  5. Solve from file - This button is available if CNF file passed validation.

solver-list

Every file loaded by user is checked by DimacsReader from sat4j library. There are couple of rules for .cnf files:

  • Lines starting with letter c are treated as comments
  • First line (starting with letter p is a cnf format declaration and contains number of variables and clauses, e.g. p cnf 20 534
  • Each following line contains one clause and has zero at the end, e.g. 16 -30 95 0. Clause denoted by this line is ( x(16) OR ( NOT x(30) ) OR x(95))
  • Variables are natural numbers.
  • - means NOT

file-problem-satelite If the file is valid its name is green, otherwise - it's red. After selecting and running solver the result is presented in the window on the right. The result is a block of text, each line starts with one of three letters:

  • c - line with this letter contains some description, comment. For instance it informs about solver running time or memory used.
  • s - line starting with s informs wheather problem can be solved (is satisfiable)
  • v - line starting with v contains solution. For example 1 -2 -3 4 5 6 means, that one of the problem's solutions is to set first, fourth, fifth and sixth variable value to true, and the second and third should be false.

input-problem SAT Solver Interface allows user to input his problem in a more convinient way than loading .cnffile. In the top-right corner of UI there is a textfield where you can type your problem - variable names can be also letters or words separated by space (OR), between each line there is logical AND, - means NOT. After selecting solver and pressing Solve Input button user gets result in the window below - same way as for .cnf files.

About

JavaFX application that helps run SAT solvers (participants of 2017 and 2018 SAT Competition). GUI allows users to compare performance of exact solvers and to find solutions of considered SAT problems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published