Vous êtes sur la page 1sur 47

Types de problèmes Applications Solveurs Références

Optimisation non linéaire: Applications

MTH8415

S. Le Digabel, Polytechnique Montréal

H2020
(v2)

MTH8415: Optimisation non linéaire: Applications 1/41


Types de problèmes Applications Solveurs Références

Plan

1. Types de problèmes non linéaires

2. Exemples d’applications

3. Solveurs

Références

MTH8415: Optimisation non linéaire: Applications 2/41


Types de problèmes Applications Solveurs Références

1. Types de problèmes non linéaires

2. Exemples d’applications

3. Solveurs

Références

MTH8415: Optimisation non linéaire: Applications 3/41


Types de problèmes Applications Solveurs Références

Optimisation non linéaire : Cas général

On cherche à résoudre

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

avec f : Rn → R différentiable et Ω ⊆ Rn tel que


 
n ci (x) = 0, i ∈ E
Ω= x∈R ⊆ Rn
ci (x) ≥ 0, i ∈ I
et
|E| = m, |I| = p

MTH8415: Optimisation non linéaire: Applications 4/41


Types de problèmes Applications Solveurs Références

Optimisation non linéaire sous contraintes linéaires

I Objectif non linéaire

I Contraintes linéaires

I Algorithmes dérivés du simplexe

I Cas particulier : Optimisation quadratique

MTH8415: Optimisation non linéaire: Applications 5/41


Types de problèmes Applications Solveurs Références

Optimisation quadratique
I Cas particulier de l’optimisation non linéaire sous contraintes
linéaires

I Contraintes linéaires

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

I Exemple : Problème d’optimisation de portefeuille

I Très utile car une approche pour résoudre le cas avec objectif
quelconque consiste à optimiser une série d’approximations
quadratiques (algorithme SQP)

I Beaucoup d’algorithmes efficaces si f est convexe (i.e quand


C est semi-définie positive)
MTH8415: Optimisation non linéaire: Applications 6/41
Types de problèmes Applications Solveurs Références

Optimisation quadratique sous contraintes


quadratiques
I Quadratically constrained quadratic program (QCQP)
I Forme :
1
minn x> Cx + c> x
x∈R 2
1 >
+ c>

s.c. 2 x Ci x i x ≤ di i = 1, 2, . . . , m
Ax = b
I Problème convexe si les matrices C et Ci , i = 1, 2, . . . , m,
sont semi-définies positives
I Algorithmes : Reformulation-linearization technique (RLT), ou
heuristiques
I Cas particulier : Optimisation bilinéaire. Exemple : Problème
du Pooling
MTH8415: Optimisation non linéaire: Applications 7/41
Types de problèmes Applications Solveurs Références

Autres grandes classes de problèmes


I Optimisation convexe : Toutes les fonctions constituant le
problème sont convexes. Tout optimum local sera global
I Optimisation semi-définie positive : Objectif linéaire,
contraintes impliquant des matrices semi-définies positives
I Optimisation sans dérivées : Les dérivées d’une partie ou de
toutes les fonctions ne sont pas accessibles
I Optimisation de boı̂tes-noires : Les dérivées d’une partie ou de
toutes les fonctions n’existent pas
I etc.
I Si une partie des variables est discrète : Optimisation mixte
I Si toutes les variables sont discrètes : Optimisation en
nombres-entiers
MTH8415: Optimisation non linéaire: Applications 8/41
Types de problèmes Applications Solveurs Références

1. Types de problèmes non linéaires

2. Exemples d’applications

3. Solveurs

Références

MTH8415: Optimisation non linéaire: Applications 9/41


Types de problèmes Applications Solveurs Références

Sélection de portefeuille : Introduction


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

I Il peut choisir entre N titres différents

I Comment constituer son portefeuille de façon à minimiser son


risque et à se garantir un certain minimum de rendement
espéré ?

I Une approche présentée en 1952 par Markowitz (lauréat d’un


prix Nobel en économie) formule ce problème sous la forme
d’un modèle quadratique

MTH8415: Optimisation non linéaire: Applications 10/41


Types de problèmes Applications Solveurs Références

Sélection de portefeuille : Variables et objectif


I Variables aléatoires : Xi : Retour aléatoire obtenu pour 1$
investi dans le titre i
I Variables d’optimisation : pi : proportion du budget investie
dans le titre i
I Retour aléatoire du portfolio :
Z = p1 X1 + p2 X2 + . . . + pn Xn
I Fonction objectif : Minimiser le risque tel que mesuré par la
variance du portefeuille :
N
X N
X −1 N
X
f (p) = V (Z) = σi2 p2i +2 σij pi pj
i=1 i=1 j=i+1
avec
σi2 variance du titre i et σij covariance entre les titres i et j
MTH8415: Optimisation non linéaire: Applications 11/41
Types de problèmes Applications Solveurs Références

Sélection de portefeuille : Contraintes


I Rendement moyen minimum :
E(Z) = r1 p1 + r2 p2 + . . . + rN pN ≥ rmin avec ri = E(Xi ) le
rendement espéré du titre i
I Contrainte de budget : p1 + p2 + . . . + pN = 1
I Bornes pour chaque titre : 0 ≤ pi ≤ ui
I Modèle :
N NP−1 P N
σi2 p2i + 2
P
min σij pi pj
p∈RN i=1 i=1 j=i+1
 N
P



 ri pi ≥ rmin
 i=1
s.c. PN
p =1
 i=1 i



0 ≤ pi ≤ ui

i = 1, 2, . . . , N

MTH8415: Optimisation non linéaire: Applications 12/41


Types de problèmes Applications Solveurs Références

Sélection de portefeuille : Résolution

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


titres

MTH8415: Optimisation non linéaire: Applications 13/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue [Orban, 2010]


I Chaı̂ne de longueur L > 0 attachée à ses deux extrémités
I La forme de la chaı̂ne est représentée 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’énergie potentielle
I Le problème (de dimension infinie) peut s’écrire
R1 p
min x(t) 1 + u(t)2 dt
x(t) 0
 1
Rp
1 + u(t)2 dt =L




 0
s.c. x(0) =a



 x(1) =b
 0
x (t) = u(t)

MTH8415: Optimisation non linéaire: Applications 14/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Discrétisation


I Pour obtenir un problème de dimension finie, on discrétise les
intégrales et l’équation différentielle
I Avec N + 1 points de discrétisation et un pas de h = 1/N , on
obtient un problème de 2N + 2 variables et N + 3 contraintes :

−1 
NP q q 
h
min 2 xi 1 + u2i + xi+1 1 + u2i+1
x∈RN +1 i=0
u∈RN +1
N −1 q
  q 
h P

 1 + u2i + 1 + u2i+1 = L
 2 i=0


s.c. x0 = a
x =b

 N



xi+1 − xi = h2 (ui + ui+1 ) i = 0, 1, . . . , N − 1

MTH8415: Optimisation non linéaire: Applications 15/41


Types de problèmes Applications Solveurs Références

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


Modèle 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;

MTH8415: Optimisation non linéaire: Applications 16/41


Types de problèmes Applications Solveurs Références

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


Données 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);

MTH8415: Optimisation non linéaire: Applications 17/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=1
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 1 2

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=2
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 1 2 3

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=3
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 1 2 3 4

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=5
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 1 2 3 4 5 6

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=10
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 1 2 3 4 5 6 7 8 9 10 11

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=50
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493
0
150 5.069171019 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

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Chaı̂ne suspendue : Solution

N Énergie N=150
1 9.914854211 3.5

3
2 5.814021761
2.5
3 5.307642512 2

5 5.182533729 1.5

10 5.109896785 1

0.5
50 5.072261493 0
150 5.069171019

103
109
115
121
127
133
139
145
151
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97

MTH8415: Optimisation non linéaire: Applications 18/41


Types de problèmes Applications Solveurs Références

Le plus grand petit polygone [Orban, 2010]


I Objectif : Trouver, parmi tous les polygones de N sommets de
diamètre ≤ 1, celui d’aire maximale

I Le diamètre d’un polygone est la plus grande distance entre


deux sommets

I Le modèle est écrit avec les coordonnées polaires (r, θ). Le


dernier sommet est fixé à (0, π) (l’origine)

I Les sommets sont ordonnés dans le sens inverse des aiguilles


d’une montre et les angles sont mesurés dans le même sens à
partir de la ligne horizontale

MTH8415: Optimisation non linéaire: Applications 19/41


Types de problèmes Applications Solveurs Références

Le plus grand petit polygone

I Parfait exemple de problème d’optimisation globale car


présence de nombreux optima locaux

I Il est possible de montrer que la solution est un polygone


régulier 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

I Revue de littérature dans [Audet et al., 2007]

MTH8415: Optimisation non linéaire: Applications 20/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : Modèle

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


N −1
1X
max ri ri+1 sin(θi+1 − θi )
r,θ∈RN 2
i=1

 θi+1 ≥ θi i = 1, 2, . . . , N − 1
r2 + rj2 − 2ri rj cos(θj − θi ) ≤ 1

 i = 1, 2, . . . , N
 i



j = i + 1, i + 2, . . . , N
s.c.

 0 ≤ θi ≤ π i = 1, 2, . . . , N
0 ≤ ri ≤ 1 i = 1, 2, . . . , N





rN = 0, θN = π

MTH8415: Optimisation non linéaire: Applications 21/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : Contrainte de convexité


I On peut “aider” le solveur en ajoutant une contrainte de
convexité, 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 être supérieure à l’aire du grand triangle
I Cet ajout, en théorie, permet de converger plus vite et d’éviter
certains optima locaux

MTH8415: Optimisation non linéaire: Applications 22/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : AMPL (1/2)


Modèle 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]);

MTH8415: Optimisation non linéaire: Applications 23/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : AMPL (2/2)

Données 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;

MTH8415: Optimisation non linéaire: Applications 24/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : Résultats pour N = 5 90


1

120 60

0.8

0.6

150 30

0.4

0.2

180 0 0

Bleu : Pentagone initial ; Rouge : Solution (pentagone régulier)

MTH8415: Optimisation non linéaire: Applications 25/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : Résultats pour N = 22


90
1

120 60

0.8

0.6

150 30

0.4

0.2

180 0 0

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

MTH8415: Optimisation non linéaire: Applications 26/41


Types de problèmes Applications Solveurs Références

Plus grand petit polygone : Résultats pour N = 8 90


1

120 60

0.8

0.6

150 30

0.4

0.2

180 0 0

Bleu : Octogone initial


Rouge : Solution : Petit octogone de Hansen, non régulier. Axe de symétrie en orange
Application ici
MTH8415: Optimisation non linéaire: Applications 27/41
Types de problèmes Applications Solveurs Références

Problème du pooling [Audet et al., 2004]

I Problème de l’industrie pétrolière qui consiste à mélanger des


produits selon plusieurs niveaux de réservoirs tout en créant
des produit possédant certaines qualités

I Problème bilinéaire non convexe

I Deux façon de modéliser : flow et proportion

I Résolution exacte avec l’algorithme RLT et heuristique avec


les heuristiques ALT et VNS

MTH8415: Optimisation non linéaire: Applications 28/41


Types de problèmes Applications Solveurs Références

Pooling : Exemple d’instance (graphe)

-
x21
P
F1 HPPP  * B1

>

JH P  y11

H PP
J H  PP x31  y21
JH j P PP
H
1 x
 7 
1
 P P  P 12
 J  @ PP PP
 J   PPP q
@ y12
q
P B2
F2
 @
J  y
1

22

PP  J  
HHP @
PPJ  @
q
P^ P2 H
H
@y13
  H
H 
H *

HH
 HH y@ R
23
j B3

 HH HH
F3  HH x23 -

MTH8415: Optimisation non linéaire: Applications 29/41


Types de problèmes Applications Solveurs Références

Pooling : Exemple d’instance (données)

Feed Price Supply Pool capacity Blend Price Demand Arc ×102 bbl
DM/bbl ×102 bbl ×102 bbl DM/bbl min ×102 bbl 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
F3 .75 0 114 98.7 B3 .74 91 - .79 -

MTH8415: Optimisation non linéaire: Applications 30/41


Types de problèmes Applications Solveurs Références

Pooling : Notations
Feeds Fi Réservoirs initiaux (brut)
Pools Pj Réservoirs intermédiaires
Blends Bk Réservoirs finaux (mélanges)
nF , nP , nB , nA nombre de feeds, pools, blends et de qualités
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 , pk
B
prix du feed i et blend k
`i , uF
F
i bornes sur la capacité du feed i
`B
k , uk
B
bornes sur la demande du blend k
`ik , uF
FB
ik
B
bornes sur la capacité de l’arc (i, k) ∈ X
P P
`j , uj bornes sur la capacité du pool j
`F P
ij , uij
FP
bornes sur la capacité de l’arc (i, j) ∈ W
`jk , uP
PB
jk
B
bornes sur la capacité de l’arc (j, k) ∈ Y
a
si qualité de l’attribut a au feed i
`ak , uak bornes sur la qualité de l’attribut a au blend k

MTH8415: Optimisation non linéaire: Applications 31/41


Types de problèmes Applications Solveurs Références

Pooling : Variables de flot

xik flot de Fi à Bk le long de l’arc (i, k) ∈ X


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

MTH8415: Optimisation non linéaire: Applications 32/41


Types de problèmes Applications Solveurs Références

Pooling, formulation “Flow” : Conservation du flot

Conservation du flot au pool j :

Flot sortant du pool = Flot entrant au pool


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

En pratique, on n’exprime pas cette contrainte et on élimine la


−1
variable wi(j)j avec i(j) le plus petit indice de W(j)

MTH8415: Optimisation non linéaire: Applications 33/41


Types de problèmes Applications Solveurs Références

Pooling, formulation “Flow” : Attributs


I Pour chaque attribut a ∈ {1, 2, . . . , nA }, la variable taj
représente la qualité de l’attribut au pool j :
X
sai wij
−1
i∈W(j)
taj = X
yjk
k∈Y(j)

Cette équation donne une contrainte bilinéaire.


I La qualité de l’attribut a au blend k est :
X X
sai xik + taj yjk
−1 −1
i∈X(k) j∈Y(k)
X X
xik + yjk
−1 −1
i∈X(k) j∈Y(k)

MTH8415: Optimisation non linéaire: Applications 34/41


Types de problèmes Applications Solveurs Références

Pooling : Formulation “Flow”

MTH8415: Optimisation non linéaire: Applications 35/41


Types de problèmes Applications Solveurs Références

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
X
wij = qij yjk
k∈Y(j)

MTH8415: Optimisation non linéaire: Applications 36/41


Types de problèmes Applications Solveurs Références

Pooling : Formulation “Proportion”

MTH8415: Optimisation non linéaire: Applications 37/41


Types de problèmes Applications Solveurs Références

1. Types de problèmes non linéaires

2. Exemples d’applications

3. Solveurs

Références

MTH8415: Optimisation non linéaire: Applications 38/41


Types de problèmes Applications Solveurs Références

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 à AMPL : GAMS, AIMMS
I Solveur ONL : IPOPT [Wächter and Biegler, 2006]
https://projects.coin-or.org/Ipopt
I Collection de solveurs : COIN-OR https://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 :
http://plato.asu.edu/guide.html
MTH8415: Optimisation non linéaire: Applications 39/41
Types de problèmes Applications Solveurs Références

1. Types de problèmes non linéaires

2. Exemples d’applications

3. Solveurs

Références

MTH8415: Optimisation non linéaire: Applications 40/41


Types de problèmes Applications Solveurs Références

Références I

Audet, C., Brimberg, J., Hansen, P., Le Digabel, S., and Mladenović, 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ächter, A. and Biegler, L. T. (2006).


On the implementation of a primal-dual interior point filter line search algorithm for large-scale nonlinear
programming.
Mathematical Programming, 106(1) :25–57.

MTH8415: Optimisation non linéaire: Applications 41/41

Vous aimerez peut-être aussi