Timetabler
constraint_encoder.h
Go to the documentation of this file.
1 
3 #ifndef CONSTRAINT_ENCODER_H
4 #define CONSTRAINT_ENCODER_H
5 
6 #include <vector>
7 #include "clauses.h"
8 #include "core/SolverTypes.h"
9 #include "global.h"
10 #include "time_tabler.h"
11 
12 using namespace NSPACE;
13 
27  private:
32  std::vector<std::vector<std::vector<Var>>> vars;
36  Timetabler *timetabler;
37  std::vector<Var> getAllowedVars(int, FieldType);
38 
39  public:
41  Clauses hasSameFieldTypeAndValue(int, int, FieldType);
42  Clauses hasSameFieldTypeNotSameValue(int, int, FieldType);
43  Clauses notIntersectingTime(int, int);
44  Clauses notIntersectingTimeField(int, int, FieldType);
45  Clauses hasExactlyOneFieldValueTrue(int, FieldType);
46  Clauses hasAtLeastOneFieldValueTrue(int, FieldType);
47  Clauses hasAtMostOneFieldValueTrue(int, FieldType);
48  Clauses hasCommonProgram(int, int);
49  Clauses hasNoCommonCoreProgram(int, int);
51  Clauses slotInMinorTime(int);
52  Clauses isCoreCourse(int);
53  Clauses isElectiveCourse(int);
54  Clauses courseInMorningTime(int);
55  Clauses programAtMostOneOfCoreOrElective(int);
56  Clauses hasFieldTypeListedValues(int, FieldType, std::vector<int>);
57 };
58 
59 #endif
Definition: is_minor.h:20
Class for time tabler.
Definition: time_tabler.h:44
Class for constraint encoder.
Definition: constraint_encoder.h:26
FieldType
Enum that represents all the field types.
Definition: global.h:9
Class for representing a set of clauses.
Definition: clauses.h:23