#11479: SAT Solver Interface
------------------------+---------------------------------------------------
   Reporter:  fichtejo  |          Owner:  jason          
       Type:  task      |         Status:  new            
   Priority:  minor     |      Milestone:  sage-4.7.1     
  Component:  misc      |       Keywords:                 
Work_issues:            |       Upstream:  N/A            
   Reviewer:            |         Author:  Johannes Fichte
     Merged:            |   Dependencies:                 
------------------------+---------------------------------------------------
 Since sage does not have any boolean satisfiablity support, we should
 change this :-)

 Implement a simple interface to SAT solvers:

 Ideas:
 1) Data structures
   - clauses
   - cnf formulas (implements DIMACS converting...)
   - results
 2) Additional features to CNF class
   - various implementations of at most k variables are true
 3) Some examples
   - e.g., Sudoku, vertex cover via binary search
 4) Solver shell/string parsing interface for:
   - MiniSAT
   - RSAT
   - Berkmin
   - Siege
   - zChaff

 Further ideas:
 5) direct C++ Interface (suggested by Martin)
   - MiniSAT
   - RSAT
   - CryptMiniSat


 Some ideas are attached:
 - sat.py implements
     - Clause (set of integers inherits from set)
     - CNFFormula (list of Clauses)
         - features:
         - create DIMACS
         - read from DIMACS
         - is_satisfiable (calls sat solver)
         - solve (calls sat solver and returns additional information),
 next step: obtain satisfiable assignments from solvers
         - is_horn (do we have HORN clauses only)
         - is_2cnf (do we have 2 CNF clauses only)
         - at_most_k_variables_true (adds clauses such that at most k
 variables are true)

 - backend.py
    - SolverResult (simple result class, needs improvement)
    - Solver (call SAT solver, process string solver result)

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11479>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to