Tout emploi du temps est construit pour septembre. En octobre, il a déjà rencontré la réalité : un enseignant voit son service réduit, un collègue à temps partiel change de jours, une autre prend une mission qui bloque le mardi matin. Un cours doit bouger.
Avec un générateur sous la main, le réflexe est de mettre les données à jour et de relancer la distribution. Une fois l'année commencée, c'est presque toujours la mauvaise décision.
Un meilleur score, un moins bon trimestre
Une distribution complète n'a qu'une mission : trouver le meilleur emploi du temps pour les données qu'on lui fournit (nous l'avons détaillé dans l'anatomie du moteur). Elle ignore que la 5e B a mis six semaines à retenir que la physique a lieu le lundi en première heure. Pour le solveur, l'emploi du temps du mois dernier n'est qu'un arrangement valide parmi beaucoup d'autres, et il en choisira un autre s'il obtient un score légèrement meilleur.
Un établissement admet un très grand nombre d'emplois du temps de qualité presque identique. Modifiez une contrainte, relancez, et le nouveau plan peut différer de l'ancien sur des centaines d'heures de cours — chaque changement raisonnable en soi, l'ensemble formant un emploi du temps que personne n'a demandé. Le score a gagné un point ; tout le monde doit réapprendre sa semaine.
L'onde : ce qui doit réellement bouger
Un exemple. À partir d'octobre, Mme Lefèvre ne peut plus enseigner le mardi en 2e heure, et son cours d'anglais avec la 4e A tombe exactement à ce moment-là. Le créneau qui lui convient le mieux est le jeudi en 4e heure — mais la 4e A y a déjà histoire-géographie avec M. Girard.
Placer l'anglais sur ce créneau en chasse l'histoire-géographie. Celle-ci doit trouver une nouvelle place, qui peut à son tour entrer en conflit avec autre chose dans la semaine de M. Girard ou de la 4e A, et ainsi de suite. Cette chaîne, c'est l'onde. Tout ce qui se trouve en dehors n'a aucune raison de bouger.
Réparer un emploi du temps, c'est résoudre uniquement l'onde en maintenant tout le reste en place. Le problème devient beaucoup plus petit, et c'est pourquoi une réparation aboutit généralement en quelques secondes.
Jusqu'où l'onde peut s'étendre
Toute la difficulté est de décider de la taille de l'onde. Trop petite, il n'existe peut-être aucun arrangement valide ; trop grande, vous recalculez l'établissement. Bildena essaie des anneaux de plus en plus larges — chacun est une tentative distincte — et s'arrête au premier qui aboutit.
| Anneau | Peut bouger | Tout le reste |
|---|---|---|
| 0 | Le cours déplacé, les cours du créneau cible qui entrent en conflit avec lui, et tous les cours qui leur sont liés | Épinglé |
| 1 | Tous les cours des enseignants et des classes concernés par l'anneau 0 | Épinglé |
| 2 | En plus, tous les cours des enseignants et des classes entraînés par l'anneau 1 | Épinglé |
| 3 | Tout sauf le cours déplacé — le dernier recours | — |
Un conflit a le même sens que lors de la distribution : même enseignant, même classe ou, dans une planification par élève, au moins un élève en commun. Les groupes d'une même classe peuvent partager un créneau tant qu'ils n'ont aucun élève en commun.
Liés compte plus qu'il n'y paraît. Certains cours doivent avoir lieu au même moment : les cours parallèles d'une barrette d'options, ou les groupes d'une classe dont les groupes doivent être enseignés simultanément. Si l'un bouge alors que les autres restent épinglés, cette règle est rompue et aucun arrangement ne peut être trouvé. Chaque anneau emporte donc la famille complète de chacun de ses cours, et continue de s'agrandir jusqu'à ce que plus rien ne s'y ajoute.
Dans l'exemple, l'anneau 0 se demande si l'histoire-géographie tient sur un créneau où la 4e A et M. Girard sont déjà libres. Si ce n'est pas le cas, et seulement alors, l'anneau 1 permet de réorganiser un peu le reste de leur semaine.
Ce que « maintenir en place » veut dire
En dehors de l'onde, les cours sont épinglés par une règle stricte : le solveur ne peut pas les déplacer, quel que soit le gain. À l'intérieur de l'onde, les cours sont libres — mais pas indifférents. Chaque heure de cours porte une pénalité si elle quitte son créneau actuel, et cette pénalité est nettement supérieure aux préférences ordinaires de l'emploi du temps, comme éviter les heures creuses dans la journée d'une classe.
Sans cette pénalité, le solveur choisirait n'importe laquelle des nombreuses façons, toutes aussi bonnes, d'agencer quarante cours, et les enseignants de l'onde verraient leur semaine bouleversée pour rien. Avec elle, un cours bouge parce qu'il le doit, pas parce que cela supprimerait une heure creuse. La pénalité s'applique aussi à l'anneau 3.
Quand l'onde ne se referme pas
Certains déplacements sont tout simplement impossibles. Si la cellule cible est une heure fermée pour l'enseignant ou pour la classe, la grille refuse le dépôt avant toute tentative. D'autres conflits n'apparaissent qu'au cours de la recherche.
Si aucun anneau ne produit un plan valide, rien n'est modifié : l'emploi du temps reste exactement tel qu'il était. Vous recevez l'un de deux messages, qui ne disent pas la même chose.
- Ce déplacement est impossible avec les règles actuelles. Ce message n'apparaît que si le dernier anneau, où tout est libre, a été prouvé infaisable. Le créneau cible entre en conflit avec des heures fermées ou une règle stricte ; c'est là qu'il faut chercher.
- Ce déplacement n'a pas pu être résolu dans le temps imparti. Aucune violation de règle n'a été prouvée. Une réparation dispose d'environ 25 secondes au total, chacun des trois premiers anneaux étant limité à 8 ; un établissement très contraint peut épuiser ce budget. Réessayez, ou choisissez un créneau libre.
Nous séparons volontairement les deux : dire « cela enfreint une règle » quand la réponse honnête est « le temps a manqué » envoie les gens chercher une heure fermée qui n'existe pas. Pour le premier cas, voyez pourquoi un emploi du temps devient impossible.
Comment faire dans Bildena
- Mettez d'abord les faits à jour. Saisissez la nouvelle disponibilité de l'enseignant, pour que la grille sache quelles cellules sont désormais fermées.
- Faites glisser le cours. Déposé sur une cellule libre et valide, il se déplace simplement. Au-dessus d'une cellule occupée, la grille indique que le créneau est pris et que vous pouvez déposer pour déplacer quand même.
- Lisez la confirmation. Elle apparaît sous forme de carte dans la conversation avec l'assistant, liste les cours qui occupent ce créneau et précise que seuls ces cours — et si nécessaire les autres cours des mêmes enseignants et classes — seront replacés.
- Confirmez. À la fin de la réparation, vous voyez combien d'heures de cours ont été replacées et combien de secondes l'opération a pris.
Le cours que vous avez déplacé est marqué comme épinglé sur la grille. Si vous lancez ensuite une distribution depuis cette grille, le solveur le garde là où vous l'avez mis.
Chaque réparation est enregistrée dans le panneau Modifications comme « Déplacement forcé », avec l'étendue qu'a dû prendre l'onde. Vous pouvez afficher côte à côte l'emploi du temps avant et après, voir le cours que vous avez déplacé mis en évidence, et savoir quelles classes, quels enseignants et quelles salles sont concernés. Si une réparation ne vous convient pas, demandez à l'assistant d'annuler la dernière modification : les cours reprennent leurs créneaux précédents et aucune redistribution n'est lancée.
Quand une redistribution complète est le bon choix
La réparation est faite pour le cours de l'année. Il existe des moments où repartir de zéro vaut mieux.
- Entre deux périodes. Quand de nouveaux enseignements, de nouveaux groupes ou un nouveau rythme obligent de toute façon à réapprendre la semaine, il reste peu de stabilité à protéger.
- Quand le changement est structurel. Une nouvelle classe, un enseignant qui part avec un service complet, une réforme des horaires pour tout un niveau. Une onde qui doit couvrir la moitié de l'établissement est une redistribution sous un autre nom.
- Quand les réparations se sont accumulées. Chaque réparation vise « valide avec le moins de changements possible », pas « le meilleur possible ». Au bout d'un certain nombre, un plan recalculé peut être nettement meilleur.
Même dans ce cas, n'expérimentez pas sur l'emploi du temps en service. Créez une nouvelle distribution qui copie les définitions de l'actuelle, lancez le calcul dans celle-ci, puis décidez si le résultat justifie le bouleversement.
Communiquer le changement
Un emploi du temps réparé, c'est la moitié du travail. Les personnes dans l'onde doivent encore être prévenues.
- Prévenez les personnes concernées, et elles seules. Les classes et les enseignants listés pour la modification forment votre liste. Un « l'emploi du temps a changé » adressé à toute l'équipe pousse chacun à vérifier sa semaine pour rien.
- Dites ce qui bouge, d'où, vers où et à partir de quand. « 4e A : l'anglais passe du mardi 2e heure au jeudi 4e heure à partir de lundi prochain ; l'histoire-géographie passe au vendredi 1re heure » est un message. « Emploi du temps mis à jour en pièce jointe » est un devoir à la maison.
- Donnez la raison en une phrase. Un changement qui découle visiblement d'une vraie contrainte est bien plus facilement accepté.
- Regroupez les petits changements quand c'est possible. Deux réparations annoncées ensemble se digèrent mieux qu'une le lundi et une autre le mercredi.
Pendant l'essai gratuit, vous pouvez générer un emploi du temps avec vos propres données, faire glisser un cours sur un créneau occupé et voir dans le panneau Modifications exactement quels cours la réparation a déplacés — et lesquels elle a laissés tranquilles.