Skip to content

Releases: UniTime/cpsolver

cpsolver-1.3.177

27 Jun 14:42
Compare
Choose a tag to compare

Student Scheduling: Enrollment

  • equals: include reservation in the equality checking
  • this fixes an issue with solution restore (current solution containing the same enrollment, but
    without the reservation)

Revision 9e14989 by tomas-muller muller@unitime.org (26-Jun-2019 7:52 PM)

cpsolver-1.3.176

24 Jun 12:54
Compare
Choose a tag to compare

Student Scheduling: Student Quality in Java 7

  • corrected build for Java 7
    (e.g., StudentQuality$Nothing is not abstract and does not override abstract method remove() in
    Iterator)

Revision 34b4265 by tomas-muller muller@unitime.org (24-Jun-2019 2:46 PM)

Online Student Scheduling: Suggestions

  • few more improvements when dealing with course requests that have many alternatives
  • show suggestions for the same course first
    (before suggestions for other courses, unless there are preferences or unassignments that take
    priority)
  • improved speed a little by changing the way possible enrollments for a course request are sorted
    (preferred enrollments first; then enrollments of the same course, ordered by the number of
    changes)

Revision 342e12d by tomas-muller muller@unitime.org (23-May-2019 9:30 AM)

Student Scheduling: Preferences (when dealing with alternatives)

  • consider two sections to be of the same choice (same instructional type, time and instructor)
    only if they are of the same course as well
  • improves handing of preferences for course requests with many alternative courses
  • consider two sections to be of the same time (same instructional type and time) only if they are
    of the same course as well
  • a class is considered preferred (selected) only if there is a matching section or config
    preference
  • not when there is a preference of the same choice
  • computation of selected enrollments (of a course request)
  • do not skip sections that are not selected, but for which there is no preference
    (instead of including these in the computation of selected sections, which was messing up the
    order of computed suggestions)

Revision 8023054 by tomas-muller muller@unitime.org (23-May-2019 9:29 AM)

Online Student Scheduling: Suggestions

  • make sure that suggestions with better alternativity are higher in the list of suggestions

Revision 79a346e by tomas-muller muller@unitime.org (21-May-2019 9:45 PM)

Batch Solver: Suggestions

  • ignore Sectioning.KeepInitialAssignments in the OnlineSectioningModel
    (this is to allow suggestions to be computed on the Student Sectioning Dashboard page when the
    batch solver is loaded with Sectioning.KeepInitialAssignments = true)

Revision 9e03e1c by tomas-muller muller@unitime.org (21-May-2019 9:41 PM)

cpsolver-1.3.174

14 May 14:32
Compare
Choose a tag to compare

Minor Fixes

  • fixed a few minor issues discovered by the new unlikely argument type solver warnings

Revision 91de3b1 by tomas-muller muller@unitime.org (9-May-2019 4:00 PM)

Course Timetabling: Course Alterantives

  • added ability to provide course alternatives (for a student)
  • course alternatives still create a joint-enrollment constraint, but the conflict weight of
    a student with the alternative is zero
    (student is not going to take both courses)

Revision ae0fc11 by tomas-muller muller@unitime.org (9-May-2019 3:58 PM)

Student Scheduling: Group Label

  • added ability to remember group/accommodation name (besides of the code/abbreviation)

Revision 1eed8ba by tomas-muller muller@unitime.org (9-Apr-2019 7:31 PM)

CSVFile: added load(Reader) and write(Reader)

Revision 9b5c562 by tomas-muller muller@unitime.org (5-Apr-2019 4:39 PM)

Student Scheduling: Critical Courses Report

  • added critical courses report

Revision 9521295 by tomas-muller muller@unitime.org (1-Apr-2019 10:34 PM)

Student Scheduling Model: Assigned Critical Courses

  • solution info: exclude alternative course requests from the computation of the assigned critical
    courses

Revision 418a251 by tomas-muller muller@unitime.org (1-Apr-2019 10:34 PM)

Student Scheduling: Tableau Report

  • removed showdates (will be handled differently)
  • added simplified version (fewer columns)

Revision 129ca25 by tomas-muller muller@unitime.org (4-Mar-2019 8:54 PM)

Student Scheduling: Override Reservations

  • override reservations that are marked as must be used:
    such reservations must be used regardless of their expiration status

Revision ca3a26a by tomas-muller muller@unitime.org (21-Feb-2019 2:41 PM)

Student Scheduling Reports: Tableau Report

  • added ability to include term, solver started time stamp, and solution published time stamp

Revision ea6c3de by tomas-muller muller@unitime.org (14-Feb-2019 7:18 PM)

Student Scheduling: Learning Community Reservations

  • added Learning Community Reservations
    combining Student Group Reservation and Course Reservation
    (reservation is for students of a particular group taking the offering under the appropriate
    course name)

Revision 3a8d728 by tomas-muller muller@unitime.org (8-Feb-2019 5:27 PM)

Build: fixed dom4j javadoc link

Revision f2ff4eb by tomas-muller muller@unitime.org (20-Dec-2018 1:05 PM)

Batch Student Scheduling: Critical Course Requests

  • critical course request assignment moved before min-credit to ensure critical courses are
    assigned first
  • only check for critical courses when a student has a least one critical course request
    unassigned
  • only check for min-credit when a student has assignments below the min credit

Revision 8532954 by tomas-muller muller@unitime.org (19-Dec-2018 8:58 PM)

Batch Student Scheduling: Critical Course Requests

  • XML Load: added ability to move critical courses higher in their priority
    when Xml.MoveCriticalUp is set to true, defaults to false

Revision df51e2e by tomas-muller muller@unitime.org (18-Dec-2018 4:11 PM)

Batch Student Scheduling: Min Credit / Critical Course Requests

  • added ability to change the time limit for the min-credit branch&bound selection
    Neighbour.MinCreditBranchAndBoundTimeout parameter, defaults to 10000 (10 seconds)

Revision 4468dce by tomas-muller muller@unitime.org (18-Dec-2018 4:09 PM)

Batch Student Scheduling: Critical Course Requests

  • some courses may be marked as critical (they are important for the student to progress towards
    their degree)
  • critical courses are assigned first (together with min credits)
  • critical courses cannot be unassigned during random unassignment or during standard selection
  • Critical flag is included in the tableu report

Revision a5f745c by tomas-muller muller@unitime.org (14-Dec-2018 3:03 PM)

Student Scheduling: Tableau Report

  • first version of a report that lists information needed for additional reporting

Revision 36696c6 by tomas-muller muller@unitime.org (6-Dec-2018 2:10 PM)

Student Scheduling: Solution Info

  • prefix the new student schedule quality criteria with Schedule Quality:
  • Choice: compute average assigned choice and the numbers of assigned courses of the 1st, 2nd,
    etc. choice
  • Priority: compute average not-assigned course request priority and the numbers of not-assigned
    course request of priority 1, 2, 3, ...

Revision 3e4cc40 by tomas-muller muller@unitime.org (4-Dec-2018 8:46 PM)

Course Timetabling: B&B Student Sectioning

  • fixed null exception

Revision 4298d78 by tomas-muller muller@unitime.org (20-Nov-2018 4:33 PM)

Student Scheduling: Student Schedule Quality

  • added a new extension, names StudentQuality replacing both DistanceConflict and
    TimeOverlapsCounter
  • besides of time and distance conflicts, the following criteria have been added:
  • lunch breaks (allow time for lunch): there is a lunch conflict created when the student has two
    classes on a day that overlap with the lunch period of 11 am - 1 pm with less than 30 minutes in
    between
  • travel time: there is a conflict proportional to the travel time (in minutes) between two
    classes on the same day that are less than 1 hour apart (or less than 2 hours apart when the
    travel time is longer than the break time of the first class -- 10 minutes for most classes)
  • back-to-back: there is a (negatively weighted) conflict for any two classes that are
    back-to-back and on the same day (the idea is to minimize gaps, so we want more classes
    clustered together)
  • workday: there is a conflict when the student has two classes that have more than six hours
    between the start of the first one and the end of the second one; the conflict is proportional
    to the number of hours over this limit (e.g., if the two classes span 8 hours, the penalty is 2)
    -- again the idea is to make the schedule more compact, without unnecessary gaps
  • too early: there is a conflict when the class starts before 8:30 am (proportional to the time of
    the class before 8:30)
  • too late: there is a conflict when the class ends after 5:30 pm (proportional to the time of the
    class after 5:30)

Revision 3b0ccdc by tomas-muller muller@unitime.org (20-Nov-2018 2:17 PM)

Nightly Builds

  • build maven to target folder (instead of dist)
  • clean target folder before and after making and deploying a new SNAPSHOT build

Revision 4eda065 by tomas-muller muller@unitime.org (1-Nov-2018 7:19 PM)

Student Scheduling: Required Choices

  • added ability for a student to require sections and/or configurations

Revision f728962 by tomas-muller muller@unitime.org (16-Oct-2018 8:33 PM)

Examination Solver: added Same Day distribution constrain (#14)

  • corrected ExamDistributionConstraint.isSatisfied(Assignment, Placement) for different day

Revision a37ddc4 by tomas-muller muller@unitime.org (10-Oct-2018 6:26 PM)

Examination Solver: added Same Day distribution constrain (#14)

Revision 36c1382 by rafati rafat.ishaq@gmail.com (10-Oct-2018 6:17 PM)

Student Scheduling Solver: Info

  • show balancing parameters in the same format as the others
  • that is: percentage% (value)
  • instead of: value (percentage%)

Revision 820bd00 by tomas-muller muller@unitime.org (10-Oct-2018 5:56 PM)

Parallel Solver: neighbour.assignments()

  • catch any exceptions thrown by neighbour.assignments()

Revision 01b8847 by tomas-muller muller@unitime.org (10-Oct-2018 5:54 PM)

Batch Student Scheduling: Backtrack Selection

  • when it is allowed to select assigned requests (Neighbour.IncludeAssignedRequests is true)
  • skip all assigned free time requests
  • skip all assigned course requests that have no selection preferenes and already have the primary
    course assigned

Revision c961ad1 by tomas-muller muller@unitime.org (6-Oct-2018 8:10 AM)

Batch Student Scheduling: Swap Enrollments Selection

  • corrected a possible null exception when a course requests becomes unassigned during the search

Revision 8b5dc18 by tomas-muller muller@unitime.org (5-Oct-2018 8:31 AM)

Parallel Solver: Logging

  • changed logging of "Failed to select a neighbour" errors to debug
    (but include stack trace)

Revision e698330 by tomas-muller muller@unitime.org (4-Oct-2018 5:05 PM)

Batch Student Scheduling: Swap Enrollments Selection

  • added a selection that swaps enrollments of different students of a course
  • this is to improve the enrollment alternativity as well as selection preferences
  • only triggers on assigned course requests that do not have the primary course (first course in
    the list) or that have section or instructional method preferences

Revision f325cf4 by tomas-muller muller@unitime.org (4-Oct-2018 5:02 PM)

Student Scheduling Solver: Info

  • few minor changes
  • do not show weighted value of time and distance conflicts
  • do not log student has no requests warnings
  • include assigned course requests and selections in the toString(Assignment) method

Revision 19b3ffd by tomas-muller muller@unitime.org (4-Oct-2018 4:58 PM)

Student Scheduling Solver: Can Inherit Context

  • solver model as well as the two extensions (distance conflicts and time overlaps) now implement
    the CanInheritContext interface
  • this makes for a faster copy of the context (when multiple solver threads are used)
  • this also fixes a small glitch in the backtracking neighbour where the total value of the
    initial problem could have been incorrectly computed
    (not including time overlaps or distance conflicts if the two context have not been copied over
    yet)

Revision 1b575ce by tomas-muller muller@unitime.org (4-Oct-2018 2:59 PM)

Student Scheduling:...

Read more

cpsolver-1.3.146

03 Jul 16:40
Compare
Choose a tag to compare

Batch Student Scheduling: Priority/Equal Weighting Improvements

  • added two digits in the rounding

Revision 17be9a0 by tomas-muller muller@unitime.org (3-Jul-2018 5:33 PM)

Batch Student Scheduling: Priority/Equal Weighting Improvements

  • MPP: do not throw an error when getDifference(Enrollment) is called for a free-time request

Revision 714dd31 by tomas-muller muller@unitime.org (3-Jul-2018 5:31 PM)

Batch Student Scheduling: Priority Weighting Improvements

  • make sure that the first alternative request is weighted lower than the last not-alternative
    request
    (especially if there is just one alternative request)
  • improved computation of the base request weights when left-over spread is enabled
    (last request has lower weight than the last but one request)

Revision df4813b by tomas-muller muller@unitime.org (3-Jul-2018 5:27 PM)

cpsolver-1.3.145

02 Jul 16:02
Compare
Choose a tag to compare

Batch Student Scheduling: Priority/Equal Weighting Improvements

  • additive / multiplicative approach
    • as some of the penalties depend on assignments of other students (same group, balancing),
      it is important to make sure that total solution value does not diverge with the search
    • to improve this, the priority weighting schema allows to be changed from multiplicative to
      additive that is
      • instead of weight = * ((1 - w1) * violation1) * ((1 - w2) * violation2) * ...
      • it could be weight = * (1 - (w1 * violation1) - (w2 * violation2) - ... )
        where weights are between 0 and 1 and violations are signifying how well is the given property violated
        (0 not violated, 1 completely violated)
        it is important that the total student weights are less than one, which is the case for the defaults
      • to enable the new additive formulation, set StudentWeights.AdditiveWeights to true (defaults to false)
  • maximize course request assignment
    • by default, the priority weighting schema only maximizes the overall student weights
    • this, while working very well on individual student bases, has the drawback of not using
      alternatives in some cases
      (the penalization for using an alternative can be greater than the weight of some other student
      getting into the primary course if he/she has the course with much lower priority)
    • when StudentWeights.MaximizeAssignment is set to true (defaults to false), a better solution has
      more course requests assigned
      (the overall student weights are used when both solutions have the same number of assigned course
      requests)
      • this may, on the other hand, occasionally cause a student to have two lower priority courses
        assigned instead of a single higher priority course
  • precise computation of the solution total value
    • when StudentWeights.PreciseComparison is set to true (defaults to false), the total value of
      a solution is computed when comparing two solutions (instead of using the cached value)
    • this negates small fluctuations in the cached total value caused by the order in which course
      requests are assigned

Revision 7862e56 by tomas-muller muller@unitime.org (28-Jun-2018 5:50 PM)

cpsolver-1.3.144

14 Jun 08:05
Compare
Choose a tag to compare

Student Scheduling: Solution Info

  • Assigned course requests: exclude alternative course requests from the total
    (100% means all students have a complete schedule)

Revision 514bd75 by tomas-muller muller@unitime.org (14-Jun-2018 9:34 AM)

Student Scheduling: Selected Enrollments

  • only return selected enrollments of the first course
    (the selected enrollments of the alternative course or courses do not take precedence over other
    enrollments of the first course)
  • this fixes the issue of giving student an alternative course because of its preference when the
    Students.BranchWhenSelectedHasNoConflict is enabled
    (other enrollments of the request are ignored when there is a non-conflicting selected enrollment)

Revision 889ccf1 by tomas-muller muller@unitime.org (13-Jun-2018 10:04 PM)

Online Student Scheduling: Section / IM Preferences

  • as the preferred sections / instructional methods are checked first, the multi-criteria
    selection criterion needs to make sure that request alternativity is properly checked
  • this fixes an issue where an alternative course was selected because of its preference

Revision 9693b2a by tomas-muller muller@unitime.org (13-Jun-2018 9:50 PM)

Student Scheduling: Same Time Choice

  • corrected same time comparison between a choice and a section when the data are loaded from XML
    (choices do not have time pattern id)

Revision 57384b2 by tomas-muller muller@unitime.org (13-Jun-2018 8:42 PM)

Student Scheduling: Reservation Cap

  • corrected computation of reservation cap when the section restrictions span multiple
    configurations

Revision 15cf2d8 by tomas-muller muller@unitime.org (13-Jun-2018 8:40 PM)

Student Scheduling: Selected Enrollments

  • fixed an issue where alternativity of a course in the request was ignored
  • improved computation when there are selections for two or more courses in a single request

Revision abe8a27 by tomas-muller muller@unitime.org (13-Jun-2018 8:36 PM)

Online Student Scheduling: Max Over-Expected Constraint

  • prevent an endless loop when there are no more adepts for conflicts

Revision 9c59d92 by tomas-muller muller@unitime.org (15-May-2018 8:02 PM)

cpsolver-1.3.140

11 May 14:03
Compare
Choose a tag to compare

Online Student Scheduling: Suggestions B&B Algorithm

  • improved performance when over-expectations are being minimized
  • especially, do not allow for an over-expected section in a course which does not need it by
    suggesting that a course that needs an over-expected section will be unassigned
  • used by the Compute Suggestions action

Revision efefbdd by tomas-muller muller@unitime.org (10-May-2018 4:49 PM)

Online Student Scheduling: Max Over-Expected Constraint

  • added a global constraint limiting the over-expected penalization for a student
  • only to be used during online scheduling (that is, with the OnlineSectioningModel)

Revision d470c54 by tomas-muller muller@unitime.org (10-May-2018 4:48 PM)

Online Student Scheduling: Minimize Conflicts

  • added a special version of the over-expected criterion that minimizes time and space conflicts
  • a class is considered over-expected when it is not available (limit is zero) or when there is
    a time conflict with some other enrollment of the student (despite the reservation allowing for
    the conflict)

Revision 6f60329 by tomas-muller muller@unitime.org (10-May-2018 4:45 PM)

Online Student Scheduling: Online Sectioning Selection

  • added ability to limit the overall over-expected penalty
  • both multi-criteria and standard algorithms of the Find Assignment action updated to enforce the
    maximal penalty limit (when set)

Revision fc38b27 by tomas-muller muller@unitime.org (10-May-2018 4:41 PM)

Online Student Scheduling: Student Weighting Criteria

  • comparison of student solutions and bound checking: use the new more context-aware computation
    of over-expected penalty
    (when the over-expected criterion implements the new OverExpectedCriterion.HasContext context)

Revision cfd65a5 by tomas-muller muller@unitime.org (10-May-2018 4:36 PM)

Online Student Scheduling: Over-Expected Criterion

  • added ability to provide two additional methods returning over-expected penalty, considering
  • context of a constraint that is being evaluated (value to be assigned, and computed conflicts)
  • current assignment of a branch&bound algorithm (enrollment array, index of the request)

Revision 46787b6 by tomas-muller muller@unitime.org (10-May-2018 4:32 PM)

Abstract Criterion: added getPercentage(Assignment)

Revision 51ffc56 by tomas-muller muller@unitime.org (7-May-2018 9:50 AM)

Conflict Statistics: toString

  • print more information when ConflictStatistics.Print is set to true

Revision 17acf0a by tomas-muller muller@unitime.org (7-May-2018 9:50 AM)

ID Convertor: constructor changed to public

Revision fbd0648 by tomas-muller muller@unitime.org (7-May-2018 9:48 AM)

cpsolver-1.3.137

19 Apr 12:37
Compare
Choose a tag to compare

Batch Student Scheduling: Classes with no time assignment

  • weights: added penalization of classes that have no time assignment (parameter
    StudentWeights.NoTimeFactor, defaults to 0.01)
  • solution info: added "Using classes w/o time" property showing % of course enrollments with no
    time

Revision 2786d3d by tomas-muller muller@unitime.org (18-Apr-2018 4:23 PM)

Student Scheduling: Solution Info

  • Time overlapping conflicts: show the number of time conflict in hours, compute time overlaps
    between courses in the extended info

Revision 0ec859b by tomas-muller muller@unitime.org (18-Apr-2018 4:18 PM)

cpsolver-1.3.136

16 Mar 13:18
Compare
Choose a tag to compare

Student Scheduling: Disabled Sections

  • fixed XML save (section.enabled)

Revision f8e30fc by tomas-muller muller@unitime.org (16-Mar-2018 2:01 PM)

Student Scheduling: Disabled Sections

  • added ability to mark certain sections as disabled
  • such sections cannot be used, unless the student allows for disabled sections,
    or there is a (group) reservation that allows for disabled sections

Revision 457e131 by tomas-muller muller@unitime.org (15-Mar-2018 6:52 PM)

Batch Student Scheduling: Student Weights

  • weight 3rd and the following alternatives (using StudentWeights.FirstAlternative ^ index)

Revision 3eea705 by tomas-muller muller@unitime.org (16-Feb-2018 3:42 PM)

cpsolver-1.3.135

16 Mar 09:55
Compare
Choose a tag to compare

Student Scheduling: Disabled Sections

  • added ability to mark certain sections as disabled
  • such sections cannot be used, unless the student allows for disabled sections, or there is a (group) reservation that allows for disabled sections

Revision 457e131 by tomas-muller muller@unitime.org (15-Mar-2018 6:52 PM)

Batch Student Scheduling: Student Weights

  • weight 3rd and the following alternatives (using StudentWeights.FirstAlternative ^ index)

Revision 3eea705 by tomas-muller muller@unitime.org (16-Feb-2018 3:42 PM)