Jean-Louis Coulomb - Laurent Gerbaud Optimisation Année 2013-2014 Jean-Louis Coulomb - Laurent Gerbaud ENSE3 – filière SEM2 - filière IEE
Objectif du cours Intérêt de l’optimisation Les algorithmes d’optimisation Les plans d’expériences
Le processus de conception Cahier des charges Choix de la structure Dimensionnement Modèles analytiques ou numériques Analyse : calcul numérique (Simulation) Vérification expérimentale
Paramètres individuels Paramètres influençant la conception Paramètres individuels Paramètres externes Connaissances scientifiques Formulation du problème Connaissances opérationnelles Informations disponibles Processus De Conception Environnement de travail Manière personnelle de penser et d’agir Outils disponibles Emotions Temps disponible Organisation de l’entreprise Compétence et motivation Décisions externes Aide à la conception => Optimisation automatique avec simulation du comportement par des méthodes numériques Jean-Louis Coulomb
Description du problème direct Analyse, calcul, simulation Entrée Sorties ? Modèle
Modèle de dimensionnement Numérique mise en œuvre pouvant être très aisée développement souvent facile calcul pouvant être lourds Semi-analytique Analytique construit par analyse connaissance requise pouvant être important mise en œuvre pouvant être longue souvent rapide voir dérivable Alternative : plans d’expériences
Exemple du dimensionnement d’une machine à aimants permanents Gem = pi/(2*lambda)*(1-Kf)*sqrt(kr*beta*Ech*E) *pow(D,2)*(D+E)*Be Ech=A*Jcu A=kr*E*Jcu Kf = 1.5*p*beta*(e+E)/D Be=(2*la*M)/(D*log((D+2*E)/(D-2*(la+e))) C=pi*beta*Be*D/(4*p*Bfer) p=pi*D/deltaP Vu=pi*D/lambda*(D+E-e-la)*(2*C+E+e+la) Va=pi*beta*la*D/lambda*(D-2*e-la) Pj=pi*rhoCu*D/lambda*(D+E)*Ech lambda=D/L Fobj = cva*Va+cvu*Vu+cpj*Pj Stator Entrefer Bobinage Aimant Rotor
Description du problème inverse Entrée ? Sorties Modèle Problème inverse {jeu de valeurs d ’entrée}1 {jeu de valeurs d ’entrée}2 {Critères fixes} {jeu de valeurs d ’entrée}3 …………………………... {jeu de valeurs d ’entrée}n
Optimisation sans contraintes Minimiser f(X) Optimisation avec contraintes Minimiser f(X) sous les contraintes Optimisation à objectifs multiples Minimiser sous les contraintes
Normalisation Borne inférieure min Borne supérieure max Valeur réelle Valeur normalisée - dans l’intervalle [0, +1] - dans l’intervalle [-1, +1] Jean-Louis Coulomb
Principe de base de l’optimisation : méthode d’essai et erreur Choix Paramètres Détermination Performances non Performances Acceptables ? oui Ce qui caractérise une méthode d’optimisation : · Comment choisir les nouvelles valeurs des paramètres ? · Comment arrêter le processus de recherche Jean-Louis Coulomb
Analyse de sensibilité Une session de dimensionnement Contraintes par utilisateur Initialisation après l'analyse (étape 3) Cahier des charges Résultat Optimisation Contraintes fixes Contraintes sur un intervalle Analyse de sensibilité Restrictions et relaxations des contraintes (si algorithme avec gradients) Problème de la prise en compte des aspects discrets
Les méthodes d’optimisations Deux familles de méthodes d’optimisation Les méthodes déterministes · A contexte initial donné conduisent à la même solution finale. · Nécessitent peu d’évaluations de la fonction à optimiser. · Mais peuvent se bloquer sur un optimum local Les méthodes non déterministes (stochastiques) · A contexte initial donné peuvent conduire à des solutions différentes. · Nécessitent beaucoup d’évaluations de la fonction. · Possèdent la capacité de trouver l’optimum global.
Les algorithmes déterministes Les méthodes directes utilisation uniquement de la fonction objectif Branch and bound algorithmes heuristiques ex : Hooke and Jeeves, Rosenbrock algorithmes à bases théoriques ex : Powell Les méthodes indirectes utilisation du calcul du gradient de la fonction ex : méthode de Cauchy ou de la plus grande pente méthode de Newton minimisation séquentielle quadratique méthode du gradient conjugué ou de quasi-Newton
Les différentes méthodes d’optimisation Méthodes primitives algorithmes stochastiques Monté-Carlo recuit-simulé algorithme génétique méthode tabou colonie de fourmis algorithmes d’énumération implicite algorithme de séparation et évaluation (branch and bound) réseaux de neurones Méthodes convergentes
Quelques méthodes en bref · La méthode des gradients : Minimum recherché dans la direction de la plus grande pente. · La méthode Monte Carlo : Évaluation en un grand nombre de points choisis aléatoirement. · Les méthodes hybrides : On peut par exemple utiliser la méthode des gradients en partant d’un grand nombre de points choisis aléatoirement. On peut ainsi espérer déterminer au fur et à mesure tous les optima locaux de la fonction. · Le recuit simulé : On effectue des déplacements aléatoires à partir d’un point initial. Si un déplacement mène à une meilleure valeur de la fonction f, il est accepté. Sinon, il est accepté avec un probabilité : où est la variation de la fonction, T est assimilé à une température qui décroît au cours du temps et k est une constante. · Les Algorithmes Évolutionnaires : Le principe est de simuler l’évolution d’une population d’individus auxquels on applique différents opérateurs génétiques et que l’on soumet à chaque génération à une sélection. Jean-Louis Coulomb
Compromis exploration et exploitation · Exploration : les méthodes Monte Carlo permettent une bonne exploration de l’espace puisque tout point a une probabilité identique d’être atteint, mais il n’y a pas d’exploitation des résultats déjà obtenus. · Exploitation : Avec la méthode des gradients, l’exploration est moindre, mais l’exploitation des données précédentes par l’intermédiaire des gradients permet une bonne recherche locale. · Compromis Exploration/Exploitation : Les Algorithmes Évolutionnaires offrent un bon compromis entre exploration et exploitation. Jean-Louis Coulomb
Optimisation sous contraintes Le modèle requis par un algorithme de type gradient : Le modèle de dimensionnement : Cj, {j=1,m} Pi Cj Modèle Fobj Fobj Pi {i=1,n} Model Le problème d ’optimisation : or Fobj Pi {i=1,n} dFobj or Cj, {j=1,m} Model dPi {i=1,n} dCj, {j=1,m}
L’obtention des gradients en numériques Différences finies Différentielles finies
Méthodes déterministes sans contraintes Jean-Louis Coulomb
Méthodes déterministes avec contraintes Méthode des pénalités Jean-Louis Coulomb
Jean-Louis Coulomb
Jean-Louis Coulomb
Démo Jean-Louis Coulomb
Idée des Algorithmes Évolutionnaires · Les Algorithmes Évolutionnaires sont inspirés du concept de sélection naturelle élaboré par Charles Darwin (The Origin of Species, 1859). · Les lois de variation, croisements et mutations, sont empruntées à Mendel et à la génétique moderne. · Le vocabulaire est calqué sur celui de l’évolution et de la génétique Individus (solutions potentielles), Population, Gènes (variables), Chromosomes, Parents, Croisement, Mutations, …. Jean-Louis Coulomb
De la sélection naturelle à l’organigramme d’un Algorithmes Évolutionnaires · La sélection naturelle à fait ses preuves dans le monde vivant. · L’apparition d’espèces distinctes se fait par la sélection naturelle de variations individuelles. · C’est la lutte pour la vie, due à une population tendant à s’étendre dans un espace et avec des ressources finis. · Les individus les plus adaptés tendent à survivre plus longtemps et à se reproduire plus aisément. · Le point clef est l’apparition, par hasard, de variations individuelles. Cela explique les phénomènes d’évolution et d’adaptation sans avoir recourt ni à une création, ni à une modification directe de l’hérédité par le milieu, ni même à une finalité. Jean-Louis Coulomb
Algorithme génétique Technique basée sur la Théorie de l'évolution de Darwin A partir des données du problème, on crée (généralement aléatoirement) une "population" de solutions possibles. Les caractéristiques de chaque solution représentent ses gènes. Puis, on évalue chacune des solutions. On élimine une partie infime de celles qui se sont montrées inutiles ou désastreuses, et on recombine les gènes des autres afin d'obtenir de nouveaux individus-solutions. Selon la théorie évolutionniste, cette nouvelle génération sera globalement plus adaptée au problème que la précédente. On itère alors le procédé jusqu'à la naissance d'une solution que l'on jugera satisfaisante.
Fonctionnement d'un algorithme génétique (1/3) initialiser le temps; 1. créer une population initiale 2. évaluer l'adaptation de chaque individu Faire tant que (il n'y a pas de solution satisfaisante) et (le temps est inférieur au temps limite) incrémenter le temps 3. sélectionner les parents 4. déterminer les gènes des nouveau-nés par recombinaison des gènes parentaux 5. faire subir des mutations aléatoires à la population évaluer l'adaptation de chaque individu 6. sélectionner les survivants fait;
Fonctionnement d'un algorithme génétique (2/3) - Création de la population initiale. Si aucune idée de la solution du problème, génération aléatoire d ’une population. Sinon, création des individus qui représentent les solutions dont on dispose. Principal problème : choix de la taille de la population : compromis à trouver Besoin de suffisamment d’hétérogénéité. Une population trop grande augmente le temps de calcul. - Evaluation de l'adaptation. Mesure des performances de chaque individu par une fonction d'adaptation correspond au profit, à l'utilité de la solution par rapport au problème. - Sélection des parents. Pour que la génération suivante soit plus performante Accouplement des meilleurs individus. (chaque individu aura une chance proportionnelle à son adaptation de devenir parent)
Fonctionnement d'un algorithme génétique (3/3) - Recombinaison (crossover). Pour donner naissance à un individu nouveau, prise aléatoire de quelques gênes de chacun des parents. - Mutation. modifications aléatoires du génome. ne pas muter tous les gènes d'un individu, sinon détermination complète aléatoire. rôle secondaire par rapport à la recombinaison - Sélection des survivants. ne garder que les solutions les plus intéressantes, tout en gardant une population assez grande et assez diversifiée. en général, conservation de la taille de la population d'une génération à l'autre. (autant de "morts" que de nouveaux-nés) Parfois, garde uniquement des enfants Cela assure la diversité et l'évolution de la population.
Codage informatique chromosome Un gène est un entier 32 bits · Un chromosome est un tableau de gènes · Un individu est un tableau de chromosomes · Une population est un tableau d’individus. gène1 gène2 gène3 10010011 11101011 00011010 X1=3,256 X1=0,658 X1=10,26 · Le codage binaire permet de tout coder : les réels, les entiers, les booléens, les caractères, … · Codage et décodage d’un réel dans un entier 32 bits : 232 possibilités · Il existe d’autres formes de codage (codage de Gray, codage réel, …) Jean-Louis Coulomb
Exemple Le problème Recherche du maximum de la fonction x->x² sur l'ensemble [|1,31|] (on prend des entiers pour plus de simplicité). Codage du problème. Chaque individu représentera une valeur pour x. Son génotype sera la valeur de x exprimée en binaire (il suffit de 5 bits, car 31 se note 11111). Population initiale. On choisit ici une population de quatre individus au hasard, par exemple : N° Génotype Phénotype 1 0 1 1 0 1 13 2 1 1 0 0 0 24 3 0 1 0 0 0 8 4 1 0 0 1 1 19
Evaluation de l'adaptation. Application de la fonction d'adaptation : x->x². N° Génotype Phénotype Adaptation 1 0 1 1 0 1 13 169 2 1 1 0 0 0 24 576 3 0 1 0 0 0 8 64 4 1 0 0 1 1 19 361 Sélection des parents. Il suffit de tirer au hasard 4 individus parmi la population en tenant compte de leurs adaptations respectives. On obtient ainsi une nouvelle population comprenant par exemple: N° Génotype Phénotype Adaptation une copie de l'individu 1. 1 0 1 1 0 1 13 169 une copie de l'individu 2. 2 1 1 0 0 0 24 576 deux copies de l'individu 3. 3 1 1 0 0 0 24 576 aucune copie de l'individu 4. 4 1 0 0 1 1 19 361
} accouplement des individus 1 et 2 Recombinaison. On choisit ici, pour le croisement de déterminer au hasard les 2 parents, et de "couper" les chromosomes au hasard : la première partie du chromosome ira au premier descendant, alors que la seconde ira à l'autre. N° Avant Après 1 0 1 1 0|1 0 1 1 0 0 2 1 1 0 0|0 1 1 0 0 1 3 1 1|0 0 0 1 1 0 1 1 4 1 0|0 1 1 1 0 0 0 0 Seconde génération. Dans cet exemple, on choisit de limiter la durée de vie de chaque individu à une génération. La nouvelle génération sera donc composée exclusivement des enfants : N° Génotype Phénotype Adaptation 1 0 1 1 0 0 12 144 2 1 1 0 0 1 25 625 3 1 1 0 1 1 27 729 4 1 0 0 0 0 16 256 Si on calcule la moyenne des valeurs d'adaptation, on obtient 293 pour la génération initiale, contre 439 pour la seconde. On se rapproche bien de la solution. Si on réitère le processus, on obtiendra des valeurs de plus en plus grandes, jusqu'à l'obtention de la solution. } accouplement des individus 1 et 2 } accouplement des individus 3 et 4
Avantages et inconvénients pour parvenir au résultat, pas besoin de connaître les caractéristiques de la solution du problème seulement déterminer parmi deux solutions quelle est la meilleure. Inconvénients : algorithme très coûteux en temps de calcul difficile à programmer les paramètres comme la taille de la population et la fonction d'évaluation sont difficiles à établir il n'a qu'une très faible chance, voire aucune, de trouver la solution idéale il ne fait qu'en approcher.
Jean-Louis Coulomb
Jean-Louis Coulomb
Jean-Louis Coulomb
Jean-Louis Coulomb
Jean-Louis Coulomb