|
libgsjj
1
Deterministic finite automata learning library
|
Base class for every method that relies on a SAT solver. More...
#include <SATCNFMethod.h>


Public Member Functions | |
| SATCNFMethod ()=delete | |
| virtual | ~SATCNFMethod () |
| bool | solve () override |
| Solves the SAT/SMT problem induced by the method. More... | |
| std::unique_ptr< DFA< char > > | constructDFA () override |
| Constructs the DFA induced by the variables according to the method. More... | |
| virtual void | setStopTrigger (const std::chrono::seconds &timeLimit, std::atomic_bool &stopTrigger, const bool *stopPointer) override |
| Sets the stop trigger for this method. More... | |
Public Member Functions inherited from gsjj::passive::Method | |
| Method ()=delete | |
| virtual | ~Method () |
| bool | hasSolution () const |
| If solve() has been called and if there exists a solution, return True. More... | |
| unsigned int | numberOfStates () const |
| Gives the number of states of the prospected DFA (the n) More... | |
| double | timeToSolve () const |
| Gives the CPU time taken to solve the problem. More... | |
Protected Member Functions | |
| Minisat::Var | newVariable () |
| Creates a new variable in the SAT solver. More... | |
| void | addClause (const Minisat::vec< Minisat::Lit > &clause) |
| Adds a new clause to the SAT solver. More... | |
| virtual void | createVariables ()=0 |
| Creates all needed variables for the method. More... | |
| virtual void | createClauses ()=0 |
| Creates all needed clauses for the method. More... | |
| virtual std::unique_ptr< DFA< char > > | toDFA (const Minisat::vec< Minisat::lbool > &model) const =0 |
| Effectively creates the DFA from the values of the variables in the given model. More... | |
| SATCNFMethod (const std::set< std::string > &SpSet, const std::set< std::string > &SmSet, const std::set< std::string > &SSet, const std::set< std::string > &prefixesSet, const std::set< char > &alphabetSet, unsigned int n) | |
Protected Member Functions inherited from gsjj::passive::Method | |
| Method (const std::set< std::string > &SpSet, const std::set< std::string > &SmSet, const std::set< std::string > &SSet, const std::set< std::string > &prefixesSet, const std::set< char > &alphabetSet, unsigned int n) | |
| Creates the method. More... | |
Additional Inherited Members | |
Protected Attributes inherited from gsjj::passive::Method | |
| const std::set< std::string > | m_Sp |
The set of words to accept . More... | |
| const std::set< std::string > | m_Sm |
The set of words to reject . More... | |
| const unsigned int | m_numberStates |
| The number of states in the DFA to construct. More... | |
| const std::set< std::string > | m_S |
In the code, . More... | |
| const std::set< std::string > | m_prefixes |
More... | |
| const std::set< char > | m_alphabet |
More... | |
| bool | m_triedSolve |
| bool | m_hasSolution |
| double | m_cpuTimeStart |
| double | m_cpuTimeEnd |
Base class for every method that relies on a SAT solver.
It creates a SAT solver and defines some functions to easily create a new variable and new clauses.
Definition at line 22 of file SATCNFMethod.h.
|
delete |
|
virtual |
Definition at line 18 of file SATCNFMethod.cpp.
|
protected |
Definition at line 12 of file SATCNFMethod.cpp.
|
protected |
Adds a new clause to the SAT solver.
It creates a copy of the given clause. Therefore, one can use the same Minisat::vec to construct every clause.
| clause | The clause to add |
Definition at line 70 of file SATCNFMethod.cpp.
|
overridevirtual |
Constructs the DFA induced by the variables according to the method.
If the SAT/SMT problem has not yet been solved, the function automatically solves it. If the SAT/SMT problem is unsolvable, returns a null pointer.
Implements gsjj::passive::Method.
Definition at line 45 of file SATCNFMethod.cpp.
|
protectedpure virtual |
Creates all needed clauses for the method.
Implemented in gsjj::passive::CNF::HeuleVerwerCNFMethod, and gsjj::passive::CNF::UnaryCNFMethod.
|
protectedpure virtual |
Creates all needed variables for the method.
Implemented in gsjj::passive::CNF::HeuleVerwerCNFMethod, and gsjj::passive::CNF::UnaryCNFMethod.
|
protected |
Creates a new variable in the SAT solver.
A Minisat::Var is actually just an integer
Definition at line 66 of file SATCNFMethod.cpp.
|
overridevirtual |
Sets the stop trigger for this method.
Since we use three different solvers and each has its own way to stop (CVC4 uses a function to set a time limit, Maple is in C++ so we can use an atomic variable and Limboole is in C and we must use a pointer), we must provide each possibility
| timeLimit | The time in seconds the method can take. It's used by SMT methods. |
| stopTrigger | The atomic_bool variable. Once set to true, the method will stop. It's used by CNF methods. |
| stopPointer | The pointer variable. Once the value is set to true, the method will stop. It's used by NonCNF methods. |
Implements gsjj::passive::Method.
Definition at line 62 of file SATCNFMethod.cpp.
|
overridevirtual |
Solves the SAT/SMT problem induced by the method.
Il also creates every variable and clause needed
Implements gsjj::passive::Method.
Definition at line 22 of file SATCNFMethod.cpp.
|
protectedpure virtual |
Effectively creates the DFA from the values of the variables in the given model.
| model | The model |
Implemented in gsjj::passive::CNF::HeuleVerwerCNFMethod, and gsjj::passive::CNF::UnaryCNFMethod.
1.8.13