Tools|OptimiseIn this selection you can create timetables automatically, copy timetabled lectures from one week to other weeks or remove timetabled lectures. You can also optimise timetables by letting the application minimise gaps from them with respect to your constraints.
You can select the appropriate action from the Tools page. Then you select the courses and set the constraints from the Selection page. 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.

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 Initial solution creates only an approximate starting solution for your timetables, you may have inserted some critical courses in Timetables view beforehand. 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 Initial solution or you begin to optimise, since you can always read this file again into the application, if something unexpected happens - as it sometimes does.

After selecting the Initial solution you then go to the next tab to pick those courses, week range and time range where you want to limit the insertion of lectures.
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 inserted 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 inserted. None of the previously timetabled 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 assigned courses as examples when timetabling of other courses. In some schools part of the courses are always assigned in specific slots, and here you can select courses that this application will imitate (or use as examples) during the automatic timetabling process.
If you check
[x] Imitate single course
you will be prompted to selected a single already timetabled course with the Pick course button. This single course will be used as an example for the selected courses that you are going to create timetables for. The lessons are assigned only in those slots where this selected imitated course already has its lessons, and possibly excluding all those slots that would cause conflicts.
If you check
[x] Imitate (#) courses
you can generalise the previous command by using several timetabled courses as examples. In this case, you must specify the example course code (of some already timetabled course) in the course name, or within some of the component names belonging to the collection of this course (that is going to be timetabled).
The name of the example course must be enclosed within (...), [...] or [...] to be regonized. 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 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 timetabled.
In this way, the instructions of the assignment 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 printings, you can use the selections in File|Print|Timetables|Categories included or 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 timetabling.
Once you have made all selections, press START! to let the application insert the lectures into timetables automatically. It is a good hint to progress slowly by selecting only those courses or course categories you want to have automatically timetabled 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.
Initial solution neither moves nor removes previously assigned lectures. It adds currently unassigned lectures into timetables under given restrictions.
Optimise timetablesAfter the lectures (of at least two courses) have been assigned into timetables - either manually (in Timetables view) or with the above Initial solution you can try to improve the current solution with this selection. The primary optimisation criteria is to minimise the total number of gaps (or holes) in timetables.

In Options|Timetables|Count gaps for you have selected those 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. The objective is to minimise the total sum of weighted gaps, and so the application tries to avoid gaps in those categories with 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 (class gaps are 9 times more penalized than the teacher gaps). If you use categories like rooms and other non-living 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 of 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 window, 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. If this option is selected, the application tries to insert lectures into gaps, which are defined as empty cells between those 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 goal is to fill the gaps.
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 START! to start optimisation Abort button to stop optimisation. 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.

Optimise timetables never assigns new lectures into the timetables or removes previously assigned lectures. It moves previously assigned lectures within the timetables to improve the current solution.
Remove lectures from timetables
This is the reverse operation for the Initial solution command. When you press 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 timetabled lectures immediately!
Copy timetables from first week to other weeks
If you have timetabled 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 timetabled lectures are copied. You have to supply a range of at least two weeks and the first week must have at least one timetabled lecture.
When you press START!, Mimosa tries to copy the timetabled lectures from the source week to the following weeks in the range where it is logically permitted. The 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 timetabling task can be remarkably reduced with this copy option.
Show unassigned lectures
This selection lists all components and courses in a tree view, which have at least one or more lectures not yet assigned into timetables. Clicking Select button shows a detailed view of the activated component or course.