Optimisation par essaim particulaire pour un problème d ordonnancement et d affectation de ressources
|
|
- Jules Leblanc
- il y a 8 ans
- Total affichages :
Transcription
1 INSTITUT SUPERIEUR D INFORMATIQUE DE MODELISATION ET DE LEURS APPLICATIONS COMPLEXE DES CEZEAUX BP AUBIERE CEDEX Rapport de Projet 3ème année Modélisation et Calcul Scientifique Optimisation par essaim particulaire pour un problème d ordonnancement et d affectation de ressources En vue de l obtention du diplôme d ingénieur Pressente par : Arnaud Rioland Alexandre Eudes Responsable ISIMA : Michel Gourgand / Sylverin Kemmoé Durée : 150h Date : 2007
2 INSTITUT SUPERIEUR D INFORMATIQUE DE MODELISATION ET DE LEURS APPLICATIONS COMPLEXE DES CEZEAUX BP AUBIERE CEDEX Rapport de Projet 3ème année Modélisation et Calcul Scientifique Optimisation par essaim particulaire pour un problème d ordonnancement et d affectation de ressources En vue de l obtention du diplôme d ingénieur Pressente par : Alexandre Eudes Arnaud Rioland Responsable ISIMA : Michel Gourgand / Sylverin Kemmoé Durée : 150h Date : 2007
3 Remerciements Nous remercions Monsieur Sylverin Kemmoé et Monsieur Michel Gourgand pour leur soutien et leur aide apportées tout au long de ce projet.
4 Résumé Notre projet de dernière année d école d ingénieur consistait à étudier une méta heuristique, l optimisation par essaim particulaire. Cela consiste à trouver l optimum d une fonction ou d un problème donné en déplaçant des particules dans son ensemble de définition. Nous l avons implémenté pour des fonctions continues, et pour des problèmes de recherche opérationnelle : de type flow shop et de type R.C.P.S.P. (Resource Constraint Project Scheduling Problem). Ensuite, nous avons réalisé une interface graphique qui permet de visualiser les résultats et de les commenter, mais qui pourra être aussi réutilisé pour d autres problèmes d optimisation. Mot clé : Optimisation, Essaim particulaire, Méta-heuristique, Recherche opérationnelle, flow shop, R.C.P.S.P., Interface graphique Abstract During our last Engineering School year, we have to study a meta-heuristic: the particular swarm optimization (P.S.O.). It consists in finding the function or problem s optimum. We have programmed for continuous functions and for operations research problem which are flow shop and R.C.P.S.P. (Resource Constraint Project Scheduling Problem). Then, we design a graphical interface to be enabled to display results and to comment its, but it would be reused on other optimization problem. Keyword: Optimization, Particular swarm, Meta heuristic, Operations research, Flow shop, R.C.P.S.P., graphical interface
5 Tables des Matières Introduction... 1 I. Présentations de l'algorithme d'optimisation par essaim de particules Définitions Principe général de l'optimisation par essaim de particule Optimisation continue Optimisation discrète... 6 a) Le flow-shop... 6 b) Le RCPSP (Resource Constraint Project Scheduling Problem)... 9 II. Implémentation L application Technologie XML Programmation de la méta heuristique Les classes génériques Classe spécifiques ) L interface graphique Table des figures Figure 1 - Exemple de voisinage géographique... 3 Figure 2 - Deux cas de voisinage social... 4 Figure 3 - Principe du déplacement d'une particule... 5 Figure 4 - Présentation des 2 cas pour le calcul du makespan... 7 Figure 5 - Evaluation du makespan pour le RCPSP Figure 6 Flux et utilisation de l XML Figure 7 - Représentation UML de la partie calcul Figure 8 Arbre d héritage de la classe problème Figure 9 - Description de la partie édition de l interface graphique Figure 10 - Description de la partie résultat de l interface graphique... 20
6 Introduction L optimisation est omniprésente dans tous les domaines : dans l industrie, dans l économie, dans la recherche scientifique, dans l aérospatiale C est la recherche des compromis entre un besoin et plusieurs contraintes : entre la résistance et le poids, entre les coûts, les ressources et les temps de production par exemple. De très nombreuses techniques se sont développées au cours du siècle dernier. Nous en avons étudié une : l optimisation par essaim particulaire. Cet algorithme était conçu à l origine pour résoudre des problèmes définis dans sur des ensembles continus. Il consiste en gros à déplacer un ensemble de particules dans l espace de définition de la fonction que l on veut étudier et de mémoriser les coordonnées de la meilleure position. A l heure actuelle, la communauté scientifique travaille sur des problèmes dans un contexte discret, des problèmes d ordonnancement, d affectation, de gestion de ressources comme le flow shop et le R.C.P.S.P. (Resource Constraint Project Scheduling Problem). Il existe parfois des algorithmes qui peuvent les traiter de manière exacte mais qui ont une complexité temporelle trop grande. Des méthodes ont été mises en place pour résoudre ce type de problème par valeur approchée et parmi elles, l adaptation de l optimisation par essaim particulaire. Elle a été imaginée par Maurice Clerc, un chercheur qui travaille au sein de l entreprise France Télécom, en On remplace les points par des ordonnancements et les fonctions continues par des fonctions d évaluation. Notre projet a consisté à mettre en place une interface graphique afin d étudier les différentes propriétés de l optimisation par essaim particulaire. Nous avons donc programmé cet algorithme pour optimiser une fonction continue, un problème de flow shop et un problème type R.C.P.S.P. et grâce à l outil de visualisation que nous avons produit, on a pu étudier les résultats que nous avons obtenu. Tout d abord, nous allons vous présenter l optimisation par essaim particulaire dans ses deux contextes (continus et discret) et les problèmes du flow shop et du R.C.S.P.S.P. puis comment nous avons implémenté les algorithmes d optimisation et l interface graphique. Enfin nous disserterons sur les résultats que nous ont donné nos différents tests. 1
7 I. Présentations de l'algorithme d'optimisation par essaim de particules 1. Définitions En règle générale, on ne connaît pas toujours de méthode exacte pour trouver la solution d'un problème d'optimisation en recherche opérationnelle. Dans ce cas on peut d'abord tenter de voir si le problème que l'on étudie n'a pas de problème équivalent qui ont déjà été résolu. Si l'on n'a toujours pas trouvé de méthode de résolution alors on utilise ce que l'on appelle une heuristique, c'est-à-dire un algorithme qui donne une solution approchée. Ces algorithmes sont assez intuitifs ou simples. On les déduits grâce à des observations et en faisant preuve de bon sens. Leur principe consiste souvent à explorer un certain nombre de solutions et de mémoriser la meilleure. Ils peuvent faire intervenir le hasard: cela permet de balayer un plus grand nombre de solution éventuelle, mais il faut les exécuter plusieurs fois pour tendre au mieux vers la solution optimale. Certaines heuristiques sont classées parmi les méta-heuristiques. Ce sont des algorithmes dont le principe peut être réutilisé pour traiter différents problèmes d'optimisation. Ce sont des principes génériques que l'on adapte selon le besoin. La plus utilisé des heuristiques et la plus simple est la descente stochastique. Voici son fonctionnement dans le cas d'un problème de minimisation : on choisit une solution initiale, on sélectionne au hasard un de ses voisins : Si la valeur de la fonction objectif pour cette nouvelle solution est plus petite alors on prend ce nouveau point comme point de référence et on observe ses voisins. Sinon on recherche un autre voisin. On s'arrête quand on se rend compte que l'on ne trouve plus de meilleure solution. 2. Principe général de l'optimisation par essaim de particule La méta-heuristique que nous avons étudiée dans le cadre de notre projet est l'optimisation par essaim de particules. On dispose d'une fonction objectif à optimiser dans un sens ou dans l'autre. Un essaim est un ensemble de particules positionnées dans l'espace de définition de la fonction objectif. Le principe de l'algorithme consiste à déplacer ces particules dans l'espace de définition afin de trouver la solution optimale. 2
8 Une particule est caractérisée par plusieurs attributs: sa position actuelle: c'est-à-dire ses coordonnées dans l'ensemble de définition et la valeur de la fonction objectif lui correspondant. sa meilleure position : c est la valeur obtenue par la particule et ses coordonnées. sa vitesse: cette donnée, recalculée à chaque itération de l'algorithme permet de déduire la position suivante de la particule. Elle est fonction de la meilleure position de la particule depuis le début de la recherche, du voisin le mieux positionné à l'instant actuel et de la vitesse précédente de la particule. ses voisins: c'est un ensemble de particule qui influe sur ses déplacements, en particulier celui qui est le mieux positionné. Il faut ensuite définir les voisinages et leur structure, il en existe de deux types : les voisinages géographiques : les voisins d'une particule sont ses voisines les plus proches. Ce type de voisinage impose l'utilisation d'une distance pour recalculer à chaque itération (ou toutes les k itérations) les voisins de chaque particule. Ci-dessous un exemple où les voisins d une particule sont les deux particules qui lui sont le plus proche. Particule colorée Voisins de la particule Figure 1 - Exemple de voisinage géographique 3
9 Les voisinages sociaux : les voisinages sont établis à l'initialisation et ne sont pas modifiés ensuite. Il existe différentes structures de voisinages sociaux, nous allons vous en présenter quelques uns. Voisinage en ligne et colonne Voisinage en cercle Figure 2 - Deux cas de voisinage social Si on utilise un voisinage en lignes et colonnes alors deux particules de l essaim sont voisines si elles appartiennent à la même ligne ou à la même colonne. Si on utilise un voisinage en cercle, les voisines d une particule sont, par exemple, les deux qui sont positionnées à sa gauche et les deux qui sont positionnées à sa droite. Le principe de l'optimisation par essaim particulaire a notamment été conçu à partir de modèles sociaux. En effet, chacune des particules agit en fonction de sa propre expérience et de celle de ses voisins. Pour se déplacer elle prend en compte son histoire (sa meilleure position) et est attirée par la meilleure particule actuelle de son voisinage. C'est le modèle des comportements d'individu au sein d'une tribu. 3. Optimisation continue Dans un premier temps, pour nous familiariser avec la méta-heuristique et ses principes nous l'avons utilisé dans son cadre originel : l'optimisation de fonctions continues. Les particules sont dans un premier temps placées aléatoirement dans l'ensemble de définition de la fonction objectif. Ensuite on calcule pour chacune de ses particules leur vitesse. Dans ce but, on mémorise leur meilleure position depuis le début et on recherche celle de ses voisins les plus proches à cet instant-là. 4
10 Où : et sont les vitesses de la particule aux itérations k et k+1. est la meilleure position de la particule. est la meilleure position d'un voisin à l'itération k. est la position de la particule à l itération k., et sont des coefficients fixés au début du programme ou générés aléatoirement. Ensuite, on peut déterminer la position suivante de la particule grâce à la vitesse que l on vient de calculer : Où : est la position de la particule à l'itération k. est générée aléatoirement. est nulle. Position actuelle de la particule Position du meilleur voisin Vitesse actuelle Meilleure position de la particule Nouvelle position Figure 3 - Principe du déplacement d'une particule Les fonctions étant généralement définies dans un domaine borné, on doit donc gérer les effets de bord i.e. les moments où la particule s'échappe de cet ensemble. Dans ce cas deux optiques: on peut imaginer que la particule rebondit sur cette limite ou qu'elle reste bloqué sur la limite et qu'elle ne puisse plus se mouvoir dans cette direction. Nous avons choisit la deuxième solution, elle est plus simple à mettre en œuvre et permet d'être plus précis si la solution recherchée se trouve sur les contours de l'ensemble de définition. 5
11 4. Optimisation discrète Au départ, les algorithmes d optimisation par essaim particulaire était destinée exclusivement pour des fonctions continues. En 2000, Maurice Clerc s'est rendu compte que cet algorithme pouvait être utilisé à d'autres fins, et notamment pour résoudre des problèmes d'ordonnancement, d'affectation ou de planification. a) Le flow-shop Dans un premier temps, nous avons dû adapter cette méta-heuristique au problème du flow shop. Le problème du flow shop est un problème d'ordonnancement. On a pièces à fabriquer et machines. On va donc noter le temps de traitement de la pièce sur la machine. Les pièces sont traitées par toutes les machines et on a qu'une seule gamme (une gamme c'est l'ordre dans lequel les pièces parcourent la chaîne de production). L'objectif est de déterminer l'ordonnancement de traitement des pièces qui minimise le makespan, c'est-à-dire le temps total de traitement de l'ensemble des pièces. 1. Calcul du makespan pour un ordonnancement des pièces données : On définit la fonction qui retourne la pièce traitée en i ème position et la date de sortie de la pièce de la machine. On commence par placer la première pièce de l ordonnancement sur la première machine. Ensuite, on calcule les dates de fin de traitement des pièces sur la première machine. Il en est de même pour les dates de fin de traitement de la première pièce de l ordonnancement sur les différentes machines. 6
12 Les calculs des autres dates de sortie se fait récursivement. Il y a différents cas à considérer, ils dépendent de la date de fin de traitement de la pièce précédente sur la machine et de celle de la pièce sur la machine précédente (figure 3). Dans le premier cas, c est le traitement de la pièce sur la machine précédente qui se termine après la fin du traitement de la pièce précédente dans l ordonnancement donc l opération commence en. Dans le second, les dates de fin sont inversées et la piéce commence à être traité en d où la formule : On peut donc calculer le makespan : 1 2 Figure 4 - Présentation des 2 cas pour le calcul du makespan 7
13 2. Notion de vitesse : Le principal problème du passage du continu au discret réside dans les notions de position et de vitesse. Une position dans l ensemble de recherche correspond à un ordonnancement. Les vitesses doivent permettre de passer d un ordonnancement à un autre c est pourquoi on les définit comme un ensemble de permutation., et les deux soustractions ci-dessus correspondent à des vitesses. Les, et sont des ordonnancements. Il faut donc redéfinir les opérateurs et. L opérateur + permet d appliquer à un ordonnancement un ensemble de permutation (une vitesse). Exemple : L opérateur est utilisé pour concaténé deux permutations. Exemple : L opérateur est la multiplication par un scalaire positif d une permutation. Si ce scalaire est un entier alors on répète n fois les permutations. Si c est un réel x compris entre 0 et 1, on enlève certaines permutations, plus le nombre est petit et moins on en laisse. Pour les autres entiers positifs on les écrit sous la forme n + x. L opérateur retourne l ensemble des permutations qui permettent de passer d un ordonnancement à un autre. Exemple : Nous disposons maintenant de tous les outils pour résoudre un problème de flow shop par la méthode de l'optimisation par essaim particulaire. On peut suivre désormais le principe de la méta heuristique. 8
14 3. No hope La procédure «no hope» (pas d espoir en français) permet de relancer l essaim quand on ne parvient plus à améliorer la solution optimale du problème. Après un nombre important d itération, on réinitialise les particules afin de pouvoir analyser d autres ordonnancements (cf.ii.2.1) b) Le RCPSP (Resource Constraint Project Scheduling Problem) Le problème du R.C.P.S.P. est à la fois un problème d'ordonnancement et un problème de planification. On dispose d'un nombre constant de ressource. On a n tâches à effectuer, chacune nécessite un certain nombre de ressource pendant un temps de traitement donné. Il s'agit donc de générer un planning qui minimise la durée totale nécessaire pour effectuer toutes les tâches. On utilise les mêmes principes pour les positions et les vitesses que ceux du flow shop. C'est lors du calcul du makespan que l'on détermine les dates de début et de fin des différentes tâches. L'algorithme ne se contente pas de calculer la durée totale des opérations mais planifie toutes les tâches. 1. Calcul du makespan : On dispose d'un ordonnancement des tâches qui ne correspond pas à l'ordre dans lequel ces tâches sont effectuées (contrairement au flow shop par exemple) mais plutôt à l'ordre d insertion des tâches dans le planning. En effet, on commence par sélectionner la première opération de l'ordonnancement: on l'insère dans le planning au tout début du calendrier. On prend la deuxième tâche et on regarde si l on dispose d assez de ressource à t=0 : si oui alors on regarde si ces ressources restent disponibles pendant la durée de la tâche. Sinon on recherche une autre date de début de la tâche (on recherche la date la plus petite possible). On continue à rentrer les tâches dans le planning au fur et à mesure. Pour récupérer le temps total de traitement, on mémorise la plus grande des dates de fin de tâche, ce qui va nous permettre d évaluer les différents ordonnancements. Le passage du flow shop au R.C.P.S.P. s'est donc limité à la modification de la fonction objectif. 9
15 R MAKESPAN Figure 5 - Evaluation du makespan pour le RCPSP Sur l exemple ci-dessus, les pièces sont insérées dans l ordre croissant. 2. Prise en compte des contraintes de précédence A cela, nous devons ajouter les contraintes de précédence. La tâche i précède la tâche j si la date de fin de la tâche i est inférieure à la date de début de la tâche j. Pour gérer ces contraintes, il faut bien veiller à ce que dans les ordonnancements i est placé avant j pour toutes les contraintes contenues dans ce problème et que la date de début d une tâche soit supérieure à toutes les dates de fin des tâches qui la précède. Dans un premier temps, il faut adapter les ordonnancements à ces contraintes : si une tâche en précède une autre, alors elle devra être placé devant dans l ordonnancement. Pour cela, il faut redéfinir l opérateur qui permet d appliquer une vitesse (c est-à-dire un ensemble de permutations) à un ordonnancement, ceci afin qu aucune contrainte de précédence ne soit violée. Prenons un exemple simple : Exemple : avec la contrainte. On veut permuter 2 et 5 sur l ordonnancement ci-dessus. On ne peut pas les échanger directement comme sur le flow shop car, dans ce cas, on violerait la contrainte, il faut donc procéder pas à pas. La contrainte n existe pas : on peut donc les permuter. De la même manière on démontre que l on peut intervertir 2 et 4 puis 2 et 5. 2 a pris la place de 5, on obtient l ordonnancement suivant :. Il faut maintenant ramener le 5 à la place du 2. On peut 10
16 échanger 4 et 5. Ensuite, en principe, il faudrait permuter 3 et 5 mais cela violerait la contrainte : dans ce cas là, on décide de laisser 5 à cette place. Le principe général consiste donc à déplacer les deux tâches dans l ordonnancement d une place à chaque fois, on commence par bouger vers la droite la première tâche dans l ordonnancement et on s arête si on a atteint la place désirée ou si il y a une situation de blocage dues aux contraintes de précédence. On opère de la même manière avec la seconde tâche à échanger, mais en se déplaçant vers la gauche. Il faut aussi prendre en compte cette contrainte au niveau du calcul du makespan. On peut fixer la date minimale de début d une tâche comme étant le maximum de toutes les dates de fins des tâches qui la précède. On les connait toutes car grâce à l ordonnancement car on les a déjà calculées. 11
17 II. Implémentation 1. L application Le but de ce projet était de réaliser une application capable d optimiser différents problèmes grâce à l optimisation par essaim particulaire. Il était aussi demandé d avoir une interface graphique permettant de définir les différents paramètres. L application se devait d être rapide et modulaire. Pour cela il a été décidé de découpler la partie implémentation de la méta-heuristique et la visualisation graphique. Le système d entrée sortie à été construit de manière à découpler le plus possible le module de calcule de l interface. Pour cela on a utilisé la technologie XML pour la conception de l interfaçage entre les deux modules : Génération Automatique Fichier de Résultat Module de Calcul Outil Statistique Interface Graphique Fichier de configuration Interface Graphique Figure 6 Flux et utilisation de l XML L utilisation de l XML permet de créer des flux entre les différentes partie du logiciel qui sont ainsi découpler et peuvent être lancés sur des machines différentes mais aussi être réutilisé plus facilement. Notre travail a consisté à créer le module de calcul et l interface graphique, un module de génération automatique du fichier de configuration pourra être implémenté par la suite. L application se divise en deux parties distinctes : Le code de calcul réalisé en c++ pure. Cela permet de pouvoir, utiliser ce code sur tout type de machine. Il lit en entré un fichier de configuration qui décrit les actions à effectuer : Le Problème et la manière de l optimiser. Et génère en sortie un fichier de résultat. L interface graphique, réalisé en c++.net qui fonctionne seulement sous Windows. 12
18 Elle est capable de génère le fichier de configuration et de lire le fichier de données. 2. Technologie XML La technologie Xml( Extensible Markup Language) provient des technologie web et permet de construire, utiliser,explorer des documents contenant des données structurées par un système de balise. Ce format de fichier a l avantage d être facile à parser(lire le fichier et stocker ses informations dans l application) Le fait de rendre compte de la structure des données, la rend parfaitement compatible avec le concept d objet des langages évolués actuels. Ces deux technologies se combinent parfaitement. Le langage objet permet de créer les structures dynamiques et le XML apporte la partie transport, stockage et conversion de l information. Puisque liée aux technologies web, cette technologie est en plein essor et de ce fait, son utilisation est simplifiée par l existence de parseur prêt à l emploi. Dans notre cas nous avons utilisé la bibliothèque Xerces qui a l avantage d être en c++ et de plus d être portable. Cette bibliothèque fournit un patron de conception d un parseur Xml qui permet de créer son propre parseur adapté à ses données. 3. Programmation de la méta heuristique Nous avons choisi le C++ comme langage de programmation pour ce projet. Il a l avantage d être orienté objet et cela nous a permis de factoriser le code et de n'écrire qu une fois les principes généraux de l optimisation par essaim particulaire. De plus, la bibliothèque S.T.L. (standard Template Library) contient des outils pour manipuler très facilement des listes utiles pour définir un essaim ou des voisinages. On peut partager en deux catégories les différentes classes que l'on a implémentées : Les classes génériques, c'est-à-dire celles qui sont indépendantes du problème à résoudre: Essaim : cette classe contient l'ensemble des particules et les voisinages, elle contient la position de la valeur optimale trouvée. Particule : c'est une composante de l'essaim qui se déplace dans l'espace de définition de la fonction objectif. Elle contient sa position actuelle, sa meilleure position et leurs valeurs. 13
19 1 1 Essaim Meilleure particule N 1 Particule Problème 1 Position actuelle 1 Meilleur position Vitesse Génère Instance Génère Figure 7 - Représentation UML de la partie calcul Les autres classes sont spécifiques au problème à résoudre : Problème : elle contient les informations générales qui sont recueillies dans les fichiers d'entrée et la fonction objectif. Instance : c est les coordonnées d une particule dans l ensemble de définition et la valeur de la fonction objectif en ce point. Vitesse : elle contient les données qui permettent de passer d'une instance à une autre. 14
20 1. Les classes génériques La classe Essaim contient le nombre de particules et la liste les regroupant. Elles sont stockées dans un vecteur de la S.T.L. (vector<particule*>). On lui associe un Problème. Elle possède aussi un attribut qui pointe sur la meilleure particule trouvée depuis le début de la recherche de l optimum et une particule par voisinage qui contient la meilleure position trouvée par le voisinage. C est à partir de cette classe que l on gère l avancée de l algorithme. Elle ordonne le déplacement des particules. A chacune on leur demande dans un premier temps de déterminer leur nouvelle vitesse avant de les déplacer. La classe Particule permet de représenter les points qui se déplacent dans l espace de définition de la fonction objectif. Elle contient deux éléments de la classe Instance, l un contenant la position actuelle de la particule, et l autre la meilleure position visitée par cette même particule. Elle est associée à une vitesse qui permettra de calculer la prochaine position. La classe Essaim possède une méthode «No Hope» qui est activée si la meilleure position n est pas améliorée pendant les X dernières itérations. Elle consiste à, dans un premier temps, faire revenir la particule à sa meilleure position. Et à partir de la a ce déplacer aléatoirement. Pour cela à chaque itération on créé une nouvelle vitesse et on l applique sur la particule. On s arrête dans le cas où la valeur de la particule s est améliorée ou si l on a effectué X itération. Cette procédure permet de ressusciter une particule qui s est orienté dans une direction n offrant plus de valeurs intéressantes et à restaurer la diversité au sein de l essaim. Le second problème concernant les voisinages concerne leur stockage. Nous avons testé deux méthodes: Pour chaque particule, on crée une liste où on mémorise l adresse de chacun des voisins. Pour rechercher le meilleur, on parcourt cette liste pour chacune des particules et on retient le meilleur. On définit tous les voisinages par rapport à l essaim. On commence pour chacun des voisinages par récupérer la meilleure position actuelle puis pour toutes les particules, on sélectionne la meilleure position des voisinages auxquelles elle appartient. Nous avons commencé par mettre en place la première méthode puis nous nous sommes rendu compte qu en utilisant la deuxième on ne parcourt qu une seule fois chaque voisinage par itération, ce qui permet de gagner du temps en cas d un nombre important de particule. 15
21 2. Classe spécifiques Pour chaque problème à traiter par la méthode d essaim particulaire, on implémente trois classes spécifiques : Une classe qui dérive de Problème qui contiendra les attributs spécifiques à chaque problème et la fonction d évaluation d une Instance. Une classe qui dérive de Instance qui contiendra spécificité des solutions du problème et l application d une vitesse à une Instance. Une classe qui dérive de Vitesse qui contiendra la représentation d une vitesse et les operateurs pour les manipuler entre elles. Problème RCPSP Problème Flow Shop Problème Continu Problème Figure 8 Arbre d héritage de la classe problème L arbre ci-dessus est aussi valable pour les classes Instance et Vitesse, en précisant que les classes Vitesse spécifique au RCPSP et au flow shop sont identiques. 16
22 a) Le Problème continu Dans le cas du Problème continu, il faut définir le problème, l instance, la vitesse correspondante. En continu, la définition du Problème revient à donner la fonction d évaluation, le domaine de validité, le nombre de dimensions. Une instance contient la position courante, un point de, c'est-à-dire un tableau de réel. Elle doit vérifier que la position reste valide après chaque déplacement (on reste dans les bornes). La vitesse est un vecteur de, donc un tableaux de réel aussi. b) Le Problème de Flowshop Pour implémenter le problème du flow shop, une Instance est une liste qui contient l ordre dans lequel les pièces doivent être traitées. Les listes sont initialisées par l intermédiaire de la fonction random_shuffle( iterator deb, iterator fin) de la S.T.L. Cette fonction prend un élément de la classe vector (son début et sa fin) en paramètre puis réordonne aléatoirement ses éléments. La classe Instance contient aussi la valeur du makespan correspondant à l ordonnancement. Cette valeur est calculée dans la classe Problème, qui contient la fonction d évaluation spécifique au problème du flow shop explicitée dans au chapitre précédent, et elle contient aussi une méthode permettant de lire et d enregistrer les données des fichiers de données, qui sont le nombre de pièce, le nombre de machines et tous les temps de traitement. La classe Vitesse contient une liste qui stocke les permutations. On rentre les coordonnées des points qui devront être intervertis. Cette liste contient 2n entiers, chaque permutation correspondant à 2 entiers (les 2 à permuter). Ensuite, nous avons codé les opérateurs nécessaires aux calculs. L opérateur défini une simple concaténation, l opérateur en répétant plusieurs fois la liste ou en la scindant. L opérateur est en fait ici un constructeur : on lui fournit deux ordonnancements d entrée et il retourne une nouvelle instance de la classe Vitesse qui permet d aller d un ordonnancement à un autre. Il ne reste plus qu à appliquer ces permutations à la particule que l on va déplacer. C) Le RCPSP On est parti de l existant pour le flow shop, on conserve la gestion des ordonnancements. Seul change leur initialisation : on génère dans un premier temps une liste qui est commune pour toutes les particules qui assure le respect des contraintes de précédence (pour cela on insère les tâches une à une dans l ordonnancement si leurs prédécesseurs sont déjà insérés dans la liste. Ensuite pour chacune des particules on applique une vitesse générée aléatoirement, ce qui permet de diversifier les particules avant de lancer l optimisation. Dans la classe Instance, on a modifié aussi l opérateur +, celui que l on utilise pour appliquer une vitesse à une particule. On bouge à chaque fois d une place les tâches dans l ordonnancement, afin de ne pas violer une contrainte de précédence quand on effectue une 17
23 permutation (cf. I.4.b.2). Quand on programme ces vitesses, on commence par déplacer vers la droite la première tâche à permuter : Si elle peut être positionnée à la place de l autre tâche que l on voulait permuter alors décale cette autre tâche d une case vers la droite, et il faut prendre en compte ce décalage lorsqu on va vouloir ramener cette tâche à la place de la première. Sinon, la deuxième tâche de la permutation n a pas bougé et on la ramène à partir de sa position initiale. Enfin, dans la classe Problème, on récupère les données nécessaires contenues dans les fichiers d entrée, c est-à-dire le nombre de tâche, leurs durées et leurs quantités de ressources nécessaires, le nombre total de ressource disponible par unité de temps, le nombre maximum d itérations, et toutes les contraintes de précédence. Ces dernières sont stockées dans une matrice PREC. Reste ensuite à coder la fonction d évaluation (cf. I.4.b.1) qui retourne le makespan, les dates de début et de fin de chacune des tâches tout en prenant bien en compte les contraintes de précédence. On a ajouté dans la classe Instance deux tableaux pour mémoriser ces données. 4) L interface graphique L interface graphique est une surcouche permettant d utiliser le code de calcul sans programmer directement ou éditer les fichiers xml à la main. Son but est de simplifier la tâche de l utilisateur en lui donnant accès directement aux différents paramètres et en lui apportant une visualisation graphique des résultats. Elle a été programmée grâce à la technologie c++.net qui permet de créer relativement simplement des interfaces graphiques pour Windows. Le choix du c++ s imposait naturellement pour garder une continuité avec le module de calcul. Elle est composée de deux panneaux : Le premier permet de générer le fichier de configuration en créant une liste de tâche à effectuer. Elle donne la possibilité de charger ou d exporter un fichier de configuration ou d exécuter le calcul directement. Elle se présente comme suit (voir figure): La première partie gère la configuration : Un panneau permet d ajouter une nouvelle tâche en définissant les paramètres : - Nombre de réplication : le nombre de fois où l on exécute la procédure d estimation. En effet les positions et les vitesses initiales dépendent d un générateur aléatoire. Pour être sûr que la méthode donne des résultats dans tout les cas, il est nécessaire d exécuter un grand nombre de fois la méthode pour en garder que la tendance générale. 18
24 - Nombre d itération : le nombre maximum d itération effectué - La valeur optimal ou la meilleure solution connue : ce paramètre permet de calculer à quelle distance on se situe de la solution optimale et elle sert de test d arrêt pour le calcul du temps de convergence. - La case à cocher «Optimale» permet de dire s il s agit de la valeur optimale ou non. Dans le cas d une valeur optimale, on arrête la méthode sitôt cette valeur rencontrée. - La case à cocher «mémoriser tout» permet de décider si on veut stocker toute les valeurs au cours des itérations ou seulement les résultats statistiques. - Le cadre suivant sert à définir les propriétés de l essaim : les paramètres C1 et C2 et le nombre de particule. - Le bouton «ajouter» permet d ajouter la tache définie précédemment dans la liste. Le deuxième panneau permet de gérer la liste des tâches : - Le bouton «Supprimer» supprime une tâche. - Les boutons «charger» et «exporter» permettent de gérer le fichier xml de configuration associé à la liste des taches. - Le bouton «calculer» sert à exécuter le calcul et à afficher les résultats dans la deuxième partie. Mode édition Liste des tâches Paramètre générale Propriété de l essaim Type de problème Ajouter une tâche à la liste Supprimer une tâche à de la liste Charger/Exporter le ficher de configuration Exécuter la liste de Tâches Figure 9 - Description de la partie édition de l interface graphique 19
25 La deuxième partie gère l affichage des résultats : Un arbre permet d accéder à tous les niveaux de données stockées : du problème qui donne les statistiques générales de chaque exécution qui donne la moyenne et la meilleure position au court du temps et enfin de chaque particule. Le graphe permet de visualiser graphiquement les résultats associé à l élément sélectionné dans l arbre. Le curseur permet de sélectionner l itération dont on veut afficher les propriétés. Le cadre du bas affiche les informations courantes. Les boutons «charger» et «exporter» permettent de gérer le ficher de résultat. Mode résultat Liste des résultats Evolution d une particule Evolution de la meilleure particule Position du curseur Déplacer la position courante Charger/Exporter le ficher de résultat Propriétés de la position courante Figure 10 - Description de la partie résultat de l interface graphique 20
26 5) Résultat Optimisation de fonction continu : Pour 30 réplications de 20 particules et 100 itérations avec C1=0.5 C2=0.5 fonction Nb d itération moyen Valeur moyenne objectif Minimum T moyen(s) Objectif atteint Norme² * Rosenbrock e Rastrigin Griewank e shaffer Pour 30 réplications de 20 particules et 100 itérations avec C1=0.2 C2=0.8 fonction Nb d itération moyen Valeur moyenne objectif minimum T moyen(s) Objectif atteint Norme² e e Rosenbrock e Rastrigin Griewank shaffer On voit que l optimisation par essaim particulaire optimise les fonctions objectifs. La valeur objectif est atteint dans la plupart des cas et le minimum est très proche de 0. L influence des coefficients c1 et c2 est manifeste mais son influence dépend de la fonction la certain jeu de coefficient améliore la solution de certain problème, ces coefficients en dégrade d autre. 21
27 Pour le Flow shop, Avec C1=0.5 et C2=0.5 fonction Nb d itération Valeur objectif minimum T moyen(s) Objectif moyen moyenne atteint Pb Pb Pb Pb Pour le Flow shop la meilleure solution connue est approchée asymptotiquement mais nécessite un grand nombre d itération pour l atteindre (convergence lente). Les coefficients C1 et C2 doivent être réglé précisément pour converger plus vite. 22
28 Conclusion Nous avons implémenté l optimisation par essaim particulaire sur des fonctions définies dans des domaines continus, et sur des problèmes de type flow shop ou R.C.P.S.P. Le point délicat concerne la recherche des bons coefficients c 1 et c 2 (les constantes que l on applique aux vitesses) pour s approcher au maximum des solutions optimales connues. L interface graphique que l on a produite est extensible à tous les problèmes d optimisation. Ces algorithmes peuvent être coder en Fortran, par exemple, puis les résultats sont sauvegardés dans un fichier XML. Ce dernier sera rechargé par notre interface graphique qui pourra afficher toutes les données dont on a besoin. On peut, de plus, générer un module statistique qui fait varier une constante de l algorithme d optimisation, ce qui nous permet d étudier différentes alternatives. En partant de ce programme, on pourrait imaginer un logiciel qui pourrait appliquer différentes méta heuristiques (recuit simulé, algorithme tabou ) à des problèmes de combinatoire, d affectation, d ordonnancement et alors comparer chacune des méthodes sur un exemple précis. Les graphiques permettraient de confronter les algorithmes et notamment leur vitesse de convergence. 23
29 Bibliographie : M.Clerc Discrete Particle Swarm Optimization illustrated by the Traveling Salesman Probleme 2003 David LEMOINE Optimisation par essaim particulaire (Examen probatoire du diplôme d ingénieur C.N.A.M.) 2004 Instance du flowshop Instance du Rcpsp 24
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Plus en détailAnnexe 6. Notions d ordonnancement.
Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document
Plus en détailTravaux pratiques avec RapidMiner
Travaux pratiques avec RapidMiner Master Informatique de Paris 6 Spécialité IAD Parcours EDOW Module Algorithmes pour la Fouille de Données Janvier 2012 Prise en main Généralités RapidMiner est un logiciel
Plus en détailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailProblèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris 12 20 Mars 2003
Problèmes d ordonnancement dans les systèmes de production Michel Gourgand Université Blaise Pascal Clermont Ferrand LIMOS CNRS UMR 6158 1 Le LIMOS Laboratoire d Informatique, de Modélisation et d Optimisation
Plus en détailALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE
ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE P. Baudet, C. Azzaro-Pantel, S. Domenech et L. Pibouleau Laboratoire de Génie Chimique - URA 192 du
Plus en détailCahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES
Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année
Plus en détailIntroduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Plus en détailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Plus en détailEbauche Rapport finale
Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide
Plus en détailInfo0804. Cours 6. Optimisation combinatoire : Applications et compléments
Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de
Plus en détailLES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage
LES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage Alain HERTZ Ecole Polytechnique - GERAD Département de mathématiques et de génie industriel CP 679, succ. Centre-ville, Montréal (QC) H3C
Plus en détailProgrammation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Plus en détailLE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
Plus en détailSommaire. Introduction.2. 1. Définition..2. 2. Historique.2. 3. Domaine d application.2. 4.Les Travaux réalisés sur les domaines d application.
Sommaire Introduction.2 1. Définition..2 2. Historique.2 3. Domaine d application.2 4.Les Travaux réalisés sur les domaines d application.3 5.Algorithme 4 6.Exemple d application 5 7. Avantage et inconvénient..6
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en détailTUTORIAL Microsoft Project 2010 Fonctionalités de base
TUTORIAL Microsoft Project 2010 Fonctionalités de base Microsoft Project est un logiciel de la suite Microsoft Office. Il s agit d un logiciel de gestion de projet et plus précisement de gestion de planning
Plus en détailComment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris
Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Diffusé par Le Projet Documentation OpenOffice.org Table des matières 1. Définir les plages...3 2. Sélectionner une plage...4
Plus en détailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailOptimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)
Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases) Heuristique Constructive Itérativement, ajoute de nouvelles composantes à une solution partielle candidate Espace
Plus en détailOrdonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative
Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative Y. Houbad, M. Souier, A. Hassam, Z.Sari Laboratoire d automatique Tlemcen Faculté de technologie, Université Abou
Plus en détailGuide de recherche documentaire à l usage des doctorants. Partie 1 : Exploiter les bases de données académiques
Guide de recherche documentaire à l usage des doctorants Partie : Exploiter les bases de données académiques Sylvia Cheminel Dernière mise à jour : décembre 04 PANORAMA DES SOURCES DOCUMENTAIRES ACADEMIQUES...
Plus en détailGestion de projets. avec. Microsoft Office PROJECT 2003
Gestion de projets avec Microsoft Office PROJECT 2003 Décembre 2006 1 Sommaire 1. Présentation de MS Office Project 2003 2. Aperçu général de l interface 3. Elaboration d un plan de projet 4. Gestion des
Plus en détail1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5
1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en
Plus en détailGUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e
GUIDE DE DÉMARRAGE SitagriPro Infinite Un service FINANCEAGRI c o r p o r a t e SOMMAIRE ÉTAPE 1 : Installation... p.3 1. Introduction 2. Connexion à SitagriPro Infinite ÉTAPE 2 : Identification... p.5
Plus en détailLe modèle de données
Le modèle de données Introduction : Une fois que l étude des besoins est complétée, deux points importants sont à retenir : Les données du système étudié Les traitements effectués par le système documentaire.
Plus en détailJade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailINSERTION TECHNIQUES FOR JOB SHOP SCHEDULING
INSERTION TECHNIQUES FOR JOB SHOP SCHEDULING ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE POUR L'OBTENTION DU GRADE DE DOCTEUR ES SCIENCES PAR Tamas KIS Informaticien mathématicien diplômé de l'université
Plus en détailCompte-rendu de projet de Système de gestion de base de données
Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison
Plus en détailEtude d un cas industriel : Optimisation de la modélisation de paramètre de production
Revue des Sciences et de la Technologie RST- Volume 4 N 1 /janvier 2013 Etude d un cas industriel : Optimisation de la modélisation de paramètre de production A.F. Bernate Lara 1, F. Entzmann 2, F. Yalaoui
Plus en détailChapitre 3. Mesures stationnaires. et théorèmes de convergence
Chapitre 3 Mesures stationnaires et théorèmes de convergence Christiane Cocozza-Thivent, Université de Marne-la-Vallée p.1 I. Mesures stationnaires Christiane Cocozza-Thivent, Université de Marne-la-Vallée
Plus en détailExemple d application en CFD : Coefficient de traînée d un cylindre
Exemple d application en CFD : Coefficient de traînée d un cylindre 1 Démarche générale Avec Gambit Création d une géométrie Maillage Définition des conditions aux limites Avec Fluent 3D Choix des équations
Plus en détailApplication 1- VBA : Test de comportements d'investissements
Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps
Plus en détailTRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )
TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 ) Voici un petit document concernant d'un espace crypté sur une clef usb en utilisant le logiciel TRUECRYPT. Ce dernier est gratuit et disponible
Plus en détailArchitecture des Systèmes d Information Architecture des Systèmes d Information
Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau
Plus en détailComment faire des étiquettes
Comment faire des étiquettes Révision 0.1 31/03/2004 Réalisé avec : OOo 1.1.0 Plate-forme / Os : Toutes n révision, mode d'emploi n révision : x.yz x : n de version majeure, par exemple 0 pour une phase
Plus en détailProgrammation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Plus en détail1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
Plus en détailOptimisation Combinatoire et Colonies de Fourmis Nicolas Monmarche April 21, 1999 Sommaire Inspiration biologiques Ant Colony Optimization Applications TSP QAP Flow Shop Problemes dynamiques 1 Historique
Plus en détailRappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailCAPTURE DES PROFESSIONNELS
CAPTURE DES PROFESSIONNELS 2 Téléchargement 3 Installation 8 Prise en main rapide 10 Lancement Recherche 14 Gestion des fichiers 23 Compare et Sépare 24 Fichiers annexes 2/ Le menu Utilitaires 32 Internet
Plus en détailMes documents Sauvegardés
Mes documents Sauvegardés Guide d installation et Manuel d utilisation du logiciel Edition 13.12 Photos et illustrations : Copyright 2013 NordNet S.A. Tous droits réservés. Toutes les marques commerciales
Plus en détailFonctions de plusieurs variables
Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailChaînes de Markov au lycée
Journées APMEP Metz Atelier P1-32 du dimanche 28 octobre 2012 Louis-Marie BONNEVAL Chaînes de Markov au lycée Andreï Markov (1856-1922) , série S Problème 1 Bonus et malus en assurance automobile Un contrat
Plus en détail1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
Plus en détailHela Boukef. To cite this version: HAL Id: tel-00577101 https://tel.archives-ouvertes.fr/tel-00577101
Sur l ordonnancement d ateliers job-shop flexibles et flow-shop en industries pharmaceutiques : optimisation par algorithmes génétiques et essaims particulaires Hela Boukef To cite this version: Hela Boukef.
Plus en détailSéparation et Evaluation pour le problème d ordonnancement avec blocage.
Séparation et Evaluation pour le problème d ordonnancement avec blocage. Abdelhakim Ait Zai 1, Abdelkader Bentahar 1, Hamza Bennoui 1, Mourad Boudhar 2 et Yazid Mati 3 1 Faculté d Electronique et d Informatique,
Plus en détailPar : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1)
1 Que signifient AON et AOA? Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1) Sommaire 1. Concepts... 2 2. Méthode PCM appliquée
Plus en détail1- Enregistrer le nouveau planning
La planification est un outil indispensable de management de projet, un moyen essentiel de prise de décisions pour le chef de projet : pour définir les travaux à réaliser, fixer des objectifs, coordonner
Plus en détailSystème d information géographique SavGIS 3.Démarrer avec SavGIS Installer et démarrer SavGIS
Système d information géographique SavGIS.Démarrer avec SavGIS Installer et démarrer SavGIS www.savgis.org S avgi S Conception et architecture : Marc Souris Algorithmique et développement : Marc Souris
Plus en détailXML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million
XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................
Plus en détailAdministration du site (Back Office)
Administration du site (Back Office) A quoi sert une interface d'administration? Une interface d'administration est une composante essentielle de l'infrastructure d'un site internet. Il s'agit d'une interface
Plus en détailUTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»
UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE» url : http://colleges.ac-rouen.fr/cahingt/partages/ UN PRINCIPE : le stockage est privé, le partage est public > tant que l'on ne partage pas,
Plus en détailLogiciel de gestion de point de vente dédié à la restauration. Rapport de projet. 3 e année F5
Institut Supérieur d Informatique Modélisation et leurs Applications Complexe des Cézeaux BP 125 63173 AUBIERE CEDEX Rapport de projet 3 e année F5 Logiciel de gestion de point de vente dédié à la restauration
Plus en détailBien travailler sur plusieurs écrans
Bien travailler sur plusieurs écrans Pour améliorer votre confort sur votre ordinateur et travailler plus efficacement, vous pouvez lui ajouter un second voire un troisième écran. En étendant la surface
Plus en détailLES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010
LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010 Guillaume Informatique 10 rue Jean-Pierre Blachier 42150 La Ricamarie Tél. : 04 77 36 20 60 - Fax : 04 77 36 20 69 - Email : info@guillaume-informatique.com
Plus en détailTutoriel - flux de facturation
1 of 12 17.01.2007 01:41 Tutoriel - flux de facturation Le schéma ci-dessous illustre le flux de facturation classique : Lors de la création d'une facture, elle possède l'état de brouillon, ce qui veut
Plus en détailPRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Plus en détailDéveloppement d un interpréteur OCL pour une machine virtuelle UML.
ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,
Plus en détailCours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :
Atelier No2 : Installation d Active Directory Installation du service DNS Installation du Service WINS Création d'un compte d'ordinateur Jonction d'un ordinateur à un domaine Création d usagers. Étape
Plus en détailManuel : Comment faire sa newsletter
Manuel : Comment faire sa newsletter Adresse : www.yestravel.be/acymailing Se connecter - Login (identifiant) = l adresse mail - Mot de Passe = mot de passe qui vous a été donné par. Cliquer sur [connexion]
Plus en détailGestion de projet. GanttProject Didacticiel V1.0. 23 novembre 2013. Gérard Gervois Frédéric Giamarchi
Gestion de projet GanttProject Didacticiel V1.0 23 novembre 2013 Gérard Gervois Frédéric Giamarchi Département G.E.I.I. I.U.T. de Nîmes Université Montpellier II Présentation GanttProject est un logiciel
Plus en détailWINDOWS SHAREPOINT SERVICES 2007
WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création
Plus en détailOnce the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Plus en détailFrancis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle
Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA
Plus en détailMANUEL GANTT PROJECT
MANUEL GANTT PROJECT A FAIRE UN GANTT PREVISIONNEL 1 Définir le problème Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches nécessaires à la réalisation d'un projet.
Plus en détailINTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10
PROGRAMME RÉGIONAL DE RENFORCEMENT DE LA COLLECTE DES DONNÉES STATISTIQUES DES PECHES DANS LES ÉTATS MEMBRES ET DE CREATION D UNE BASE DE DONNÉES REGIONALE Manuel de formation TABLE DES MATIERES INTRODUCTION
Plus en détailGestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed
6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN
Plus en détailphysicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178
Thèse no. 7178 PROBLEMES D'OPTIMISATION DANS LES SYSTEMES DE CHAUFFAGE A DISTANCE présentée à l'ecole POLYTECHNIQUE FEDERALE DE ZURICH pour l'obtention du titre de Docteur es sciences naturelles par Alain
Plus en détailRecherche locale pour un problème d optimisation de tournées de véhicules avec gestion des stocks
8 e Conférence Internationale de MOdélisation et SIMulation - MOSIM 10-10 au 12 mai 2010 - Hammamet - Tunisie «Évaluation et optimisation des systèmes innovants de production de biens et de services» Recherche
Plus en détailCréation d'un questionnaire (sondage)
Création d'un questionnaire (sondage) Le but de ce petit tuto est d'avoir les séquences pas à pas pour la création d'un questionnaire de façon à ne pas devoir rechercher la manière de procéder si l'outil
Plus en détailCours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques
Université Mohammed V, Faculté des Sciences de Rabat Laboratoire de Recherche Mathématiques, Informatique et Applications Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques MASTER
Plus en détailGdsCompta. Logiciel de comptabilité générale
GdsCompta Logiciel de comptabilité générale CARACTERISTIQUES Logiciel sous Windows Fonctionne sous Windows XP, Vista, 7 et 8 Multi-dossier De la saisie des écritures au bilan, une comptabilité complète.
Plus en détailContrainte de flot pour RCPSP avec temps de transfert
Contrainte de flot et x-rcpsc T 1 Contrainte de flot pour RCPSP avec temps de transfert PS temp, s ij Cmax BENOIST Thierry BOUYGUES/e-Lab DIAMANTINI Maurice ENSTA/LMA Contrainte de flot et x-rcpsc T Présentation
Plus en détailFeature Team Primer. par Craig Larman et Bas Vodde. Version 1.2
ÉQUIPE FEATURE par Craig Larman et Bas Vodde Version 1.2 Les Équipes Feature 1 et les Domaines Fonctionnels 2 sont des éléments essentiels pour dimensionner le développement en mode agile et lean. Ces
Plus en détailLe module Supply Chain pour un fonctionnement en réseau
Prélude 7 ERP Le module Supply Chain pour un fonctionnement en réseau Gérard Baglin Septembre 2008 Sommaire Chapitre 1 Le mode de fonctionnement en réseau de Prélude 7... 1 Le principe des jeux en temps
Plus en détailGestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques?
Gestion des références bibliographiques Comment simplifier la gestion des références bibliographiques? Objectifs de la formation Créer votre base de données personnelle de références bibliographiques.
Plus en détailComment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.
Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite. Introduction : Avant de commencer, il est nécessaire de prendre connaissance des trois types de
Plus en détailLes tablettes et l'extranet Intermixt Mode d'emploi
Les tablettes et l'extranet Mode d'emploi Ce document vous présente les étapes vous permettant d avoir accès aux documents disponibles sur l'extranet d'. Vous pouvez éventuellement les télécharger pour
Plus en détailAIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE
AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE Arborescence du cédérom (page 2) Lancement du Cédérom et configuration minimale de votre ordinateur (page 3). Loupe, page
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailFiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5
Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5 I. Général II. Affichage : taille icônes et écran III. Le menu «Options d accessibilité» : contraste, curseur IV. Le clavier V.
Plus en détailGénérer du code à partir d une description de haut niveau
Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,
Plus en détailCOURS WINDEV NUMERO 3
COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev
Plus en détailFonctions de deux variables. Mai 2011
Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs
Plus en détailCegid Business Line. Version 2008 Release 2. Service d'assistance Téléphonique 0 825 070 025
Fiche version Cegid Business Line Version 2008 Release 2 Service d'assistance Téléphonique 0 825 070 025 Sommaire Les nouveautés fonctionnelles version 2008 Release 2...3 Comptabilité... 3 Relevés bancaires...3
Plus en détailJean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux
Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis
Plus en détailBIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»
Plus en détailPRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Plus en détailA GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters
A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters Présenté par : Equipe de travail : Laboratoire : Maxime CHASSAING Philippe LACOMME, Nikolay
Plus en détailMUNIA Manuel de l'utilisateur
MUNIA Manuel de l'utilisateur by Daisoft www.daisoft.it 2 Table des matières I II 2.1 2.2 2.3 2.4 2.5 2.6 III 3.1 3.2 3.3 IV 4.1 4.2 V 5.1 5.2 5.3 Introduction... 3 Les... échéances 6... 7 Ajouter... des
Plus en détailOrdonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
Plus en détailIntroduction :... 3. L accès à Estra et à votre propre espace... 4. Connexion... 4. Votre espace personnel... 5
ESTRA SOMMAIRE Introduction :... 3 L accès à Estra et à votre propre espace... 4 Connexion... 4 Votre espace personnel... 5 Home d Estra et Fonctions generales... 7 Home... 7 Rechercher un document...
Plus en détailClimat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»
Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte» Espace collaboratif Co-Ment Date : 01/12/2013 Référence du Projet : Chef de Projet : www.cndp.fr/climatscolaire Caroline
Plus en détailSaisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont
I Open Boutique Sommaire : I Open Boutique... 1 Onglet «Saisie des Produits»... 3 Création d'une nouvelle fiche boutique :... 3 Création d'une nouvelle fiche lieux de retraits :... 10 Création d'une nouvelle
Plus en détailAlgorithme des fourmis appliqué à la détection et au suivi de contours dans une image
IN52-IN54 A2008 Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image Etudiants : Nicolas MONNERET Alexandre HAFFNER Sébastien DE MELO Responsable : Franck GECHTER Sommaire
Plus en détail