Timetabler
timetabler.h
Go to the documentation of this file.
1 
3 #ifndef TIMETABLER_H
4 #define TIMETABLER_H
5 
6 #include <vector>
7 #include "MaxSATFormula.h"
8 #include "cclause.h"
9 #include "core/SolverTypes.h"
10 #include "data.h"
11 #include "mtl/Vec.h"
12 #include "tsolver.h"
13 
14 using namespace NSPACE;
15 
32 };
33 
44 class Timetabler {
45  private:
49  TSolver *solver;
53  MaxSATFormula *formula;
57  std::vector<lbool> model;
58 
59  public:
64  Timetabler();
65  ~Timetabler();
66  void addClauses(const std::vector<CClause> &, int);
67  void addClauses(const Clauses &, int);
68  bool checkAllTrue(const std::vector<Var> &);
69  bool checkAllTrue(const std::vector<std::vector<Var>> &);
70  bool isVarTrue(const Var &);
71  SolverStatus solve();
72  Var newVar();
73  Lit newLiteral(bool sign = false);
74  void printResult(SolverStatus);
75  void displayTimeTable();
76  void displayUnsatisfiedOutputReasons();
77  void addHighLevelClauses();
78  void addHighLevelConstraintClauses(PredefinedClauses, const int course);
79  void addHighLevelCustomConstraintClauses(int, int);
80  void writeOutput(std::string);
81  void addExistingAssignments();
82  void addToFormula(vec<Lit> &, int);
83  void addToFormula(Lit, int);
84  void displayChangesInGivenAssignment();
85 };
86 
87 #endif
Class for time tabler.
Definition: timetabler.h:44
PredefinedClauses
Enum that represents all the predefined constraints.
Definition: global.h:14
Class for solver.
Definition: tsolver.h:25
Class for representing a set of clauses.
Definition: clauses.h:23
Class for data.
Definition: data.h:31
SolverStatus
Enum to store the solver status.
Definition: timetabler.h:19
Data data
Definition: timetabler.h:63