Generated on Tue Feb 11 2025 17:33:26 for Gecode by doxygen 1.12.0

Example: CNF SAT solver More...

Public Member Functions

 Sat (const SatOptions &opt)
 The actual problem.
 
 Sat (Sat &s)
 Constructor for cloning.
 
virtual Spacecopy (void)
 Perform copying during cloning.
 
virtual void print (std::ostream &os) const
 Print solution.
 
void parseDIMACS (const char *f)
 Post constraints according to DIMACS file f.
 
- Public Member Functions inherited from Gecode::Driver::ScriptBase< BaseSpace >
 ScriptBase (const Options &opt)
 Constructor.
 
 ScriptBase (ScriptBase &e)
 Constructor used for cloning.
 
virtual void compare (const Space &home, std::ostream &os) const
 Compare with s.
 

Additional Inherited Members

- Static Public Member Functions inherited from Gecode::Driver::ScriptBase< BaseSpace >
static std::ostream & select_ostream (const char *sn, std::ofstream &ofs)
 Choose output stream according to sn.
 
template<class Script , template< class > class Engine, class Options >
static void run (const Options &opt, Script *s=NULL)
 

Detailed Description

Example: CNF SAT solver

SAT finds assignments of Boolean variables such that a set of clauses is satisfied or shows that no such assignment exists.

This example parses a dimacs CNF file in which the constraints are specified. For each line of the file a clause propagator is posted.

Format of dimacs CNF files:

A dimacs file starts with comments (each line starts with c). The number of variables and the number of clauses is defined by the line

p cnf <variables> <clauses>

Each of the subsequent lines specifies a clause. A positive literal is denoted by a positive integer, a negative literal is denoted by the corresponding negative integer. Each line is terminated by 0.

c sample CNF file p cnf 3 2 3 -1 0 1 2 -1 0

Benchmarks on satlib.org, for instance, are in the dimacs CNF format.

Definition at line 111 of file sat.cpp.

Constructor & Destructor Documentation

◆ Sat() [1/2]

Sat::Sat ( const SatOptions & opt)
inline

The actual problem.

Definition at line 117 of file sat.cpp.

◆ Sat() [2/2]

Sat::Sat ( Sat & s)
inline

Constructor for cloning.

Definition at line 124 of file sat.cpp.

Member Function Documentation

◆ copy()

virtual Space * Sat::copy ( void )
inlinevirtual

Perform copying during cloning.

Definition at line 130 of file sat.cpp.

◆ print()

virtual void Sat::print ( std::ostream & os) const
inlinevirtual

Print solution.

Reimplemented from Gecode::Driver::ScriptBase< BaseSpace >.

Definition at line 136 of file sat.cpp.

◆ parseDIMACS()

void Sat::parseDIMACS ( const char * f)
inline

Post constraints according to DIMACS file f.

Definition at line 141 of file sat.cpp.


The documentation for this class was generated from the following file: