• Aucun résultat trouvé

Introduction `a l’optimisation

8.1 Un mot de mise en garde

Savoir optimiser un indice de performance n’implique pas que ce soit une bonne id´ee de le faire. Minimiser, par exemple, le nombre de transistors dans un circuit int´egr´e ou le nombre de lignes de code dans un programme peut conduire `a des produits complexes `a comprendre, `a corriger, `a documenter et `a mettre `a jour. Avant de s’embarquer dans une optimisation, il faut donc s’assurer qu’elle fait sens pour le vrai probl`eme qu’il s’agit de r´esoudre.

Quand tel est le cas, les cons´equences du choix d’un indice de performance sp´ecifique ne doivent pas ˆetre sous-estim´ees. Pour minimiser une somme de va-leurs absolues, par exemple, il est pr´ef´erable d’utiliser d’autres m´ethodes que pour minimiser une somme de carr´es, et la solution optimale obtenue sera diff´erente.

Il y a de nombreux livres introductifs excellents sur des aspects vari´es de l’opti-misation, dont [185, 155, 73, 122, 173, 14, 169, 22, 10]. On trouvera des expos´es introductifs int´eressants dans [247]. La seconde ´edition de l’Encyclopedia of Opti-mizationr´ecemment parue ne contient pas moins de 4626 pages d’articles introduc-tifs et de synth`eses [63].

8.2 Exemples

Exemple 8.1. Estimation de param`etres

Pour estimer les param`etres d’un mod`ele math´ematique `a partir de donn´ees exp´erimentales, une approche classique est de chercher la valeur (qu’on esp`ere unique) du vecteur de param`etres x∈ Rn qui minimise la fonction de coˆut qua-dratique J(x) = eT(x)e(x) = N

i=1 e2i(x), (8.1) 165

o`u le vecteur d’erreur e(x)∈ RN est la diff´erence entre un vecteur y de donn´ees exp´erimentales et un vecteur ym(x) de sorties correspondantes du mod`ele

e(x) = y− ym(x). (8.2) Le plus souvent, on n’impose aucune contrainte `a x, qui peut donc prendre n’im-porte quelle valeur dans Rn, de sorte que c’est de l’optimisation sans contrainte, consid´er´ee au chapitre 9.  Exemple 8.2. Management

Une compagnie peut souhaiter maximiser ses b´en´efices sous des contraintes sur sa production, minimiser le coˆut d’un produit sous des contraintes sur ses per-formances ou minimiser le temps n´ecessaire `a sa mise sur le march´e sous des contraintes de coˆut. C’est de l’optimisation sous contraintes, consid´er´ee au

cha-pitre 10. 

Exemple 8.3. Logistique

Un voyageur de commerce peut souhaiter visiter un ensemble de villes en mi-nimisant la distance totale `a parcourir. La solution optimale est alors une liste ordonn´ee de villes, pas n´ecessairement cod´ee sous forme num´erique. C’est de l’optimisation combinatoire, consid´er´ee au chapitre 11. 

8.3 Taxonomie

Un synonyme d’optimisation est programmation. Ce terme a ´et´e choisi par des math´ematiciens travaillant sur la logistique pendant la seconde guerre mon-diale, avant l’omnipr´esence de l’ordinateur. Dans ce contexte, un programme est un probl`eme d’optimisation.

La fonction d’objectif (ou indice de performance) J(·) est une fonction `a va-leur scalaire de n variables de d´ecision scalaires xi, i= 1,··· ,n. Ces variables sont plac´ees dans un vecteur de d´ecision x, et l’ensemble admissible X est l’ensemble des valeurs que x peut prendre. Quand la fonction d’objectif doit ˆetre minimis´ee, c’est une fonction de coˆut. Quand elle doit ˆetre maximis´ee, c’est une fonction d’utilit´e. Il est trivial de transformer une fonction d’utilit´e U(·) en une fonction de coˆut J(·), par exemple en posant

J(x) =−U(x). (8.3) Il n’y a donc pas de perte de g´en´eralit´e `a ne consid´erer que des probl`emes de mini-misation. La notation b x= arg min x∈XJ(x) (8.4) signifie que ∀x ∈ X, J(bx) 6 J(x). (8.5)

Toutbx qui satisfait (8.5) est un minimiseur global, et le coˆut correspondant J(bx) est le minimum global. Notons que le minimum global est unique quand il existe, tandis qu’il peut y avoir plusieurs minimiseurs globaux.

Les deux exemples qui suivent illustrent des situations `a ´eviter, si possible.

Exemple 8.4.Quand J(x) =−x et X est un intervalle ouvert (a,b) ⊂ R (c’est `a dire que l’intervalle ne contient pas ses extr´emit´es a et b), il n’y a pas de minimiseur (ou maximiseur) global, ni de minimum (ou maximum) global. L’infimum est J(b), et le

supremum J(a). 

Exemple 8.5.Quand J(x) = x et X = R, il n’y a pas de minimiseur (ou maximiseur) global, ni de minimum (ou maximum) global. l’infimum est−∞ et le supremum

+∞. 

Si l’on sait seulement que (8.5) est valide dans un voisinage V(bx) debx, c’est `a dire que

∀x ∈ V(bx), J(bx) 6 J(x), (8.6) alorsbx est un minimiseur local, et J(bx) un minimum local.

Remarque 8.1.Bien que ceci ne soit pas toujours fait dans la litt´erature, il est ´eclairant de distinguer les minima des minimiseurs (et les maxima des

maximi-seurs). 

Dans la figure 8.1, x1et x2sont tous les deux des minimiseurs globaux, associ´es `a l’unique minimum global J1, tandis que x3n’est qu’un minimiseur local, puisque le minimum local J3est plus grand que J1.

Id´ealement, on voudrait trouver tous les minimiseurs globaux et le minimum bal correspondant. En pratique, cependant, prouver qu’un minimiseur donn´e est glo-bal est souvent impossible. Trouver un minimiseur local peut d´ej`a consid´erablement am´eliorer les performances par rapport `a la situation initiale.

Les probl`emes d’optimisation peuvent ˆetre class´es suivant le type de leur do-maine admissible X :

— X = Rncorrespond `a de l’optimisation continue sans contrainte (chapitre 9). — X ( Rncorrespond `a de l’optimisation sous contrainte(s) (chapitre 10). Les contraintes expriment que certaines valeurs des variables de d´ecision ne sont pas acceptables (par exemple que certaines variables doivent ˆetre positives). Nous distinguons les contraintes d’´egalit´e

cej(x) = 0, j= 1,··· ,ne, (8.7) et les contraintes d’in´egalit´e

cij(x) 6 0, j= 1,··· ,ni. (8.8) Plus concis´ement, nous ´ecrivons

x1 x2 x x3

J1

J3

J

Fig. 8.1 Minima et minimiseurs

et

ci(x) 6 0, (8.10) `a interpr´eter comme valide composante par composante.

— Quand X est fini et que les variables de d´ecision ne sont pas quantitatives, on parle d’optimisation combinatoire (chapitre 11).

— Quand X est un ensemble de fonctions, on parle d’optimisation fonctionnelle, rencontr´ee par exemple en commande optimale [56] mais pas consid´er´ee dans ce livre.

Remarque 8.2.Rien n’interdit aux contraintes qui d´efinissent X d’impliquer des quantit´es num´eriques calcul´ees via un mod`ele `a partir des valeurs num´eriques prises par les variables de d´ecision. En commande optimale, par exemple, on peut exiger que l’´etat du syst`eme dynamique `a commander satisfasse des contraintes d’in´egalit´e `a des instants donn´es.  Remarque 8.3.Chaque fois que possible, nous ´ecrirons les contraintes d’in´egalit´e sous la forme cij(x) 6 0 plutˆot que sous la forme ci

j(x) < 0, pour permettre `a X d’ˆetre un ensemble ferm´e (c’est `a dire qui contienne sa fronti`ere). Quand cij(x) = 0, la j-`eme contrainte d’in´egalit´e est dite satur´ee (ou active).  Remarque 8.4.Quand X est tel que certains ´el´ements xidu vecteur de d´ecision x ne peuvent prendre que des valeurs enti`eres et quand ces valeurs ont un sens quantita-tif, on peut pr´ef´erer parler de programmation en nombres entiers plutˆot que d’op-timisation combinatoire, bien que les deux termes soient parfois utilis´es de fac¸on

interchangeable. Un probl`eme de programmation en nombres entiers peut ˆetre trans-form´e en un probl`eme d’optimisation continue sous contraintes. Si, par exemple, X est tel que xi∈ {0,1,2,3}, alors on peut imposer la contrainte

xi(1− xi)(2− xi)(3− xi) = 0. (8.11)  Remarque 8.5.Le nombre n= dim x des variables de d´ecision a une forte influence sur la complexit´e du probl`eme d’optimisation et sur les m´ethodes utilisables, `a cause de ce qui est connu comme la mal´ediction de la dimension. Une m´ethode parfaite-ment viable pour n= 2 peut n’avoir aucune chance de succ`es pour n = 50, comme illustr´e par l’exemple suivant.  Exemple 8.6.Soit X un hypercube unitaire `a n dimensions [0, 1]× ··· × [0,1]. Sup-posons une minimisation par recherche al´eatoire, avec xk(k = 1,··· ,N) tir´e au ha-sard dans X suivant une loi uniforme et le vecteur de d´ecisionbxk associ´e au coˆut le plus bas obtenu jusqu’ici pris comme estim´ee d’un minimiseur global. La lon-gueur du cˆot´e d’un hypercube H qui a une probabilit´e p d’ˆetre atteint est α = p1/n, et cette longueur croˆıt tr`es vite avec n. Pour p= 10−3, par exemple, α= 10−3 si n= 1, α≈ 0.5 si n = 10 et α ≈ 0.87 si n = 50. Quand n augmente, il devient donc tr`es vite impossible d’explorer une petite r´egion de l’espace de d´ecision. Pour dire cela autrement, si l’on consid`ere qu’il faut 100 points pour ´echantillonner l’inter-valle[0, 1], alors il faudra 100n points dans X pour obtenir une densit´e similaire. Heureusement, les r´egions vraiment int´eressantes des espaces de d´ecision de grande dimension correspondent souvent `a des hypersurfaces de dimension plus basse qui peuvent encore ˆetre explor´ees efficacement, pourvu que des m´ethodes de recherche plus sophistiqu´ees soient utilis´ees.  Le type de la fonction de coˆut a aussi une forte influence sur le type de m´ethode de minimisation `a utiliser.

— Quand J(x) est lin´eaire en x, on peut l’´ecrire

J(x) = cTx. (8.12) Il faut alors introduire des contraintes pour ´eviter que x ne tende vers l’infini dans la direction−c, ce qui n’aurait en g´en´eral aucun sens. Si les contraintes sont lin´eaires (ou affines) en x, alors le probl`eme rel`eve de la programmation lin´eaire(voir la section 10.6).

— Si J(x) est quadratique en x et peut s’´ecrire

J(x) = [Ax− b]TQ[Ax− b], (8.13) o`u A est une matrice connue telle que ATA soit inversible, Q est une matrice de pond´eration sym´etrique d´efinie positive connue et b est un vecteur connu, et si X = Rn, alors la m´ethode des moindres carr´es lin´eaires peut ˆetre uti-lis´ee pour ´evaluer le minimiseur global unique de la fonction de coˆut (voir la section 9.2).

— Quand J(x) est non lin´eaire en x (sans ˆetre quadratique), il faut distinguer deux cas.

— Si J(x) est diff´erentiable, par exemple quand on minimise J(x) =

N

i=1

[ei(x)]2, (8.14) avec ei(x) diff´erentiable, alors on peut utiliser des d´eveloppements en s´erie de Taylor de la fonction de coˆut, ce qui conduit aux m´ethodes du gradient et de Newton et `a leurs variantes (voir la section 9.3.4).

— Si J(x) n’est pas diff´erentiable, par exemple quand on minimise J(x) =

i |ei(x)|, (8.15) ou J(x) = max v e(x, v), (8.16) alors il faut faire appel `a des m´ethodes sp´ecifiques (voir les sections 9.3.5, 9.4.1.2 et 9.4.2.1). Mˆeme une fonction d’apparence aussi inoffensive que (8.15), qui est diff´erentiable presque partout si les ei(x) le sont, ne peut ˆetre minimis´ee par une m´ethode it´erative fond´ee sur un d´eveloppement limit´e de la fonction de coˆut, car une telle m´ethode se ruera en g´en´eral sur un point o`u la fonction de coˆut n’est pas diff´erentiable pour y rester bloqu´ee.

— Quand J(x) est convexe sur X, on peut exploiter la puissance des m´ethodes d’optimisation convexe, pourvu que X soit aussi convexe. Voir la section 10.7. Remarque 8.6.Le temps n´ecessaire pour une ´evaluation de J(x) a aussi des cons´e-quences sur les types de m´ethodes employables. Quand chaque ´evaluation ne prend qu’une fraction de seconde, des algorithmes ´evolutionnaires ou par exploration al´eatoire peuvent s’av´erer viables. Tel n’est plus le cas quand chaque ´evaluation prend plusieurs heures, par exemple parce qu’elle implique la simulation d’un mod`ele complexe `a base de connaissances, car le nombre d’´evaluations de la fonc-tion de coˆut est alors s´ev`erement limit´e, voir la secfonc-tion 9.4.3.