Search For A Complete Timetable

From UniTimeWiki

Jump to: navigation, search

Once checking for data consistency is complete and all warnings or errors are addressed, you can be sure that all classes will be included when you load data into the solver. Remember, if this is not the case and you ignored a warning, the solver may not load this class and a time and room will not be found for this class. See appendix A for more details.


In this phase we are looking for a complete feasible solution to the problem but that does not yet consider any preferences. This means that the solver ignores any preferences entered (i.e., strongly discouraged to strongly preferred) and only checks if it is possible to find a solution that meets all of the problem requirements (e.g., classes taught by a single instructor do not overlap, more classes required at a single time than possible).

  1. Do steps 1 through 5 from the previous section.
  2. If no unacceptable warnings appear, click Start. We recommend running the solver for a few minutes..
  3. Check the Solver Status window in the lower left hand corner. If it says “Awaiting commands…” within a few minutes of run time, click the Refresh button on the Solver screen. Look at the line labeled Assigned Variables.
  4. a. If it says 100%, it means that a complete but not yet optimized timetable has been found. You can then Unload and proceed with creating an optimized timetable (section 3 of this manual).
    b. If it is not at 100%, you maystop the solver while the Solver Status still displays “Searching for initial solution...,” click Stop in the Solver screen. If the solver is not able to find a complete solution (assigned variables is below 100%), there is likely to be some problem with the input data preventing a solution from being found. The following steps will help determine what the problem is.
  5. Click on Not-assigned in the left hand side menu.
  6. In the Not-Assigned Classes screen that shows up there is a list of classes for which the solver could not find a room and time. There could be many reasons for that. The most straightforward way to search for the reason is to:
  7. a. Click on a class from the list. The Suggestions screen will open in a new window.
    b. Scroll down to the last part of the Suggestions screen labeled Conflict-based Statistics. This is a record of the conflicts created during the solver's attempts to assign possible rooms and times to the class (i.e., other class assignments that were incompatible) and the reasons for these conflicts. These reasons correspond to violations of various constraints on the problem (e.g., two classes requiring a single instructor at the same time, or three classes requiring the same time when only two rooms are available). Typically these conflicts are caused by too many classes competing over a fixed resource. The statistics can help point out the constraining resource, or an overly restrictive requirement, so that changes can be made to the input data which allow the problem to be solved.
    c. Each line in the conflict-based statistics table contains a number indicating how many times a conflict occurred and the constraint that was in contention. Clicking on the small plus sign at the beginning of the line will provide an expanded breakdown of the conflicts for this constraint. Continue opening lines with large numbers of conflicts until you have a line with a small dot rather than a plus sign. These lines indicate the classes with which your unassigned class was competing over a constraint. If this clash reminds you of something that you did not set up, change the input data, and then continue from part one of this manual again. (Tip - you should check all your unassigned classes and make appropriate changes to the input data before you go back to part one of this manual – do not make changes to one class only and go back if your list is longer than one class). If you don’t know what the problem is with this class, contact SMAS, and we will look into that with you. Do not Unload before calling.
  8. If you have fixed all problems with not-assigned classes and the solver found a complete solution (as described in step 3a), you can Unload and proceed to the next part of this manual.




Back to Table of Contents

Personal tools