public static enum GroupConstraint.ConstraintType extends Enum<GroupConstraint.ConstraintType> implements GroupConstraint.ConstraintTypeInterface
Enum Constant and Description |
---|
BTB
Back-To-Back & Same Room: Classes must be offered in adjacent time segments and must be placed in the same room.
|
BTB_DAY
Back-To-Back Day: Classes must be offered on adjacent days and may be placed in different rooms.
|
BTB_PRECEDENCE
Back-To-Back Precedence: Given classes have to be taught in the given order, on the same days,
and in adjacent time segments.
|
BTB_TIME
Back-To-Back: Classes must be offered in adjacent time segments but may be placed in different rooms.
|
BTB_WEEKS
Given classes must be taught on weeks that are back-to-back (the gap between the two assigned date patterns is less than a week).
|
CAN_SHARE_ROOM
Can Share Room: Given classes can share the room (use the room in the same time) if the room is big enough.
|
CH_NOTOVERLAP
Children Cannot Overlap: If parent classes do not overlap in time, children classes can not overlap in time as well.
|
DAYBREAK
Overnight: The constraint has two parameters: hours and distance in minutes.
|
DIFF_TIME
Different Time: Given classes cannot overlap in time.
|
DIFF_TIME_IGN_STUDS
Different Time with Ignore Student Conflicts: Combination of two constraints, Different Time and
Ignore Student Conflicts.
|
EVERY_OTHER_DAY
Two Days After: The second class has to be placed two days after the first class (Monday → Wednesday, Tuesday →
Thurday, Wednesday → Friday, Thursday → Monday, Friday → Tuesday).
|
FOLLOWING_DATES
Given classes must be taught on dates that are back-to-back and in the given order.
|
FOLLOWING_DAY
Next Day: The second class has to be placed on the following day of the first class (if the first class is on Friday,
second class have to be on Monday).
|
FOLLOWING_WEEKS
Given classes must be taught on weeks that are back-to-back and in the given order.
|
LINKED_SECTIONS
Classes (of different courses) are to be attended by the same students.
|
MAX_HRS_DAY
At Most X Hours A Day: Classes are to be placed in a way that there is no more than given number of hours in any day.
|
MAX_HRS_DAY_10
At Most 10 Hours A Day: Classes are to be placed in a way that there is no more than ten hours in any day.
|
MAX_HRS_DAY_3
At Most 3 Hours A Day: Classes are to be placed in a way that there is no more than three hours in any day.
|
MAX_HRS_DAY_4
At Most 4 Hours A Day: Classes are to be placed in a way that there is no more than four hours in any day.
|
MAX_HRS_DAY_5
At Most 5 Hours A Day: Classes are to be placed in a way that there is no more than five hours in any day.
|
MAX_HRS_DAY_6
At Most 6 Hours A Day: Classes are to be placed in a way that there is no more than six hours in any day.
|
MAX_HRS_DAY_7
At Most 7 Hours A Day: Classes are to be placed in a way that there is no more than seven hours in any day.
|
MAX_HRS_DAY_8
At Most 8 Hours A Day: Classes are to be placed in a way that there is no more than eight hours in any day.
|
MAX_HRS_DAY_9
At Most 9 Hours A Day: Classes are to be placed in a way that there is no more than nine hours in any day.
|
MEET_WITH
Meet Together: Given classes are meeting together (same as if the given classes require constraints Can Share Room,
Same Room, Same Time and Same Days all together).
|
MEET_WITH_WEEKS
Meet Together & Same Weeks: Given classes are meeting together (same as if the given classes require constraints Can Share Room,
Same Room, Same Time, Same Days and Same Weeks all together).
|
MIN_GAP |
NDB_GT_1
More Than 1 Day Between: Given classes must have two or more days in between.
|
NHB_1
1 Hour Between: Given classes must have exactly 1 hour in between the end of one and the beginning of another.
|
NHB_1_5
1.5 Hour Between: Given classes must have exactly 90 minutes in between the end of one and the beginning of another.
|
NHB_2
2 Hours Between: Given classes must have exactly 2 hours in between the end of one and the beginning of another.
|
NHB_3
3 Hours Between: Given classes must have exactly 3 hours in between the end of one and the beginning of another.
|
NHB_4
4 Hours Between: Given classes must have exactly 4 hours in between the end of one and the beginning of another.
|
NHB_4_5
4.5 Hours Between: Given classes must have exactly 4.5 hours in between the end of one and the beginning of another.
|
NHB_5
5 Hours Between: Given classes must have exactly 5 hours in between the end of one and the beginning of another.
|
NHB_6
6 Hours Between: Given classes must have exactly 6 hours in between the end of one and the beginning of another.
|
NHB_7
7 Hours Between: Given classes must have exactly 7 hours in between the end of one and the beginning of another.
|
NHB_8
8 Hours Between: Given classes must have exactly 8 hours in between the end of one and the beginning of another.
|
NHB_GTE_1
At Least 1 Hour Between: Given classes have to have 1 hour or more in between.
|
NHB_LT_6
Less Than 6 Hours Between: Given classes must have less than 6 hours from end of first class to the beginning of
the next.
|
ONLINE_ROOM
Online/Offline Room: Given classes, if scheduled on the same day, must be all in the online room or
none of them can be in the online room.
|
PRECEDENCE
Precedence: Given classes have to be taught in the given order (the first meeting of the first class has to end before
the first meeting of the second class etc.)
|
SAME_DATE_TIME_WEEKS
Same Days-Time-Weeks: The given classes must be taught at the same time of day, on the same days, and on the same weeks
(i.e., they must follow the same date pattern).
|
SAME_DATES
Given classes must be taught on the same dates.
|
SAME_DAYS
Same Days: Given classes must be taught on the same days.
|
SAME_DAYS_ROOM_START
Same Days-Room-Start: Given classes must start at the same time of day, on the same days and in the same room.
|
SAME_DAYS_ROOM_TIME
Same Days-Room-Time: Given classes must be taught at the same time of day, on the same days and in the same room.
|
SAME_DAYS_TIME
Same Days-Time: Given classes must be taught at the same time of day and on the same days.
|
SAME_INSTR
Same Instructor: Given classes are treated as they are taught by the same instructor, i.e., they cannot overlap in time
and if they are back-to-back the assigned rooms cannot be too far (instructor limit is used).
|
SAME_ROOM
Same Room: Given classes must be taught in the same room.
|
SAME_START
Same Start Time: Given classes must start during the same half-hour period of a day (independent of the actual
day the classes meet).
|
SAME_STUD_NODST
Same Students w/o Distance: This distribution is the same as the Same Students distribution,
except there is no distance conflict checking and no work-day limit.
|
SAME_STUDENTS
Same Students: Given classes are treated as they are attended by the same students, i.e., they cannot overlap in time
and if they are back-to-back the assigned rooms cannot be too far (student limit is used).
|
SAME_TIME
Same Time: Given classes must be taught at the same time of day (independent of the actual day the classes meet).
|
SAME_WEEKS
Given classes must be taught during the same weeks (i.e., must have the same date pattern).
|
WORKDAY
Work Day: Classes are to be placed in a way that there is no more than given number of hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_10
10 Hour Work Day: Classes are to be placed in a way that there is no more than ten hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_11
11 Hour Work Day: Classes are to be placed in a way that there is no more than eleven hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_12
12 Hour Work Day: Classes are to be placed in a way that there is no more than twelve hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_4
4 Hour Work Day: Classes are to be placed in a way that there is no more than four hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_5
5 Hour Work Day: Classes are to be placed in a way that there is no more than five hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_6
6 Hour Work Day: Classes are to be placed in a way that there is no more than six hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_7
7 Hour Work Day: Classes are to be placed in a way that there is no more than seven hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_8
8 Hour Work Day: Classes are to be placed in a way that there is no more than eight hours between the start of the first class and the end of the class one on any day.
|
WORKDAY_9
9 Hour Work Day: Classes are to be placed in a way that there is no more than nine hours between the start of the first class and the end of the class one on any day.
|
Modifier and Type | Method and Description |
---|---|
static GroupConstraint.ConstraintType |
get(String reference)
Deprecated.
use
GroupConstraint.getConstraintType(String) instead |
int |
getMax()
Maximum (gap, hours a day) parameter
|
int |
getMin()
Minimum (gap) parameter
|
String |
getName()
Constraint name
|
boolean |
is(GroupConstraint.Flag f)
Flag check (true if contains given flag)
|
boolean |
isSatisfied(Assignment<Lecture,Placement> assignment,
GroupConstraint gc,
Placement plc1,
Placement plc2)
True if a required or preferred constraint is satisfied between a pair of placements
|
boolean |
isViolated(Assignment<Lecture,Placement> assignment,
GroupConstraint gc,
Placement plc1,
Placement plc2)
True if a prohibited or discouraged constraint is satisfied between a pair of placements
|
String |
reference()
Constraint reference
|
GroupConstraint.ConstraintType |
type()
Constraint type
|
static GroupConstraint.ConstraintType |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static GroupConstraint.ConstraintType[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final GroupConstraint.ConstraintType SAME_TIME
public static final GroupConstraint.ConstraintType SAME_DAYS
public static final GroupConstraint.ConstraintType BTB
public static final GroupConstraint.ConstraintType BTB_TIME
public static final GroupConstraint.ConstraintType DIFF_TIME
public static final GroupConstraint.ConstraintType NHB_1
public static final GroupConstraint.ConstraintType NHB_2
public static final GroupConstraint.ConstraintType NHB_3
public static final GroupConstraint.ConstraintType NHB_4
public static final GroupConstraint.ConstraintType NHB_5
public static final GroupConstraint.ConstraintType NHB_6
public static final GroupConstraint.ConstraintType NHB_7
public static final GroupConstraint.ConstraintType NHB_8
public static final GroupConstraint.ConstraintType SAME_START
public static final GroupConstraint.ConstraintType SAME_ROOM
public static final GroupConstraint.ConstraintType NHB_GTE_1
public static final GroupConstraint.ConstraintType NHB_LT_6
public static final GroupConstraint.ConstraintType NHB_1_5
public static final GroupConstraint.ConstraintType NHB_4_5
public static final GroupConstraint.ConstraintType SAME_STUDENTS
public static final GroupConstraint.ConstraintType SAME_INSTR
public static final GroupConstraint.ConstraintType CAN_SHARE_ROOM
public static final GroupConstraint.ConstraintType PRECEDENCE
public static final GroupConstraint.ConstraintType BTB_DAY
public static final GroupConstraint.ConstraintType MEET_WITH
public static final GroupConstraint.ConstraintType NDB_GT_1
public static final GroupConstraint.ConstraintType CH_NOTOVERLAP
public static final GroupConstraint.ConstraintType FOLLOWING_DAY
public static final GroupConstraint.ConstraintType EVERY_OTHER_DAY
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_3
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_4
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_5
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_6
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_7
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_8
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_9
public static final GroupConstraint.ConstraintType MAX_HRS_DAY_10
public static final GroupConstraint.ConstraintType MAX_HRS_DAY
public static final GroupConstraint.ConstraintType SAME_WEEKS
public static final GroupConstraint.ConstraintType LINKED_SECTIONS
public static final GroupConstraint.ConstraintType BTB_PRECEDENCE
public static final GroupConstraint.ConstraintType SAME_DAYS_TIME
public static final GroupConstraint.ConstraintType SAME_DAYS_ROOM_TIME
public static final GroupConstraint.ConstraintType WORKDAY_6
public static final GroupConstraint.ConstraintType WORKDAY_7
public static final GroupConstraint.ConstraintType WORKDAY_8
public static final GroupConstraint.ConstraintType WORKDAY_9
public static final GroupConstraint.ConstraintType WORKDAY_10
public static final GroupConstraint.ConstraintType WORKDAY_11
public static final GroupConstraint.ConstraintType WORKDAY_12
public static final GroupConstraint.ConstraintType WORKDAY_4
public static final GroupConstraint.ConstraintType WORKDAY_5
public static final GroupConstraint.ConstraintType WORKDAY
public static final GroupConstraint.ConstraintType MEET_WITH_WEEKS
public static final GroupConstraint.ConstraintType MIN_GAP
public static final GroupConstraint.ConstraintType BTB_WEEKS
public static final GroupConstraint.ConstraintType FOLLOWING_WEEKS
public static final GroupConstraint.ConstraintType SAME_DATES
public static final GroupConstraint.ConstraintType SAME_DAYS_ROOM_START
public static final GroupConstraint.ConstraintType DAYBREAK
public static final GroupConstraint.ConstraintType ONLINE_ROOM
public static final GroupConstraint.ConstraintType SAME_DATE_TIME_WEEKS
public static final GroupConstraint.ConstraintType SAME_STUD_NODST
public static final GroupConstraint.ConstraintType DIFF_TIME_IGN_STUDS
public static final GroupConstraint.ConstraintType FOLLOWING_DATES
public static GroupConstraint.ConstraintType[] values()
for (GroupConstraint.ConstraintType c : GroupConstraint.ConstraintType.values()) System.out.println(c);
public static GroupConstraint.ConstraintType valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic GroupConstraint.ConstraintType type()
type
in interface GroupConstraint.ConstraintTypeInterface
public String reference()
reference
in interface GroupConstraint.ConstraintTypeInterface
public String getName()
getName
in interface GroupConstraint.ConstraintTypeInterface
public int getMin()
getMin
in interface GroupConstraint.ConstraintTypeInterface
public int getMax()
getMax
in interface GroupConstraint.ConstraintTypeInterface
public boolean is(GroupConstraint.Flag f)
is
in interface GroupConstraint.ConstraintTypeInterface
f
- a flag to check@Deprecated public static GroupConstraint.ConstraintType get(String reference)
GroupConstraint.getConstraintType(String)
insteadreference
- constraint referencepublic boolean isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)
isSatisfied
in interface GroupConstraint.AssignmentPairCheck
assignment
- current assignmentgc
- current constraintplc1
- first placementplc2
- second placementpublic boolean isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)
isViolated
in interface GroupConstraint.AssignmentPairCheck
assignment
- current assignmentgc
- current constraintplc1
- first placementplc2
- second placement