Note: Reportez-vous à Tablix timetabling model formal description pour plus de détails.
Un emploi du temps, pour Tablix, est défini comme un groupe d'évènements (events). Chaque évènement (appelé aussi de temps en temps un tuple) utilise un nombre fixé de ressources. Les Ressources sont regroupées dans un grand nombre de types de ressource.
Pour la plannification scolaire, des exemples de types de ressource peuvent être : les enseignants, les groupes d'étudiants, les salles de classe et les créneaux horaires. Chaque ressource faisant partie du type de ressource "enseignants" représentera un enseignant. Chaque ressource du type de ressource "groupes d'étudiants" représentera un groupe d'étudiants (une classe), etc...
Les types de ressource sont divisés en deux groupes :
Les types de ressources constants, qui sont associés à des évènements par l'utilisateur.Tablix ne changera jamais ces associations.
Les types de ressource variables, d'autre part, qui ne sont généralement pas associés à des évènements par l'utilisateur. Tablix changera ces associations pour trouver une solution au problème d'emploi du temps.
La solution est donc trouvée en associant les bons types de ressource variables aux évènements.
Note: Chaque évènement utilise une ressource de chaque type de ressources défini.
Note: Il est possible d'associer des types de ressource variables aux évènements. Ces associations sont appelés des conseils. Tablix essaiera de les utiliser lorsqu'il cherchera la solution.
Dans l'exemple ci-dessus, les enseignants et les groupes d'étudiants seraient les types de ressource constants, tandis que les salles de classe et les créneaux horaires seraient les types de ressource variables. L'utilisateur assignerait les enseignants et les groupes d'étudiants aux évènements (ces évènements seraient les cours pour cet exemple). Tablix essaiera ensuite de trouver une salle et un horaire convenable pour chaque cours.
Les ressources peuvent être définies une à une, sur une seule ligne, ou comme une matrice à deux dimensions. Ces matrices sont généralement employées pour les ressources Temps. Chaque colonne dans la matrice représente alors un jour de la semaine.
Note: Il peut sembler que le fait d'affecter exactement le même nombre de ressources à tous les évènements rende impossible d'appliquer ce modèle pour des emplois du temps où un évènement peut utilisé plus d'une occurence d'un même type de ressource. En réalité, des contraintes d'emploi du temps variées (par exemple celle des conflits de ressources) permettent à ce modèle d'être très flexible, et de s'adapter à ce genre d'emploi du temps.
Chaque contrainte d'emploi du temps est définie dans un module Tablix (appelé un module d'ajustement (fitness module)). Par exemple, le module sametime.so assure, pour les problèmes d'emploi du temps scolaire, que ni les enseignants, ni les groupes d'étudiants, peuvent avoi deux cours en même temps.
Différents modules ont été réalisés pour différentes contraintes. Pour chacun d'eux, certains types de ressources sont supposées présentes dans le fichier de configuration. Cela signifie que pour utiliser un module, le problème exposé doit contenir certains types de ressources et parfois même que certains types de ressources incluent par exemple des matrices de ressources. Lorsque ce manuel a été écrit, la plupart des modules étaient destinés à des problèmes d'emploi du temps scolaires.
Vous devez donner un poids à chaque module utilisé. Ces poids servent à calculer la valeur d'ajustage d'un emploi du temps et définissent quel est le degré d'effort à faire pour réduire un certain type d'erreurs. Chaque module peut être défini soit comme obligatoire (mandatory), soit comme non-obligatoire (non-mandatory). Toutes les valeurs d'ajustage des modules obligatoires doivent être nulles pour qu'un emploi du temps soit considéré comme une solution acceptable. Un exemple de module qui est toujours défini comme obligatoire est sametime.so. Un module non-obligatoire doit être un module qui détecte des cas non désirés, mais qui ne rendent pas l'emploi du temps impossible.
Note: Les modules obligatoires doivent avoir des valeurs de poids supérieures à celles des modules non-obligatoires pour que Tablix puisse trouver plus certainement une solution.
Note: Certains modules ne définissent pas de valeur d'ajustage. Ces modules ignorent les paramètres de poids et de caractère obligatoire ou non qui lui sont fournis.
Vous pouvez trouver la description de tous les modules inclus dans la distribution Tablix dans le manuel de référence des modules Tablix. Il est disponible on-line ou dans le sous-répertoire doc de l'arbre des sources.
Chaque module d'ajustement peut définir une ou plusieurs restrictions et peut accepter plusieurs options de module. Deux types de restrictions existent :
Les restrictions d'évènement, qui sont appliquées aux évènements,
et les restrictions de ressource, qui sont appliquées aux ressources.
Une restriction de ressource qui est définie par un module peut parfois être seulement appliquée à des ressources d'un certain type et d'autres fois être valable pour n'importe quel type de ressource.