Combinations are possibilities to accomplish one of the following tasks without causing any conflicts:

  • Schedule a single occurrence of an activity;
  • Move an existing activity's cell or find swaps for it with other cells;
  • Fill a gap (an empty cell) in some resource's timetable.
  • Find a suitable room for an already scheduled activity.

Now, when we are saying "possibilities", we are not referring only to single-step possibilities (such as moving an activity from Monday to Tuesday which can be easily accomplished using plain drag and drop), but rather to complex multi-step possibilities involving several cells so that eventually the goal is achieved.

Combination illustration8.png

This is a very powerful feature of the program which can be incredibly helpful in "tight" scheduling scenarios. The program's ability to search through an enormous range of moves can be a gigantic time saver. This is especially useful in schools in which the last stages of timetable construction are often the ones that take the most time. The reason is, that when almost all activities are scheduled, there are nearly no vacant cells to schedule the remaining few activities, especially when the resource allocation is close to full capacity. In that case, "squeezing in" a new activity is not a trivial task. That's when the combinations engine is a great helper.

How to find combinations?

The search for combinations is triggered simply by clicking the "Combinations" tab at the bottom of the workspace. What kind of combinations will the program be searching for? Well, that depends on what you click on. Here are the options:

Scenario 1: Schedule an activity

When the Combinations pane is open and you click on an activity in the Activities' list, the program suggests possibilities to schedule that activity. The possibilities are displayed as thumbnails in the Combinations pane. When you move the mouse cursor over a combination's thumbnail, the program displays arrows depicting the moves of the combination inside the main timetable. The first arrow is the one that tells where the activity is scheduled (in the screenshot below it's on Tuesday 4th period) and the following arrows take care of moving the conflicting activities:

Combinations schedule activity studio8.png

Note that the first combinations that you will see in the combinations pane are simple one-step scheduling possibilities, e.g. schedule the activity on Monday 1st period (of course only if such one-step possibilities exist). However, the following possibilities will be increasingly more complex. For example, a 2-step possibility may involve scheduling the activity on Tuesday 2nd period while moving a conflicting activity which is on Tuesday to Wednesday. The maximal number of steps that the program finds is 5.

Scenario 2: Move an existing cell

In this scenario the goal is to move a specific scheduled cell to a different day or period. To trigger this combination search all you need is to click in the cell. The program will then search for 2 kinds of possibilities:

  1. Possibilities which move the cell to a different time thus freeing the original cell.
  2. Possibilities which find a way to move the cell to a different time but also move some other activity into the original cell - we call such possibilities swaps.

Of course, in both types, whenever a cell is moved instead of another cell, the program also moves the other cell until all the cells are rescheduled (in a chain) without causing any conflicts:

Combinations move cell studio8.png

In case you need to find only moves or only swaps, you can use the selector at the top of the combinations pane to filter out the irrelevant types of combinations. For example, this will display only swap combinations:

Combinations swaps only8.png

And here is an example of a swap combination:

Combinations swap cell studio8.png

Scenario 3: Fill a gap

A gap is an empty cell. But not just any empty cell - before and after a gap there are scheduled cells. In many schools it is desirable to have as few gaps as possible in resources' schedules, so in this scenario the combinations engine is going to be used to find ways to close such a gap using some activity that is scheduled at the end of the day (because if we take an activity from the middle of the day we will be substituting one gap with another, which is not what we want).

To have the combinations engine find ways to fill a gap, you just need to click inside the empty cell. As usual, the combinations that the program finds will be displayed in the combinations pane:

Combinations fill gap studio8.png

Scenario 4: Find a suitable room for an activity

The combinations engine is also useful for finding room possibilities of two types:

  1. Find a new room for a scheduled activity - when there is a cell without any chosen room, the program suggests possibilities to schedule it in a suitable vacant room.
  2. Reschedule an already scheduled activity into a different room - when a cell already has a room but can be optionally scheduled in other rooms as well, the program suggests possibilities to move it into other rooms.

Let's start with the first type. Reminder: After you schedule an activity which has several optional rooms, the activity gets scheduled without a room and you need to complete the scheduling by selecting a room for the cell in the Properties pane. Now, in case there is no vacant room, you can use the Combinations engine to find possibilities to free one of the suitable rooms. To do that, just click the cell without the room while the combinations pane is open. You will see possibilities appearing which schedule the activity into a suitable room:

Combinations rooms studio8.png

The combinations of the second type are displayed when a cell that already has a chosen room is selected. These combinations suggest possibilities to move the cell into a different room. For example:

Combinations different room studio8.png

Note: When you select a cell in the main timetable, the default combinations that are shown are moves and swaps. To display room combinations you need to select "Rooms" at the top of the combinations pane:

Combinations rooms only8.png

How to analyze the effect of a combination?

When you are looking at the arrows which depict the moves of a combination, you are only seeing a part of the picture. That's because each activity's cell that is being moved affects all the activity's resources, and not only the ones which you are viewing at the moment. For example, while looking at the arrows inside a group's timetable, you are not seeing the effect of the combination on the involved teachers. However, in order to assess the quality of a combination, you do need to see the effect of it on the timetables of everyone who's involved. How do you do that then?

Well, to achieve that, all you need to do is click once on the combination's thumbnail. You will see a red circle appear in the combination's thumbnail:

Combinations selected thumbnail studio8.png

When a combination is selected, its arrows become "frozen" in the main timetable. This means that even if the mouse cursor leaves the thumbnail, the arrows remain. Not only that, but in this state (when a combination is selected), you can also use the Mini Timetable pane to view the effect of the combination on all the involved resources simply by clicking the cells which are affected by the combination:

Combination effect on teacher studio8.png

If you click the selected combination again, the combination becomes deselected.

How to apply a combination?

To apply a combination and have the program execute its moves, just double click its thumbnail.

How to prevent certain cells from being move candidates?

By default, any cell can be involved in the move steps of a combination if the program finds that to be beneficial. However, there is an option to prevent specific cells from being involved in any combination whatsoever - and that is by fixating such cells. When a cell is fixated, it will remain in place and will be treated as non movable by the combinations engine. To fixate a cell, select it and then choose "Edit", "Fixate" in the main menu or in the right-click menu. A fixated cell will appear with a small lock icon at its bottom right corner:

Fixated cell8.png

Fixations are useful in situations in which there are constraints which the program is unaware of which prevent certain cells from being realistic candidates to participate in a combination. In these situations you can fixate the relevant cells so that the program does not even suggest such unrealistic possibilities to you.

To remove a cell's fixation, select "Edit", "Unfixate" in the main menu or in the right-click menu.

How to find more combinations?

There is one simple but very important thing to understand about the combinations feature which we have not emphasized so far, and that is this: only combinations which involve the visible cells will be found. It sounds trivial, but let's understand what it means.

As we have seen, the combinations that are found are depicted using arrows which appear in the timetable. Now, when you use the combinations feature while viewing a single resource's timetable, you will naturally see all these arrows inside that single resource's timetable. But what does this imply? It implies, for example, that only combinations in which one cell of that resource can be swapped with another cell of the same resource are going to be shown. What if, for instance, there is a combination that requires moving a cell of another resource in order to move the original cell of the first resource (because perhaps they are competing for the same room)? Such a combination will not be found at all in this scenario - because, for one thing, there would be nowhere to show the extra arrow of the other resource.

The conclusion is this then: the more resources are shown on screen - the more combinations will be found. That's because the "search space" of the combinations engine is increased. Here is an example.

When the timetable of a single group is displayed and we are looking for combinations to move a cell, only one combination is found in the following case:

Combinations single resource studio8.png

Now we select another group in the navigation pane so that two groups' timetables are displayed. The combinations engine restarts and finds more combinations (all the new combinations involve the other group's cells):

Combinations multiple resources studio8.png

If we were to display all groups, even more combinations would have been found. The same can be applied to teachers, rooms and subjects' timetables.

By the way, the same principle applies to the displayed days. If you display the schedule of a single day, only combinations which involve cells from that day will be found.

The next chapter: Constraints.