Anatoli Iouditski, LJK · x2X [domaine du probl eme] (MP) En optimisation combinatoire (ou...

175
Introduction ` a la Recherche Op´ erationnelle Anatoli Iouditski, LJK [email protected] Lien vers le cours : https://ljk.imag.fr/membres/Anatoli.Iouditski/ro-m1-ssd.htm -1-

Transcript of Anatoli Iouditski, LJK · x2X [domaine du probl eme] (MP) En optimisation combinatoire (ou...

Introduction a la Recherche Operationnelle

Anatoli Iouditski, LJK

[email protected]

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 -

1

2

3

4

1 2 3 4

x2

x1

c = [1; 1]

x(2)

2x1 + x2 = 4

x1 + 2x2 = 3

Interpretation geometrique

- 47 -

• 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 -