• Nenhum resultado encontrado

CHAPITRE II ETUDE BIBLIOGRAPHIQUE, POUR DEFINIR LES OUTILS A VENIR

4. L ES TECHNIQUES D ' OPTIMISATION

4.2 Méthodes déterministes : programmation mathématique

La programmation mathématique [MIN 83, VAN 84] a pour objet l'étude théorique des problèmes d'optimisation ainsi que la conception et la mise en œuvre des algorithmes de résolution. Le principe de base est de générer, à partir d'une solution initiale X0, un déplacement dans l'espace des solutions dans une direction de descente, c’est à dire qui fasse décroître la fonction objectif F(X). Les déplacements successifs génèrent une suite de solutions jusqu'à satisfaire une condition d'optimalité. L'hypothèse forte de ce type de méthode est que les fonctions du problème sont supposées continues et différentiables.

Ces algorithmes sont déterministes : pour un point de départ X0 donné, la solution proposée est toujours la même.

4.2.1 Optimisation en variables continues sans contrainte Nous allons considérer le problème suivant :

Minimiser F(X) avec X

Rn et F(X)

R

Envisager uniquement la minimisation de la fonction objectif n'est pas restrictif puisqu'il suffit pour maximiser une fonction H(X), de minimiser la fonction F(X) = - H(X).

Pour résoudre le problème d'optimisation, on se déplace point à point, à partir d'un point de départ fixé à priori, le point suivant étant obtenu par un "déplacement" dans Rn de direction et d’intensité calculées à partir des caractéristiques des différentes fonctions mises en jeu.

Voici l'algorithme correspondant : Point de départ : X0, k = 0

On détermine la direction de déplacement dk (vecteur non nul de Rn)

On effectue une recherche unidimensionnelle pour trouver la valeur du déplacement vk dans cette direction

On détermine le point suivant Xk+1 = Xk + vk . dk

Si le critère d'arrêt est satisfait, Xk+1 est la solution optimale sinon, on recommence la manipulation.

La littérature scientifique fournit de nombreuses méthodes pour le calcul de la direction de déplacement dk ainsi que de la valeur du déplacement vk.

Pour trouver la direction de déplacement dk, il existe par exemple :

• La méthode de la plus forte pente

• La méthode des directions conjuguées

• Des méthodes quasi-Newtonniene (BFGS par exemple)

La méthode de la plus forte pente est la méthode la plus simple des quatre méthodes évoquées. L'idée naturelle pour déterminer la direction de descente consiste à définir dk comme l'opposé du gradient ( dk = - ∇ F(Xk)) puisque le gradient est la direction de plus forte augmentation de F(X). Le seul intérêt de cette méthode est qu’elle est simple, sa rapidité de convergence est en général très mauvaise. Ceci est principalement dû au fait qu’elle n’utilise pas d’informations émanent des itérations précédentes de manière à accélérer la convergence.

La méthode des directions conjuguées due à Fletcher et Reeves ne nécessite qu’une petite modification de l’algorithme de la plus forte pente. Elle augmente considérablement la rapidité de convergence et ne nécessite que le stockage de très peu d’informations.

Les méthodes quasi-newtonienne sont aussi très intéressantes et plus particulièrement la formule de correction BFGS. Son insensibilité aux imprécisions de la recherche unidimensionnelle, sa vitesse de convergence et sa robustesse autorisent son utilisation sur un vaste champ de fonctions.

Toutes ces méthodes nécessitent pour chaque direction de recherche d’effectuer une minimisation unidimensionnelle. Une fois que dK est connue, la valeur du déplacement vk est déterminée par un processus itératif. Il s'agit de résoudre le problème unidimensionnel (vk est la seule variable) suivant :

Trouver vk tel que G(vk) = Min(G(v)) avec G(v) = F( Xk + v dk) et v > 0

Certaines méthodes utilisent la dérivée de la fonction (solution trouvée lorsque G'(v) = 0) :

• Newton-Raphson

• Méthode de la sécante

D'autres méthodes n'utilisent pas de dérivées :

• Dichotomie

• Fibonacci

• Nombre d'or

• Approximations quadratiques ou cubiques

Pour arrêter l'algorithme, il faut savoir si la solution en cours peut être la solution optimale X*. Voici la condition suffisante d'optimalité locale :

∇F(X*) = 0 et ∇2F(X*) est une matrice définie positive

Dans la pratique, il est très difficile de savoir si la solution obtenue est alors un optimal global ou un optimal local (sauf si la fonction est convexe car alors tout optimum local est un optimum global).

4.2.2 Optimisation en variables continues avec contraintes

La plupart des problèmes d'optimisation en conception mécanique contiennent des fonctions contraintes. Le problème à résoudre se présente sous la forme suivante :

Minimiser F(X) avec X

Rn et F(X)

R

Soumis à gi(X) ≤ 0 i = 1..m

Les conditions d'optimalité sont alors plus complexes que pour les problèmes sans contrainte et sont appelées les conditions d'optimalité de Kuhn et Tucker [MIN 83].

Il existe de nombreuses méthodes pour résoudre ce type de problèmes, elles sont classées en deux catégories :

• Les méthodes directes (ou primales)

• Les méthodes duales Les méthodes directes

Elles sont inspirées des méthodes de résolution sans contrainte et traitent directement du problème d'optimisation sous sa forme initiale. Le principe de base est similaire, c'est à dire effectuer un déplacement dans l'espace des variables à chaque itération, en tenant compte des limitations imposées par les fonctions contraintes.

La méthode des directions réalisables est directement inspirée des méthodes pour les problèmes sans fonction contrainte. La direction de déplacement doit être une direction de descente pour la fonction objectif sans faire sortir du domaine des solutions réalisables.

La méthode de linéarisation [LOH 91a, LOH 61b] consiste à remplacer la résolution d'un problème non linéaire par la résolution d'une suite de problèmes linéaires approximant le problème donné. Chaque problème linéaire peut être résolu en utilisant par exemple la méthode du simplexe. Une extension de cette approche est la méthode SQP où la fonction objectif est approximé par une fonction quadratique.

La méthode du gradient réduit généralisé est particulièrement bien adaptée aux problèmes contenant des contraintes d'égalités. En effet, le problème initial est transformé pour ne faire apparaître que ce type de contraintes. Pour cela, il faut associer à chacune des m contraintes d'inégalité gi,une variable d'écart si pour obtenir la formulation suivante :

Minimiser F(X) avec X

Rn+m et F(X)

R

Soumis à gi(X) +si = 0 i = 1..m Avec si ≥ 0 ; si

R

Le problème à n variables devient ainsi un problème à n+m variables avec X : X = [x1, x2, ...xn, s1, ...sm]T

Toutes ces méthodes sont itératives. Elles nécessitent un point de départ appartenant au domaine des solutions, donc délicat à déterminer. Par contre, elles engendrent des points situés à l'intérieur du domaine des solutions et ont ainsi l'avantage de fournir une solution acceptable dans toutes les circonstances. Leur propriété de convergence globale ne peut être établie qu'avec l'hypothèse de convexité du domaine des solutions et de la fonction objectif.

Les méthodes duales

Ces méthodes ramènent le problème initial à une suite de problèmes sans contrainte. Elles ont l'avantage de permettre un point de départ quelconque et ont des propriétés de convergence globale plus robuste que les méthodes primales. Par contre, en cas d'interruption des calculs, la solution en cours peut être à l'extérieur du domaine des solutions.

La méthode de pénalité consiste à remplacer la résolution du problème avec contraintes par la résolution d'un nouveau problème sans contrainte en transformant la fonction objectif pour qu'elle soit pénalisée lorsque des contraintes sont violées :

P(X) = F(X) + r . J(X)

Avec J(X) : fonction de pénalité (réel positif) et r : coefficient de pénalisation (réel positif)

Il existe de nombreuses stratégies de pénalisation, nous citons ici les approches classiques de pénalité extérieure et intérieure.

Pour les méthodes de pénalité extérieure, la fonction objectif n’est pénalisée que lorsque le point testé est en dehors du domaine des solutions réalisables. On peut employer par exemple :

[ ]

{ }

=

= m

1 j

2 j( ) g 0, max )

(

P X X

Avec ce type de stratégie, le coefficient r est progressivement augmenté au cours des itérations pour se rapprocher du domaine des solutions réalisables.

Une autre catégorie d’approche est appelée méthodes de pénalité intérieure. Dans ce cas, la fonction objectif est pénalisée dès que le point testé s’approche des contraintes. Ici le coefficient de pénalité est progressivement diminué au cours des itérations et aucune violation de contrainte n’est admise. On peut citer la pénalité intérieure basique :

=

= m

1 j gj( ) ) 1

(

P X X

La difficulté du choix d'une valeur initiale pour le coefficient de pénalisation r ainsi que son évolution au cours des résolutions successives font que les méthodes de pénalité sont difficiles à utiliser pour réaliser des codes de calcul généraux. Malgré ces inconvénients, les méthodes de pénalité peuvent être utilisées efficacement pour résoudre les problèmes fortement non linéaires.

Les méthodes de pénalité peuvent être considérablement amélioré en utilisant les multiplicateurs de Lagrange. Avec la méthode des Lagrangiens augmentés, le problème est traduit sous la forme suivante :

[ ]

= Ψ + Ψ

+

= m

1 j

2 j

j( ) r ( )

) ( F ) r , , (

L X λ X λi X X

avec

=

Ψj(X) Max gj(X), 2λri , λi≥ 0 (multiplicateurs de Lagrange) et r > 0

Cette dernière méthode est très robuste et possède d’excellentes propriétés de convergence.

4.2.3 Optimisation en variables mixtes

Nous désignons par vecteur en variables mixtes, un vecteur qui regroupe plusieurs types de variables :

• Des variables continues qui peuvent varier de façon continue entre deux bornes réelles distinctes.

• Des variables entières qui prennent des valeurs entières entre deux bornes entières distinctes.

• Des variables discrètes qui prennent des valeurs discrètes réparties de façon quelconque entre deux bornes réelles distinctes. Pour les définir, il est nécessaire d'énumérer toutes les valeurs possibles.

Si un problème strictement convexe en variables continues admet une solution optimale unique, il n'en est pas de même en variables mixtes. En fait, la seule façon envisageable pour statuer sur l'optimalité locale discrète est d'évaluer la fonction objectif pour l'ensemble des éléments du voisinage discret appartenant au domaine des solutions réalisables du domaine.

Cette technique n'est envisageable que lorsque le problème ne comporte qu'un nombre limité de variables discrètes ou entières.

Un certain nombre de techniques ont été développées pour résoudre les problèmes en variables mixtes en essayant de surmonter ces difficultés. Voici quelques-unes de ces techniques.

1) Ajout de contraintes et problème en variables continues

La première technique consiste à transformer le problème initial en variables mixtes en un problème en variables continues. Les restrictions dues aux variables discrètes sont alors assimilées à des fonctions contraintes et une méthode de pénalité est utilisée pour résoudre le problème obtenu. La figure II.12 montre un exemple de fonction contrainte associée à une variable entière.

Min Contrainte

x Max

Figure II.12 Allure d'une fonction contrainte associée à une variable entière

A priori séduisant, ce type d'approche pose quelques problèmes. L'introduction de ces fonctions contraintes supplémentaires dans une fonction de pénalisation induit un certain nombre de minimums locaux et rend ainsi délicat l'obtention d'un optimum global. La méthode risque en effet de converger vers l'un de ces optimums locaux et non pas vers l'optimum global. De plus, l'ajout des coefficients de pénalité associés aux fonctions contraintes complique le choix des valeurs initiales et de la stratégie de résolution.

2) Déplacement dans l'espace des variables

Ce type de méthode utilise l'optimum en variables continues comme point de départ pour l'exploration des variables discrètes (on relâche les restrictions dues aux variables discrètes).

La méthode proposée par Pappas [PAP 74] consiste à obtenir le point de départ en variables continues par une méthode de pénalité extérieure. Le déplacement est ensuite effectué vers le point discret le plus proche. Un série de minimisations par rapport à une variable discrète (les autres restent fixes) est ensuite réalisée (déplacement sur une variable). L’ordre des séquences de minimisation est celui des « sensibilités » décroissantes de chaque variable discrète.

Les auteurs précisent que cette méthode n’est applicable que sur des problèmes de petite dimension (4 ou 5 variables) dans lesquels les effets de la discrétisation ne sont pas trop prononcés, car dans ce cas il est possible d'avoir un optimum discret dans le voisinage discret de l’optimum en variables continues.

3) La méthode de séparation et d'évaluation : Branch and Bound

L'idée maîtresse de cette méthode est de séparer et évaluer des sous-ensembles du domaine de départ pour atteindre progressivement l'optimum. Voici tout d'abord les notions essentielles de séparation et d'évaluation [GUP 83].

Un ensemble S est dit "séparé" en k sous-ensembles Si, i=1.. k lorsque : chacun des sous-ensembles Si est inclus dans S

l'union de tous ces sous-ensembles est égale à S.

On dit qu'on sait "évaluer" le sous ensemble Si lorsqu'on peut déterminer un réel, dépendant de Si, G(Si) tel que : G(Si) ≤ F(s) ∀s∈Si. Une évaluation est dite exacte lorsque G(Si) est égal au minimum de la fonction F(s) sur l'intervalle Si. Sur un même intervalle Si, une évaluation G'(Si) est meilleure qu'une évaluation G''(Si) lorsque G'(Si) > G''(Si). La meilleure évaluation d'un sous-ensemble est donc l'évaluation exacte.

Supposons que nous disposions d'une solution réalisable approchant la solution optimale.

Soit Obj la valeur de la fonction objectif associée à cette solution réalisable.

Si l'évaluation d'un sous-ensemble Si (notée G(Si)) est supérieure à Obj, Si ne peut contenir l'optimum. Dans ce cas Si est dit stérile et il n'est pas nécessaire de découper d'avantage Si. Cette remarque sert de base à l'algorithme de résolution suivant :

Tant qu'il reste des sous-ensembles à séparer (non-stériles) :

Choisir un sous-ensemble Si à séparer (au départ, S en entier) Evaluer le sous-ensemble Si

Si l'évaluation de Si est exacte alors Obj = G(Si)

Séparer le sous-ensemble Si pour former de nouveaux sous-ensembles Stériliser tous les sous-ensembles Sj tel que G(Sj) ≥ Obj

Pour choisir le sous-ensemble à séparer, il est possible de sélectionner par exemple : Soit le sous-ensemble dont l'évaluation est la plus petite possible.

Soit le sous-ensemble le plus récemment séparé.

L'évaluation d'un sous-ensemble consiste généralement à prendre la valeur de la fonction objectif correspondant à la solution optimale en variables continues sur ce sous-ensemble.

Il existe plusieurs méthodes de séparation, voici un exemple illustré sur la figure II.13 :

Si

Si1

Objectif

xd

Si2

Optimum en variables continues

Valeurs discrètes de xd

xd

*

Figure II.13 Exemple de séparation sur la variable discrète xd

Soit le vecteur variables X*, résultat de l'optimisation en variables continues sur Si. On choisit une variable discrète xd ayant une valeur xd* non discrète dans X * pour séparer l'ensemble en deux.

Les deux nouveaux sous-ensembles sont créés en reprenant Si et en modifiant uniquement :

• Pour le premier Si1, la borne supérieure de xd vaut la valeur discrète immédiatement inférieure à la valeur optimale continue.

• Pour le second Si2, la borne inférieure de xd vaut la valeur discrète immédiatement supérieure à la valeur optimale continue.

On respecte ainsi les conditions : Si1 ∈ Si, Si2 ∈ Si et Si1 ∪ Si2 = Si.