Points essentiels
- Les contraintes dures définissent la faisabilité ; une seule violation rend l’emploi du temps inutilisable.
- L’ensemble standard : conflits d’enseignant, de classe et de salle, cours requis, indisponibilités, journée d’enseignement.
- Un ensemble dur impossible doit apparaître comme une infaisabilité, jamais comme une violation cachée.
- Classez les règles en dures, fermes ou souples avant de dire à un solveur que tout est obligatoire.
L’ensemble dur standard
Six règles reviennent dans presque chaque emploi du temps scolaire : aucun conflit d’enseignant, aucun conflit de classe, aucun conflit de salle, chaque cours requis planifié, les indisponibilités des enseignants respectées, et toutes les activités à l’intérieur de la journée d’enseignement. Chacune est binaire. Un enseignant légèrement réservé deux fois, cela n’existe pas.
Tout le reste commence sa vie comme une préférence. C’est le principe de travail par défaut : une règle n’entre dans l’ensemble dur que lorsque quelqu’un peut dire ce qui casse si elle est violée.
L’infaisabilité est la bonne réponse
Quand l’ensemble dur ne peut pas être satisfait, le générateur utile le dit. Un rapport d’infaisabilité vous indique quels engagements entrent en collision ; une règle pliée en silence ne vous dit rien jusqu’à ce qu’un enseignant découvre le conflit en semaine une.
C’est pourquoi les contraintes dures sont un contrat, pas un souhait. Si vous accepteriez que la règle soit rompue sous pression, elle n’a jamais été dure. Déplacez-la vers l’ensemble souple avec une pénalité et laissez-la être arbitrée ouvertement.
Classez avant de générer
La pratique documentée consiste à classer les règles en dures, fermes ou souples plutôt que de tout déclarer obligatoire.
- Listez chaque règle que quelqu’un a demandé à l’emploi du temps de respecter.
- Marquez comme dures uniquement les règles dont la violation rend la grille inutilisable.
- Marquez comme fermes les règles que l’école plierait dans une urgence nommée, et consignez qui décide.
- Tout le reste est souple : donnez-lui un poids de pénalité plutôt qu’un veto.
- Vérifiez l’impossibilité conjointe de l’ensemble dur avant la première exécution.
- Revoyez la classification quand les engagements de l’école changent, pas en pleine crise.
Comment faire dans Smootables : des règles que le solveur ne rompra pas
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Conflicts detected
The following conflicts will occur if you proceed:
Room Lab B is already bookedChemistry practical at 13:00–14:30
Le solveur Smootables traite les conflits et la disponibilité comme durs : sa première phase cherche une grille qui satisfait les règles dures, et seulement ensuite une seconde phase améliore la qualité. Si l’ensemble dur ne peut pas être satisfait, la génération échoue avec un rapport nommant les causes de conflit et des actions suggérées, plutôt que de renvoyer une grille cassée.
L’indisponibilité dure se saisit sous Disponibilité dans Ressources : blocages de dates en journée entière et règles hebdomadaires répétées dans la journée, pour les enseignants et les salles. Les modifications manuelles reçoivent le même garde-fou à une force différente : déposer un cours là où il entre en conflit ouvre une boîte de dialogue de conflits nommant ce qui entrerait en collision, et continuer enregistre le conflit au lieu de le cacher.
Le durcissement excessif : l’échec habituel
L’erreur de modélisation courante consiste à promouvoir des préférences dans l’ensemble dur : demandes horaires des enseignants, souhaits de ne pas placer la théorie en dernière période, salles favorites. Chaque promotion rétrécit l’espace faisable, et il en faut peu pour le vider. L’échec arrive alors sous forme d’infaisabilité inexpliquée, qui ne pointe vers rien en particulier.
Quand une exécution se déclare infaisable, auditez d’abord l’ensemble dur : laquelle de ces règles est en réalité une préférence déguisée en veto ? Les vérifications qui attrapent cela avant la génération sont couvertes dans validation des contraintes ; ce qu’il faut vérifier dans les données elles-mêmes se trouve dans vérifier les données d’emploi du temps.
Questions des planificateurs sur les contraintes dures
Que se passe-t-il si nous marquons chaque règle comme obligatoire ?
Si l’ensemble est conjointement impossible, l’avertissement documenté s’applique : les arbitrages du solveur deviennent imprévisibles, parce que vous ne lui avez donné aucun classement pour arbitrer. Classez plutôt les contraintes en dures, fermes ou souples, et les arbitrages deviennent les vôtres.
Un conflit d’élève est-il dur ou souple ?
Selon la politique, l’un ou l’autre. Certaines écoles traitent tout conflit d’élève comme infaisable ; d’autres acceptent une violation pénalisée dans des cas étroits. Le point important est qu’il s’agit d’une décision à consigner, pas d’un défaut à hériter.
Pourquoi un emploi du temps faisable peut-il rester mauvais ?
Parce que les contraintes dures ne garantissent que la légalité. La qualité (trous, répartition, journées compactes) vit dans l’ensemble souple. Une grille peut satisfaire chaque règle dure et rester une mauvaise semaine pour tous ceux qu’elle concerne.