Tools|Optimise

In this selection you can create timetables automatically, copy scheduled lectures from one week to other weeks or remove scheduled lectures. You can also optimise timetables by letting the application automatically compact them by minimising gaps with respect to the constraints you have set. Note that creating workable or perfect timetables completely automatically without any manual adjustments takes place only in rare occasions, due to the many constraints that often become visible during the scheduling process.

You can select the appropriate action from the Tools tab. Then you select the courses and set the constraints from the Selections tab. This enables the user to restrict the operation only to a predefined set of courses and time-frame, and also to take into account some other factors, such as locking of the courses.

List of available actions:

Create an initial solution

If you have allocated your lectures to weeks you can let this application create the timetables automatically. If you have only one week, the lectures are automatically allocated to this week and you can use these tools immediately.

Since Create an initial solution produces in most cases an approximate starting solution for your timetables, you may like to schedule some critical courses manually in Timetables view beforehand to be sure about the exact locations of lectures. If you have done this, you may have protected those courses by locking them with [Ctrl+U] in this window. It is also a good practice to save this solution on disk before you start Create an initial solution or you begin to optimise, since you can always open this file again, if something unexpected happens - as it sometimes does.

After selecting the Create an initial solution you then go to the next tab to pick those courses, week range and time range in the timetable where you want to limit the automatic scheduling.

In Block range you can also determine the minimum and maximum lengths of blocks that are used in connection with the course selection. For instance, you may want to delimit the courses to have only block lengths of 2 lectures (two consecutive lessons of the same course). Then you have to set this number (2) to the minimum and maximum of block lengths, i.e. Min=2 and Max=2. If you want to give more degrees of freedom, you can set Min=1 and Max=3 to generate block lengths of 1-3 lessons.

In this case, the course of 8 lectures may generate blocks like 3+3+2 or 3+2+2+1, for example. If you have set Min=1 and Max=2 the application may result in block distributions like 2+2+2+1+1 or 2+2+2+2.

If you want to set additional rules to blocks, use the parameter Repeat Max # times, which is enabled in cases when Min<Max. It determines the maximum number of blocks of length Max that are generated. If you have set Min=1 and Max=2 and you allow at most three double periods, set Repeat Max=3. Using these restrictions, you can obtain from courses of 8 lectures only the distribution 2+2+2+1+1 (since the maximum number of double periods is set to 3, and lectures are assumed to be scheduled in 5 days).

The application starts always with the highest given block length and if that block cannot be fitted into the timetables, the next highest is tried instead, until the minimum length is reached or the lectures have been successfully scheduled. None of the previously scheduled lectures are changed in timetables during this process.

Note that the limits you input here, are dependent on the number of lectures. The higher the number of lectures in a week, the higher the values of Min and Max should be set to produce wanted results. For the number of weekly lectures of 16, you could set Min=5 and Max=7, whereas the number of lectures of 3 would apply limits Min=1 and Max=3, for instance.

You can also let the application change these limits according to the number of lectures automatically:

If you select from Apply ranges as specified

(·) Below

the application will apply the parameters (Min, Max and Repeat Max) in Block range for all courses when creating the initial solution.

The choice

(·) By application

adjusts the parameters (Min, Max and Repeat Max) automatically, based on the number of the lectures of the courses. It applies the examples taken from the current file, and if they are not available, it uses rules that have been collected from a set of other Mimosa files.

If you select

(·) Below and by application

the parameters (Min, Max and Repeat Max) are selected automatically as before, but the Min and Max parameters are always within the given limits you have set for them in Block range.

Instead of Block ranges, you can also be much more specific in rules of creating the initial solution and use some of the previously scheduled courses as examples when scheduling of other courses. In some schools part of the courses are always scheduled in specific slots, and here you can select courses that this application will imitate (or use as examples) during the automatic scheduling process.

If you select [x] Imitate single course you will be prompted to selected a single already scheduled course with the Select course button. This single course will be used as an example for the selected courses that you are going to create timetables for. The lectures are scheduled only in those slots where this selected imitated course already has its lessons, and excluding all those slots that would cause conflicts.

Using the selection [x] Imitate (#) courses you can generalise the previous command by using several scheduled courses as examples. In this case, you must specify the example course code (of some already scheduled course) in the course name, or within some of the component names belonging to the collection of this course (that is going to be scheduled). Note that this selection is not enabled, if you have not specified the imitated courses as described below.

The name of the example course must be enclosed within (...), [...] or [...] to be taken into account. For instance, you can define a set of subjects for this special purpose, and attached them to the appropriate courses. You could create a subject with a code SLOTSET1 and name Insert like [ABC123] which means that the application will timetable the lessons of each course having SLOTSET1 in the list of their components to the same slots where course ABC123 has been scheduled.

In this way, the instructions of the scheduling rules of each course can be hidden in the list of component names of the course or in the name of course itself. If the application finds more than one instruction in a course, the first one is followed. To hide those instructions from the display or reports, you can use the technique to hide these instructions in Options|Other|Hidden text separators. You can also clear those instructions or specific components after you have used them to specify your exact rules of scheduling.

Once you have made all selections, click Start! button to let the application schedule lectures automatically. It is a good hint to progress slowly by selecting only those courses or course categories you want to have automatically scheduled and then relax your criteria in following rounds.

The courses are processed in their current order. If you want to give higher priority to some of the courses - like those having more lectures or links than others and being more difficult than others - it can be a good hint to sort the courses according to some appropriate criteria, for example in ascending order of SUM or LINKS. See Tools|Sort courses. After the process has stopped, the changed courses are displayed.

Create an initial solution neither moves nor removes previously scheduled lectures. It adds currently unscheduled lectures into timetables under given restrictions.

Optimise timetables

After the lectures (of at least two courses) have been scheduled - either manually (in Timetables view) or with the above Create an initial solution you can improve the current solution with this selection. The optimisation criteria are to minimise the number of gaps in timetables (primary) and to move lectures to an earlier time in timetables (secondary). Both goals aim at more compact timetables.

Optimisation alone cannot guarantee that the result is optimal in all aspects. Its functionality is in similar to a robot vacuum. Although these gadgets work restless, they are not always very clever, since they may clean the same spot twice and miss spots that humans have to clean with other means. Humans have to move tables, chairs and other obstacles in order to control the area where robot vacuum can traverse. Similarly, when optimising timetables, it is important to use tools like Bookings, Locking, Course selection and optimisation rules to control the optimisation flow. Most important is to perform changes also manually in Timetables view in order to check and polish the work what is done by optimisation. On the other hand, optimisation can remarkably save time when it is properly used.

In Options|Timetables|Count gaps for you have selected those component categories where you want to associate gaps counting. Typically the timetable quality is measured by the number of gaps in categories like classes, teachers or students. In Selections you can give emphasis to the importance of each category by associating a coefficient from range 0-9 to each gap in their timetables. The objective is to minimise the total sum of gaps, and so the application tries to avoid gaps more active in those categories which have a greater weight.

For example, if it is extremely important to avoid gaps in the timetables of classes comparing to those of the teachers, set the weight to 9 for the class category and 1 for the teacher category (gaps in the timetables of classes are 9 times more severe than teacher gaps). If you use categories like rooms and other similar facilities, which do not mind about gaps, you can set their weights to 0, since it gives more degrees of freedom for the application to improve the timetables for humans.

There are two simple operations that are NOT permitted in optimisation: blocks (subsequent lessons of the same course) are never split or joined. Although these operations are often appropriate and they can also speed up the optimisation, they must be performed manually in Timetables view, to give a better control of all consequences of this operation.

Select also the block range you want to include in optimisation and check

[x] Assume bookings as lectures

if you assume that the bookings are interpreted as lectures when counting gaps (holes in the timetables). If this option is selected, the application tries to schedule lectures into those gaps, which are defined as empty cells between the cells, which contain either bookings or lectures. Otherwise, the gaps are empty cells between cells containing lectures. This selection may slightly change the style of the optimisation since its primary goal is to fill the gaps in the timetables.

Checking the selection

[x] Disable multiple course blocks

prevents from moving lectures of the same course in the same day during optimisation. If you initially have a sequence of lectures of some course in a certain day, moving a sequence or a single lecture of the same course to this day is forbidden during the optimisation.

If the proposed move is discarded for this reason, it is accumulated and displayed in the Undone field during the optimisation process.

When checked,

[x] Maintain balanced daily schedules

does not allow moving of lectures in those cases, when the number of daily lectures would be less or more in this category than it was before the optimisation started. To take an example, suppose that the number of daily lectures in classes is always between 5 and 7. All moves caused by the optimisation that would result in 0-4 lectures or 8- daily lectures for some class, would be discarded.

If the intended move is discarded for this reason, it is accumulated and displayed in the Undone field during the optimisation process.

The selection

Optimisation algorithm

enables you to choose the main optimisation algorithms (1 and 2). Selecting Both apply these algorithms mixed, and this selection is recommended because of its efficiency among the data sets that have been analysed.

Press Optimise to start optimisation and Abort button to stop the process. The initial number and the current number of gaps is displayed plus graph showing the progress of the optimisation. Wait a couple of minutes to monitor the speed of the optimisation and consider if it needs more time or do the parameters need to be adjusted. If not interrupted, the optimisation stops automatically after 24 hours or when it considers its task hopeless.

After you have finished optimisation, the list of all affected (changed) timetables are displayed:

Optimise timetables never schedules new lectures into the timetables or removes previously scheduled lectures. It moves previously scheduled lectures within the timetables to improve the current solution.

Remove scheduled lectures

This is the reverse operation to the Create an initial solution selection. When you click START!, Mimosa removes all lectures from the timetables defined in the week and time ranges and delimited to the courses and course types that you have selected.

Use this operation with caution, since you can erase several scheduled lectures immediately!

Copy timetables across weeks

If you have scheduled some of the lectures, you can copy them to the following weeks in the selected range of weeks. From the week range, choose the first week for the “source week” which is used as an example for copying and the last week to final week where the scheduled lectures are copied. You have to supply a range of at least two weeks and the first week must have at least one scheduled lecture.

When you click START!, Mimosa tries to copy the scheduled lectures from the source week to the destination week if it can be performed without conflicts. Copying is limited to the set of courses that you have included in the copy operation. In many cases, the successive weeks have many courses in common, so that the manual scheduling task can be remarkably reduced with this copy option.

Show unscheduled lectures

This selection lists all components and courses in a tree view, which have at least one or more lectures not yet scheduled. Clicking Select button shows a detailed view of the activated component or course.