Selection Optimisation

Optimisation and initial solution in Mimosa (as explained in Tools|Optimise) is performed by keeping the user defined collections (=components of courses) fixed and allowing the application to create and change the timetables optimally. This is the classical approach in optimisation. Selection optimisation works another way round: already scheduled lectures in timetables are not changed, but the application adds components to courses and swaps them across courses according to the rules user has set.

Selection optimisation enables users to

  1. create an initial solution by attaching components to courses by a selection matrix copied to the Clipboard (Add) or
  2. let Mimosa swap components (such as students) from one course to another to improve the quality of the timetables by minimising the total number of gaps (Optimise).

The schedules of courses in timetables and the number of lectures are not changed.

In both selections you must next pick two component categories you are going to use. First you select which category of components is allowed to be added to courses or swapped between courses (typically students) and then the category of components which are used as the criteria when this is allowed (typically students). If two or more courses have the same component of this latter category, it tells that swap across them is allowed.

Assume that you would like to add students to courses according to the matching subjects that have attached both to courses and to the requirements of students. You may also allow students to move across courses which have the same subject. Since course codes in Mimosa are unique, the only way to inform Mimosa that two or more courses are identical from students' selection point of view, is to attach the same component (such as subject) to the courses. You then have the option to select any two categories of components for these roles:

Then you can select if you want to allow to change all courses or to prevent locked courses from alterations.

If you select to create an initial solution, you first have to copy the selection table of "subjects" and "students" to the Clipboard so that Mimosa knows which students can be added to each course. On the same row you have to list those subjects and students (in any order) which are permissible combinations. Mimosa then checks for the courses having the same subject as in the table and adds only those students which are listed on the same row, as in the example below:

The selection matrix contain contains in the first columns the "subjects", and in the following columns "students". This matrix may contain component codes of other categories, but Mimosa picks only those that you have selected.

Using the Clipboard here is necessary, since the courses in Mimosa always represent the actual teaching requirements, but using the external table here provides the alternatives to attach components optimally.

Add components to courses by selection matrix

This tool permits to add components to courses automatically, according to the rules you have selected. You can select if Mimosa adds components only to courses which have not been scheduled, to those which have been scheduled, or to all courses. The subject on each row in the matrix you have copied to the Clipboard instructs Mimosa to add students to courses optimally.

Ensure that you have copied the matrix to the Clipboard before starting.

When this tool is invoked, Mimosa adds the "students" (or components from any selected component category) to courses according to the "subjects" which are listed on the same row on the selection matrix. The method searches first for the cases which are most difficult to solve and then continues with the less demanding combinations, while in the same time trying to keep the sizes of the component list balanced. In the same time Mimosa takes care that the weekly teaching loads of the "students" will not exceed the timetable limits.

The progress of the addition of components is displayed and you can abort the process when needed.

After the process is completed, a table of all changes is displayed. By clicking [Accept] you accept all changes and by clicking [Reject] or closing the view will reject them. You can copy selected or all changes to the Clipboard by clicking Copy. Copying will overwrite the current Clipboard content.

Note that after the process is completed, there may exist combinations of "Subjects" and "Students" in the matrix that were never used in the process. If such combinations are found, you are asked to copy them to the Clipboard for closer inspection or reusing them. Copying will overwrite the current Clipboard content.

You may run this application again until no changes can be found.

Optimise the selection by course swaps

If the collections of the courses contain students (individual timetables), it is often possible for students to change their selections across alternative courses. If you want to do these changes manually, you might like to use Create and edit components selection for this purpose. If the students or other components have alternative choices to switch across courses, use Swap button to make the switches.

Selection optimisation goes through all components of the category you have selected (typically "Students"), clicks the Swap button automatically, if the selection is permissible and switches the component from a course to an alternative course, if the switch will result in fewer or equal number of gaps in the timetables of the students. In all changes, creating of overlaps (conflicts) in the timetables is not permitted.

In order to tell the application, which courses are alternative, create Subjects in Components view and then add the same subjects to two or more courses which are considered alternative choices. Subjects are component categories, which do not check overlaps (uncheck Prevent conflicts for from this component category in Options|Timetables).

For instance, you might have several alternative language courses in the course list. You can create a subject Language and then go to Components view, click [Enter] on Language and add it to all courses that match this criteria. You can of course have several subjects with the same interpretation and add this information to the appropriate courses. This is necessary information for Mimosa, since course codes are always unique, and the same subject in two or more courses informs Mimosa that they can they are replaceable.

If courses French123 and Spanish234 both have the subject Language, the student can be changed from French123 to Spanish234 or back, if the operation is otherwise permitted.

At the start, you should attach "students" to their courses in Components view by clicking [Enter] on each student, selecting the courses on the right box and then clicking the Add button. This previously manually created solution will be used as the initial solution, which then optimised in this tool.

When you invoke this tool, you first select the category for "Students", and then the category for "Subjects". Students are is the components that are going to be optimised according to the guidelines stated by subjects attached to courses.

After these selections, you can set the criteria for optimisation. If you select 1) Courses must have the same subject, the application only checks that both candidate courses must have (at least one) same subject. If you select 2) Scheduled lectures must be equal, then only those courses are included which both have the same number of lectures scheduled. This condition is very common, since it does NOT change the initial number of lectures in the timetables of students.

The third selection Both conditions 1) and 2) must be met checks that both of the above conditions are satisfied in the same time, whereas the fourth selection Neither must be met does not care if both courses have the same subject or they have equal number of scheduled lectures.

In all cases, only those changes are made, which 1) Do not cause conflicts in timetables and 2) Do not increase the number of gaps in the timetables of the selected category (students). Gaps in other timetables remain the same during changes.

When you invoke the optimisation, it will display the changes it finds plus the number of combinations it searches for. You can interrupt the optimisation process at any stage or let it stop itself automatically. After going through all selected timetables and related change combinations, it displays the number of gaps before and after the optimisation, plus the total number of changes. Repeating the optimisation may able to improve the current solution.

After the process is completed, a table of all changes is displayed. By clicking [Accept] you accept all changes and by clicking [Reject] or closing the view will reject them.

You may run this application again until no improvements can be found.