Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Introduction a la Recherche Operationnelle
Anatoli Iouditski, LJK
Lien vers le cours :
https://ljk.imag.fr/membres/Anatoli.Iouditski/ro-m1-ssd.htm
- 1 -
Objectifs de ce cours :
— s’initier a la modelisation et la resolution de problemes “du monde reel” et de
problemes d’optimisation surgissant en applications statistiques
— comprendre les qualites et les limites de differents modeles par rapport aux hypo-
theses, a la complexite et a l’effort de resolution
— experimenter la resolution de problemes a l’aide de modeles mathematiques en
utilisant les logiciels disponibles, et interpreter correctement les resultats
Evaluation : realisation d’un projet en TP
- 2 -
Introduction
Recherche operationnelle : comment organiser les operations (activites) d’une or-
ganisation (production, transport, construction, communication, planification financiere,
sante, militaire...)
Recherche – en reference a une approche scientifique :
— analyse des besoins, collection des donnees, formulation du probleme
— construction d’un modele mathematique – abstraction et extraction des facteurs
essentiels – assez precis, pour que ces solutions soient valides pour le probleme
“reel”
— resolution – conception d’un algorithme numerique pour calculer la solution
— validation – experimentation pour tester l’adequation du modele et des solutions,
ajustements
Caracteristique importante : l’objectif est de proposer “la meilleure solution” = la
solution optimale (ou plutot une solutions optimales)
Avertissement : Une approche par modeles a de la prise de decision aide a prendre de
bonnes decisions, mais ne peut garantir de bons resultats
- 3 -
De point de vue de statisticien
1. RO est le“consommateur final”des solutions statistiques – analyse statistique est
un etape de construction, d’identification et de test d’un modele
2. Les outils mathematiques et numeriques de RO – theorie et algorithmes d’opti-
misation sont utilisees en statistiques quand les regles de decisions statistiques
necessitent une recherche de “meilleurs solutions”
Dans ce cours on presentera brievement ces deux aspects de RO. Mais notre interet
s’orientera surtout vers le second – les outils mathematiques et numeriques de resolution
de problemes d’optimisation et leurs applications en statistique.
En termes de competences les objectifs sont d’apprendre de modeliser un probleme
comme un probleme d’optimisation (ou encore, de programmation mathematique), et
d’utiliser les outils disponibles (e.g., CVXR, RMosek) pour le resoudre.
- 4 -
Formuler un modele mathematique
Probleme general de programmation mathematique
minimiser f(x) [fonction objective]sous contraintes
hi(x) = 0, i = 1, ...,m [contraintes d’egalite]gj(x) ≤ 0, j = 1, ..., k [contraintes d’inegalite]x ∈ X [domaine du probleme]
(MP)
Un probleme d’optimisation, comme tout modele mathematique est une representation
idealisee du probleme “reel.” Le modele
— doit etre“adequate”– modeliser“correctement” la structure des relations entre les
decisions et les resultats)
— peut etre “nourri” par les donnees – on doit pouvoir identifier les differents para-
metres
— peut etre traite numeriquement en temps raisonnable
- 5 -
Elements d’un probleme de programmation mathematique
— variables de decision, e.g., x = [x1; ...;xn] – decisions quantifiees
— une solution x ∈ Rn represente une decision possible
— fonction objective represente la mesure de performance (les pertes) a optimiser,
e.g.,
f(x1, ..., xn) = c1x1 + ...+ cnxn
— contraintes du probleme representent les restrictions sur les decisions admissibles,
definies par les inegalites ou egalites contenant les variables de decision, par
exemple,
x1 + 3x1x2 + 2x2 ≤ 10, x1 + xx52 − x6 cos(x8) = 0, ...
— les coefficients et les seconds membres sont donnees ou parametres du probleme
- 6 -
minimiser f(x) [fonction objective]sous contraintes
hi(x) = 0, i = 1, ...,m [contraintes d’egalite]gj(x) ≤ 0, j = 1, ..., k [contraintes d’inegalite]x ∈ X [domaine du probleme]
(MP)
Resoudre le probleme (MP) veut dire trouver une solution optimale x∗, c.-a-d.,
une solution admissible (realisable) (i.e., qui respecte les contraintes) avec la valeur de
l’objectif ≤ sa valeur sur toute autre solution admissible :hi(x∗) = 0 ∀i, gj(x∗) ≤ 0 ∀j, et x∗ ∈ Xhi(x) = 0 ∀i, gj(x) ≤ 0 ∀j, et x ∈ X
⇒ f(x∗) ≤ f(x)
- 7 -
Classification des probleme de programmation mathematique
minimiser f(x) [fonction objective]sous contraintes
hi(x) = 0, i = 1, ...,m [contraintes d’egalite]gj(x) ≤ 0, j = 1, ..., k [contraintes d’inegalite]x ∈ X [domaine du probleme]
(MP)
• En optimisation combinatoire (ou discrete), le domaine X est un ensemble discret
(e.g., ensemble des vecteurs avec des composantes entieres ou 0/1.
• En optimisation continue on se concentre sur X qui est un “continuum” (e.g., Rn,
boite {x a ≤ x ≤ b}, ou simplex {x ≥ 0 :∑jxj = 1}, etc.) ; l’objectif et les
contraintes sont des fonction (pour le moins !) continues sur X.
• En optimisation lineaire, X = Rn et l’objectif et les contraintes sont des fonctions
lineaires de x.
• Au contraire, en optimisation non-lineaire continue, (certaines fonctions parmi) l’ob-
jectif et les contraintes sont non-lineaires.
- 8 -
1ere partie : Optimisation lineaire
Exemples et definitions
Nous commencons ce cours par optimisation (programmation) lineaire (OL) –
la partie de la programmation mathematique la plus simple et la plus souvent utilisee en
applications.
Exemple
minimiser 350x1 + 300x2sous contraintes x1 ≥ 0, x1 ≥ 0
9x1 + 6x2 ≤ 156612x1 + 16x2 ≤ 2880
- 9 -
Pourquoi c’est bien ?
• Les raisons de popularite de l’OL sont :
— “pouvoir d’expression” interessant – les dependances lineaires sont souvent des
approximation satisfaisantes des dependances actuelles non-lineaires.
— Modeles lineaires sont faciles a specifier – pour “remplir” une fonction lineaire
de 1000 variables on a besoin de definir 1000 coefficients ; pour specifier une
fonction quadratique on a besoin de 501 500 coefficients ! Ainsi, il est possible de
construire des modeles avec beaucoup de variables et de contraintes
— existence d’une theorie complete et elegante
— des le debut, la methodologie de OL etait accompagnee par une technique de
resolution extremement puissant - algorithme de simplex qui a fait de OL un outil
de travail.
Les“moteurs d’optimisation”actuels sont capables de resoudre des problemes OL
avec 104 ÷ 106 variables et contraintes
- 10 -
• Dans cette partie du cours on s’interessera de
— Modelisation OL, y compris des exemples“instructifs”des modeles et leur“calcul”
– ensemble d’outils pour reconnaıtre la possibilite de formuler le probleme comme
probleme OL
— Theorie de l’OL – la geometrie des programmes lineaires, existence et caracteri-
sation des solutions optimales et dualite ;
— Applications de ces outils pour resoudre quelques problemes d’optimisation lineaire
pertinentes en probabilite et statistique
- 11 -
Modele d’optimisation lineaire
Programme OL (programme lineaire PL)
minimiser∑ni=1 cixi
sous contraintes∑ni=1 ajixi ≤ bj, j = 1, ...,m∑ni=1 djixi = fj, j = 1, ..., p
avec
— n variables d’optimisation : x1, ..., xn (scalaires reels)
— donnees de probleme (parametres) : coefficients ci, aji, bj, dji, fj—
∑cixi est la fonction de cout ou fonction objective
—∑ajixi ≤ bj, j = 1, ...,m, contraintes d’inegalite (non-strictes)
—∑djixi = fj, j = 1, ..., p, contraintes d’egalite
- 12 -
Etapes de formulation de modeles d’OL
1. Comprendre le probleme (souvent difficile dans la pratique)
2. Identifier les variables de decision
3. Formuler les contraintes comme des combinaisons lineaires du variables de decision
4. Poser la fonction objective comme une combinaison lineaire de les variables de
decision
- 13 -
Exemple : probleme de transport
• Une compagnie possede n usines de production et m clients.
— Chaque usine a la capacite mensuelle ui, i = 1, ..., n de production, et chaque
client a la demande mensuelle dj, j = 1, ...,m.
— Soit xij la quantite de produits fournis par l’usine “i” vers le client “j.”
— L’objectif est de determiner un plan de transport qui minimise le cout total∑i,j cijxij, ou cij et le cout de transport de “i” vers “j.”
Formulation OL
minimiser∑ni=1
∑mj=1 cijxij [cout de transport a minimiser]
sous contraintes∑ni=1 xij ≥ dj, j = 1, ...,m [satisfaire toutes les demandes]∑mj=1 xij ≤ ui, i = 1, ..., n [respecter les capacites de production]
xij ≥ 0, i = 1, ..., n, [contraintes de productionj = 1, ...,m non-negative]
- 14 -
Exemple : probleme de regime optimal
• Il y a n types de produits et m types d’elements nutritionnels.
— Une unite de produit #j contient pij grammes d’element #i et coute cj.
— La consommation journaliere de l’element #i doit etre entre les limites [bi, bi].
— On cherche un “regime” (melange de produits) le moins cher qui procure les
quantites quotidiennes necessaires d’elements nutritionnels.
En notant xj la quantite du jeme produit dans le regime, le modele OL devient
minx
∑nj=1 cjxj [cout a minimiser]
sous contraintes∑nj=1 pijxj ≥ bi∑nj=1 pijxj ≤ bi
1 ≤ i ≤ m
bornes inf et sup du contenud’elements nutritionnelsdans le regime
xj ≥ 0, 1 ≤ j ≤ n[
quantite de chaque produitne peut pas etre negatif
]
- 15 -
• Le regime optimal est systematiquement utilise dans les elevages de volaille et de
betail. La nourriture des humains ne peut pas etre optimisee de la meme facon a cause
des facteurs du gout, de diversite, etc, difficiles a prendre en compte.
• Quoi que... Voici le regime optimal pour un humain calcule par le “solveur”
http://www.neos-guide.org/content/diet-problem-solver
(le probleme est formule en utilisant 68 produits disponibles dans le logiciel) :
Food Serving CostRaw Carrots 0.12 cups shredded 0.02Peanut Butter 7.20 Tbsp 0.25Popcorn, Air-Popped 4.82 Oz 0.19Potatoes, Baked 1.77 cups 0.21Skim Milk 2.17 C 0.28
Cout journalier : $ 0.96
Exemple : probleme du flux maximal (Max Flow)
• Etant donne un reseau avec 2 noeuds choisis – une source et un puits, trouver un flux
maximal de la source vers le puits.
Autrement dit, on veut trouver le plus grand s tel que une alimentation externe “s au
noeud source, −s au noeud puits, et 0 partout ailleurs” correspond a un flux realisable
respectant les capacites des arcs.
Formulation OL :
maxf,s
s
[flux total de la source versle puits a maximiser
]
sous contraintes
∑γ Piγfγ =
s, si i est le noeud-source
−s, si i est le noeud-puits
0, pour toues les autres noeuds
[loi de concervation des flux]
fγ ≥ 0, γ ∈ Γ [flux dans les arcs sont ≥ 0]
fγ ≤ hγ, γ ∈ Γ [on doit respecter les capacites des arcs]
ou Γ est l’ensemble des arcs du reseau, et Piγ = 1 si l’arc γ est connecte au noeud i
et Piγ = 0 sinon.
- 16 -
Exemple : probleme d’affectation
• On veut trouver la correspondance entre N personnes et N taches de facon que
— toute personne est assignee a une seule tache ; toute tache est associee a une
seule personne
— le cout d’association de la personne i a la tache j est aijFormulation combinatoire
minimiser∑Ni,j=1 aijxij
sous contraintes∑Ni=1 xij = 1, j = 1, ..., N∑Nj=1 xij = 1, i = 1, ..., N
xij ∈ {0,1}, i, j = 1, ..., N
— variable xij = 1 si la personne i est assignee a la tache j ; xij = 0 sinon
— il y a N ! correspondances possibles – beaucoup trop pour les enumerer toutes
- 17 -
Exemple : probleme d’affectation
Formulation OL
minimiser∑Ni,j=1 aijxij
sous contraintes∑Ni=1 xij = 1, j = 1, ..., N∑Nj=1 xij = 1, i = 1, ..., N
0 ≤ xij ≤ 1, i, j = 1, ..., N
— nous avons relaxe les contraintes binaires xij ∈ {0,1}— on peut demontrer que dans ce cas tout point optimal satisfait xij ∈ {0,1}— ainsi, on peut resoudre ce probleme combinatoire (tres particulier) de facon effi-
cace (par OL ou des methodes specialisees)
- 18 -
Un peu d’histoire
— annees 30-40 : Kantorovitch, Koopmans, von Neumann, Dantzig : fondations
motivees par des problemes de l’economie et de logistique
— 1947 : (Dantzig) algorithme de simplexe
— 1948-1949 : application historique : organisation du pont aerien pour ravitaille-
ment de la zone occidentale de Berlin pendant le blocus de Berlin-ouest par les
sovietiques. Resolution numerique “a la main” (par algorithme de simplexe avec
des milliers de variables)
— 1950-1960 : des nombreuses applications dans les autres disciplines
— 1975 : prix Nobel d’economie pour Kantorovitch et Koopmans
— 1984 (Karmarkar) : premier“algorithme de point interieur”– avenement de“l’op-
timisation moderne”
— depuis 1984 : algorithmes pour des problemes de tres grande taille, utilisation de
l’OL dans tous les domaines industriels...
- 19 -
Notations :
— n-vecteurs : x = [x1; ...;xn] = [x1, ..., xn]T =
x1...xn
.
On note xi la i-eme composante de x
On note x = 0 si xi = 0, ∀i ; x = 1 si xi = 1, ∀i ; x = ei si xi = 1 et
xj = 0 pour j 6= i (i-eme vecteur de base canonique).
— Matrices m× n :
A =
a11 ... a1n
... ...am1 ... amn
avec elements aij (ou [A]ij), [A]j la j-eme colonne de A (m-vecteurs =
matrices m× 1).
On note A = 0 (matrice nulle) si aij = 0 ∀i, j ; A = I (matrice identite) si
aii = 1 et aij = 0 ∀j 6= i.
- 20 -
Operations matricielles :
— matrice transposee AT
— multiplication par un scalaire αA
— addition A+B and soustraction A−B de matrices de meme taille
— produit matrice-vecteur y = Ax et yT = xTAT (de tailles compatibles)
— produit C = AB de matrices de tailles compatibles (lesquelles ?)
— produit scalaire de 2 vecteurs de meme taille :
〈x, y〉 = xTy = x1y1 + ...+ xnyn.
— produit scalaire de 2 matrices de meme taille (m× n) :
〈X,Y 〉 = Trace(XTY ) =n∑
i=1
[XTY ]ii
= Trace(Y TX) = ... =m∑
i=1
n∑
j=1
xijyij.
- 21 -
Notations matricielles
— In extenso
min
n∑
i=1
cixi :∑ni=1 ajixi ≤ bj, j = 1, ...,m∑ni=1 djixi = fj, j = 1, ..., p
— Notation vectorielle (par contrainte)
min
{cTx :
aTj x ≤ bj, j = 1, ...,m
dTj x = fj, j = 1, ..., p
}
avec les n-vecteurs c, ai et di :
c = [c1; ...; cn], aj = [aj1; ...; ajn], dj = [dj1; ...; djn].
— Notation matricielle : min{cTx : Ax ≤ b, Dx = f
}
ou A est une matrice m×n avec des lignes aTj (elements aji), et D une matrice
p× n avec des lignes dTj (elements dji).
— L’inegalite a ≤ b entre les vecteurs est comprise “par composante,” dans le sens
ai ≤ bi pour tout i (de meme pour “<, >, ≥”).
- 22 -
min{cTx : Ax ≤ b, Dx = f
}
Terminologie :
— x1, ..., xn variables de decision du probleme,
x = [x1; ...;xn] est vecteur de decision
— x solution realisable (admissible) ssi elle satisfait les contraintes Ax ≤ b et
Dx = f
— domaine du probleme (ensemble admissible) = ensemble des solutions realisables
— x∗ est une solution optimale ssi elle est realisable et cTx∗ ≤ cTx pour toute
solution realisable x
— la valeur optimale du PL est la valeur Opt = cTx∗— on dit que PL est non-borne interieurement si Opt = −∞— on dit que PL est irrealisable (inadmissible) si le domaine realisable est vide ; dans
ce cas on pose Opt = +∞.
Pour un probleme de maximisation, max{cTx : Ax ≤ b, Dx = f
}, la situation est
inversee : Opt = +∞ si le probleme n’est pas borne, et Opt = −∞ s’il n’est pas
realisable.
- 23 -
Forme canonique et forme standard
On remarque que
• toute egalite/inegalite lineaire peut etre reecrite avec le second membre constant
(toutes les variables “a gauche”) : 2x1 ≥ 20− x2 ⇔ 2x1 + x2 ≥ 20
• toute inegalite non-stricte peut etre reecrite comme une inegalite avec “≤” :
2x1 + x2 ≥ 20⇔ −2x1 − x2 ≤ −20
• toute egalite peut etre representee par une paire d’inegalites avec les signes opposes :
2x1 − x2 = 5⇔{
2x1 − x2 ≤ 5−2x1 + x2 ≤ −5
• toute inegalite avec ≤, en rajoutant une variable d’ecart y, peut etre reecrite comme
une egalite et une inegalite “simple”y ≥ 0 :
2x1 + x2 ≤ 20⇔{
2x1 + x2 + y = 20y ≥ 0
• minimiser la fonction lineaire cTx revient exactement a maximiser la fonction lineaire
−cTx.
- 24 -
• Tout programme OL est equivalent a un programme OL en forme canonique, dans
laquelle l’objectif doit etre maximise et les contraintes sont les inegalites avec “≤ :”
Opt = maxx
{∑nj=1 cjxj :
∑nj=1 aijxj ≤ bi, 1 ≤ i ≤ m
}
[notation “in extenso”]
⇔ Opt = maxx
{cTx : aTi x ≤ bi, 1 ≤ i ≤ m
}
[notation “par contrainte”]
⇔ Opt = maxx
{cTx : Ax ≤ b
}
[notation “matricielle”]
ou
c = [c1; ...; cn], b = [b1; ...; bm], ai = [ai1; ...; ain], A = [aT1 ; aT2 ; ...; aTm]
• Ensemble X ⊂ Rn defini par X = {x : Ax ≤ b} – l’ensemble de solutions d’un
systeme fini d’inegalites lineaires non-strictes aTi x ≤ bi, 1 ≤ i ≤ m en x ∈ Rn –
s’appel ensemble polyedrique, ou un polyedre.
• Un programme OL en forme canonique consiste a maximiser un objectif lineaire sur un
ensemble polyedrique.
- 25 -
maxx
x2 :
−x1 + x2 ≤ 63x1 + 2x2 ≤ 77x1 − 3x2 ≤ 1−8x1 − 5x2 ≤ 100
[−10;−4]
[−1;5]
[1;2]
[−5;−12]
Programme OL et son domaine realisable
- 26 -
• Un programme OL en forme standard consiste a maximiser une forme lineaire sur
l’intersection de l’orthant non-negatif Rn+ = {x ∈ Rn : x ≥ 0} et d’un plan realisable
{x : Ax = b} :
Opt = maxx
{∑nj=1 cjxj :
∑nj=1 aijxj = bi, 1 ≤ i ≤ m
xj ≥ 0, j = 1, ..., n
}
[notation “ in extenso”]
⇔ Opt = maxx
{cTx :
aTi x = bi, 1 ≤ i ≤ mxj ≥ 0, 1 ≤ j ≤ n
}
[notation “par contrainte”]
⇔ Opt = maxx
{cTx : Ax = b, x ≥ 0
}
[notation “matricielle”]
ou
c = [c1; ...; cn], b = [b1; ...; bm], ai = [ai1; ...; ain], A = [aT1 ; aT2 ; ...; aTm]
• Dans le programme OL standard
— toute variables sont non-negatives
— toutes contraintes lineaires “generales” sont des egalites
- 27 -
Remarque : la forme standard de PL est universelle : tout programme lineaire est
equivalent a un PL en forme standard.
En effet, il suffit de convertir un PL en forme canonique maxx{cTx : Ax ≤ b}. Pour
le faire,
— on introduit des variables d’ecart (une par inegalite), et on reecrit le problem
comme
maxx,s{cTx : Ax+s = b, s ≥ 0}
— ensuite, on represente x comme x = u − v, la difference de 2 vecteurs non-
negatifs, et on arrive a
maxu,v,s
{cTu− cTv : Au−Av + s = b, [u; v; s] ≥ 0
}.
- 28 -
Illustration :
Opt = maxx
[2x1 + 3x2 − x3]
s.c.3x1 + 4x2 + 5x3 ≤ 67x1 + 8x2 + 9x3 ≤ 10
⇔ Opt = maxx,s
[2x1 + 3x2 − x3]
s.c.3x1 + 4x2 + 5x6 +s1 = 67x1 + 8x2 + 9x3 +s2 = 10
s1 ≥ 0, s2 ≥ 0
⇔ Opt = maxu,v,s
[2[u1 − v1] + 3[u2 − v2]− [u3 − v3]]
s.c.3[u1 − v1] + 4[u2 − v2] + 5[u3 − v3] +s1 = 67[u1 − v1] + 8[u2 − v2] + 9[u3 − v3] +s2 = 10s1 ≥ 0, s2 ≥ 0, u1 ≥ 0, u2 ≥ 0, u3 ≥ 0,v1 ≥ 0, v2 ≥ 0, v3 ≥ 0,
- 29 -
Interpretation geometrique
Normes dans Rn
• Norme euclidienne (`2) : ‖x‖2 =√∑n
i=1 x2i =
√xTx
• Normes `1 et `∞ :
‖x‖1 = |x1|+ ...+ |xn|, ‖x‖∞ = max{|x1|, ...|xn|}
Proprietes :
— ‖x‖ ≥ 0, ‖x‖ = 0 ssi x = 0 (positivite)
— ‖x+ y‖ ≤ ‖x‖+ ‖y‖ (inegalite triangulaire)
— ∀α ∈ R, ‖αx‖ = |α|‖x‖ (homogeneite)
• Inegalite de Cauchy-Schwartz : |xTy| ≤ ‖x‖2‖y‖2— |xTy| = ‖x‖2‖y‖2 ssi x et y sont proportionnels
— implique d’autres inegalites interessantes, e.g.,∣∣∣∣∣∣
n∑
i=1
xi
∣∣∣∣∣∣≤
n∑
i=1
|xi| ≤√n‖x‖2
(pour quelle x cette inegalite devient une egalite ?).- 30 -
Hyperplans et projections
• Projection de x sur la droite avec le vecteur-directeur y : vecteur ty ou
t = argmint‖x− ty‖2
⇒ t =xTy
‖y‖22=‖x‖2 cos θ
‖y‖2
Projection
projection of x on the line defined by nonzero y: the vector ty with
t = argmint
‖x− ty‖
expression for t:
t =xTy
‖y‖2 =‖x‖ cos θ
‖y‖
0
x
y
ty =(xTyyTy
)y
Introduction 1–20• Un hyperplan est l’ensemble de solutions de l’equation lineaire aTx = b avec
vecteur normal a 6= 0• Un demi-espace est l’ensemble de solutions de l’inegalite lineaire
aTx ≤ b
avec vecteur normal a 6= 0
- 31 -
Interpretation geometrique
G = {x : aTx = b} H = {x : aTx ≤ b}
Geometrical interpretation
G = {x | aTx = b} H = {x | aTx ≤ b}a
u = (b/‖a‖2)a
x
x − u
0
G
a
xu
x − u H
• the vector u = (b/‖a‖2)a satisfies aTu = b
• x is in hyperplane G if aT (x− u) = 0 (x− u is orthogonal to a)
• x is in halfspace H if aT (x− u) ≤ 0 (angle 6 (x− u, a) ≥ π/2)
Introduction 1–22
Geometrical interpretation
G = {x | aTx = b} H = {x | aTx ≤ b}a
u = (b/‖a‖2)a
x
x − u
0
G
a
xu
x − u H
• the vector u = (b/‖a‖2)a satisfies aTu = b
• x is in hyperplane G if aT (x− u) = 0 (x− u is orthogonal to a)
• x is in halfspace H if aT (x− u) ≤ 0 (angle 6 (x− u, a) ≥ π/2)
Introduction 1–22
— vecteur u = b‖a‖22
a satisfait aTu = b
— x ∈ G si aT (x− u) = 0 (i.e. x− u ⊥ a)
— x ∈ H si aT (x− u) ≤ 0 (i.e. angle ∠(x− u, a) ≥ π/2)
(⇔ aTx ≤ aTu = b).
- 32 -
ExempleExample
a = (2, 1)
x1
x2
aTx = −5
aTx = 10
aTx = 5
aTx = 0
a = (2, 1)
x1
x2
aTx ≤ 3
Introduction 1–23
- 33 -
Un polyedre : ensemble de solutions d’un systeme fini d’inegalites lineaires :
aT1x ≤ b1, aT2x ≤ b2, ..., aTmx ≤ bm
Polyhedron
solution set of a finite number of linear inequalities
aT1 x ≤ b1, aT2 x ≤ b2, . . . , aTmx ≤ bm
a1 a2
a3
a4
a5
• intersection of a finite number of halfspaces
• in matrix notation: Ax ≤ b if A is a matrix with rows aTi
• can include equalities: Fx = g is equivalent to Fx ≤ g, −Fx ≤ −g
Introduction 1–24
— intersection d’un nombre fini de demi-espaces
— notation matricielle : Ax ≤ b, ou A la matrice avec les lignes aTi— peut contenir les egalites aTi x = bi
(avec les inegalites aTi x ≤ bi et −aTi x ≤ −bi)
- 34 -
ExempleExample
x1 + x2 ≥ 1, −2x1 + x2 ≤ 2, x1 ≥ 0, x2 ≥ 0
x1
x2
x1 + x2 = 1
−2x1 + x2 = 2
Introduction 1–25- 35 -
ExempleExample
0 ≤ x1 ≤ 2, 0 ≤ x2 ≤ 2, 0 ≤ x3 ≤ 2, x1 + x2 + x3 ≤ 5
x1
x2
x3
(2, 0, 0)
(2, 0, 2)
(0, 0, 2) (0, 2, 2)
(0, 2, 0)
(2, 2, 0)
(2, 2, 1)
(2, 1, 2)
(1, 2, 2)
Introduction 1–26
- 36 -
Interpretation geometrique de PL
minx
{cTx : Ax ≤ b
}= −max
x
{−cTx : Ax ≤ b
}
Geometrical interpretation of LP
minimize cTxsubject to Ax ≤ b
Ax ≤ boptimal solution
−c
dashed lines (hyperplanes) are level sets cTx = α for different α
Introduction 1–27
lignes (hyperplans) en pointilles sont des ensembles de niveau {x : cTx = α} de la
forme lineaire cTx pour les differents α
- 37 -
Exemple
min
−x1 − x2 :
2x1 + x2 ≤ 3x1 + 4x2 ≤ 5x1 ≥ 0, x2 ≥ 0
Example
minimize −x1 − x2
subject to 2x1 + x2 ≤ 3x1 + 4x2 ≤ 5x1 ≥ 0, x2 ≥ 0
x1
x2
−x1 − x2 = 0
−x1 − x2 = −1
−x1 − x2 = −2
−x1 − x2 = −3
−x1 − x2 = −4
−x1 − x2 = −5
optimal solution is (1, 1)
Introduction 1–28
solution optimale : x = [1; 1], cTx = −2
- 38 -
Algorithme du simplexe
Soit un programme lineaire sous la forme speciale :
maxx∈R2
cTx :
aT1x ≤ b1aT2x ≤ b2aT3x ≤ b3x ≥ 0
avec b1 ≥ 0, b2 ≥ 0, b3 ≥ 0.
1
2
3
4
5
6
1 2 3 4 5 6 7
x2
x1
aT1 x = b1
aT2 x = b2
c
aT3 x = b3
O
- 39 -
maxx∈R2
cTx :
aT1x ≤ b1aT2x ≤ b2aT3x ≤ b3x ≥ 0
On cherche une solution en parcourant les points extremes a partir de x(0) = 0.
x(1) : x1 = 0, aT3x = b3.
1
2
3
4
5
6
1 2 3 4 5 6 7
x2
x1
c
O
x(1)
cTx = cTx(1)
maxx∈R2
cTx :
aT1x ≤ b1aT2x ≤ b2aT3x ≤ b3x ≥ 0
x(2) : aT1x = b1, aT3x = b3.
1
2
3
4
5
6
1 2 3 4 5 6 7
x2
x1
c
O
x(2)
cTx = cTx(2)
x(1)
maxx∈R2
cTx :
aT1x ≤ b1aT2x ≤ b2aT3x ≤ b3x ≥ 0
x(3) : aT1x = b1, aT2x = b2.
1
2
3
4
5
6
1 2 3 4 5 6 7
x2
x1
c
O
x(2)
cTx = cTx(3)x(1)x(3)
Solution optimale : x(3)
- 40 -
Algorithme du simplexe – explication
Exemple : resoudre le probleme
maxx1,x2
x1 + x2 :
2x1 + x2 ≤ 4,x1 + 2x2 ≤ 3x1 ≥ 0, x2 ≥ 0
1o. On convertit en forme standard :
maxx1,x2
x1 + x2 :
2x1 +x2 +s1 = 4,x1 +2x2 +s2 = 3x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
2o. On pose z = x1 + x2, et on considere le systeme
z − x1 −x2 = 02x1 +x2 +s1 = 4,x1 +2x2 +s2 = 3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
- 41 -
Notre objectif est de maximiser z.
z − x1 −x2 = 02x1 +x2 +s1 = 4x1 +2x2 +s2 = 3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
On dit que une variable est basique s’elle n’apparaıt que dans une seule equation.
On forme une solution basique en mettant a zero toute variable non basique.
• Base : s1, s2. Nous avons
x1 = x2 = 0, z = x1 + x2 = 0, s1 = 4, s2 = 3
Peut on accroıtre z ?
Regle I Si toutes les variables en 1ere ligne ont des coefficients non negatifs, la solution
basique est optimale. Sinon, on choisit une variable non basique dont le coefficient est
negatif et on l’augment tant que le systeme reste admissible.
- 42 -
z −x1 −x2 = 02x1 +x2 +s1 = 4x1 +2x2 +s2 = 3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
On choisit, par exemple, x1. Quel pivot d’algorithme de Gauss choisir ?
Regle II Choisir la ligne qui correspond au plus petit rapport second membrecoefficient de la variable
(on suppose que coefficient de la variable est strictement positif)
Puisque 4/2 < 3/1, on choisit la 2eme ligne :
z −12x2 +1
2s1 = 2
x1 +12x2 +1
2s1 = 2
32x2 −1
2s1 +s2 = 1
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
• Base : x1, s2. Nous avons
s1 = x2 = 0, x1 = 2, s2 = 3, z = 2
- 43 -
z −12x2 +1
2s1 = 2
x1 +12x2 +1
2s1 = 2
32x2 −1
2s1 +s2 = 1
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
On continue avec x2. Comme 2/12> 1/3
2, on choisit la 3eme ligne :
z +13s1 +1
3s2 = 7
3
x1 +23s1 −1
3s2 = 5
3
x2 −13s1 +2
3s2 = 2
3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
• Base : x1, x2. Nous avons
s1 = s2 = 0, x1 = 53, x2 = 2
3, z = 7
3
• D’apres la Regle I, nous avons trouve la solution optimale
- 44 -
On recapitule :
z − x1 −x2 = 02x1 +x2 +s1 = 4x1 +2x2 +s2 = 3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
On commence avec x(0) = [0; 0], contraintes “actives” :
x1 = 0, x2 = 0
⇓
z −12x2 +1
2s1 = 2
x1 +12x2 +1
2s1 = 2
32x2 −1
2s1 +s2 = 1
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
Solution actuelle x(1) = [2; 0], contraintes “actives” :
x2 = 0, 2x1 + x2︸︷︷︸=0
= 4
- 45 -
⇓
z +13s1 +1
3s2 = 7
3
x1 +23s1 −1
3s2 = 5
3
x2 −13s1 +2
3s2 = 2
3
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0
Solution actuelle x(2) = [53; 2
3], contraintes “actives” :
2x1 + x2 = 4, x1 + 2x2 = 3
Nous avons trouve une solution optimale
- 46 -
• Ecriture sous forme de tableau :
z x1 x2 s1 s2 RHS Solution basique1 −1 −1 0 0 0 basique s1 = 4, s2 = 30 2 1 1 0 4 non basique x1 = x2 = 00 1 2 0 1 3 z = 01 0 −1
212
0 2 basique x1 = 2, s2 = 10 1 1
212
0 2 non basique x2 = s1 = 00 0 3
2−1
21 1 z = 2
1 0 0 13
13
73
basique x1 = 53, x2 = 2
3
0 1 0 23−1
353
non basique s1 = s2 = 00 0 1 −1
323
23
z = 73
- 48 -
Cycles
• Soit
maxx1,x2
x1 + 1
2x2 :
2x1 + x2 ≤ 4,x1 + 2x2 ≤ 3x1 ≥ 0, x2 ≥ 0
Le tableau d’algorithme du simplexe :
z x1 x2 s1 s2 RHS Solution basique1 −1 −1
20 0 0 basique s1 = 4, s2 = 3
0 2 1 1 0 4 non basique x1 = x2 = 00 1 2 0 1 3 z = 01 0 0 1
20 2 basique x1 = 2, s2 = 1
0 1 12
12
0 2 non basique x2 = s1 = 00 0 3
2−1
21 1 z = 2
Maintenant, Regle I implique que [x1;x2] = [2; 0] est une solution optimale.
- 49 -
Neanmoins, on peut essayer d’augmenter x2 pour obtenir une solution basique avec
x2 6= 0. Cela donne :
z x1 x2 s1 s2 RHS Solution basique1 0 0 1
20 2 basique x1 = 5
3, x2 = 2
3
0 1 0 23−1
353
non basique s1 = s2 = 00 0 1 −1
323
23
z = 2
On observe que le coefficient de s2 en 1ere ligne est 0. Si on choisi s2 et le pivot en
3eme ligne on obtient de nouveau
z x1 x2 s1 s2 RHS Solution basique1 0 0 1
20 2 basique x1 = 2, s2 = 1
0 1 12
12
0 2 non basique x2 = s1 = 00 0 3
2−1
21 1 z = 2
Ce sont exactement le tableau et la solution precedents !
- 50 -
Probleme degenere
• On considere le programme
maxx1,x2
2x1 + x2 :
3x1 + x2 ≤ 6,x1 − x2 ≤ 2
x2 ≤ 3x1 ≥ 0, x2 ≥ 0
L’application de l’algorithme du simplex resulte en
z x1 x2 x3 s1 s2 RHS Solution basique1 −2 −1 0 0 0 0 basique x3 = 6, s1 = 2, s2 = 30 3 1 1 0 0 6 non basique x1 = x2 = 00 1 −1 0 1 0 2 z = 00 0 1 0 0 1 31 0 −3 0 2 0 4 basique x1 = 2, x3 = 0, s2 = 30 0 4 1 −3 0 0 non basique x2 = s1 = 00 1 −1 0 1 0 2 z = 40 0 1 0 0 1 3
On note qu’une des variables basiques – x3 – est nulle.
- 51 -
Maintenant, Regle I suggere de choisir x2 comme nouvelle variable basique, et Regle II
implique le pivot de la 2eme ligne :
z x1 x2 x3 s1 s2 RHS Solution basique1 0 0 3
4−1
40 4 basique x1 = 2, x2 = 0, s2 = 3
0 0 1 14−3
40 0 non basique x3 = s1 = 0
0 1 0 14
14
0 2 z = 40 0 0 −1
434
1 0
C’est la meme solution, sauf que la variable basique degeneree est x2. Si on continue
par s1, avec le pivot de la 4eme ligne,
z x1 x2 x3 s1 s2 RHS Solution basique1 0 0 2
30 1
35 basique x1 = 1, x2 = 3, s1 = 4
0 0 1 0 0 1 3 non basique x3 = s2 = 00 1 0 1
30 −1
31 z = 5
0 0 0 −13
1 43
4
La degenerescence n’a pas empechee la convergence vers la solution optimale, mais dans
certains cas elle peut conduire au cycles.
- 52 -
Probleme non borne
• Exemple :
maxx1,x2
2x1 + x2 :−x1 + x2 ≤ 1,x1 − 2x2 ≤ 2x1 ≥ 0, x2 ≥ 0
La resolution par l’algorithme du simplex donne
z x1 x2 s1 s2 RHS Solution basique1 −2 −1 0 0 0 basique s1 = 1, s2 = 20 −1 1 1 0 1 non basique x1 = x2 = 00 1 −2 0 1 2 z = 01 0 −5 0 2 4 basique x1 = 2, s1 = 30 0 −1 1 1 3 non basique x2 = s2 = 00 1 −2 0 1 2 z = 4
A ce stade Regle I choisit x2, mais il n’y a pas de pivot positif dans la colonne corres-
pondante.
⇒ En augmentant x2, on va jamais attendre une contrainte ⇒ Il n’y a pas de limite
pour la valeur du probleme – probleme non borne
- 53 -
Dualite lineaireDualite pour les systemes d’inegalites lineaires
Comment repondre aux questions suivantes :
• Comment savoir si l’ensemble polyedrique
X = {x ∈ R : Ax ≤ b}est/n’est pas vide ?
• Comment savoir si l’ensemble polyedrique
X = {x ∈ R : Ax ≤ b}est/n’est pas bornee ?
• Comment comprendre si les deux polyedres
X = {x ∈ R : Ax ≤ b}, X ′ = {x ∈ R : A′x ≤ b′}coincident/ne coincident pas ?
• Comment savoir si le programme OL realisable/irrealisable ?
Notre objectif actuel sera d’etudier les reponses donnes par le theoreme de dualite en
programmation lineaire.
- 54 -
Theoreme sur alternative lineaire
• Soit le systeme de m inegalites lineaires strictes et non-strictes en x ∈ Rn :{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
ou ai ∈ Rn, bi ∈ R, 1 ≤ i ≤ m, avec I ⊂ {1, ...,m}, et I = {1, ...,m}\I.
(S) est un systeme “universel” d’inegalites lineaires.
Questions importantes (operationnelles) :
— Comment trouver une solution de (S) quand elle existe ?
— Comment comprendre que (S) est incompatible ?
Questions importantes (descriptives) :
— Comment certifier que (S) est soluble ?
— Comment certifier que (S) est incompatible ?
- 55 -
{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
• Il est facile de certifier que le systeme est realisable : il suffit de produire le certificat
– une solution candidate qui satisfait le systeme.
Exemple : Le vecteur x = [10; 10; 10] est un certificat d’admissibilite du systeme
−x1 −x2 −x3 < −29x1 +x2 ≤ 20
x2 +x3 ≤ 20x1 +x3 ≤ 20
• Mais comment certifier que (S) n’a pas de solution ? E.g., comment prouver que le
systeme
−x1 −x2 −x3 < −30x1 +x2 ≤ 20
x2 +x3 ≤ 20x1 +x3 ≤ 20
est incompatible ?
- 56 -
{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
• Une idee simple : si on fait une somme ponderee d’inegalites de (S) avec des
coefficients non-negatifs, on obtient une inegalite lineaire qui est une consequence du
systeme – il est satisfaite sur toute solution de (S). Si cette inegalite n’a pas de solutions,
alors (S), non plus, n’a pas de solutions.
Exemple : Pour le systeme
2× −x1 −x2 −x3 < −301× x1 +x2 ≤ 201× x2 +x3 ≤ 201× x1 +x3 ≤ 20
il suffit de sommer les inegalites avec des poids en rouge pour obtenir l’inegalite contra-
dictoire
0 · x1 + 0 · x2 + 0 · x3 < 0.
⇒ le vecteur λ = [2; 1; 1; 1] certifie que ce systeme n’est pas realisable.
- 57 -
{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
• Pour certifier l’absence de solution, faire la somme d’inegalites avec des poids λi ≥ 0,
pour arriver a l’inegalite
[∑mi=1 λiai]
Tx ?∑mi=1 λibi
[? = ” < ” quand
∑i∈I λi > 0
? = ” ≤ ” quand∑i∈I λi = 0
] (!)
• Si (!) n’a pas de solutions, (S) est inadmissible.
Remarque : inegalite ( !) n’a pas de solution ssi
m∑
i=1
λiai = 0
et, de plus,
∑mi=1 λibi≤0 quand
∑i∈I λi > 0
∑mi=1 λibi<0 quand
∑i∈I λi = 0
- 58 -
{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
Proposition. On associe avec (S) deux systemes d’inegalites lineaires en λ1, ..., λm :
(I) :
λi ≥ 0∀i∑mi=1 λiai = 0∑mi=1 λibi ≤ 0∑i∈I λi > 0︸ ︷︷ ︸
0Tx<0
, (II) :
λi ≥ 0 ∀i∑mi=1 λiai = 0∑mi=1 λibi < 0
λi = 0, i ∈ I︸ ︷︷ ︸0Tx≤−1
Si un des systemes (I), (II) a une solution, alors (S) n’a pas de solutions.
- 59 -
{aTi x< bi, i ∈ IaTi x≤ bi, i ∈ I (S)
Nous avons le resultat bien plus fort :
Theoreme sur alternative lineaire. On associe avec le systeme (S) deux systemes
d’inegalites lineaires en λ1, ..., λm :
(I) :
λi ≥ 0∀i∑mi=1 λiai = 0∑mi=1 λibi ≤ 0∑i∈I λi > 0
, (II) :
λi ≥ 0 ∀i∑mi=1 λiai = 0∑mi=1 λibi < 0
λi = 0, i ∈ ISysteme (S) n’a pas de solutions si et seulement si un des systemes (I), (II) a une
solution.
Remarque : une solution de (I) ou (II) peut etre vue comme un certificat d’incompati-
bilite de (S) : (S) est irrealisable si et seulement si un tel certificat existe.
Remarque : les inegalites strictes de (S) ne participent pas dans (II) ⇒ (II) a une
solution ssi le sous-systeme “nonstricte”
aTi x ≤ bi, i ∈ Ide (S) n’a pas de solution.
- 60 -
Le theoreme peut etre reformuler de facon suivante :
Un systeme fini d’inegalites lineaires n’a pas de solution ssi il est possible, en faisant
une somme d’inegalites de systeme avec des poids admissibles (i.e., compatibles avec
les operations de base avec des inegalites), obtenir une inegalite contradictoire – soit
l’inegalite 0Tx ≤ −1, ou 0Tx < 0.
L’avantage de cette formulation c’est que nous n’avons pas besoin de convertir le systeme
en forme canonique.
Exemple : le systeme
x1 +2x2 < 52x1 +3x2 ≥ 33x1 +4x2 = 1
n’a pas de solution – il suffit de faire la somme d’inegalites avec les poids [−1; 2;−1]
pour obtenir
0 · x1 + 0 · x2 > 0
- 61 -
Remarque : le theoreme sur alternative est toujours vrais dans une direction – en
faisant les sommes d’inegalites d’un systeme (S), lineaire ou non lineaire, avec des
inegalites triviales (toujours vraies), on obtient toujours une consequence de (S).
Cependant,“l’autre direction”dans le theoreme sur alternative lineaire exploite fortement
le fait que les inegalites du systeme original et une consequence que nous recherchons
sont lineaires.
Par exemple, l’inegalite quadratique
x2 ≤ 1 (!)
est une consequence du systeme d’inegalites lineaires (et, donc, quadratiques aussi)
−1 ≤ x ≤ 1 (∗)
Par contre, ( !) ne peut pas etre represente comme une somme d’inegalites de (∗) et
d’inegalites lineaires et quadratiques triviales, telles que
0 · x ≤ 1, x2 ≥ 0, x2 − 2x+ 1 ≥ 0, ...
- 62 -
Dualite en OL On considere le probleme OL
Opt(P ) = maxx
{cTx : Ax ≤ b
}(P )
Probleme dual permet de borner superieurement la valeur optimal du probleme primal
(P). Pour le faire, on “agrege” le probleme (P) :
— on attribue aux contraintes aTi x ≤ bi des coefficients non-negatifs λi (“multipli-
cateurs de Lagrange”) et on fait la somme des contraintes avec ces coefficients,
pour obtenir
[ATλ]Tx ≤ bTλ (!)
Observation : par construction, cette inegalite est une consequence du systeme
Ax ≤ b, et est ainsi satisfaite sur toute solution realisable de (P).
— Si ATλ = c, alors ( !) dit que that bTλ est une borne superieure sur cTx sur
tout domaine realisable de (P), et donc
bTλ ≥ Opt(P ).
- 63 -
Opt(P ) = maxx
{cTx : Ax ≤ b
}(P )
• Maintenant nous pouvons rechercher la meilleure – la plus petite – borne superieure du
Opt(P ) qu’on puisse obtenir par cette construction. Ainsi on arrive au probleme suivant
Opt(D) = minλ
{bTλ : ATλ = c, λ ≥ 0
}, (D)
appele probleme dual de (P).
- 64 -
Observation : la construction de la borne pour la valeur optimale peut etre appliquee a
tout programme OL, quelque soit le format. Par exemple, en l’appliquant au programme
primal
Opt(P ) = maxx
cTx :
Px ≤︸︷︷︸λ`
p (`)
Qx ≥︸︷︷︸λg
q (g)
Rx =︸︷︷︸λe
r (e)
(P )
on obtient le probleme dual
Opt(D) = min[λ`;λg,λe]
{pTλ` + qTλg + rTλe :
λ` ≥ 0, λg ≤ 0PTλ` +QTλg +RTλe = c
} (D)
• Attention aux notations : les types ≤, ≥, = des contraintes de (P) sont preserves par
les vecteurs de coefficients de Lagrange affectes λ`, λg, λe.
- 65 -
En resume :
Primal “min” Primal “max”Dual “max” Dual “min”
Contrainte primale Variable duale Variable duale“≥” “≥” “≤”“≤” “≤” “≥”“=” sans contrainte sans contrainte
Variable primale Contrainte duale Contrainte duale“≥” “≤” “≥”“≤” “≥” “≤”
sans contrainte “=” “=”
- 66 -
Opt(P ) = maxx
{cTx : Px ≤ p (`), Qx ≥ q (g), Rx = r (e)
}(P )
Opt(D) = min[λ`;λg,λe]
{pTλ` + qTλg + rTλe :
λ` ≥ 0, λg ≤ 0P Tλ` +QTλg +RTλe = c
}(D)
Theoreme de dualite en OL : soit (P) le probleme OL primal avec sont dual (D).Alors[Symetrie primal-dual] Dualite est symetrique : (D) est un programme OL, est le dual de(D) est (equivalent a) (P).[Dualite faible] Nous avons toujours Opt(D) ≥ Opt(P ).
Attention : cette inegalite correspond au probleme primal de maximisation. Plus gene-ralement, dualite faible dit que dans le couple primal-dual, la valeur optimale du problemede minimisation est ≥ la valeur optimal du probleme de maximisation.
[Dualite forte] Les proprietes suivantes sont equivalentes :— un des problemes est realisable et borne— deux problemes sont solubles— deux problemes sont realisables
et quand une (et, donc, toutes) de ces proprietes a lieu, nous avons
Opt(P ) = Opt(D).
- 67 -
Opt(P ) = maxx
{cTx : Px ≤ p (`), Qx ≥ q (g), Rx = r (e)
}(P )
Opt(D) = min[λ`;λg,λe]
{pTλ` + qTλg + rTλe :
λ` ≥ 0, λg ≤ 0P Tλ` +QTλg +RTλe = c
}(D)
Verification de la symetrie primal-dual. On reecrit (D) comme un probleme de
maximisation :
−Opt(D) = max[λ`;λg,λe]
{− pTλ` − qTλg − rTλe :
λg ≤ 0, λ` ≥ 0PTλ` +QTλg +RTλe = c
}
et, en appliquant les regles de construction de dual, on obtient
min[x`;xg;xe]
cTxe : x` ≥ 0, xg ≤ 0,
Pxe + xg = −pQxe + x` = −qRxe = −r
.
En posant xe = −x et en eliminant xg et xe, le probleme dual du (D) devient
minx
{−cTx : Px ≤ p, Qx ≥ q, Rx = r
},
qui est equivalent a (P).
- 68 -
Opt(P ) = maxx
{cTx : Px ≤ p (`), Qx ≥ q (g), Rx = r (e)
}(P )
Opt(D) = min[λ`;λg,λe]
{pTλ` + qTλg + rTλe :
λ` ≥ 0, λg ≤ 0P Tλ` +QTλg +RTλe = c
}(D)
Consequences immediates.
— Theoreme Si au moins un des problemes (P), (D) est realisable, nous avons
Opt(P ) = Opt(D). [pourquoi ca ?]
— Conditions d’optimalite en OL Soit x et λ = [λ`;λg;λe] une paire des
solutions realisables de (P ) et (D). Elle est comprise des solutions optimales
• [saut de dualite nul] si et seulement si le saut de dualite (duality gap) evalue sur cette
paire de solutions, est nul :
DualityGap(x, λ) := [pTλ` + qTλg + rTλe]− cTx = 0
• [complementarite] si et seulement si les produits de tous les multiplicateurs de Lagrange
λiet des residus de la contrainte correspondante primale sont nuls :
∀i : [λ`]i[p− Px]i = 0 & ∀j : [λg]j[q −Qx]j = 0.
- 69 -
Verification Nous sommes dans le cas quand les deux problemes sont realisables et
donc solubles avec les memes valeurs optimales. Alors
DualityGap(x, λ) :=[[pTλ` + qTλg + rTλe]− Opt(D)
]
+[Opt(P )− cTx
]
Pour toute paire de solutions primal-dual realisables, les expressions entre les crochets
sont non-negatives ⇒ le saut de dualite, evalue sur une paire primal-dual realisable est
≥ 0 et est nul ssi les deux expressions sont nulles⇔ ssi x est une solution primale
optimale et λ est duale optimale.
• On remarque que
DualityGap(x, λ) = [pTλ` + qTλg + rTλe]− cTx= [pTλ` + qTλg + rTλe]− [PTλ` +QTλg +RTλe]Tx= λT` [p− Px] + λTg [q −Qx] + λTe [r −Rx]=
∑i[λ`]i[p− Px]i +
∑j[λg]j[q −Qx]j
⇒ tous les termes dans la sommes sont non-negatifs
⇒ le saut de dualite est nul ssi la complementarite a lieu.
- 70 -
Fonction de cout d’un programme lineaire I
Opt(c) = maxx
{cTx : Ax ≤ b
}. (P [c])
Maintenant on suppose que A, b sont fixes, et que c varie, et on s’interesse aux proprietes
Opt(c) comme fonction de c.
Hypothese : (P [·]) est realisable (ce fait est independant de la valeur de c).
Theoreme Soit c tel que Opt(c) < ∞, et soit x une solution optimale de (P [c]).
Alors,
∀c : Opt(c) ≥ Opt(c) + xT [c− c]. (!)
En effet, nous avons
Opt(c) ≥ cT x = cT x+ [c− c]T x = Opt(c) + xT [c− c].
- 71 -
Fonction de cout d’un programme lineaire II
Soit le programme lineaire
Opt(b) = maxx
{cTx : Ax ≤ b
}. (P [b])
On suppose que A, c sont fixes, et b varie, et nous sommes interesse par les proprietes
de la valeur optimale Opt(b) comme fonction de b.
Remarque : Quand b est tel que (P [b]) est realisable, la propriete du probleme
d’etre/ne pas etre borne ne depend pas de la valeur de b.
En effet, le probleme (P [b]) n’est pas borne ssi il existe d : Ad ≤ 0, cTd > 0, et
ceci est independant de la valeur de b.
Hypothese : il existe b tel que P ([b]) est realisable et borne
⇒ P ([b]) est borne s’il est realisable.
Fonction Opt(b) est monotone en b :
b′ ≤ b′′ ⇒ Opt(b′) ≤ Opt(b′′).
- 72 -
Opt(b) = maxx
{cTx : Ax ≤ b
}. (P [b])
L’information supplementaire sur Opt(b) peut etre obtenue par dualite. Le probleme
duale de (P [b]) est
minλ
{bTλ : λ ≥ 0, ATλ = c
}. (D[b])
Par le theoreme de dualite en OL, sous l’hypothese, (D[b]) est realisable pour tout b,
et
Opt(b) = minλ
{bTλ : λ ≥ 0, ATλ = c
}. (∗)
Observation : Soit b tel que Opt(b) > −∞, et donc (D[b]) est soluble, et soit λ
une solution optimale de (D[b]). Alors nous avons
∀b : Opt(b) ≤ Opt(b) + λT [b− b]. (!)
En effet, par (∗) nous avons Opt(b) = λT b et Opt(b) ≤ λT b, donc,
Opt(b) ≤ λT b+ λT [b− b] = Opt(b) + λT [b− b].
- 73 -
Loi de decroissance des rendement marginaux
On considere la fonction de β definie par
Opt(β) = maxx
{cTx : Px ≤ p, qTx ≤ β
}(Pβ)
Interpretation : x est un plan de production, qTx est le prix des ressources utilisees
par x, β est l’investissement dans les ressources, Opt(β) est le retour maximal sur
l’investissement β.
Comme ci-dessus, pour β tel que (Pβ) est realisable, independamment de la valeur de β,
le probleme est soit toujours borne, soit toujours non-borne. Supposons que le probleme
est borne dans notre cas, alors
• Le domaine Dom Opt(·) de la fonction Opt(·) est un rayon non vide β ≤ β < ∞avec β ≥ −∞, et
• Opt(β) est non-decroissante et concave. Monotonie et concavite impliquent que si
β ≤ β1 < β2 < β3,
alors
Opt(β2)− Opt(β1)
β2 − β1≥
Opt(β3)− Opt(β2)
β3 − β2.
- 74 -
Autrement dit
le retour pour 1e d’investissement decroıt (ne change pas dans le meilleur
cas) quand l’investissement β grandit.
⇔ Loi de decroissance des rendements marginaux en economie.
ββ
Opt(β) + λ(β − β) Opt(β)
- 75 -
Autre interpretation : accroissement des prix marginaux
On considere la fonction de β definie par
Opt(β) = minx
{cTx : Px ≥ p, qTx ≥ β
}(P ′β)
Interpretation : x est un plan de production, qTx la quantite du produit fabrique, β
est la demande en produit, Opt(β) est le cout de fabrication des produit pour satisfaire
la demande β.
• Comme dans le cas precedent, le domaine Dom Opt(·) de la fonction Opt(·) est un
rayon non vide β ≥ β > −∞ avec β ≤ ∞, et
• Opt(β) est non-croissante et convexe. Ainsi, si
β1 < β2 < β3 ≤ β,
alors
Opt(β2)− Opt(β1)
β2 − β1≤
Opt(β3)− Opt(β2)
β3 − β2.
- 76 -
Ce qui peut-etre exprimee en PLExemple : probleme d’ordonnancement
On doit planifier n taches sur la grappe de m serveurs de calcul homogenes. Chaque
tache a la duree fixe ti, i = 1, ..., n, et peut etre traitee par tout serveur. On veut
distribuer des taches sur les serveurs de facon a minimiser la duree totale du traitement.
Formulation MinMax
minimiser max1≤j≤m∑ni tixij
sous contraintes∑mj=1 xij = 1, i = 1, ..., n
xij ∈ {0,1}, i = 1, ..., n, j = 1, ...,m.
— variable xij = 1 si la tache i est traitee par le serveur j ; xij = 0 sinon –
probleme combinatoire (difficile)
— l’objectif du programme n’est pas lineaire. La fonction non-lineaire “max” peut
etre facilement reduite a un objectif avec des contraintes lineaires :
on pose les contraintes
z ≥n∑
i
tixij, j = 1, ...,m,
et le nouvel objectif : minimiser z.- 77 -
Remarque : dans un programme lineaire, l’objectif est une fonction lineaire de la variable
de decision x et les contraintes sont les equations ou les inegalites lineaires non-strictes.
La propriete d’un probleme PM d’etre un programme OL est une propriete de la repre-
sentation. Les programmes seront classifies selon leur presentation, pas selon ce a quoi
ils sont equivalents/peuvent etre reduits.
Ainsi, le probleme de programmation mathematique
minx
x1 :
x1 + x2 ≤ 20x1 − x2 = 5x1, x2 ≥ 0
(1)
est un programme OL.
Mais le probleme
minx
|x1 − 2x2| :
x1 + x2 ≤ 20x1 − x2 = 5x1, x2 ≥ 0
(1′)
n’est pas un programme OL, car l’objectif de (1′) est non-lineaire.
- 78 -
Optimisation “lineaire par morceaux”
• Fonction lineaire : une fonction f : Rn → R est lineaire si
f(αx+ βy) = αf(x) + βf(y) ∀x, y ∈ Rn, ∀α, β ∈ R
Caracterisation : f est lineaire ssi f = aTx pour un a ∈ Rn.
• Fonction affine : une fonction f : Rn → R est affine si
f(αx+ (1− α)y) = αf(x) + (1− α)f(y) ∀x, y ∈ Rn, ∀α ∈ R
Caracterisation : f est affine ssi f = aTx+ b pour a ∈ Rn, b ∈ R.
• Fonction lineaire par morceau :
f : Rn → R est (convexe) lineaire par
morceau si
f(x) = maxi=1,..,m
(aTi x+ bi).
f est parametree par m n-vecteurs ai et m scalaires bi.
Piecewise-linear function
f : Rn → R is (convex) piecewise-linear if it can be expressed as
f(x) = maxi=1,...,m
(aTi x+ bi)
f is parameterized by m n-vectors ai and m scalars bi
x
aTi x + bi
f(x)
(the term piecewise-affine is more accurate but less common)
Piecewise-linear optimization 2–3
- 79 -
Minimisation lineaire par morceaux
min
{f(x) = max
i=1,...,maTi x+ bi
}
• Modele OL equivalent avec la variable x et la variable auxiliaire t :
min{t : aTi x+ bi ≤ t ∀i}
• PL en forme canonique (notation matricielle) :
max{cT x : Ax ≤ b},
avec
x =
[xt
], c =
[0−1
], A =
aT1 −1
... ...
aTm −1
, b =
−b1
...bm
.
- 80 -
Minimisation de la somme des fonctions lineaires par morceaux
min{
maxi=1,...,m(aTi x+ bi) + maxj=1,...,p(cTj x+ dj)}⇔
min
maxi = 1, ...,mj = 1, ..., p
(ai + cj)Tx+ (bi + dj)
• PL equivalent avec m+ p inegalites
min{t1 + t2 : aTi x+ bi ≤ t1 ∀i, cTj x+ dj ≤ t2 ∀j
}
Remarque : pour un x fixe, le minimum en t est
t1 = maxi=1,...,m
(aTi x+ bi), t2 = maxj=1,...,p
(cTj x+ dj).
• PL en forme canonique : max{cT x : Ax ≤ b}, avec
x =
xt1t2
, c =
0−1−1
, A =
aT1 −1 0... ... ...aTm −1 0cT1 0 −1... ... ...cTp 0 −1
, b =
−b1...−bm−d1
...−dp
.
- 81 -
Approximation de Tchebychev `∞ : min {‖Ax− b‖∞} .• PL equivalent apres la discretisation (avec la variable x et variable auxiliaire t) :
min{t : −t1 ≤ Ax− b ≤ t1}
• PL en notation matricielle : min{cT x : Ax ≤ b}, avec
x =
[xt
], c =
[01
], A =
[A −1−A −1
], b =
[b−b
].
Minimisation de la norme `1 : min {‖Ax− b‖1} .• PL equivalent avec la variable x et vecteur auxiliaire u :
min
m∑
i=1
ui : −u ≤ Ax− b ≤ u
• PL en notation matricielle : min{cT x : Ax ≤ b}, avec
x =
[xu
], c =
[01
], A =
[A −I−A −I
], b =
[b−b
].
- 82 -
• Le meme probleme peu etre formule comme un PL different en introduisant des va-
riables auxiliaires
u ≥ 0, v ≥ 0, u− v = Ax− b.
On obtiens ainsi le programme
min
m∑
i=1
(ui + vi) : Ax− b = u− v, u ≥ 0, v ≥ 0
• PL en notation matricielle : min{cT x : Ax ≤ b}, avec
x =
xuv
, c =
011
, A =
A −I I0 −I 00 0 −I
, b =
b00
.
- 83 -
Application statistique : regression robuste
Etant donnees les observations {xi ∈ Rn, yi ∈ R}mi=1 dans le modele
yi = θT∗ xi + ξi [ξi : bruit d’observation]
on cherche a retrouver le vecteur de parametres θ∗.Dans le cas m � n, une approche classique pour estimer θ∗ consiste a se donner une
“fonction de perte”φ(u, v) et de choisir l’estimation θ de θ∗ qui minimise en θ l’erreur
de prediction
φ([y1; ...; ym], [θTx1; ...; θTxm]
)
des sorties observees par les sorties du modele z = θTx, applique aux regresseurs
observes x1, ..., xm.
• En notantX = [xT1 ;xT2 ; ...;xTm] la matrice de regresseurs, la procedure d’estimation
s’ecrit
θ ∈ Argminθ
φ(y,Xθ) [y = [y1; ...; ym]]
(notation Argminx f ⇔ ensemble de minimiseurs de f en x).
- 84 -
• Le choix de la perte φ(·, ·) depend de la distribution de bruit ξ.
La perte couramment utilisees est la perte quadratique φ(u, v) = ‖u − v‖2, corres-
pondant au cas du bruit blanc normal (ξi ∼ N (0, σ2) sont independants) ou, plus
generalement, au cas e ξi i.i.d. avec la moyenne nulle et la variance finie
⇒ methode de moindres carres minθ
∑mi=1(yi − xTi θ)2.
Dans certains cas l’estimation se reduit au probleme OL :
— regression `1 : φ(u, v) = ‖u − v‖1 :=∑mi=1 |ui − vi|. Dans ce cas le
probleme d’estimation s’ecrit
minθ
m∑
i=1
|yi − xTi θ| ⇔ minθ,τ
τ :
m∑
i=1
|yi − xTi θ| ≤ τ
(`1)
— regression `∞ : φ(u, v) = ‖u− v‖∞ := maxi|ui − vi|, on doit resoudre
minθ
max1≤i≤m
|yi − xTi θ| ⇔ minθ,τ
{τ : max
1≤i≤m|yi − xTi θ| ≤ τ
}(`∞)
- 85 -
Comment ca marche – comparaison avec les moindres carres
Soit A ∈ R200×80, b ∈ R200 matrices aleatoires, et soit
x`s ∈ Argminx‖Ax− b‖2, x`1 ∈ Argmin
x‖Ax− b‖1.
Comparison with least-squares solution
histograms of residuals Ax− b, with randomly generated A ∈ R200×80, for
xls = argmin ‖Ax− b‖, xℓ1 = argmin ‖Ax− b‖1
� 1.5 � 1.0 � 0.5 0.0 0.5 1.0 1.50246810
(Axls − b)k
� 1.5 � 1.0 � 0.5 0.0 0.5 1.0 1.5020406080100
(Axℓ1 − b)k
ℓ1-norm distribution is wider with a high peak at zero
Piecewise-linear optimization 2–11
- 86 -
Comment ca marche – regression simple
— m observations bruitees (ti, yi) de la fonction affine f(t) = α+ βt
— Probleme a resoudre : min ‖Ax− b‖ avec
x =
[αβ
], A =
1 t1... ...1 tm
, b =
[y1
...ym
].
Robust curve fitting
• fit affine function f(t) = α+ βt to m points (ti, yi)
• an approximation problem Ax ≈ b with
A =
1 t1... ...1 tm
, x =
[αβ
], b =
y1...ym
� 10 � 5 0 5 10� 20
� 15
� 10
� 5
0
5
10
15
20
25
t
f(t)
• dashed: minimize ‖Ax− b‖• solid: minimize ‖Ax− b‖1ℓ1-norm approximation is morerobust against outliers
Piecewise-linear optimization 2–12
• en pointille : minx ‖Ax− b‖2• en continu : minx ‖Ax− b‖1⇒ regression `1 est plus robuste par rap-
port aux observation aberrantes
- 87 -
Application statistique : acquisition compressee (Compressed Sensing)
Nous avons une observation m-dimensionnel
y = [y1; ...; ym] = Xθ∗+ ξ[X ∈ Rm×n : matrice d’acquisition, ξ : bruit d’observation]
d’un “signal” inconnu θ∗ ∈ Rn avec m� n, et on cherche a estimer θ∗.On s’interesse ici au cas m� n, quand le systeme soluble
Xθ = y
en variables θ possede l’infinite de solutions
⇒Meme sans bruit d’observation, on ne peut pas identifier θ∗ sans hypotheses supple-
mentaires.
• En Compressed Sensing (acquisition compressee) on suppose que θ∗ est creux — ait
au plus s� m coefficients non-nuls.
- 88 -
Remarque : soit ξ = 0, et soit toute sous-matrice m × 2s de X de rang 2s (ce
qui est souvent le cas quand m � 2s). Alors θ∗ est la solution optimal du probleme
d’optimisation
minθ{‖θ‖0 : Xθ = y} [‖θ‖0 = Card{j : θj 6= 0}] (`0)
Mauvaise nouvelle : (`0) est un probleme combinatoire difficile.
• Un remede partiel : on remplace l’objectif “difficile”‖θ‖0 par un objective “facile :”
‖θ‖1 =∑
i
|θi|,
et on arrive au probleme de minimisation de la norme `1 :
θ = argminθ{‖θ‖1 : Xθ = y}
⇔ minθ,z
∑
j
zj : Xθ = y, −zj ≤ θj ≤ zj ∀j ≤ n
.
- 89 -
Comment ca marche – acquisition compressee
• signal exacte x∗ ∈ R1000,
10 coefficients non-nuls
• matrice A ∈ R100×1000 aleatoire,
cas sans bruit b = Ax∗
Example
• exact signal x ∈ R1000
• 10 nonzero components
0 200 400 600 800 1000
k
−2
−1
0
1
2
x k
least-norm solutions (randomly generated A ∈ R100×1000)
0 200 400 600 800 1000
k
−2
−1
0
1
2
x k
minimum ℓ2-norm solution
0 200 400 600 800 1000
k
−2
−1
0
1
2
x k
minimum ℓ1-norm solution
ℓ1-norm estimate is exact
Piecewise-linear optimization 2–14
Example
• exact signal x ∈ R1000
• 10 nonzero components
0 200 400 600 800 1000
k
−2
−1
0
1
2
xk
least-norm solutions (randomly generated A ∈ R100×1000)
0 200 400 600 800 1000
k
−2
−1
0
1
2
xk
minimum ℓ2-norm solution
0 200 400 600 800 1000
k
−2
−1
0
1
2
xk
minimum ℓ1-norm solution
ℓ1-norm estimate is exact
Piecewise-linear optimization 2–14
- 90 -
• Quand l’observation est bruitee, c.-a-d. que
y = Xθ∗+ ξ,
et on connaıt une borne δ de norme ‖ξ‖ du bruit, l’estimateur de θ∗ par minimisation
de la norme `1 devient
θ ∈ Argminθ{‖θ‖1 : ‖Xθ − y‖ ≤ δ} .
Un autre estimateur
θDS ∈ Argminθ
{‖θ‖1 : ‖XT (Xθ − y)‖∞ ≤ δ
}.
par “Dantzig Selector” de θ∗, est la “composante θ” de solution optimale du programme
OL :
Argminθ, z
{∑jzj :
−δ ≤ [XT (Xθ − y)]i ≤ δ ∀i ≤ m−zj ≤ θj ≤ zj, zj ≥ 0 ∀j ≤ n
}.
- 91 -
Comment ca marche – Dantzig Selector
• matrice A ∈ R200×500 aleatoire, σ = 0.25
0 100 200 300 400 500
0.0
0.4
0.8
true x
j
x0
0 50 100 150 200
−0.5
0.0
0.5
1.0
observation
j
y
0 100 200 300 400 500
−0.1
0.1
0.2
0.3
minimum l_2−norm solution
j
x
0 100 200 300 400 500
0.0
0.4
0.8
1.2
minimum l_1−norm solution
j
x
- 92 -
Application statistique : classification lineaire
— Etant donne un ensemble de points v1, ..., vm avec les etiquettes si ∈ {−1,1}— trouver un hyperplan αTx+β tels que les points avec les etiquettes“+1”et“-1”
se trouvent dans les deux demi-espaces differents
αTvi + β > 0 si si = 1, αTvi + β < 0 si si = −1
−1 0 1 2 3
−1
01
23
−1 0 1 2 3
−1
01
23
X1X1
X2
X2
Note : un plan de separation satisfait si(β + αTvi) > 0, ∀i.
- 93 -
Remarque : les inegalites sont homogenes en α, β, et donc equivalentes aux inegalites
lineaires (en α, β)
sTi (αTvi + β) ≥ 1 ∀i.Dans le cas de points “non separables,” on peut chercher un classifieur qui minimise le
cout
min
m∑
i=1
max{0,1− si(αTvi + β)}
— la quantite
hi = max{0,1− si(αTvi + β)}
(hinge loss) peut etre vue comme une penalite pour la mauvaise classification
—∑hi est une borne superieure pour le nombre de points “mal classes.”
- 94 -
• PL equivalent en variables α ∈ Rn, β ∈ R et variable auxiliaire u ∈ Rm :
min
m∑
i=1
ui :1− si(vTi α+ β) ≤ ui i = 1, ...,m
0 ≤ ui, i = 1, ...,m
• PL en notation matricielle : min{cTx : Ax ≤ b}, avec
x =
αβu
, c =
001
, A =
−s1vT1 −s1 −1 0 ... 0−s2vT2 −s2 0 −1 ... 0
... ... ... . . . ...−smvTm −sm 0 0 ... −1
0 0 −1 0 ... 0... ... ... . . . ...0 0 0 0 ... −1
, b =
−1...−10...0
.
- 95 -
Logiciels
Les logiciels d’optimisation peuvent etre classes en 2 groupes :
•“Solveurs”– moteurs d’optimisation, commerciaux (Mosek, CPLEX, Gurobi, ...)
ou libres (GLPK, LP Solve, SDPT3, ...) – ce sont eux qui, proprement dit, resolvent
des problemes d’optimisation.
Un solveur accepte en entree un probleme d’optimisation dans un format special (propre
a chaque solveur), pour rendre a la sortie une solution, si le probleme en question est
soluble, ou decide que le probleme n’est pas soluble et produit un certificat pour justifier
cette decision.
Certains moteurs d’optimisation sont interface avec R. Dans ce cours vous allez utiliser
RMosek – l’interface R du moteur Mosek (logiciel commercial, disponible gratuitement
pour les universitaires) https ://www.mosek.com/
- 96 -
• Outils de modelisation – “modeleurs”, dont le but est de simplifier la formulation et
analyse d’un probleme d’optimisation. En ce qui concerne les problemes equivalents aux
programmes OL, ces outils peuvent
— accepter le probleme dans une forme standard simplifiee
(e.g., avec les max, ‖ · ‖1, ‖ · ‖∞, etc)
— reconnaıtre les problemes qui peuvent etre convertis en OL
— transformer le probleme dans le format accepte par le moteur d’optimisation utilise
Les outils de modelisations sont disponibles sous differentes formes et en differents lan-
gages de programmation :
— AMPL, GAMS (outils autonomes)
— CVX, YALMIP (MATLAB)
— CVXPY, CVXOpt, Pyomo (Python)
— CVXR (R)
- 97 -
CVXR exemple
min {‖x‖1 : ‖Ax− b‖∞ ≤ r, ‖x‖∞ ≤ s} .
> library(mvtnorm)
> n=500; p=50; sig=0.01;epsn=0.01;s=2;
> r=qnorm(1-epsn/n)*sig;
> S=0.5^toeplitz(1:p)
> A=rmvnorm(n, sigma = S)
> b=apply(A[,1:5], 1, sum) + sig*rnorm(n)
# CVXR proprement dit
> library(CVXR)
> x=Variable(p)
> constraints=list(p_norm(x, Inf)<=s, p_norm(b-A%*%x, Inf)<=r)
> prob=Problem(Minimize(p_norm(x,1)), constraints)
> result=solve(prob)
> x=result$getValue(x)
> plot(x)
- 98 -
RMosek Moteur “commercial” (acces gratuit pour les etudiants)
• Format standard RMosek :
— variable x ∈ Rn,
— matrice de contraintes A ∈ Rm×n
— objectif c ∈ Rn,
— bornes inferieure `c et superieure uc de contraintes
— bornes inferieure `x et superieure ux de x
minimize cTx
subject to `c ≤ Ax ≤ uc,`x ≤ x ≤ ux
Manuel d’utilisateur RMosek : http ://rmosek.r-forge.r-project.org/
- 99 -
Utilisation de RMosek
• Probleme de regime McDonald’s optimal :
“En mots :” minimizer les calories
sous contraintes des nutriments
minx
n∑
j=1
cjxj :
∑nj=1 pijxj ≥ bi, i = 1, ...m,
∑nj=1 pijxj ≤ bi, i = 1, ...m,
xj ≥ 0, 1 ≤ j ≤ n
Ou encore :
min{cTx : b ≤ Ax ≤ b, x ≥ 0},
ou A ∈ Rm×n est la matrice avec les elements [A]ij = pij, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
- 100 -
> foods=read.table("food.dat", header=T) #Lecture des donnees> foods[1:4,]
Food Cal CalFat Fat SatFat Chol Sodium Carbo Protein VitA VitC Calcium Iron1 1%_Low_Fat_Milk_Jug 1_carton_(236_ml) 100 20 2 1 10 125 12 8 10 4 30 02 Apple_Slices 1.2_oz_(34_g) 15 0 0 0 0 0 4 0 0 160 2 03 BBQ_Ranch_Burger 4.1_oz_(116_g) 350 140 16 6 45 680 37 16 4 0 20 154 Bacon,_Egg_&_Cheese_Bagel 7_oz_(199_g) 630 290 32 11 275 1490 57 30 20 15 20 20>> fnames=foods[,1]> nutr.norm=read.table("nutr_ideal.dat", header=T)> names(nutr.norm)[1] "Cal" "CalFat" "Fat" "SatFat" "Chol" "Sodium" "Carbo" "Protein" "VitA" "VitC"[11] "Calcium" "Iron">> diet1 = list() # creation du probleme> diet1$sense = "min" # definir le sens d'optimisation> diet1$c = as.matrix(foods[,2]) # definir l'objectif: la valeur calorique> A = t(as.matrix(foods[,3:13])) # definir la matrice des contraintes> diet1$A = Matrix(A,sparse=TRUE)> b = as.matrix(nutr.norm[2:12]) # definir les bornes admissibles> blc = 0.8*b; buc=1.2*b; # pour les nutriments> diet1$bc = rbind(blc, buc);> blx = rep(0,305); bux <- rep(Inf,305); # contraintes de non-negativite> diet1$bx = rbind(blx, bux);> r = mosek(diet1)
ComputerPlatform : Windows/64-X86
Cores : 1
ProblemName :Objective sense : minType : LO (linear optimization problem)Constraints : 11Cones : 0Scalar variables : 305Matrix variables : 0Integer variables : 0
Optimizer started.Interior-point optimizer started.Presolve started....
Factor - nonzeros before factor : 66 after factor : 66Factor - dense dim. : 0 flops : 3.18e+004ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME0 2.4e+002 6.6e+000 6.5e+002 2.26e+000 1.372955304e+005 0.000000000e+000 2.3e+000 0.001 2.2e+002 8.2e+000 6.6e+002 0.00e+000 1.418094583e+005 1.664025593e+003 7.4e+000 0.002 1.3e+001 4.6e-001 3.7e+001 -8.43e-001 5.591419263e+004 2.518824208e+003 4.2e-001 0.003 4.2e+000 1.6e-001 1.3e+001 9.61e-001 1.568108462e+004 2.162233225e+003 1.4e-001 0.004 2.4e+000 8.9e-002 7.2e+000 2.87e+000 6.625715907e+003 2.275951097e+003 8.1e-002 0.00
5 1.4e+000 5.2e-002 4.2e+000 2.90e+000 3.387566741e+003 2.192592773e+003 4.7e-002 0.006 8.4e-001 3.1e-002 2.5e+000 2.10e+000 2.434783666e+003 1.883464080e+003 2.8e-002 0.007 4.5e-001 1.7e-002 1.3e+000 1.43e+000 1.899310800e+003 1.640642415e+003 1.5e-002 0.008 2.1e-001 7.8e-003 6.3e-001 1.15e+000 1.573381052e+003 1.455345733e+003 7.0e-003 0.009 2.7e-002 9.8e-004 7.9e-002 1.23e+000 1.366259235e+003 1.352122956e+003 8.9e-004 0.0010 5.5e-004 2.0e-005 1.6e-003 9.99e-001 1.335288862e+003 1.334995770e+003 1.8e-005 0.0011 8.6e-007 3.2e-008 2.5e-006 1.00e+000 1.334857456e+003 1.334857002e+003 2.8e-008 0.0012 8.6e-011 3.2e-012 2.5e-010 1.00e+000 1.334856193e+003 1.334856193e+003 2.8e-012 0.00
Basis identification started....Optimizer terminated. Time: 0.00
Interior-point solution summaryProblem status : PRIMAL_AND_DUAL_FEASIBLESolution status : OPTIMALPrimal. obj: 1.3348561927e+003 Viol. con: 7e-008 var: 0e+000Dual. obj: 1.3348561929e+003 Viol. con: 4e-010 var: 6e-010
...
> x=r$sol$itr$xx # extraire la solution x> t(diet1$c)%*%r$sol$itr$xx #valeur optimale c^Tx --la valeur calorique du regime
[,1][1,] 1334.856>...> mydiet # impression du contenu de regime[1] "Chocolate_Chip_Cookie 1_cookie_(33_g): 0.699908803471238"[2] "EQUAL_0_Calorie_Sweetener 1_pkg_(1.0_g): 84.2645722693934"[3] "Fat_Free_Chocolate_Milk_Jug 1_carton_(236_ml): 0.898566545455502"[4] "Hamburger 3.5_oz_(100_g): 2.14750840210163"[5] "Sausage_Burrito 3.9_oz_(111_g): 1.35453792177156"[6] "Side_Salad 3.1_oz_(87_g): 1.98962488832494">
On peut ajouter des contraintes pour rendre le menu “mangeable,” par exemple
> bux=rep(10,n); % quantite de tous les produits ne depasse pas 10
et ainsi de suite...
Programmation en nombres entiers
• Definitions
— (PLE) – programme lineaire en nombres entiers (Integer Linear program, ILP)
minx{cTx : Ax ≤ b, x ∈ Zn}
Definitions
integer linear program (ILP)
minimize cTxsubject to Ax ≤ b
x ∈ Zn
c
mixed integer linear program: only some of the variables are integer
0-1 (Boolean) linear program: variables take values 0 or 1
Integer linear programming 18–2
— (PLEM) – programme lineaire d’entiers mixte (Mixed Integer Linear program) :
certaines variables (mais pas toutes) sont des entiers
— (PLB) – programme lineaire booleen (0-1, Boolean Linear program) : variables a
valeurs dans {0,1}- 101 -
Exemples
• Probleme d’emplacement
— n emplacement possibles pour les installation industrielles avec cout d’emplace-
ment cj— m clients
— dij le cout de service du client i de l’emplacement j
Variables yj, xij :
— yj = 1 si l’emplacement j est selectionne et 0 sinon
— xij = 1 si l’emplacement j sert le client i et 0 sinon
Formulation booleenne :
min
n∑
j=1
cjyj +m∑
i=1
n∑
j=1
dijxij :
∑nj=1 xij = 1, i = 1, ...,m
xij ≤ yj, i = 1, ...,m, j = 1, ..., nxij, yj ∈ {0,1}
- 102 -
• L’exemple le plus connu d’un probleme difficile – probleme du voyageur de commerce :
– etant donnes n sites, determiner l’ordre dans lequel les visiter pour minimiser la distance
totale parcourue
Pour n cites il y a n! parcours possibles ( !)
n n! n4 2n
7 5040 2401 1288 40320 4096 256
... ... ...20 2.4329e+18 160 000 1048576... ... ...40 8.1592e+47 2 560 000 1.0995e+12
- 103 -
13509 villes aux Etats-Unis
(Applegate, Bixby, Chvatal & Cook, 1998), algorithme specialiseVoir article NY Times“Le probleme du politicien voyageur” pour Iowa (99 contes)
https ://campaignstops.blogs.nytimes.com/2011/12/21/the-problem-of-the-traveling-politician/
- 104 -
Relaxation par PL
Probleme general de programmation en nombres entiers :
minx{cTx : Ax ≤ b, x est un entier}
⇒ (relaxation)
minx{cTx : Ax ≤ b, x est un entier}
— Permet d’obtenir une borne interieure sur la valeur optimale du PLE
— Si la solution est en nombres entiers, c’est aussi la solution du PLE
— Attention : on peut avoir des formulations relaxees differentes pour le meme PLE
Linear programming relaxation
relaxation: remove the constraints x ∈ Zn
• provides a lower bound on the optimal value of the integer LP
• if solution of relaxation is integer, then it solves the integer LP
c c
equivalent ILP formulations can have different LP relaxations
Integer linear programming 18–4
- 105 -
Exemple
minx
−2x1 − 3x2 :
29x1 + 1
4x2 ≤ 11
7x1 +
1
3x2 ≤ 1
︸ ︷︷ ︸x∈X
x1, x2 ∈ Z+
Example
minimize −2x1 − 3x2
subject to (x1, x2) ∈ P
where
P = {x ∈ Z2+ | 2
9x1 +
1
4x2 ≤ 1,
1
7x1 +
1
3x2 ≤ 1}
x1
x2 −c
optimal point: (2, 2)
Integer linear programming 18–6Optimal solution : [2; 2]
- 106 -
Methode de separation et d’evaluation progressive (Brunch and Bound)tree of subproblems and results of LP relaxations
P0
P1 P2
P3 P4 P5 P6
P7 P8
P9 P10
P11 P12
x1 ≤ 2
x2 ≤ 2 x2 ≤ 1
x1 = 3
x2 = 0
x1 = 4
x1 ≥ 3
x2 ≥ 3 x2 ≥ 2
x1 ≥ 4
x2 = 1
x1 ≥ 5
x⋆ p⋆
P0 (2.17, 2.07) −10.56P1 (2.00, 2.14) −10.43P2 (3.00, 1.33) −10.00P3 (2.00, 2.00) −10.00P4 (0.00, 3.00) −9.00P5 (3.38, 1.00) −9.75P6 +∞P7 (3.00, 1.00) −9.00P8 (4.00, 0.44) −9.33P9 (4.50, 0.00) −9.00P10 +∞P11 (4.00, 0.00) −8.00P12 +∞
Integer linear programming 18–7
x∗ Opt
P0 [2.17 ; 2.07] -10.56P1 [2.00 ; 2.14] -10.43P2 [3.00 ; 1.33] -10.00P3 [2.00 ; 2.00] -10.00P4 [0.00 ; 3.00] -9.00P5 [3.38 ; 1.00] -9.75P6 +∞P7 [3.00 ; 1.00] -9.00P8 [4.00 ; 0.44] -9.33P9 [4.50 ; 0.00] -9.00P10 +∞P11 [4.00 ; 0.00] -8.00P12 +∞
- 107 -
Separation et evaluation
⇒ P2 : min cTx sous contrainte x ∈ X et x1 ≥ 3
valeur optimale ≥ −10.00
⇒ P3 : min cTx sous contrainte x ∈ X, x1 ≤ 2, et x2 ≤ 2
solution x = [2; 2], valeur optimale Opt = −10
...
⇒ P6 : min cTx sous contrainte x ∈ X, x1 ≥ 3, x2 ≥ 2
probleme irrealisable
...
Apres avoir resolu les relaxations pour P0, P1, P2, P3, P4 on peut deduire que [2; 2]
est la solution optimale du PLE
- 108 -
Utilisation du solveur d’entiers mixte (MIP) de Mosek
• il suffit de declarer pour RMosek des variables entieres :
— le vecteur intsub doit contenir les indices des variables entieres
— variables booleennes, x ∈ {0,1}, doivent etre declarer comme entieres et satis-
faisant la contrainte 0 ≤ x ≤ 1
Par exemple, dans le probleme de regime McDonald’s, pour convertir les variables en
entiers, il suffit de faire
> diet4=diet3> diet4$intsub=c(1:305)> r = mosek(diet4)
ComputerPlatform : Windows/64-X86Cores : 1
ProblemName :Objective sense : minType : LO (linear optimization problem)Constraints : 12
- 109 -
Cones : 0Scalar variables : 305Matrix variables : 0Integer variables : 305
Optimizer started.Mixed integer optimizer started.Optimizer - threads : 10 1 0 NA 1.5106771305e+003 NA 0.00 2 0 NA 1.5222410122e+003 NA 0.0...405 366 10 1.5950000000e+003 1.5800000000e+003 0.94 0.2415 371 0 1.5950000000e+003 1.5950000000e+003 0.00e+000 0.2An optimal solution satisfying the absolute gap tolerance of 0.00e+000 has been located.The absolute gap is 0.00e+000.
Objective of best integer solution : 1.595000000000e+003Best objective bound : 1.595000000000e+003Construct solution objective : Not employedConstruct solution # roundings : 0User objective cut value : 0Number of cuts generated : 5Number of branches : 415Number of relaxations solved : 371Number of interior point iterations: 15Number of simplex iterations : 999Time spend presolving the root : 0.00
Time spend in the heuristic : 0.00Time spend in the sub optimizers : 0.00Time spend optimizing the root : 0.02
Mixed integer optimizer terminated. Time: 0.19
Optimizer terminated. Time: 0.19
Integer solution solution summaryProblem status : PRIMAL_FEASIBLESolution status : INTEGER_OPTIMALPrimal. obj: 1.5950000000e+003 Viol. con: 0e+000 var: 0e+000 itg: 0e+000
Optimizer summary...
Mixed integer - relaxations: 371 time: 0.19
...
> t(diet4$c)%*%r$sol$int$xx[,1]
[1,] 1595
> mydiet[1] "Chocolate_Chip_Cookie 1_cookie_(33_g): 4"[2] "Coffee_(Large) 16_fl_oz_cup: 10"[3] "Coffee_(Medium) 16_fl_oz_cup: 10"[4] "Coffee_(Small) 12_fl_oz_cup: 10"[5] "Diet_Coke_(Medium) 21_fl_oz_cup: 10"[6] "EQUAL_0_Calorie_Sweetener 1_pkg_(1.0_g): 10"[7] "Egg_McMuffin 4.8_oz_(135_g): 1"[8] "Fat_Free_Chocolate_Milk_Jug 1_carton_(236_ml): 1"[9] "Hamburger 3.5_oz_(100_g): 1"[10] "Newman's_Own_Low_Fat_Balsamic_Vinaigrette 1.5_fl_oz_(44_ml): 1"[11] "SPLENDA_No_Calorie_Sweetener 1_pkg_(1.0_g): 10"[12] "Side_Salad 3.1_oz_(87_g): 2"[13] "Strawberry_Banana_Smoothie_(Small) 12_fl_oz_cup: 1"
2eme partie : Optimisation non-lineaire
Programme mathematique generale
minimiser f(x) [fonction objective]sous contraintes
hi(x) = 0, i = 1, ...,m [contraintes d’egalite]gj(x) ≤ 0, j = 1, ..., k [contraintes d’inegalite]x ∈ X [domaine du probleme]
(PM)
Remarque : les contraintes dans le systeme sont toujours liees par “et” – une solution
realisable doit satisfaire toutes les contraintes :x = [x1; ...;xn] : gi(x)
≥=≤bi pour tout i = 1, ...,m,
- 110 -
• Ainsi, le probleme
minx=[x1;x2]
{x1 + x2 : x1 − x2 − 3︸ ︷︷ ︸
g1(x)
≤ 0 ou sin(x1)︸ ︷︷ ︸g2(x)
≤ 0}
n’est pas dans le format de programme mathematique.
• La forme eligible de ce probleme serait, par exemple,
minx=[x1;x2]
{x1 + x2 : min[x1 − x2 − 3, sin(x1)]︸ ︷︷ ︸
g(x)
≤ 0}
En effet, dire que
g1(x) ≤ b1 ou g2(x) ≤ b2 ou ... ou gm(x) ≤ bmest exactement le meme que de dire
g(x) := min [g1(x)− b1, g2(x)− b2, ..., gm(x)− bm]≤0.
Par contre, dire
g1(x) ≤ b1 et g2(x) ≤ b2 et ... et gm(x) ≤ bmest exactement le meme que de dire
g(x) := max [g1(x)− b1, g2(x)− b2, ..., gm(x)− bm]≤0.
- 111 -
Remarque : (Presque) tout probleme en mathematique appliquee peut etre exprimee
comme un probleme de programmation mathematique. ⇒De facon generale, un pro-
bleme de programmation non-lineaire est difficile – on ne peut pas esperer de le resoudre
en un temps raisonnable.
Question : Alors comment peut-on traiter des problems avec des dizaines de milliers de
variables et de contraintes avec une grande precision ?
Reponse : L’idee serait d’utiliser la structure du probleme. Une structure favorable
permet d’utiliser l’information local sur l’objectif et les contraintes pour inferer sur une
solution globalement optimale.
Une “structure favorable” standard est celle de convexite.
- 112 -
Optimisation convexe
Probleme generale de programmation convexe
minimiser f(x) [fonction objective]sous contraintes
gj(x) ≤ 0, j = 1, ..., k [contraintes d’inegalite]x ∈ X [domaine du probleme]
(PC)
ou
— f, g1, ..., gm sont des fonctions convexes
— X ⊂ Rn est un ensemble convexe.
Remarque : il n’y a pas de contraintes d’egalite ( !)
Autrement dit, les seules contraintes d’egalite autorisees sont les contraintes lineaires
aTx − b = 0, facilement transformables en contraintes d’inegalite avec des fonctions
lineaires (donc convexes)
aTx− b ≤ 0, −aTx+ b ≤ 0.
- 113 -
Ensembles convexes : definitions
Ensemble X ⊂ Rn est dit convexe si avec tout point x, y, il contient le segment entier
qui les joint :
x, y ∈ X,λ ∈ [0,1] ⇒ (1− λ)x+ λy ∈ X.
Definition equivalente : X ∈ Rn est convexe, si X contient toute combinaison
convexe de ses elements (i.e., combinaison lineaire avec des coefficients non-negatifs
dont la somme fait 1) :
x1, ..., xk ∈ X ⇒k∑
i=1
λixi ∈ X ∀λ ≥ 0 tel quek∑
i=1
λi = 1.
Exemple : un ensemble polyedrique X = {x ∈ Rn : Ax ≤ b} est convexe. ⇒sous-espaces lineaires et affines sont des ensembles convexes.
En effet, x ∈ X, y ∈ X ⇔ Ax ≤ b, Ay ≤ b.
Alors pour tout 0 ≤ λ ≤ 1 et z = λx+ (1− λ)y,
Az = A[λx+(1−λ)y] = λAx+(1−λ)Ay ≤ λb+(1−λ)b = b ⇒ z ∈ X.
- 114 -
Fonctions convexes : definitions
Fonction f : Rn → R est dite convexe si pour tout x, y et λ ∈ [0,1],
f((1− λ)x+ λy) ≤ (1− λ)f(x) + f(λy).
Definition
f : Rn → R is convex if dom f is a convex set and
f(θx+ (1− θ)y) ≤ θf(x) + (1− θ)f(y)
for all x, y ∈ dom f , 0 ≤ θ ≤ 1
(x, f(x))
(y, f(y))
• f is concave if −f is convex
• f is strictly convex if dom f is convex and
f(θx+ (1− θ)y) < θf(x) + (1− θ)f(y)
for x, y ∈ dom f , x 6= y, 0 < θ < 1
Convex functions 3–2
f : Rn → R est dite concave si −f est convexe.
Exemples
— fonction affine ax+ b sur R est convexe (et concave)
— fonction affine aTx+ b sur Rn est convexe (et concave)
— fonction eax est convexe pour tout a ∈ R— fonction xlogx est convexe sur R+∗— fonction ‖x‖2 est convexe sur Rn
— ...
- 115 -
Epigraphe d’une fonction Soit f : Rn → R, l’ensemble
Epi f = {[x; τ ] ∈ Rn : f(x) ≤ τ}
s’appelle epigraphe de f .
Epigraph and sublevel set
α-sublevel set of f : Rn → R:
Cα = {x ∈ dom f | f(x) ≤ α}
sublevel sets of convex functions are convex (converse is false)
epigraph of f : Rn → R:
epi f = {(x, t) ∈ Rn+1 | x ∈ dom f, f(x) ≤ t}
epi f
f
f is convex if and only if epi f is a convex set
Convex functions 3–11
Definition equivalente : Une fonction f(x) : Rn → R ∪ {+∞} est convexe,
si et seulement si son epigraphe Epi f est un ensemble convexe.
Exemple La fonction lineaire par morceaux
f(x) =
maxi
[aTi x+ bi], si Px ≤ p+∞, sinon
est convexe.
En effet, l’epigraphe de f ,
Epi f = {[x; t] ∈ Rn : Px ≤ p, t ≥ aTi x+ bi, ∀i}
est un ensemble polyedrique.- 116 -
Inegalite de Jensen
Convexite :
∀λ ∈ [0,1], f((1− λ)x+ λy) ≤ (1− λ)f(x) + f(λy) (∗)Generalisation : si f est convexe, alors pour tout x et λ1, ..., λm tels que
λi ≥ 0 ∀i,m∑
i=1
λi = 1,
nous avons
f
m∑
i=1
λixi
≤
m∑
i=1
λif(xi)
(verification en utilisant la caracterisation de convexite par epigraphe).
En particulier, soit f convexe, alors
f(E(Z)) ≤ E(f(Z))
pour tout vecteur aleatoire Z sur Rn.
L’inegalite (∗) “a 2 points” correspond a cas de la loi discrete telle que
Prob{Z = x} = λ, Prob{Z = y} = 1− λ.
- 117 -
Role de la convexite
On considere le probleme minx∈X f(x) de minimisation d’une fonction f differentiablesur un domaine simple, e.g., une “boite”n-dimensionnelle
X = {x ∈ Rn : −1 ≤ xi ≤ 1, i = 1, ..., n}.• Pour f differentiable, la convexite est definie comme la propriete de f de dominer seslinearisations :
f(y) ≥ f(x) + [∇f(x)]T (y − x)
:= f(x) +∑ni=1
∂f(x)∂xi
(yi − xi) for all x, y
x
f(x)
a
- 118 -
Soit f : [−1,1]→ R.
• Si nous avons calcule f and f ′ en a ∈ [−1,1], et f ′(a) < 0⇒ a gauche de a, la linearisation de f est > f(a)
⇒ a gauche de a, f elle-meme est > f(a)
⇒ on peut reduire le domaine du probleme en eliminant tous les points < a !
• Le schema des“coupes”peut etre generalise aux problemes convexes multi-dimensionnels
(i.e., avec l’objectif et les contraintes convexes).
Remarque : la convexite de f est cruciale dans ce cas. Par exemple, en cas de la fonc-
tion f non convexe
x
f(x)
cb
l’information locale autour de c ne dit rien sur la position du minimum global et ne
permet pas d’eliminer une partie “massive” du domaine.
- 119 -
Reconnaıtre fonctions convexes I
• Critere differentiel, fonctions d’une variable
— fonction differentiable f : R→ R est convexe ssi sa derivee f ′(x) est monotone
non-decroissante : x1 ≤ x2 ⇒ f ′(x1) ≤ f ′(x2)
— fonction 2 fois differentiable f : R → R est convexe ssi sa derivee seconde
f ′′(x) est non-negative : f ′′(x) ≥ 0 ∀x ∈ R.
• Fonctions de n variables :
fonction f : Rn → R 2 fois differentiable est convexe ssi sa matrice
hessienne est semi-definie positive pour tout x : ∇2f(x) � 0, ∀x ∈ Rn
(toutes les valeurs propres de ∇2f(x) sont non negatives).
- 120 -
Exemples
• Fonction quadratique f(x) = 12xTPx+ qTx+ r avec
∇f = Px+ q, ∇2f = P,
est convexe sur Rn ssi P � 0 (P est semi-definie positive)
• Fonction quadratique-sur-lineaire
f(x, y) = x2/y,
∇f(x, y) =1
y2
[2xy−x2
],
∇2f(x, y) =2
y3
[y−x
] [y−x
]T� 0
est convexe pour x ∈ R et y > 0
Examples
quadratic function: f(x) = (1/2)xTPx+ qTx+ r (with P ∈ Sn)
∇f(x) = Px+ q, ∇2f(x) = P
convex if P � 0
least-squares objective: f(x) = ‖Ax− b‖22
∇f(x) = 2AT (Ax− b), ∇2f(x) = 2ATA
convex (for any A)
quadratic-over-linear: f(x, y) = x2/y
∇2f(x, y) =2
y3
[y−x
] [y−x
]T� 0
convex for y > 0 xyf(x
,y)
−2
0
2
0
1
20
1
2
Convex functions 3–9
- 121 -
Reconnaıtre fonctions convexes II : operations qui preservent la convexite
• multiplication par un reel non-negatif : si f est convexe, α ≥ 0, alors αf est convexe
• somme : si f1, f2 sont convexes, f1 +f2 est convexe (ainsi que α1f1 +α2f2 pour
α1, α2 ≥ 0)
• composition avec une fonction affine : si f est convexe, f(Ax+ b) l’est aussi
Exemples
— fonction ‖Ax+ b‖2— fonction
∑i exp(aTi x+ bi)
— fonction “barriere”
f(x) = −m∑
i=1
log(bi − aTi x)
definie sur Domf = {x ∈ Rn : Ax<b}— ...
- 122 -
• Maximum “point par point :” si f1, ...fm sont convexes, alors la fonction
f(x) = max{f1(x), ..., fm(x)}est convexe.
Exemples
— fonction lineaire par morceaux f(x) = maxi(aTi x + bi), et donc la fonction
(valeur absolue) |x| = max{x,−x}— la norme ‖x‖∞ = maxi |xi|— la norme ‖x‖1 =
∑ni=1 |xi|
• Supremum par point : si fα(x) est convexe en x pour tout α ∈ A, la fonction
f(x) = supα∈A
fα(x)
est convexe.
Exemple : la plus grande valeur propre λmax(A) d’une matrice symetrique A,
λmax(A) = supy: ‖y‖2=1
yTAy
- 123 -
• Superposition convexe-monotone : Soit
— gi(x) : Rn → R fonctions convexes
— F (y) : Rm → R fonction convexe et monotone non-decroissante en tout
y1, ..., ym :
y1 ≤ y2 ⇒ F (y1) ≤ F (y2)
Alors, la fonction composee (la superposition de F et g1, ..., gm)
f(x) = F (g1(x), ..., gm(x))
est convexe.
• ...
- 124 -
Illustration : soit g1, ..., gm fonctions convexes non-negatives, et soit F (y1, ..., ym) =∑mi=1 y
2i .
Fonction f(x) = F (g1(x), ..., gm(x)) =∑mi=1 g
2i (x) est-elle convexe ?
• La propriete de superposition n’est pas applicable directement, car F n’est pas mono-
tone.
• Neanmoins, sur l’orthant non-negatif Q = {y : y ≥ 0}, F est monotone, et comme
toutes les gi sont non-negatives, on peut appliquer ce resultat pour montrer que f est
convexe.
Remarque : la non-negativite des gi est importante. Le carre d’une fonction convexe
n’est pas forcement convexe.
−2 −1 0 1 2−1
−0.5
0
0.5
1
1.5
2
2.5
3
−2 −1 0 1 20
1
2
3
4
5
6
7
8
9
a gauche : x2, a droite : (x2 − 1)2
- 125 -
D’habitude, le “calcul de convexite” avec le critere differentiel suffisent pour verifier la
convexite des fonctions multi-variees.
Exemple. Soit
f(x) = log(
exp(aT1x+ b1) + ...+ exp(aTmx+ bm))
1o. Fonction lisse g(y) = log(1 + ey) : R→ R+, est convexe, avec
g′(x) =ey
1 + ey, g′′(y) =
ey
(1 + ey)2≥ 0
2o. Fonction
h(y1, y2) = log(ey1 + ey2
)= log(1 + ey1−y2) + y2 = g(y1 − y2) + y2
est convexe (transformation lineaire d’argument et somme de fonctions convexes) ⇒fonction
`(y) = log(ey1 + ...+ eym
): Rm → R+
est convexe
3o. Finalement, fonction f(x) = `(Ax + b) est convexe aussi (transformation affine
d’argument).
Et ainsi de suite...
- 126 -
Quiz : Lesquelles parmi les fonctions suivantes sont convexes ?
• ln(e2x+3y + 2ey−x)
• ln(ex2
+ ey2)
• ln(e−x2
+ ey2)
• ln(ex2
+ 2e−3x2)
• ln(ex2
+ e−x2)
- 127 -
• ln(e2x+3y+ 2ey−x) – convexe avec ln(ex1 + ex2) (substitution affine d’ar-
gument)
• ln(ex2
+ ey2) – convexe avec ln(ex1 + ex2) et x2, y2 (superposition mono-
tone, notez que ln(ex1 + ex2) est non-decroissante en x1 et x2)
• ln(e−x2
+ ey2) – non-convexe : regardez ce qui se passe quand y = 0 :
ddxf(x,0) = − 2xe−x
2
e−x2+1, et la derivee n’est pas non-decroissante en x
• ln(ex2
+ 2e−3x2) – non-convexe : d
dxf(x) = −x(6e−3x2−2ex
2)
ex2+e−3x2 , et la derivee n’est
pas non-decroissante autour de x = 0
• ln(ex2
+ e−x2) – convexe car fonction ln(es + e−s) est convexe et non-
decroissante pour s ≥ 0, et x2 est convexe et non-negative
- 128 -
Minima des fonctions convexes
Soit X ensemble convexe dans Rn, et f une fonction convexe sur Rn. On considere le
probleme d’optimisation
Opt = minx∈X
f(x)
• Tout minimiseur local x∗ de f sur X est un minimiseur global de f sur X :— si x∗ ∈ X est tel que pour un r > 0, f(x) ≥ f(x∗) pour tout x ∈ X et
‖x− x∗‖2 ≤ r,
— alors f(x) ≥ f(x∗) pour tout x ∈ X.
Soit x∗ un minimiseur local de f sur X ; et soit x 6= x∗, x ∈ X. Dans ce
cas,
f(x∗+ λ[x− x∗])− f(x∗)
λ‖x− x∗‖2≤f(x)− f(x∗)
‖x− x∗‖2pour tout λ ∈ (0,1). Comme x∗ est le minimiseur local de f , nous avons
f(x∗+ λ[x− x∗]) ≥ f(x∗) pour λ petit
⇒ le ratio a droite est non-negatif⇒ f(x) ≥ f(x∗). �
- 129 -
QuestionSoit X un ensemble convexe dans Rn, f fonction convexe, et soit x∗ ∈ Xun point tel que f est derivable en x∗. Quand est-ce que x∗ est un minimiseur
global de f sur X ?
Reponse : c’est le cas si et seulement si
∀(x ∈ X) : ∇f(x∗)T (x− x∗) ≥ 0
Optimality criterion for differentiable f0
x is optimal if and only if it is feasible and
∇f0(x)T (y − x) ≥ 0 for all feasible y
−∇f0(x)
Xx
if nonzero, ∇f0(x) defines a supporting hyperplane to feasible set X at x
Convex optimization problems 4–9
Geometriquement : X appartient au demi-espace
H = {x ∈ Rn : ∇f(x∗)Tx ≥ b := ∇f(x∗)Tx∗}.Autrement dit, le hyperplan
Π = {x ∈ Rn : ∇f(x∗)Tx = b}est “tangent” a X en x∗.
- 130 -
Necessite (seulement si) : pour tout x ∈ X et 0 ≤ λ ≤ 1, nous devons avoir
g(λ) := f(x∗+ λ(x− x∗)) ≥ f(x∗) = g(0);
ainsi
0 ≤ g′(0) = ∇f(x∗)T (x− x∗),et ceci pour tout x ∈ X.
Suffisance (si) : nous savons que, f(x) ≥ f(x∗) +∇f(x∗)T (x− x∗) pour tout x,
donc f(x) ≥ f(x∗) quand x∗ ∈ X et ∇f(x∗)T (x− x∗) ≥ 0 pour tout x ∈ X.
Remarque : Quand x∗ se trouve dans l’interieur de X (c.-a-d. que pour un r > 0
toute la boule {x : ‖x − x∗‖2 ≤ r} ⊂ X, la condition ci-dessus devient la regle de
Fermat : ∇f(x∗) = 0.
- 131 -
Fonction de Lagrange et dualite de Lagrange
On considere le probleme de programmation mathematique
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m
}(P )
• La fonction de Lagrange du probleme (P ) est la fonction
L(x, λ) := f(x) +m∑
i=1
λigi(x) : X × Rm+ → R
Remarque : quand on parle de la fonction de Lagrange,
— variable x varie dans X
— variable λ varie dans Rm+on veut que les multiplicateurs de Lagrange λ1, ..., λm soient non-negatives.
Plus generalement,
• si probleme de minimisation
— contrainte g(x) ≤ 0⇒λ correspondant est ≥ 0
— contrainte g(x) ≥ 0⇒λ correspondant est ≤ 0
• si probleme de maximisation,
— contrainte “≤”⇒λ correspondant est ≤ 0
— contrainte “≥”⇒λ correspondant est ≥ 0
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m
}(P )
L(x, λ) := f(x) +∑m
i=1 λigi(x) : X × Rm+ → R
Remarque : Nous avons deja rencontre la fonction de Lagrange dans le cas OL, ou
X = Rn, f est lineaire, et g1, ..., gm sont affines (dans le cas OL, il s’agissait d’un
programme de maximisation, tandis qu’ici on s’interesse au probleme de minimisation).
Observation : pour tout λ ≥ 0, fonction de Lagrange sous-estime f(x) en tout x
realisable. Ainsi, pour tout λ ≥ 0, la function
L(λ) = infx∈X
L(x, λ) : Rm+ → R ∪ {−∞}
satisfait L(λ) ≤ Opt(P ).
• Le probleme de programmation mathematique
Opt(D) = maxλ≥0L(λ) (D)= maxλ≥0 [infx∈XL(x, λ)]
s’appelle probleme dual de Lagrange de probleme primal (P ).
- 132 -
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m} (P )
L(x, λ) = f(x) +m∑i=1
λigi(x) : X × Rm+ → R
L(λ) = infx∈X
L(x, λ) : Rm+ → R ∪ {−∞}Opt(D) = max
λ≥0L(λ), (D)
= maxλ≥0
[infx∈X
L(x, λ)
]
[Dualite faible] : par construction,
Opt(D) ≤ Opt(P ).
Remarque : ici la convexite n’est pas importante.
• Sous hypotheses supplementaires “peu contraignantes,” dans le cas convexe,
Opt(D) = Opt(P ).
- 133 -
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m} (P )
L(x, λ) = f(x) +m∑i=1
λigi(x) : X × Rm+ → R
L(λ) = infx∈X
L(x, λ) : Rm+ → R ∪ {−∞}Opt(D) = max
λ≥0L(λ), (D)
= maxλ≥0
[infx∈X
L(x, λ)
]
Condition de Slater : (P ) admet une solution strictement realisable x, c.-a-d. telle
que x ∈ X and gi(x)< 0 pour tout i = 1, ...,m.
Condition de Slater relaxee : (P ) admet une solution realisable x dans l’interieur
de X, telle que toutes contraintes non-affines sont satisfaites comme inegalites strictes
en x.
Pour (P ) convexe, condition de Slater relaxee est plus“legere”que la condition de Slater.
- 134 -
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m} (P )
L(x, λ) = f(x) +m∑i=1
λigi(x) : X × Rm+ → R
L(λ) = infx∈X
L(x, λ) : Rm+ → R ∪ {−∞}Opt(D) = max
λ≥0L(λ), (D)
= maxλ≥0
[infx∈X
L(x, λ)
]
Theoreme de dualite de Lagrange Sous la condition de convexite de (P) et la
condition relaxee de Slater, (D) est soluble, et
Opt(D) = Opt(P )
Remarque : le probleme primal (P) peut etre aussi obtenu a partir de la fonction de
Lagrange L(x, λ) : on remarque que
L(x) = supλ≥0
L(x, λ) =
{f(x), gi(x) ≤ 0 ∀i+∞, sinon
et (P) s’ecrit de facon equivalente minx∈X{L(x) = supλ≥0L(x, λ)
}.
- 135 -
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m} (P )
L(x, λ) = f(x) +m∑i=1
λigi(x) : X × Rm+ → R
L(λ) = infx∈X
L(x, λ) : Rm+ → R ∪ {−∞}
Opt(D) = maxλ≥0
L(λ) = maxλ≥0
[infx∈X
L(x, λ)
](D)
Opt(P ) = minx∈X
L(x) = minx∈X
[supλ≥0
L(x, λ)
](P ′)
Illustration :• Soit (P) le probleme
Opt(P ) = minx∈X=[0,∞)
{f(x) =
1
1 + x: g1(x) := 20− x ≤ 0
}. (P )
Ici Opt(P ) = infx{ 11+x : x ≥ 20} = 0, mais (P ) est insoluble.
Neanmoins, le probleme est convexe et satisfait la condition de Slater. Nous avons
L(λ) = infx≥0
{1
1 + x+ λ(20− x)
}=
{0, λ = 0
−∞, λ > 0
et (D) est soluble avec solution optimale λ = 0 et valeur optimale Opt(D) = 0 =Opt(P ).
- 136 -
• Toutes les hypotheses du theoreme de dualite sont essentielles. Par exemple, le probleme
Opt(P ) = minx∈X=R
{x : g1(x) := 1
2x2 ≤ 0
}, (P )
est convexe et soluble avec Opt(P ) = 0. Il ne satisfait pas la condition de Slater.
Nous avons
L(x) = minx
{x+
λ
2x2}
=
{−∞, λ = 0− 1
2λ, λ > 0
Et nous avons (“par chance”) Opt(D) = 0 = Opt(P ), mais le probleme dual n’a pas
de solution.
- 137 -
Conditions d’optimalite en optimisation convexe
On considere le probleme
Opt(P ) = minx∈Rn
{f(x) : gj(x) ≤ 0, j = 1, ...,m
}(P )
avec f, , g1, ..., gm convexes.
Theoreme [conditions de Karush-Kuhn-Tucker] Soit x∗ une solution realisable du pro-
bleme convexe (P ), et soit f, g1, ..., gm differentiables en x∗.[i] Soit x∗ un point KKT de (P ), c.-a-d. que x∗ peut etre augmente par un λ∗ ≥ 0
pour satisfaire
• [complementarite] λ∗jgj(x∗) = 0 ∀j• [equation KKT] ∇f(x∗) +
∑mj=1 λ
∗j∇gj(x∗) = 0.
Alors, x∗ est une solution optimale de (P ) (et, au fait, λ∗ est une solution optimale de
(D)).
[ii] Supposons que, en plus, (P) satisfait la condition relaxee de Slater. Alors x∗ est une
solution de (P ) si et seulement si x∗ est un point KKT de (P).
- 138 -
Opt(P ) = minx∈X⊂Rn
{f(x) : gi(x) ≤ 0, i = 1, ...,m} (P )
L(x, λ) = f(x) +m∑i=1
λigi(x) : X × Rm+ → R
Explication, [i] – si x∗ est un point KKT et λ∗ ≥ 0 est le vecteur de multiplicateurs deLagrange associe, alors
• x∗ est admissible pour (P ), et x∗, λ∗ satisfont la condition de complementarite⇒ la fonction L(x∗, λ) de λ atteint son maximum sur λ ≥ 0 en λ∗ (pourquoi ?) etnous avons
L(x∗, λ∗) = f(x∗)
• La fonction
h(x) = f(x) +∑
i
λ∗i gi(x)
est convexe et differentiable en x∗ et satisfait ∇h(x∗) = 0⇒ la fonction h(x) = L(x, λ∗) de x atteint son minimum en x∗ et
h(x∗) = L(x∗, λ∗) = f(x∗).
Mais pour tout x realisable, f(x) ≥ h(x) ≥ h(x∗) = f(x∗).⇒x∗ est une solution optimale de (P).
- 139 -
Explication, [ii] – on doit verifier que
“si (P) est convex et satisfait la condition de Slater relaxee, f, gi sont differen-
tiables en x∗, et x∗ est une solution optimale de (P ), alors x∗ est un point
KKT de (P ).”
Soit λ∗ ≥ 0 une solution optimale du probleme dual. Par le theoreme de dualite, nous
avons ∀x ∈ Rn, λ ≥ 0,
L(x, λ∗) ≥ infxL(x, λ∗) = L(λ∗)= Opt(D) = Opt(P ) = f(x∗)= L(x∗) = supλ≥0L(x∗, λ) ≥ L(x∗, λ).
• Nous avons L(x∗, λ∗) ≥ L(λ∗) = f(x∗), et, puisque x∗ est realisable,
λ∗jgj(x∗) = 0 ∀j (complementarite)
• La fonction L(x, λ∗) = f(x) +∑j λ∗jgj(x) est convexe and differentiable en
x∗ ∈ X et atteint en x∗ son minimum.
⇒ ∇xL(x, λ∗) = ∇f(x) +∑
j
λ∗j∇gj(x) = 0.
- 140 -
Exemples
• Dualite lineaire : soit
minx{cTx : b−Ax ≤ 0} [realisable, borne]
Fonction de Lagrange L(x, λ) = cTx+ λT (b−Ax), mais
infx
[cTx+ λT (b−Ax)] =
{−∞ si c 6= ATλ
bTλ si c = ATλ
⇒ probleme dual : maxλ{bTλ : ATλ = c, λ ≥ 0
}
• Systeme lineaire, moindres carres : soit
minx{1
2xTx : Ax = b} [realisable]
Fonction de Lagrange L(x, λ) = 12xTx+ λT (Ax− b),
∇xL(x, λ) = x+ATλ, ⇒ x(λ) = −ATλ
⇒ objectif dual L(λ) = L(ATλ, λ) = −12λTAATλ− bTλ
⇒ probleme dual maxλ−12λTAATλ− bTλ
- 141 -
• Moindres carres (a nouveau) : soit minx{‖x‖2 : Ax = b}.Fonction de Lagrange L(x, λ) = ‖x‖2 − λT (Ax− b), nous avons
L(λ) = infx
[‖x‖2 − λT (Ax− b)] =
{bTλ si ‖ATλ‖2 ≤ 1−∞ sinon
⇒ probleme dual maxλ{bTλ : ‖ATλ‖2 ≤ 1}
• Optimisation quadratique : soit
minx
{12xTPx+ qTx : Ax ≤ b, Cx = d} [realisable, avec P = PT � 0]
Fonction de Lagrange L(x, λ) = 12xTPx+ qTx+ λT (Ax− b) + νT (d−Cx)),
∇xL(x, λ) = Px+ q +ATλ− CTν, x(λ) = P−1(CTν −ATλ− q)
⇒ objectif dual
L(λ) = −12(ATλ− CTν − q)TP−1(ATλ− CTν − q)− bTλ+ dTν
⇒ probleme dual
maxλ,ν
{−1
2(ATλ− CTν − q)TP−1(ATλ− CTν − q)− bTλ+ dTν : λ ≥ 0
}
ou encore maxλ,ν,t
{−1
2tTPt− bTλ+ dTν : Pt = ATλ− CTν − q, λ ≥ 0
}
- 142 -
• Probleme de repartition : soit
Opt(P ) = minx
{xTWx : x2
i = 1, i = 1, ..., n}
— probleme non-convexe, ensemble realisable contient 2n points {−1,1}n
— interpretation : repartir les elements de l’ensemble {1, ..., n} en 2 sous-
ensembles, Wij etant le cout de mettre “i” et “j” dans le meme ensemble, avec
les cout −Wij de mettre “i” et “j” dans les ensembles differents
Fonction de Lagrange L(x, λ) = xTWx+∑i λi(x
2i − 1)
⇒ objectif dual
L(λ) = infx
[xT (W + Diag(λ))x− 1Tλ
]=
{−1Tλ si W + Diag(λ) � 0−∞ sinon
⇒ probleme dual
Opt(D) = maxλ
{−1Tλ : W + Diag(λ) � 0
}
Nous avons Opt(D)≤Opt(P ).
- 143 -
Applications statistiques : regression lineaire
On suppose que les observations (bi, ai) sont liees par un modele de regression lineaire :
bi = aTi x∗+ ξi, i = 1, ...,m
ici
— x∗ ∈ Rn est le parametre vectoriel inconnu
— ξi ∈ R sont des bruits de mesure i.i.d., avec la densite pξ— en ecriture vectorielle, b = Ax∗+ ξ, ou A est la matrice avec des lignes aTi ,
i = 1, ...,m.
Estimateur de maximum de vraisemblance : on prend comme estimation de x∗une solution optimale de
maxx
`(x) =
m∑
i=1
log pξ(bi − aTi x)
- 144 -
Exemples
• Loi normale N (0, σ2) : pξ(z) = 1√2πσ
e− z2
2σ2 ,
`(x) = −m
2log(2πσ2)−
1
2σ2
m∑
i=1
(aTi x− bi)2,
et l’estimateur de ML est celui de moindres carres.
• Loi de Laplace L(τ) : pξ(z) = 12τ e−|z|τ ,
`(x) = −mlog(2τ)−1
τ
m∑
i=1
|aTi x− bi|,
et l’estimateur de ML minimise la norme `1 des residus.
• Loi uniforme U [−τ, τ ] : pξ(z) = 12τ1|z|≤τ ,
`(x) =
{−mlog(2τ) si |aTi x− bi| ≤ τ , i = 1, ...,m−∞ sinon
Pour trouver l’estimateur de ML on doit trouver x qui satisfait |aTi x − bi| ≤ τ , i =
1, ...,m.
- 145 -
Probleme des moindres carres contraints
• Dans le cas du bruit normal, on cherche l’estimateur de x∗ qui satisfait la contrainte
Cx = d. On suppose que la matrice hessienne ATA est inversible. On doit resoudre le
probleme
minx
{12(Ax− b)T (Ax− b) : Cx = d
}(P )
On remarque que le probleme dual de (P) s’ecrit
maxλ−1
2(AT b+ CTλ)T (ATA)−1(AT b+ CTλ) + λTd+ bT b, (D)
et la solution optimale (unique) de (D) peut etre calculee explicitement :
λ = (C(ATA)−1CT )−1(d− C(ATA)−1Ab).
Cela donne l’estimateur de moindres carres sous contraintes
xCLS = (ATA)−1(AT b+ CTλ)
= (ATA)−1(AT b
︸ ︷︷ ︸xLS
+CT (C(ATA)−1CT )−1(d− C(ATA)−1Ab)︸ ︷︷ ︸correction de contrainte
)
- 146 -
• Regression de “‘ridge” consiste a imposer la contrainte ‖x‖2 ≤ r sur l’estimateur de
moindres carres :
minx
{(Ax− b)T (Ax− b) : ‖x‖2 ≤ r
}(C)
ou encore, considerer un estimateur penalise, la solution de
minx
(Ax− b)T (Ax− b) + κxTx (R)
L’estimateur penalise – la solution de (R) – s’ecrit explicitement :
xR = (ATA+ κI)−1AT b.
Par ailleurs, on remarque que la fonction de Lagrange du probleme (C) s’ecrit
L(x, λ) = (Ax− b)T (Ax− b) + λ(xTx− r), x ∈ Rn, λ ≥ 0,
avec
∇xL(x, λ) = 12AT (Ax− b) + λxTx, x(λ) = (ATA+ λI)−1AT b
- 147 -
minx
{(Ax− b)T(Ax− b) : ‖x‖2 ≤ r
}(C)
Maintenant il y a deux cas :
— soit λ∗ = 0 (la contrainte correspondante n’est pas “active”), et
x0 = (ATA)−1AT b satisfait ‖x0‖2 ≤ r.
Dans ce cas l’estimateur contraint x = x0 coincide avec celui de moindres carres
ordinaires :
xLS = (ATA)−1AT b
— soit ‖x0‖2 > r, et on doit choisir λ∗ > 0 tel que ‖x(λ∗)‖2 = r, avec
l’estimateur contraint
xC = (ATA+ λ∗I)−1AT b
Estimateur de lasso [Hastie, Tibshirani, 1996]
xlasso ∈ Argminx
n∑
i=1
(bi − aTi x)2 s. c.p∑
j=1
|xj| ≤ t
ou encore,
xlasso ∈ Argminx
n∑
i=1
(bi − aTi x)2 + λp∑
j=1
|xj|
— par rapport au ridge : la penalite ‖x‖22 =∑pj=1 x
2j est remplace par
‖x‖1 =∑pj=1 |xj|
— estimateur xlasso est non-lineaire
— quand t → ∞ (λ → 0) xlasso → xls, l’estimateur des moindres carres
ordinaires
— si t → 0 (ou λ → ∞), alors xlasso → 0, mais petite valeur de t (ou grande
valeur de λ) cause certains des coefficients etre exactement zero
— Lasso est une (sorte de) procedure de selection “continue” de support de x
- 148 -
Ridge, lasso, et selection du support
• Regression ridge
xridge = argminx‖bi −Ax‖22 + λ‖x‖22
• Lasso
xlasso ∈ Argminx‖b−Ax‖22 + λ‖x‖1
• Selection du meilleur support
xsparse ∈ Argmin ‖b−Ax‖22 + λp∑
j=1
I{xj 6= 0}︸ ︷︷ ︸
“norme”‖x‖0
Ridge et (surtout) lasso sont deux alternatives “a coup numerique raisonnable” a la pro-
cedure difficile numeriquement de selection du meilleur sous-ensemble de predicteurs.
- 149 -
Ridge et LASSO dans un cas particulier
Soit n = m et A = I, une matrice identite, c.-a-d.
bi = xi + ξi, i = 1, ..., n.
• Estimateur de moindres carres : xls = argminx∑ni=1(bi − xi)2,
xlsi = bi, i = 1, . . . , n.
• Regression ridge : xridge = argminx∑ni=1(bi − xi)2 + λ
∑ni=1 x
2i ,
xridgei =
bi1 + λ
, i = 1, . . . , n.
• Lasso : xlasso ∈ Argminx∑ni=1(bi − xi)2 + λ
∑ni=1 |xi|,
xlassoi =
bi − λ/2, bi > λ/2,bi + λ/2, bi < −λ/2,0, |bi| ≤ λ/2
i = 1, . . . , n.
- 150 -
• xridge = ponderation(bi)
• xlassoi = seuillage(bi)
−1.5 −0.5 0.0 0.5 1.0 1.5
−1.
5−
0.5
0.5
1.5
Coe
ffici
ent E
stim
ate
RidgeLeast Squares
−1.5 −0.5 0.0 0.5 1.0 1.5
−1.
5−
0.5
0.5
1.5
Coe
ffici
ent E
stim
ate
LassoLeast Squares
yjyj
- 151 -
Modele de regression logistique
Exemple Donnees de l’etat de maladie coronarienne (CHD) et d’age : 100 sujets
reponse η - absence ou presence (0/1) de la CHD, predicteur ζ - age.
20 30 40 50 60 70
0.0
0.2
0.4
0.6
0.8
1.0
AGE
CH
D
- 152 -
— Regression lineaire n’est pas appropriee :
E(η|ζ = a) = P (η = 1|ζ = a) = x0 + x1a
doit etre dans [0,1], pour tout a.
— L’idee est de modeliser la relation entre p(a) = P (η = 1|ζ = a) et a en
utilisant la fonction de reponse logistique :
p(a) =ex0+x1a
1 + ex0+x1a⇔ logit{p(a)} := log
p(a)
1− p(a)= x0 + x1a.
−100 −50 0 50 100
0.0
0.2
0.4
0.6
0.8
1.0
x
y
Fonction de reponse logistique
- 153 -
Interpretation
— Il s’agit d’un cas special d’un modele lineaire generalise (GLM) avec la fonction
de lien logit :
g(E(η|ζ = a)) = x0 + x1a, g(z) = logz
1− z, 0 ≤ z < 1.
— Pourquoi logit ? Pour un a fixe, evidence, ou echelle des chances p(a)1−p(a) est na-
turellement logarithmique : d’habitude, on compte les chances comme ’10 contre
1’, ou ’2 contre 1’.
p(a) = 0.75⇒ chances d’avoir la CHD a l’age a sont 3 contre 1.
a = 0⇒
logp(0)
1− p(0)= x0 ⇔
p(0)
1− p(0)= ex0.
Ainsi ex0 peut etre interprete comme niveau de reference
(surtout si zero est dans la plage des donnees de la variable predictive) ζ.
En augmentant a de 1, on multiplie les chances par ex1. Si x1 > 0 alors
ex1 > 1 et les chances augmentent ; si x1 < 0 alors les chances diminuent.
- 154 -
Fonction de vraisemblance
• Modele et donnees : {(ηi, ai), i = 1, . . . , n}, ηi ∈ {0,1}, i.i.d.
πi = π(ai) = P (ηi = 1|ai) = E(ηi|ai) =ex0+x1ai
1 + ex0+x1ai, i = 1, . . . , n.
• Vraisemblance et log–vraisemblance a maximiser par rapport a (x0, x1) :
L(x0, x1;Dn) =n∏
i=1
πηii (1− πi)1−ηi
=n∏
i=1
(ex0+x1ai
1 + ex0+x1ai
)ηi( 1
1 + ex0+x1ai
)1−ηi
=n∏
i=1
e(x0+x1ai)ηi
1 + ex0+x1ai
log{L(x0, x1;Dn)} =n∑
i=1
ηi(x0 + x1ai)−n∑
i=1
log
{1 + ex0+x1ai
}.
Pas de solution analytique, mais une solution numerique comme solution d’un probleme
d’optimisation
minx0,x1 log{L(x0, x1;Dn)}
- 155 -
Plus generalement on considere le probleme de classification, dans lequel on observe
les couples (ai, ηi), ou ai ∈ Rn et ηi ∈ {0,1}.• On admet que les etiquettes (labels) ηi sont des realisations des v.a. independantes
de loi de Bernoulli B(pi) de parametre pi qui depend de ai ∈ Rn (lien logistique) :
pi = Prob{ηi = 1} =exp(aTi x)
1 + exp(aTi x)
ou x est le parametre a estimer a partir des observations.
• Fonction log-vraisemblance (on admet que y1 = ... = yk = 1 et yk+1 = ... =
ym = 0)
`(u, v) = log
k∏
i=1
exp(aTi x)
1 + exp(aTi x)
m∏
i=k+1
1
1 + exp(aTi x)
=k∑
i=1
aTi x−m∑
i=1
log(1 + exp(aTi x))
est concave en x.
- 156 -
Machine a vecteur de support
On considere un probleme de classification (binaire) avec les donnees (ai, `i), i =1, ...,m, ou ai ∈ Rn et `i ∈ {−1,1}.• On dit que l’echantillon admet une separation lineaire si il existe un hyperplan deseparation f(a) := aTu+ v = 0 tel que
v + aTi u ≥ 0 si `i = 1, et v + aTi u < 0 si `i = −1.
Si f(a) = 0 est un plan de separation alors un classifieur “naturel” est sign{f(a)}.
−1 0 1 2 3
−1
01
23
−1 0 1 2 3
−1
01
23
X1X1
X2
X2
Remarque : un plan de separation satisfait `i(v + uTai) ≥ 0, ∀i.- 157 -
Classifieur a marge maximale
— Si l’ensemble de donnees admet une separation lineaire, il est naturel de chercher
l’hyperplan de separation a marge maximale, c.-a-d., l’hyperplan de separation le
plus eloigne des observations.
— Probleme d’optimisation :
minu,v{
12uTu : `i(v + uTai) ≥ 1, i = 1, . . . ,m
}
= minu,v{
12uTu : Λ(1v +Au) ≥ 1
} (P0)
‖u‖−12 etant la marge de separation, Λ = Diag(`i), et A la matrice avec les
lignes aTi .
• Le probleme d’optimisation (P0) est convexe.
• On appelle egalement ce classifieur hard margin classifier (classifieur a marge dure)
- 158 -
Une reformulation
• On ecrit le probleme dual de (P0) (avec λ ≥ 0) :
L(u, v;λ) = 12uTu− λT (Λ(1v +Au)− 1),
avec
∇uL(u, v;λ) = u−ATΛλ, ⇒ u(λ) = ATΛλ,L′v(u, v;λ) = Λ1 := `, ⇒ `Tλ = 0.
⇒ probleme dual de (D0) :
maxλ{− 1
2λTΛAATΛλ+ 1Tλ : `Tλ = 0, λ ≥ 0
}
= −minλ
{12
∑mi,j=1 λiλj`i`ja
Ti aj −
∑mi=1 λi :
∑mi=1 λi`i = 0,
λi ≥ 0, ∀i
}(D0)
Proposition Soit [u∗; v∗] une solution optimale de (P0). Si λ∗ est une solution opti-
male duale, alors
u∗ = ATΛλ∗ =m∑
i=1
`iλ∗iai,
et pour tout k tel que λk > 0v∗ = `k − aTk u
∗ = `k −∑mi=1 λ
∗i `ia
Ti ak.
- 159 -
Remarques
— solution duale creuse : la condition de complementarite implique que λ∗ et
(u∗, v∗) satisfont
λ∗i{`i[a
Ti u∗+ v∗]− 1
}= 0, ∀i = 1, . . . ,m.
Autrement dit, seuls les vecteurs ai pour lesquels aTi u∗+v∗ = `i correspondent
a λ∗i > 0, les autres λ∗i sont nulls.
On appelle ces ai vecteurs de support (support vectors)
−1 0 1 2 3
−1
01
23
X1
X2
— sensibilite – une seule observation peut modifier significativement la solution.
— Et si l’hyperplan de separation n’existait pas ?
- 160 -
Classifieur “a marge douce”
— L’idee : admettre des individus mal classes – imposer une marge douce (soft
margin).
— Probleme d’optimisation
minv,u,ε
{12uTu+ C
∑mi=1 εi :
`i(v + aTi u) ≥ 1− εi,εi ≥ 0, i = 1, . . . ,m
}
= minv,u,ε{
12uTu+ C1T ε : Λ(v1 +Au) ≥ 1− ε, ε ≥ 0
}(P1)
ou ε = [ε1; . . . ; εn] est vecteur des variables d’ecart (slacks), et C ≥ 0 est
un parametre d’ajustement.
— Variable d’ecart (slack) εi nous dit ou se trouve la i-eme observation :
— εi = 0 : i-eme observation est “de bon cote” de la marge
— εi > 0 : i-eme observation viole la marge
— εi > 1 : i-eme observation est “de mauvais cote” (mal classee).
— Parametre C a choisir etablit une penalite pour la violation de la marge
- 161 -
Formulation duale
• On ecrit le dual de (P1) (avec λ, ν ≥ 0) :
L(u, v, ε;λ, ν) = 12uTu+ C1T ε− λT (Λ(1v +Au)− 1 + ε)− νT ε,
avec
∇uL(u, v, ε;λ) = u−ATΛλ ⇒ u(λ) = ATΛλ,L′v(u, v, ε;λ) = Λ1 := ` ⇒ `Tλ = 0,∇εL′v(u, v, ε;λ) = C1− λ− ν ⇒ λ+ ν = C1.
⇒ probleme dual :
minλ
{− 1
2λTΛAATΛλ+ 1Tλ : `Tλ = 0, λ, ν ≥ 0, λ+ ν = C1
},
et, en eliminant ν, on arrive a
minλ{− 1
2λTΛAATΛλ+ 1Tλ : `Tλ = 0, 0 ≤ λ ≤ C1
}(D1)
= −minλ
{12
∑mi,j=1 λiλj`i`ja
Ti aj −
∑mi=1 λi :
∑mi=1 λi`i = 0,
0 ≤ λi ≤ C, ∀i
}
- 162 -
— Avantage principal d’une fonction de penalite lineaire est que les variables de slack
disparaissent du probleme dual ;
— Si λ∗ est une solution optimale duale, alors la solution optimale primal u∗ est
donnee par u∗ = ATΛλ∗ =∑ni=1 `iλ
∗iai, avec λ∗i > 0 seulement pour les
observations i t.q.
`i(aTi u∗+ v∗) = 1− εi ≤ 1
Les ai correspondants sont les vecteurs de support dans le cas d’un classifieur a
marge douce.
Les solutions duales 0 < λ∗i < C correspondent aux vecteurs de support ai sur
les“bords de la marge”(avec εi = 0) ; si ai viole la marge (εi > 0), nous avons
λ∗i = C.
— Le classifieur
g(a) = sign{aTu∗+ v∗} = sign
{ n∑
i=1
`iλ∗iaTi a+ v∗
}.
ne necessite pas de calcule explicite de u∗, seule les produits aTi a sont utilises
⇒ on peut faire les calculs pour un n“tres grand” (l’idee du “Kernel trick”).
- 163 -