1. Trang chủ
  2. » Luận Văn - Báo Cáo

TRAITEMENT DU PROBLEME DE DRESSER L’EMPLOI DU TEMPS DES PROFESSEURS DANS LA FACULTE DES TECHNOLOGIES DE L’INFORMATION ET DE LA COMMUNICATION, L’UNIVERSITE DE CAN THO

64 109 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 1,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

APPRENDRE No Nom du champ Type Domaine de la valeur / Contrainte Valeur tacite Clé Primaire Unique Non Nul Clé étrangère Explication 1 CODE_DE_CLASSE Text 10 x x CLASSE CODE_DE

Trang 1

CHAPITRE I: INTRODUCTION

š ¯ ›

L'emploi du temps, aussi appelé les horaires, est commun dans de nombreux

domaines Presque toutes les organisations et les entreprises utilisent des emplois du temps afin de gérer des activités Il y a beaucoup de types d’horaires, par exemple les horaires de production, les horaires des vols d’avion, les horaires d’enseignement Quand un individu a plusieurs occupations, il se propose de quoi faire en premier et de quoi faire après C'est aussi une forme simple des horaires personnels Pour les grandes organisations, la gestion des emplois du temps est beaucoup plus complexe à cause des nombreux objets qui sont liés Puisque le temps et les ressources sont limités, donc si

on veut travailler efficacement, on doit e les élaborer les emplois du temps à l’avance

Se basant sur la nature du travail, on peut disposer les tâches du travail sur un ordre logique dans une durée et dans un lieu fixé afin que le volume des tâches effectuées en temps soit le plus haut et que l'utilisation des ressources disponibles est la plus efficace

En particulier, la réalisation des emplois du temps est un travail régulier et important dans toutes les écoles L’emploi du temps est un axe des activités d'enseignements et d’études Le personnel du service de formation doit perdre beaucoup de temps et d'efforts pour élaborer des emplois du temps à chaque semestre

Si on n’a pas d’expériences, on peut se heurter à plusieurs difficultés Avec l’échelle croissante des écoles, la réalisation manuelle des emplois du temps devient très complexe Puisque les objets se lient étroitement, on doit comparer et modifier plusieurs fois pour générer un horaire acceptable En cela, apporter des solutions efficaces et performantes au problème d’emplois du temps est très nécessaire Heureusement, l’Informatique n’est pas seulement de théorie Plusieurs approches ont été développées pour résoudre ce problème On peut mentionner la technique du coloriage de carte ; les métas heuristiques comme le Recuit Simulé, la Recherche Tabou et l’Algorithme Génétique ; et la Programmation Par Contraintes

Je présente tout d’abord l’idée des approches ci – dessus mentionnées notamment

la Programmation Par Contraintes (PPC) qui est appliquée pour résoudre des problèmes dans ce mémoire La PPC s’avère très utile dans de nombreux domaines de

la science et de l’industrie On peut bien comprendre la PPC par une présentation des définitions de base de la PPC : ce qu’est une contrainte, la formulation d’un Problème

de Satisfaction de Contraintes (CSP, en anglais), les outils de la PPC…

Je présente, dans la suite, l’analyse et la conception du système de gestion d’emplois du temps sur la base de la formation actuelle dans la Faculté de Technologies de l’Information Il comporte des modèles conceptuels de données, des modèles logiques de données et des modèles physiques de données avec des contraintes d’intégrités dans la base de données établie

Trang 2

Je me consacre ensuite des éléments de modélisation qui constituent la première étape dans la résolution d’un problème Chaque problème est modélisé sous forme d’un CSP Il comprend un ensemble de variables ; chacune des variables prend des valeurs dans un domaine ; et les contraintes sont posées sur des variables La résolution du problème en se basant sur l’algorithme de Retour en arrière – Vérifier d’avance est présenté par les diagrammes Ceci constitue un mécanisme de réalisation des emplois du temps, soit le cœur du système

La section dernière est pour la présentation du programme d’application C’est une démonstration des résultats d’analyse obtenus Enfin, je tire des conclusions de tout mon travail et propose des développements

Trang 3

CHAPITRE II: DÉVELOPPEMENT

š ¯ ›

I CADRE THÉORIQUE

I.1 Rétrospective

I.1.1 Heuristique

Plusieurs heuristiques pour la réalisation des emplois du temps ont été proposées,

la plupart base sur la solution du coloriage de la carte

Petit rappel: il s’agit de colorier tous sommets d’un graphique de telle sorte que deux sommets adjacents aient deux couleurs différentes Chaque sommet peut choisir dans son ensemble de couleurs

Heuristiques pour ce problème, souvent utilité Algorithme Glouton, est comme suit :

- Choisir un sommet pas encore colorié pour le colorier par une nouvelle couleur

C

- Examiner la liste de sommets pas encore coloriés Si un sommet est non-adjacent

au sommet qui a déjà colorié par C, le colorie par la couleur C

® L’idée de cette heuristiques est d’utiliser une couleur pour colorier le plus de sommet possible

Le processus de recherche d'une période pour chaque événement de sorte qu’il y n’a pas les deux conflits sur les ressources humaines ainsi que les ressources matérielles correspond à la coloration des sommets d’un graphe de sorte que les sommets adjacents ont toujours des couleurs différentes On essaie d’affecter le plus possible des événements non – conflits dans une période Il faut observer la possibilité qu'il y ait suffisamment de places pour tous les événements effectués dans une période fixé Alors on espère que tous les événements seront affectés Il peut souvent créer de bons emplois du temps, mais généralement il ne permet pas quelconque recherche dans l'espace des solutions pour le remplacement Cette méthode est assez simple à mettre en œuvre Elle est souvent utilisée afin de trouver des solutions initiales pour les autres méthodes qui visent à améliorer l’objectif de résultats à partir d’une solution

au début, telles que les métaheuristiques ci-dessous

I.1.2 Métaheuristique

Ø Recuit simulé (SA – simulated annealing, en anglais) :

Cette métaheuristique a été mise au point par trois chercheurs de la société IBM,

S Kirkpatrick, C.D Gelatt et M.P Vecchi en 1983, et indépendamment par V Cerny

en 1985

Trang 4

La méthode de recuit simulé tire son nom et son inspiration de la physique des matériaux et plus spécialement de la métallurgie Le recuit est une opération consistant

à laisser refroidir lentement un métal pour améliorer ses qualités L’idée physique est qu’un refroidissement trop brutal peut bloquer le métal dans un état peu favorable (alors qu’un refroidissement lent permettra aux molécules de s’agencer au mieux dans une configuration stable)

C’est cette même idée qui est à la base du recuit simulé Pour éviter que l’algorithme ne reste piégé dans des minimaux locaux, on fait en sorte que la température T décroisse lentement en fonction du temps Deux approches sont possibles :

· Pour la première, on répète en gardant la température constante Lorsque le système a atteint un équilibre thermodynamique (au bout d'un certain nombre

de changements), on diminue la température du système On parle alors de paliers de température

· La seconde approche fait baisser la température de façon continue On peut alors imaginer toute sorte de loi de décroissance La plus courante étant Ti+1= a* Tiavec a < 1 (assez couramment a = 0.99)

La température joue un rôle important À haute température, le système est libre

de se déplacer dans l'espace des solutions (exp(-d/T)1 proche de 1) en choisissant des solutions n’améliore pas forcément le critère que l'on cherche à optimiser À basse température, les modifications améliorant le critère sont choisies, mais d'autres peuvent être acceptées, empêchant ainsi l'algorithme de tomber dans un minimum local

Le recuit simulé maintient un emploi du temps faisable A chaque itération, un voisin – un autre emploi du temps acceptable – est généré par une modification

1 d =f(S’) – f(S) ; f : fonction objectif

Lorsqu’un voisin S’ généré pire que la solution courant S (d>0, dans un problème de minimisation), on

va choisir par hasard une valeur x dans l’intervalle [0,1]

Si x < exp(-d/T), ce voisin est encore appliqué à la solution courant Plus T est haut, plus la probabilité

de ce voisin étant acceptés est élevé

Trang 5

minime à partir de la solution actuelle Ce voisin devient un emploi du temps courant s’il a moins de points de pénalité Même si un voisin a plus de points de pénalité, elle est acceptée avec une probabilité exp(-d/T) Lorsque la condition d’arrêt est vérifiée, l’emploi du temps courant est la solution obtenue Le choix approprié des paramètres

du recuit simulé, tel que tels que la température initiale, la loi de décroissance de la température, les critères d'arrêt ou la longueur des paliers de température est très important afin de trouver une bonne solution

ü Recherche tabou (Tabu search, en anglais)

La recherche tabou est une métaheuristique d'optimisation présentée par Fred Glover en 1986 C’est une méthode de recherche locale avancée qui fait appel à un ensemble de règles et de mécanismes généraux pour guider la recherche de manière intelligente Recherche tabou parce qu’il y a interdiction de reprendre des solutions récemment visitées

L'idée de la recherche tabou consiste, à partir d'une position donnée, à en explorer le voisinage et à choisir la position dans ce voisinage qui minimise la fonction objectif

Il est essentiel de noter que cette opération peut conduire à augmenter la valeur

de la fonction (dans un problème de minimisation) : c'est le cas lorsque tous les points

du voisinage ont une valeur plus élevée C'est à partir de ce mécanisme que l'on sort d'un minimum local

Le risque cependant est qu'à l'étape suivante, on retombe dans le minimum local auquel on vient d'échapper C'est pourquoi il faut que l'heuristique ait de la mémoire :

le mécanisme consiste à interdire (d'ó le nom de tabou) de revenir sur les dernières positions explorées

Les positions déjà explorées sont conservées dans une file FIFO (appelée souvent liste tabou) d'une taille donnée, qui est un paramètre ajustable de l'heuristique Cette pile doit conserver des positions complètes, ce qui dans certains types de problèmes, peut nécessiter l'archivage d'une grande quantité d'informations Cette difficulté peut être contournée en ne gardant en mémoire que les mouvements précédents, associés à

la valeur de la fonction à minimiser

La recherche tabou maintient un emploi du temps faisable courant comme le recuit simulé La différence est la méthode d’un nouvel emploi du temps faisable étant accepté Les solutions générées appartenant à la liste de tabou ne sont pas choisi pour éviter les retours en arrière Cette méthode permet aussi un mouvement non améliorateur, comme le permet le recuit simulé La différence entre les 2 méthodes est que la recherche tabou choisira le meilleur i’ dans N(i), l’ensemble des solutions voisines Il est important d’utiliser une liste des tabous appropriée Une liste avec trop d’éléments peut devenir très restrictive Il a été observé que trop de contraintes (tabous) forcent le programme à visiter des solutions voisines peu alléchantes à la

Trang 6

prochaine itération Une liste T contenant trop peu d’éléments peu s’avérer inutile et mener à des mouvements cycliques

ü Algorithme génétique (GAs – Genetic algorithms, en anglais)

Les algorithmes génétiques ont déjà une histoire relativement ancienne puisque les premiers travaux de John Holland sur les systèmes adaptatifs ont été remontés à

1962

Dans les processus évolutifs, les individus les mieux adaptés, c'est-à-dire capables de mieux effectuer les tâches nécessaires à leur survie, se reproduisent à des taux les plus élevés, alors que les individus les moins adaptés se reproduisent à des taux plus faibles Ce sont les principes de survie et reproduction décrit par Charles Darwin dans « On the Origin of Species By Means of Natural Selection » en 1859 Il s'avère alors qu'une population ayant une grande variété va, de génération en génération, contenir des individus dont le génotype se traduit par une meilleure adaptation, et ceci à cause de la contrainte de la sélection naturelle

L'utilisation d'un algorithme génétique nécessite le choix préalable d'un code génétiquereprésentant le problème à traiter Le choix de ce codage est essentiel car il

va déterminer essentiellement les performances de l'algorithme Le code est représenté sous forme d'une chaîne de bits ou de caractères, chaine analogue à un chromosome Il

y a un nombre fini de chaînes

Sur ces codes s'appliquent des opérateurs génétiques, dont les principaux sont :

· opérateur de reproduction, qui duplique le code d'un individu pour en créer un nouveau,

· opérateur de croisement, qui mélange les chromosomes des individus parents pour créer le code génétique d'un individu fils,

· opérateur de mutation, qui apporte une modification aléatoire au code génétique d'un individu,

· opérateur de sélection, qui choisit dans une population les individus qui

survivront à la génération suivante, en fonction d'une valeur d'adaptation

· opérateur d'évaluation, qui mesure le degré d'adaptation d'un individu à son environnement

Un algorithme génétique recherche le ou les extrema d'une fonction définie sur

un espace de données Pour l'utiliser, on doit disposer des cinq éléments suivants:

1 Un principe de codage de l'élément de population Cette étape associe à chacun des points de l'espace d'état une structure de données Elle se place généralement après une phase de modélisation mathématique du problème traité La qualité du codage des données conditionne le succès des algorithmes génétiques Les codages binaires ont été très utilisés à l'origine Les codages réels sont désormais largement utilisés, notamment dans les domaines applicatifs pour l'optimisation de problèmes à variables réelles

Trang 7

2 Un mécanisme de génération de la population initiale Ce mécanisme doit être capable de produire une population d'individus non homogène qui servira de base pour les générations futures Le choix de la population initiale est important car il peut rendre plus ou moins rapide la convergence vers l'optimum global Dans le cas

ó l'on ne connaỵt rien du problème à résoudre, il est essentiel que la population initiale soit répartie sur tout le domaine de recherche

3 Une fonction à optimiser Celle-ci retourne une valeur de  +

appelée fitness ou

fonction d'évaluation de l'individu

4 Des opérateurs permettant de diversifier la population au cours des générations et d'explorer l'espace d'état L'opérateur de croisement recompose les gènes d'individus existant dans la population, l'opérateur de mutation a pour but de garantir l'exploration de l'espace d'états

5 Des paramètres de dimensionnement : la taille de la population, le nombre total de générations ou critère d'arrêt, les probabilités d'application des opérateurs de croisement et de mutation

Une population des empois du temps faisables est maintenue Chaque individu est un emploi du temps représenté comme un code génétique se traduit quand et ó des événements sont affectés A chaque itération, on applique des opérateurs génétiques sur des paires de codes choisis en fonction de leurs adaptations (les meilleurs sont sélectionnés) pour générer des nouveaux emplois du temps de la population Différents critères d'arrêt de l'algorithme peuvent être choisis : le nombre de générations que l'on souhaite exécuter peut être fixé à priori C'est ce que l'on est tenté de faire lorsque l'on doit trouver une solution dans un temps limité ; l'algorithme peut être arrêté lorsque la population n'évolue plus ou plus suffisamment rapidement Pendant un période donnée, la valeur de la fonction objective (fitness) est encore inférieure à un seuil Le meilleur individu de dernière génération est une solution du problème

ü Conclusion

Les métaheuristiques peuvent guider la recherche de manière intelligente Ils permettent de visiter des régions différentes dans l’espace des solutions et permet de savoir ó se trouvent les meilleures solutions Ils sont de plus en plus bien développés Mais ils sont souvent difficiles à mettre en œuvre notamment l’algorithme génétique Les principaux inconvénients des métaheuristiques résident dans le choix de nombreux paramètres La valeur des paramètres est un facteur décisif, elle est pourtant difficile à déterminer Il n’y a pas aucune règle Ces paramètres sont souvent choisis de manière empirique.

Alors, je continue à étudier une autre approche aussi bien développée, soit la Programmation par Contraintes Tout problème comporte un certain nombre de variables, chacune ayant un domaine fini, et un certain nombre de contraintes Ainsi trouver une solution à un problème par contraintes consiste à affecter une valeur à chaque variable de telle sorte que la totalité des contraintes soit satisfaite La

Trang 8

programmation par contrainte s’avère très utile dans de nombreux domaines de la science et de l’industrie, ainsi que sur le problème d’emploi du temps

I.1.3 Programmation par contraintes

I.1.3.1 Qu’est ce qu’une Contrainte ?

- Une contrainte est une relation logique (une propriété qui doit être vérifiée) entre différentes inconnues, appelées variables, chacune prenant ses valeurs dans un ensemble donné, appelé domaine Ainsi, une contrainte restreint les valeurs que peuvent prendre simultanément les variables

- Par exemple, la contrainte x + 3*y = 12 restreint les valeurs que l’on peut affecter simultanément aux variables x et y

- Déclaration d’une contrainte : 2 types de déclaration :

o extension : Pour définir une contrainte en extension, il suffit d’énumérer les valeurs admises

- Par exemple, si les domaines des variables x et y contiennent les valeurs 0, 1

et 2, alors on peut définir la contrainte “x est plus grand que y” en extension par “(x =

1 Ù y = 0) Ú(x =2 Ù y = 0) Ú (x = 2 Ù y = 1)”, ou encore par “(x, y) Ỵ {(1, 0), (2, 0), (2, 1)}”

o intension : Pour définir une contrainte en intention, il suffit d’utiliser les propriété mathématiques connues (>, <,Þ, ¹ , etc.)

- Par exemple, si l’on reprend l’exemple cité précédemment, la contrainte par intention qui en découlerait serais la suivante : x > y mais on pourrait avoir une définition de contrainte du genre ÁBÞC

I.1.3.2 Définition d’un CSP

- La programmation par contraintes exige d’abord la description du problème comme un CSP, en termes de variables et de contraintes à satisfaire

- Un CSP (Problème de Satisfaction de Contraintes) est un problème modélisé par des variables, un domaine, et des contraintes Les contraintes sont posées sur des variables, chacune des variables prend des valeurs dans un domaine

- Formellement la définition d’un problème par contrainte se fera de la façon suivante : soit un triplet (X, D, C) tel que :

1) X = {X1, X2, …, Xn} est l’ensemble des variables du problème,

2) D est le domaine de définition de chacune des variables, soit l’ensemble des valeurs que peut prendre Xi,

3) C = {C1, C2, …, Cn} est l’ensemble des contraintes Chaque contrainte Cjest une relation entre certaines variables de X, qui limite les valeurs que peuvent prendre simultanément ces variables

Trang 9

- Par exemple : soit P un CSP P est défini par :

o X = {a, b, c, d}

o D(a) = D(b) = D(c) = D(d) = {0, 1}

o C = {a ¹ b, c ¹ d, a + c < b}

I.1.3.3 Définition d’une solution d’un CSP

- Une affectation est le fait d’instancier des variables, de créer une instance de certaines variables de X avec des valeurs appartenant à leur domaine respectif D

A = {(X1, V1), (X3, V3), (X4, V4)} associe la valeur V1 de D1 à la variable X1

- Si toutes les variables de X sont instanciées alors on dit que cette affectation est totale, sinon on parle d’affectation partielle

- Une affectation (totale ou partielle) est dite consistante si elle ne viole aucune contrainte du CSP, sinon elleest dite inconsistante

Þ Une solution pour un CSP est une affectation totale consistante

- Par exemple, A = {(a, 0), (b, 1), (c, 0), (d, 1)} est une solution du CSP P en

dessus

I.1.3.4 Résolution

I.1.3.4.1 Résolution nạve

- On génère toutes les affectations totales possibles

- On vérifie si elles sont consistances

- Si on en trouve une consistante, c’est gagné

à C’est très facile à mette en œuvre mais très gourmand en ressource temps

I.1.3.4.2 Algorithme de Retour en Arrière (Backtracking, en anglais)

- Principe :

+ On parcourt l’arbre des affectations en profondeur

+ Lorsqu’une affectation partielle est inconsistante, on n’explore pas le arbre correspondant

sous Pour améliorer cet algorithme, on peut tenter d’anticiper : si on se rend compte qu’une variable non affectée Xi n’a plus de valeur (dans son domaine D(Xi)) dans l’affectation partielle en cours de construction, alors on peut éviter un gaspillage inutile de temps pour développer cette branche, et on peut tout de suite retourner en arrière pour explorer d’autres possibilités A chaque étape de la recherche on va donc filtrer les domaines des variables non affectées en enlevant les valeurs qui n’appartiendront à aucune solution (i.e localement inconsistantes) Alors, l’espace de recherche est bien réduit On peut effectuer différents filtrages, chacun correspondant à

Trang 10

un niveau différent de consistance locale, avec sa propre efficacité mais aussi sa difficulté d’application et son temps d’exécution

I.1.3.4.3 Filtrage

o Filtrage par consistance de nœud (1-consistance)

- Formellement, un CSP (X, D, C) est consistant de nœud si pour toute variable Xi

de X, et pour toute valeur v de D(Xi), l’affectation partielle (Xi, v) satisfait toutes les contraintes unaires de C

- Algorithmiquement, pour chaque variable Xi non affectée dans A, on enlève de D(Xi) toute valeur v telle que l’affectation A È {(Xi, v)} est inconsistante

- Il est possible d’améliorer l’algorithmique de Retour en Arrière en filtrant les domaines et les contraintes appliquées au problème Dans notre cas on peut filtrer les domaines On obtient alors la méthode appelée Vérifier d’avance (en anglais Backtracking – Forward Checking, BC-FC)

o Filtrage par consistance d’arc (2-consistance)

- Formellement, un CSP (X, D, C) est consistant d’arc si pour tout couple de variables (Xi, Xj) de X, et pour toute valeur vi appartenant à D(Xi), il existe une valeur

vj appartenant à D(Xj) telle que l’affectation partielle {(Xi, vi), (Xj, vj)} satisfasse toutes les contraintes binaires de C

- Algorithmiquement, pour chaque variable Xi non affectée dans A, on enlève de D(Xi) toute valeur v telle qu’il existe une variable Xj non affectée pour laquelle, pour toute valeur w de D(Xj), l’affectation A È {(Xi, v), (Xj, w)} soit inconsistante

I.1.3.4.4 Heuristiques

- L’idéal serait qu’à chaque étape on sache exactement quelle variable instancier et avec quelle valeur Ainsi on ne ferait jamais aucun retour Cependant il est peu probable que ce genre d’algorithme puisse être programmé du fait du non-déterminisme des problèmes NP-Complet En revanche il est possible de remédier à ce problème par l’intégration d’heuristique nous donnant l’ordre dans lequel instancier ces variables et leurs valeurs.

- Pour le CSP il existe deux principes d’heuristiques souvent utilisés :

1) l’algorithme meilleur d’abord

2) l’algorithme échec d’abord

* Meilleur d’abord :

- Cette heuristique, appelée aussi best first, consiste à choisir la prochaine variable

de telle sorte que la combinaison en cours tend vers la solution optimale, ou vers une bonne solution dans le cas de d’un problème d’optimisation

Trang 11

- Cette heuristique influe uniquement sur l’ordre d’exploration de l’arbre de recherche et donc sur le temps de recherche ainsi que sur la qualité des solutions trouvées

* Echec d’abord :

- Cette heuristique, appelée aussi first fail ou MRV pour “Minimum Remaining

Value”, consiste à choisir la prochaine variable de telle sorte que la prochaine

combinaison soit plus dure à résoudre ou conduise à un échec De cette façon on s’arrête plus tôt dans le parcours de l’arbre et on élimine ainsi le nombre de sous arbre

La problématique est de réaliser des emplois du temps pour les professeurs dans

la Faculté des Technologies de l’Information de l’Université de Cantho Actuellement, la Faculté de Technologies assume des enseignements aux deux systèmes de formation: le système régulier pour les étudiants inscrits à l’Université de Can Tho et le système irrégulier aux établissements coopérés pour les étudiants qui apprennent en travaillant Donc, ce problème contient en général deux sous-problèmes, soit l’emploi du temps d’enseignement régulier et l’emploi du temps d’enseignement irrégulier Deux problèmes sont différents mais lié étroitement par la ressource humaine, soit des professeurs

D’ailleurs, au système de formation régulière, il y a deux niveaux de formation: Licence et Master Le système de formation irrégulière est seulement au niveau de Licence Normalement, l’enseignement consiste en théorie et pratique Alors, on peut mentionner en détail quatre sous-problèmes tels que l’enseignement théorique du système de formation régulière, l’enseignement du système de formation irrégulière, l’enseignement pratique du système de formation régulière, et l’enseignement du niveau de mastère Les problèmes se lient étroitement De plus, chaque problème possède des contraintes différentes à satisfaire La forme des emplois du temps est aussi différente Pour chaque problème, un professeur est responsable d’un nombre de cours Réaliser des emplois du temps pour les professeurs est d’affecter tous les cours

en temps et en place appropriée

I.3 Perspective

Les sous-problèmes sont très différents On ne peut pas les résoudre en même temps Donc, on résoudre un par un Cela about une augmentation de complexité Chaque problème doit satisfaire des contraintes de lui – même, il faut aussi respecter les résultats obtenus d’autres

Trang 12

Sur la base de la réalité, des problèmes sont arrangés dans l’ordre décroissant de

la priorité de réalisation Un emploi du temps généré après doit éviter le temps affecté déjà J’ai l’ambition de réaliser tous les quatre problèmes mentionnés ci – dessus pour créer un système complète étant très efficace pour la gestion des emplois du temps de

ma Faculté Mais dans la limite de temps accordé au travail de mon mémoire, je peux seulement m’efforcer de résoudre le plus possible des problèmes Je me propose de réaliser deux problèmes premiers selon la priorité, soit l’emploi du temps d’enseignement théorique du système de formation régulière et l’emploi du temps d’enseignement du système de formation irrégulière Mon objectif principal est de traiter entièrement chaque problème Il comporte une modélisation, une initialisation des données d’entrée, un mécanisme de réalisation d’emploi du temps, une modification et une exportation des emplois du temps réalisés Toutes les contraintes d’intégrité doivent être assurées De plus, l’utilisation du système est assez facile En

se basant sur les résultats obtenus, les problèmes restant seraient été résolus dans le futur D’ailleurs, on peut étudier les méthodes différentes ainsi que résoudre les problèmes d’ordonnancement dans de nombreux domaines de la science et de l’industrie

I.4 Délimitation de l’étude

- Modélisation du problème de réalisation des emplois du temps en basant sur l’opération d’enseignement des enseignants dans la Faculté des Technologies

de l’Information et de la Communication, l’Université de Cantho

- Conception de l’algorithme de réalisation des emplois du temps

- Conception et installation de programme d’application

- Les objectifs à atteindre de système :

+ Gestion de toutes les données liées aux emplois du temps

+ Réalisation automatique des emplois du temps

+ Modification manuelle des emplois du temps

+ Exportation et impression

I.5 Limitation de l’étude

Le problème d’emploi du temps appartient à la classe des problèmes complète Ça veut dire qu’on ne sait pas s’il y a n’importe algorithme vraiment efficace pour le résoudre en temps polynomial On peut seulement essayer de présenter

NP-un algorithme mais on ne peut pas évaluer s’il est le meilleur ou non Il faut aussi noter l'impossibilité d'être assuré que la solution trouvée soit la meilleure

Trang 13

II CADRE EXPÉRIMENTAL

II.1 Description des sujets

Actuellement, Faculté de Technologies de l’Information comprend 4 branches qui assument des enseignements, soit le Système d'Information, le Réseau d'ordinateur,

le Génie logiciel, la Science d'ordinateur

Chaque branche gère une équipe de professeurs Elle est responsable des disciplines spécifiques Un professeur ou une discipline appartient à une seule branche

En défaillant, un professeur pourrait enseigner des disciplines de la branche à laquelle

il appartient

Un professeur a un code distinct On enregistre aussi d’autres informations comme un nom, un prénom, une date de naissance, un sexe et une année de fin d’études universitaire Selon la demande d’enseignement, un professeur pourrait suivre des formations avancées pour obtenir des grades tels que le mastère, le doctorat

Une discipline correspond à un nombre de crédits Un crédit égale 15 heures de cours théoriques ou à 30-45 heures des travaux pratiques Sur la base de la nature de discipline, la Faculté détermine le volume horaire des cours théoriques et le volume horaire des travaux pratiques

La Faculté de Technologies assume des enseignements aux deux systèmes de formation: le système de formation régulière pour les étudiants inscrits à l’Université

de Can Tho et le système formation irrégulière aux établissements coopérés pour les étudiants qui apprennent en travaillant

Au système de formation régulière, il y a 2 niveaux de formation: Licence et Mastère Le système de formation irrégulière est seulement au niveau de Licence Donc, il faut spécifier un système de formation, un niveau de formation et un établissement d’une classe On distingue 2 types de classes dans ce mémoire :

- Classe de discipline: soit un groupe d'étudiants suit une discipline ensemble dans un semestre Cette classe apprend une seule discipline Elle existe pendant un seul semestre Elle appartient au système de formation régulier, au niveau Licence, à l’Université de Can Tho

- Classe appartenant au système irrégulier aux établissements coopérés: être formé au début de promotion jusqu'à la fin Une classe suit une formation fixé qui détermine des disciplines à apprendre

ü Enseignement théorique du système de formation régulière

A chaque semestre, en se basant sur les statistiques du besoin des étudiants, la

Faculté décide des disciplines ouvertes et des classes de discipline de chaque

discipline Une classe comprend de 15 à 100 étudiants

Trang 14

Le volume horaire (le nombre de périodes) par semaine d'une classe est calculé par:

o Le volume horaire de cour magistral/15, dans le semestre 1 ou 2

o Le volume horaire de cour magistral/5, dans le semestre 3 (en été)

Si le nombre de périodes est plus 4, il faut le divise en plusieurs cours Un cours dure de 2 à 4 périodes

De plus, l'Université affecte un nombre de salles disponibles pour des cours Ce sont des salles appartenant au type de salle théorique Normalement, ces salles appartiennent à un même bâtiment ou aux bâtiments voisins

D'après la répartition de la faculté, un professeur est responsable d'un certain nombre de classes Un professeur peut être responsable de plusieurs classes mais une classe est enseignée par un seul professeur On réalise un emploi du temps en affectation tous les cours des professeurs

C’est la forme d’emploi du temps courante Il y a 6 jours par semaine, du lundi

au samedi Chaque jour est séparé en 2 séances La matinée comprend 5 périodes L’après-midi comprend 4 périodes

L’affectation un cours comporte tous les 2 opérations: choisir une salle appropriée et choisir un période de début Il faut satisfaire des contraintes pendant l’affectation

Cet emploi du temps est appliqué itérativement à chaque semaine pendant tout le semestre

ü Enseignement du système de formation irrégulière

A chaque semestre, la Faculté détermine des disciplines qu’une classe doit apprendre Ensuite, la Faculté répart aussi un professeur responsable d’une discipline

de chaque classe

Pour ce problème, une classe apprend plusieurs disciplines Il faut préciser quelle discipline d’une classe dont un professeur est responsable

Une discipline d’une classe est aussi enseignée par un seul professeur

Figure 1 : Emploi du temps d’enseignement théorique du système de formation régulière

Trang 15

Sur la base de nombre de crédits d’une discipline, une classe doit apprendre un

ou plusieurs cours Un cours a lieu dans une semaine

La forme de l’emploi du temps est très différente par rapport au système régulier

Il consiste en 20 semaines d’un semestre Une semaine est séparé en 2 sections: le début et la fin Un professeur peut enseigner en section de début ou de fin C’est fixé pendant tout le semestre

Figure 2 : Emploi du temps d’enseignement du système de formation irrégulière

Il ne faut pas s’intéresser à l’affectation de salle C’est une responsabilité de l’établissement coopéré

On doit réaliser un emploi du temps qui spécifie qu’un professeur enseigne un cours en quelle semaine à condition d’assurer des contraintes

II.2 Etapes méthodologiques

- Etude de l’histoire du problème

- Analyse et conception de système

- Modélisation de problème, conception d’algorithme

- Installation de programme d’application

- Test de programme et correction des erreurs

- Rapport de recherche

II.3 Techniques et méthodes de prise, d’analyse et de traitement des

données

II.3.1 Conception de système

II.3.1.1 Modèles conceptuels de données

En utilisant l’outil de Power Designer 7

Trang 16

0,n 0,n

0,n

0,1

0,n

0,1 0,n

Classe Code_de_classe Nom_de_classe Nombre_d_etudiants Annee_d_entree

VA10 VA200 I I

Systeme_de_formation Code_de_systeme Nom_de_systeme

VA8 VA200

Branche

Code_de_branche

Nom_de_branche

VA8 VA200

Grade_universitaire Code_de_grade Explication

VA3 VA100

VA8 VA200 appartenir5

Niveau_de_formation Code_de_niveau Nom_de_niveau

VA8 VA200

Formation Code_de_formation Nom_de_formation

VA8 VA200

suivre

comprendre Semestre I

appartenir4

apprendre

Semestre Semestre Annee Date_de_debut Date_de_fin

I A9 D D

Figure 3 : Modèle conceptuel de données - en général

Trang 17

II.3.1.1.2 Enseignement théorique du système de formation régulière

0,1 0,n

Prenom Date_de_naissance Sexe

Annee_de_fin_d'etudes

A5 VA20 VA20 D A1 D

Discipline Code_de_discipline Nom_de_discipline Nombre_de_credits Volume_horaire_de_CM Volume_horaire_de_T P

A5 VA200 I I I Classe Code_de_classe Nom_de_classe Nombre_d_etudiants Annee_d_entree

VA10 VA200 I I

Salle Code_de_salle Nom_de_salle Capacite

A5 VA20 I

Repartir_re

enseigner_re jour_de_semaine Seance

periode_de_debut nombre_de_periodes

I VA20 I I

T ype_de_la_salle Code_d_type Explication

A8 VA100 appartenir7

T ype d'enseignement Code_de_type Explication

A8 VA100

Batiment

Code_de_batiment

Nom_de_batiment

A8 VA100

appartenir6

etre_disponible

Figure 4 : Modèle conceptuel de données - Enseignement théorique du système de formation régulière

Trang 18

II.3.1.1.3 Enseignement du système de formation irrégulière

0,n

0,n

0,n 0,n

0,n

0,n

0,n

1,1 0,n

Discipline Code_de_discipline Nom_de_discipline Nombre_de_credits Volume_horaire_de_CM Volume_horaire_de_T P

A5 VA200 I I I

Classe Code_de_classe Nom_de_classe Nombre_d_etudiants Annee_d_entree

VA10 VA200 I I

Repartir_irre

enseigner_irre

Semestre Semestre Annee Date_de_debut Date_de_fin

I A9 D D

Semaine Numero_de_semaine Date_de_debut Date_de_fin

I D D

contenir Repartir_Temps

Section VA10

Figure 5 : Modèle conceptuel de données - Enseignement du système de formation irrégulière

II.3.1.2 Modèles logiques de données

Note :

- Caractère gras et souligné : soit une clé primaire (ex : Code_De_Classe )

- Caractère gras et italique : soit une clé étrangère (ex : Code_De_Classe)

- Caractère gras, italique et souligné : soit un élément d’une clé primaire et une clé étrangère en

même temps (ex :Code_De_Classe)

1 APPRENDRE (Code_De_Classe, Code_De _Discipline, Annee, Semestre)

2 BATIMENT (Code_De_Batiment, Nom_De_Batiment)

3 BRANCHE (Code_De _Branche, Nom_De _Branche)

4 CLASSE (Code_De _Classe, Code_De_Systeme, Code_D_Etablissement, Code_De _Formation, Code_De_Niveau, Nom_De _Classe,

Nombre_D_Etudiants, Annee_D_Entree)

5 COMPRENDRE (Code_De _Formation, Code_De _Discipline, Semestre)

6 DISCIPLINE (Code_De _Discipline, Code_De _Branche,

Nom_De_Discipline, Nombre_D_Credits, Volume_Horaire_De_Cm,

Volume_Horaire_De_Tp)

7 ENSEIGNER_IRRE (Code_De _Classe, Code_De_Professeur,

Code_De_Discipline, Numero_De_Semaine, Semestre, Annee)

Trang 19

8 ENSEIGNER_RE (Code_De _Salle, Code_De _Classe, Code_De_Professeur, Code_De_Type, Code_De _Discipline, Numero_De_Semaine, Semestre, Annee, Jour_De _Semaine, Seance, Periode_De_Debut,

Nombre_De_Periodes)

9 ETABLISSEMENT (Code_D_Etablissement, Nom_D_Etablissement)

10 ETRE_DISPONIBLE (Code_De_Salle, Annee, Semestre)

11 FORMATION (Code_De_Formation, Nom_De_Formation)

12 GRADE_UNIVERSITAIRE (Code_De_Grade, Explication)

13 NIVEAU_DE_FORMATION (Code_De_Niveau, Nom_De_Niveau)

14 OBTENIR (Code_De_Grade, Code_De_Professeur, Date_D_Obtention)

15 PROFESSEUR (Code_De_Professeur, Code_De_Branche, Nom, Prenom,

Date_De_Naissance, Sexe, Annee_De_Fin_D_Etudes)

16 REPARTIR_IRRE (Code_De_Professeur, Code_De_Classe,

Code_De_Discipline, Annee, Semestre, Nombre_D_Semaines)

17 REPARTIR_RE (Code_De_Professeur, Code_De_Classe, Code_De_Type, Code_De _Discipline, Annee, Semestre)

18 REPARTIR_TEMPS (Semestre, Annee, Code_De_Professeur, Section)

19 SALLE (Code_De_Salle, Code_D_Type, Code_De_Batiment, Nom_De_Salle,

Capacite)

20 SEMAINE (Numero_De_Semaine, Semestre, Annee, Date_De_Debut,

Date_De_Fin)

21 SEMESTRE (Semestre, Annee, Date_De_Debut, Date_De_Fin)

22 SYSTEME_DE_FORMATION (Code_De_Systeme, Nom_De_Systeme)

23 TYPE_D_ENSEIGNENT (Code_De_Type, Explication)

24 TYPE_DE_SALLE (Code_D_Type, Explication)

Trang 20

II.3.1.3 Modèles physiques de données

En utilisant le système de gestion de base de données MICROSOFT ACCESS 2007

1 APPRENDRE

No Nom du champ Type Domaine de la valeur /

Contrainte

Valeur tacite

Clé Primaire Unique Non

Nul Clé étrangère Explication

1 CODE_DE_CLASSE Text (10)

x

x CLASSE (CODE_DE_CLASSE) Code de classe

- La suppression d’une classe amène la suppression de tous les enregistrements concernant celle – là dans la table « Apprendre »

- Il faut avoir déjà conservé une classe avant de conserver les enregistrements concernant celle – là dans la table « Apprendre »

b APPRENDRE – DISCIPLINE

- La suppression d’une discipline amène la suppression de tous les enregistrements concernant celle – là dans la table « Apprendre »

- Il faut avoir déjà conservé une discipline avant de conserver les enregistrements concernant celle – là dans la table « Apprendre »

c APPRENDRE – SEMESTRE

- La suppression d’un semestre amène la suppression de tous les enregistrements concernant celle – là dans la table « Apprendre »

Trang 21

- Il faut avoir déjà conservé un semestre avant de conserver les enregistrements concernant celui – là dans la table « Apprendre »

2 BATIMENT

No Nom du champ Type Domaine de la valeur /

Contrainte

Valeur tacite

Clé Primaire Unique Non

Nul Clé étrangère Explication

Clé Primaire Unique Non

Nul Clé étrangère Explication

Clé Primaire Unique Non

Nul Clé étrangère Explication

(CODE_DE_SYSTEME) Code de système

(CODE_D_ETABLISSEMENT)

Code d’établissement

Trang 22

4 CODE_DE_FORMATION Text (8) FORMATION

(CODE_DE_FORMATION) Code de formation

(CODE_DE_NIVEAU) Code de niveau

Tableau 4 : Classe

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE :

a CLASSE – SYSTEME_DE_FORMATION

- La suppression d’un système de formation amène la suppression de toutes les classes appartenant à lequel

- Il faut avoir déjà conservé un système de formation avant de conserver des classes appartenant à lequel

b CLASSE - ETABLISSEMENT

- La suppression d’un établissement amène la suppression de toutes les classes appartenant à lequel

- Il faut avoir déjà conservé un établissement avant de conserver des classes appartenant à lequel

c CLASSE - FORMATION

- On ne peut pas supprimer une formation s’il y avait déjà des classes suivies celle – là

- Il faut avoir déjà conservé une formation avant de conserver les classes suivies celle – là

d CLASSE – NIVEAU_DE_FORMATION

- La suppression d’un niveau de formation amène la suppression de toutes les classes appartenant à lequel

- Il faut avoir déjà conservé un niveau de formation avant de conserver des classes appartenant à lequel

Trang 23

5 COMPRENDRE

No Nom du champ Type Domaine de la valeur

/ Contrainte

Valeur tacite

Clé Primaire Unique Non

Nul Clé étrangère Explication

1 CODE_DE_FORMATION Text (8)

x

x FORMATION (CODE_DE_FORMATION) Code de formation

(CODE_DE_DISCIPLINE) Code de discipline

Tableau 5 : Comprendre

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE :

a COMPRENDRE – FORMATION

- La suppression d’une formation amène la suppression de tous les enregistrements concernant celle – là dans la table « Comprendre »

- Il faut avoir déjà conservé une formation avant de conserver les enregistrements concernant celle – là dans la table « Comprendre »

b COMPRENDRE – DISCIPLINE

- La suppression d’une discipline amène la suppression de tous les enregistrements concernant celle – là dans la table « Comprendre »

- Il faut avoir déjà conservé une discipline avant de conserver les enregistrements concernant celle – là dans la table « Comprendre »

6 DISCIPLINE

No Nom du champ Type Domaine de la

valeur / Contrainte

Valeur tacite

Clé primaire

Unique Non

nul Clé étrangère Explication

(CODE_DE_BRANCHE)

Code de branche

Trang 24

4 NOMBRE_D_CREDITS Integer De 1 à 10 X Nombre de crédits

magistral

travail pratique

Tableau 6 : Discipline

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE : DISCIPLINE – BRANCHE :

- La suppression d’une branche amène la suppression de toutes les disciplines appartenant à laquelle

- Il faut avoir déjà conservé une branche avant de conserver les disciplines appartenant à laquelle

7 ENSEIGNER_IRRE

No Nom du champ Type Domaine de

la valeur /

Valeur tacite

Clé primaire

Code de classe

2 CODE_DE_PROFESSEUR Text

Code de professeur

3 CODE_DE_DISCIPLINE Text

Code de discipline

SEMAINE (NUMERO_DE_SEMAINE, SEMESTRE, ANNEE)

Semestre

semaine

Tableau 7 : Enseigner_irre

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE :

a ENSEIGNER_IRRE – REPARTIR_IRRE :

Trang 25

- On ne peut pas supprimer un enregistrement dans la table « Repartir_irre » si on a déjà conservé un enregistrement concernant celui – là dans la table « Enseigner_irre »

- Il faut avoir déjà conservé un enregistrement dans la table « Repartir_irre » avant de conserver un enregistrement concernant celui – là dans

Valeur tacite

Clé primaire

Unique

Non nul

Code de classe

Semestre

Trang 26

8 JOUR_DE_SEMAINE Integer De 2 à 7 X Jour de

semaine

Trang 27

9 ETABLISSEMENT

No Nom du champ Type Domaine de la valeur /

Contrainte

Valeur tacite

Clé Primaire Unique Non

Nul

Clé étrangère Explication

Clé Primaire Unique Non

SEMESTRE (SEMESTRE, ANNEE) Année

Tableau 10 : Etre_disponible

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE :

a ETRE_DISPONIBLE – SALLE

- La suppression d’une salle amène la suppression de tous les enregistrements concernant celle – là dans la table « Etre_disponible »

- Il faut avoir déjà conservé une salle avant de conserver les enregistrements concernant celle– là dans la table « Etre_disponible »

b ETRE_DISPONIBLE – SEMAINE

- La suppression d’une semaine amène la suppression de tous les enregistrements concernant celle – là dans la table « Etre_disponible »

- Il faut avoir déjà conservé une semaine avant de conserver les enregistrements concernant celle– là dans la table « Etre_disponible »

Trang 28

11 FORMATION

No Nom du champ Type Domaine de la valeur

/ Contrainte

Valeur tacite Clé primaire

Unique Non Nul Clé étrangère Explication

Unique Non Nul Clé étrangère Explication

Trang 29

Code de professeur

3 DATE_D_OBTENTION Date >ANNEE_DE_FIN_D_ETUDES

- On ne peut pas supprimer un grade universitaire s’il y avait un professeur qui l’a obtenu

- Il faut avoir déjà conservé un grade avant de conserver les enregistrements concernant celui– là dans la table « Obtenir »

b OBTENIR – PROFESSEUR

- La suppression d’un professeur amène la suppression de tous les enregistrements concernant celle – là dans la table « Obtenir »

- Il faut avoir déjà conservé une semaine avant de conserver les enregistrements concernant celle– là dans la table « Obtenir »

15 PROFESSEUR

No Nom du champ Type Domaine de la valeur / Contrainte Valeur

tacite

Clé primaire

Unique Non

Nul Clé étrangère Explication

Trang 30

5 DATE_DE_NAISSANCE Date

Between DateAdd(“yyyy”, -65, Date()) and DateAdd(“yyyy”, -20, Date())

d’études

Tableau 15 : Professeur

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE : PROFESSEUR – BRANCHE

- La suppression d’une branche amène la suppression de tous les professeurs appartenant à laquelle

- Il faut avoir déjà conservé une branche avant de conserver les professeurs appartenant à laquelle

16 REPARTIR_IRRE

No Nom du champ Type

Domaine de la valeur / Contrainte

Valeur tacite Clé

PROFESSEUR, SEMESTRE, ANNEE)

Code de professeur

APPRENDRE (CODE_DE CLASSE, CODE_DISCIPLINE, SEMESTRE, ANNEE)

Année

Trang 31

Clé primaire Unique Non Nul Clé étrangère Explication

1 CODE_DE_PROFESSEUR Text (5)

x

x PROFESSEUR (CODE_DE_PROFESSEUR) Code de professeur

(CODE_DE_TYPE)

Code de type

APPRENDRE (CODE_DE CLASSE, CODE_DISCIPLINE, SEMESTRE, ANNEE)

Code de classe

Trang 32

CONTRAINTE D’INTÉGRITÉ DE RÉFÉRENCE :

a REPARTIR_RE – PROFESSEUR

- La suppression d’un professeur amène la suppression de tous les enregistrements concernant celui – là dans la table « Repartir_re »

- Il faut avoir déjà conservé un professeur avant de conserver les enregistrements concernant celui – là « Repartir_re »

Clé primaire Unique Non Nul Clé étrangère Explication

1 CODE_DE_PROFESSEUR Text (5)

x

x PROFESSEUR (CODE_DE_PROFESSEUR) Code de professeur

SEMESTRE (SEMESTRE, ANNEE)

Année

Tableau 18 : Répartir_temps

Ngày đăng: 20/03/2018, 00:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w