Cours d'Optimisation en Génie Mécanique
Cours d'Optimisation en Génie Mécanique
Cours Optimisation
Option : Construction
2017-2018
1
Semestre : 2 Unité d’enseignement : UEM 1.2
Crédits : 4 Coefficient : 2
Objectifs de l’enseignement:
Contenu de la matière :
- Multiplicateurs de Lagrange
- Conditions de Karush-Kuhn-Tucker
- Méthode des pénalités
- Programmation quadratique séquentielle
Chapitre IV : Méthodes d’optimisation stochastiques (3 semaines)
- L’algorithme génétique
- La méthode d’essaim particulaire
Organisation des TP : il est préférable que les TP soient des applications directes dans le domaine de la
construction mécanique.
2
TP 1 : présentation des fonctions références d’optimisation en Matlab
TP 11 : Utilisation de l’outil optimtool ou autre pour la résolution d’un problème d’optimisation non linéaire
avec contraintes
3
Sommaire
4
IV.1.4 L'opérateur de mutation 59
IV.1.5 L'opérateur de remplacement 60
IV.2 La méthode d’essaim particulaire 63
IV.2.1 Configuration de la méthode 64
IV.2.1.1 Nombre de particules 64
IV.2.1.2 Topologie du voisinage 64
IV.2.1.3 Coefficients de confiance 65
IV.2.1.4 Vitesse maximale et coefficient de constriction 65
IV.2.1.5 Facteur d’inertie 66
IV.2.1.6 Initialisation de l’essaim 66
IV.2.1.7 Critères d’arrêt 66
IV.2.2 Algorithme de synthèse 67
5
Chapitre I :
Optimisation linéaire
I-1 Introduction
Les méthodes de résolution sont la méthode du simplexe, méthode duale du simplexe, méthodes
des potentiels, méthode lexicographique et des méthodes récentes appelées méthodes des points
intérieurs.
I.2 Définition
Un programme linéaire (PL) est un modèle mathématique qu’on peut écrire sous la forme :
Maximiser ou minimiser la fonction objectif :
min = ∑ (I.1)
≤
Sous les contraintes + ⋯+ = = 1, … , (I.2)
≥
Et ≥ 0, = 1, … , (I.3)
Définition 1. On appelle solution d’un problème de programmation linéaire tout vecteur x qui satisfait
les contraintes (I.2).
Une solution est appelée solution réalisable si elle vérifie les contraintes de non-négativité (I.3). Dans
le cas contraire, on dit que la solution n’est pas réalisable.
Définition2. Une solution réalisable est une solution optimale s’il n’existe pas d’autres solutions
réalisables qui fournissent une plus grande valeur de la fonction objectif. À noter que dans un problème
possédant des solutions réalisables, il se peut que la valeur optimale de la fonction objectif soit infinie.
Dans ce cas, on parle de solution optimale infinie.
6
Une entreprise fabrique des chaises et des tables à l’aide de deux machines A et B. Chaque
produit passe obligatoirement par les deux machines. Pour produire une chaise, il faut 2 heures de
machine A et 1 heure de machine B. Pour produire une table, il faut 1 heure de machine A et 2 heures
de machine B.
L’entreprise réalise un bénéfice de 3 DZD.- sur chaque chaise et de 4 DZD.- sur chaque table. Les deux
machines A et B sont disponibles 12 heures par jour au maximum.
Le problème consiste à savoir combien de chaises et de tables il faut fabriquer pour maximiser le
bénéfice. Le tableau suivant montre :
1. le nombre d’heures nécessaires pour produire chaque table et chaque chaise par machine ;
2. le nombre total des heures disponibles ;
3. le profit pour chaque unité de chaise et de table produite.
Chaise Table
A 2 1 12
B 1 2 12
Bénéfice par 3 4
unité
Il faut formuler maintenant les contraintes. Puisque le temps où les machines peuvent fonctionner
est limité, on ne peut pas accroître la production indéfiniment. Les machines A et B ne peuvent pas
fonctionner plus de 12 heures par jour. On sait que pour produire une chaise, il faut 2 heures de
machine A alors que pour une table il n’en faut qu’une.
La contrainte concernant la machine A est donc :
2 + ≤ 12
De même, une chaise requiert 1 heure de machine B, tandis qu’une table en demande 2. La
contrainte concernant la machine B, avec la même durée maximale de 12 heures par jour, est donnée
par :
+ 2 ≤ 12
De plus, comme on ne peut pas produire de quantités négatives, il faut ajouter encore deux
contraintes de non-négativité :
, ≥ 0
Le problème consiste donc à trouver les valeurs des variables x1 et x2 qui maximisent le bénéfice
journalier (fonction objectif) tout en satisfaisant les contraintes.
En résumé, le problème s’écrit sous la forme :
Maximiser = 3 + 4
Sous contraintes 2 + ≤ 12
7
+ 2 ≤ 12
Et , ≥ 0
L’exemple décrit ci-dessus peut être représenté graphiquement puisqu’il ne contient que deux
variables. Avant de rechercher la solution du problème, représentons sur la figure I.1 la région des
points (x1; x2) qui satisfont les quatre contraintes simultanément. Les deux contraintes de non-négativité
, ≥ 0 indiquent que cette région se trouve dans le premier quadrant. En ce qui concerne les deux
autres inégalités, on étudie les équations de droite :
2 + = 12
+ 2 = 12
La première est une droite passant par les points (6 ;0) et (0 ;12), tandis que la deuxième passe
par (12 ;0) et (0 ;6). L’intersection de ces deux droites est le point (4 ;4). La région des points
satisfaisant les quatre inégalités est la région hachurée sur la figure I.1. Elle a pour sommets les points
(0 ;0), (0 ;6), (4 ;4) et (6 ;0).
Pour résoudre le problème de programmation linéaire, nous devons trouver le ou les points appartenant
à ce polyèdre convexe et maximisant la fonction objectif : = 3 + 4 . Pour une valeur donnée
de z, il s’agit d’une droite. En attribuant différentes valeurs à z on obtient autant de droites parallèles
(quelle que soit la valeur de z, la pente reste inchangée et vaut -3/4).
Puisque le but est de maximiser la fonction objectif, la recherche de la solution optimale se fait en
translatant la droite = 3 + 4 de manière à ce que l’ordonnée à l’origine soit la plus grande. De
plus, pour satisfaire les contraintes, l’intersection de cette droite avec la région hachurée doit être non
vide.
Sur la figure I.1, la fonction objectif est tracée pour trois valeurs de z. La première valeur est z1 = 18.
Cette valeur n’est pas optimale puisque l’on peut encore déplacer la fonction objectif en gardant des
points communs avec la région hachurée. La deuxième valeur z2 = 28. Il s’agit de la valeur optimale
puisque l’ordonnée à l’origine est la plus grande possible tout en gardant un point d’intersection avec la
région hachurée.
La troisième valeur z3 = 38 ne peut pas être optimale puisqu’il n’y a plus de point en commun entre la
droite et la région hachurée.
Ainsi dans cet exemple, la solution optimale se situe à l’intersection des deux droites
2 + = 12 et + 2 = 12. Il s’agit d’une solution unique donnée par x1 = 4 et x2 = 4. Cela
signifie que le bénéfice est maximal lorsqu’on produit 4 chaises et 4 tables par jour. Ce bénéfice s’élève
à z = 3(4) + 4(4) = 28 par jour.
À noter que la solution optimale est l’un des sommets du polyèdre (point extrême).
8
Figure I.1 : Région réalisable et fonction objectif pour z1 = 18, z2 = 28 et z3 = 38
I-3-2 Problème de Mélange. Il faut mélanger trois gaz de telle manière que le gaz mixte soit le plus
bon marché que possède un pouvoir calorifique entre plus de 1700 et 2000 k. cal/ m 3 et un taux de
sulfure au plus de 2,8 g/ m3 . Indications sur les trois gaz :
Formulation du problème
Variables : x1, x2 et x3 sont les nombres en m3du 1er, 2ème et 3ème gaz à fabriquer
respectivement.
Fonction objectif à maximiser : La fonction objective Z correspond au profit total:
On cherche donc
= 100 + 250 + 200
Contraintes :
Pouvoir calorifique 1700 ≤ 1000 + 2000 + 1500 ≤ 2000
Taux de sulfure 6 + 2 + 3 ≤ 2.8
Positivité des variables ≥ 0, ≥ 0 , ≥ 0
I-3-3 Problème de découpe. Une usine a reçu des plaques de métal d’une largeur de 200 cm et d’une
longueur de 500 cm. Il faut en fabriquer au moins 30 plaques de largeur de 110 cm , 40 plaques de
largeur de 75 cm et 15 plaques de largeur de 60 cm. Donner le modèle mathématique pour que les
déchets soient les plus petits possibles .
Formulation du problème
Une plaque de 200 cm de largeur peut être découpée de cinq façons :
9
2. une plaque de 110 cm et une plaque de 75 cm. Les déchets seront de 15 cm.
3. une plaque de 110 cm et une plaque de 60 cm. Les déchets seront de 30 cm.
Variables : x1, x2 ,x3,x4 et x5sont les nombres de plaques a découper parla 1ere, 2ème,3ème,4ème et
la 5ème façons respectivement.
Fonction objectif à minimiser : La fonction objective Z correspond déchet total:
= 5 + 15 + 30 + 20 + 50
On cherche donc
= 5 + 15 + 30 + 20 + 50
Contraintes :
Plaques de largeur 110cm + ≥ 30
Plaques de largeur 75cm + + ≥ 40
Plaques de largeur 60cm 2 + + 3 ≥ 15
Positivité des variables ≥ 0, … , ≥ 0
Il s’agit ici d’un problème que l’on peut résoudre par la programmation linéaire, c’est-à-dire un
problème de transport. Ce type de problème se définit comme suit.
Connaissant les quantités disponibles de chacune des unités de production, les quantités requises
aux points de distribution et le coût de transport d’un bien d’une usine vers un point de vente, il s’agit
de déterminer le plan de transport optimal, c’est-à-dire de déterminer les quantités de biens que chaque
usine va envoyer vers chacun des points de vente afin que le coût de transport total soit minimum. On
suppose qu’il est possible d’expédier des produits de n’importe quelle origine vers n’importe quelle
destination.
L’exemple ci-dessous est le cas d’une fabrique de conserves qui expédie des caisses vers ses
dépôts. Nous voulons que le plan d’expédition des caisses minimise le coût total de transport des usines
aux dépôts. Pour simplifier, supposons qu’il y a deux usines et trois dépôts. L’offre des usines et les
demandes des dépôts sont les suivantes (en nombre de caisses) :
Usines Dépôts
1 2 3
1 25 17 16
2 24 18 14
10
Ainsi, le coût pour transporter une caisse de l’usine 1 au dépôt 1 est de 25, le coût pour transporter une
caisse de l’usine 2 vers le dépôt 1 est de 24, et ainsi de suite. Ce problème peut se formuler sous la
forme d’un problème de programmation linéaire. Notons par cij le coût de transport d’une caisse de
l’origine i vers la destination j. Nous avons donc, d’après le tableau précédent :
= 25 , = 17 , = 16 , = 24 , = 18 , = 14
= = + + + + +
= 25 + 17 + 16 + 24 + 18 + 14
Comme il est impossible d’expédier plus de caisses d’une origine donnée qu’il n’y en a de disponibles,
nous sommes confrontés aux deux contraintes :
11
= + + ≤ 350 ( 1 )
= + + ≤ 450 ( 2 )
De plus, il faut approvisionner chacun des trois dépôts avec la quantité requise, ce qui nous donne trois
nouvelles contraintes :
= + = 200 ( é 1 )
= + = 300 ( é 2 )
= + = 50 ( é 3 )
Comme il n’est pas possible d’expédier des quantités négatives, nous avons encore les six contraintes
de non-négativité suivantes :
≥ 0, = 1,2 = 1,2,3
Finalement, le programme linéaire à résoudre est :
= 25 + 17 + 16 + 24 + 18 + 14
+ + ≤ 350
+ + ≤ 450
+ = 200
+ = 300
+ = 50
≥ 0, = 1,2 = 1,2,3
Comme ce problème présente plus de deux variables, nous ne pouvons pas le résoudre
géométriquement.
La forme matricielle permet de représenter un problème de programmation linéaire sous une forme
plus concise.
= (I.4)
≤
=
(I.5)
≥
≥ 0
12
Où c est un vecteur-ligne de dimension (1 × n), x un vecteur-colonne de dimension (n×1), A une
matrice de dimension (m×n), b un vecteur-colonne de dimension (m× 1) et 0 le vecteur nul à n
composantes.
Un problème de programmation linéaire peut se présenter sous différentes formes. En voici la
terminologie.
Forme canonique
Si la fonction objectif doit être maximisée et si toutes les contraintes sont des inéquations du type ≤ ,
on dit que le programme linéaire se présente sous une forme canonique. Matriciellement, un problème
de programmation linéaire se présente sous sa forme canonique de la manière suivante :
= (I.6)
≤ (I.7)
≥ 0 (I.8)
À noter que toute contrainte peut être transformé sous forme canonique.
Forme standard
Un problème de programmation linéaire se présente sous sa forme standard si toutes les contraintes
sont des équations. La fonction objectif doit également être maximisée. Sous forme matricielle, la
forme standard s’écrit :
= (I.9)
= (I.10)
≥ 0 (I.11)
Transformation minimisation-maximisation
Tout problème de minimisation peut être transformé en un problème équivalent de maximisation. En
effet, le problème :
=
est équivalent à :
− = −
Variables d’écart
La procédure que nous allons développer pour trouver la solution d’un problème de programmation
linéaire s’appelle la méthode du simplexe. Cette méthode exige que le programme linéaire soit sous
forme standard. Pour cette raison, il faut transformer les inégalités rencontrées en égalités. Cette
transformation se fait simplement en introduisant des variables non-négatives (qui vérifient les
contraintes de non-négativité) appelées variables d’écart.
Si les contraintes sont du type :
+ + ⋯+ ≤
en une égalité en soustrayant cette fois une variable d’écart ≥ 0. Nous écrivons alors :
+ + ⋯+ − =
13
Dans la fonction objectif le réel cj est souvent appelé le “prix” associé à la variable xj. En assignant un
prix nul à chaque variable d’écart, la transformation des contraintes en un système d’équations
linéaires ne change pas la fonction objectif.
Exemple I.1
2 x1 x2 140
x1 x2 104
5 x1 3 x2 360
Et x1 0, x2 0
En introduisant les variables d’écart dans chaque contrainte, on obtient la forme standard du modèle :
2 x1 x 2 x3 140
x1 x 2 x 4 104
5 x1 3 x 2 x5 360
x1 0, x2 0, x3 0, x4 0, x5 0
= + (I.12)
+ = (I.13)
14
, ≥ 0 (I.14)
Maximiser = 3 + 5 +
Sous contraintes + 2 − ≤ 16
3 − 4 ≤ 20
Et , , ≥ 0
Ce problème peut se mettre sous forme standard en introduisant les variables d’écart x4 et x5 :
Maximiser = 3 + 5 + + 0 + 0
Sous contraintes + 2 − + = 16
3 − 4 + = 20
Et , , , , ≥ 0
Sous forme matricielle, on obtient donc :
1 2 −1 1 0 16
= 3 5 1 0 0 , = , = , =
3 −4 0 0 1 20
Formons à partir de A une matrice de base B en prenant par exemple les colonnes 2 et 4, dans cet ordre
:
2 1
=
−4 0
15
Les autres variables étant nulles, x1 = x3 = x5 = 0. Cette solution de base n’est pas réalisable pour la
simple raison que xB1 = x2 = -5 viole la contrainte de non-négativité.
Dans cet exemple, il est très facile de trouver une base qui fournisse une solution réalisable de base. En
effet les colonnes a4 et a5 forment une base qui est l’identité :
1 0
= =
0 0
Ici, b1 = a4 et b2 = a5.
La solution de base est le vecteur b puisque :
16
= = =
20
Comme b doit être non-négatif lorsque le problème est présenté sous sa forme standard, la solution est
une solution réalisable de base.
Z a pour valeur : z = 0· 16 + 0 · 20 = 0
I.4.2 Recherche d’une solution optimale
Résultat 4.1 Tout point extrême est une solution réalisable de base.
Ainsi pour trouver la solution optimale, il suffit d’examiner les points extrêmes ou de manière
équivalente les solutions réalisables de base.
À la solution réalisable de base initiale correspond une valeur de la fonction objectif z. Le but est
d’améliorer la valeur de la fonction objectif en l’évaluant en un point extrême adjacent. Pour cela, étant
donné une base B, on trouve un point extrême adjacent (nouvelle solution réalisable de base) en
échangeant l’une des colonnes de la base (bi) contre une colonne aj qui n’est pas dans la base.
Cependant, en faisant cet échange, il faut s’assurer que la solution de base reste réalisable et que la
valeur de la fonction objectif augmente (ou du moins ne diminue pas).
Il y a donc deux règles à suivre pour cet échange. La première consiste à déterminer quelle colonne aj
de A (à laquelle correspond une variable xj) doit entrer dans la base pour améliorer la fonction objectif.
La seconde consiste à sélectionner l’une des colonnes bi qui doit quitter la base de manière à ce que la
nouvelle solution de base reste réalisable.
Nous développons ici les critères d’entrée et de sortie de la base pour obtenir une nouvelle solution
réalisable de base qui améliore la valeur de la fonction objectif. Il restera ensuite à déterminer si la
nouvelle solution réalisable de base est optimale ou non.
Pour développer ces deux critères, nous reformulons le programme linéaire
(I.12)-(I.14) sous la forme suivante :
= + ∑∈ (I.16)
+ ∑∈ = (I.17)
, ≥ 0 , ∈ (I.18)
= + + ⋯+ = =
16
Avec = ⋮
+ =
∈
= −
∈
= −
∈
= − ∑ ∈ (I.21)
Introduisons (I.21) dans la fonction objectif (I.16) :
= − +
∈ ∈
Finalement, en utilisant (I.20), la fonction objectif s’écrit :
= − +
∈ ∈
= − +
∈ ∈
D’où
= − ∑∈ − (I.22)
Lorsqu’on obtient une solution réalisable de base, les valeurs des variables xj sont nulles pour tout
indice ∈ . Dans ce cas, la valeur de la fonction objectif est = .
Le but est d’améliorer au maximum cette valeur de z. Dans l’équation (I.22), les variables xj sont non-
négatives et la sommation est précédée du signe négatif. C’est donc la variable xj , au plus petit
− < 0, qui améliorera le plus la valeur de la fonction objectif. Le critère d’entrée dans la base
est donc le suivant.
17
Toutes les variables hors base sont nulles sauf xk qui devient une variable de base. Comme xk est une
nouvelle variable de base, elle sera notée . Ainsi la nouvelle solution de base, notée s’écrit :
= −
= − (I.23)
Pour que cette solution de base soit réalisable, il faut que les variables de base soient non-négatives,
c’est-à-dire :
= − ≥ 0, = 1, … , (I.24)
Les contraintes de non-négativité (I.24) sont évidemment satisfaites pour les variables qui ont un yik
négatif ou nul. En revanche, en ce qui concerne les variables qui ont yik positif, il faut que :
≤
Pour ne pas violer les contraintes de non-négativité. Cette dernière inégalité devant être valable pour
tout i tel que yik > 0, doit être égale au plus petit rapport xBi/yik. Supposons que ce plus petit rapport
ème
soit associé à la r variable de base xBr.
Alors en posant :
=
Toutes les contraintes de non-négativité dans (I.24) sont satisfaites et par (I.23) :
= − = 0
ce qui permet de sortir xBr de la base. Nous avons ainsi obtenu le critère pour sortir une colonne br de la
base.
Remarque 4.1 Il se peut que la solution optimale d’un problème de programmation linéaire possédant
une solution réalisable de base soit infinie.
18
Etape 3 : S’il existe un (zj - cj) négatif pour lequel il n’y a pas d’éléments positifs dans yj, arrêter la
recherche puisque la solution optimale est infinie.
Sinon, choisir le vecteur (et donc la variable) associée à la valeur la plus négative des (zj - cj) pour
entrer dans la base :
− = − − < 0
Etape 4 : Déterminer le vecteur (et donc la variable) qui sort de la base à l’aide du critère :
= , > 0
Etape 5 : Établir la nouvelle base, calculer la nouvelle solution réalisable de base et la nouvelle valeur
de la fonction objectif. Retourner à l’étape 2.
Etape 6 : La solution réalisable de base courante est la solution optimale. La solution optimale n’est
pas unique s’il existe un (zj - cj) nul pour un vecteur aj qui ne se trouve pas dans la base.
19
regard des valeurs yik. Il faut à présent tracer un nouveau tableau. A l’intersection de la colonne ak qui
entre dans la base et du vecteur br qui en sort, se trouve le terme yrk qui est appelé le pivot de la
transformation. La colonne ak est appelée colonne-pivot et le vecteur br ligne-pivot. Il est utile
d’encercler dans le tableau le pivot ainsi que la colonne-pivot et la ligne-pivot. Établissons les formules
de transformation en ajoutant le symbole ( ˆ ) au-dessus des nouvelles valeurs afin de les distinguer des
anciennes. Les nouvelles valeurs des variables de base se calculent facilement à partir des anciennes.
En effet, nous avons vu que la nouvelle variable qui entre dans la base est :
= = (I.25)
En substituant (I.25) dans (I.23), nous obtenons :
= − ≠ (I.26)
Développons à présent les formules de transformation afin de calculer les termes . Toute colonne aj
de A peut s’exprimer comme une combinaison linéaire des anciens vecteurs de base :
= + ⋯+ = ∑ (I.27)
Or le vecteur ak a remplacé le vecteur br dans la base. De (I.27), en posant j = k, on déduit que :
= −∑ + (I.28)
Substituons (I.28) dans (I.27) :
= + ∑ − = ∑ (I.29)
où = , ≠ = . Si l’on compare les deux égalités dans (I.29), on trouve :
= − , ≠ (I.30)
= (I.31)
Calculons les nouvelles valeurs ̂ − en utilisant la définition :
̂ − = ̂ − = ∑ ̂ − (I.32)
avec ̂ = , ≠ et ̂ = . En utilisant les résultats (I.30) et (I.31), l’équation (I.32) devient :
̂ − = ∑ − + − (I.33)
À noter que la sommation peut se faire sans la restriction ≠ puisque le terme correspondant à cet
indice est nul :
− = 0
Ainsi, l’équation (I.33) peut s’écrire :
̂ − = − − −
ou de manière équivalente :
̂ − = − − − (I.34)
Enfin, déterminons ̂ , la nouvelle valeur de la fonction objectif :
̂= ̂ = ∑ ̂ (I.35)
Avec (I.25), (I.26) et le fait que ̂ = , ≠ , ̂ = , on obtient :
̂= − +
20
Dans la sommation, le terme pour = étant nul on peut omettre la restriction ≠ . On obtient alors
:
̂= − +
Puisque = ∑ et z= ∑ , on a finalement :
̂= − − (I.36)
Exemple I.3 Soit l’exemple suivant
= 3 + 4
2 + ≤ 12
+ 2 ≤ 12
, ≥ 0
Tout d’abord, passons ce programme linéaire sous forme standard.
= 3 + 4 + 0. + 0.
2 + + = 12
+ 2 + = 12
, , , ≥ 0
Appliquons les différentes étapes de la méthode du simplexe
Etape 1 : Le tableau initial du simplexe est donné dans le tableau 1.
21
12
= = 12
1
et = = 6.
Le plus petit rapport est 6 et correspond à . Ainsi, = 2 et le vecteur a4 (correspondant à la
variable = ) sort de la base. La ligne correspondante est la ligne-pivot qui a été encadrée dans
le tableau 2. Il reste à établir le nouveau tableau à l’étape 5.
Etape 5 : Puisque a2 remplace a4 dans la base, on remplace = = 0 par = 4 dans la
colonne cB. Tous les autres éléments du nouveau tableau se calculent à partir des formules (I.30) et
(I.31). Commençons par calculer les éléments de la ligne-pivot à l’aide de (I.31)
= , = 0, 1, . . . , .
12
= = = = 6
2
1
= =
2
= = 1
= = 0
1
= =
2
Calculons à présent la première ligne à l’aide de (5.30) : = − . À noter que
= = est une constante pour cette ligne.
1 1
= = − = 12 −(12) = 6
2 2
1 1 3
= − = 2 − (1) =
2 2 2
1 1
= − = 1 − (2) = 0
2 2
1 1
= − = 1 − (0) = 1
2 2
1 1 1
= − = 0 − 1 = −
2 2 2
Il ne reste plus qu’à calculer les éléments de la dernière ligne :
−4
= − . , = = = −2
2
= ̂ = − (− 2) = 0 + 2(12) = 24
= ̂ − = + 2 = − 3 + 2 1 = − 1
= ̂ − = + 2 = − 4 + 2(2) = 0
= ( ̂ − ) = + 2( ) = 0 + 2(0) = 0
= ( ̂ − ) = + 2( ) = 0 + 2(1) = 2
Le tableau 3 représente le nouveau tableau du simplexe. Avant de retourner à l’étape 2, mentionnons
que certains calculs effectués lors de l’étape 5 ne sont pas nécessaires. En effet les (zj - cj)
correspondant aux vecteurs dans la base sont forcément nuls. Le vecteur qui entre dans la base devient
un vecteur unitaire avec pour composantes : 1 à la place de l’élément pivot et 0 ailleurs. Le vecteur qui
22
reste dans la base n’est pas modifié. De plus, la ligne-pivot est très facilement calculée puisque chaque
élément de cette ligne est divisé par l’élément pivot. Nous appliquerons ces remarques dans les calculs
suivants.
23
Retournons à l’étape 2.
Etape 2 : Tous les (zj -cj) correspondant aux vecteurs hors base sont strictement positifs, nous passons
donc à l’étape 6.
Etape 6 :Puisque ( − ) > 0, ∀ ∈ , la solution optimale est donnée par :
= = 4
= = 4
Les variables hors base sont nulles : = = 0.
La valeur de la fonction objectif est = 28.
Observons les solutions x1 et x2 obtenues à chaque itération. Dans le tableau initial, x1 = 0 et x2 = 0.
Après la première itération, x1 = 0 et x2 = 6. Finalement, à la seconde et dernière itération, x1 = 4 et x2
= 4.
Jusqu’à présent, nous avons toujours étudié des cas où une solution réalisable de base initiale était
connue. Cependant, cette situation (idéale) ne se rencontre pas dans tous les problèmes de
programmation linéaire. Nous verrons donc dans le paragraphe suivant comment trouver une solution
réalisable de base initiale.
24
prix très défavorables, de façon à ce que la fonction objectif puisse être améliorée tant qu’une de ces
variables reste dans la base. Si la fonction objectif z doit être maximisée, en donnant un prix négatif très
grand à chaque variable artificielle, on peut s’attendre à ce que z s’améliore aussi longtemps qu’une
variable artificielle se trouve dans la base avec une valeur positive.
Comme son nom l’indique, cette méthode consiste à résoudre un problème de programmation linéaire
en deux parties. La première partie, appelée phase 1, consiste à annuler toutes les variables artificielles
en utilisant une fonction objectif artificielle. Si l’on ne peut pas annuler toutes les variables, alors le
problème n’est pas réalisable.
La phase II consiste à remplacer la fonction objectif artificielle de la phase 1 par la vraie fonction
objectif à maximiser. On utilise alors la solution réalisable de base obtenue à la fin de la phase 1. Deux
cas peuvent se présenter en ce qui concerne cette solution réalisable de base.
Premier cas La solution réalisable de base obtenue à la fin de la phase 1 ne contient plus de variables
artificielles. Dans ce cas, on utilise simplement l’algorithme du simplexe décrit précédemment pour
obtenir la solution optimale.
Deuxième cas Une ou plusieurs variables artificielles (nulles) font partie de cette solution réalisable de
base. L’algorithme du simplexe peut également être utilisé mais il faut s’assurer que ces variables
artificielles ne deviennent jamais positives. Pour éviter ce problème, le critère de sortie de la base doit
être modifié en conséquence. Après avoir déterminé le vecteur ak à faire entrer dans la base, il faut
examiner les valeurs yik qui correspondent aux vecteurs artificiels.
Si ≤ 0pour tous les indices i correspondant aux vecteurs artificiels et > 0 pour au moins un
indice i, le critère usuel de sortie de la base ne sélectionnerait aucun vecteur artificiel. Ce serait donc un
vrai vecteur br qui serait éliminé. Si xBr>0, alors les valeurs des variables artificielles avec < 0
deviendraient positives puisque :
= − = − > 0
Dans une situation de ce type, au lieu d’utiliser le critère usuel de sortie de la base, on fait sortir un
vecteur artificiel avec un yik<0. Dans ce cas, les nouvelles valeurs de la solution réalisable de base
restent inchangées puisque xBr=0. La nouvelle valeur de la fonction objectif n’est pas strictement
améliorée mais reste constante, = , pour cette itération.
La méthode des deux phases et les étapes de chaque phase sont décrites ci-dessous.
Phase I
Cette phase consiste à construire une fonction objectif artificielle en attribuant à chaque variable
artificielle un prix de -1etun prix nul à toutes les autres variables. Il s’agit donc de maximiser la
fonction objectif suivante :
= − − −...−
25
où l’indices indique le nombre de variables artificielles qui ont été rajoutées dans les contraintes.
Puisque les variables artificielles xai sont non-négatives, la fonction objectif artificielle est toujours
non-positive et atteint son maximum 0 lorsque chaque variable artificielle est nulle.
Etape 3 : Résoudre le problème établi dans les deux étapes précédentes avec la méthode usuelle du
simplexe. On s’arrête à la phase I dans deux cas :
(a) La valeur de za vaut 0 (même s’il reste certains (zj-cj) négatifs).On passe alors à l’étape 1 de
la phase II.
(b) Le critère d’optimalité − ≥ 0, ∀ ∈ , est satisfait mais il reste dans la base des
variables artificielles avec des valeurs positives (ainsi za<0). Dans ce cas, le problème original
n’a pas de solution réalisable et l’on s’arrête.
Voyons à présent les étapes de la phase II dont le but est de trouver une solution optimale au problème
original.
Phase II
Etape 1 : Remplacer la fonction objectif artificielle par la fonction objectif originale, y compris les
variables d’écart en donnant leur prix réel aux vraies variables et un prix zéro à toute variable
artificielle qui peut apparaître dans la base à un niveau zéro. Les colonnes des vecteurs artificiels qui ne
sont pas dans la base peuvent être éliminées du tableau car elles ne seront plus candidates pour y entrer.
Etape 3 : S’il n’y a plus de variables artificielles dans la base à la fin de la phase I, on applique la
méthode usuelle du simplexe. Sinon, on passe à l’étape 4.
Etape 4 : Pour éviter que les variables artificielles de la base ne deviennent positives, il faut examiner
les valeurs yik (la colonne correspondant au vecteur ak qui entre dans la base) pour chaque variable
artificielle. Si ces valeurs sont telles que ≤ 0 pour tous les indices i correspondant aux vecteurs
artificiels et yik>0 pour au moins un indice i, on fait sortir de la base un vecteur artificiel avec un yik<0.
Sinon on utilise le critère usuel de sortie.
Les exemples suivants illustrent respectivement les trois cas qui peuvent se présenter à la fin de la
phase I, c’est-à-dire :
26
3. za<0; dans ce cas, il n’existe pas de solution réalisable.
Exemple : Soit le problème suivant à résoudre avec la méthode des deux phases :
= − 2 + 3 − 5
+ + = 6
− + + 2 = 4
2 + 3 = 10
≤ 2
+ + = 6
• Phase I
Etape 1 : Comme il s’agit d’un problème de minimisation, il faut le transformer en un problème de
maximisation en inversant le signe des coefficients de la fonction objectif. Cette opération n’intervient
que dans la phase II. En revanche, il faut introduire une variable d’écart dans la quatrième contrainte et
ajouter trois variables artificielles pour qu’une matrice identité apparaisse dans le tableau 1 de la phase
I. Les contraintes s’écrivent alors :
+ + + = 6
− + + 2 + = 4
2 + 3 + = 10
3 + 4 = 2
, , , , , , ≥ 0
Etape 2 : La fonction objectif artificielle s’écrit :
= − − −
Etape 3 : Nous construisons le tableau 1 de la phase I et appliquons l’algorithme usuel du simplexe.
Tableau 1
Le critère d’entrée indique que le vecteur a3 entre dans la base. Le critère de sortie indique deux
possibilités pour sortir un vecteur de la base : q2 ou a4 puisqu’ils ont tous deux le plus petit rapport (4/2
= 2/1 = 2). Le but de la phase I étant de faire sortir les vecteurs artificiels de la base, notre choix
portera sur q2. Nous construisons le tableau 2 de la phase I.
27
Tableau 2
Le tableau 2 de la phase I indique que za = -8. On peut faire entrer a1 dans la base. Le vecteur a4 sort de
la base puisqu’il correspond au plus petit rapport , > 0, c’est-à-dire /
= 0.
À noter que puisque = = 0, la valeur de la fonction objectif dans le tableau suivant reste
constante, comme l’indique le tableau 3 de la phase I.
Tableau 3
Dans le tableau 3 de la phase I, nous avons za = -8. Le vecteur qui entre dans la base est le vecteur a2. Il
y a deux vecteurs candidats pour sortir de la base : q1 et q3. Nous choisissons arbitrairement de sortir q1
de la base et calculons un nouveau tableau.
Tableau 4
Puisque dans le tableau 4 de la phase [Link]=0, la phase I est terminée. Notons qu’il reste un vecteur
artificiel (q3) dans la base à un niveau 0. Il faudra donc s’assurer dans la phase II que la variable
correspondante ne devienne pas positive. Nous pouvons passer à l’étape 1 de la phase II.
Phase II
28
Etape 1 : Puisqu’il s’agit d’un problème de minimisation, il faut le transformer en un problème de
maximisation. La fonction objectif à maximiser est donc :
(− ) = 2 − 3 + 5
Les coefficients de la variable d’écart x4 et de la variable artificielle xa3 dans la base sont nuls. De plus,
nous pouvons éliminer du tableau les vecteurs artificiels q1 et q2 qui ne sont plus dans la base.
Etape 2 : Établissons le tableau 1 de la phase II.
Tableau 1
Le tableau 1 de la phase II fournit la solution optimale puisque la seule valeur de (zj-cj) pour un
vecteur hors base est strictement positive. À noter que dans ce cas, à la fin de la phase II, il reste un
vecteur artificiel dans la base à un niveau zéro.
La solution optimale est donnée par x1=2, x2=2 et x3=2. La valeur de la fonction objectif vaut z=-8
(car il s’agit d’une minimisation).
29
Chapitre 2 :
II.1 Introduction
min ( )
∈ℜ
Ou f est une fonction de ℜ ℜ ∪ + ∞
II.2 Le Gradient
+ −
lim
→
,…, ,…,
Lorsque = ,…, :ℜ → ℜ , le gradient est une matrice × dont les colonnes sont les
vecteurs ∇
Fonction de classe
Définition 2: fest continument différentiable si et seulement si toutes ces dérivées partielles d’ordre
1 existent et sont continues.
II.3 Le Hessien
Si les dérivées partielles de f possèdent à leur tour des dérivées partielles : on dit que f possède des
dérivées d’ordre 2. La dérivée partielle dans la direction de la dérivée partielle est notée :
( )
30
( ) … ( )
∇ = … ( ) … = ∇ ∇ ( )
( ) … ( )
+ 2 − 2 −
= − 0 −
2 − − 0
Fonction de classe
Définition2 :f est deux fois différentiable si et si seulement toutes ces dérivées partielles d’ordre deux
existent et sont continues.
Hessien de fonctions
Toute matrice symétrique réelle H est diagonalisable dans le groupe orthogonal : il existe ∆ diagonal,
U orthogonale telle que
= ∆ ; ∆↔
⟺ ℎ∇ ℎ≥ 0, ∀ℎ∈ 0ℜ
∗
Définition3 : (minimum global). Soit : ℜ → ℜ une fonction. ( )est le minimumglobal de f si et
seulement si :∀ ∈ ℜ , ( ) ≥ ( ∗ )
∗
est un minimiseur global de f.
Dans les points stationnaires, il y a les minima et les maxima (locaux et globaux) et il y a aussi d’autres
points.
Définition 6 : Un point stationnaire qui n’est ni un minimum ni un maximum est un point singulier.
31
Définition 1 : a est un minimum local de f si et seulement si il existe au voisinage de a tel que pour
tout ∈ , ( ) ≤ ( )
1- ∇ = 0ℜ
2- ∇ .
1- ∇ = 0ℜ
2- ∇ é . alors f possède un minimum local en a.
Définition :
1- Un ensemble D est dit convexe si, pour tous point x et y de D, le segment [a,b] est inclus dans
D, i.e. Quel que soit tout ∈ [0,1], le point + 1 − appartient a D.
exemple : les ensembles a , b , c sont des ensembles convexes ; d , e sont des ensembles non
convexes. Un ensemble convexe ne peut avoir des parties entrantes comme d ou de trous
comme e .
a b c
d e
2- : ℜ → ℜ définie sur un ensemble convexe D est dite convexe si pour tout points , ∈ℜ f
et tout ∈ [0,1]
+ 1− ≤ + 1− .
La fonction est dite strictement convexe si
∀ , ∈ , ≠ , ∀ ∈]0,1[, + 1− ≤ + 1− .
Théorème
32
1- f est convexe.
2- Pour tout , ∈ ℜ , ≥ + − ∇ ( )
3- Pour tout ∈ ℜ , ∇ .
Théorème : Soit : ℜ → ℜ une fonction convexe possédant des dérivées partielles. f admet un
minimum globale en a si et seulement si ∇ = 0ℜ .
Corollaire : Sif est convexe, tout minimum local est un minimum global.
Définition : On dit qu’une fonction est unimodale s’il existe un réel ∗ pour lequel lafonction est
strictement décroissante sur ]– ∞, ∗ ] et strictement croissante sur [ ∗ , + ∞[.
Le point ∗ est alors minimum global de f.
= −
qui est le point où atteint son minimum = 0si ≤ 0 , la méthode échoue
33
∗
k=0 : choix de ∈ ℜ dans un voisinage de .
2- Itération k
( )
= −
( )
3- Critère d’arrêt
Si ‖ − ‖< ,
Si non, On pose k=k+1 et on retourne à 2.
∈ ℜ é
∗
= + , ∈ℜ − 0 , ∈ℜ
Ou et sont choisis de telle sorte que ( + )< ( )
De tels algorithmes sont souvent appelés méthodes de descente. Essentiellement, la différence entre ces
algorithmes réside dans le choix de la direction de descente dk.
Une idée naturelle pour trouver une direction de descente est de faire un développement de Taylor à
l’ordre 2 de la fonction f entre deux itérations xk et = +
+ = + ∇ ( , )+
34
Si ‖ − ‖< ,
Si non, On pose k=k+1 et on retourne à 2.
Les itérations
Itérations x1 x2 f(x)
1 -2 1,5000 6,6250
35
3 1,4650 2,5462 -6,2872
Avec = ( )
Notons en particulier que :
0 == − . = −‖ ‖
36
= 2 − 3 = −7
On calcul le gradient de f =
= − 3 = − 1.5
7
La direction = − =
1.5
= − = 5.5
= (− 2 − 1 × (− 7)) + 0.5 × (1.5 − 1 × (− 1.5)) − 3 × − 2 − 1 × (− 7) + (1.5 − 1 × (− 1.5))
= 5.5
0 = −‖ ‖2 = 7.17
0 = 0.1 × 1 × 7.17 = 0.717
0 = 0.5 × 1 × 7.17 = 3.585
Etape 2
On fait le test Si 1 ≤ 0 + 0 et 1 ≥ (0), STOP : = 1.
Les méthodes du gradient conjugué sont utilisées pour résoudre les problèmes d’optimisation non
linéaires sans contraintes spécialement les problèmes de grandes tailles. On l’utilise aussi pour résoudre
les grands systèmes linéaires.
Elles reposent sur le concept des directions conjuguées parce que les gradients successifs sont
orthogonaux entre eux et aux directions précédentes.
L’idée initiale était de trouver une suite de directions de descente permettant de résoudre le problème.
Soit f une fonction quadratique :
min ∈ℜ ( )
Soit , ,…, une famille de vecteurs A-conjugués. On appelle alors méthode dedirections
conjuguées toute méthode itérative appliquée à une fonction quadratique strictement convexe de n
variables : = + + avec ∈ ℜ et A une matrice symétrique et définie positive de
n néléments. ∈ ℜ et ∈ ℜ conduisant à l’optimum en n étapes au plus. Cette méthode est de la
forme suivante :
= +
Où est optimal et , ,…, possédant la propriété d’être mutuellement conjuguées par rapport
à la fonction quadratique. Si l’on note = ∇ ( ), la méthode se construit comme suit :
37
Calcul de Comme minimise q dans la direction dk; on a, ∀ :
= ∇ = 0
∇ = + = 0
Soit
+ + = 0
( )
D’où l’on tire : =
= +
Nous pouvons noter que si di+1 est construite d’une telle manière, elle est effectivement linéairement
indépendante avec , , … , .
En effet, le sous-espace généré par les directions , , … , est le même que le sous-espace généré
par les directions , , … , , et est linéairement indépendant de , , … , :
ne fait donc pas partie du sous-espace généré par les combinaisons linéaires de
laforme∑ , de sorte que di+1 n’en fait pas partie non plus et est donc linéairement
indépendante des , , … , .
Les coefficients , eux sont choisis de manière à assurer la A-conjugaison des , , … , .
38
L’idée de la méthode est :
1- construire itérativement des directions , , … , mutuellementconjuguées :
A chaque étape k la direction dk est obtenue comme combinaison linéaire du gradient
En xk et de la direction précédente dk-1 c’est-à-dire
= −∇ +
les coefficients étant choisis de telle manière que dk soit conjuguée avec toutes les directions
précédentes. Autrement dit :
= 0
= 0 ⇒ −∇ + = 0
⇒− + = 0
⇒ = =
2-déterminer le pas :
En particulier, une façon de choisir consiste à résoudre le problème d’optimisation
unidimensionnelle suivant :
= + , > 0
On en deduit =
Le pas obtenu ainsi s’appelle le pas optimal.
Algorithme 3.1 Algorithme du gradient conjugué "quadratique"
Etape 0 : (initialisation)
Soit x0 le point de départ, = ∇ = + , poser d0 = -g0;
Poser k = 0 et aller à l’étape 1:
Etape 1 :
si gk = 0 : STOP ( x* = xk)."Test d’arrêt"
si non aller à l’étape 2.
Etape 2 :
Prendre = + avec
−
=
= −∇ +
39
2 0 −3
Sous la forme suivante∇ = + , Matrice = et = on posed0 = − =
0 1 −3
7
1.5
Poser k = 0 et aller à l’étape 1:
Etape 1 :
si g0 = 0 : STOP ( x* = xk)."Test d’arrêt" Test non vérifier donc aller a l’étape suivante.
Etape 2
= +
= +
−7
− − 7 1.5 ×
= = − 1.5 = 0.5112
2 0 7
7 1.5 ×
0 1 1.5
= − 2 + 0.5112 ∗ 7 = 1.5786
= 1.5 + 0.5112 ∗ 1.5 = 2.2668
Test d’arrêt
= 2 − 3 = 0.1571
= = ≠ 0
= − 3 = − 0.7332
on pose k=k+1
= +
= +
= −∇ +
=
0.1571
= =
− 0.7332
2 0 7
0.1571 − 0.7332 × ×
= 0 1 1.5 = 0.0110
2 0 7
7 1.5 ×
0 1 1.5
= −∇ + = 0.1571 + 0.0110 ∗ 7 = − 0.0803
= −∇ + = − 0.7332 + 0.0110 ∗ 1.5 = 0.7496
0.1571
− − − 0.0803 − 0.7496 ×
= = − 0.7332 = 0.9780
2 0 − 0.0803
− 0.0803 0.7496 ×
0 1 0.7496
= 1.5786 + 0.9780 ∗ (− 0.0803) = 1.5000
= 2.2668 + 0.9780 ∗ (0.7496) = 3.0000
Test d’arrêt = = 0.888 × 10 ≅ 0 arrêt.
0
40
Méthode du gradient conjugué dans le cas non quadratique
On s’intéresse dans cette section à la minimisation d’une fonction : ℜ → ℜ , nonnécessairement
quadratique :
min , ∈ ℜ
Les méthodes du gradient conjugué génèrent des suites , ,.., de la forme suivante :
= +
Le pas ∈ ℜ étant déterminé par une recherche linéaire. La direction dk est définie par la formule
de récurrence suivante ( ∈ ℜ )
− = 1
=
− + ≥ 2
Ces méthodes sont des extensions de la méthode du gradient conjugué linéaire du cas quadratique, si
prend l’une des valeurs
=
‖ ‖
‖ ‖
=
‖ ‖
‖ ‖
=
−
Ou = −
= − +
Ou
: é éℎ
Poser k=k+1 et aller a l’étape 1.
La méthode de Newton pour les fonctions multivariables est identique à celle des fonctions univariées.
Comme précédemment, une estimation de f au point xk est donnée par le développement de
Taylor du second ordre, qui s'écrit pour une fonction multivariée :
1
= + − ∇ + ( − ) ∇ ( − )
2
Si la matrice Hessienne est inversible, on choisit qui minimise , soit :
= − ∇ ∇ ( )
En pratique, la direction de descente = − ∇ ∇ ( ) est calculée sans inverser ∇
mais en résolvant :
41
∇ = −∇ ( )
L'intérêt de cette suite est sa convergence quadratique vers un minimiseur local à la condition que x0
soit assez proche d'un minimiseur. Néanmoins d'un point de vue pratique, cette Méthode comporte les
mêmes inconvénients que dans le cas monovariable :
la méthode peut diverger si le point de départ est trop éloigné de la solution,
la méthode n'est pas définie si la matrice Hessienne n'est pas inversible,
la méthode peut converger indifféremment vers un minimum, un maximum ou un point de selle.
- 1ère itération
= + = 1.5000
= + = 3
− < 10 ,
3- Test d’arrêt Si
− < 10 ,
42
Si non on pose k=2 et on retourne à 2
Les itérations
Itérations x1 x2 f(x)
1 -2 1,50000000000000 6,62500000000000
2 1,5000000000000 3 -6.7500
II.11.Méthodes quasi-Newton
Pour des problèmes de grandes dimensions, le calcul du Hessien est trop couteux. On peut alors utiliser
des algorithmes, dits quasi-Newton, qui calculent donc une approximation de ∇ ( ) en
fonction de ,∇ ,∇ , .
On trouve notamment deux méthodes de calcul :
la formule de Davidon-Fletcher-Powell (DFP) :
= − +
Avec
= ∇ − ∇ ( )
Ces formules donnent toujours des matrices définies positives. A l'aide de ces estimations, on établit un
algorithme à convergence très efficace et particulièrement robuste.
Son unique inconvénient est la nécessité du stockage en mémoire d'une matrice de taille n × n. Dans la
pratique, on utilise en général la méthode BFGS qui est plus efficace.
43
par exemple dichotomie ou Wolfe) et poser
= +
Etape 3 : construire comme suit :
= − + Selon DFP Ou
= + 1+ − Selon BFGS
Avec
= ∇ − ∇ ( )
=
Remplacer k par k+1 et aller à l’étape 1
Etape 2 : Si ‖∇ ‖<
STOP ; Test non vérifier,
− 1 × − 7.0000
poser = − × =
− 1 × − 1.5000
et déterminer le pas optimale solution du problème linéaire = + , ≥ 0
−7
− − 7 1.5 ×
= = − 1.5 = 0.5112
2 0 7
7 1.5 ×
0 1 1.5
poser
= + = 1.5786
= + = 2.2668
Etape 3 : construire comme suit :
= − + Selon DFP
Avec
= ∇ − ∇ ( )
=
Remplacer k par k+1 et aller à l’étape 1
Les itération sont résumé dans le tableau ci-dessous
x2 1.5000 -1.5000
44
2 x1 1.5786 0.1571 -6.4751 0.9888
x2 2.2668 -0.7332
3 x1 1.5000 0 -6.7500
x2 3.0000 0
45
Chapitre III
III.1 Introduction
On s’intéresse maintenant à des problèmes d’optimisation de la forme
∈ℜ ( )
ℎ = 0
Sous les contraintes
( )≤ 0
Où les fonctions f, h et g sont différentiables au moins une fois, et f est typiquement non-linéaire.
Cependant nous étudierons le cas où h et g sont linéaires avec un intérêt tout particulier. Dans ce
chapitre nous allons nous efforcer d’obtenir les conditions d’optimalité associées au problème
d’optimisation avec contraintes. Les paragraphes suivants mettront ensuite l’accent sur les méthodes
numériques permettant de le résoudre.
∈ ,∀ ∈ − , , > 0
0 =
ℎ = ∇ℎ = 0, 1≤ ≤ .
∇ℎ = 0, 1≤ ≤ .
Définition III.2.1On dit que ∈ ℜ est une direction admissible en ∈ s’il existe > 0 et une
courbe ( ) vérifiant
∈ , ∀ ∈ [− , ]
0 =
(0) =
On notera alors ∈ ( ).
L’ensemble ( ) définit le plan tangent à S en . L’analyse faite précédemment montre que l’on a
l’implication
∈ ⇒ ∇ℎ = 0, 1≤ ≤ .
46
qui sera insuffisante pour montrer la condition nécessaire d’optimalité. Nous allons donc maintenant
nous attacher à montrer sous quelles conditions cette dernière relation est une condition suffisante
d’appartenance à ( ).
Définition III.2.2On dit que est un point régulier pour la contrainte h(x) = 0si
- ℎ = 0
- Les vecteurs ℎ sont linéairement indépendants.
Si on note ℎ la matrice n × p
∇ℎ = [∇ℎ … ∇ℎ ]
la condition d’indépendance linéaire des ∇ℎ peut s’écrire
∇ℎ = .
et on a donc ∇ℎ (0) = 0pour toute courbe admissible .
On a la proposition suivante :
Proposition III.2 Si est un point régulier pour la contrainte h(x) = 0, alors
∇ℎ = 0⇒ ∈ ( )
∇ + ∇ℎ = 0
∈ℜ ( ) (III.1)
Où ℎ: ℜ → ℜ
Définition III.2.2.1 On appelle lagrangien associé au problème avec contraintes d’égalité la fonction
: ℜ × ℜ → ℜ définie par
, = + ℎ( )
=1
Les conditions de Lagrange peuvent se reformuler à l’aide du lagrangien: soit solution de problème
avec contraintes d’égalité. Alors il existe telque
47
∇ ,
Où on a noté ∇x le gradient partiel par rapport à la variable x. Dans la suite nous ferons l’hypothèse que
h et f sont deux fois continûment différentiables.
Théorème III.2.3.1 Soit un point régulier solution de problème avec contraintes d’égalité. Alors il
existe tel que
∇ L x, λ = 0
∇ , ≥ 0
Le résultat suivant est une généralisation du théorème précédent dont la démonstration sera admise.
ℎ = 0
∇ + ∇ℎ = 0
∇ , ≥ 0 , ∀ ∈ , ≠ 0
( )≤ 0
∇ + ∇ = 0.
≥ 0, = 1 …
∇ = 0, = 1 … .
∇ , ≥ 0 , ∀ ∈ , ≠ 0
= ∈ℜ , = 0, ∈ ≥ 0
Exemple 1 :
Minimiser 2x1 + x2
48
Avec h(x) = x12 + x22 –1 = 0
Le Lagrangien est
L(x, λ) = 2x1 + x2 + λ(x12 + x22 –1 )
∗
+ = 0 =
2+ 2 = 0
= 0 ce qui donne ⇒ ⇒ ∗
=
+ = 0 1 + 2 = 0
√5
ℎ = 0⇒ 1 + 1 2 = 0⇒ ∗
= ∓
2
2 points vérifient les conditions de Lagrange, mais un seul est minimum : ces conditions sont
nécessaires, mais pas suffisantes pour qu’un point soit optimum.
Exemple 2
Minimiser , = +
ℎ ∗
1
+ = 0 =
2 − = 0 2
ℎ ⇒ ⇒ − 1
2 + = 0 ∗
=
+ = 0 2
∗
= 1
III.3. Problème avec contraintes d’inégalité - Conditions nécessaires d’optimalité (KKT,
∈ℜ ( ) (III.2)
49
Où : ℜ → ℜ est différentiable (il n’y a ici aucune condition sur m). On notera K l’ensemble des
points admissibles, c'est-à-dire = ∈ ℜ , ≤ 0
Au point solution de Problème avec contraintes d’inégalité il va de soi que les contraintes effectivement
actives vérifieront = 0. Cependant, puisque l’on ne sait pas apriori quelles sont ces contraintes, le
passage de Problème avec contraintes d’inégalité a un problème du type Problème avec contraintes
d’égalité n’est pas direct.
Définition III.3.1 On appelle contraintes saturées en l’ensemble des indices i tel que = 0, et on
note
= | = 0
Définition [Link] dit que ∈ ℜ est une direction admissible en ∈ s’il existe > 0 et une
courbe ( ) vérifiant
∈ , ∀ ∈ [− , ]
0 =
0 =
On notera alors ∈ ( ).
∇ ( ) ≤ 0, ∈
Comme dans le cas des contraintes d’égalité, on doit définir la notion de point régulier qui est
nécessaire pour que la condition précédente soit suffisante:
- ( ) ≤ 0,
- Les vecteurs { ℎ( )} ∈ ( ) sont linéairement indépendants.
Sous l’hypothèse de régularité de on aura, comme dans le cas des contraintes d’égalité
∇ ≤ 0, ∈ ⇒ ∈
La proposition suivante permet d’effectuer le premier pas vers les conditions de Kuhnet Tucker.
Proposition III.3.1. Soit la solution du problème avec contraintes d’inégalité. Il existe > 0 telque
∀ ∈ , , < 0, ∉ ( )
∈ , ( )
= 0, ∈
Ce résultat est uniquement dû à la continuité de g, et montre que l’on est localement ramené à un
problème avec contraintes d’égalité. On peut donc maintenant énoncer le résultat principal:
50
Théorème III.3.1. Soit ∈ un point régulier solution du problème avec contraintes d’inégalité.
Alors il existe un unique vecteur λ ∈ ℜ telque
∇ + ∇ = 0.
= 0, = 1 …
∇ = 0, = 1 … .
Exemple
Minimiser = +
= + − 9≤ 0
Sous les contraintes
= + − 1≤ 0
On va montrer que la résolution des conditions de KKT donne les valeurs du minimum
2 2 1
∇ + ∇ + ∇ = + + = 0 (1)
1 2 1
2 2
= 1+ 2 − 9
(2)
= 1+ 2 − 1
, ≥ 0 (3)
Pour résoudre, on étudie les différents cas possibles (ce n’est pas une méthode générale).
Si ≠ 0 = 0, (1) ⇒ 2 + 2 = 0
1
= 0 = − 3 = = 0
6
III.4 Conditions de KKT pour un problème avec limitations d’égalité et d’inégalité
On suppose que : f, gj, j=1, ..., m , hl, l =1, ..., p sont continues et différentiables l
51
Alors, si x0 est un optimum local, il existe des nombres λj ≥0 et µ de signe quelconque tels que:
∇ + ∇ + ∇ℎ = 0
∇ = 0 = 1 …
Remarque :
52
Pour cela, on définit :
< > = 0 ( )≤ 0
( )> 0
, = + < >
et on considère le problème :
, = + ∑ < > (P’)
Soit (x*) la solution de (P’). Si on a choisi « assez grand », les termes < > seront « petits »,
*
ce qui signifie que x sera « presque » admissible.
Mais en pratique, si est très grand, est mal conditionnée. C’est pourquoi on procède itérativement,
en augmentant progressivement, et en initialisant chaque recherche par la solution précédente.
Algorithme général :
1- k=1, choix de x1, (proportion coût/pénalité)
2- Résoudre (par une méthode sans contraintes) :
, = + ∑ < > (Pk’)
avec pour point de départ xk
→ solution xk*
3- Tester si les contraintes sont « suffisamment » satisfaites :
,… ( )≤
*
Si oui, fin, x = xk
Si non,
4- augmenter le facteur de pénalité :
= × par ex 1 < < 10
mettre à jour le point de départ : xk+1 = xk*
k=k+1
aller en (2)
53
♦ facile à implanter, mais pas très performant (conditionnement), solution toujours légèrement non
admissible.
Remarque : Dans le cas de contraintes d’égalité ℎ = 0 = 1, … , ), la fonction pénalisée à
considérer est :
, = + (ℎ )
Même principe que la pénalité extérieure, mais pour obtenir un minimum approché par l’intérieur du
domaine (donc toujours admissible). On définit :
1
, = −
( )
Ou bien
, = − log (− ( ))
Ou le facteur de pénalité r doit cette fois tendre vers 0 pour que x s’approche de la frontière du
domaine admissible. On résout donc une succession de problèmes sans contraintes :
1
, = − = 1, …
( )
Avec
♦ Cette pénalisation n’est pas valable sur la frontière ni à l’extérieur du domaine admissible.
Exemple
sous la contrainte ( ) = 4− ≤ 0
54
par les différentes méthodes de pénalité.
1. Pénalités extérieures.
, = 0.5 + 〈4 − 〉
0.5
= 4−
2
2. Pénalités intérieures
, = 0.5 −
4−
La solution approchée associée est :
= 4+
0.5
min ( )
∈
= ∈ ℜ , ℎ = 0, = 1, … ,
L’idée essentielle consiste à résoudre une succession de problèmes quadratiques avec contraintes
linéaires (ces problèmes sont relativement simples à résoudre) qui sont des approximations du
problème de départ.
Effectuons une approximation des contraintes h à l’aide de la formule de Taylor du premier ordre :
ℎ + = ℎ + ∇ℎ . + (‖ ‖ )
Si on néglige les termes d’ordre supérieur ou égal à 2, on définit la direction avec la direction
permettant d’assumer ℎ( + ) ≅ 0
On pose donc ℎ + ∇ℎ . = 0, ∀ = 1, … ,
∇ℎ . = −ℎ
55
Ou ∇ℎ est la matrice jacobienne de ℎen . Cette relation correspond à une linéarisation des
contraintes au voisinage de : c’est un système linéaire.
Par ailleurs, il faudrait que diminue la valeur du Lagrangien (puisque c’est le Lagrangien qui joue
le rôle de la fonction objectif quand on a des contraintes). On va faire une approximation du
Lagrangien.
1
+ , = , + ∇ , , + ∇ , , + (‖ ‖ )
2
Si on néglige les termes d’ordre supérieur ou égal à 3, on voit qu’il faut minimiser
1
∇ , , + ∇ , ,
2
Pour espérer minimiser le Lagrangien. On cherche donc, en fin de compte solution du problème
min ∇ , + (∇ , . , )
∇ℎ + ℎ = 0
(∇ , , )= ∇ + ∇ ( )
= ∇ , + ( )
Le dernier terme étant constant. Il reste ensuite à déterminer le pas et le multiplicateur à chaque
itération. Il y a bien sur, beaucoup de possibilités qui génèrent autant de variantes de la méthode.
Initialisation
K=1, choix de ∈ ℜ, ∈ℜ
min ∇ , + (∇ , . , )
(1)
∇ℎ + ℎ = 0
K=k+1
56
Pour le problème :
min ( )
∈
ou
= ∈ℜ , ℎ = 0, ( ) ≤ 0
Elle vaut , , = + + ( )
Ou ∈ℜ ∈ℜ
La méthode SQP s’´ecrit de la façon suivante ou linéarise les contrainte et on fait une approximation
quadratique de L. On obtient alors l’algorithme suivant.
Initialisation
K=1, choix de ∈ ℜ, ∈ℜ ∈ℜ
min ∇ , + (∇ , . , )
∇ℎ + ℎ = 0 (2)
∇ + ≤ 0
K=k+1
57
Chapitre IV :
Les algorithmes génétiques sont des algorithmes d'optimisation s'appuyant sur des techniques dérivées
de la génétique et des mécanismes d'évolution de la nature : croisements, mutations, sélections, etc....
Ils appartiennent à la classe des algorithmes évolutionnaires.
IV.1.1 Le codage
Chaque paramètre d'une solution est assimilé à un gène, toutes les valeurs qu'il peut prendre sont les
allèles de ce gène, on doit trouver une manière de coder chaque allèle différent de façon unique (établir
une bijection entre l'allèle "réel" et sa représentation codée).
Un chromosome est une suite de gène, on peut par exemple choisir de regrouper les paramètres
similaires dans un même chromosome (chromosome à un seul brin) et chaque gène sera repérable par
sa position : son locus sur le chromosome en question.
Chaque individu est représenté par un ensemble de chromosomes, et une population est un ensemble
d'individus.
Il y a trois principaux types de codage utilisables, et on peut passer de l'un à l'autre relativement
facilement :
• le codage binaire : c'est le plus utilisé.
Chaque gène dispose du même alphabet binaire {0, 1}. Un gène est alors représenté par un entier long
(32 bits), les chromosomes qui sont des suites de gènes sont représentés par des tableaux de gènes et les
individus de notre espace de recherche sont représentés par des tableaux de chromosomes.
Ce cas peut être généralisé à tout alphabet allélique n-aire permettant un codage plus intuitif, par
exemple pour le problème du voyageur de commerce on peut préférer utiliser l'alphabet
58
allélique {c1, c2, c3, ..., cn} où ci représente la ville de numéro i.
• le codage réel : cela peut-être utile notamment dans le cas où l'on recherche le maximum d'une
fonction réelle.
59
Avec cette méthode chaque individu a une chance d'être sélectionné proportionnelle à sa performance,
donc plus les individus sont adaptés au problème, plus ils ont de chances d'être sélectionnés.
Pour utiliser l'image de la "roue du forain", chaque individu se voit attribué un secteur dont l'angle est
proportionnel à son adaptation, sa "fitness".
On fait tourner la roue et quand elle cesse de tourner on sélectionne l'individu correspondant au secteur
désigné par une sorte de "curseur", curseur qui pointe sur un secteur particulier de celle-ci après qu'elle
se soit arrêté de tourner.
60
Il existe certaines techniques pour essayer de limiter ce phénomène, comme par exemple le "scaling",
qui consiste à effectuer un changement d'échelle de manière à augmenter ou diminuer de manière
forcée la fitness d'un individu par rapport à un autre selon leur écart de fitness.
Malgré tout, il est conseillé d'opter plutôt pour une autre méthode de sélection.
b) La méthode élitiste.
Cette méthode consiste à sélectionner les n individus dont on a besoin pour la nouvelle génération P' en
prenant les n meilleurs individus de la population P après l'avoir triée de manière décroissante selon la
fitness de ses individus.
Il est inutile de préciser que cette méthode est encore pire que celle de la loterie biaisée dans le sens où
elle amènera à une convergence prématurée encore plus rapidement et surtout de manière encore plus
sûre que la méthode de sélection de la loterie biaisée ; en effet, la pression de la sélection est trop forte,
la variance nulle et la diversité inexistante, du moins le peu de diversité qu'il pourrait y avoir ne
résultera pas de la sélection mais plutôt du croisement et des mutations. Là aussi il faut opter pour une
autre méthode de sélection.
c) La sélection par tournois :
Cette méthode est celle avec laquelle on obtient les résultats les plus satisfaisants. Le principe de cette
méthode est le suivant : on effectue un tirage avec remise de deux individus de P, et on les fait
"combattre". Celui qui a la fitness la plus élevée l'emporte avec une probabilité p comprise entre 0.5 et
1. On répète ce processus n fois de manière à obtenir les n individus de P' qui serviront de parents.
La variance de cette méthode est élevée et le fait d'augmenter ou de diminuer la valeur de p permet
respectivement de diminuer ou d'augmenter la pression de la sélection.
d) La sélection universelle stochastique :
Cette méthode semble être très peu utilisée et qui plus est possède une variance faible, donc introduit
peu de diversité, nous n'entrerons donc pas dans les détails, on se contentera d'exposer sa mise en
œuvre : On prend l'image d'un segment découpé en autant de sous-segments qu'il y a d'individus. Les
individus sélectionnés sont désignés par un ensemble de points équidistants.
IV.1.3 L'opérateur de croisement ou crossover
Le crossover utilisé par les algorithmes génétiques est la transposition informatique du mécanisme qui
permet, dans la nature, la production de chromosomes qui héritent partiellement des caractéristiques
des parents. Son rôle fondamental est de permettre la recombinaison des informations présentes dans le
patrimoine génétique de la population.
Cet opérateur est appliqué après avoir appliqué l'opérateur de sélection sur la population P; on se
retrouve donc avec une population P' de n/2 individus et on doit doubler ce nombre pour que notre
nouvelle génération soit complète.
61
On va donc créer de manière aléatoire n/4 couples et on les fait se "reproduire". Les chromosomes
(ensembles de paramètres) des parents sont alors copiés et recombinés de façon à former deux
descendants possédant des caractéristiques issues des deux parents.
Détaillons ce qui se passe pour chaque couple au niveau de chacun de leurs chromosomes :
Un, deux, voire jusqu'à lg - 1 (où lg est la longueur du chromosome) points de croisements (loci) sont
tirés au hasard, chaque chromosome se retrouve donc séparé en "segments". Puis chaque segment du
parent 1 est échangé avec son "homologue" du parent 2 selon une probabilité de croisement pc . De ce
processus résulte 2 fils pour chaque couple et notre population P' contient donc bien maintenant n
individus.
On peut noter que le nombre de points de croisements ainsi que la probabilité de croisement pc
permettent d'introduire plus ou moins de diversité. En effet, plus le nombre de points de croisements
sera grand et plus la probabilité de croisement sera élevée plus il y aura d'échange de segments, donc
d'échange de paramètres, d'information, et plus le nombre de points de croisements sera petit et plus la
probabilité de croisement sera faible, moins le croisement apportera de diversité.
Ci-dessous, un schéma illustrant un croisement en un point, un autre pour un croisement en deux
points, et enfin un schéma représentant un croisement avec lg - 1 points de croisements (on notera
d'ailleurs sur ce schéma que l'échange d'un segment avec son homologue ne se fait pas toujours) :
62
Figure 6: croisement uniforme
On peut citer aussi une autre méthode très utilisée dans le cas des problèmes modélisés par un codage
binaire, il s'agit du croisement uniforme. La mise en œuvre de ce procédé est fort simple, elle consiste
à définir de manière aléatoire un "masque", c'est-à-dire une chaîne de bits de même longueur que les
chromosomes des parents sur lesquels il sera appliqué. Ce masque est destiné à savoir, pour chaque
locus, de quel parent le premier fils devra hériter du gène s'y trouvant; si face à un locus le masque
présente un 0, le fils héritera le gène s'y trouvant du parent n° 1, si il présente un 1 il en héritera du
parent n° 2. La création du fils n° 2 se fait de manière symétrique : si pour un gène donné le masque
indique que le fils n° 1 devra recevoir celui-ci du parent n° 1 alors le fils n° 2 le recevra du parent n°2,
et si le fils n° 1 le reçoit du parent n° 2 alors le fils 2 le recevra du parent n° 1.
L’opérateur de croisement favorise l’exploration de l’espace de recherche. En effet, considérons deux
gènes A et B pouvant être améliorés par mutation. Il est peu probable que les deux gènes améliorés A’
et B’ apparaissent par mutation dans un même individu. Mais si un parent porte le gène mutant A' et
l'autre le gène mutant B', l’opérateur de croisement permettra de combiner rapidement A’ et B’ et donc
de créer un nouvel individu possédant cette combinaison, combinaison grâce à laquelle il est possible
qu'il soit encore plus adapté que ses parents. L’opérateur de croisement assure donc le brassage du
matériel génétique et l’accumulation des mutations favorables. En termes plus concrets, cet opérateur
permet de créer de nouvelles combinaisons des paramètres des composants. Malgré tout, il est possible
que l'action conjointe de la sélection et du croisement ne permette pas de converger vers la solution
optimale du problème. En effet, imaginons que nous avons une population d'individus possédant un
seul chromosome. Considérons un gène particulier de ce chromosome, on l'appellera G, gène ayant 2
allèles possibles : 0 et 1; si aucun individu de la population initiale ne possède l'allèle 1 pour ce gène,
aucun croisement possible ne permettra d'introduire cet allèle pour notre gène G. Si la solution optimale
au problème est telle que notre gène G possède l'allèle 1, il nous sera impossible d'atteindre cette
solution optimale simplement par sélection et croisement. C’est pour remédier entre autre à ce
problème que l’opérateur de mutation est utilisé.
63
IV.1.4 L'opérateur de mutation
Cet opérateur consiste à changer la valeur allélique d'un gène avec une probabilité pm très faible,
généralement comprise entre 0.01 et 0.001. On peut aussi prendre pm = 1 / lg où lg est la longueur de la
chaîne de bits codant notre chromosome. Une mutation consiste simplement en l'inversion d'un bit (ou
de plusieurs bits, mais vu la probabilité de mutation c'est extrêmement rare) se trouvant en un locus
bien particulier et lui aussi déterminé de manière aléatoire; on peut donc résumer la mutation de la
façon suivante :
On utilise une fonction censée nous retourner true avec une probabilité pm .
Pour chaque locus faire
Faire appel à la fonction
Si cette fonction nous renvoie true alors
on inverse le bit se trouvant à ce locus
Fin Si
Fin Pour
64
on aura beau choisir la méthode de croisement qu'on veut on se retrouvera toujours à échanger des
portions de chromosomes identiques et la population n'évoluera pas. L'évolution se retrouvant bloquée
on n'attendra jamais l'optimum global.
La mutation entrainant des inversions de bits de manière aléatoire permet de réintroduire des
différences entre les individus et donc de nous extirper de cette situation.
Il est quand même utile de garder à l'esprit que ceci n'est pas une solution "miracle" et qu'il est bien
entendu plus intelligent de ne pas utiliser de méthodes de sélection connues pour entrainer ce type de
problème.
• La mutation permet d'atteindre la propriété d' ergodicité.
L'ergodicité est une propriété garantissant que chaque point de l'espace de recherche puisse être atteint.
En effet, une mutation pouvant intervenir de manière aléatoire au niveau de n'importe quel locus, on a
la certitude mathématique que n'importe quel permutation de notre chaîne de bits peut apparaître au
sein de la population et donc que tout point de l'espace de recherche peut être atteint. Grâce à cette
propriété on est donc sûr de pouvoir atteindre l'optimum global. On notera que la mutation règle donc
le problème exposé à la fin du Section sur le croisement.
IV.1.5 L'opérateur de remplacement
Cet opérateur est le plus simple, son travail consiste à réintroduire les descendants obtenus par
application successive des opérateurs de sélection, de croisement et de mutation (la population P') dans
la population de leurs parents (la population P). Ce faisant il vont remplacer une certaine proportion de
ceux-ci, proportion pouvant bien sûr être choisie. Le rapport entre le nombre d'individus nouveaux
allant être introduits dans la population P et le nombre d'individus de cette population est connu sous le
nom de génération gap.
On trouve essentiellement deux méthodes de remplacement différentes :
• Le remplacement stationnaire : dans ce cas, les enfants remplacent automatiquement les parents sans
tenir compte de leurs performances respectives, et le nombre d'individus de la population ne varie pas
tout au long du cycle d'évolution simulé, ce qui implique donc d'initialiser la population initiale avec un
nombre suffisant d'individus. Cette méthode peut être mise en œuvre de deux façons différentes :
• La première se contente de remplacer la totalité de la population P par la population P', cette méthode
est connue sous le nom de remplacement générationnel et on a donc une génération gap qui vaut 1.
• La deuxième méthode consiste à choisir une certaine proportion d'individus de P' qui remplaceront
leurs parents dans P (proportion égale à 100 % dans le cas du remplacement générationnel. Ce type de
remplacement engendre une population ayant une grande variation et de se fait favorise la dérive
génétique qui se manifeste d'autant plus que la population est de petite taille.
De plus dans bien des cas, étant donné que même un enfant ayant une faible performance remplace
forcement un parent, on n’atteint pas la meilleure solution mais on s’en approche seulement.
65
• Le remplacement élitiste : dans ce cas, on garde au moins l'individu possédant les meilleures
performances d'une génération à la suivante. En général, on peut partir du principe qu’un nouvel
individu (enfant) prend place au sein de la population que s’il remplit le critère d’être plus performant
que le moins performant des individus de la population précédente. Donc les enfants d'une génération
ne remplaceront pas nécessairement leurs parents comme dans le remplacement stationnaire et par la
même la taille de la population n'est pas figée au cours du temps.
Ce type de stratégie améliore les performances des algorithmes évolutionnaire dans certains cas. Mais
présente aussi un désavantage en augmentant le taux de convergence prématuré.
Néanmoins, des implémentations plus fines procèdent de manière différente. Dans ce cas là, le taux
de remplacement n'est pas de 100 %, la taille de la population augmente donc au cours des générations
successives, on dit qu'il y a overcrowding. Il faut donc trouver un moyen pour sélectionner les parents
qui seront supprimés, qui vont mourir. De Jong a proposé la solution suivante : imaginons qu'on veuille
remplacer 30 % des parents, soit np le nombre de parents correspondants à ce pourcentage, on
remplacera les np parents les plus proches de leurs descendants de P'. Cette méthode permet donc
premièrement de maintenir la diversité et deuxièmement d'améliorer la fitness globale de la population.
Exemple :trouver le maximum de la fonction ( ) = sur l'intervalle [0, 31] où est un entier
naturel.
On a 32 valeurs possibles pour x on choisit donc un codage discret sur 5 bits : on obtient donc la
séquence 0,1,1,0,1 pour 13, la séquence 1,1,0,0,1 pour 25, etc...
On initialise la population initiale de manière aléatoire et on fixe sa taille à 4 individus. On définit
simplement la fitness comme étant la valeur de x, vu qu'on en cherche la valeur maximum sur
l'intervalle [0, 31] plus la valeur de x sera élevée plus on se rapprochera du maximum de la fonction
identité et donc plus la fitness sera grande. Soit la population initiale suivante :
66
Figure 9: application de la méthode de sélection de la loterie biaisée sur la population
On fait tourner la roue 4 fois de suite, en général on fait tourner n / 2 fois, soit 2 fois dans ce cas, mais
le nombre 2 étant trop petit on décide de la faire tourner 4 fois. On obtient la nouvelle population :
Figure 11: résultat de l'application de l'opérateur de croisement avec un point de crossover sur les
individus sélectionnés par la loterie biaisée
On applique l'opérateur de mutation qui choisit de manière aléatoire si on doit faire une mutation et sur
quel locus la faire :
67
Figure 12: résultat de l'application de l'opérateur de mutation sur les individus engendrés par
croisement
Puis on applique l'opérateur de remplacement qui décide de remplacer 100% de la population P, la
population P est donc entièrement remplacée par P' et sa taille reste fixe :
L’optimisation par essaim de particules repose sur un ensemble d’individus originellement disposés de
façon aléatoire et homogène, que nous appellerons dès lors des particules, qui se déplacent dans
l’hyper-espace de recherche et constituent, chacune, une solution potentielle. Chaque particule dispose
d’une mémoire concernant sa meilleure solution visitée ainsi que la capacité de communiquer avec les
particules constituant son entourage. À partir de ces informations, la particule va suivre une tendance
faite, d’une part, de sa volonté à retourner vers sa solution optimale, et d’autre part, de son mimétisme
68
par rapport aux solutions trouvées dans son voisinage. A partir d’optimums locaux et empiriques,
l’ensemble des particules va, normalement, converger vers la solution optimale globale du problème
traité.
c) la topologie et la taille du voisinage d’une particule qui définissent son réseau social (3.3.2).
• ( ) : Sa vitesse ;
•
: La position de la meilleure solution connue de son voisinage ;
69
a) topologie en étoile : chaque particule est reliée à toutes les autres, ie. L’optimum du voisinage est
l’optimum global ;
b) topologie en anneau : chaque particule est reliée à n particules (en général, n = 3), c’est la topologie
la plus utilisée ;
c) topologie en rayon : les particules ne communiquent qu’avec une seule particule centrale ;
70
1 | − 4 |
= 1− +
2
avec = + > 4 .
= . − 1 + .
− + .
−
Les études de SHI et EBERHART indiquent que l’utilisation d’un coefficient de constriction donne
généralement un meilleur taux de convergence sans avoir à fixer de vitesse maximale. Cependant, dans
certains cas, le coefficient de constriction seul ne permet pas la convergence vers la solution optimale
pour un nombre d’itérations donné. Pour résoudre ce problème, il peut être intéressant de fixer =
en plus du coefficient de constriction, ce qui, selon les études de SHI et EBERHART, permet
d’améliorer les performances globales de l’algorithme.
= . − 1 + .
− + .
−
La taille du facteur d’inertie influence directement la taille de l’hyper-espace exploré et aucune valeur
de ne peut garantir la convergence vers la solution optimale.
Les études menées par SHI et EBERHART indiquent une meilleure convergences pour ∈ [0.8,1.2].
Au delà de 1.2, l’algorithme tend à avoir certaines difficultés à converger.
Enfin, il est également possible de faire diminuer le facteur d’inertie au cours du temps, un peu à la
manière de la température dans un algorithme de recuit simulé (Simulated Annealing). De bons
résultats ont été trouvés pour une valeur décroissant linéairement de 0.9 à 0.4. Pour de plus amples
informations sur le réglage de ce paramètre, veuillez vous référer à la thèse de VAN DEN BERGH.
IV.2.1.6 Initialisation de l’essaim
La position des particules ainsi que leur vitesse initiale doivent être initialisés aléatoirement selon une
loi uniforme sur [0,1]. Cependant, en ce qui concerne la position des particules, il est préférable
d’utiliser un générateur de séquence de SOBOL qui est plus pertinent dans la disposition homogène des
particules dans un espace de dimension n.
IV.2.1.7 Critères d’arrêt
71
Comme indiqué précédemment, la convergence vers la solution optimale globale n’est pas garantie
dans tous les cas de figure même si les expériences dénotent la grande performance de la méthode. De
ce fait, il est fortement conseillé de doté l’algorithme d’une porte de sortie en définissant un nombre
maximum d’itération (que nous noterons nbItermax).
L’algorithme doit alors s’exécuter tant que l’un des critères de convergence suivant n’a pas été atteint :
• nbItermax a été atteint ;
• la variation de la vitesse est proche de 0 ;
• le fitness de la solution est suffisant.
IV.2.2 Algorithme de synthèse
= +
fin pour
jusqu’à (un des critères de convergence est atteint)
72
Références bibliographiques:
73