Timetabler
constraint_adder.h
Go to the documentation of this file.
1 
3 #ifndef CONSTRAINT_ADDER_H
4 #define CONSTRAINT_ADDER_H
5 
6 #include "clauses.h"
7 #include "constraint_encoder.h"
8 #include "core/SolverTypes.h"
9 #include "global.h"
10 class Timetabler;
11 
12 using namespace NSPACE;
13 
27  private:
32  ConstraintEncoder *encoder;
38  Clauses fieldSingleValueAtATime(FieldType);
39  std::vector<Clauses> exactlyOneFieldValuePerCourse(FieldType);
40  Clauses instructorSingleCourseAtATime();
41  Clauses classroomSingleCourseAtATime();
42  Clauses programSingleCoreCourseAtATime();
43  std::vector<Clauses> minorInMinorTime();
44  std::vector<Clauses> coreInMorningTime();
45  std::vector<Clauses> electiveInNonMorningTime();
46  // Clauses existingAssignmentClauses();
47  std::vector<Clauses> programAtMostOneOfCoreOrElective();
48 
49  public:
51  void addConstraints();
52  void addSingleConstraint(PredefinedClauses, const Clauses &,
53  const int course);
54 };
55 
56 #endif
Class for constraint adder.
Class for time tabler.
Definition: timetabler.h:44
PredefinedClauses
Enum that represents all the predefined constraints.
Definition: global.h:14
Class for constraint encoder.
Timetabler * timetabler
Definition: main.cpp:90
FieldType
Enum that represents all the field types.
Definition: global.h:9
Class for representing a set of clauses.
Definition: clauses.h:23