As opposed to the interactive mode, in which activities are scheduled at the user's discretion, in the automatic mode it is the program's responsibility to decide when each activity is scheduled so that there are no conflicts and all the constraints that you have entered are optimally satisfied. As a result, for many schools, principals and timetable administrators, the automatic capability of the program is in fact a gigantic time saver.
Our software's automatic solver has a highly intelligent algorithm, which exceeds any manual means of timetable construction. Let's understand a little bit about how it works before we describe how to operate it.
How does the software construct the timetable automatically?
The basic idea behind the automation algorithm is straightforward. It's all about improvement: gradual and well calculated improvement. You see, the problem of timetable construction is broken into a series of moves, the goal of each of them being to somehow improve the timetable. In each step of this process the program evaluates what is currently wrong with the timetable based on the data and constraints that you have entered. It then picks the most critical violation and dedicates a certain amount of time to finding a way to resolve it. At first, the program dedicates only 3 seconds to finding such resolutions. This way, the easy violations are resolved quickly in the first iteration.
The violations which were not resolved in the first iteration are moved to what we call a "pending queue". In the second iteration the program increases the time dedicated to solving each problem to 15 seconds and gives another shot at resolving the pending queue violations from the previous iteration. This process is then repeated several times, while increasing the time more and more in each new iteration.
There is just one more thing which is important to understand about the automation algorithm and that is how exactly the algorithm evaluates whether a move improves the timetable or not. As you remember, each constraint is essentially a mathematical formula which sums up something in the timetable. When you enter a constraint, you simply put a limit on the outcome of this formula for a specific resource. Now, a violation happens when the outcome is not within the Min/Max or Desirable ranges that you have defined; and the difference between the outcome and the minimum or the maximum is in fact the Violation's score. What the program does to evaluate a timetable, is to sum up the scores of all the violated constraints. It then reaches an absolute number which is the timetable's total score. That total score is what the program looks at when it decides whether a move improves the timetable or not – if the combined effect of a move in fact improves the score, the move is considered as beneficial and is applied by the software.
How to switch to the Automatic mode?
In order to be able to launch the automatic construction, first you need to enter the Automatic mode by clicking the "Automatic" button at the bottom right corner of the screen:
Note: In the automatic mode you cannot make manual (interactive) changes to the timetable. You can only enter constraints. In order to go back to being able to make manual changes, you will need to switch back to the Interactive mode.
What is the Violations pane?
Once you enter the Automatic mode, the program will swap the Resources and Activities pane with the Violations pane. The Violations pane simply lists all the unfulfilled constraints in the current timetable. These violations are the ones which the automatic solver will be working on during the automatic timetable construction. Note that unscheduled activities are also considered as violations of a constraint named "Scheduling", and they will also be listed in the Violations pane. So if the timetable is empty and it's the first time you are entering the automatic mode, you will see all your activities appear in the list with a "Scheduling" violation:
How to launch the automatic construction?
In order to launch the automation, all you have to do is click the "Solve All" button at the bottom of the Violations pane.
Note that the Violations pane contains two additional buttons at the bottom: "Solve" and "Ignore". The "Solve" button can be used to launch the automation only for a specific violation in the list. To do that, you need to select the violated constraint in the Violations list and then click "Solve".
The "Ignore" button can be used to ask the program to temporarily ignore a violated constraint. This means that the program will ignore the constraint value you entered and act as if no limit was set. Note that the ignored constraints are not saved, so if you need to constantly ignore a constraint, you should just remove the Min/Max/Desirable values you have entered.
What happens during the automatic construction?
The program will start resolving all the existing violations one by one. The progress of the automation will be reflected by three figures at the bottom of the Violations window:
- The number of remaining problems – This is the number of problems (violations) which still exist in the timetable.
- The number of improvements made – This is the number of positive changes which improve the timetable's quality made by the software. Note that this number will be higher than the number of problems because it usually takes multiple steps of improvement in order to fully resolve a violation. For example, if one violation consists of 2 extra gaps, it would usually take two improvement steps to close those two gaps.
- Pending problems without solution – This is the number of violations which the program could not resolve in the current iteration. The program will attempt to resolve them in the next iteration by dedicating more time to finding a solution to each one of them.
You can stop the automatic solver at any time by clicking the "Stop" button. You can easily resume it later by clicking the "Solve All" button again.
The next chapter: Constraints.