RCPSP

Embed Size (px)

Citation preview

  • INSTITUT SUPERIEUR

    DINFORMATIQUE

    DE MODELISATION

    ET DE LEURS APPLICATIONS

    COMPLEXE DES CEZEAUX

    BP 125 63173 AUBIERE CEDEX

    Rapport de Projet 3me anne

    Modlisation et Calcul Scientifique

    Optimisation par essaim particulaire pour un

    problme dordonnancement et daffectation de ressources

    En vue de lobtention du diplme dingnieur

    Pressente par : Arnaud Rioland

    Alexandre Eudes

    Responsable ISIMA : Michel Gourgand / Sylverin Kemmo Dure : 150h

    Date : 2007

  • INSTITUT SUPERIEUR

    DINFORMATIQUE

    DE MODELISATION

    ET DE LEURS APPLICATIONS

    COMPLEXE DES CEZEAUX

    BP 125 63173 AUBIERE CEDEX

    Rapport de Projet 3me anne

    Modlisation et Calcul Scientifique

    Optimisation par essaim particulaire pour un

    problme dordonnancement et daffectation de ressources

    En vue de lobtention du diplme dingnieur

    Pressente par : Alexandre Eudes

    Arnaud Rioland

    Responsable ISIMA : Michel Gourgand / Sylverin Kemmo Dure : 150h

    Date : 2007

  • Remerciements

    Nous remercions Monsieur Sylverin Kemmo et Monsieur Michel Gourgand

    pour leur soutien et leur aide apportes tout au long de ce projet.

  • Rsum

    Notre projet de dernire anne dcole dingnieur consistait tudier une mta heuristique, loptimisation par essaim particulaire. Cela consiste trouver loptimum dune fonction ou dun problme donn en dplaant des particules dans son ensemble de dfinition. Nous lavons implment pour des fonctions continues, et pour des problmes de recherche oprationnelle : de type flow shop et de type R.C.P .S.P. (Resource Constraint Project Scheduling

    Problem). Ensuite, nous avons ralis une interface graphique qui permet de visualiser les

    rsultats et de les commenter, mais qui pourra tre aussi rutilis pour dautres problmes doptimisation. Mot cl : Optimisation, Essaim particulaire, Mta-heuristique, Recherche oprationnelle, 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 problems 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

  • Tables des Matires Introduction .......................................................................................................................................... 1

    I. Prsentations de l'algorithme d'optimisation par essaim de particules ........................................ 2

    1. Dfinitions ................................................................................................................................. 2

    2. Principe gnral de l'optimisation par essaim de particule ....................................................... 2

    3. Optimisation continue ............................................................................................................... 4

    4. Optimisation discrte ................................................................................................................... 6

    a) Le flow-shop ............................................................................................................................ 6

    b) Le RCPSP (Resource Constraint Project Scheduling Problem) .............................................. 9

    II. Implmentation .......................................................................................................................... 12

    1. Lapplication ........................................................................................................................... 12

    2. Technologie XML ................................................................................................................... 13

    3. Programmation de la mta heuristique.................................................................................... 13

    1. Les classes gnriques ..................................................................................................... 15

    2. Classe spcifiques ............................................................................................................ 16

    4) Linterface graphique ................................................................................................................. 18

    Table des figures Figure 1 - Exemple de voisinage gographique ................................................................................... 3 Figure 2 - Deux cas de voisinage social ............................................................................................... 4 Figure 3 - Principe du dplacement d'une particule ............................................................................. 5 Figure 4 - Prsentation des 2 cas pour le calcul du makespan ............................................................. 7 Figure 5 - Evaluation du makespan pour le RCPSP .......................................................................... 10 Figure 6 Flux et utilisation de lXML .............................................................................................. 12 Figure 7 - Reprsentation UML de la partie calcul ............................................................................ 14 Figure 8 Arbre dhritage de la classe problme ............................................................................ 16 Figure 9 - Description de la partie dition de linterface graphique .................................................. 19 Figure 10 - Description de la partie rsultat de linterface graphique ............................................... 20

  • 1

    Introduction

    Loptimisation est omniprsente dans tous les domaines : dans lindustrie, dans lconomie, dans la recherche scientifique, dans larospatiale Cest la recherche des compromis entre un besoin et plusieurs contraintes : entre la rsistance et le poids, entre les cots, les ressources et les

    temps de production par exemple. De trs nombreuses techniques se sont dveloppes au cours du

    sicle dernier. Nous en avons tudi une : loptimisation par essaim particulaire. Cet algorithme tait conu lorigine pour rsoudre des problmes dfinis dans sur des ensembles continus. Il consiste en gros dplacer un ensemble de particules dans lespace de dfinition de la fonction que lon veut tudier et de mmoriser les coordonnes de la meilleure position.

    A lheure actuelle, la communaut scientifique travaille sur des problmes dans un contexte discret, des problmes dordonnancement, daffectation, 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 manire exacte mais qui ont une complexit temporelle trop

    grande. Des mthodes ont t mises en place pour rsoudre ce type de problme par valeur

    approche et parmi elles, ladaptation de loptimisation par essaim particulaire. Elle a t imagine par Maurice Clerc, un chercheur qui travaille au sein de lentreprise France Tlcom, en 2000. On remplace les points par des ordonnancements et les fonctions continues par des fonctions

    dvaluation.

    Notre projet a consist mettre en place une interface graphique afin dtudier les diffrentes proprits de loptimisation par essaim particulaire. Nous avons donc programm cet algorithme pour optimiser une fonction continue, un problme de flow shop et un problme type

    R.C.P.S.P. et grce loutil de visualisation que nous avons produit, on a pu tudier les rsultats que nous avons obtenu.

    Tout dabord, nous allons vous prsenter loptimisation par essaim particulaire dans ses deux contextes (continus et discret) et les problmes du flow shop et du R.C.S.P.S.P. puis comment

    nous avons implment les algorithmes doptimisation et linterface graphique. Enfin nous disserterons sur les rsultats que nous ont donn nos diffrents tests.

  • 2

    II.. PPrrsseennttaattiioonnss ddee ll''aallggoorriitthhmmee dd''ooppttiimmiissaattiioonn ppaarr eessssaaiimm ddee ppaarrttiiccuulleess

    1. Dfinitions

    En rgle gnrale, on ne connat pas toujours de mthode exacte pour trouver la solution

    d'un problme d'optimisation en recherche oprationnelle. Dans ce cas on peut d'abord tenter de

    voir si le problme que l'on tudie n'a pas de problme quivalent qui ont dj t rsolu. Si l'on n'a

    toujours pas trouv de mthode de rsolution alors on utilise ce que l'on appelle une heuristique,

    c'est--dire un algorithme qui donne une solution approche. Ces algorithmes sont assez intuitifs ou

    simples. On les dduits grce des observations et en faisant preuve de bon sens. Leur principe

    consiste souvent explorer un certain nombre de solutions et de mmoriser la meilleure. Ils peuvent

    faire intervenir le hasard: cela permet de balayer un plus grand nombre de solution ventuelle, mais

    il faut les excuter plusieurs fois pour tendre au mieux vers la solution optimale.

    Certaines heuristiques sont classes parmi les mta-heuristiques. Ce sont des algorithmes

    dont le principe peut tre rutilis pour traiter diffrents problmes d'optimisation. Ce sont des

    principes gnriques 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 problme de

    minimisation : on choisit une solution initiale, on slectionne 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 rfrence et on observe ses

    voisins.

    Sinon on recherche un autre voisin.

    On s'arrte quand on se rend compte que l'on ne trouve plus de meilleure solution.

    2. Principe gnral de l'optimisation par essaim de particule

    La mta-heuristique que nous avons tudie 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 positionnes dans l'espace de dfinition de la fonction

    objectif. Le principe de l'algorithme consiste dplacer ces particules dans l'espace de dfinition

    afin de trouver la solution optimale.

  • 3

    Une particule est caractrise par plusieurs attributs:

    sa position actuelle: c'est--dire ses coordonnes dans l'ensemble de dfinition et la valeur de la fonction objectif lui correspondant.

    sa meilleure position : cest la valeur obtenue par la particule et ses coordonnes.

    sa vitesse: cette donne, recalcule chaque itration de l'algorithme permet de dduire la position suivante de la particule. Elle est fonction de la

    meilleure position de la particule depuis le dbut de la recherche, du voisin le

    mieux positionn l'instant actuel et de la vitesse prcdente de la particule.

    ses voisins: c'est un ensemble de particule qui influe sur ses dplacements, en particulier celui qui est le mieux positionn.

    Il faut ensuite dfinir les voisinages et leur structure, il en existe de deux types :

    les voisinages gographiques : les voisins d'une particule sont ses voisines les plus proches. Ce type de voisinage impose l'utilisation d'une distance

    pour recalculer chaque itration (ou toutes les k itrations) les voisins de

    chaque particule. Ci-dessous un exemple o les voisins dune particule sont les deux particules qui lui sont le plus proche.

    Figure 1 - Exemple de voisinage gographique

    Particule Voisins de la particule

    colore

  • 4

    Les voisinages sociaux : les voisinages sont tablis l'initialisation et ne sont pas modifis ensuite. Il existe diffrentes structures de voisinages sociaux,

    nous allons vous en prsenter quelques uns.

    Si on utilise un voisinage en lignes et colonnes alors deux particules de lessaim sont voisines si elles appartiennent la mme ligne ou la mme colonne. Si on utilise un voisinage

    en cercle, les voisines dune particule sont, par exemple, les deux qui sont positionnes sa gauche et les deux qui sont positionnes sa droite.

    Le principe de l'optimisation par essaim particulaire a notamment t conu partir

    de modles sociaux. En effet, chacune des particules agit en fonction de sa propre exprience et

    de celle de ses voisins. Pour se dplacer elle prend en compte son histoire (sa meilleure position)

    et est attire par la meilleure particule actuelle de son voisinage. C'est le modle des

    comportements d'individu au sein d'une tribu.

    3. Optimisation continue

    Dans un premier temps, pour nous familiariser avec la mta-heuristique et ses principes nous

    l'avons utilis dans son cadre originel : l'optimisation de fonctions continues.

    Les particules sont dans un premier temps places alatoirement dans l'ensemble de

    dfinition de la fonction objectif. Ensuite on calcule pour chacune de ses particules leur vitesse.

    Dans ce but, on mmorise leur meilleure position depuis le dbut et on recherche celle de ses

    voisins les plus proches cet instant-l.

    Voisinage en ligne et colonne Voisinage en cercle

    Figure 2 - Deux cas de voisinage social

  • 5

    O : et sont les vitesses de la particule aux itrations k et k+1. est la meilleure position de la particule.

    est la meilleure position d'un voisin l'itration k.

    est la position de la particule litration k.

    , et sont des coefficients fixs au dbut du programme ou gnrs alatoirement.

    Ensuite, on peut dterminer la position suivante de la particule grce la vitesse que lon vient de calculer :

    O : est la position de la particule l'itration k.

    est gnre alatoirement.

    est nulle.

    Les fonctions tant gnralement dfinies dans un domaine born, on doit donc grer 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 deuxime

    solution, elle est plus simple mettre en uvre et permet d'tre plus prcis si la solution recherche se trouve sur les contours de l'ensemble de dfinition.

    Position

    actuelle de

    la particule

    Meilleure

    position de

    la particule

    Position du

    meilleur

    voisin

    Nouvelle position

    Vitesse

    actuelle

    Figure 3 - Principe du dplacement d'une particule

  • 6

    4. Optimisation discrte

    Au dpart, les algorithmes doptimisation par essaim particulaire tait destine 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 rsoudre des problmes

    d'ordonnancement, d'affectation ou de planification.

    a) Le flow-shop

    Dans un premier temps, nous avons d adapter cette mta-heuristique au problme du flow

    shop.

    Le problme du flow shop est un problme d'ordonnancement. On a pices fabriquer et

    machines. On va donc noter le temps de traitement de la pice sur la

    machine . Les pices sont traites par toutes les machines et on a qu'une seule gamme

    (une gamme c'est l'ordre dans lequel les pices parcourent la chane de production). L'objectif est de

    dterminer l'ordonnancement de traitement des pices qui minimise le makespan, c'est--dire le

    temps total de traitement de l'ensemble des pices.

    1. Calcul du makespan pour un ordonnancement des pices donnes :

    On dfinit la fonction qui retourne la pice traite en ime

    position et la date de

    sortie de la pice de la machine . On commence par placer la premire pice de

    lordonnancement sur la premire machine.

    Ensuite, on calcule les dates de fin de traitement des pices sur la premire machine.

    Il en est de mme pour les dates de fin de traitement de la premire pice de

    lordonnancement sur les diffrentes machines.

  • 7

    Les calculs des autres dates de sortie se fait rcursivement. Il y a diffrents cas considrer,

    ils dpendent de la date de fin de traitement de la pice prcdente sur la machine et de celle de la

    pice sur la machine prcdente (figure 3).

    Dans le premier cas, cest le traitement de la pice sur la machine prcdente qui se termine aprs la fin du traitement de la pice prcdente dans lordonnancement donc lopration commence

    en . Dans le second, les dates de fin sont inverses et la pice commence tre trait en

    do la formule :

    On peut donc calculer le makespan :

    Figure 4 - Prsentation des 2 cas pour le calcul du makespan

    2

    1

  • 8

    2. Notion de vitesse :

    Le principal problme du passage du continu au discret rside dans les notions de position et

    de vitesse. Une position dans lensemble de recherche correspond un ordonnancement. Les vitesses doivent permettre de passer dun ordonnancement un autre cest pourquoi on les dfinit comme un ensemble de permutation.

    , et les deux soustractions ci-dessus correspondent des vitesses. Les

    , et sont des ordonnancements. Il faut donc redfinir les

    oprateurs et .

    Loprateur + permet dappliquer un ordonnancement un ensemble de permutation (une vitesse).

    Exemple :

    Loprateur est utilis pour concatn deux permutations.

    Exemple :

    Loprateur est la multiplication par un scalaire positif dune permutation. Si ce scalaire est un entier alors on rpte n fois les permutations. Si cest un rel x compris entre 0 et 1, on enlve 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.

    Loprateur retourne lensemble des permutations qui permettent de passer dun ordonnancement un autre.

    Exemple :

    Nous disposons maintenant de tous les outils pour rsoudre un problme de flow shop par la

    mthode de l'optimisation par essaim particulaire. On peut suivre dsormais le principe de la mta

    heuristique.

  • 9

    3. No hope

    La procdure no hope

    (pas despoir en franais) permet de relancer lessaim quand on ne

    parvient plus amliorer la solution optimale du problme. Aprs un nombre important ditration, on rinitialise les particules afin de pouvoir analyser dautres ordonnancements (cf .II.2.1)

    b) Le RCPSP (Resource Constraint Project Scheduling Problem)

    Le problme du R.C.P.S.P. est la fois un problme d'ordonnancement et un problme de

    planification. On dispose d'un nombre constant de ressource. On a n tches effectuer, chacune

    ncessite un certain nombre de ressource pendant un temps de traitement donn. Il s'agit donc de

    gnrer un planning qui minimise la dure totale ncessaire pour effectuer toutes les tches.

    On utilise les mmes principes pour les positions et les vitesses que ceux du flow shop.

    C'est lors du calcul du makespan que l'on dtermine les dates de dbut et de fin des diffrentes

    tches. L'algorithme ne se contente pas de calculer la dure totale des oprations mais planifie

    toutes les tches.

    1. Calcul du makespan :

    On dispose d'un ordonnancement des tches qui ne correspond pas l'ordre dans lequel ces

    tches sont effectues (contrairement au flow shop par exemple) mais plutt l'ordre dinsertion des tches dans le planning. En effet, on commence par slectionner la premire opration de

    l'ordonnancement: on l'insre dans le planning au tout dbut du calendrier. On prend la deuxime

    tche et on regarde si lon dispose dassez de ressource t=0 :

    si oui alors on regarde si ces ressources restent disponibles pendant la dure de la tche.

    Sinon on recherche une autre date de dbut de la tche (on recherche la date la plus petite

    possible).

    On continue rentrer les tches dans le planning au fur et mesure. Pour rcuprer le temps

    total de traitement, on mmorise la plus grande des dates de fin de tche, ce qui va nous permettre

    dvaluer les diffrents ordonnancements. Le passage du flow shop au R.C.P.S.P. s'est donc limit la modification de la fonction objectif.

  • 10

    Sur lexemple ci-dessus, les pices sont insres dans lordre croissant.

    2. Prise en compte des contraintes de prcdence

    A cela, nous devons ajouter les contraintes de prcdence. La tche i prcde la tche j si la

    date de fin de la tche i est infrieure la date de dbut de la tche j. Pour grer ces contraintes, il

    faut bien veiller ce que dans les ordonnancements i est plac avant j pour toutes les contraintes

    contenues dans ce problme et que la date de dbut dune tche soit suprieure toutes les dates de fin des tches qui la prcde.

    Dans un premier temps, il faut adapter les ordonnancements ces contraintes : si une tche

    en prcde une autre, alors elle devra tre plac devant dans lordonnancement. Pour cela, il faut

    redfinir loprateur qui permet dappliquer une vitesse (cest--dire un ensemble de permutations) un ordonnancement, ceci afin quaucune contrainte de prcdence ne soit viole. Prenons un exemple simple :

    Exemple : avec la contrainte .

    On veut permuter 2 et 5 sur lordonnancement 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

    procder pas pas. La contrainte nexiste pas : on peut donc les permuter. De la mme manire on dmontre que lon peut intervertir 2 et 4 puis 2 et 5. 2 a pris la place de 5, on obtient

    lordonnancement suivant : . Il faut maintenant ramener le 5 la place du 2. On peut

    Figure 5 - Evaluation du makespan pour le RCPSP

    MAKESPAN

    R

    1 2 3 4

  • 11

    changer 4 et 5. Ensuite, en principe, il faudrait permuter 3 et 5 mais cela violerait la contrainte :

    dans ce cas l, on dcide de laisser 5 cette place.

    Le principe gnral consiste donc dplacer les deux tches dans lordonnancement dune place chaque fois, on commence par bouger vers la droite la premire tche dans

    lordonnancement et on sarte si on a atteint la place dsire ou si il y a une situation de blocage dues aux contraintes de prcdence. On opre de la mme manire avec la seconde tche

    changer, mais en se dplaant vers la gauche.

    Il faut aussi prendre en compte cette contrainte au niveau du calcul du makespan. On peut

    fixer la date minimale de dbut dune tche comme tant le maximum de toutes les dates de fins des tches qui la prcde. On les connait toutes car grce lordonnancement car on les a dj calcules.

  • 12

    IIII.. IImmppllmmeennttaattiioonn

    1. Lapplication

    Le but de ce projet tait de raliser une application capable doptimiser diffrents problmes grce loptimisation par essaim particulaire. Il tait aussi demand davoir une interface graphique permettant de dfinir les diffrents paramtres. Lapplication se devait dtre rapide et modulaire. Pour cela il a t dcid de dcoupler la partie implmentation de la mta-heuristique et la

    visualisation graphique.

    Le systme dentre sortie t construit de manire dcoupler le plus possible le module de calcule de linterface. Pour cela on a utilis la technologie XML pour la conception de linterfaage entre les deux modules :

    Lutilisation de lXML permet de crer des flux entre les diffrentes partie du logiciel qui sont ainsi dcoupler et peuvent tre lancs sur des machines diffrentes mais aussi tre rutilis plus

    facilement.

    Notre travail a consist crer le module de calcul et linterface graphique, un module de gnration automatique du fichier de configuration pourra tre implment par la suite.

    Lapplication se divise en deux parties distinctes :

    Le code de calcul ralis en c++ pure. Cela permet de pouvoir, utiliser ce code sur tout type de machine. Il lit en entr un fichier de configuration qui dcrit les actions

    effectuer : Le Problme et la manire de loptimiser. Et gnre en sortie un fichier de rsultat.

    Linterface graphique, ralis en c++ .net qui fonctionne seulement sous Windows.

    Figure 6 Flux et utilisation de lXML

    Interface

    Graphique

    Module de

    Calcul

    Outil

    Statistique

    Fichier de

    configuration

    Fichier de

    Rsultat

    Gnration

    Automatique

    Interface

    Graphique

  • 13

    Elle est capable de gnre le fichier de configuration et de lire le fichier de donnes.

    2. Technologie XML

    La technologie Xml( Extensible Markup Language) provient des technologie web et permet

    de construire, utiliser ,explorer des documents contenant des donnes structures par un systme de

    balise. Ce format de fichier a lavantage dtre facile parser(lire le fichier et stocker ses informations dans lapplication)

    Le fait de rendre compte de la structure des donnes, la rend parfaitement compatible avec le

    concept dobjet des langages volus actuels. Ces deux technologies se combinent parfaitement. Le langage objet permet de crer les structures dynamiques et le XML apporte la partie transport,

    stockage et conversion de linformation.

    Puisque lie aux technologies web, cette technologie est en plein essor et de ce fait, son

    utilisation est simplifie par lexistence de parseur prt lemploi. Dans notre cas nous avons utilis la bibliothque Xerces qui a lavantage dtre en c++ et de plus dtre portable. Cette bibliothque fournit un patron de conception dun parseur Xml qui permet de crer son propre parseur adapt ses donnes.

    3. Programmation de la mta heuristique

    Nous avons choisi le C++ comme langage de programmation pour ce projet. Il a lavantage dtre orient objet et cela nous a permis de factoriser le code et de n'crire quune fois les principes gnraux de loptimisation par essaim particulaire. De plus, la bibliothque S.T.L. (standard Template Library) contient des outils pour manipuler trs facilement des listes utiles pour dfinir un

    essaim ou des voisinages.

    On peut partager en deux catgories les diffrentes classes que l'on a implmentes :

    Les classes gnriques, c'est--dire celles qui sont indpendantes du problme rsoudre:

    Essaim : cette classe contient l'ensemble des particules et les voisinages, elle

    contient la position de la valeur optimale trouve.

    Particule : c'est une composante de l'essaim qui se dplace dans l'espace de

    dfinition de la fonction objectif. Elle contient sa position actuelle, sa meilleure

    position et leurs valeurs.

  • 14

    Les autres classes sont spcifiques au problme rsoudre :

    Problme : elle contient les informations gnrales qui sont recueillies dans les

    fichiers d'entre et la fonction objectif.

    Instance : cest les coordonnes dune particule dans lensemble de dfinition et la valeur de la fonction objectif en ce point.

    Vitesse : elle contient les donnes qui permettent de passer d'une instance une

    autre.

    Figure 7 - Reprsentation UML de la partie calcul

    Essaim

    Particule

    Problme

    Instance

    Vitesse

    Gnre Gnre

    N Meilleure

    particule

    1

    1 1

    Position

    actuelle

    Meilleur

    position

    1

    1

  • 15

    1. Les classes gnriques

    La classe Essaim contient le nombre de particules et la liste les regroupant. Elles sont

    stockes dans un vecteur de la S.T.L. (vector). On lui associe un Problme. Elle

    possde aussi un attribut qui pointe sur la meilleure particule trouve depuis le dbut de la recherche

    de loptimum et une particule par voisinage qui contient la meilleure position trouve par le voisinage. Cest partir de cette classe que lon gre lavance de lalgorithme. Elle ordonne le dplacement des particules. A chacune on leur demande dans un premier temps de dterminer leur

    nouvelle vitesse avant de les dplacer.

    La classe Particule permet de reprsenter les points qui se dplacent dans lespace de dfinition de la fonction objectif. Elle contient deux lments de la classe Instance, lun contenant la position actuelle de la particule, et lautre la meilleure position visite par cette mme particule. Elle est associe une vitesse qui permettra de calculer la prochaine position.

    La classe Essaim possde une mthode No Hope qui est active si la meilleure position

    nest pas amliore pendant les X dernires itrations. Elle consiste , dans un premier temps, faire revenir la particule sa meilleure position. Et partir de la a ce dplacer alatoirement. Pour cela

    chaque itration on cr une nouvelle vitesse et on lapplique sur la particule. On sarrte dans le cas o la valeur de la particule sest amliore ou si lon a effectu X itration. Cette procdure permet de ressusciter une particule qui sest orient dans une direction noffrant plus de valeurs intressantes et restaurer la diversit au sein de lessaim.

    Le second problme concernant les voisinages concerne leur stockage. Nous avons test

    deux mthodes:

    Pour chaque particule, on cre une liste o on mmorise ladresse de chacun des voisins. Pour rechercher le meilleur, on parcourt cette liste pour chacune

    des particules et on retient le meilleur.

    On dfinit tous les voisinages par rapport lessaim. On commence pour chacun des voisinages par rcuprer la meilleure position actuelle puis pour

    toutes les particules, on slectionne la meilleure position des voisinages

    auxquelles elle appartient.

    Nous avons commenc par mettre en place la premire mthode puis nous nous sommes

    rendu compte quen utilisant la deuxime on ne parcourt quune seule fois chaque voisinage par itration, ce qui permet de gagner du temps en cas dun nombre important de particule.

  • 16

    2. Classe spcifiques

    Pour chaque problme traiter par la mthode dessaim particulaire, on implmente trois classes spcifiques :

    Une classe qui drive de Problme qui contiendra les attributs spcifiques chaque problme et la fonction dvaluation dune Instance.

    Une classe qui drive de Instance qui contiendra spcificit des solutions du problme et lapplication dune vitesse une Instance.

    Une classe qui drive de Vitesse qui contiendra la reprsentation dune vitesse et les operateurs pour les manipuler entre elles.

    Larbre ci-dessus est aussi valable pour les classes Instance et Vitesse, en prcisant que les classes Vitesse spcifique au RCPSP et au flow shop sont identiques.

    Figure 8 Arbre dhritage de la classe problme

    RCPSP

    Problme

    Problme

    Continu

    Problme

    Flow Shop

    Problme

  • 17

    a) Le Problme continu

    Dans le cas du Problme continu, il faut dfinir le problme, linstance, la vitesse correspondante. En continu, la dfinition du Problme revient donner la fonction dvaluation, le domaine de validit, le nombre de dimensions. Une instance contient la position courante, un point

    de , c'est--dire un tableau de rel. Elle doit vrifier que la position reste valide aprs chaque

    dplacement (on reste dans les bornes). La vitesse est un vecteur de , donc un tableaux de

    rel aussi.

    b) Le Problme de Flowshop

    Pour implmenter le problme du flow shop, une Instance est une liste qui contient lordre dans lequel les pices doivent tre traites. Les listes sont initialises par lintermdiaire de la fonction random_shuffle( iterator deb, iterator fin) de la S.T.L. Cette fonction prend un lment de

    la classe vector (son dbut et sa fin) en paramtre puis rordonne alatoirement ses lments.

    La classe Instance contient aussi la valeur du makespan correspondant lordonnancement. Cette valeur est calcule dans la classe Problme, qui contient la fonction dvaluation spcifique au problme du flow shop explicite dans au chapitre prcdent, et elle contient aussi une mthode

    permettant de lire et denregistrer les donnes des fichiers de donnes, qui sont le nombre de pice, le nombre de machines et tous les temps de traitement.

    La classe Vitesse contient une liste qui stocke les permutations. On rentre les coordonnes

    des points qui devront tre intervertis. Cette liste contient 2n entiers, chaque permutation

    correspondant 2 entiers (les 2 permuter). Ensuite, nous avons cod les oprateurs ncessaires

    aux calculs. Loprateur dfini une simple concatnation, loprateur en rptant plusieurs

    fois la liste ou en la scindant. Loprateur est en fait ici un constructeur : on lui fournit deux ordonnancements dentre et il retourne une nouvelle instance de la classe Vitesse qui permet daller dun ordonnancement un autre. Il ne reste plus qu appliquer ces permutations la particule que lon va dplacer.

    C) Le RCPSP

    On est parti de lexistant pour le flow shop, on conserve la gestion des ordonnancements. Seul change leur initialisation : on gnre dans un premier temps une liste qui est commune pour

    toutes les particules qui assure le respect des contraintes de prcdence (pour cela on insre les

    tches une une dans lordonnancement si leurs prdcesseurs sont dj insrs dans la liste. Ensuite pour chacune des particules on applique une vitesse gnre alatoirement, ce qui permet de

    diversifier les particules avant de lancer loptimisation.

    Dans la classe Instance, on a modifi aussi loprateur +, celui que lon utilise pour appliquer une vitesse une particule. On bouge chaque fois dune place les tches dans lordonnancement, afin de ne pas violer une contrainte de prcdence quand on effectue une

  • 18

    permutation (cf. I.4.b.2). Quand on programme ces vitesses, on commence par dplacer vers la

    droite la premire tche permuter :

    Si elle peut tre positionne la place de lautre tche que lon voulait permuter alors dcale cette autre tche dune case vers la droite, et il faut prendre en compte ce dcalage lorsquon va vouloir ramener cette tche la place de la premire.

    Sinon, la deuxime tche de la permutation na pas boug et on la ramne partir de sa position initiale.

    Enfin, dans la classe Problme, on rcupre les donnes ncessaires contenues dans les

    fichiers dentre, cest--dire le nombre de tche, leurs dures et leurs quantits de ressources ncessaires, le nombre total de ressource disponible par unit de temps, le nombre maximum

    ditrations, et toutes les contraintes de prcdence. Ces dernires sont stockes dans une matrice PREC.

    Reste ensuite coder la fonction dvaluation (cf. I.4.b.1) qui retourne le makespan, les dates de dbut et de fin de chacune des tches tout en prenant bien en compte les contraintes de

    prcdence. On a ajout dans la classe Instance deux tableaux pour mmoriser ces donnes.

    4) Linterface graphique

    Linterface graphique est une surcouche permettant dutiliser le code de calcul sans programmer directement ou diter les fichiers xml la main. Son but est de simplifier la tche de

    lutilisateur en lui donnant accs directement aux diffrents paramtres et en lui apportant une visualisation graphique des rsultats.

    Elle a t programme grce la technologie c++.net qui permet de crer relativement

    simplement des interfaces graphiques pour Windows. Le choix du c++ simposait naturellement pour garder une continuit avec le module de calcul.

    Elle est compose de deux panneaux :

    Le premier permet de gnrer le fichier de configuration en crant une liste de tche

    effectuer. Elle donne la possibilit de charger ou dexporter un fichier de configuration ou dexcuter le calcul directement.

    Elle se prsente comme suit (voir figure):

    La premire partie gre la configuration :

    Un panneau permet dajouter une nouvelle tche en dfinissant les paramtres : - Nombre de rplication : le nombre de fois o lon excute la procdure

    destimation. En effet les positions et les vitesses initiales dpendent dun gnrateur alatoire. Pour tre sr que la mthode donne des rsultats

    dans tout les cas, il est ncessaire dexcuter un grand nombre de fois la mthode pour en garder que la tendance gnrale.

  • 19

    - Nombre ditration : le nombre maximum ditration effectu - La valeur optimal ou la meilleure solution connue : ce paramtre permet

    de calculer quelle distance on se situe de la solution optimale et elle sert

    de test darrt pour le calcul du temps de convergence. - La case cocher Optimale permet de dire sil sagit de la valeur

    optimale ou non. Dans le cas dune valeur optimale, on arrte la mthode sitt cette valeur rencontre.

    - La case cocher mmoriser tout permet de dcider si on veut stocker toute les valeurs au cours des itrations ou seulement les rsultats

    statistiques.

    - Le cadre suivant sert dfinir les proprits de lessaim : les paramtres C1 et C2 et le nombre de particule.

    - Le bouton ajouter permet dajouter la tache dfinie prcdemment dans la liste.

    Le deuxime panneau permet de grer la liste des tches :

    - Le bouton Supprimer supprime une tche. - Les boutons charger et exporter permettent de grer le fichier xml

    de configuration associ la liste des taches.

    - Le bouton calculer sert excuter le calcul et afficher les rsultats dans la deuxime partie.

    Type de

    problme

    Mode dition Liste des tches

    Ajouter une

    tche la liste Supprimer une

    tche de la liste

    Charger/Exporter le

    ficher de configuration

    Excuter la

    liste de Tches

    Paramtre

    gnrale

    Proprit de

    lessaim

    Figure 9 - Description de la partie dition de linterface graphique

  • 20

    La deuxime partie gre laffichage des rsultats : Un arbre permet daccder tous les niveaux de donnes stockes :

    du problme qui donne les statistiques gnrales

    de chaque excution qui donne la moyenne et la meilleure position au court du temps et enfin de chaque particule.

    Le graphe permet de visualiser graphiquement les rsultats associ llment slectionn dans larbre.

    Le curseur permet de slectionner litration dont on veut afficher les proprits. Le cadre du bas affiche les informations courantes.

    Les boutons charger et exporter permettent de grer le ficher de rsultat.

    Mode rsultat

    Liste des

    rsultats

    Proprits de la

    position courante

    Dplacer la

    position courante

    Charger/Exporter le

    ficher de rsultat

    Position du

    curseur

    Evolution dune

    particule Evolution de la

    meilleure particule

    Figure 10 - Description de la partie rsultat de linterface graphique

  • 21

    5) Rsultat

    Optimisation de fonction continu :

    Pour 30 rplications de 20 particules et 100 itrations avec C1=0.5 C2=0.5

    fonction Nb

    ditration moyen

    Valeur

    moyenne

    objectif Minimum T moyen(s) Objectif

    atteint

    Norme 22 0. 00569911 0.01 3*10-16

    0.13 28

    Rosenbrock

    34.6333 150.926 100 3.2546e-013 0.13 19

    Rastrigin

    1.33333 0.000541188 100 0 0.13 30

    Griewank 4.2 0.0195548 0.1 1.55312e-

    011

    0.13 20

    shaffer 100 0.00245586 10-5

    0.00245586 0.16

    0

    Pour 30 rplications de 20 particules et 100 itrations avec C1=0.2 C2=0.8

    fonction Nb

    ditration moyen

    Valeur

    moyenne

    objectif minimum T moyen(s) Objectif

    atteint

    Norme 10.7333 3.62173e-006

    0.01 1.56636e-021 0.13 28

    Rosenbrock

    25.0667 32.5276 100 1.96272e-009 0.13 25

    Rastrigin

    1.06667 0.00377072

    100 0.00377072 0.13 30

    Griewank 11.6667 0.0396408 0.1 0.0396408 0.13 28

    shaffer 100 0.0108516 10-5

    0.00245586 0.16

    0

    On voit que loptimisation par essaim particulaire optimise les fonctions objectifs. La valeur objectif est atteint dans la plupart des cas et le minimum est trs proche de 0.

    Linfluence des coefficients c1 et c2 est manifeste mais son influence dpend de la fonction la certain jeu de coefficient amliore la solution de certain problme, ces coefficients en dgrade

    dautre.

  • 22

    Pour le Flow shop,

    Avec C1=0.5 et C2=0.5

    fonction Nb ditration moyen

    Valeur

    moyenne

    objectif minimum T moyen(s) Objectif

    atteint

    Pb.1 400 2457.6

    2213 2408 3 0

    Pb.19

    400 2366.5

    2180 2316 3 0

    Pb.1 2000 2311.9 2213 2381 20 0 Pb.19

    2000 2455.2 2180 2290 20 0

    Pour le Flow shop la meilleure solution connue est approche asymptotiquement mais ncessite un

    grand nombre ditration pour latteindre (convergence lente). Les coefficients C1 et C2 doivent tre rgl prcisment pour converger plus vite.

  • 23

    Conclusion

    Nous avons implment loptimisation par essaim particulaire sur des fonctions dfinies dans des domaines continus, et sur des problmes de type flow shop ou R.C.P.S.P. Le point dlicat

    concerne la recherche des bons coefficients c1 et c2 (les constantes que lon applique aux vitesses) pour sapprocher au maximum des solutions optimales connues.

    Linterface graphique que lon a produite est extensible tous les problmes doptimisation. Ces algorithmes peuvent tre coder en Fortran, par exemple, puis les rsultats sont sauvegards

    dans un fichier XML. Ce dernier sera recharg par notre interface graphique qui pourra afficher

    toutes les donnes dont on a besoin.

    On peut, de plus, gnrer un module statistique qui fait varier une constante de lalgorithme doptimisation, ce qui nous permet dtudier diffrentes alternatives.

    En partant de ce programme, on pourrait imaginer un logiciel qui pourrait appliquer

    diffrentes mta heuristiques (recuit simul, algorithme tabou) des problmes de combinatoire, daffectation, dordonnancement et alors comparer chacune des mthodes sur un exemple prcis. Les graphiques permettraient de confronter les algorithmes et notamment leur vitesse de

    convergence.

  • 24

    Bibliographie :

    M.Clerc Discrete Particle Swarm Optimization illustrated by the Traveling Salesman Probleme

    2003

    David LEMOINE Optimisation par essaim particulaire (Examen probatoire

    du diplme dingnieur C.N.A.M.) 2004

    Instance du flowshop http://www.cs.colostate.edu/sched/generatorNew/index.html

    Instance du Rcpsp

    http://129.187.106.231/psplib/

    IntroductionPrsentations de l'algorithme d'optimisation par essaim de particulesDfinitionsPrincipe gnral de l'optimisation par essaim de particuleOptimisation continue4. Optimisation discrtea) Le flow-shop1. Calcul du makespan pour un ordonnancement des pices donnes :2. Notion de vitesse :3. No hope

    b) Le RCPSP (Resource Constraint Project Scheduling Problem)Calcul du makespan :Prise en compte des contraintes de prcdence

    ImplmentationLapplicationTechnologie XMLProgrammation de la mta heuristiqueLes classes gnriquesClasse spcifiquesa) Le Problme continub) Le Problme de FlowshopC) Le RCPSP

    4) Linterface graphique