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


Public Member Functions | |
| SATNonCNFMethod ()=delete | |
| virtual | ~SATNonCNFMethod () |
| virtual bool | solve () override |
| Solves the SAT/SMT problem induced by the method. More... | |
| virtual 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 | |
| virtual std::string | getFileName () const =0 |
| Gives the name of the file in which the boolean formula must be written. More... | |
| bool | isSatisfiable () const |
| Reads the output of the SAT solver and checks if the formula was satisfiable or not. More... | |
| virtual bool | createFormula (std::ostream &stream)=0 |
| Creates the boolean formula (must not be in CNF) and writes it in the stream. More... | |
| virtual std::unique_ptr< DFA< char > > | toDFA (std::istream &stream) const =0 |
| Effectively creates the DFA. More... | |
| SATNonCNFMethod (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... | |
Protected Attributes | |
| const bool * | mustStop |
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 non-CNF SAT solver.
It creates a non-CNF SAT solver
Definition at line 26 of file SATNonCNFMethod.h.
|
delete |
|
virtual |
Definition at line 18 of file SATNonCNFMethod.cpp.
|
protected |
Definition at line 13 of file SATNonCNFMethod.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 53 of file SATNonCNFMethod.cpp.
|
protectedpure virtual |
Creates the boolean formula (must not be in CNF) and writes it in the stream.
| stream | The output stream in which to write |
Implemented in gsjj::passive::NonCNF::HeuleVerwerNonCNFMethod, gsjj::passive::NonCNF::BinaryNonCNFMethod, and gsjj::passive::NonCNF::UnaryNonCNFMethod.
|
protectedpure virtual |
Gives the name of the file in which the boolean formula must be written.
Implemented in gsjj::passive::NonCNF::HeuleVerwerNonCNFMethod, gsjj::passive::NonCNF::BinaryNonCNFMethod, and gsjj::passive::NonCNF::UnaryNonCNFMethod.
|
protected |
Reads the output of the SAT solver and checks if the formula was satisfiable or not.
Definition at line 80 of file SATNonCNFMethod.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 76 of file SATNonCNFMethod.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 SATNonCNFMethod.cpp.
|
protectedpure virtual |
Effectively creates the DFA.
If this function is called, the boolean formula is satisfiable. The output of the SAT solver is given in the stream
Implemented in gsjj::passive::NonCNF::HeuleVerwerNonCNFMethod, gsjj::passive::NonCNF::BinaryNonCNFMethod, and gsjj::passive::NonCNF::UnaryNonCNFMethod.
|
protected |
Definition at line 67 of file SATNonCNFMethod.h.
1.8.13