Painless
A framework to ease parallelization of sequential CDCL SAT solvers
Loading...
Searching...
No Matches
PreprocessorInterface.hpp
1#pragma once
2
3#include "solvers/SolverInterface.hpp"
4
14{
15 unsigned int newFormulaSize;
16 unsigned int deletedClauses;
17 unsigned int shrinkedClauses;
18 unsigned int addedVariables;
19 unsigned int eliminatedVariables;
20};
21
24{
25 MIX = 0,
26 BVA = 1,
27 BVE = 2,
28 GAUSS = 3
29 /* To fill */
30};
31
40{
41 public:
49 , preProcType(algo)
50 {
51 }
52
57 virtual std::vector<simpleClause> getSimplifiedFormula() = 0;
58
63 virtual void restoreModel(std::vector<int>& model) = 0;
64
70
74 virtual void releaseMemory() = 0;
75
76 private:
77 PreprocessorAlgorithm preProcType;
78};
79
Interface for preprocessor algorithms in SAT solving.
Definition PreprocessorInterface.hpp:40
virtual PreprocessorStats getPreprocessorStatistics()=0
Get statistics about the preprocessing.
PreprocessorInterface(PreprocessorAlgorithm algo, int id)
Constructor for PreprocessorInterface.
Definition PreprocessorInterface.hpp:47
virtual void restoreModel(std::vector< int > &model)=0
Restore the original model from the preprocessed one.
virtual std::vector< simpleClause > getSimplifiedFormula()=0
Get the simplified formula after preprocessing.
virtual void releaseMemory()=0
Release memory used by the preprocessor.
Interface for a SAT solver with standard features.
Definition SolverInterface.hpp:62
PreprocessorAlgorithm
Preprocessing technique type.
Definition PreprocessorInterface.hpp:24
SolverAlgorithmType
Enumeration for types of solver algorithms.
Definition SolverInterface.hpp:50
Preperocessing technique statistics.
Definition PreprocessorInterface.hpp:14