Format de fichier pour des emplois du temps

Les contraintes sur les emplois du temps sont données dans des fichiers texte, à raison d'une contrainte par ligne.

Dimensionnement

Les contraintes sont précédées au début du fichier de 4 lignes qui indiquent la taille du problème (nombre d'enseignants, de salles, de créneaux et de cours).

enseignants: m

Définit le nombre d'enseignants (on peut faire référence par la suite via Ens_i à l'enseignant n°i).

salles: q

Définit le nombre de salles (on peut faire référence par la suite via Sl_i à la salle n°i).

creneaux: p

Définit le nombre de créneaux gérés (on peut faire référence par la suite via Cx_i au créneau n°i). On suppose 7 créneaux de 1h par jour (8h-9h, 9h-10h, 10h-11h, 11h-12h, 14h-15h, 15h-16h et 16h-17h). Si on traite 14 créneaux, cela signifie que l'on établi un emploi du temps sur le lundi et le mardi. 35 créneaux correspondent à une semaine complète.

cours: n

Définit le nombre de cours à placer.

Contraintes

Ci-dessous la syntaxe des contraintes:

i enseigne: j1, j2, ...

Indique que l'enseignant n°i peut enseigner les cours j1, j2, etc. Un enseignant i ne peut pas enseigné un cours j si cette contrainte ne l'indique pas.

salle pour i: j1, j2, ...

Indique que le cours i doit avoir lieu dans une des salles j1, j2, etc. Si une salle n'est pas spécifiée pour un enseignement, ce dernier ne peut pas avoir lieu dans cette salle.

i indisponible: j1, j2, ...

Indique que l'enseignant i ne peut pas faire cours au créneaux j1, j2, etc.

Syntaxe pour des suites d'entiers

La syntaxe i .. j peut être utilisée pour remplacer la suite d'entiers i, i+1, ..., j-1, j .