• Aucun résultat trouvé

#5 Optimisation non linéaire sous contraintes: Applications

N/A
N/A
Protected

Academic year: 2021

Partager "#5 Optimisation non linéaire sous contraintes: Applications"

Copied!
47
0
0

Texte intégral

(1)

Optimisation non lin´

eaire: Applications

MTH8415

S. Le Digabel, Polytechnique Montr´eal H2020

(2)

Plan

1. Types de probl`emes non lin´eaires

2. Exemples d’applications

3. Solveurs

(3)

1. Types de probl`emes non lin´eaires 2. Exemples d’applications

3. Solveurs R´ef´erences

(4)

Optimisation non lin´

eaire : Cas g´

en´

eral

On cherche `a r´esoudre

min

x∈Rn{f (x) : x ∈ Ω}

avec f : Rn→ R diff´erentiable et Ω ⊆ Rn tel que Ω =  x ∈ Rn ci(x) = 0, i ∈ E ci(x) ≥ 0, i ∈ I  ⊆ Rn et |E| = m, |I| = p

(5)

Optimisation non lin´

eaire sous contraintes lin´

eaires

I Objectif non lin´eaire

I Contraintes lin´eaires

I Algorithmes d´eriv´es du simplexe

(6)

Optimisation quadratique

I Cas particulier de l’optimisation non lin´eaire sous contraintes lin´eaires

I Contraintes lin´eaires

I Objectif : Fonction quadratique : f (x) = 12x>Cx + c>x

I Exemple : Probl`eme d’optimisation de portefeuille

I Tr`es utile car une approche pour r´esoudre le cas avec objectif quelconque consiste `a optimiser une s´erie d’approximations quadratiques (algorithme SQP)

I Beaucoup d’algorithmes efficaces si f est convexe (i.e quand C est semi-d´efinie positive)

(7)

Optimisation quadratique sous contraintes

quadratiques

I Quadratically constrained quadratic program (QCQP)

I Forme : min x∈Rn 1 2x >Cx + c>x s.c.  1 2x >C ix + c>i x ≤ di i = 1, 2, . . . , m Ax = b

I Probl`eme convexe si les matrices C et Ci, i = 1, 2, . . . , m, sont semi-d´efinies positives

I Algorithmes : Reformulation-linearization technique (RLT), ou heuristiques

I Cas particulier : Optimisation bilin´eaire. Exemple : Probl`eme

(8)

Autres grandes classes de probl`

emes

I Optimisation convexe : Toutes les fonctions constituant le

probl`eme sont convexes. Tout optimum local sera global

I Optimisation semi-d´efinie positive: Objectif lin´eaire,

contraintes impliquant des matrices semi-d´efinies positives

I Optimisation sans d´eriv´ees: Les d´eriv´ees d’une partie ou de

toutes les fonctions ne sont pas accessibles

I Optimisation de boˆıtes-noires : Les d´eriv´ees d’une partie ou de

toutes les fonctions n’existent pas

I etc.

I Si une partie des variables est discr`ete : Optimisation mixte

I Si toutes les variables sont discr`etes :Optimisation en nombres-entiers

(9)

1. Types de probl`emes non lin´eaires 2. Exemples d’applications

3. Solveurs R´ef´erences

(10)

election de portefeuille : Introduction

I Un investisseur, disposant d’un budget donn´e, souhaite se constituer un portefeuille

I Il peut choisir entre N titres diff´erents

I Comment constituer son portefeuille de fa¸con `a minimiser son risque et `a se garantir un certain minimum de rendement esp´er´e ?

I Une approche pr´esent´ee en 1952 par Markowitz (laur´eat d’un prix Nobel en ´economie) formule ce probl`eme sous la forme d’un mod`ele quadratique

(11)

election de portefeuille : Variables et objectif

I Variables al´eatoires : Xi : Retour al´eatoire obtenu pour 1$ investi dans le titre i

I Variables d’optimisation : pi : proportion du budget investie dans le titre i

I Retour al´eatoire du portfolio :

Z = p1X1+ p2X2+ . . . + pnXn

I Fonction objectif : Minimiser le risque tel que mesur´e par la variance du portefeuille : f (p) = V (Z) = N X i=1 σ2ip2i + 2 N −1 X i=1 N X j=i+1 σijpipj avec

(12)

election de portefeuille : Contraintes

I Rendement moyen minimum :

E(Z) = r1p1+ r2p2+ . . . + rNpN ≥ rmin avec ri = E(Xi) le rendement esp´er´e du titre i

I Contrainte de budget : p1+ p2+ . . . + pN = 1

I Bornes pour chaque titre : 0 ≤ pi ≤ ui

I Mod`ele : min p∈RN N P i=1 σi2p2i + 2 N −1 P i=1 N P j=i+1 σijpipj s.c.            N P i=1 ripi≥ rmin N P i=1 pi = 1 0 ≤ pi ≤ ui i = 1, 2, . . . , N

(13)

election de portefeuille : R´

esolution

Voir fichier Portfolio 3 titres.xlsx pour un cas avec trois titres

(14)

Chaˆıne suspendue [Orban, 2010]

I Chaˆıne de longueur L > 0 attach´ee `a ses deux extr´emit´es

I La forme de la chaˆıne est repr´esent´ee par la fonction x(t) continue sur [0; 1] telle que x(0) = a et x(1) = b avec a, b ∈ R

I Parmi toutes les fonctions satisfaisant ces conditions, il faut trouver celle qui minimise l’´energie potentielle

I Le probl`eme (de dimension infinie) peut s’´ecrire min x(t) 1 R 0 x(t)p1 + u(t)2dt s.c.            1 R 0 p1 + u(t)2dt = L x(0) = a x(1) = b x0(t) = u(t)

(15)

Chaˆıne suspendue : Discr´

etisation

I Pour obtenir un probl`eme de dimension finie, on discr´etise les int´egrales et l’´equation diff´erentielle

I Avec N + 1 points de discr´etisation et un pas de h = 1/N , on obtient un probl`eme de 2N + 2 variables et N + 3 contraintes :

min x∈RN +1 u∈RN +1 h 2 N −1 P i=0  xi q 1 + u2i + xi+1 q 1 + u2i+1  s.c.            h 2 N −1 P i=0 q 1 + u2i + q 1 + u2i+1  = L x0 = a xN = b xi+1− xi= h2(ui+ ui+1) i = 0, 1, . . . , N − 1

(16)

Chaˆıne suspendue : AMPL (1/2)

Mod`ele dans hanging chain.mod :

# Hanging chain problem model;

param nh; # number of subintervals param L > 0; # length of the suspended chain param a; # height of the chain at t=0 (left) param b; # height of the chain at t=1 (right) param tf; # ODEs defined in [0,tf] param h := tf/nh; # uniform interval length var x{0..nh}; # height of the chain var u{0..nh}; # derivative of x minimize potential_energy:

0.5*h*sum {i in 0..nh-1} (x[i]*sqrt(1+u[i]^2)+x[i+1]*sqrt(1+u[i+1]^2)); subject to x_eqn {j in 0..nh-1}:

x[j+1] = x[j] + 0.5*h*(u[j] + u[j+1]); subject to length_eqn:

0.5*h*sum {i in 0..nh-1} (sqrt(1+u[i]^2) + sqrt(1+u[i+1]^2)) = L; # Boundary conditions:

subject to x_bc1: x[0] = a; subject to x_bc2: x[nh] = b;

(17)

Chaˆıne suspendue : AMPL (2/2)

Donn´ees dans hanging chain.dat :

model;

param tmin := if b > a then 0.25 else 0.75; data; param nh := 150; param L := 4; param a := 1; param b := 3; param tf := 1.0; # Initial values

let {k in 0..nh} x[k] := 4*abs(b-a)*(k/nh)*(0.5*(k/nh) - tmin) + a; let {k in 0..nh} u[k] := 4*abs(b-a)*((k/nh) - tmin);

(18)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 2 N=1

(19)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 2 3 N=2

(20)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 2 3 4 N=3

(21)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 2 3 4 5 6 N=5

(22)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 2 3 4 5 6 7 8 9 10 11 N=10

(23)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 N=50

(24)

Chaˆıne suspendue : Solution

N ´Energie 1 9.914854211 2 5.814021761 3 5.307642512 5 5.182533729 10 5.109896785 50 5.072261493 150 5.069171019 0 0.5 1 1.5 2 2.5 3 3.5 1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145 151 N=150

(25)

Le plus grand petit polygone [Orban, 2010]

I Objectif : Trouver, parmi tous les polygones de N sommets de

diam`etre ≤ 1, celui d’aire maximale

I Le diam`etre d’un polygone est la plus grande distance entre deux sommets

I Le mod`ele est ´ecrit avec les coordonn´ees polaires (r, θ). Le dernier sommet est fix´e `a (0, π) (l’origine)

I Les sommets sont ordonn´es dans le sens inverse des aiguilles d’une montre et les angles sont mesur´es dans le mˆeme sens `a partir de la ligne horizontale

(26)

Le plus grand petit polygone

I Parfait exemple de probl`eme d’optimisation globale car pr´esence de nombreux optima locaux

I Il est possible de montrer que la solution est un polygone r´egulier pour les valeurs impaires de N et N = 4

I N = 6 : Hexagone de Graham

I N = 8 : Petit octogone de Hansen

I N ≥ 14 : Ouvert

(27)

Plus grand petit polygone : Mod`

ele

2N variables, (N2+ N − 2)/2 contraintes (sans les bornes)

max r,θ∈RN 1 2 N −1 X i=1

riri+1sin(θi+1− θi)

s.c.                θi+1≥ θi i = 1, 2, . . . , N − 1 r2i + r2j − 2rirjcos(θj− θi) ≤ 1 i = 1, 2, . . . , N j = i + 1, i + 2, . . . , N 0 ≤ θi ≤ π i = 1, 2, . . . , N 0 ≤ ri ≤ 1 i = 1, 2, . . . , N rN = 0, θN = π

(28)

Plus grand petit polygone : Contrainte de convexit´

e

I On peut “aider” le solveur en ajoutant une contrainte de convexit´e, car on sait intuitivement que les solutions sont des polygones convexes

I La contrainte impose que la somme des aires de deux triangles

contigus doit ˆetre sup´erieure `a l’aire du grand triangle

I Cet ajout, en th´eorie, permet de converger plus vite et d’´eviter certains optima locaux

(29)

Plus grand petit polygone : AMPL (1/2)

Mod`ele dans lsp.mod :

model;

param N integer > 0; # number of vertices in the polygon param pi := 3.14159265358979; # approximation of pi

var r {i in 1..N}; # polar radius (distance to fixed vertex) var theta {i in 1..N}; # polar angle (measured from fixed direction) maximize polygon_area:

0.5*sum{i in 1..N-1} r[i+1]*r[i]*sin(theta[i+1] - theta[i]); subject to r_bounds {i in 1..N}: 0.0 <= r[i] <= 1.0; subject to theta_bounds {i in 1..N}: 0.0 <= theta[i] <= pi; subject to fix_theta_N: theta[N] = pi;

subject to fix_r_N: r[N] = 0.0;

subject to ordered_theta {i in 1..N-1}: theta[i] <= theta[i+1]; subject to distance {i in 1..N-1,j in i+1..N}:

r[i]^2 + r[j]^2 - 2*r[i]*r[j]*cos(theta[j] - theta[i]) <= 1; subject to convexity {i in 2..N-1}:

r[i]*r[i-1]*sin(theta[i]-theta[i-1]) + r[i+1]*r[i]*sin(theta[i+1]-theta[i]) >= r[i+1]*r[i-1]*sin(theta[i+1]-theta[i-1]);

(30)

Plus grand petit polygone : AMPL (2/2)

Donn´ees dans lsp.dat : # Largest-small polygon problem data;

# Number of vertices param N := 8; # Initial values

let {i in 1..N-1} r[i] := 4*i*(N + 1 - i)/(N+1)^2; let {i in 1..N-1} theta[i] := pi*i/N;

(31)

Plus grand petit polygone : R´

esultats pour N = 5

0 30 60 90 120 150 180 210 240 300 330 0 0.2 0.4 0.6 0.8 1

Bleu : Pentagone initial ; Rouge : Solution (pentagone r´egulier)

(32)

Plus grand petit polygone : R´

esultats pour N = 22

0 30 60 90 120 150 180 210 240 300 330 0 0.2 0.4 0.6 0.8 1

Bleu : Polygone initial ; Rouge : Solution (sans doute locale)

(33)

Plus grand petit polygone : R´

esultats pour N = 8

0 30 60 90 120 150 180 210 240 300 330 0 0.2 0.4 0.6 0.8 1

Bleu : Octogone initial

Rouge : Solution : Petit octogone de Hansen, non r´egulier. Axe de sym´etrie en orange Applicationici

(34)

Probl`

eme du pooling [Audet et al., 2004]

I Probl`eme de l’industrie p´etroli`ere qui consiste `a m´elanger des produits selon plusieurs niveaux de r´eservoirs tout en cr´eant des produit poss´edant certaines qualit´es

I Probl`eme bilin´eaire non convexe

I Deux fa¸con de mod´eliser : flow et proportion

I R´esolution exacte avec l’algorithme RLT et heuristique avec les heuristiques ALT et VNS

(35)

Pooling : Exemple d’instance (graphe)

F1 F2 F3   P1   P2 B1 B2 B3 x21 y11 x31 y21 x12 y12 y22 y13 y23 x23 P P P P P P P P P P P P P PPq H H H H HHj J J J J J J J J J ^      -  1 P P P P PPq H H H H H H H H H H -      7              >   *     * P P P P P PPq @ @ @ @ @ @ @ R     1 H H H H H H H j

(36)

Pooling : Exemple d’instance (donn´

ees)

Feed Price Supply Pool capacity Blend Price Demand Arc ×102bbl

DM/bbl ×102bbl ×102bbl DM/bbl min ×102bbl max

F1 49.2 60.9756 P1 12.5 B1 190 5 x12 7.5

F2 62.0 161.29 P2 17.5 B2 230 5 x31 7.5

F3 300.0 5 B3 150 5

Attribute Minimum Maximum

Feed DEN BNZ ROZ MOZ Blend DEN ROZ MOZ DEN BNZ

F1 .82 3 99.2 90.5 B1 .74 95 85 .79

-F2 .62 0 87.9 83.5 B2 .74 96 88 .79 .9

(37)

-Pooling : Notations

Feeds Fi R´eservoirs initiaux (brut)

Pools Pj R´eservoirs interm´ediaires

Blends Bk R´eservoirs finaux (m´elanges)

nF, nP, nB, nA nombre de feeds, pools, blends et de qualit´es

X ensemble d’indices {(i, k) : arc entre Fi et Bk}

W ensemble d’indices {(i, j) : arc entre Fi et Pj}

Y ensemble d’indices {(j, k) :arc entre Pj et Bk}

pF

i , pBk prix du feed i et blend k

`F

i , uFi bornes sur la capacit´e du feed i

`B

k, u

B

k bornes sur la demande du blend k

`F B

ik , u

F B

ik bornes sur la capacit´e de l’arc (i, k) ∈ X

`P

j, uPj bornes sur la capacit´e du pool j

`F Pij , uF Pij bornes sur la capacit´e de l’arc (i, j) ∈ W

`P B

jk , uP Bjk bornes sur la capacit´e de l’arc (j, k) ∈ Y

sa

i qualit´e de l’attribut a au feed i

`a

(38)

Pooling : Variables de flot

xik flot de Fi `a Bk le long de l’arc (i, k) ∈ X wij flot de Fi `a Pj le long de l’arc (i, j) ∈ W yjk flot de Pj `a Bk le long de l’arc (j, k) ∈ Y

(39)

Pooling, formulation “Flow” : Conservation du flot

Conservation du flot au pool j :

Flot sortant du pool = Flot entrant au pool X k∈Y(j) yjk = X i∈W(j)−1 wij

En pratique, on n’exprime pas cette contrainte et on ´elimine la variable wi(j)j avec i(j) le plus petit indice de W(j)−1

(40)

Pooling, formulation “Flow” : Attributs

I Pour chaque attribut a ∈ {1, 2, . . . , nA}, la variable ta j repr´esente la qualit´e de l’attribut au pool j :

taj = X i∈W(j)−1 saiwij X k∈Y(j) yjk

Cette ´equation donne une contrainte bilin´eaire.

I La qualit´e de l’attribut a au blend k est :

X i∈X(k)−1 saixik+ X j∈Y(k)−1 tajyjk X i∈X(k)−1 xik+ X j∈Y(k)−1 yjk

(41)
(42)

Pooling : Formulation “Proportion”

I Nouvelle variable : qij : Proportion du flot total dans Pj depuis Fi le long de l’arc (i, j) ∈ W

I Le flot le long de l’arc (i, j) ∈ W peut maintenant s’exprimer avec

wij = qij X

k∈Y(j)

(43)
(44)

1. Types de probl`emes non lin´eaires 2. Exemples d’applications

3. Solveurs R´ef´erences

(45)

Solveurs

I AMPL, version en ligne :

http://ampl.com/cgi-bin/ampl/amplcgi

I Solvers ONL dans AMPL en ligne :LANCELOT,LOQO,

MINOS,SNOPT

I Alternative `a AMPL : GAMS,AIMMS

I Solveur ONL : IPOPT[W¨achter and Biegler, 2006]

https://projects.coin-or.org/Ipopt

I Collection de solveurs :COIN-ORhttps://www.coin-or.org

I Collection de solveurs :

OPTI-Toolbox [Currie and Wilson, 2012]

https://www.inverseproblem.co.nz/OPTI/index.php

I Decision tree for optimization software :

(46)

1. Types de probl`emes non lin´eaires 2. Exemples d’applications

3. Solveurs R´ef´erences

(47)

ef´

erences I

Audet, C., Brimberg, J., Hansen, P., Le Digabel, S., and Mladenovi´c, N. (2004).

Pooling Problem : Alternate Formulations and Solution Methods.

Management Science, 50(6) :761–776. Audet, C., Hansen, P., and Messine, F. (2007).

Extremal problems for convex polygons.

Journal of Global Optimization, 38(2) :163–179. Currie, J. and Wilson, D. (2012).

OPTI : Lowering the Barrier Between Open Source Optimizers and the Industrial MATLAB User.

In Sahinidis, N. and Pinto, J., editors, Foundations of Computer-Aided Process Operations, Savannah, Georgia, USA.

Orban, D. (2010).

Numerical Methods for Nonlinear Optimization and Optimal Control, notes du cours MTH8408.

W¨achter, A. and Biegler, L. T. (2006).

On the implementation of a primal-dual interior point filter line search algorithm for large-scale nonlinear programming.

Références

Documents relatifs

Trouver les quantit´ es de K et L que la firme doit employer afin de maxi- miser son b´ en´ efice (on justifiera bien l’existence d’un maximum).. La firme constate que la politique

Exercice 1 Une firme a´ eronautique fabrique des avions qu’elle vend sur deux march´ es ´ etrangers. Trouver le nombre d’avions que la firme doit vendre pour maximiser son b´

On sait qu’une matrice sym´ etrique r´ eelle a toutes ses valeurs propres r´ eelles et qu’une ma- trice d´ efinie positive (sym´ etrique) a toutes ses valeurs propres

Le nombre β &gt; 0 est un param` etre qui actualise la valeur de la nourriture.. La licence de la mine expire dans 3 ans et ne sera pas

N’ayant aucun autre revenu que les int´ erˆ ets qui lui sont vers´ es, il cherche quelle est la meilleure fa¸ con (au sens de son agr´ ement) de d´ epenser son argent sur

D´ eterminer le maximum de U sous la contrainte de poids (On justifiera d’abord l’existence d’un maximum).. Trouver la combinaison optimale sous ces

Les deux contraintes sur la production sont : il y a au maximum 80 heures de temps machine disponible par semaine (le reste du temps est requis pour la main- tenance) et

- la conjecture de Goldbach faible, ou ternaire, qui dit que tout entier impair stric- tement sup´ erieur ` a 5 peut s’´ ecrire comme la somme de trois nombres premiers ; -