Tablix utilise un algorithme génétique modifié pour résoudre les problèmes d'emploi du temps. L'algorithme génétique commence par générer un grand nombre d'emplois du temps aléatoires (ce groupe d'emplois du temps est appelé population). Il assigne une valeur d'ajustage (fitness) à chacun d'eux. Cette valeur indique à quel point l'emploi du temps satisfait les contraintes données dans la définition du problème. Au plus cette valeur est faible, au meilleur est la solution. Une valeur de 0 indique donc une solution parfaite. Pour exprimer pleinement cette notion, il faudrait écrire à chaque fois "valeur d'ajustage restant pour atteindre la solution parfaite". Le type d'algorithme génétique qu'utilise Tablix maintient une population séparée pour chaque noeud de calcul.
Note: Une valeur d'ajustage de 0 indique une solution parfaite, mais des solutions avec des valeurs non nulles peuvent également être acceptables; cela dépend de la description du problème.
L'algorithme génétique laisse l'ensemble de la population ayant les plus petites valeurs d'ajustage intacte et remplace l'ensemble de la population ayant les valeurs les plus élevés par de nouveaux emplois du temps générés comme lors de la première étape. Cette étape de l'algorithme (évaluation et remplacement des plus mauvais) s'appelle une génération.
Lorsqu'une solution acceptable apparaît dans la population, Tablix l'écrit dans un fichier et s'arrête.
Vous devez garder à l'esprit plusieurs points importants lorsque vous utilisez Tablix :
L'algorithme génétique n'est pas déterministe. Du fait qu'il commence avec une population aléatoire, les résultats seront différents à chaque fois que vous lancerez Tablix, même si vous utilisez exactement le même fichier de configuration.
La plupart des utilisateurs exécute Tablix plusieurs fois et choisissent ensuite la solution qu'ils jugent la meilleure.
Tablix est incapable de déterminer si une solution existe ou non pour un problème posé. Tablix fera de son mieux pour détecter toute incohérence dans la définition du problème, mais s'il n'en trouve pas, cela ne signifie pas pour autant qu'une solution existe.
Si aucune solution n'existe alors l'algorithme génétique ne terminera jamais.
La taille totale de la population influe sur l'exhaustivité de la recherche de la solution. Cette taille peut être augmentée en accroissant le nombre de noeuds de calcul (l'option -n) ou en accroissant la population pour chacun des noeuds (le paramètre popsize de l'algorithme, qui par défaut est de 500).
Au plus les problèmes sont difficiles, au plus Tablix exige une grande population pour trouver une solution correcte.