Sat Class Reference
Example scripts (models)

Example: CNF SAT solver More...

## Public Member Functions

| Sat (const SatOptions &opt)
| The actual problem.
| Sat (Sat &s)
| Constructor for cloning.
virtual Space * | copy (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< Driver::IgnoreStepOption< Space > >
| 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.
Public Member Functions inherited from Gecode::Driver::IgnoreStepOption< BaseSpace >
| IgnoreStepOption (const Options &)
| Constructor.
| IgnoreStepOption (BaseSpace &e)
| Constructor used for cloning.

## Additional Inherited Members

Static Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::IgnoreStepOption< Space > >
static std::ostream & | select_ostream (const char *sn, std::ofstream &ofs)
| Choose output stream according to sn.
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 |  | ) |

inline virtual

Perform copying during cloning.

Definition at line 130 of file sat.cpp.

## print()

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

inline virtual

Print solution.

Reimplemented from Gecode::Driver::ScriptBase< Driver::IgnoreStepOption< Space > >.

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:

- examples/sat.cpp