Releases: UniTime/cpsolver
cpsolver-1.3.91
Student Scheduling: Instructors
- XML Load: improved backward compatibility (read instructorIds and instructorNames attributes of
a section element if it has no instructor elements)
Revision ccadc70 by tomas-muller muller@unitime.org (2-Nov-2016 4:37 PM)
Student Scheduling: Instructors
- Instructor.toInstructors(...): avoid NumberFormatException when called with an empty
instructorIds string
Revision 95ef62b by tomas-muller muller@unitime.org (2-Nov-2016 4:21 PM)
Student Scheduling: Reservations
- CourseRequest.computeEnrollments(...): do not skip enrollments without a reservation if there is
a matching reservation that is not marked as must be used
Revision 31f1cf0 by tomas-muller muller@unitime.org (2-Nov-2016 4:20 PM)
Student Scheduling: Selected Choices
- algorithm: added ability to branch (or not to branch) when there is a non-conflicting selected
enrollment found
(parameter Students.BranchWhenSelectedHasNoConflict, defaults to false) - CourseRequest.isSelected(Section) check corrected to work on partial selections
(a section is NOT selected when there is a selected choice on the matching subpart or
configuration that is not matching the section)
Revision bf5d7bb by tomas-muller muller@unitime.org (31-Oct-2016 12:58 PM)
Student Scheduling: Course Request Choices
- added ability to create preference on a configuration or on an individual section
- consider following choice matching (from most to least preferred):
- same section
- same choice (same itype, time and instructor)
- same time (same itype and time)
- same configuration
- include section/configuration preferences in the weighting models and search criteria
Revision 4e30627 by tomas-muller muller@unitime.org (26-Oct-2016 5:19 PM)
Student Scheduling: Instructional Method
- added instructional method id and name on a configuration
Revision bced2fd by tomas-muller muller@unitime.org (25-Oct-2016 6:06 PM)
Student Scheduling: Instructors
- moved instructor information from Section.choice onto the Section
(using the new Instructor object)
Revision 95e6239 by tomas-muller muller@unitime.org (25-Oct-2016 5:36 PM)
cpsolver-1.3.88
Course Timetabling: Max N Hours A Day
- fixed another issue in conflict checking of Max N Hours A Day group constraint to prevent the
constraint from returning null conflicts when there are too many committed classes on a day
Revision 336b437 by tomas-muller muller@unitime.org (14-Sep-2016 8:41 PM)
cpsolver-1.3.87
Course Timetabling: Max N Hours A Day
- conflict checking for the Max N Hours A Day group constraint corrected: do not return a constant
variable (i.e., a committed class of some other problem) as a conflict - also, return the evaluted placement as a conflict when there is not enough time on the day for
the class without unassigning a constant variable
Revision 177dc65 by tomas-muller muller@unitime.org (7-Sep-2016 4:18 PM)
Course Timetabling: Test
- when provided loader/saver classes are not found, fall back to the default XML loader/saver
classes
Revision 2a9735b by tomas-muller muller@unitime.org (7-Sep-2016 1:13 PM)
Javadoc: fixed two warning
Revision 9ed45ef by tomas-muller muller@unitime.org (22-Aug-2016 2:05 PM)
Instructor Scheduling: Same Course / Common Preferences
- better handing of same course and same common preferences
- when same common is discouraged or prohibited: penalize case when common sections are partially
shared - count satisfied positive preferences (preferred and strongly preferred) as negative penalty
instead of penalizing dissatisfaction
(no difference for the solver, better display)
Revision 35b85db by tomas-muller muller@unitime.org (22-Aug-2016 1:54 PM)
Instructor Scheduling: CHM Test Fix
- fixed "strings in switch are not supported in 1.6" compilation error
Revision 5b0d267 by tomas-muller muller@unitime.org (14-Aug-2016 8:50 AM)
Instructor Scheduling: Same Course, Same Common Preferences
- added ability to define same course and same common preferences individually on each teaching
request - including both hard and soft variants
Revision ff3615c by tomas-muller muller@unitime.org (12-Aug-2016 6:07 PM)
Instructor Scheduling: Same Course, Same Common Preferences
- added ability to define same course and same common preferences individually on each teaching
request - including both hard and soft variants
Revision 6375e64 by tomas-muller muller@unitime.org (12-Aug-2016 5:38 PM)
Batch Student Scheduling: Request Groups
- improved ability to keep students of the same request group together by shuffling students of
a request group that are spread over multiple sections into a single section or into a fewer
number of sections
Revision e34d1c8 by tomas-muller muller@unitime.org (9-Aug-2016 4:43 PM)
Student Scheduling: Model
- Same group characteristic moved from the extended info table to the info table
Revision 69fbe60 by tomas-muller muller@unitime.org (9-Aug-2016 2:06 PM)
Backtrack Neighbour Selection: Custom Context
- added ability to provide a custom search context
Revision b85882c by tomas-muller muller@unitime.org (9-Aug-2016 2:04 PM)
Roulette Wheel Selection: add existing
- added ability to add an object multiple times into the selection
Revision c544d35 by tomas-muller muller@unitime.org (9-Aug-2016 2:02 PM)
Instructor Scheduling: Attribute Preference
- penalize a case when there is at least one preference for an attribute of a given (not required)
type, but the instructor has no matching attribute of that type
Revision 625edea by tomas-muller muller@unitime.org (29-Jul-2016 9:58 PM)
Instructor Scheduling: Unused Instructor Load
- added a criterion that penalizes unused instructor load
Revision 9514ec5 by tomas-muller muller@unitime.org (29-Jul-2016 9:56 PM)
Course Timetabling: Back-to-Back
- avoid issues (especially ArrayIndexOutOfBoundsException) when classes that are in a back-to-back
constraint can partially overlap in time
Revision d1b838d by tomas-muller muller@unitime.org (1-Jul-2016 2:09 PM)
Instructor Scheduling: Attribute Preference
- required attribute type: only prohibit teaching request that have an attriubute of a required
type that does not match the instructor
(this fixes an issue when no attribute of a required type is used)
Revision d348ca8 by tomas-muller muller@unitime.org (30-Jun-2016 10:13 PM)
Instructor Scheduling: Criteria
- improved computation of the criterion value for a particular instructor
Revision 1ffcc8e by tomas-muller muller@unitime.org (30-Jun-2016 10:12 PM)
Instructor Scheduling: Enrolled Classes
- added ability to include which classes the instructor is enrolled into (as student) or teaching
(outside of the assignment problem)
Revision a1ae950 by tomas-muller muller@unitime.org (16-Jun-2016 8:19 PM)
cpsolver-1.3.79
Build: added changelog target
Revision 893e3e4 by tomas-muller muller@unitime.org (15-Jun-2016 6:00 PM)
Student Scheduling: Linked Sections
- fixed computation of the constraint when it contains classes of two or more configurations of
a course
Revision b48fe7f by tomas-muller muller@unitime.org (15-Jun-2016 5:00 PM)
Global Constraint
- assigned(assignment, iteration, value) -- do not allow unassignment of the value that is being
assigned - just like commit 22121f5 for the Constraint
Revision c098b26 by tomas-muller muller@unitime.org (15-Jun-2016 4:59 PM)
Instructor Assignment: Problem Model Changes
- improved modeling of cases when a teaching requests needs two or more instructors
- now, there is only one TeachingRequest class with multiple variables (TeachingRequest.Variable
classes)
Revision 2588fb4 by tomas-muller muller@unitime.org (13-Jun-2016 9:52 PM)
Instructor Scheduling: Teaching Request
- nrSameLectures: return 1.0 when there are no shared common sections
Revision fc79512 by tomas-muller muller@unitime.org (13-Jun-2016 5:29 PM)
MacPropagation, MacRevised Extensions: Assignments
- fixed the MacPropagation and MacRevised extenstions to work with the new assignment model
Revision d23d346 by tomas-muller muller@unitime.org (9-Jun-2016 2:05 PM)
cpsolver-1.3.76
Student Scheduling: Linked Classes
- Linked Classes: added mustBeUsed toggle (defaults to false)
- when set to true, one of the existing Liked Classes constraints must be used when a student
requests both courses
Revision 050bc40 by tomas-muller muller@unitime.org (20-May-2016 10:12 AM)
Student Scheduling: Get Enrollments Skip Same Time
- do not skip same time section when there is a Linked Classes constraint involved
(to be able to find matching section in the domain) - do not skip same time section if the section is involved in an Ignore Student Conflicts
constraint
Revision 695e46a by tomas-muller muller@unitime.org (20-May-2016 8:05 AM)
Student Scheduling: Section Comparator
- if comparing by size
- prefer section with more space available
- if unlimited, prefer section with less students enrolled
Revision 730d01f by tomas-muller muller@unitime.org (20-May-2016 8:04 AM)
cpsolver-1.3.75
Course Timetabling: N Hour Work Day
- corrected the constraint check
Revision 4ec8eb3 by tomas-muller muller@unitime.org (18-May-2016 1:33 PM)
Progress: added Message.getTrace()
- added method
public String[] Message.getTrace()
Revision deb835e by tomas-muller muller@unitime.org (17-May-2016 6:03 PM)
Instructor Scheduling: Various Improvements
- instructor constraint changed to global constraint (its context moved over to the instructor)
- added original instructor criterion (counting cases when a teaching request is assigned with the
initial assignment — original instructor) - info table now includes information from the existing criteria
Revision b970866 by tomas-muller muller@unitime.org (9-May-2016 10:03 PM)
Instructor Scheduling: MATH test
- few improvements usefull when working with data exported directly from UniTime
Revision 13a230c by tomas-muller muller@unitime.org (6-May-2016 6:59 PM)
Instructor Scheduling: Instructor Index
- added instructor index (int) attribute to a teaching request to better support requests that
need multiple instructors
Revision 7e9121a by tomas-muller muller@unitime.org (6-May-2016 6:52 PM)
Parallel Solver: Update Master Solution
- changed the default for Parallel.UpdateMasterSolution to true
Revision 86f9506 by tomas-muller muller@unitime.org (6-May-2016 6:11 PM)
Problem Save / Load
- create problem independent ProblemLoader and ProblemSaver abstract classes
- inherit the exiting XML loaders/savers from these abstract classes
- XML Load: added ability to load the problem from given Document (without reading any files)
- XML Save: added ability to return saved problem as Document (without writing any files)
Revision f6b7520 by tomas-muller muller@unitime.org (5-May-2016 8:49 PM)
Instructor Scheduling
- added javadoc documentation
Revision 3a8236a by tomas-muller muller@unitime.org (28-Apr-2016 6:23 PM)
Instructor Scheduling
- second version of the instructional scheduling solver
- based on the TA assignment solver (commit f52d4b1 on dev_ta branch), but with many changes to
meet the UniTime 4.2 instructor scheduling model
(including instructor, course, attribute, and time preferences and requirements)
Revision b8ad9fc by tomas-muller muller@unitime.org (25-Apr-2016 7:36 PM)
cpsolver-1.3.69
Student Scheduling: Course Limit
- in conflict check corrected
Revision d29650d by tomas-muller muller@unitime.org (16-Mar-2016 6:21 PM)
Batch Student Scheduling: Request Groups
- enrollment spread estimate
- added ability to consider potential fillness of the section
(sections that more closely match the enrollment potential are preferred) - added two parameters defining how the enrollment spread estimate is to be counted
Revision 03be7b0 by tomas-muller muller@unitime.org (14-Mar-2016 7:29 PM)
Batch Student Scheduling: Request Groups
- keep students of the same group together:
- count reserved space as available if the student is being enrolled under a student group
reservation with section level restrictions - improved computation of the enrollment spread
Revision 178baeb by tomas-muller muller@unitime.org (11-Mar-2016 9:13 PM)
Batch Student Scheduling: Test
- compute and store the request groups report when done
Revision 368886c by tomas-muller muller@unitime.org (11-Mar-2016 8:08 PM)
Batch Student Scheduling: Branch&Bound Phase
- try possible enrollments of a course request in a given order (better enrollments first)
Revision 4ca97ec by tomas-muller muller@unitime.org (11-Mar-2016 8:05 PM)
IFS Heuristics: Round Robin Neighbour Selection
- log solution information during a phase change
Revision 6c2a175 by tomas-muller muller@unitime.org (11-Mar-2016 8:04 PM)
Batch Student Scheduling: Model
- fixed the % students complete counter (isComplete check that is called after the enrollment was
unassinged does not work and it is redundant) - toString: added SG criterion (same group percentage)
Revision 7b6dd3b by tomas-muller muller@unitime.org (11-Mar-2016 8:01 PM)
Batch Student Scheduling: Branch&Bound Phase
- added ability to initiate the branch&bound search from all course requests (not just the
unassigned ones)
when Neighbour.IncludeAssignedRequests is set to true (default is false) - this is usefull when students of the same group are to be placed together as it allows for
a swap of two enrollemnts
Revision 85ad22f by tomas-muller muller@unitime.org (11-Mar-2016 7:57 PM)
IFS Heuristics: Backtrack Neighbour Selection
- corrected the reassignment of the original value during the backtracking
Revision 0fa9334 by tomas-muller muller@unitime.org (11-Mar-2016 7:53 PM)
cpsolver-1.3.65
Batch Student Scheduling: Limit Constraints
- class, course, and configuration limit constraints:
when it is allowed to assign students holding an individual reservation over the limit,
do not consider students holding individual reservation as adepts for conflicts
(students holding individual reservation do not count agains class, course, and configuration
limits anyway) - this fixes a NullPointerException in the backtracking phase
Revision 269fd40 by tomas-muller muller@unitime.org (18-Feb-2016 6:02 PM)
cpsolver-1.3.63
Course Timetabling: instructor fairness
- merging fairness criterion for instructors, contributed by Rostislav Burget
Revision 127eab0 by tomas-muller muller@unitime.org (26-Jan-2016 8:57 PM)
Course Timetabling: XML Load/Save
- save/load methods made easier to extend by providing protected methods
doLoad(Element root)
doSave(Element root)
Revision f22c36f by tomas-muller muller@unitime.org (26-Jan-2016 8:14 PM)
cpsolver-1.3.62
Simulated Annealing: Adjustments
- allow consecutive reheats while the reheated temperature is below the initial temperature
Revision 22a8549 by tomas-muller muller@unitime.org (21-Jan-2016 9:12 PM)
Course Timetabling: Solution Evaluator
- a simple class that just loads a solution and saves information about it in a CSV file
(output.csv format)
Revision 8e84af0 by tomas-muller muller@unitime.org (21-Jan-2016 5:49 PM)
Course Timetabling: Objective Function
- time, room, and distribution preference criteria: criterion value shifted so that the lower
bound is always zero - this makes the solution value easier to interpret (zero would mean a perfect solution)
- this improves the bound computation in the great deluge algorithm (it does not need to go below
zero)
Revision f6985bb by tomas-muller muller@unitime.org (21-Jan-2016 5:48 PM)