Regarding instructor assignment preferences in the cpsolver #169
-
Hello, The solver is running perfectly fine but we are missing a feature that is present in UniTime, which is the Instructor Assignment Preferences scheduling options. This left us asking Also We were wondering Finally We appreciate everyone involved in the development of this project. Thanks. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
UniTime is using the cpsolver. Moreover, on the Course Timetling Solver page (as well as the solver pages for other problems), you can export the solver that is loaded into memory in XML format directly for the cpsolver. So, you can run the same solver from the command line (just using the cpsolver library) and even import it back to UniTime once it is done. See help.unitime.org/exporting-solver-xml for more details. However, when the data are being loaded into the solver, the course timetabling structure and all the preferences and requirements are computed and transformed into the solver's constraint model. In particular, for each class, all available times and room placements are computed, together with their preferences. This is done in the TimetableDatabaseLoader class. You can see the same thing happening in the UniTime user interface. For each class, preferences that are set on the scheduling subpart are combined instructor preferences (of the instructor or instructors assigned to the class) and possibly overridden with preferences set directly on the class level. In the end, what you see on the class (e.g., preferences and available rooms on the Class Detail page) is what the solver will use. Since you have chosen to use just the cpsolver, you would need to do the same thing if you have some variation on UniTime's instructor preferences. That is, as you are loading the data into the solver (or creating the XML input file for the cpsolver), you will need to combine preferences and requirements from various levels to give the solver a list of possible times and rooms for each class to use, together with their preferences (or penalizations). If you are interested, we have recently organized an International Timetabling Competition 2019, using the data collected from UniTime from 10 institutions worldwide. However, some simplifications have been made to the problem model without losing most of the problem's complexity. Other than the cpsolver (see github.com/tomas-muller/cpsolver-itc2019), there are two other open-source solvers available. |
Beta Was this translation helpful? Give feedback.
UniTime is using the cpsolver. Moreover, on the Course Timetling Solver page (as well as the solver pages for other problems), you can export the solver that is loaded into memory in XML format directly for the cpsolver. So, you can run the same solver from the command line (just using the cpsolver library) and even import it back to UniTime once it is done. See help.unitime.org/exporting-solver-xml for more details.
However, when the data are being loaded into the solver, the course timetabling structure and all the preferences and requirements are computed and transformed into the solver's constraint model. In particular, for each class, all available times and room placements are compu…