cpsolver-1.3.219
Course Timetabling: Room Availability
- do not check room availability on rooms that ignore room checking
- XML load: do not set unavailabilities on rooms that ignore room checking
(when a committed class is being loaded) - this fixes an issue with ONLINE rooms after the solution has been passivated in UniTime
Revision 4f454c9 by tomas-muller muller@unitime.org (22-Sep-2020 5:34 PM)
Course Timetabling: Instructor Conflicts
- Lecture.computeConflicts: ensure that cases when an instructor has a distance conflict with an
unavailability (e.g., committed class of a different problem) are not included in the domain
Revision c2727fb by tomas-muller muller@unitime.org (18-Sep-2020 10:50 AM)
Student Sectioning: Restrictions
- ensure restrictions are not broken by adding RequiredRestrictions global constraint into the
model
Revision baaeb57 by tomas-muller muller@unitime.org (18-Sep-2020 10:43 AM)
Student Sectioning: Added Restrictions
- restrictions are like reservations, that must be used and that do not reserve any space
- there can be more than one restriction on an offering and the student must meet at least one
that applies to her/him - restrictions do not compete with reservations
- for an offering that has both reservations and restrictions, a student must meet one restriction
that applies to him/her and must also follow the reservations - this allows UniTime to define, for example, which course configurations a student can take
independently from the given reservations
Revision 49ef4ef by tomas-muller muller@unitime.org (3-Sep-2020 7:04 PM)
Student Scheduling: Solver Info
- corrected Selection detail
Revision 2cd2457 by tomas-muller muller@unitime.org (18-Aug-2020 5:55 PM)
Examination Timetabling: Soft Rooms
- added ability to have rooms that do not check for conflicts (room checking disabled in UniTime)
Revision 5f66634 by tomas-muller muller@unitime.org (18-Aug-2020 5:54 PM)
Student Scheduling: Complete Students
- corrected computation of dummy/priority students with a complete schedule
(do not double count a complete student when a free time is being assigned / unassigned)
Revision e6ff523 by tomas-muller muller@unitime.org (19-Jul-2020 7:42 PM)
Student Scheduling Weights: Time Conflicts
- corrected computation of time conflict penalization change
Revision f455d21 by tomas-muller muller@unitime.org (19-Jul-2020 7:01 PM)
Student Scheduling: Progress
- ensure that the progress does not get reset to the first phase when there is a solver thread
late on skipping it
Revision ab662c9 by tomas-muller muller@unitime.org (30-Jun-2020 5:28 PM)
Student Scheduling Solver: Priority Students
- use the setting of Sectioning.PriorityStudentsFirstSelection.AllIn when comparting two requests
for student and request priority - when Sectioning.PriorityStudentsFirstSelection.AllIn is set to true
- request of a priority student is always considered more important
e.g., do not assign a critical request of non-priority student when it conflicts with
a non-critical request of a priority student
(priority student takes precedence over non-priority) - when Sectioning.PriorityStudentsFirstSelection.AllIn is set to false
- more critical request is always connsidered more important (using request priority)
e.g., do not assign a non-critical request of a priority student when it conflicts with a critical
request of a non-priority students
(critical request takes precedence over non-critical)
Revision afea8ee by tomas-muller muller@unitime.org (25-Jun-2020 1:29 PM)
fixed a javadoc warning
Revision ed79895 by tomas-muller muller@unitime.org (25-Jun-2020 1:05 PM)
Dependencies: Dom4J
- dom4j upgraded to version 2.1.3 (was 2.1.1)
- this is to fix a high severity vulnerability (CVE-2020-10683)
dom4j before 2.1.3 allows external DTDs and External Entities by default, which might enable XXE
attacks
Revision b5d3694 by tomas-muller muller@unitime.org (25-Jun-2020 1:03 PM)
Student Scheduling Solver: Limit Constraints
- when chosing among adepts (for a conflict) in class, course, configuration, or reservation limit
constraints, prefer course requests in the following order - dummy students before other (only when PreferDummyStudents is true)
- non-priority students over priority students
- less critical courses over more critical courses
- assignments without a reservation over assignments with a reservation
- among the rest, prefer requests with higher value (lower priority, alternative over first
choice, etc.)
Revision a50b1d9 by tomas-muller muller@unitime.org (25-Jun-2020 12:52 PM)
Student Scheduling Solver: Priority Students
- when Sectioning.PriorityStudentsFirstSelection.AllIn is set to true, all course requests of
priority students are assigned first - the order when set to true:
critical courses of priority students
important courses of priority students
remaining courses of priority students
critical courses of non-priority students
important courses of non-priority students
remaining courses of non-priority students - the order when set to false:
critical courses of priority students
critical courses of non-priority students
important courses of priority students
important courses of non-priority students
remaining courses of priority students
remaining courses of non-priority students
Revision 01f8e05 by tomas-muller muller@unitime.org (25-Jun-2020 12:49 PM)
Student Scheduling: Required Sections / Configs
- CourseRequest.isRequired(Section) -- corrected the case when there is a section required that is
from a different configuration - that is:
when there is no match, but there are section requirements for a different config -> return false
Revision 2d69a3f by tomas-muller muller@unitime.org (12-Jun-2020 6:48 PM)
Student Scheduling: Online Sections
- added ability to mark some sections as online
- e.g., sections that have no time assignment, but also sections without a room or with a room
that allows for conflicts - online sections can be penalized just like the arranged hours sections
- possibly with a different weight (StudentWeights.OnlineFactor)
Revision 3dd92d5 by tomas-muller muller@unitime.org (10-Jun-2020 2:08 PM)
Course Timetabling: Instructor Constraint
- InstructorConstraint.getPreference(Assignment, Placement) corrected
(non-BTB preference was included multiple times for classes with multiple meetings in a week) - SoftInstructorConstraint include unavailability conflicts in the conflict computation
Revision 6634297 by tomas-muller muller@unitime.org (28-May-2020 9:32 PM)
Student Scheduling: Linked Sections
- added ability to break linked-sections constraint with a reservation
Revision 21b84f1 by tomas-muller muller@unitime.org (27-May-2020 5:07 PM)
Course Timetabling: Allow Break Hard
- added ability to include prohibited values in the domain (General.AllowBreakHard = true)
- only when these times/rooms are loaded in (e.g., due to the interactive mode)
Revision 7efd671 by tomas-muller muller@unitime.org (20-May-2020 10:10 AM)
Course Timetabling: Soft Instructor Constraint
- added a soft version of the instructor constraint (instructor conflicts are allowed, but
penalized)
Revision c8b7992 by tomas-muller muller@unitime.org (19-May-2020 8:29 PM)
Student Scheduling: MPP
- Student Swap, Limited-Depth Backtracking: do not unassign initial enrollment in MPP mode
- allow for an initial enrollment to be unassigned when the new enrollment is also initial
-> this is to allow the solver to swap two students (initial assignment of one student for initial
assignment of the other student) - however, do not unassign a course request with a fixed enrollment
Revision 4bcb362 by tomas-muller muller@unitime.org (14-May-2020 7:06 PM)
Student Scheduling: MPP
- Branch&Bound: do not leave course request with a fixed enrollment (or an initial enrollment when
initial assignment must be kept) unassigned - Student Swap, Limited-Depth Backtracking: do not unassign initial enrollment in MPP mode
- or an enrollment that would get a student below min creadit
- or an enrollment of a student with higher priority
- or an enrollment with higher request priority
Revision f15a53b by tomas-muller muller@unitime.org (12-May-2020 2:10 PM)
Student Scheduling: Single-course MPP
- avoid re-assignment of the same value to a variable
- when there are override reservations for conflicting original enrollments, re-assignment of an
enrollment (that does not have an override) can trigger a conflict on a course with such
overrides
Revision 0d62f3d by tomas-muller muller@unitime.org (11-May-2020 9:37 PM)
Student Scheduling: Load XML
- assign enrollments with a reservation first, but enrollments with an override go last
- this is to avoid conflicts of other enrollments
Revision 504f598 by tomas-muller muller@unitime.org (11-May-2020 9:35 PM)
Student Scheduling: Fixed Course Requests
- added ability to assign course request with one fixed enrollment
(no other enrollments are listed in the domain of the request in this case) - useful for signle-course MPP, especially if there are inconsistent enrollments in the courses
that are to be fixed (left unchanged)
Revision 6553f8c by tomas-muller muller@unitime.org (6-May-2020 6:58 PM)
Student Scheduling: MPP
- when using MPP in the mode where initial assignments cannot be changed
(Sectioning.KeepInitialAssignments is true)
-> when there is an initial assignment, only return the initial assignment in the course request's
domain
Revision 926d487 by tomas-muller muller@unitime.org (30-Apr-2020 1:58 PM)
Student Scheduling: Blocking Reservations
- extended the ability to have the neverIncluded flag on any reservation
(this allows for a reservation that may block the student from geting the course, e.g., when there
is no configuration with matching instructional mode)
Revision 546377f by tomas-muller muller@unitime.org (10-Apr-2020 6:26 PM)
Student Scheduling: Reservation Override
- added flag neverIncluded to be able to model a case when a student is not allowed to take
a course for some reason
Revision dce12c9 by tomas-muller muller@unitime.org (9-Apr-2020 8:10 PM)
Simulated Annealing: Stochastic HC
- corrected initial temperature computation when stochastic hill-climber schema is enabled
Revision 022395d by tomas-muller muller@unitime.org (4-Apr-2020 9:32 AM)
Batch Student Scheduling: Priority Criterion
- added an additional weight (StudentWeights.ReservationNotFollowedFactor) that is used for
enrollment that does not follow a matching reservation
Revision 4a68e52 by tomas-muller muller@unitime.org (23-Mar-2020 6:59 PM)
Online Student Scheduling: Equal Criterion
- additional adjustment on online student selection: while following reservation (that does not
need to be followed) is preferred, student preferences take precedence
Revision 6bc1c3b by tomas-muller muller@unitime.org (23-Mar-2020 6:58 PM)
Online Student Scheduling: Priority Criterion
- additional adjustment on online student selection: while following reservation (that does not
need to be followed) is preferred, student preferences take precedence
Revision 03e44f3 by tomas-muller muller@unitime.org (23-Mar-2020 5:24 PM)
Round Robin: Termination
- avoid an infinite loop when all the neighborhoods return null
- fixes #18
Revision c1d7862 by tomas-muller muller@unitime.org (23-Mar-2020 5:03 PM)
Student Scheduling: Curriculum Override
- added an override reservation for curricula
Revision 8856bd8 by tomas-muller muller@unitime.org (23-Mar-2020 4:38 PM)
Online Student Scheduling: Priority Criterion
- consider reservations when comparing two enrollments for alternativity,
but ensure that getting the course without a reservation is still better than getting an
alternative course - adjustment to commit 9e5ebe9, which has caused the reservations to be completely ignored
- the current order
- course, following a reservation
- course, not following a reservarion (if there is no matching reservation that needs to be
followed) - 1st alternative course, following a reservation
- 1st alternative course, not following a reservation
- 2nd alternative course, following a reservation
- ...
Revision db24c4e by tomas-muller muller@unitime.org (21-Mar-2020 10:14 AM)
Student Scheduling: Free Times
- corrected FreeTimeRequest.equals(Object)
Revision be9cbe1 by tomas-muller muller@unitime.org (26-Feb-2020 11:07 PM)
CPSolver Build/Dependencies
- use Dom4J 2.1.1 (instead of the deprecated 1.6.1)
- Java source/target set to 1.8 (was 1.6)
Revision 48f9836 by tomas-muller muller@unitime.org (8-Jan-2020 3:18 PM)
Student Scheduling: Request Priority
- added ability to put a multiple levels to critical courses
- by default, there are three levels: critical > important > normal
- critical course request are assigned first, then important requests, then the rest
- more levels can be defined in the future by just extending the RequestPriority enum
Revision a052701 by tomas-muller muller@unitime.org (17-Dec-2019 1:35 PM)
Course Timetabling: Room Sharing
- more precise computation of allowed room sharing (how much space is needed in a room)
- this is to avoid issues when three or more classes can share a room and some of these classes do
not overlap
(e.g., no more than two classes overlap when there is a Monday class, a Wednesday class, and
a Monday-Wednesday class)
Revision 6d3c8b1 by tomas-muller muller@unitime.org (27-Nov-2019 9:58 PM)
Student Scheduling: Reservations
- added ability to have reservation restrictions that are not inclusive
(that is, if a reservation is on a class, the reservation does not include the configuration and
all the parents of said class) - such a reservation only contains sections/configurations on which the restrictions are set, and
this reservation is only checked on these levels - use Reservation.addSection(section, false) to skip the inclusion of the section's parent(s) and
configuration - is included, restrictivity, and limit cap is computed differently for such a reservation
- offering's unreserved space does not include such reservations when they have any restrictions
- while such reservations are more permissive, they avoid issues with double booking of the same
space (e.g., having two reservations on the same section)
Revision 0ee42ac by tomas-muller muller@unitime.org (5-Nov-2019 9:59 PM)