Étape 7 — Génération automatique

Une fois les séances créées, vous les positionnez sur la grille. Construire un EDT est en pratique un cycle, pas un geste unique :

  1. on place quelques séances à la main — pour ancrer des immuables ou verrouiller des contraintes fortes (interventions datées, examens, calages) ;
  2. on génère (tout ou partie) pour que l'algorithme place le reste sous contraintes ;
  3. on ajuste en marge — corriger un cas particulier, déplacer une séance, changer d'avis ;
  4. et ça peut reboucler : on régénère au fil de l'eau (séances ajoutées, ou — en mode calendrier — par intervalles de dates, par lots de classes ou de campus).

On peut aussi tout faire 100 % à la main, sans solveur. Le positionnement manuel (placer, déplacer, verrouiller, une à une ou en lot) a sa page dédiée : Positionnement manuel. Pour le flux d'ensemble, voir Vue d'ensemble du module.

Cette page couvre la génération automatique.

La génération place les séances, elle ne les crée pas

Le solveur travaille sur des séances qui existent déjà. Il leur cherche un créneau et une salle. Les professeurs, eux, sont ceux que vous avez affectés au cours : le solveur ne les remplace pas et n'en désigne pas d'autres, il refuse simplement un créneau où ils ne sont pas libres.

D'où l'ordre à respecter :

  1. déclarez la matière et son volume pour chaque classe : c'est le cours, une ligne de volume horaire ;
  2. créez les séances à partir de ce volume, sur l'étape Répartir les heures et créer les séances de cours — ce sont elles que le solveur place ;
  3. puis générez.

Ouvrir l'onglet de génération avant d'avoir créé les séances mène à un bouton inerte : il n'y a rien à placer, et l'écran de vérification affiche Aucune séance définie.

Pourquoi le bouton de génération est grisé

Le bouton reflète le diagnostic affiché juste au-dessus, sur l'onglet Vérification. Trois situations :

  • Aucune alerte, ou seulement des avertissements — le bouton reste actif, avec un aspect atténué. Un avertissement (jaune) signale un risque, pas une impossibilité ; le bleu est informatif.
  • Une alerte bloquante (rouge) — le bouton principal est désactivé. Le calcul reste lançable par Plus d'options, à vos risques et périls : le solveur ne verra pas le problème que l'alerte signale, il produira quand même un EDT, et c'est à vous d'en assumer le résultat. Corriger l'alerte est préférable.
  • Une alerte rédhibitoire — le bouton et le menu d'options sont désactivés. Il manque une donnée sans laquelle le calcul n'a aucun sens : aucune séance, aucune classe utilisable (une classe l'est quand elle a un site et des séances), ou un site utilisé dont la grille horaire n'est pas définie. Un établissement où aucun site n'a encore été créé tombe dans ce cas : sans site, aucune classe n'est utilisable.

La statistique Nombre de classes configurées passe en rouge dans ce dernier cas.

Chaque alerte est nommée en clair dans la liste, avec la classe, le site ou le professeur concerné. Pour l'échelle de gravité et sa lecture, voir Conflits et diagnostic ; pour le dépannage d'une génération qui n'aboutit pas, Diagnostiquer une génération qui échoue.

Disponibilité

La génération automatique est disponible sur les EDT hebdomadaires, cycliques et calendrier. En mode calendrier, les séances sont placées sur des dates réelles et les options peuvent limiter la plage de dates à générer.

Préparation

Avant de cliquer Générer EDT :

  • déroulez l'onglet Génération (intitulé Vérification sur un EDT calendrier) pour vérifier les statistiques globales,
  • corrigez les alertes bloquantes (rouges) — voir la section précédente sur le bouton grisé,
  • relisez les avertissements (jaune) — ils ne bloquent pas mais signalent un risque (disponibilités trop contraignantes, capacité limite, etc.).

L'écran indique aussi :

  • nombre de séances créées vs séances positionnées,
  • volumes horaires saisis vs services horaires des professeurs,
  • groupes affectés à au moins un cours (pour repérer les groupes oubliés ou inutilisés).

Lancement

Cliquez sur Générer EDT. Omniscol lance un environnement de calcul dédié et parallélisé. La durée dépend de la taille de l'EDT, du nombre de contraintes et des options choisies. Il n'y a pas de file d'attente à gérer côté école ; l'initialisation prend souvent autour d'une dizaine de secondes avant que le calcul commence réellement.

Le calcul est plafonné à vingt minutes, mais c'est en pratique bien au-delà du nécessaire : un EDT d'environ 200 cours répond souvent en une vingtaine de secondes — l'algorithme est quasi instantané, c'est surtout le démarrage de la machine qui pèse — et ~600 cours en une minute environ. Pour un très gros établissement qui approcherait ce plafond, l'équipe Omniscol peut augmenter la puissance de la machine de calcul, sur demande.

Options de génération

Par défaut, la génération place toutes les séances créées et non positionnées. Elle peut aussi déplacer des séances déjà positionnées si cela améliore l'EDT. Les séances verrouillées gardent leur position.

Le menu d'options permet notamment de :

  • gérer les salles avec trois choix : assignation optimisée par défaut, vérification uniquement, ou ignorance complète des salles ;
  • sélectionner seulement certaines classes ou certaines matières ;
  • restreindre un EDT calendrier à une fenêtre de dates cible ;
  • ignorer les salles déjà assignées ou les positionnements actuels ;
  • assigner uniquement les salles sans recalculer tout le placement ;
  • lancer une génération rapide sans optimisation ;
  • autoriser le placement flexible sur les sous-créneaux de la grille horaire quand l'EDT utilise des sous-créneaux.

Les paramètres avancés d'optimisation permettent aussi de réduire les trous, éviter deux séances de la même matière le même jour, répartir les séances, fixer des minima ou maxima d'heures, ou choisir le nombre de jours de présence des professeurs. Les usages varient selon les pays : en France, certains établissements cherchent à réduire le nombre de jours de présence des professeurs ; dans d'autres contextes, on peut au contraire préférer répartir ces jours, par exemple pour organiser d'autres missions sur site.

Options spécifiques au mode calendrier

En mode calendrier, les options avancées peuvent limiter la génération à une fenêtre de dates cible plus courte que la plage totale de l'EDT. C'est utile pour générer seulement une partie de l'année : test sur un mois, construction progressive d'un semestre, ou reprise d'une période déjà préparée.

L'autre option importante est le compactage des journées pour les classes. Par défaut, le solveur cherche plutôt un équilibre sur les jours disponibles ; si vous générez seulement une partie des séances de l'année, ce comportement peut étaler artificiellement les cours. Le compactage permet de demander un regroupement :

  • en début de fenêtre ;
  • en fin de fenêtre ;
  • sans préférence de début ou fin, mais en gardant les journées aussi compactes que possible.

Comment la génération travaille

Comprendre la logique du solveur aide à anticiper ce qu'il placera, ce qu'il sacrifiera, et comment l'orienter. Il poursuit deux objectifs, dans cet ordre :

  1. Tout faire entrer — la priorité absolue : positionner toutes les séances en respectant les contraintes dures.
  2. Optimiser la qualité — une fois que tout rentre, réduire les trous, lisser les journées, honorer les préférences.

Il part d'un état propre (les séances verrouillées gardent leur place, les autres sont rejouées) et place de la séance la plus difficile à la plus facile. La difficulté tient surtout à l'étroitesse des contraintes : un cours dont le professeur n'est disponible qu'une après-midi par semaine, ou un bloc de quatre heures à caser d'un seul tenant, passe en tête. À difficulté égale, il alterne les matières et traite les plus rares avant les plus courantes, pour répartir équitablement les chances de chacune.

Quand tout ne rentre pas : le sacrifice

Si l'EDT est trop contraint pour tout caser, le solveur ne renonce pas : il choisit le plus petit ensemble de séances à laisser de côté pour que le reste tienne, puis optimise cet EDT partiel. Les séances sacrifiées restent dans la barre des post-its à placer. Comme le tri a priorisé le plus dur et le plus rare, ce sont plutôt des séances faciles et nombreuses qui cèdent : la 5ᵉ heure d'une matière à gros volume avant l'unique heure d'une matière rare.

Vous gardez la main sur ces arbitrages : verrouillez les séances qui ne doivent jamais bouger — placées en priorité, elles ne sont pas sacrifiées — et détendez la sur-contrainte (créneaux ouverts, disponibilités) là où c'est possible, pour que l'ensemble rentre.

Contraintes dures et contraintes souples

Toutes les contraintes ne se valent pas :

  • Dures — jamais violées : l'occupation (un professeur, une classe, un groupe, une salle ou une ressource ne sert pas deux fois au même moment), les plages marquées Indisponible (en noir) sur un professeur, une classe, une salle, une matière ou un groupe, l'absence de salle ou de ressource libre sur le créneau, les jours fermés, les positions verrouillées et les alignements.
  • Souples — tout le reste, que le solveur peut enfreindre au prix d'une pénalité pour réussir à tout caser : les plages marquées Non souhaité (en rouge — à éviter, pas interdites) et les préférences d'optimisation (compacité, étalement, regroupement par jour…). Une contrainte de priorité élevée pèse plus lourd qu'une de priorité faible, mais aucune n'est bloquante. Le solveur tente aussi des assouplissements ponctuels (placement sur les sous-créneaux de la grille…) quand c'est le prix à payer pour ne sacrifier aucune séance.

Vérifier sans optimiser

L'option de génération rapide (sans optimisation) lance une passe allégée qui répond surtout à une question : est-ce que tout rentre ? Utile pour tester la faisabilité d'une configuration avant d'investir le temps d'une optimisation complète.

Résultat

  • Bannière verte : génération réussie. Les séances du périmètre demandé ont pu être positionnées et le résultat peut être inspecté.
  • Bannière rouge : aucune solution complète n'a été trouvée. Le meilleur EDT calculé reste visualisable et les séances non positionnées apparaissent dans la barre des post-its pour diagnostic.

Voir Diagnostiquer une génération qui échoue.

Consolider ou copier

Après une génération réussie, Omniscol propose deux options :

  • Consolider dans l'EDT en cours (le positionnement remplace l'existant).
  • Créer une copie (l'EDT actuel reste intact, le résultat optimisé devient un nouvel EDT).

Si vous prévoyez de re-générer plus tard (parce que vous construisez incrémentalement, par exemple), ne consolidez pas : sinon les séances déjà positionnées seraient des points de départ pour la nouvelle génération.

Verrouiller une séance avant de relancer une génération

Sur une séance déjà positionnée, utilisez le cadenas de position pour la verrouiller. La prochaine génération ne la déplacera pas mais ajustera les autres séances autour. Pratique pour ancrer les séances « immuables » (interventions extérieures fixées, examens datés, calages manuels…). Détails complets dans Verrouiller une séance : verrouillage en masse, effets sur le diagnostic (rouge → orange), comportement de l'algorithme.

Exporter un EDT en JSON

Le bouton exporte l'EDT courant uniquement au format JSON. Ce n'est pas l'export complet du compte documenté dans Import et export.

Cas typiques :

  • conserver une trace d'un brouillon ou d'un scénario avant suppression ;
  • archiver un état intermédiaire avant une réorganisation importante ;
  • transmettre cet EDT précis à l'équipe Omniscol dans le cadre du support.

Comme pour l'exportation complète du compte école en JSON, la réinjection n'est pas un usage standard librement accessible côté école.

Et ensuite

Étape finale : Publier (activer) un emploi du temps.

Procédure

Lancer une génération automatique

  1. La génération automatique positionne les séances sur la grille en respectant des dizaines de contraintes (disponibilités, capacités, alignements, spécialisations, alternances). Disponible sur EDT hebdomadaire, cyclique et calendrier.

  2. Vérifiez l'onglet Génération. Les statistiques globales y apparaissent : séances créées vs positionnées, volumes horaires saisis vs services des professeurs, alertes bloquantes (rouge), avertissements (jaune — préviennent sans bloquer).

  3. Corrigez les alertes rouges avant de lancer. Tant qu'il en reste, la génération ne peut pas démarrer — sauf à forcer via le menu "plus d'options", mais cela n'est pas recommandé. Les jaunes sont à arbitrer mais n'empêchent pas la génération.

  4. Réglez les options de génération si besoin : salles à assigner, vérifier seulement ou ignorer ; classes ou matières ciblées ; génération rapide sans optimisation ; ignorer les salles déjà assignées ou des positions actuelles. En mode calendrier, les options avancées permettent aussi de restreindre la fenêtre de dates générée et de compacter les séances en début de période, en fin de période ou sans préférence.

  5. Cliquez sur Générer EDT. Le traitement tourne en arrière-plan ; l'écran indique l'état de la génération et permet d'inspecter le résultat lorsqu'il est disponible.

  6. Sauvegardez quand la note vous convient. L'EDT est positionné. Étape suivante : passez en revue les éventuels conflits, ajustez à la main les cas particuliers (voir Positionnement manuel), puis publiez.

  7. Et ensuite : Publier (activer) un emploi du temps.

Voir aussi