Skip to content

cpsolver-1.3.219

Compare
Choose a tag to compare
@tomas-muller tomas-muller released this 04 Oct 09:29
· 164 commits to master since this release

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)