Guide d'utilisation
Modifié par Solu Admin le 2019/03/29 16:09
Guide de production d'un horaire avec le Solutionneur
Étapes dans GPI
- Créer la grille et les cadres
- Utiliser de préférence une seule grille, sauf lorsqu'une partie de l'école est sur un calendrier différent (ex : sur 5 jours au lieu de 9)
- Créer les cours
- Effectuer la saisie des choix de cours
- S'assurer d'avoir toutes les options dans les cours offerts
- Utiliser les priorités pour les préférences de cours à option
- Calculer le nombre de groupes prévu
- Créer la table des locaux
- Placer les champs d'enseignements
- Au besoin, ajouter des restrictions sur les classifications ou sur les cours
- Créer la table des intervenants
- Saisir les tâches
- Vérifier l'équilibre des tâches par rapport au nombre de groupes ouverts en tenant compte des groupes fusionnés ou des ateliers (une validation dans le Solutionneur peut faire la vérification pour vous).
- Spécifier le local préféré
- Pour l'ensemble des cours (local habituel 1 et 2)
- Pour chaque élément de la tâche
- Saisir les tâches
- Créer les patrons
Importer les données
- Utiliser un compte d'utilisateur en lecture seule, comme « access_gpi »
- Une seule grille peut être importée dans un fichier
- Sélectionner « Importer tout » à la première importation
- Si les groupes n'ont pas été créés dans GPI, il faut cocher l'option « Créer les groupes selon le nombre planifié »
- Si un horaire (complet ou partiel) est présent dans GPI, il faut cocher l'option « Lire l'horaire existant »
- Sauvegarder dans un nouveau fichier après une importation (activation de la sauvegarde automatique).
Procédure pour l'importation des données
Édition des contraintes
Rappel sur l'interface utilisateur
- Pour sélectionner des lignes une par une, cliquer en maintenant la touche « ctrl » enfoncée
- Pour sélectionner des lignes sur un intervalle, cliquer sur la première ligne, maintenir la touche « majuscule » enfoncée puis cliquer sur la dernière ligne à sélectionner
- L'ajout de contraintes peut se faire à l'aide du menu contextuel (clic droit)
- Le menu contextuel contient aussi des fonctions de navigation, permettant de passer d'un onglet à l'autre
- Les panneaux dans l'application peuvent être redimensionnés en tout temps et ils sont marqués par des pointillés.
Exclure les informations non pertinentes
- Les cours sans groupes ou sans inscription.
- Les cours de type « étude » ou « surveillance », qui ne suivent pas la même logique lors de la construction de l'horaire que les cours réguliers.
- Les élèves sans cours au choix de cours.
- Les intervenants sans tâche.
- Les locaux non disponibles pour l'enseignement (ex : corridor, bureau).
Réviser le nombre de groupes et les fusions
- Dans l'onglet « Cours », trier sur la colonne « Moy. Élève/Groupe »
- Lorsque 2 cours partagent au moins un groupe fusionné, ils ont une moyenne commune.
- Ex : INF401 : 1 groupe, 20 élèves et INF501 : 1 groupe, 5 élèves
- Si INF401-01 et INF501-01 sont fusionnés, la colonne « Moy. Élève/Groupe » indiquera 25 sur les 2 cours.
- S'assurer que la moyenne de chacun des cours soit réaliste. Puisque le chiffre prend en compte les fusions, il représente le nombre réel d'élèves qui seront assis dans les classes.
- Lorsque la moyenne est trop élevée, des groupes supplémentaires peuvent être créés depuis l'onglet « Cours », dans le sous-onglet « Groupe », avec le bouton « Ajouter un nouveau groupe » (en bas à droite).
- Lorsque la moyenne est trop faible, on peut fusionner des groupes existants.
- Pour créer un nouveau groupe fusionné, il est nécessaire d'utiliser (ou créer au besoin) un groupe dans chacun des cours. La fusion est appliquée sur deux groupes à l'aide du menu contextuel.
- Pour fermer un groupe, il suffit de l'exclure (menu contextuel).
Réviser la numérotation des groupes
- Utiliser l'outil « Importer contraintes d'un fichier existant » (importation des numéros de groupes) du sous-menu « Rétro-ingénierie » disponible dans le menu « Exécuter » si une grille bien numérotée est disponible.
- Dans l'onglet « Cours », consulter les numéros via le sous-onglet « Groupes ».
- Si les groupes ont été créés par le Solutionneur, les numéros commencent par 01 à chaque cours.
- Pour que la numérotation soit continue sur plusieurs cours différents (ex : MAT416, MAT418, MAT426, MAT436), sélectionner l'ensemble des cours et, à l'aide du menu contextuel, choisir « Renommer massivement les groupes ».
Vérifier le maximum d'élèves par groupe
- Dans l'onglet « Cours », trier sur la colonne « Max. Élève/Groupe ».
- Par défaut, la colonne « Max. Élève/Groupe » contient la valeur la plus grande, entre « Max.Dépassements » et « Moy. Élève/Groupe ».
- Si le maximum calculé est plus élevé que souhaité (ex : un cours d'option avec une moyenne de 38) on peut spécifier une valeur plus basse en double-cliquant sur la valeur. On créera cependant au moins autant de rejets que l'on a réduit un tel maximum.
- Les valeurs spécifiées par l'utilisateur apparaissent en gras.
- Pour retourner à la valeur par défaut, il faut supprimer la valeur saisie.
- Le Solutionneur assigne toujours à 100%. Le maximum spécifié est donc une contrainte forte qui ne sera jamais dépassée. Si le maximum d'élèves par groupe est inférieur ou égal au maximum pour dépassements, il n'y aura jamais de dépassements dans ce groupe. Toutefois, on peut spécifier au logiciel de ne pas tenir compte des codes de difficulté dans son assignation en décochant la case « Forcer pondération » dans la fenêtre « Paramètres de la grille » accessible depuis le menu « Fichier ». Dans ce cas, il est possible qu'il y ait des dépassements pondérés.
- Il faut tenir compte du nombre moyen d'élèves pondérés dans l'ajustement des maximums si on prévoit utiliser l'assignation avec les pondérations (activée par défaut).
Vérifier le nombre de périodes prévues pour les élèves
- Dans l'onglet « Élève », trier sur la colonne « Nb. Périodes Prévues ».
- Un élève ne peut être inscrit à plus de périodes que le nombre de périodes dans le cadre (ex : 36 pour un 9x4). Les conflits d'horaire ne sont pas tolérés et rendent le traitement impossible.
- On peut retirer un cours au choix de cours d'un élève par le sous-onglet « Choix de cours », dans la colonne « Sélection ».
- La colonne « Sélection Originale » contient la valeur originale importée de GPI et est présente à titre indicatif.
- Si le choix de cours d'un élève est incomplet (ex : < 36 périodes), il est possible d'ajouter un cours en cochant la colonne « Sélection » sur un cours offert.
- Pour afficher tous les cours offerts, aller dans le sous-onglet « Choix de cours » et cocher « Afficher tous les cours ».
- Pour ajouter un cours offert, utiliser le menu déroulant dans le bas du sous-onglet « Choix de cours ».
- Le nombre de périodes prévu tient compte des cours sur plusieurs semestres. Si un élève est inscrit à 30 périodes sur le semestre 1 et à 36 sur le semestre 2, la valeur indiquée sera « 30,36 ».
Vérifier les groupes préassignés
- Dans l'onglet « Élève », sous onglet « Choix de cours ».
- La colonne « préassigné » est présente à titre indicatif. Pour que la contrainte soit respectée, il faut que le groupe soit sélectionné et que la colonne « FIXE » soit cochée. Les préassignations à des groupes qui n'existent pas ne seront jamais respectées.
- Si les groupes ont été créés dans GPI, le Solutionneur fixe automatiquement, à l'importation, les groupes préassignés aux élèves.
- Si les groupes ont été créés par le Solutionneur, il est possible de fixer massivement les groupes préassignés via le menu « Exécuter », sous-menu « Rétro-ingénierie », fonction « Fixer groupes préassignés ».
Ajouter les patrons
- Les patrons sont utilisés pour faire en sorte que les élèves se suivent dans certaines matières.
- Il est préférable de ne pas y placer les cours optionnels lorsque ceux-ci sont sur plusieurs patrons.
- Dans l'onglet « Groupes », la colonne « Patron » indique le ou les patrons auxquels font partie chaque groupe.
- Pour créer un nouveau patron, sélectionner chacun des groupes (avec touche « ctrl » enfoncée) et faire « Créer nouveau patron » à l'aide du menu contextuel.
- On peut aussi modifier les patrons depuis l'onglet « Patrons ».
- Vérifier que la case « Restr. Assignation » est cochée pour les patrons que l'on désire appliquer. Cette case à cocher a pour effet de les désactiver.
Placer les motifs
- Dans l'onglet « Cours » la colonne « Motif » indique le type de disposition à utiliser à l'horaire.
- Le motif « Régulier » signifie l'utilisation des codes d'agencements complets (ex: groupe de 4 périodes placés en A, B, C, ...).
- Il est recommandé de se limiter à des motifs « Régulier », sauf lorsque absolument nécessaire (ex: concentration sport).
- Un motif comme « 2 Pér. Consécutives » brisera les codes d'agencements pour atteindre la disposition souhaitée.
- Le motif « Ignoré » signifie que les codes d'agencements pourront être brisés, si nécessaire, pour respecter les motifs ou les périodes fixées à d'autres groupes.
- Dans l'onglet « Groupes » il est possible de redéfinir le « Motif » s'il est différent de celui du cours.
Définir les super blocs
- Dans l'onglet « Groupes » aller au sous-onglet « Super blocs ».
- Un super bloc permet de placer 2 groupes ou plus dans un bloc de plus grande taille (ex: Histoire 3 périodes + Géographie 3 périodes placé comme un groupe de 6 périodes).
- Le super bloc fait respecter un motif sur l'ensemble des périodes des groupes qu'il contient.
- Un motif « Régulier » assure qu'il n'y aura pas 2 périodes dans une même journée.
- Un motif « 2 Pér. Consécutives » fera en sorte que les groupes se suivront sur la grille horaire (ex: Histoire en 1re période suivi de Géographie en 2e période pour au moins 1 journée).
- Les élèves des groupes placés dans un super bloc doivent être les mêmes.
- Il est possible d'ajouter une contrainte « Même Intervenant » ou « Même Local » pour l'ensemble des groupes du super bloc.
- Les super blocs sont aussi utilisés pour associer les groupes d'un cours Fictif.
Placer les sections
- L'onglet « Sections » permet de créer des sections et de consulter le cadre associé.
- La majorité des écoles n'utilisent que la section par défaut.
- Si l'école fonctionne avec 2 périodes de dîner, il est nécessaire d'avoir 2 cadres et un minimum de 2 sections.
- Chaque cours doit être associé à une section, à laquelle est associée une période de dîner.
- Dans l'onglet « Cours », on peut assigner massivement une section en sélectionnant une liste de cours (clique avec « ctrl » ou « majuscule » enfoncé) et en utilisant le menu contextuel et « Assigner section ».
Vérifier les locaux possibles
- Dans l'onglet « Locaux », les restrictions sur les locaux tirés de GPI sont présentées et peuvent être édités.
- L'onglet « Cours », sous onglet « Locaux possibles » contient les locaux autorisés pour chaque cours.
- Par défaut, le contenu de « Locaux possibles » est calculé en fonction du champ d'enseignement et autres contraintes de GPI.
- On peut restreindre les locaux disponibles pour un cours, en cochant « Sélection personnalisée ».
- Les « Locaux possibles » agissent comme une contrainte forte, c'est-à-dire que le Solutionneur ne sera pas autorisé à explorer des solutions dans lesquelles un des locaux de la liste n'est pas disponible.
- Pour s'assurer de bons résultats, la liste des locaux ne doit pas être trop restrictive. Cette liste doit représenter les contraintes fortes réelles (ex : local aménagé spécifiquement pour un cours).
- Les préférences de locaux des intervenants sont dans l'onglet « Intervenants », sous-onglet « Préférences locaux ».
- Utiliser l'outil « Importer contraintes d'un fichier existant » (locaux possible des cours) du menu « Rétro-ingénierie » disponible dans le menu « Exécuter » pour récupérer les locaux possibles pour les cours d'un autre fichier.
Vérifier l'utilisation des locaux
- Dans l'onglet « Locaux », trier par la colonne « Moyenne Périodes / Local »
- Le nombre de périodes pour un local ne devrait jamais dépasser le nombre de périodes de la grille (ex:36)
- Sélectionner un local avec un nombre de périodes trop élevé et voir sous onglet « Cours possibles »
- Ajouter des locaux possibles aux cours de la liste pour faire diminuer la « Moyenne Périodes / Local »
Intégrité des contraintes
- Depuis le menu « Exécuter », sous-menu « Validation », fonction « Intégrité des contraintes ».
- Suivre les indications et, au besoin, consulter l'aide en ligne pour les détails sur chacun des messages.
Équilibre des groupes et des tâches
- Dans l'onglet « Intervenants », sous-onglet « Tâche », chaque ligne représente un groupe prévu à l'intervenant.
- Si la tâche de l'intervenant comporte un conflit volontaire, les groupes doivent être fusionnés et une seule tâche doit être présente pour les 2 groupes.
- Dans « Intégrité des contraintes », la validation « balancement des groupes / tâches » ne doit pas afficher d'erreur pour que tous les groupes aient un intervenant.
- La validation compte le nombre de groupe dans l'onglet « Groupes » et le nombre de lignes dans l'onglet « Intervenants », sous-onglet « Tâche ». Ces deux compteurs doivent être égaux pour chaque cours.
- En fonction des messages de la validation, ajouter ou retirer des tâches aux intervenants concernés.
- Au besoin, on peut utiliser l'outil de planification des tâches accessible via le menu « Exécuter », fonction « Définir tâches des intervenants » pour visualiser des scénarios d'assignation de groupes aux intervenants. En triant les groupes par intervenant, on peut identifier les groupes orphelins. En triant sur le nombre de périodes des intervenants, on peut identifier les tâches incomplètes.
Lancement du Solutionneur
Les zones
- Accessible via le menu « Exécuter », fonction « Lancer le Solutionneur », onglet « Zones ».
- Les zones permettent de diviser les élèves et les groupes en plusieurs ensembles pouvant être traités séparément. Elles sont calculées en fonction des similarités des choix de cours et correspondent généralement aux classifications.
- La colonne « Mode » indique comment traiter chacune des zones. Par défaut, on peut placer toutes les zones à « Régulier ».
- Les zones non sélectionnées seront ignorées dans le processus.
Modèle de disposition
- Dans l'onglet « Disposition », sélectionner un modèle puis cliquer sur « Calculer dispositions ». Choisir le modèle en fonction des dispositions affichées. Les résultats peuvent varier en fonction du format (9x4, 10x4, 15x5...) et des particularités de l'école.
- S'assurer que le modèle sélectionné génère des codes d'agencements valides pour l'ensemble des groupes.
Lancement
- Dans l'onglet « Lancement », sélectionner la stratégie 3 pour traiter le régulier.
- Le « Temps maximum par solution » indique le temps alloué à la génération d'un horaire. Le processus pourra consommer une dizaine de minutes de plus, car des optimisations supplémentaires sont appliquées à la fin du traitement.
- Le Solutionneur ne s'arrête pas automatiquement, mais générera plutôt une solution par quantité de temps spécifiée. Après l'expiration du délai, le Solutionneur recommence depuis le départ la confection d'un nouvel horaire et ne s'arrête que lorsqu'on lui demande.
Pour obtenir de meilleures solutions
Mode fermé et mode régulier
- Pour beaucoup d'écoles, le fait de lancer le Solutionneur en mode régulier sur l'ensemble des zones suffit pour obtenir de bonnes solutions.
- Lorsqu'il y a peu de choix de cours différents sur une zone, le mode « Fermé » peut aussi être utilisé. Le mode fermé utilise un algorithme création des groupes d'élèves avant l'assignation des groupes à l'horaire versus un processus simultané dans le cas du mode régulier.
- Le mode « Fermé » est donc surtout utilisé lorsque des patrons ont été spécifiés et nécessite l'utilisation d'une stratégie de résolution adaptée comme « Horaire, Solutionneur version 4 » ou « Horaire, Solutionneur version 5 ». La version 5 est la plus sophistiquée, mais est à ce jour encore en développement, donc un peu moins stable que la 4. On peut donc essayer d'abord la stratégie 5 et utiliser la version 4 si la précédente ne permet pas d'obtenir de solutions valides.
- La stratégie d'optimisation « Horaire, Solutionneur version 3 » ne traite que les zones en mode « Régulier » et ignore les autres. Les patrons sont tout de même respectés par cette stratégie, même si les autres stratégies sont mieux adaptées à ce contexte. L'avantage de la version 3 est qu'elle est polyvalente et permet en général de traiter toute une école en une seule passe.
Équilibrage des groupes
- Pour vérifier le l'équilibre du nombre d'élèves des groupes, dans la fenêtre « Solutionneur », onglet « Solutions », sous-onglet « Groupe Hor. », il faut trier par la colonne « Pct. Occupé ». Il s'agit du pourcentage de la capacité maximale en nombre d'élèves du groupe qui est utilisée. Si ce nombre est très différent pour plusieurs groupes d'un même cours, un bon équilibre n'a pas pu être atteint.
- Lorsque le nombre de rejets est élevé (ex : plus de 15 sur un niveau) il est normal que les groupes soient déséquilibrés puisque beaucoup de sièges ne sont pas occupés. Il est alors nécessaire de travailler à réduire le nombre de rejets avant tout.
- Si le maximum est beaucoup plus élevé que la moyenne (ex : maximum de 32 lorsque la moyenne est de 15), il est possible de spécifier un maximum plus bas (ex : 20) pour empêcher le Solutionneur d'explorer des scénarios ou un groupe serait trop rempli. Pour ce faire, on peut redéfinir la valeur de la colonne « Max. Élève/Groupe » dans la fenêtre « Éditeur », onglet « Cours ».
Équilibrage des sexes
- Le Solutionneur optimise l'équilibre entre le nombre de garçons et de filles lors de l'assignation des élèves dans les groupes.
- L'équilibre des sexes est moins prioritaire que les rejets et les dépassements, c'est-à-dire qu'un déséquilibre à ce niveau sera toléré s'il permet moins de dépassements. Le Solutionneur permet une certaine latitude quant à l'écart entre le nombre de garçons et de filles sans pénaliser la solution, mais peut aussi le limiter à une valeur maximale.
- Pour vérifier l'équilibre des sexes, dans la fenêtre « Solutionneur », onglet « Solutions », sous-onglet « Groupe Hor. », il faut trier par la colonne « Diff. Équart Sexes ». Il s'agit de l'écart entre le nombre réel de filles et le nombre prévu (en fonction des inscriptions).
- « Diff. Équart Sexes» devrait être le plus près de 0. Un écart de moins de 8 est généralement tolérable.
- Cette donnée doit être surveillée et peut être utilisée pour disqualifier une solution.
- Si l'école comporte des cours à tendance non mixte (ex: football et danse) et qu'un débalancement est remarqué dans la plupart des solutions, il peut être bénéfique de placer des contraintes « Même temps » entre les groupes de ces cours.
Exporter les données
- Valider l'horaire
- Validation à l'aide de l'outil de vérification de l'intégrité de l'horaire du menu démarrer
- Validation manuelle des contraintes particulières
- Vérifier que toutes les données qu'on ne veut pas explorer vers GPI sont exclues
- Vérifier les différences entre les choix de cours dans le Solutionneur et les choix de cours dans GPI à l'aide de l'outil de vérification des différences avec GPI du menu fichier
Procédure pour l'exportation vers GPI
Bonnes Pratiques
- Sauvegarder souvent et donner des noms significatifs aux fichiers
- Ex : date, stratégie testée, grille
- La première sauvegarde active la sauvegarde automatique
- Exclure toutes les données qui n'ont pas à être traitées par le Solutionneur
- Locaux inutilisables, élèves sans choix de cours...
- Adaptation scolaire si l'horaire est fait manuellement
- Locaux inutilisables, élèves sans choix de cours...
- Exécuter les validations
- L'intégrité des contraintes lorsque l'on modifie ces dernières, avant de lancer le Solutionneur.
- L'intégrité de l'horaire avant d'exporter vers GPI ou lors de l'analyse d'une solution.
- Prioriser les contraintes
- Ce ne sont pas toutes les contraintes qui ont la même importance et il est très rare que le non-respect d'une contrainte « superficielle » entraîne le rejet de l'horaire.
- Il est important d'établir la priorité des contraintes avant de les manipuler.
- Vérification systématique des contraintes
- Ajouter les contraintes une à une (type par type), selon leur importance, des plus importantes en premier aux moins importantes en dernier.
- Arrêter le processus lorsqu'il y a trop de contraintes rendant le problème non réalisable
- Ajouter toutes les contraintes et retirer itérativement les moins importantes
- Arrêter le processus aussitôt que le problème devient réalisable.
- Ajouter les contraintes une à une (type par type), selon leur importance, des plus importantes en premier aux moins importantes en dernier.
- Laisser le logiciel gérer le problème à résoudre
- Dans la majeure partie des cas, il est inutile d'ajouter des contraintes redondantes.
- Utiliser des patrons et des préassignations (parfois nécessaire)
- Il est la plupart du temps inutile de spécifier les contraintes implicites
- Il faut que les options soient en chandelle pour que les élèves passent
- Laisser le logiciel libre lors d'un premier essai, et le guider s'il y a lieu pour corriger des contraintes non spécifiées.
- Dans la majeure partie des cas, il est inutile d'ajouter des contraintes redondantes.
- Favoriser les solutions avec un faible nombre de rejets
- Lorsque le nombre de rejets est élevé, les autres statistiques comme les dépassements ou le nombre de jours pleins des intervenants sont biaisés ou carrément invalides. Pour preuve, il est très facile de produire un horaire parfait pour les intervenants et sans dépassements si on n'a pas de limite quant au nombre de rejets.
- Les objectifs poursuivis (optimisés) par le logiciel sont contradictoires, donc en en favorisant un, on détériore souvent les autres.
- Il faut viser normalement moins de 10 rejets par niveau. Un nombre supérieur indique probablement un problème (une concentration qui ne passe pas en raison d'une tâche mal planifiée par exemple)
- Lorsque le nombre de rejets est élevé, les autres statistiques comme les dépassements ou le nombre de jours pleins des intervenants sont biaisés ou carrément invalides. Pour preuve, il est très facile de produire un horaire parfait pour les intervenants et sans dépassements si on n'a pas de limite quant au nombre de rejets.
- Éviter les contraintes trop complexes, difficiles à comprendre dans leur ensemble et quasi impossibles à diagnostiquer
- préassignations (contraintes fortes, impossibles à violer)
- Peuvent causer des conflits difficiles à détecter comme un élève qui a un choix de cours incompatible avec le reste des élèves et empêchera le solveur de placer convenablement un groupe.
- Un groupe vide est un symptôme de ce conflit.
- Patrons trop complexes (contraintes fortes, impossibles à violer)
- Faire attention aux patrons qui ont beaucoup plus de périodes que la grille.
- Vérifier s'il est nécessaire d'inclure toutes les options possibles et les conséquences de ne pas le faire. Par exemple, est-il nécessaire de restreindre le décloisonnement dans les options?
- Privilégier des patrons simples et potentiellement incomplets (28 périodes sur 36)
- Faire attention aux patrons mutuellement incompatibles (groupes dans deux patrons).
- Faire attention aux patrons contenant plusieurs profils. Il faut que chacun des profils contenus dans un patron soit complet.
- préassignations (contraintes fortes, impossibles à violer)