Optimisation non lin´
eaire: Applications
MTH8415S. Le Digabel, Polytechnique Montr´eal H2020
Plan
1. Types de probl`emes non lin´eaires
2. Exemples d’applications
3. Solveurs
1. Types de probl`emes non lin´eaires 2. Exemples d’applications
3. Solveurs R´ef´erences
Optimisation non lin´
eaire : Cas g´
en´
eral
On cherche `a r´esoudremin
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
Optimisation non lin´
eaire sous contraintes lin´
eaires
I Objectif non lin´eaire
I Contraintes lin´eaires
I Algorithmes d´eriv´es du simplexe
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)
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
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
1. Types de probl`emes non lin´eaires 2. Exemples d’applications
3. Solveurs R´ef´erences
S´
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
S´
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
S´
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
S´
election de portefeuille : R´
esolution
Voir fichier Portfolio 3 titres.xlsx pour un cas avec trois titres
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)
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
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;
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);
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=1Chaˆı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=2Chaˆı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=3Chaˆı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=5Chaˆı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=10Chaˆı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=50Chaˆı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=150Le 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
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
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 = π
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
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]);
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;
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 1Bleu : Pentagone initial ; Rouge : Solution (pentagone r´egulier)
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 1Bleu : Polygone initial ; Rouge : Solution (sans doute locale)
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 1Bleu : Octogone initial
Rouge : Solution : Petit octogone de Hansen, non r´egulier. Axe de sym´etrie en orange Applicationici
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
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 jPooling : 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
-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
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
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
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
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)
1. Types de probl`emes non lin´eaires 2. Exemples d’applications
3. Solveurs R´ef´erences
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 :
1. Types de probl`emes non lin´eaires 2. Exemples d’applications
3. Solveurs R´ef´erences
R´
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.