3
#include "Structures/State.h"
4
#include "../lpsolve/lp_lib.h"
5
#include "Reachability/ReachabilityResult.h"
9
namespace PetriEngine {
13
STVariable(int c, REAL v){
26
STSolver(Reachability::ResultPrinter& printer, const PetriNet& net, PQL::Condition * query, uint32_t depth);
29
int Solve(uint32_t timeout);
30
void PrintStatistics();
31
Reachability::ResultPrinter::Result PrintResult();
35
uint32_t getAnalysisTime(){
40
std::string VarName(uint32_t index);
41
void MakeConstraint(std::vector<STVariable> constraint, int constr_type, REAL rh);
42
int CreateSiphonConstraints();
43
int CreateStepConstraints(uint32_t i);
44
int CreatePostVarDefinitions(uint32_t i);
45
int CreateNoTrapConstraints();
46
void constructPrePost();
47
uint32_t duration() const;
50
Reachability::ResultPrinter& printer;
51
PQL::Condition * _query;
52
std::unique_ptr<place_t[]> _places;
53
std::unique_ptr<uint32_t> _transitions;
57
uint32_t _siphonDepth;
58
uint32_t _nPlaceVariables;
62
uint32_t _analysisTime;
67
std::chrono::high_resolution_clock::time_point _start;
70
#endif /* STSOLVER_H */