Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Rapport Programme en C

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 9

INSTITUT SUERIEUR DE GENIE ELECTRIQUE DU BURKINA FASO

F i l i è r e : R é s e a u i n f o rm a t i q u e e t T é l é c o m m u n i c a t i o n

RAPPORT DE PROJET DE PROGRAMMATION EN C

REALISATION D’UNE APPLICATION DE


GENERATION AUTOMATIQUE DES
EMPLOIS DU TEMPS DE L’ISGE-BF

Présenté par :
PORGO ABDOULAZIZ
SAWADOGO Abigaël
SINON BOURHA-nOURDINE

Tuteur du projet : M. KOALA

Année Académique 2021-2022

1
SOMM
AIRE
Introduction
I. Description du problème des emplois du temps
II. Méthode et approches de résolution des emplois du temps
1. Les Méthodes hybrides
2. Approches de construction
2.1 La méthode descente
2.2 La méthode du recuit simule
III. Spécifications et de la conception détaillée
1. La liste des structures utiles pour le projet
2. La liste des fichiers de données utiles pour le projet
3. La liste des fonctions utiles pour réaliser le projet

IV. Problèmes rencontrés et solutions apportées


V. Les écarts par rapport au cahier des charges
VI. Le Bilan
Conclusions

Introduction

2
Pour toute l’institution soucieuse de rentabilité et d’organisation perfectionnée, élaborer
un emploi du temps est un élément essentiel et nécessaire. Que ce soit pour l’entreprise ou
l’école, il s’agit toujours de maitriser le fonctionnement de l’institution à travers le bon
emploi des ressources humaines notamment. Et cela est une tache autant ardue
qu’indispensable qui requiert l’emploi des outils informatiques. La réalisation d’un tel
système est devenue un choix incontournable pour l’automatisation des emplois du temps
dans le but de faire gagner plus d’heure de travail pour toutes parties d’une activité donnée.
En outre, l’objectif est plus ambitieux car il tend à fournir des solutions presque optimales et
rapides à toutes sortes de contraintes en vue aussi de bien accroitre la production de la
population que la qualité des services.
La difficulté de construire des emplois du temps réside dans la diversification des normes
et des problèmes posés par les utilisateurs ainsi que dans les caractéristiques propres à chaque
institution concernée. Dans le secteur éducatif et précisément celui universitaire,
l’accroissement de nombre d’étudiants et d’enseignants ainsi que le nombre restreint des
structures d’accueil imposent des contraintes que l’on doit gère et agencer. Ceci rend très
difficile de trouver une solution générale aux problèmes d’emploi du temps universitaire, ce
qui implique la nécessité et plus de recherche dans ce domaine. Car trouver un horaire
respectant toutes les contraintes n’est aisé même avec les approches proposées pour la
résolution informatique de ce problème.
Nous allons essayer, à travers ce rapport, de proposer une approche de résolution du
problème d’emploi du temps universitaires.
I. Description du problème des emplois du temps
Dans un institut éducatif comme ISGE – BF, un ensemble d’étudiants groupés sous une
structure hiérarchique (filières, promotions, sections, groupes, …) sont censés avoir un
ensemble d’enseignements qui se répètent périodiquement, chacun de ces enseignements
s’étend sur une durée de temps, dont l’unité élémentaire est la période.
Résoudre le problème de l’emploi du temps revient à affecter à chacun de ces enseignements
un nombre de périodes consécutives égal à la durée qu’il exige, un local dont le type et la
capacité sont convenables, et un enseignant apte à assurer le module concerné par
l’enseignement de façon à prévenir les conflits sur les enseignants, sur les étudiants et sur les
locaux..
Le problème de l’emploi du temps se présente sous différentes Formes, chacune étant
spécifique à l’environnement ou à l’institution y afférente. Dans notre cas, le problème de
l’emploi du temps étudié est celui de l’université (département d’informatique) où les
responsables pédagogiques ont besoin chaque année d’établir une nouvelle planification des
différentes promotions en essayant au mieux de satisfaire les contraintes « humaines » des
enseignants et des étudiants, les contraintes pédagogiques imposées par la progression des
enseignements et en tenant compte des contraintes « physiques » liées aux ressources
matérielles ( les locaux, les équipements etc…).
Le programme pédagogique de chaque formation est connu à priori. Ce programme précise
les modules à suivre, leurs volumes horaires et quelques informations pédagogiques
(répartition en cours, travaux dirigés, travaux pratiques etc…). Selon les besoins
pédagogiques et les conditions physiques des ressources, chaque formation est structurée en

3
promotions, en sections, et en groupes, le nombre d’étudiants par groupe en travaux dirigés
(TD) est limité à 30 pour préserver un meilleur suivi des étudiants. Les enseignants
interviennent selon leur discipline et leur domaine de compétence. Administrativement, les
enseignants doivent assurer un nombre minimal d’heures qui est défini dans leur statut.
Lorsqu’un enseignant est chargé d’un enseignement donné, il est tenu d’en respecter le
volume horaire prévu par le responsable pédagogique. En cas d’absence, l’enseignant doit
prévoir des séances de rattrapage. Il doit donc connaître précisément la disponibilité des
ressources de sa séance. Cette organisation garantit que tous les étudiants qui suivent une
même formation auront eu le même volume horaire d’enseignement.
En résumé, les données du problème à résoudre sont constituées par :

1. Un ensemble de créneaux horaires étalés sur une semaine de cinq jours, du dimanche
au jeudi. La durée d’une période est d’une heure trente minutes.
2. Un ensemble de promotions ou groupes d’étudiants.
3. Un ensemble de cours, TD ou TP à programmer dans la semaine.
4. Un ensemble de locaux (salles, amphis et labos).

II. Méthode et approches de résolution des emplois du temps


Un très grand nombre de méthodes de résolution existent en RO et en IA pour l’optimisation
combinatoire et l'affectation sous contraintes De manière générale, les méthodes de résolution
suivent quatre approches différentes pour la recherche d'une solution : l'approche de
construction, l'approche séquentielle, L’approche de voisinage et l'approche d'évolution.
1. Les Méthodes hybrides
Le mode d'hybridation qui semble le plus fécond concerne la combinaison entre les méthodes
de voisinage et l'approche d'évolution. L'idée essentielle de cette hybridation consiste à
exploiter pleinement la puissance de recherche de méthodes de voisinage et de recombinaison
des algorithmes évolutifs sur une population de solutions. Un tel algorithme utilise une ou
plusieurs méthodes de voisinage sur les individus de la population pendant un certain nombre
d'itérations ou jusqu'à la découverte d'un ensemble d'optimum locaux et invoque ensuite un
mécanisme de recombinaison pour créer de nouveaux individus. La recombinaison doit
impérativement être adaptée au problème traité. Les algorithmes hybrides sont sans doute
parmi les méthodes les plus puissantes. Malheureusement, le temps de calcul nécessaire peut
devenir prohibitif à cause du nombre d'individus manipulés dans la population. A cet effet,
une solution pour ce problème est la parallélisation de ces algorithmes sur des machines
parallèles ou sur des systèmes distribués. Nous venons d'évoquer l'hybridation d’un
algorithme évolutionniste avec des méthodes de voisinage. Il est également possible
d'hybrider d'autres types d'approches, par exemple une heuristique gloutonne et une méthode
de voisinage ou un algorithme évolutif.
2. Approches de construction
L'approche de construction est probablement la plus ancienne et occupe traditionnellement
une place très importante en optimisation combinatoire et en intelligence artificielle.
2.1 Approche séquentielle
Les méthodes séquentielles sont des algorithmes de recherche itératifs qui se déplaçant pas à
pas d’une solution à une autre. Voici quelques méthodes séquentielles :

4
2.2 La méthode descente
Méthode descente ou La recherche locale, est une méthode très ancienne, Elle manipule des
configurations complètes durant la recherche. Donc est un processus itératif fondé sur deux
éléments essentiels : un voisinage et une procédure exploitant le voisinage.
Un algorithme de recherche locale part d’un solution candidate et la déplace de façon
itérative vers une solution voisine. Cette méthode est applicable seulement si une notion de
voisinage sont définie sur l’espace de recherche. Par exemple, le voisinage d’un arbre
recouvrant est un autre arbre recouvrant qui diffère seulement par un nœud.
Habituellement, chaque solution candidate a plus d’une solution voisine ; le choix de celle
vers laquelle se déplacer est pris en utilisant seulement l’information sur des solutions
voisines de la solution courante, d’où le terme recherche locale. Quand le choix de la solution
voisine est fait uniquement en prenant celle qui maximise le critère.
Le critère d’arrêt de la recherche locale peut être une limite en durée. Une autre possibilité est
de s’arrêter quand la meilleure solution trouvée par l’algorithme n’a pas été améliorer depuis
un nombre donnée d’itérations. Les algorithmes de recherche locale sont des algorithme sous-
optimaux puisque la recherche peut s’arrêter alors que la meilleure solution trouvée par
l’algorithme n’est pas la meilleure de l’espace de recherche. Cette situation peut se produire
même si l’arrêt est provoqué par l’impossibilité d’améliorer la solution courante car la
solution optimale peut se trouver loin du voisinage des solutions parcourues par l’algorithme.
Avantages
 L’avantage de cette méthode est sa grande simplicité de mise en œuvre la plupart du
temps.
 Il est important de remarquer également l’importance du choix de la fonction de
voisinage N : un minimum local pour une certaine structure de voisinage ne l’est pas
forcément pour une autre. C’est d’ailleurs ce constat qui est à l’origine de la méthode
dite de recherche par voisinage variable, qui repose sur la construction de solutions s
parmi plusieurs voisinages Ni, plutôt que dans un seul.
 La descente s’arrête quand tous les voisins candidats sont moins bons que la solution
courante, c’est-à-dire lorsqu’un optimum local est atteint.
 Les méthodes à direction de descente ont l’avantage de converger relativement
rapidement vers un point stationnaire en utilisant les informations du gradient. Très
favorables pour un problème convexe uni -modal grâce à leur vitesse de convergence.
 Les méthodes de descente sont assez anciennes et doivent leur succès à leur rapidité et
leur simplicité, A chaque pas de la recherche, cette méthode progresse vers une
solution voisine de meilleure qualité.
Inconvénients
 C’est une méthode d’efficacité peu satisfaisante parce que la recherche s’arrête
premier minimum local rencontré.

2.3. La méthode du recuit simule

5
Cette méthode est la plus adapté aux problèmes d’optimisation de grandes tailles, donc sa
base est d’introduire En optimisation un paramètre de contrôle qui joue le rôle de la
température.
Avantages
 Efficace pour les problèmes de grandes tailles.
 Sa solution est de bonne qualité.
 Excellents résultats pour un nombre de problèmes complexes.
 La méthode du recuit simulé a l’avantage d’être souple vis-à-vis des
 Évolutions du problème et facile à implémenter.
Inconvénients
 Inefficace pour les problèmes de petites tailles.
 Il faut déterminer les paramètres appropriés au problème de l’emploi du temps.
 Encombrement Mémoire.
 Nombreux tests nécessaires pour trouver les bons paramètres.
 Critère d’arrêt du programme.
2.4 La méthode Tabou
C’est une méthode qui guide la recherche de manière intelligente à travers l’espace des
solutions parce qu’elle examine un échantillon de solutions et retient la meilleure La
recherche Tabou ne s'arrête donc pas au premier optimum trouvé mais elle peut Entrainer des
cycles.
Nous prés Nous présentons ci-dessous l’algorithme général de la recherche Tabou, en mettant
l’accent sur la mémoire à court terme et l’exploration agressive :
1. Obtenir une solution initiale.
2. Créer une pas garder tous les déplacements, mais on va seulement empêcher l’accès à
certaines solutions liste des mouvements candidats.
3. - Choisir le meilleur candidat. Ce choix est basé sur les restrictions Tabou et le
critère d’aspiration.
- On obtient ainsi une autre solution, mais qui ne sera enregistrer que si elle est
meilleur que la solution précédente.
4. - Appliquer le critère d’arrêt.
- Continue : changer les candidats d’admissibilité (restriction Tabou et critère
d’aspiration).
Aller à 2.
- Stop : passer aux stratégies d’intensification et de diversification.
Définition des variables
• i : la solution actuelle
• i' : la prochaine solution atteinte (solution voisine)
• N(i) : l'espace de solutions voisines à i (l'ensemble des i')
• m : mouvement de i à i'
• i globale : la solution optimale globale qui minimise la fonction objectif f ( ).
• i* : la solution optimale actuelle f (i*)
• T : liste des mouvements Tabou. Il peut exister plusieurs listes simultanément. Les éléments
de la liste sont t (i,m).

6
• a (i,m) : critères d'aspiration. Déterminent quand il est avantageux d'entreprendre m, malgré
son statut Tabou

Étape 1 : choisir une solution initiale i dans S (l'ensemble des solutions)


Appliquer i* = i
k=0
T=0
Étape 2 : appliquer k = k+1 et générer un sous-ensemble de solutions en N (i,k) pour que :
- les mouvements Tabou ne soient pas choisis
- un des critères d'aspiration a (i, m) soit applicable
Étape 3 : choisir la meilleure solution i' parmi l'ensemble de solutions voisines N (i, k)
Appliquer i = meilleur i'
Étape 4 : si f(i) <= f (i*), alors nous avons trouvé une meilleure solution
Appliquer i* = i
Étape 5 : mettre à jour la liste T et les critères d'aspiration
Étape 6 : si une condition d'arrêt est atteinte, stop.
Sinon, retour à Étape 2.
Condition d'arrêt : condition qui régira l'arrêt de l'algorithme. Étape 1: choisir une solution
initiale i dans S (l'ensemble des solutions)
Appliquer i* = i
k=0
T=0
Étape 2 : appliquer k = k+1 et générer un sous-ensemble de solutions en N (i,k) pour que :
- les mouvements Tabou ne soient pas choisis
- un des critères d'aspiration a (i, m) soit applicable
Étape 3 : choisir la meilleure solution i' parmi l'ensemble de solutions voisines N (i, k)
Appliquer i = meilleur i'
Étape 4 : si f(i) <= f (i*), alors nous avons trouvé une meilleure solution
Appliquer i* = i
Étape 5 : mettre à jour la liste T et les critères d'aspiration
Étape 6 : si une condition d'arrêt est atteinte, stop.
Sinon, retour à Étape 2.
Condition d'arrêt : condition qui régira l'arrêt de l'algorithme.

Résolution du problème d’emploi du temps par la méthode Tabou

Avantage

 Avoir un paramétrage simplifié : dans un premier temps. [19]

7
 Largement employée dans les problèmes d’optimisation combinatoire : elle a été
testée avec succès sur les grands problèmes classiques et les problèmes de constitution
de planning, d’exploration géologique.
 Grande efficacité : tabou bat tout. [19]
 Fonctionnement simple à comprendre. [19]
Inconvénients
 La méthode Tabou exige une gestion de la mémoire de plus en plus lourde en mettant
en place des stratégies de mémorisation complexe.
 Paramètres peu intuitifs.
 Demande en ressources importantes si la liste des tabous est trop imposante.
 Aucune démonstration de la convergence.

III. Spécifications et de la conception détaillée


L’objectif recherché dans cette partie, est de déterminer la manière dont le logiciel fournira
les différentes fonctionnalités afin de pouvoir vérifier l’effectivité dans le programme à
concevoir. Cette partie comporte :
1. La liste des structures utiles pour le projet : c’est-à-dire les différents éléments
à tenir compte dans le projet. Comme liste, nous avons :
 Structure Enseignants : elle contient deux champs : le nom et le prénom des
professeurs.
 Structure Cours : elle contient deux champs : le nom et le type de cours.
 Structure Salles : elle contient deux champs : le nom et la capacité de la salle.
 Structure Filière : elle contient deux champs : le nom et le nombre d’étudiants de la
filière.
 Structure Jour : elle contient un champ : le nom du jour
 Structure Heurs : elle contient un champ : les différentes heures de cours.
 Structure EDP : elle contient six champs : le nom du l’enseignants, le nom du cours,
le nom de la salle, le jour, la filière et le type de cours

2. La liste des fichiers de données utiles pour le projet :


Fichier Enseignants.txt : pour stocks les données des enseignants.
Fichier Salles.txt : pour stocks les données des salles.
Fichier Filiere.txt : pour stocks les données des Filières.
Fichier EDT.txt : pour stocks les données des emplois du temps par filière.

3. La liste des fonctions utiles pour réaliser le projet

8
Fonction generation() : permet de générer les emplois du temps par filières
Fonction saisir_prof() : permet d’ajouter des Enseignants
Fonction saisir_filiere() : permet d’ajouter des filières.
Fonction saisir_salle() : permet d’ajouter des salles.
 Fonction afficher_salle() : permet d’afficher des salles.
Fonction afficher_prof() : permet d’afficher la liste des enseignants.
Fonction afficher_filiere() : permet d’afficher la liste des filières.

IV. Problèmes rencontrés et solutions apportées


Pour le stockage des données saisir par l’utilisateur, dans un premier temps nous avons proposées
d’utiliser les bases de données MYSQL en c pour gérer dynamiquement ces données. Vue le
nombre de compétence demandées, nous avons alors opter pour l’utilisation des fichiers est des
structures vues en classes pour la gestion de ces données.
Concernant l’interface graphique, au début nous avons essayé d’utiliser d’autres langages de
programmation tels que JAVA et d’autre mais vue le manque de connaissance pratique dans ces
langages pour avons utiliser l’interface simple de la console pour les interfaces graphiques.
Enfin on n’avait pas mal de problèmes à adapter les algorithmes à la résolution du problème de
generation automatiques des emplois du temps.
V. Les écarts par rapport au cahier des charges
L’écarts se situe au niveau de l’affichage de l’emploi du temps de chaque filière.
VI. Le Bilan
La réalisation de ce projet nous a permis d’approfondir nos connaissances en langages c. elle à été
un moyen pour nous de résoudre les problèmes nous même sans un encadreur bien définie. Nous
avons appris « à se battre seul » pour la résolution d’un problème même si on ne l’a pas fini
complément.
Conclusion
Le problème d’affectation et d’automatisation de l’emploi du temps est un problème
complexe et très difficile à résoudre, même qu'il existe différentes approches d’affectation et
de génération de EDP (d’emploi du temps), il reste toujours un champ de travail et de
recherche d’actualité pour répondre à ce problème dans les mesures : faisabilité
d’implémentation, temps de réponse d’affectation, optimisation de gain et ressources affectés.
Dans notre projet, nous proposons l’affection et la génération de l’emploi du temps d’un
département (cas : l’institut Supérieur de Génie Electrique du Burkina Faso ISGE-BF) par
l’utilisation de la méthode de la recherche Tabou qui s’inscrite dans l'ensemble de solutions
proposées par la recherche opérationnelle. Afin d’une bonne conception de notre problème et
de notre système d’information, nous avons utilisé une interface pour la l’affichage des
emplois du temps.

Vous aimerez peut-être aussi