Tablix uses a modified genetic algorithm to solve timetabling problems. Genetic algorithm works by first evaluating a large number of random timetables (this group of timetables is called a population). It assigns a fitness value to each timetable. This fitness value indicates how well the timetable satisfies the restrictions given in the definition of the timetabling problem. Lower fitness values mean a better solution and fitness value 0 indicates a perfect solution. The type of genetic algorithm Tablix uses maintains a separate population on each computing node.
Note: Fitness value 0 indicates a perfect solution, but solutions with fitness values greater than 0 may also be acceptable, depending on the problem description).
Genetic algorithm leaves the part of the population with lower fitness values unmodified and replaces the part of the population with higher fitness values with new timetables that are based on the first part. One such step of the algorithm (evaluation and replacement of the worse part of the population) is a called a generation.
When an acceptable solution is found in the population, Tablix writes it into a file and exits.
There are several important points you should keep in mind when using Tablix:
The genetic algorithm isn't deterministic. Because it starts with a random population, the results will differ each time you run Tablix, even if you use exactly the same configuration file.
Most users run Tablix several times and then choose the best solution.
There is no way for Tablix to determine if a solution exists for given the timetabling problem. Tablix will do its best to find out any obvious flaws in the problem definition, but if it doesn't find any doesn't mean that the solution exists.
If the solution doesn't exist then the genetic algorithm will never finish.
The total size of the population determines how exhaustive search for the solution will be. The size of the population can be increased by increasing the number of computing nodes (the -n parameter) or by increasing the population of one node (the popsize algorithm parameter).
Problems that are harder to solve require larger populations for Tablix to reliably find a solution.