Contexte

À la rentrée 2020 s’achève la mise en place du nouveau baccalauréat, réforme ambitieuse lancée en 2018 qui redessine non seulement l’examen lui-même, mais aussi l’intégralité du parcours lycée sur trois ans. Dès septembre 2019, l’apparition d’emplois du temps particulièrement complexes en classes de première – tant générales que technologiques – a souligné la mise en tension du temps et de l’espace scolaires. Toutefois, il serait réducteur d’imputer cette complexité exclusivement à la réforme : elle résulte aussi de la multiplicité des vœux d’options et de la diversité des profils d’élèves, auxquelles s’ajoutent naturellement les impératifs de ressources humaines enseignantes.

Enjeux

Ce projet entend apporter une réponse intelligente et automatisée à cette double problématique :

  1. Génération dynamique des “barrettes”
    À partir des souhaits d’options et de plages horaires exprimés par chaque élève, l’outil construit automatiquement les groupes (ou “barrettes”) optimaux, garantissant à chacun la possibilité de suivre l’ensemble des enseignements choisis.
  2. Minimisation des conflits et respect des contraintes RH
    En intégrant les disponibilités et les obligations réglementaires des enseignants, le moteur d’ordonnancement limite au maximum les chevauchements d’emploi du temps et respecte les règles de charge de cours, de préparation et de surveillance.

Réalisations

Dans ce projet, nous avons tout d’abord modélisé les entités métier clés (élèves, enseignants, plages horaires, salles, options, etc.), en traduisant chaque élément du lycée en objets manipulables par l’algorithme. Nous avons ensuite formalisé l’ensemble des contraintes sous deux formes :

  • Contraintes dures (hard constraints), dont le non-respect rend toute proposition d’emploi du temps invalide (par exemple : un enseignant ne peut être à deux endroits à la fois).
  • Contraintes souples (soft constraints), qui n’induisent pas d’échec strict mais servent à pondérer et améliorer la qualité des solutions (préférences horaires, équité des répartitions, etc.).

Pour résoudre ce problème d’ordonnancement complexe, nous avons exploité le solveur Timefold, réputé pour son efficacité sur les plannings à grande échelle, et adapté ses heuristiques à nos spécificités métier. Enfin, nous avons mis en place une pipeline industrielle s’intégrant directement à la plateforme applicative existante : de l’ingestion des demandes à la génération automatique des emplois du temps, en passant par la gestion des versions et le monitoring continu, garantissant une mise en production fluide et une maintenance simplifiée.