Download Latest Version cpsolver-1.4.74-javadoc.jar (10.7 MB)
Email in envelope

Get an email when there's a new version of Constraint Solver

Home / cpsolver / cpsolver-1.3_bld219
Name Modified Size InfoDownloads / Week
Parent folder
README.txt 2020-10-04 15.2 kB
cpsolver-1.3.219.jar 2020-10-04 2.0 MB
cpsolver-1.3.219-dist.zip 2020-10-04 12.3 MB
cpsolver-1.3.219-sources.jar 2020-10-04 1.3 MB
cpsolver-1.3.219-javadoc.jar 2020-10-04 9.5 MB
Totals: 5 Items   25.1 MB 0
CP Solver v1.3 build 219 change log (since the last release, build 189 on 31 Oct 2019 00:30)

Revision 4f454c9 by tomas-muller <muller@unitime.org> (22-Sep-2020 5:34 PM)
  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 c2727fb by tomas-muller <muller@unitime.org> (18-Sep-2020 10:50 AM)
  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 baaeb57 by tomas-muller <muller@unitime.org> (18-Sep-2020 10:43 AM)
  Student Sectioning: Restrictions
    - ensure restrictions are not broken by adding RequiredRestrictions global constraint into the
      model

Revision 49ef4ef by tomas-muller <muller@unitime.org> (3-Sep-2020 7:04 PM)
  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 2cd2457 by tomas-muller <muller@unitime.org> (18-Aug-2020 5:55 PM)
  Student Scheduling: Solver Info
    - corrected Selection detail

Revision 5f66634 by tomas-muller <muller@unitime.org> (18-Aug-2020 5:54 PM)
  Examination Timetabling: Soft Rooms
    - added ability to have rooms that do not check for conflicts (room checking disabled in
      UniTime)

Revision e6ff523 by tomas-muller <muller@unitime.org> (19-Jul-2020 7:42 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 f455d21 by tomas-muller <muller@unitime.org> (19-Jul-2020 7:01 PM)
  Student Scheduling Weights: Time Conflicts
    - corrected computation of time conflict penalization change

Revision ab662c9 by tomas-muller <muller@unitime.org> (30-Jun-2020 5:28 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 afea8ee by tomas-muller <muller@unitime.org> (25-Jun-2020 1:29 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 ed79895 by tomas-muller <muller@unitime.org> (25-Jun-2020 1:05 PM)
  fixed a javadoc warning

Revision b5d3694 by tomas-muller <muller@unitime.org> (25-Jun-2020 1:03 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 a50b1d9 by tomas-muller <muller@unitime.org> (25-Jun-2020 12:52 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 01f8e05 by tomas-muller <muller@unitime.org> (25-Jun-2020 12:49 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 2d69a3f by tomas-muller <muller@unitime.org> (12-Jun-2020 6:48 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 3dd92d5 by tomas-muller <muller@unitime.org> (10-Jun-2020 2:08 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 6634297 by tomas-muller <muller@unitime.org> (28-May-2020 9:32 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 21b84f1 by tomas-muller <muller@unitime.org> (27-May-2020 5:07 PM)
  Student Scheduling: Linked Sections
    - added ability to break linked-sections constraint with a reservation

Revision 7efd671 by tomas-muller <muller@unitime.org> (20-May-2020 10:10 AM)
  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 c8b7992 by tomas-muller <muller@unitime.org> (19-May-2020 8:29 PM)
  Course Timetabling: Soft Instructor Constraint
    - added a soft version of the instructor constraint (instructor conflicts are allowed, but
      penalized)

Revision 4bcb362 by tomas-muller <muller@unitime.org> (14-May-2020 7:06 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 f15a53b by tomas-muller <muller@unitime.org> (12-May-2020 2:10 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 0d62f3d by tomas-muller <muller@unitime.org> (11-May-2020 9:37 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 504f598 by tomas-muller <muller@unitime.org> (11-May-2020 9:35 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 6553f8c by tomas-muller <muller@unitime.org> (6-May-2020 6:58 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 926d487 by tomas-muller <muller@unitime.org> (30-Apr-2020 1: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 546377f by tomas-muller <muller@unitime.org> (10-Apr-2020 6:26 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 dce12c9 by tomas-muller <muller@unitime.org> (9-Apr-2020 8:10 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 022395d by tomas-muller <muller@unitime.org> (4-Apr-2020 9:32 AM)
  Simulated Annealing: Stochastic HC
    - corrected initial temperature computation when stochastic hill-climber schema is enabled

Revision 4a68e52 by tomas-muller <muller@unitime.org> (23-Mar-2020 6:59 PM)
  Batch Student Scheduling: Priority Criterion
    - added an additional weight (StudentWeights.ReservationNotFollowedFactor) that is used for
      enrollment that does not follow a matching reservation

Revision 6bc1c3b by tomas-muller <muller@unitime.org> (23-Mar-2020 6:58 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 03e44f3 by tomas-muller <muller@unitime.org> (23-Mar-2020 5:24 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 c1d7862 by tomas-muller <muller@unitime.org> (23-Mar-2020 5:03 PM)
  Round Robin: Termination
    - avoid an infinite loop when all the neighborhoods return null
    - fixes #18

Revision 8856bd8 by tomas-muller <muller@unitime.org> (23-Mar-2020 4:38 PM)
  Student Scheduling: Curriculum Override
    - added an override reservation for curricula

Revision db24c4e by tomas-muller <muller@unitime.org> (21-Mar-2020 10:14 AM)
  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 be9cbe1 by tomas-muller <muller@unitime.org> (26-Feb-2020 11:07 PM)
  Student Scheduling: Free Times
    - corrected FreeTimeRequest.equals(Object)

Revision 48f9836 by tomas-muller <muller@unitime.org> (8-Jan-2020 3:18 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 a052701 by tomas-muller <muller@unitime.org> (17-Dec-2019 1:35 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 6d3c8b1 by tomas-muller <muller@unitime.org> (27-Nov-2019 9:58 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 0ee42ac by tomas-muller <muller@unitime.org> (5-Nov-2019 9:59 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)
Source: README.txt, updated 2020-10-04