1 / 21

AG41 – Printemps 2007 Réalisation d’un emploi du temps

Kilhoffer Steeve De-Melo Sébastien Mohr Alexandre. AG41 – Printemps 2007 Réalisation d’un emploi du temps. Plan. Choix du Langage de programmation. Nous avons choisi le C++ pour les raisons suivantes : Rapidité d’exécution Langage orienté objet Gestion des entrées – sorties performantes

danae
Download Presentation

AG41 – Printemps 2007 Réalisation d’un emploi du temps

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kilhoffer SteeveDe-Melo SébastienMohr Alexandre AG41 – Printemps 2007Réalisation d’un emploi du temps

  2. Plan

  3. Choix du Langage de programmation Nous avons choisi le C++ pour les raisons suivantes : • Rapidité d’exécution • Langage orienté objet • Gestion des entrées – sorties performantes • Bibliothèque STL • Conteneurs : vector, list • Iterators • Gestion des chaînes de caractères avancée

  4. Structure de Données

  5. Structure de Données • Remplissage de la classe Donnees • lUvs : Liste des UV (list) : Uvs.txt et Enseignements.txt • lEnseignants : Liste des enseignants (list) : Enseignants.txt • lSeances : Tableau des séances (vector) : Enseignements.txt • lEtudiants : Liste des étudiants (list) : Inscriptions.txt

  6. Structure de DonnéesCodage des Solutions

  7. Structure de DonnéesCodage des Solutions • Une population est composée de chromosomes : • Une liste de ChromEtudiants • Une liste de listes circulaires de ChromSeance

  8. Structure de DonnéesCodage des Solutions • une solution se caractérise par le codage des informations suivantes : • Les horaires de chaque séance • Code horaire dans les ChromSeances • Les groupes de cours, TD et TP auxquels sont affectés les étudiants • Pointeurs sur les ChromSeances correspondantes

  9. Structure de DonnéesCodage des Solutions • Codage des horaires : • codeSemaine : 0 pour A/B, 1 pour A, 2 pour B • codeJour : 0 pour Lun, 1 pour Mar… 5 pour Sam • codeHoraire : • Journée découpée en 11 tranches = Heures de début de séance possibles • 4 durées possibles : 1h, 2h, 3h, 4h • 1h -> 0 à 10 , 2h -> 11 à 21 , 3h -> 22 à 32 , 4h -> 33 à 43

  10. Algorithme génétiquePopulatioN Initiale • Au départ, génération d'un nombre de chromosomes très supérieur à la taille de la population prévue. • But : avoir une bonne population initiale (après sélection)

  11. Algorithme génétiqueOpérateur de Sélection • Principe : sélection des k meilleurs individus, complétés par des chromosomes pris au hasard parmi les restants • On revient à la taille ordinaire.

  12. Algorithme génétiqueOpérateur de Croisement • Les chromosomes présents sont regroupés par paires, puis croisés selon une certaine probabilité. • Création de deux nouveaux individus, par copie des parents puis modification en fonction des fitness partielles. Meilleurs caractères attribués au fils. • Particularité : les nouveaux individus ne remplacent pas les anciens mais se rajoutent à la liste.

  13. Algorithme génétiqueOpérateur de Mutation • Mutation des individus présents selon une probabilité. • Puis, mutations des caractères en fonction des fitness partielles associées • Par exemple, si une séance provoque beaucoup de conflits, son horaire aura de grandes chances d'être modifié.

  14. Algorithme génétiqueModification des paramètres • But : s'adapter aux situations de blocage • Si la fitness reste longtemps identique, on favorise les mutations et la sélection de mauvais chromosomes. • Dès la sortie du puits : retour aux paramètres initiaux.

  15. Algorithme génétiqueLes Fonctions d’Evaluations • Optimisation du calcul des fitness : on ne recalcule que ce qui est modifié • Un Chromosome contient 4 tableaux de fitness : • tabf1 : Fitness partielles de f1, taille = nombre de séances • tabf2 : Fitness partielles de f2, taille = nombre d’étudiants • tabf3 : Fitness partielles de f3, taille = nombre de séances • tabf4 : Fitness partielles de f4, taille = nombre d’enseignants • + 4 sommes partielles : f1, f2, f3, f4

  16. Algorithme génétiqueLes Fonctions d’Evaluations • Procédure de calcul des fitness : • Calculer toutes les fitness partielles des 4 fonctions de fitness de tous les Chromosomes de la 1ère génération, et les stocker dans les tableaux correspondants • Recalculer les fitness partielles des éléments modifiés par mutation • Procédure de calcul des fitness partielles : • f1 : lorsque le nombre d’étudiants affectés à un groupe change • f2 : lorsqu’un étudiant change de groupe et une séance change d’horaire • f3 : lorsqu’une séance change d’horaire • f4 : lorsqu’une séance change d’horaire

  17. Bilan • Difficultés rencontrées • Trouver une modélisation des données permettant une résolution optimale du problème • Les tentatives d’optimisations n’apportent pas toujours le résultat attendu • Améliorations possibles • Implémentation d’une recherche tabou • Optimisations des opérateurs en se basant d’avantage sur les fitness partielles

More Related