Vous êtes sur la page 1sur 70

Recherche oprationnelle

2009

Table des matires

I Introduction la dualit Lagrangienne

1 Introduction

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Quelques exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Problme de transport Problme de coloration

1.3 Quelques rappels - fondements et notations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Ensembles convexes, cne tangent et fonctions convexes

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Ensembles convexes, cne tangent et cne normal . . . . . . . . . . . . . . . . . . . . . . . . . .

Gnralits

2.3 Fonctions convexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


Fonctions convexes de R dans R Fonctions convexes de Rn dans R

2.4 Conditions doptimalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


Cas sans contrainte Cas avec contraintes

2.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Programmation linaire, quadratique, et non linaire

21

3.1 Programmation linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


Dfinition et premires proprits Cne normal un polydre

3.2 Programmation quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24


Dfinition et quations de KKT Le modle de Markovitz Le problme du learning

3.3 Programmation non linaire convexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28


3.4 Equations de Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4 Dualit Lagrangienne

33

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Fonction de Lagrange et problme dual dans le cas de contraintes dgalit . . 33
4.3 Dualit
pour
les
problmes
avec
contraintes
cniques gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
i

4.4 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Dual dun programme linaire Relaxation des problmes combinatoires

4.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Problmes combinatoires

43

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Arbre couvrant (minimum spanning tree) Plus court chemin (shortest path
problem) Problme daffection, problme du mariage (assignment problem)

5.2 Exactitude de la relaxation pour certains problmes combinatoires . . . . . . . . . . . 44


5.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Problme daffectation Plus court chemin

6 Scilab

49

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Prsentation Les bases

6.2 Scilab et loptimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


La fonction linpro La fonction quapro

6.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.4 Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

II Applications

61

7 Vraisemblance Empirique

63

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Thorme de Owen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

ii

Premire partie
Introduction la dualit Lagrangienne

Chapitre 1
Introduction
1.1

Introduction

La recherche oprationnelle est lapplication industrielle de la thorie de loptimisation (recherche dextrma). Elle a commenc aprs linvention de la programmation linaire par G. Dantzig dans les annes 50. Nous rencontrerons dans ce cours des problmes
de minimisation (de cot) ou de maximisation (de profit).
4

0
0

1.2

Quelques exemples

1.2.1

Problme de transport

On considre un problme courant de transport de marchandises. Des magasins (numrots de 1 n) ont une demande di pour un certain produit. On dispose dans plusieurs
entrepts (numrots de 1 m) de stocks sj . Sachant que le cot unitaire ci ,j pour transporter une marchandise dun entrept j un magasin i est donn, quelle stratgie minimise
le cot de transport tout en satisfaisant la demande ?
3

Chapitre 1
q

b
q

Entrepts

Magasins
Connections

b
q

Si on note x = (xi ,j )i ,j le vecteur des produits transports de lentrept j au magasin i ,


le problme est alors de minimiser la fonction
f (x) =

ci ,j xi ,j

i ,j

sous les contraintes :

1.2.2

xi ,j = di

X
j
xi ,j sj

xi ,j 0

Problme de coloration

On sinterresse au nombre minimum de couleurs ncessaires la coloration des sommets dun graphe sous la contrainte que deux sommets relis (directement) par une arrte
ne doivent pas avoir la mme couleur.
b
r
u
b
r

r
u

Existe-t-il une mthode rapide qui trouve srement une solution optimale ? La rponse
est non. En thorie de la complexit, on introduit plusieurs classes de problmes. Celui-ci
est N P-dur.
4

Chapitre 1
Dfinition 1.2.1. On appelle classe polynmiale (et on note P) la classe des problmes
tels quil existe un algorithme rsolvant le problme aprs un nombre doprations polynmial en les entres du problme. On appelle classe non dterministe polynmiale (et
non note N P) la classe des problmes tels quil existe un algorithme rsolvant le problme
avec une probabilit strictement positive aprs un nombre doprations polynmial en les
entres du problmes.

1.3

Quelques rappels - fondements et notations

Remarque. Maximiser la fonction f revient minimiser la fonction f . Nous ne nous


interresserons donc par la suite quaux problmes du type :
min f (x), x C

xRn

Thorme 1.3.1 (Weirstrass)


Soit C un compact de Rn et soit f : C R une fonction continue. Alors f atteint
son minimum.

Dmonstration. On note F = f (C ) et m = Inf (F ). Par dfinition de linf, il existe une suite


(xn )nN telle que f (xn ) m. De plus, C tant compact, on peut extraire de (xn )nN une
n+

sous-suite convergente (x(n) )nN . Notons x sa limite. Alors x minimise f :


m = lim f (xn ) = lim f (x(n) ) = f ( lim x(n) ) = f (x)
n

Dfinition 1.3.2 (gradient). Soit f : Rn R une fonction admettant des drives parf
f T
tielles. On appelle gradient de f et on note f le vecteur (
, ,
) .
x1
xn
Dfinition 1.3.3 (diffrentielle). Soit f : Rn R. On dit que f est diffrentiable en x0 Rn
si il existe une application linaire L(x0) L(Rn , R) telle que pour tout h Rn :
|f (x0 + h) f (x0 ) L(x0)(h)| = o(khk)
L(x0) est la diffrentielle de f en x0 . On la note en gnral df (x0 ). On peut lexprimer trs
simplement en fonction du gradient :
df (x0 )(h) = hf (x0 ), hi
Dfinition 1.3.4 (hessienne). Soit f : Rn R une fonction admettantdes drives
par
2

f
tielles secondes. On appelle hessienne de f la matrice n n : 2 f (x) =
. Si
xi xj 1i ,jn
f est une application deux fois differentiable en x0 alors on a la formule :
d 2 f (x0 )(h) = h2 f (x0 )h, i
5

Chapitre 1
Thorme 1.3.5 (Formule de Taylor)
Soit f : Rn R une fonction admettant des drives partielles secondes continues en x0 . Alors :
1
h Rn : f (x + h) = f (x) + hf (x), hi + h2 f (x)h, hi + o(khk)
2

Dfinition 1.3.6. Soit f : Rn R. On appelle courbe de niveau de f lensemble L =


{x Rn : f (x) = }.
Proposition 1.3.7
Soit f : Rn R une fonction diffrentiable. Alors f (x) est orthogonal Lf (x) .

Dmonstration.

f (x)
L

Soit d un vecteur unitaire tangent Lf (x) en x. Alors, il existe une suite (yn )n1 dlments de Lf (x) convergeant vers x telle que :
yn x
xk

d = lim

n+ kyn

De plus, en crivant la formule de Taylor lordre 1, on obtient :


f (yn ) = f (x) + hf (x), yn xi + o(khk)
En remarquant que f (yn ) = f (x), puis en divisant par kyn xk et en passant la limite
lorsque n tend vers linfini, on obtient : hf (x), d i = 0.

1.4

Exercices

Exercice 0. Soit Sn (R) lensemble des matrices symtriques relles n n et soit A Sn (R).
On rappelle que A est diagonalisable. Montrer que A est diagonalisable dans une base
orthogonale de vecteurs propres.
6

Chapitre 1
Exercice 1. Soit a Rn et soit f la fonction dfinie par :
f

: Rn R
x
7 aT x

1. Calculer f
2. Montrer que f est diffrentiable et calculer df
3. Vrifier la relation df (x)(h) =< f (x), h >
Exercice 2. Soit A Mn (R). Montrer que la fonction f dfinie ci-dessous est diffrentiable
et calculer sa diffrentielle :
f : Rn R
x
7 x T Ax
Exercice 3. Soit S2 (R) lensemble des matrices symtriques relles 2 2 et soit A S2 (R).
On pose :
f : R2 R
x
7 x T Ax
1. En utilisant lexercice 0, donner une expression simple de f dans une base convenable.
2. Discuter suivant les valeurs propres de A la forme des lignes de niveau.

Chapitre 1

Chapitre 2
Ensembles convexes, cne tangent et
fonctions convexes
2.1

Introduction

Bla bla bla. Bla. Bla bla bla ? Bla ! Bla bla bla bla bla...

ensemble de
sous-niveau
f

2.2
2.2.1

Ensembles convexes, cne tangent et cne normal


Gnralits

Dfinition 2.2.1 (Ensemble convexe). On dit que C Rn est un ensemble convexe si ds


quil contient deux lments, il contient le segment qui les relie :
(x, y ) C 2 , t [0, 1] : tx + (1 t)y C
9

Chapitre 2
Proposition 2.2.2
Soit I un ensemble dindices et (Ci )i I une famille de convexes. Alors,

Ci est

i I

un convexe.

Dfinition 2.2.3 (Cne tangent). Soit C un convexe et x C . Le cne tangent C en x


est le plus petit cne ferm contenant C {x}. Cest aussi la fermeture de {(y x), y
C , R+ }. On le note TC (x).
Rappel. K est un cne si et seulement si x K , > 0 : x K .
Dfinition 2.2.4 (Cne Polaire). Soit K un cne de Rn . Le cne polaire K est K = {v
Rn : u K , hv , ui 0}.
Dfinition 2.2.5 (Cne Normal). Soit C un convexe de Rn et x C . Le cne normal C en
x est NC (x) = TC (x) .
Remarque. En pratique, on trace les tangentes C en x et on en dduit la forme du
cne tangent. Puis, on trace les perpendiculaires aux extrmits du cne tangent pour en
dduire le cne normal.

TC (x)
x

NC (x)

Remarque. Un extraterrestre arrive en soucoupe volante S1 sur notre bonne vieille plante terre (dont la forme dcrite par toutes les thories modernes de physique est reprsente dans le dessin ci-dessous). Ayant trs faim, il va au plus court vers le premier
magasin de frites F quil voit. Comme cest un extraterrestre, il est clair quil peut passer
travers les murs. On note v1 son vecteur vitesse linstant o il arrive au milieu de la
baraque frites. De mme, un extraterrestre se pose en soucoupe S2 sur la terre et va lui
aussi au magasin de frites. Soit v2 son vecteur vitesse linstant o il arrive au milieu du
magasin. Lensemble des vecteurs vitesse possibles forme un plan. Cest le plan tangent
la surface en F . Il parat naturel de dessiner les espaces tangents colls aux surface que
lon considre malgr le fait que les plans tangents sont en fait des espaces vectoriels et
devraient plutt contenir 0. On fait la mme chose pour les cnes tangents et normaux qui
10

Chapitre 2
sont points en x au lieu de zro. Cela na pas dincidence puisque nous dessinerons
aussi le gradient de la fonction minimiser en x plutt quen zro.

Plan tangent
v1

Baraque frites

S2
v2

S1

Remarque. Pourquoi a-t-on frquemment des cnes plutt que des demi-espaces dans la
pratique ? Parce que lensemble des contraintes est de la forme C = {x Rn : g1 (x)
0, , gm (x) 0} et quil a des coins qui correspondent aux x tels que gi (x) = gj (x)
pour certain i , j.

2.3

Fonctions convexes

Dfinition 2.3.1 (Epigraphe). Soit f : Rn R. On appelle pigraphe de f lensemble


Epi (f ) = {(x, y ) Rn R : y f (x)}.
Dfinition 2.3.2 (Fonction convexe). Soit f : Rn R. On dit que f est convexe si son
pigraphe est convexe.
Proprit 2.3.3
Soit f : Rn R. Alors, f est convexe si et seulement si :
(x, y ) Rn Rn , t [0, 1] : f (tx + (1 t)y ) tf (x) + (1 t)f (y )

Dfinition 2.3.4 (Fonction strictement convexe). Soit f : Rn R. On dit que f est strictement convexe si :
(x, y ) Rn Rn , x 6= y , t ]0, 1[ : f (tx + (1 t)y ) < tf (x) + (1 t)f (y )
11

Chapitre 2

2.3.1

Fonctions convexes de R dans R

Lemme 2.3.5( des trois pentes)


Soit : R R une fonction convexe et x z y . Alors :
(z) (x)
(y ) (x)
(y ) (z)

z x
y x
y z

2
Pente 1 Pente 2 Pente 3

Dmonstration. Comme z [x, y ], il existe t [0, 1] tel que z = x + t(y x). Donc, par
convexit :
(z) (1 t)(x) + t(y )
Soit :
(z) (x) t((y ) (x))
Mais :
t=

z x
y x

On obtient donc finalement :


(y ) (x)
(z) (x)

z x
y x
Lautre ingalit sobtient de la mme manire.
Corollaire 2.3.6

Soit : R R une fonction convexe drivable. Alors : croissante


convexe.

Dmonstration. : Soit x z y . Daprs le lemme prcdent :


(y ) (x)
(z) (x)

z x
y x
12

Chapitre 2
Donc, en passant la limite lorsque z tend vers x, on obtient :

(x)
On a aussi :

(y ) (x)
y x

(y ) (x)
(y ) (z)

y x
y z

Donc, en passant la limite lorsque z tend vers y , on obtient :


(y ) (x)

(y )
y x
Finalement :

(x)

(y ) (x)

(y )
y x

: Supposons croissante. Soit x zt y , zt = (1 t)x + ty . Alors :


Z z
Z z

(z) (x) =
(u)du
(z)du = (z)(z x)
x

De mme, on a :

(y ) (z) (z)(y x)
Donc :

(z) (x)
(y ) (z)

(z)
y z
z x

Ainsi, en multipliant par y x et en remarquant que t = (z x)/(y x), on obtient :


(y ) (z)
(z) (x)

(y x) (z)
1t
t
Do lingalit de convexit recherche.
Corollaire 2.3.7

Si est C 2 , alors : 0 convexe.

2.3.2

Fonctions convexes de Rn dans R

Proposition 2.3.8( Ingalit du sous-gradient)


Soit f : Rn R une fonction convexe diffrentiable. Alors :
(x, y ) Rn Rn : f (y ) f (x) + hf (x), y xi

13

Chapitre 2
Cette proposition indique quune fonction convexe est toujours au-dessus de ses tangentes comme lillustre la figure ci-dessous :

f
y = f (x) + hf (x), y xi

x
Dmonstration. Soit x < zt < y , o zt = x + t(y x). Par convexit, on a :
tf (y ) + (1 t)f (x) f (zt )
Donc :
f (y ) f (x)

f (zt ) f (x)
t
f (x + t(y x)) f (x)
=
t
f (x) + hf (x), t(y x)i + o(ky xk) f (x)
=
t
hf (x), y xi

t0

Dfinition 2.3.9. Soit A Sn (R). On dit que A est semie-dfinie positive si pour tout
x Rn , hAx, xi 0. Comme une matrice symtrique relle est diagonalisable valeurs
propres relles, cela revient dire que la plus petite valeur propre de A est positive ou
nulle.
Dfinition 2.3.10. Soit A Sn (R). On dit que A est dfinie positive si pour tout x
Rn \{0}, hAx, xi > 0. Cest quivalent ce que la plus petite valeur propre de A soit positive.
Proposition 2.3.11
Soit f : Rn R une fonction convexe de classe C 2 (i.e. deux fois diffrentiable et
dont la diffrentielle seconde est continue). Si 2 f est semi-definie positive, alors
f est convexe.

14

Chapitre 2
Dmonstration. Soit (x, y ) R R fix. Pour t [0, 1], on note zt = tx + (1 t)y . Pour se
ramener au cas scalaire, on dfinit la fonction :
: [0, 1] R
t
7 f (zt )
Montrer la convexit de (indpendemment de x et y ) quivaut montrer la convexit

de f . Nous allons donc montrer que est deux fois drivable et que 0.

f (y )
f (zt )
f (x)
x zt y

Soit t [0, 1] et h petit. Montrons que est drivable en t et donnons lexpression de

(t) :
(t + h) (t)
h

f (zt+h ) f (zt )
h
hf (zt ), zt+h zt i o(kzt+h zt k)
+
=
h
h
hf (zt ), h(x y )i o(kh(x y )k)
+
=
h
h

hf (zt ), y xi = (t)
=

h0

De mme, montrons que est drivable et donnons lexpression de sa drive :

(t + h) (t)
h

hf (zt+h ) f (zt ), y xi
h
2
f (zt )(h)(y x), y x o(khk)
+
=
h
h

T 2
(y x) f (zt )(y x) = (t) 0
=

h0

Proposition 2.3.12
Soit f : Rn R une fonction convexe de classe C 2 (i.e. deux fois diffrentiable et
dont la diffrentielle seconde est continue). Alors, f est strictement convexe si et
seulement si 2 f est definie positive.

15

Chapitre 2

2.4

Conditions doptimalit

2.4.1

Cas sans contrainte

Thorme 2.4.1
Soit f : Rn R une fonction convexe de classe C 1 . Alors : x Rn minimise
f f (x ) = 0.

Dmonstration. : Supposons que x minimise f . Alors :


y Rn , f (x ) f (y ) = f (x ) + hf (x ), y x i + o(ky x k)
Si y 6= x, on peut crire :


y x
+ o(1) 0
f (x),
ky x k
Donc, en passant la limite, on obtient que pour tout vecteur unitaire e de Rn , hf (x ), ei
0. Quitte multiplier par un scalaire, on a :
d Rn : hf (x ), d i 0
Cest vrai en particulier pour d aussi ! Donc, il y a galit dans lingalit prcdente.
On en dduit que f (x ) = 0.
: Daprs lingalit du gradient :
y Rn : f (y ) f (x ) + hf (x ), y xi = f (x)

2.4.2

Cas avec contraintes

Thorme 2.4.2
Soit f : Rn R une fonction convexe de classe C 1 et C Rn un convexe ferm.
Alors : x minimise f sur C f (x ) NC (x ).

16

Chapitre 2

NC (x)
L
x

TC (x)

f (x )

Dmonstration. : Supposons que x minmise f sur C . Alors :


y C : f (y ) f (x )
Donc, en utilisant la formule de Taylor :
f (x ) + hf (x ), y x i + o(ky xk) f (x )
Ainsi, en divisant par ky x k et en passant la limite, on obtient que pour tout y 6= x :


y x

f (x ),
0
ky x k
Do :
> 0, y C : hf (x ), (y x )i 0
Le rsultat est alors prouv si on se rappelle que TC (x ) est la fermeture de {(y x), y
C , R+ } et que NC (x) = {v Rn : u K , hv , ui 0}.
: Supposons que f (x ) NC (x ). Soit y C , par lingalit du gradient :
f (y ) f (x) hf (x), y xi f (x)
En effet, y x TC (x) et par hypothse f (x ) NC (x ).

2.5

Exercices

Exercice 4. Dire si les ensembles suivants sont ouverts, ferms, convexes.


1. A = {(x, y , z) R3 : x + y + z = 0 et e x y 0}
2. B = {(x, y ) R2 : y < x < 2y x 2 }
17

Chapitre 2
Exercice 5.
1. Soit la forme quadratique Q(x) = x12 + 3x1 x2 + 5x22 . Cette forme peut
scrire x t Mx o M est une matrice 2 2. Donnez cette matrice.
2. Soit la matrice M donne par

0 a1 a2
1
M = a1 Q11 Q12
2
a2 Q12 Q22

(2.1)

On pose x = [x1 x2 x3 ]t et z = [x2 x3 ]t . Exprimer x t Mx laide de z.


3. Soit la fonction quadratique f (x) = x t Qx + at x. En se servant de la question prcdente, crire cette fonction comme la restriction dune forme quadratique de x
et dune variable supplmentaire introduite artificiellement que lon notera x0 par
exemple. Donner la matrice associe. Cette opration est appele homognisation
de la forme quadratique.
Exercice 6. On cherche minimiser la fonction de R2 suivante :
f (x, y ) = 2x + y
On suppose de plus que x et y sont soumis aux contraintes :
2x + 3y
x + y
x
x0 y

6
3
2
0

1. Rappeler pourquoi lensemble des contraintes est convexe.


2. Reprsenter sur un dessin les lignes de niveau de f et en dduire la solution du
problme.
Exercice 7.
1. Soit A = {(x, y ) R2 : x + y 5, y 2 et x 2}. Dcrire le cne tangent
A en (2, 2) et en (3, 2).
2. Soit B = {(x, y ) R2 : y x 2 et x y 2}. Dcrire le cne tangent B en (0, 0) et en
(1/2, 1/4).
Exercice 8. Soient f et g deux fonctions de R dans R.
1. Si chacune est convexe, la somme est-elle convexe ? la diffrence ? et le produit ?
2. Donner des conditions suffisantes simples pour lesquelles la compose g f est
convexe.
Exercice 9. Soit (fi )i I une famille de fonctions convexes sur un espace vectoriel X , indice
par un ensemble quelconque I . Montrer que la fonction f qui tout x associe la fonction
sup fi (x) est convexe.
i I

18

Chapitre 2
Exercice 10. On considre lespace vectoriel Sn des matrices carres coefficients rels et
symtriques. Il se trouve que beaucoup de problmes doptimisation moderne ont pour
variables des matrices et quil est donc intressant de considrer ces matrices comme les
variables de base pour notre calcul diffrentiel. On sait que toute matrice A Sn est diagonalisable et les valeurs propres de A sont relles.
1. Soit A Sn et soient 1 n ses valeurs propres et (e1 , ... , en ) une famille
orthonorme de vecteurs propres associs. Vrifier que :
A=

n
X

k ek ekt

k=1

2. Calculer ent Aen .


3. Prenons maintenant nimporte quel vecteur unitaire u. Montrer que u t Au n .
4. En dduire que n =

max

u t.q. kuk2 =1

u t Au.

5. On considre maintenant n comme fonction de la matrice A et on veut montrer que


cest une fonction convexe. Montrer que pour un u unitaire donn, la fonction fu qui
A associe u t Au est linaire et donc convexe.
6. Une fonction qui est dfinie par le maximum sur une famille indice de fonctions
convexes est-elle elle-mme convexe ? Si oui, en dduire que la fonction n est convexe.
Exercice 11. Soit (fi )i I une famille de fonctions convexes diffrentiables sur un espace
vectoriel X , indice par un ensemble fini I . On dfinit :
f

: X R
x 7 maxfi (x)
i I

Soit x0 X tel que le maximum nest atteint que pour un seul indice i0 (!io I :
f (x0 ) = fi0 (x0 )). Montrer que f est diffrentiable en x0 et donner son gradient en x0 . Faire
un dessin dans le cas o les fi sont affines et X = R.
Exercice 12.
1. Soit la fonction f : R2 7 R donne par f (x, y ) = xy . Cette fonction
est-elle convexe ?
2. On considre n ralisations Y1 , ... , Yn dune variable alatoire Y de loi p1 (1 , 2 ) +
p2 (2 , 2 ) et on suppose 2 connu. Donner la log-vraisemblance des observations.
Cette fonction a-t-elle intuitivement une raison de ne pas tre concave ?

19

Chapitre 2

20

Chapitre 3
Programmation linaire, quadratique,
et non linaire
3.1

Programmation linaire

3.1.1

Dfinition et premires proprits

Dfinition 3.1.1 (programmation linaire). La programmation linaire est lensemble des


problmes doptimisation du type :
minn c T x
xR

sous les contraintes :

a1T x b1
..
.
T
am
x bm

Remarque. On crit en gnral le problme de manire compacte : minn c T x, Ax b, o


xR

lingalit a lieu coordonne par coordonne.


Dfinition 3.1.2 (Forme standard dun programme linaire). Un problme de programmation
linaire est dit standard lorsquil est de la forme :
min c T x

xRn

sous les contraintes :

Ax = b
x 0

Proposition 3.1.3
Tout problme de programmation linaire peut se mettre sous forme standard.

21

Chapitre 3
Dmonstration. Plutt que de donner une dmonstration dtaille de cette proposition,
nous en donnerons les grandes lignes puis nous traiterons un exemple. Soit donn un
problme de programmation linaire :
min c T x, Ax b

xRn

Pour ajouter la contrainte x 0, on crit simplement x = x + x . Comment transformer


alors lingalit en galit ? En ajoutant des variables ! Posons :

y = b Ax 0
X = (x y )

A = (A Id )

o Id est la matrice identit de la bonne taille. Le problme est devenu :


min c T x, AX = b

xRn

Exemple. On considre le problme de programmation linaire suivant :


min 3x1 x3

xR3

sous les contraintes :

x1 + x2 + x3 = 1

x1 x2 x3 1
x1 + x3 1

x1 0, x2 0

Comme il ny a pas de restriction de signe sur x3 , on pose : x3 = y1 y2 , o y1 = x3+ 0 et

y2 = x3 0. En multipliant la deuxime ingalit par 1 et en notant x = (x1 , x2 , y1 , y2)T ,


le problme devient :
min
3x1 y1 + y2

x R4

sous les contraintes :

x1 + x2 + y1 y2 = 1

x1 x2 y1 + y2 1
x1 y1 + y2 1

x1 0, x2 0, y1 0, y2 0

Enfin, pour transformer les ingalits en galits, on introduit encore deux nouvelles va
riables positives z1 et z2 . Si on note x = (x1 , x2, y1 , y2 , z1 , z2 )T problme devient :
min 3x1 y1 + y2

x R6

sous les contraintes :

x1 + x2 + y1 y2 = 1

x1 x2 y1 + y2 + z1 = 1
x1 y1 + y2 + z2 = 1

x1 0, x2 0, y1 0, y2 0, z1 0, z2 0
22

Chapitre 3

3.1.2

Cne normal un polydre

Pour rsoudre les problmes de programmation linaire, on est amen calculer le


cne normal un polydre C = {x Rn : Ax b} en un point x de ce polydre. Nous
donnons dans ce paragraphe une expression simple du cne normal un polydre. Dans
tout le paragraphe nous considrerons un polydre de la forme C = {x Rn : Ax b}
o lingalit a lieu coordonne par coordonne. On note aj le j-ime vecteur ligne de la
matrice A de sorte que lon a : x C j J1, mK : ajT x bj . Avant dnoncer le
thorme, nous donnons une version simplifie du thorme de Hahn-Banach dont nous
aurons besoin lors de la dmonstration.
Thorme 3.1.4 (Hahn-Banach)
Soit M un cne convexe ferm de Rn et g
/ M. Alors, il existe un hyperplan
sparant g et M qui passe par lorigine. Autrement dit :

z M, hu, zi 0
n
u R /
hu, g i > 0

Dfinition 3.1.5 (Contrainte active). Une contrainte ajT x bj sera dite active en x si ajT x =
bj . On note Jx lensemble des indices des contraintes actives en x.
Thorme 3.1.6 (Caractrisation du cne normal pour les polydres)
Soit C = {x Rn : Ax b} un polydre et x C . Alors, NC (x) = {

j a j , j

jJx

0}.

Dmonstration. : Soit g =
que :

j aj et soit y C . Montrons que hg , y xi 0. On sait

jJx

j Jx : ajT x = bj
j J1, mK : ajT y bj
Donc :
j Jx : ajT (y x) 0
Do :
j Jx : j ajT (y x) 0
Finalement,
hg , y xi = h

j aj , y xi =

jJx

jJx

23

j ajT (y x) 0

Chapitre 3
Le rsultat est encore vrai en remplaant y x par v TC (x) par stabilit de lingalit prcdente par multiplication par un scalaire positif et par passage la limite. Donc,
g NC (x).
X
j aj , j 0}. Soit g
/ M. Montrons que g
/ NC (x). Daprs le
: Notons M = {
jJx

thorme de Hahn-Banach :

u R /

z M, hu, zi 0
hu, g i > 0

Posons y = x + u et montrons que lon peut choisir > 0 suffisamment petit pour que y
soit un lment de C . On sait que si j Jx , ajT u 0 car aj M. Donc :
j Jx : ajT y = ajT (x + u) = ajT x + ajT u bj + ajT u bj
Si maintenant j
/ Jx , on sait que ajT x < bj , et donc, on peut choisir tel que ajT x + ajT u
bj , et ce, indpendemment de j. Donc :
j
/ Jx : ajT y = ajT (x + u) = ajT x + ajT u bj
Finalement, y est bien un lment de C . On conclut en remarquand que :
hg , y xi = hg , ui > 0
Ainsi, g
/ NC (x).

3.2

Programmation quadratique

3.2.1

Dfinition et quations de KKT

Dfinition 3.2.1 (Programmation quadratique). La programmation quadratique est lensemble des problmes doptimisation du type :
1
minn x T Qx + q T x
xR 2
sous les contraintes :
Ax b
o Q Sn (R) et q Rn .
Remarque. On impose dans cette dfinition que la matrice Q soit symtrique. Dans le
cas gnral, on peut simplement se ramener une matrice symtrique. En effet, soit A
Mn (R), alors, comme x T Ax = (x T Ax)T = x T AT x, on a :


A + AT
T
x = x T Ax
x
2
et la matrice (A + AT )/2 est symtrique.
Remarquons aussi que la fonction maximiser tant de classe C 2 , elle est convexe si et
seulement si sa hessienne est dfinie positive cest--dire si et seulement si Q est dfinie
positive.
24

Chapitre 3

3.2.2

Le modle de Markovitz

On considre n actions dont les prix dachat linstant t sont (S1 (t), , Sn (t)). On dispose dun budget B que lon veut investir dans ces actions. Notons xi le nombre dactions
i que lon veut acheter. On veut maximiser le profit. On note f le profit.
T

S(t) = (S1 (t), , Sn (t)) , = S(t + 1) S(t), f (x) =

n
X

xi (Si (t + 1) + Si (t)) = T x

i =1

On cherche donc rsoudre :

maxn T x, S T x B, x 0
xR

Le problme est quon ne connat pas S(t + 1) ! Mais, on peut estimer la loi des accroissements S(t + 1) S(t) en se basant par exemple sur le prix des actions au cours des 15
derniers jours. Une approche naturelle mais nave consiste alors tenter de maximiser
lesprance du profit : E(f (x)) = E(T x) = E()T x. Cette approche est en fait trs risque puisque la solution consiste tout investir dans laction dont lesprance du taux
daccroissement est la plus grande. Markovitz a introduit la notion de risque. Mathmatiquement, le risque est li la variance. Plus la variance est leve, plus le risque est lev.
On dfinit le risque par :
Var T x =
=
=
=
=

E((T x E()T x)2 )


E((T x E()T x)T (T x E()T x))
E(x T ( E())( E())T x)
x T E(( E())( E()T ))x
x T Qx

o Q est la matrice de covariance des accroissements. On se fixe un rendement r . Le problme de Markovitz est alors :
min x T Qx, E()T x r , S T x B, x 0

xRn

3.2.3

Le problme du learning

On dispose dun ensemble (x1 , xn ) de points que lon peut sparer en deux sousgroupes et on cherche la meilleure droite de sparation. Comment se ramener un problme quadratique ?

+
+ ++ +
+ +
+

: wTx + b = 0

25

Chapitre 3
Le problme est donc de maximiser min d (xi , ), o est la droite dquation w T x +
b = 0. Les paramtres sont w et b.
Lemme 3.2.2
La distance dun point x la droite sexprime par la formule :
d (x, ) =

|w T x + b|
kw k

Dmonstration. Soit (x) la projection de x sur . Comme w est un vecteur normal ,


on sait quil existe un rel tel que (x) = x + w . De plus, comme (x) , on a
aussi : w T (x) + b = 0. On en dduit successivement que :
w T (x + w ) + b = 0
puis que :
=

w T x b
kw k2

Finalement :
d (x, ) = kx (x)k = kw k =

|w T x + b|
kw k

Il faut bien sr prendre en compte le fait que la droite doit sparer les deux sousgroupes ! On introduit pour cela des variables (y1 , yn ). On affecte alors la variable
yi la valeur 1 si xi appartient au premier sous-groupe, et la valeur 1 si xi appartient au
deuxime sous-groupe. On peut traduire cela simplement par :
yi = 1 w T xi + b > 0
yi = 1 w T xi + b < 0
De plus, comme les xi sont en nombre fini, on sait que le maximum sur (w , b) de
min |w T x + b| est strictement positif (on peut toujours trouver une droite sparante qui
ne touche aucun point, condition que le problme admette une solution). Donc, quitte
multiplier w et b par un scalaire, on peut imposer : min |w T x + b| = 1. En effet, si on a
trouv une solution (w , b) au problme telle que min |w T x + b| = > 0, alors (w /, b/)
est aussi solution et vrifie lgalit. Le problme de dpart est donc quivalent :
(P)

min kw k ,

(w ,b)

yi (w T xi + b) 1
min |w T xi + b| = 1

26

Chapitre 3
Lemme 3.2.3
Le problme (P) est en fait quivalent :
e
(P)

min kw k2 ,

yi (w T xi + b) 1

(w ,b)

Dmonstration. Soit i J1, nK, alors :


|w T xi + b| = |yi (w T xi + b)| 1
Donc, min |w T xi + b| 1
e Supposons que min |w T xi + b| > 1. Soit i0 un indice o
Soit (w , b) une solution de (P).
ce minimum est atteint. On pose :
b=
w

w
|w t x

i0

+ b|

, b
b=

b
|w t x

i0

+ b|

b, b
Alors, (w
b) est une meilleur solution que (w , b) ce qui est absurde. En effet, par construcb k2 < kw k2 . De plus :
tion : kw
b T xi + b
i J1, nK, |w
b| =

|w t xi + b|
|w t xi + b|
=
=1
|w t xi0 + b|
|w t xi + b|

Proposition 3.2.4
e est un problme de programmation quadratique.
(P)
Dmonstration. Posons :

xiT 1
1

 

0
2I 0

..
A=
, b = ...
, q=
, Q=
.
0
0
0
1
xiT + 1
e scrit :
Alors, le problme (P)

1
minn x T Qx + q T x ,
xR 2

27

Ax b

Chapitre 3

3.3

Programmation non linaire convexe

Dfinition 3.3.1 (Programmation non linaire). La programmation non linaire convexe est
lensemble des problmes doptimisation du type :
min f (x)

xRn

sous les contraintes :


g1 (x) = 0, , gne (x) = 0, gne +1 (x) 0, , gne +ni (x) 0
o les fonctions g1 , gne sont affines et les fonctions gne +1 , gne +ni sont convexes.
Remarque. On impose dans la dfinition que les contraintes dgalit soient ralises
pour des fonctions affines de sorte que les ensembles {x Rn : gj (x) = 0} soient convexes.
Lensemble de niveau 0 dune fonction peut tre convexe sans que la fonction soit affine
mais en pratique cest des fonctions affines que nous rencontrerons.
Thorme 3.3.2
Soit C lensemble admissible dfini par les contraintes de la dfinition, et soit
x C . On suppose quil existe u TC (x) tel que :
j Jx : hgj (x), ui < 0
On suppose de plus que la famille (g1 (x), , gne (x)) est libre. Alors, le cne
tangent C en x est :
TC (x) = {u Rn , j Jx , hgj (x), ui 0 et k J1, ne K, hu, gk (x)i = 0}

Dmonstration dans le cas sans contrainte dgalit :


: Soit u TC (x). Soit y C , on pose : zt = x + t(y x). Alors, zt C . Donc :
j Jx , gj (zt ) 0
Or,
j Jx , gj (x) = 0
Donc, pour tout t positif :
gj (zt ) gj (x)
0
t
Par Toutatis Taylor :
0

1
(gj (zt ) gj (x))
t

1
(hgj (x), zt xi + o(kzt xk))
t
t(y x)
o(t)
= hgj (x),
i+
t
t
+ hgj (x), y xi
=

t0

28

Chapitre 3
Donc, pour tout y C , pour tout 0, on a : hgj (x), (y x)i. Do le rsultat par
passage la limite.
: Soit u Rn tel que j Jx , hgj (x), ui 0.
Montrons que u TC (x). On a :
j
/ Jx , gj (x) < 0
Donc, pour j
/ Jx et tj petit, gj (x + t
u ) < 0. De plus :
j Jx , gj (x +t
u)gj (x) = gj (x), x +t
u xi+o(kx +t
uxk) = t(hgj (x), u i+o(t)/t)
Donc, pour j Jx et tj petit, gj (x + t
u ) < 0. Ainsi, en prenant t suffisament petit (par
exemple t = min tj ), x + t
u C . Do :
1
u = ((x + t
u ) x) TC (x)
t
Posons ut = u + t
u . Alors :
j Jx , hgj (x), ut i = hgj (x), ui + thgj (x), ui < 0
Donc, ut TC (x) pour la mme raison que u TC (x). De plus, TC (x) est ferm,
donc :
u = lim+ ut TC (x)
t0

Corollaire 3.3.3
Soit C lensemble admissible dfini par les contraintes de la dfinition, et soit
x C . On suppose quil existe u C tel que :
j Jx : hgj (x), ui < 0
On suppose de plus que la famille (g1 (x), , gne (x)) est libre. Alors, le cne
normal C en x est :
X
NC (x) = {
j gj (x), j Jx : tj 0}
jJx J1,ne K

3.4

Equations de Karush-Kuhn-Tucker

On considre le problme :
min f (x)

xRn

sous les contraintes :


g1 (x) = 0, , gne (x) = 0, gne +1 (x) 0, , gne +ni (x) 0
29

Chapitre 3
On note C lensemble des points admissibles pour ce problme. On suppose que le cne
normal C en x est donn par :
X
NC (x) = {
j gj (x), j Jx : tj 0}
jJx J1,ne K

Alors, on a montr que x est optimal si et seulement si :


(
X
f
(x)
+
j gj (x) = 0
(1 , , ne , ne +1 , ne +ni ) Rne Rn+i :
j Jx : j gj (x) = 0
Ces quations sont appeles quations de Karush-Kuhn-Tucker.

3.5

Exercices

Exercice 13. On cherche minimiser la fonction :


f

R2
R
(x, y ) 7 x 2 + y 2

sous la contrainte :
Max(|x|, |y |) 1
1. Ecrire le problme sous forme dun problme doptimisation convexe.
2. Rsoudre le problme.
Exercice 14. Minimiser la fonction f de R2 dans R :
f (x, y ) = 2x + y
sous les contraintes :
2x + 3y
x + y
x
x0 y

6
3
2
0

Exercice 15. Minimiser :


g (x, y ) = 20x + 10y + 3x 2 + 2y 2
sous les contraintes :
2x + y
x +y
2x + 3y
x 0 y
30

6
10
8
0

Chapitre 3
Exercice 16. Maximiser :
h(x, y ) = 8x + 4y x 2 y 2
sous les contraintes :
x +y 2
x 0 y 0

31

Chapitre 3

32

Chapitre 4
Dualit Lagrangienne
4.1

Introduction

Pour utiliser les quations de Karush-Kuhn-Tucker, il faut proposer un candidat x


et vrifier quil convient. Il faut donc une mthode simple et systmatique : la dualit.
Mme lorsque le problme est trop compliqu, la dualit va quand mme apporter des
informations non explicites dans le problme initial.

4.2

Fonction de Lagrange et problme dual dans le cas


de contraintes dgalit

Le problme que lon considre dans cette section est :


max f (x)
xX

sous les contraintes :


g1 (x) = 0, ... , gm (x) = 0
Pour simplifier lcriture, on notera g le vecteur (g1 , ... , gm )T , et C lensemble des points
admissibles. On suppose de plus que toutes les fonctions du problme sont continues et
que X est une partie de Rn .
Dfinition 4.2.1 (Fonction de Lagrange). La fonction de Lagrange associe au problme
est :
L : X Rm R
(x, )
7 f (x) + h, g (x)i
Remarque. Si on pose :
: Rn R
x

inf n L(x, ) =

33

si j : gj (x) 6= 0
f (x) sinon

Chapitre 4
Alors,
sup f (x) = sup (x) = sup inf n L(x, )
xC

xX R

xX

La dualit lagrangienne consiste regarder le problme o le sup et linf sont pris dans
lordre inverse.
Dfinition 4.2.2 (Fonction duale). La fonction duale du problme de dpart est :
: Rm R

7 sup L(x, )
xX

Proposition 4.2.3( miraculeuse)


La fonction duale est convexe.

Lemme 4.2.4
Soit (fi )i I une famille de fonctions convexes. Alors, la fonction supfi est convexe.
i I

Dmonstration du lemme 4.2.4. Commenons par remarquer que lpigraphe du sup est
gal lintersection des pigraphes. En effet :
\
(x, y )
epi (fi ) i I : y f (x) y supfi (x) (x, y ) epi (supfi ))
i I

i I

i I

On sait de plus quune intersection de convexes est convexe. Donc, lpigraphe de la fonction supfi tant convexe, le rsultat est dmontr.
i I

Dmonstration de la proposition miraculeuse. A x fix, la fonction 7 L(x, ) est linaire en


u, donc convexe. Ainsi, la fonction = supL(x, ) est convexe daprs le lemme.
xX

Thorme 4.2.5 (dualit faible)


On a :
inf () sup f (x)

Rn

g (x)=0
xX

Dmonstration. Par dfinition du lagrangien :


() = supL(x, ) sup L(x, ) = sup (f (x) + h, g (x)i) = sup f (x)
xX

g (x)=0

g (x)=0

g (x)=0

xX

xX

xX

Do le rsultat en passant linf dans lingalit prcdente.


34

Chapitre 4
Dfinition 4.2.6 (sous-gradient). Soit une fonction convexe et tel que () < . On dit
que g est un sous-gradient de en si :
, () () + h , g i
Autrement dit, lhyperplan dirig par g passant par () est en-dessous de lpigraphe de
.
Dfinition 4.2.7 (sous-diffrentiel). Soit une fonction convexe et tel que () < . Le
sous diffrentiel de en est lensemble des sous-gradients de et . On le note .

F IG . 4.1 Sous-gradient et sous-diffrentiel


Remarque. () est un convexe ferm. De plus, on a la condition doptimalit suivante :
0 () optimal
Proposition 4.2.8
Pour tout Rm , on dfinit X = {x Rn : x maximise L( , )}. Alors :
Conv g (X) ()
o Conv dsigne lenveloppe convexe ferme. Si de plus X est compact, alors il
y a galit.

Dmonstration. Supposons que X 6= . Soit x X et soit Rm . Alors :


() = supL(x, ) L(x , )
xX

= f (x ) + h, g (x)i
= f (x ) + h, g (x)i + h , g (x)i
= () + h , g (x)i.
35

Chapitre 4
Donc, g (X ) (). Do le rsultat en passant lenveloppe convexe ferme.
Si X est compact, daprs le thorme de Weirstrass, X nest jamais vide. On admettra
quil nexiste alors pas de sous-gradient qui ne soit pas dans Conv g (X).
Thorme 4.2.9 (Dualit forte)
Si minmise et que est diffrentiable en , alors, pour toute solution x du
problme primal, ( ) = f (x ). Si de plus X 6= , pour tout x X , x est
solution du problme primal.

Dmonstration. Supposons X compact pour simplifier la preuve. Alors, X 6= . Soit x


X , alors, g (x ) ( ). Mais, comme est diffrentiable en , le sous-diffrentiel est
rduit au singleton {( )}. De plus, minmise donc annule le gradient (il ny a pas
de contrainte !). On en dduit finalement que :
f (x ) ( ) = L(x , ) = f (x ) + h , g (x )i = f (x ) + h , ( )i = f (x )

4.3

Dualit pour les problmes avec contraintes


cniques gnrales

Le problme que lon considre dans cette section est :


(P)

max f (x), sous les contraintes : g (x) K


xX

o K est un cn. On notera comme dhabitude C lensemble des points admissibles. On


suppose de plus que toutes les fonctions du problme sont continues et que X est une
partie de Rn .
1. K = {0Rm } : les contraintes sont les mmes quau paragraphe prcdent !

Exemple.
2. K =

Rm

: que des contraintes dingalits.

3. K = {(0, ... , 0)} Rmk


: contraintes dingalits et contraintes dgalit.

4. K = S+
n ensemble des matrices semi-dfinies positives.
Le problme (P) est en fait clairement quivalent au problme :
e
(P)

max

(x,z)XK

f (x), sous les contraintes : g (x) = z K

On sest ramen au cas prcdent avec uniquement des contraintes dgalit ! La fonction de Lagrange est alors :
Lext (x, z, ) = f (x) + h, g (x) zi
= f (x) + h, g (x)i h, zi
36

Chapitre 4
Et donc, la fonction duale est :
ext () =

sup

Lext (x, z, )

(x,z)XK

f (x) + h, g (x)i h, zi

sup
(x,z)XK

Soit K . Alors, pour tout z K , h, g (x)i 0. Donc, sup(h, zi) = 0, o le sup


est obtenu pour z = 0 par exemple.
Soit maintenant
/ K . Par dfinition du cne polaire, il existe z K tel que le
produit scalaire h, zi est strictement ngatif. Considrons alors la suite (zn )nN dfinie
par zn = nz. Comme K est un cne, cette suite reste dans K . De plus, h, zn i +, ce
qui est bien loin du minimum de ext ! On a donc montr que :

sup f (x) + h, g (x)i si u K


ext () = xX
+
sinon

On peut donc maintenant donner les dfinitions de la fonction de Lagrange et de la fonction duale dans le cas de contraintes cniques. Ce sont les mmes quau paragraphe prcdent ! La seule diffrence est que le problme duale consiste minimiser la fonction
duale non pas sur Rm mais sur K .
Dfinition 4.3.1 (Fonction de Lagrange). La fonction de Lagrange associe au problme
(P) est :
L : X Rm R
(x, )
7 f (x) + h, g (x)i
Dfinition 4.3.2 (Fonction duale). La fonction duale du problme (P) est :
: Rm R

7 sup L(x, )
xX

En rsum :
PRIMAL

DUAL

max f (x), g (x) K


xX

min (), () = supL(x, )

xX

Thorme 4.3.3 (dualit faible)


On a :
inf () sup f (x)

g (x)=0
xX

Dmonstration. La dmonstration est la mme que celle donne page 34.


37

Chapitre 4
Remarque. En gnral, comme on la vu dans la section prcdente, nest pas diffrentiable. On a introduit un sous-diffrentiel pour gnraliser la notion de gradient.
Dans le problme sans contrainte, on a donn une condition doptimalit suffisante qui
tait 0 ( ), au lieu du bon vieux ( ) = 0. Dans le cas avec contraintes, on avait
(KKT abstrait) : ( ) NC ( ). Dans le cas non diffrentiable, cela se gnralise :
0 ( ) + NC ( ).
Thorme 4.3.4 (dualit forte)
Supposons que minimise sur K et que est diffrentiable en . Alors,
pour tout x X , f (x ) = ( ). En particulier, le problme dual est quivalent au problme primal.

Lemme 4.3.5( qui sauve)


Soit K un cne ferm et x un lment de K . Alors, NK (x) NK (0).

Dmonstration du lemme qui sauve : Soit g NK (x), alors :


y K , hg , y xi 0
Soit alors y K quelconque. On pose yn = y /n. Comme K est un cne, yn K . Donc :
n N, hg , n(yn x)i 0
Donc, en passant la limite lorsque n tend vers linfini, on obtient :
hg , y i 0
Autrement dit, g NK (0).
Dmonstration du thorme : On suppose X compact pour simplifier la preuve. On a alors :
Conv g (X ) = (). Comme est diffrentiable en , {( )} = {g (x )}. Do :
( ) NK ( )
Montrons que ( ) = f (x ). On sait dj par le thorme de dualit faible que ( )
f (x ). Lautre ingalit sobtient trs simplement en remarquant que :
( ) = f (x ) + h , g (x )i
et que, comme g (x ) NK ( ), pour tout v K , et donc en particulier pour v = 0,
on a :
hg (x ), v i 0
38

Chapitre 4

Montrons que x satisfait les contraintes i.e. g (x ) K . On sait que :


x X = {x X : y X, L(x, ) L(y , )}
Or, daprs le lemme qui sauve, NK ( ) NK (0) = (K ) = K . Mais, par optimalit
de , on a :
g (x ) NK ( )
Do le rsultat.

4.4
4.4.1

Exemples
Dual dun programme linaire

On sintresse au problme de programmation linaire introduit page 21 :


maxn c T x, Ax b
xR

La fonction duale est donne par :


L(x, ) = c T x + T (Ax b), K = Rm

Donc :

(
T b
() = sup (c + AT )T x T b =
+
xRn


si c + AT = 0Rn
sinon

Le problme dual est celui de minimiser sur K = Rm


. On cherche donc :

infm () = inf bT ,

c + AT = 0
0

(
AT = c
= inf bt ,
0

On remarque que la valeur de x nintervient pas dans la dfinition de . On peut donc


restreindre x un compact qui contient bien entendu une solution ventuelle du problme
de dpart. Si, par exemple, {x Rn : Ax b} est compact, on peut prendre X = {x Rn :
Ax b}.

4.4.2

Relaxation des problmes combinatoires

On considre les problmes du type :


(
Ax b
minn c T x,
xR
x {0; 1}n , ou x Zn , ou x Nn
39

Chapitre 4
Une faon de procder est de traiter Ax b explicitement et les contraintes combinatoires implicitement :
supc T x , Ax b
n

xX
n

avec X = {0; 1} , ou X = Z , ou X = N . Ce problme est NP-dur. Considrons le cas o


X = {0; 1}n :
L(x, ) = c T x + T (Ax b)
() = max n (c + AT )T x bT
x{0;1}

Si on note c() = c + A , alors :


() =
=

n
X

max

x{0;1}n
n
X

ci ()xi bT

i =1

max(ci (), 0) bT

i =1

Cette fonction nest pas diffrentiable loptimum en gnral. Ce nest pas tonnant
car inf est un problme simple rsoudre ( est convexe) mais le problme primal est
NP-dur. Si tait diffrentiable, on pourrait rsoudre facilement un problme NP-dur !
Remarque. On a :
() = max n
x{0;1}

n
X

ci ()xi b

i =1

= max n
x[0;1]

n
X

ci ()xi b

i =1

Cela signifie que cette relaxation ne fait pas la diffrence entre X = {0; 1}n (non convexe)
et X = [0; 1]n (convexe). Dans le chapitre 5 nous verrons quelques cas o cela na pas
dincidence.
Souvent, les problmes ont une jolie structure de type dcomposable :

A1 x b1
T
min c x,
A2 x b2
xRn

x {0; 1}n , ou x Zn , ou x Nn
avec :
(
A1 x b1
minn c T x,
xR
x {0; 1}n , ou x Zn , ou x Nn
facile rsoudre. Dans ces cas, on peut laborer une relaxation lagrangienne un peu plus
subtile :
L(x, ) = c T x + h, A2 x b2 i , X = {x Rn : A1 x b1 } {0; 1}n
La fonction duale est alors :
() = sup (c + AT2 )T x b2T
xX

Cette relaxation est plus fine que de remplacer simplement {0; 1}n par [0; 1]n comme on
la fait prcdemment.
40

Chapitre 4

4.5

Exercices

Exercice 17. On considre le problme du sac dos. Etant donns des biens de valeurs
respectives pi et de volume vi pour i = 1, ... , n, on veut rassembler les biens constituant
un butin de valeur maximale sous une contrainte de volume donn V . On se donne les
valeurs suivantes :


10
3

4
p=
et v = 1
14
4
et on prendra V = 4.

1. Donner la relaxation lagrangienne du problme.


2. Tracer la fonction duale ().
3. Donner la solution optimale duale puis proposer une solution primale.
Exercice 18. On considre le problme daffectation avec contrainte de budget. Etant
donn un ensemble de machines M et un ensemble de taches N, de mme cardinal, il faut
affecter une machine chaque tache. Le temps employ par la machine i la tache j est
de tij . Le cot de cette affectation est de cij . On ne veut pas dpasser un cot total de C . Le
but est de choisir une affectation qui dure le moins longtemps avec un cot infrieur ou
gal C .
1. une formulation de ce problme sous la forme dun problme linaire avec contraintes
binaires.
2. Proposer une relaxation lagrangienne de ce problme.
Exercice 19. On considre un ensemble de dpts N = {1, ... , n} et un ensemble de clients
M = {1, ... , m}. On suppose quil y a un cot fixe fj correspondant au fait dutiliser le
dpt j. Il y a aussi un cot de transport cij pour amener le produit du dpt j au client i .
Le problme est de dterminer quels dpts ouvrir et parmi ceux que lon va ouvrir, quel
dpt fournit quel client. Ces choix sont faits de manire minimiser le cot total.
Ce problme est souvent appel uncapacitated facility location (UFL) dans la littrature anglaise sur le sujet.
On modlise le problme en prenant pour variables les xij {0, 1} indiquant que le
client i est servi par le dpt j. On modlisera louverture du dpt j par une variable
yj {0, 1}. On suppose de plus que la demande correspondant au client i est de 1.
1. Quelle relation existe-t-il entre les xij et les yj ?
2. Donner une formulation du problme.
3. Proposer une relaxation lagrangienne.
4. On considre lexemple avec n = 5, m = 6, et avec la matrice des cots de transport :

4
6 4 3 2 1 3
8
2 10 2 0 8 2

C =
1 2 4 4 6 4 et f = 11
7
3 6 1 1 2 8
5
5 1 3 4 5 1
41

Chapitre 4
5. Calculer la valeur de () pour = [5, 6, 3, 2, 6, 4]t .
6. Pour quel x obtient-on cette valeur ?
7. Comment modifier x pour obtenir une solution primale peu prs satisfaisante ?

4.6

Correction des exercices

La fonction maximiser est :


f (x) =

ci ,j xi ,j

i ,j

y j fj

sous les contraintes :


x {0; 1}mn , y {0, 1}m
i , j : xi ,j yj
X
i :
xi ,j = 1
j

La fonction de Lagrange est donc :


L(x, ) =

ci ,j xi ,j

i ,j

X X
j

y j fj +

X
i

(i ci ,j )xi ,j yj fj

42

xi ,j 1

X
i

Chapitre 5
Problmes combinatoires
5.1

Introduction

Commenons par prsenter rapidement quelques exemples de problmes combinatoires. Cette liste nest bien sr pas exhaustive, on pourra par exemple citer le problme
de coloration mais aussi les problmes du max cut, vertex cover, independence set...

5.1.1

Arbre couvrant (minimum spanning tree)


b
b

j
b

cij
b

i
b

b
b

On considre un graphe poids (verts ou rouges). On veut relier les noeuds de manire la plus conomique possible sous la contrainte que tous les noeuds du graphe soient
relis (indirectement) entre eux. On peut penser par exemple un rseau dgots. On
cherche donc construire ce quon appelle un arbre couvrant de poids minimal, cest-dire un sous-graphe tel quil nexiste pas de boucle et dont tous les noeuds sont relis.
Cest le problme du minimum spanning tree.

5.1.2

Plus court chemin (shortest path problem)

On considre un graphe poids et deux noeuds i et j de ce graphe. Le problme du


plus court chemin est celui de trouver un chemin allant de i j de poids minimal. Cest un
problme trs frquent quon retrouve par exemple dans les rseaux informatique. Dans
la littrature on le retrouve sous le doux nom de shortest path problem.
43

Chapitre 5

5.1.3

Problme daffection, problme du mariage (assignment problem)


b

personnes

missions

On considre un graphe biparti : les noeuds sont sparables en deux sous-ensembles


et les artes ne peuvent joindre que des noeuds de sous-ensembles diffrents. Ce genre
de situations arrive par exemple quand on souhaite affecter des quipages davion des
trajets, ou encore des tches des machines. Chaque arte a un poids et il faut trouver
un ensemble dartes non adjacentes de poids minimal tel que toutes les personnes soient
employes ou toutes les tches soient effectues suivant quil y a plus de personnes que
de missions ou le contraire. On appelle ce problme assignment problem, ou matching
problem dans le cas o il y a autant de personnes que de missions.

5.2

Exactitude de la relaxation pour certains problmes


combinatoires

On considre le problme :
(
Ax b K
maxn c T x,
xR
x {0; 1}n ou x Zn
o K = {0}ne Rni . La question est de savoir quand est-ce que la relaxation prsente au chapitre 4 donne la bonne solution. On cherche donc dans quelles situations la
relaxation de {0; 1}n en [0; 1]n (ou de Zn en Rn ) ne change pas le problme.

Dfinition 5.2.1 (totale unimodularit). Une matrice est dite totalement unimodulaire si et
seulement si tous ses mineurs (i.e. les dterminants de ses sous-matrices carres) valent
tous 1, 0 ou 1.
44

Chapitre 5
Rappel (Formule de Cramer). Si A Mn (R) est une matrice inversible et si b Rn , alors, la
solution du systme Ax = b est donne par :
i J1, nK : xi =

det Ai ,b
det A

o Ai ,b est la matrice dont les colonnes sont celles de A sauf la i -me qui a t remplace
par b.
Thorme 5.2.2
Soit A une matrice totalement unimodulaire. Alors, la solution (si elle existe et si
elle est finie) du problme :
maxn c T x, Ax b K , b Zn
xR

est entire.

Dmonstration. Soit x optimal. Il vrifie donc les quations de KKT. Rappelons que lon a
not Jx lensemble des contraintes actives en x . On a alors :
X
j aj , j Jne + 1, ne + ni K : j 0}
c N{AxbK } (x ) = {
jJx

On notera dans la suite (a1 , , an ) les lignes de la matrice A.


Supposons dans un premier temps que |Jx | = n et que la famille (a1 , , an ) est libre.
Alors :
j Jx : ajT x bj = 0
Donc, en utilisant la formule de Cramer, x est coordonnes entires.
Si la famille (a1 , , an ) est lie, on limine un vecteur (notons-le ai0 ) qui est combinaison
linaire des autres. Soit alors v KerAi0 (Ai0 est la matrice A laquelle on a retir la i0 ime ligne). Deux cas se prsentent :
{x + tv , t Rn } {Ax b K }. Dans ce cas, {Ax b K } nest pas born ce qui
est absurde.
j Jx , t R : ajT (x + tv ) bj = 0. On intgre alors cet indice la famille des ai
et on recommence jusqu ce que |Jx | = n et que (a1 , , an ) soit libre.
Dfinition 5.2.3 (matrice dincidence dun graphe). Soit G un graphe dont les noeuds sont
numrots de 1 n et les artes de 1 m. La matrice dincidence de G est la matrice n m
indicie par les noeuds sur les lignes et les artes sur les colonnes et dont lindice i , j vaut
1 si larte j est relie au noeud i . Dans le cas de graphes orients, la matrice dincidence
est construite de la mme manire sauf que lindice i , j vaut 1 si larte j part du noeud
i et 1 si larte j arrive au noeud i .
45

Chapitre 5
Thorme 5.2.4
Soit G un graphe et A sa matrice dincidence. Alors, A est totalement unimodulaire si et seulement si G est biparti.

Thorme 5.2.5
Soit G un graphe orient et A sa matrice dincidence. Alors, A est totalement
unimodulaire.
Dmonstration. On procde par rcurrence sur la taille des sous-matrices carres de A :
Les mineurs de taille 1 dune matrice dincidence valent videmment 1, 0 ou 1 puisquune matrice dincidence nest compose que de 1, de 0 et de 1.
Supposons le rsultat vrai pour les mineurs de taille k k et soit M une sous-matrice de
A de taille (k + 1) (k + 1). Trois cas se prsentent :
Toutes les colonnes de M contiennent un 1 et un 1. Alors :
(1, , 1)M = 0
Donc, M nest pas inversible. Ainsi, det M = 0.
Il existe une colonne de M qui est nulle. Alors, det M = 0.
Il existe dans M une colonne o il y a un 1 ou un 1 et que des zros. En dveloppant
par rapport cette colonne, le rsultat est encore vrai par hypothse de rcurrence.

5.3
5.3.1

Exemples
Problme daffectation

On suppose ici quil y a plus de missions que de personnes pour fixer les ides. On
rappelle que le problme est alors :
X

xi ,j 1 (chacun a un job)

X
j
X
min
ci ,j xi ,j ,

xi ,j = 1
(chaque job nest fait quune seule fois)

i ,j

o on a not :

(
1 si on choisit larte (i , j)
xi ,j =
0 sinon

Si on note A la matrice dincidence du graphe o les ne premires lignes correspondent aux


personnes et les ni suivantes aux jobs, alors on peut rcrire le problme sous la forme :
min c T x , Ax (1, , 1)T K = {0; 1}ne Rni , x 0
Comme A est totalementX
unimodulaire, les solutions ventuelles sont entires. De plus,
n
x {0; 1} car la somme
ci ,j xi ,j est minimale et les ci ,j sont positifs.
46

Chapitre 5

5.3.2

Plus court chemin

On reprend le problme du plus court chemin introduit page 43. On note A la matrice
dincidence du graphe orient o le premier noeud est i et le dernier est j. Le problme
scrit alors :
X
min
ci ,j xi ,j , Ax = (1, 0, , 0, 1)T , x 0
i ,j

Comme la matrice A est totalement unimodulaire, comme prcdemment, les solutions


ventuelles sont entires et x {0; 1}n car les ci ,j sont positifs.

47

Chapitre 5

48

Chapitre 6
Scilab
6.1

Introduction

6.1.1

Prsentation

Scilab est un logiciel de calcul numrique. Il a t dvelopp par des chercheurs de


lINRIA (Institut National De Recherche en Informatique et en Automatique) et de lENPC
(Ecole Nationale des Ponts et Chausses) depuis 1990. Depuis 2003 il est dvelopp et
maintenu par lINRIA. Scilab est un logiciel semi-libre : son code source est disponible
gratuitement mais sa licence nautorise pas la distribution commerciale dune version
modifie. Scilab est bien sr multiplateforme. Il fonctionne aussi bien sous Linux, Mac
OS ou Windows. Il est disponible au tlchargement sur www.scilab.org et sur les dpts
officiels de nombreuses distributions linux.

6.1.2

Les bases

Pour faire de loptimisation avec Scilab, il suffit de connatre quelques commandes de


base. Pour vous familiariser avec la bte, essayez donc dentrer ces quelques commandes :
-->
-->
-->
-->
-->

2+2
a=2
a=a+1
a=a+1;
a

Un des atouts de Scilab est la simplicit de lcriture matricielle. Une matrice scrit
avec des crochets. Un changement de colonne est dclar avec un espace ou une virgule,
et un changement de ligne avec un point virgule. Lcriture de matrice par bloc est alors
trs aise :
-->
-->
-->
-->
-->

A=[1 2 ; 3 4]
B=[-1 -4 ; 6 -2]
C=[A B]
D=[A ; B]
E=D
49

Chapitre 6
Pour accder un lment dans une matrice, on utilise des parenthses. Lextraction
dun bloc est aussi une opration des plus simples :
-->
-->
-->
-->
-->

A(1,2)
A(1,$)
A(1,2)=8
A(:,1)
C(:,3:4)

Comme tous les langages de programmation, Scilab offre la possibilit deffectuer des
boucles, du conditionnement... Voici un exemple simple :
--> res=[]
--> for k=-1:0.2:2
-->
if k>0 then
-->
res=[res ; k+1]
-->
else
-->
res=[res ; k/2]
-->
end
--> end
Notez au passage que lindentation nest pas obligatoire. Cependant elle est conseille
car elle rend vos programmes beaucoup plus lisibles. Si vous voulez enregistrer votre travail, vous pouvez utiliser lditeur Scipad en cliquant sur le bouton Editor. Maintenant,
crivons une fonction. Pour cela, dmarrez Scipad et crivez :
//Ceci est un commentaire
function [x,y]=mafonction(a,b)
x=a+b
y=a*b
endfunction
Enregistrez votre travail et cliquez sur Execute -> Load into Scilab. Vous pouvez maintenant utiliser votre fonction depuis Scilab en lappelant par son petit nom :
--> [somme,produit]=mafonction(2,3)
Avant den finir avec ce paragraphe dintroduction, donnons une liste (non exhaustive) de quelques fonctions qui sont trs utiles :
help
help topic
size(A)
plot2d(x,y)
ones(n,m)
zeros(n,m)
eye(n,m)

affiche laide
affiche laide relative topic
donne la taille de la matrice A.
trace une ligne brise.
matrice n m remplie de 1.
matrice n m remplie de 0.
matrice n m avec des 1 sur la diagonale (0 ailleurs).
50

Chapitre 6

6.2

Scilab et loptimisation

6.2.1

La fonction linpro

Scilab dispose de la fonction linpro pour rsoudre les problmes de programmation


linaire. Elle peut tre appele de plusieurs manires selon ce quon cherche rsoudre.
Par exemple :
[s,lagr,fs]=linpro(c,C,rhs)
rsout le problme de programmation linaire :
min c T x, sous la contrainte : Cx rhs
x

Notez quil est inutile de spcifier Scilab la dimension du problme, les donnes la rendant implicite. Le rsultat renvoy est un vecteur. La premire coordonne de ce vecteur
est une solution du problme. La deuxime est le vecteur des multiplicateurs de Lagrange
correspondant. Enfin, la troisime est la valeur de la fonction minimiser en ce point.
Bien que lon puisse crire tous les problmes de programmation linaire sous cette
forme, pour simplifier lutilisation de la fonction linpro il est possible dajouter des paramtres. Ainsi, si on veut entrer p contraintes dgalit, une borne infrieure (lb) et une
borne suprieure (ub), le problme scrit :

C (j, :)x = rhs si j p


T
min c x, sous les contraintes : C (j, :)x rhs sinon
x

lb x ub
et se rsout avec Scilab de cette faon :

[s,lagr,fs]=linpro(c,C,b,lb,ub,p)
o on aura bien pris soin dcrire les contraintes dgalit dans les p premires lignes
de la matrice C . Il peut arriver quil y ait une borne infrieure mais pas de borne suprieure (ou le contraire). On peut dans ce cas donner pour ub un tableau vide ([]). Si il y
a une borne suprieure qui ne porte pas sur toutes les coordonnes de x on peut donner comme borne suprieure + pour ces composantes (en utilisant au choix %inf ou
number_properties(huge)). Pour aller plus loin, consultez laide de la fonction linpro en
tapant sous Scilab :
--> help linpro

6.2.2

La fonction quapro

La fonction quapro sutilise de la mme manire que la fonction linpro. Elle prend en
argument un lment de plus : la matrice de la forme quadratique. Ainsi, pour rsoudre
le problme de programmation quadratique suivant :


1 T
T
min
x Qx + q x
sous la contrainte : Cx rhs
x
2
on crit :
51

Chapitre 6
[s,lagr,fs]=quapro(Q,q,C,rhs)
On peut ajouter des arguments supplmentaires exactement de la mme manire quavec
la fonction linpro. Pour aller plus loin, consultez laide de Scilab :
--> help quapro

6.3

Exercices

Utilisation de la fonction linpro


Rsoudre les exercices suivants en utilisant la fonction LINPRO de Scilab
Exercice 20. On reprend lexercice 6 introduit page 18. On cherche minimiser la fonction
de R2 suivante :
f (x, y ) = 2x + y
On suppose de plus que x et y sont soumis aux contraintes :
2x + 3y
x + y
x
x0 y

6
3
2
0

Exercice 21. Une entreprise doit transporter du beurre de cacahute entre trois dpts D1 ,
D2 et D3 et trois magasins M1 , M2 et M3 . Chaque dpt a une quantit limite de marchandise, chaque destination une demande, et le cot unitaire pour transporter un camion de
beurre de cacahute varie suivant le dpt et le magasin. On rsume tout dans le tableau
ci-dessous (la dernire colonne reprsente le cot unitaire) :
Dpt Quantit disponible
D1
35
D2
40
D3
40

Magasin
M1
M2
M3

Demande
45
50
15


D1
D2
D3

M1
5
20
5

M2
10
30
8

M3
10
20
12

Exercice 22. Un bcheron a 100 hectares de bois de feuillus. Couper un hectare de bois
et laisser la zone se rgnrer naturellement cote 10 k$ par hectares, et rapporte 50 k$.
Alternativement, couper un hectare de bois, et replanter avec des pins cote 50 k$ par
hectares, et rapporte terme 120 k$. Sachant que le bcheron na que 4000 k$ en caisse au
dbut de lopration, dterminer la meilleure stratgie adopter et le profit escomptable.
Exercice 23. Trois machines M1 , M2 et M3 peuvent produire chacune deux types de pices
P1 et P2 . Le temps de fabrication dun pice Pi sur la machine Mj est donn comme suit :
(temps de fab. de P1 ) sur M1 : 3h , sur M2 : 4h sur M3 : 4h
(temps de fab. de P2 ) sur M1 : 4h , sur M2 : 6h sur M3 : 5h
On veut fabriquer au moindre cot 6 pices de type P1 et 8 pices de type P2 . La
machine M1 est disponible 14 heures et les machines M2 et M3 sont disponibles chacune
24 heures. Le cout horaire de M1 est 7, celui de M2 est 5 et celui de M3 est 6.
52

Chapitre 6

Rgression linaire, rgression ridge, LASSO


Exercice 24 (Rappels sur la rgression linaire). On se propose dtudier un problme de
rgression a priori intraitable. La variable observe est Y et on souhaite expliquer cette
variable par un ensemble de co-variables X1 ,. . . ,Xp . Le modle linaire est donc
Y = a0 + a1 X1 + + ap Xp +

(6.1)

o est une variable gaussienne valeurs dans R N (0, 2). Il sagit donc destimer les
coefficients rels a0 , a1 , . . . , ap . Pour cela, on effectue plusieurs mesures et on obtient autant
de variables que dexpriences ralises, cest dire
Yi = a0 + a1 Xi ,1 + + ap Xi ,p + i

i = 1, ... , n.

(6.2)

Afin dutiliser lcriture matricielle, on note Y = [Y1 , ... , Yn ]t , = [1 , ... , n ]t et X =


[(Xij )i =1,...,n j=0,...,p ] avec Xi ,0 = 1 quelque soit i et on oublie lancien Y et lancien dont
on ne se resservira plus par la suite car ce qui nous interesse est videmment destimer
les a0 , a1, ... , ap . Les quations (6.2) deviennent alors avec ces notations
Y = X a + .

(6.3)

1. Rappeler la formule donnant lestimateur au sens des moindres carrs


2. Cet estimateur au sens des moindres carrs est solution du problme doptimisation
min kY Xak22

aRp+1

(6.4)

o k k2 dnote la norme euclidienne. Calculer la matrice hessienne de cette fonction


minimiser. Ce problme doptimisation est-il convexe ? Pouvez vous retrouver la
formule de lestimateur au sens des moindres carrs en rsolvant ce problme doptimisation ?
Le problme que lon souhaite aborder aprs ces rappels est celui de trouver les
coefficients a0 , ... , ap dans le cas o p n voire bien plus grand que n. Ce cas arrive
en fait trs souvent en pratique et est donc impossible traiter par la minimisation
de (6.4) car la matrice hessienne est dans ce cas dgnre, cest dire que son noyau
est non rduit {0}.
3. Pourquoi cette dernire remarque est-elle vraie ? Combien ya-t-il de solution dans
ce cas au problme (6.4) ?
Exercice 25 (Rgression Ridge). Pour parer au problme soulev dans lexercice prcdent,
deux approches sont possibles. La premire sappelle la ridge regression et consiste
chercher a comme le vecteur qui minimise
min kY Xak22 + kak22 .

aRp+1

(6.5)

1. Ce problme est-il convexe ? admet-il une solution unique ?


2. Implanter cette solution laide de la fonction quapro pour les donnes detroit
qui donnent le nombre dhomicides en fonction de divers parametres dans la ville
de Detroit de 1961 1970. Faites varier le paramtre et affichez sur la mme figure
lvolution jointe des composantes de a en fonction de .
53

Chapitre 6
Exercice 26 (Mthode du LASSO). Une autre approche pour le problme prcdent consiste
utiliser le LASSO, une technique dont le succs est due ltude mathmatique et la
promotion ultrieure quen a fait Robert Tibshirani de luniversit de Stanford en Californie. Cette mthode consiste remplacer la pnalisation quadratique par une pnalisation
utilisant la norme l1 du vecteur a, et revient donc rsoudre le problme
min kY Xak22 + kak1 .

aRp+1

(6.6)

1. Montrer de manire intuitive que ce problme peut se mettre sous la forme

min kY

a, uRp+1

Xak22

p
X

uk sous les contraintes uk ak uk k = 1, ... , p. (6.7)

k=1

2. Implanter cette solution laide de la fonction quapro pour les donnes detroit
qui donnent le nombre dhomicides en fonction de divers parametres dans la ville
de Detroit de 1961 1970. Faites varier le paramtre et affichez sur la mme figure
lvolution jointe des composantes de a en fonction de .

Remarque. partir dune valeur assez grande de , certaines composantes de a deviennent nulles. Ainsi, la mthode effectue un choix automatique des variables importante pour expliquer le phnomne observ. On rsout alors ce quon appelle la question
du choix de modle dune manire globale. Ltude thorique de cette mthode est actuellement en pleine effervescence (voir par exemple http ://www.acm.caltech.edu/ emmanuel/papers/LassoPredict.pdf parmi plein dautres). Cette technique est aussi extrment
utlise pour la dtection des groupes de gnes important pour une maladie spcifique tudie mais dans ce cas, le modle introduit nest plus une rgression linaire mais une rgression logistique, ce qui donne un problme doptimisation un peu plus compliqu ! Un
article intressant ce sujet est http ://www-stat.stanford.edu/ hastie/Papers/JRSSB.69.4%20(2007)%20
677%20Park.pdf parmi une tonne dautres bien sr.

Support Vector Machines linaires pour la classification


Le problme des Support Vector Machines a t introduit dans la section 3.2.3 la
page 25. Le problme tait alors de trouver le meilleur hyperplan de sparation de deux
groupes de points. On a alors introduit des variables yi et pos yi = 1 si xi est dans le
premier groupe de points et yi = 1 sinon. Dans le cas o les donnes sont sparables,
on a vu quun hyperplan dquation aT x + b = 0 tait optimal si et seulement si (a, b)
rsolvait le problme quadratique suivant :
min kak2 ,
(a,b)

i : yi (aT xi + b) 1
54

Chapitre 6

+
+ ++ +
+ +
+

: aT x + b = 0

On va gnrer des donnes artificiellement. On tire pour cela 10 vecteurs gaussien


bidimensionnels desprance le vecteur (0; 0) et de variance lidentit et 10 vecteurs gaussien bidimensionnels galement desprance (10, 5) et de variance 2 fois lidentit. Sous
Scilab, la fonction pour tirer ces points au hasard est grand avec loption mn comme multivariate normal.
1. Reprsentez les points tirs dans le plan laide de la fonction plot2d. Les deux
groupes de points sont-ils bien sparables ? Si non, recommencez lopration jusqu
ce que a le soit ! Cela ne sera pas trop long. Enfin, jespre ...
2. Rsolvez le problme de sparation pour ces donnes artificielles.
3. Tracez la droite de sparation optimale que vous avez trouve.
4. Simulez une centaine de nouveaux vecteurs gaussiens avec les mmes paramtres.
Combien sont mal classs ?

Support Vector Machines avec dbordement


Le gros problme avec la recherche dun hyperplan sparateur est que souvent, les
donnes ne sont tout simplement pas sparables ! il ny a alors pas de solution au problme du learning (vu page 25). Une faon raisonnable de gnraliser le problme est la
suivante : au lieu dimposer une marge suprieure ou gale 1, on peut autoriser quelle
soit suprieure (1 i ) pour chaque observation i J1, mK, avec i le plus petit possible
tout en restant suprieur ou gal zro. Si les donnes sont sparables, on pourra donc
prendre tous les i = 0 nuls. Cela peut se mettre sous la forme :

i J1, mK : yi (at xi + b) 1 i
2
2
min
kak2 + kk2, sous les contraintes
0
(a,b,)Rn RRm
Dans cet exercice nous allons utiliser des donnes bla bla bla...
1. Expliquer pourquoi effectivement ce problme est quivalent au problme du learning dans le cas de donnes sparables.
2. Implmenter cette mthode pour les donnes de cancer du sein o les colonnes correspondent aux variables 1. Sample code number (id number), 2. Clump Thickness
(1 - 10), 3. Uniformity of Cell Size (1 - 10) 4. Uniformity of Cell Shape (1 - 10) 5. Marginal Adhesion (1 - 10), 6. Single Epithelial Cell Size (1 - 10), 7. Bare Nuclei (1 - 10),
55

Chapitre 6
8. Bland Chromatin (1 - 10), 9. Normal Nucleoli (1 - 10), 10. Mitoses (1 - 10), 11. Class
(2 for benign, 4 for malignant).
Les deux classes identifier sont les tumeurs benignes et les malignes (dernire
variable).
3. Enlever quelques donnes (une dizaine) de la base puis construire lhyperplan sur
les donnes restantes. Combien sont mal classes ?
4. Une mthode systmatique dtude consiste en le fait denlever une donne, de calculer lhyperplan et de voir si cette donne est oui ou non bien classe et de recommencer en tirant chaque fois une donne diffrente. Cela sappelle la validation
croise. Implmenter cette mthode. Quel pourcentage de mauvais classement obtenez vous ?

6.4

Correction des exercices

Support Vector Machines linaires pour la classification


On commence par gnrer des ralisations de vecteurs gaussiens avec les donnes de
lnonc. Attention ! On ne veut pas avoir de nouvelles ralisations chaque excution du
programme ! Veillez donc faire cette manipulation sous Scilab directement et pas sous
Scipad.
--> groupe1 = grand(10,mn,[0;0],eye(2,2));
--> groupe2 = grand(10,mn,[10;5],2*eye(2,2));
Pour vrifier que les donnes obtenues sont bien sparables, on utilise la fonction plot2d.
On ajoute un troisime argument pour changer le style du graphique. En effet, on ne
veut pas dessiner des lignes brises mais bien un nuage de point. Il faut pour cela donner
un entier ngatif.
--> plot2d(groupe1(1,:) , groupe1(2,:) , -1)
--> plot2d(groupe2(1,:) , groupe2(2,:) , -2)
La droite de sparation recherche a pour quation : aT x + b = 0. Si on note z le
vecteur (a, b) R3 , on a vu (cf page 27) que le problme rsoudre pouvait scrire :
1
min3 z T Qz + q T z ,
zR 2
o :

Cx rhs


xiT 1
2 0 0
0

..
Q= 0 2 0 , q= 0 , C =
, rhs =
.
0 0 0
0
xiT + 1

1
..
.
1

Il ne nous reste alors plus qu crire ces matrices en Scilab et la fonction quapro fera le
reste.
56

Chapitre 6
-->
-->
-->
-->
-->
-->
-->

Q = [2 0 0 ; 0 2 0 ; 0 0 0]
q = zeros(3,1)
C = [-groupe1 -ones(10,1) ; groupe2 ones(10,1)]
rhs = -ones(20,1)
[z,lagr,fz] = quapro(Q,q,C,rhs)
a = z(1:2)
b = z(3)

Et voil ! Un simple plot2d permet de se convaincre que le rsultat donn par Scilab est
correct. Amusons-nous maintenant regarder ce quil se passe si on effectue dautres
tirages alatoires : sont-ils bien classs ?
--> u=grand(50,mn,[0;0],eye(2,2));
--> v=grand(50,mn,[10;5],2*eye(2,2));
--> length(find(a*u+b>0))+length(find(a*u+b<0))

Support Vector Machines avec dbordement


La principale difficult de cet exercice est, comme souvent avec Scilab, dcrire le problme sous forme standard, i.e. sous la forme :

1 T
Cx rhs
T
min ( x Qx + q x), sous les contraintes
k
lb x ub
xR 2
Il sagit donc de trouver la matrice Q, le vecteur q, la matrice de contraintes C , le vecteur
rhs ainsi que les vecteurs lb et ub. Une fois les donnes spares en deux sous-groupes, si
on note n1 le nombre dlments dans le premier groupe et n2 le nombre dlments dans
le second, on peut crire :

2
0
1n
.
..

..

.

..
0
Q() =
, q = . , lb =

..

.
.

..
.
.
.

..
0
0
2

x1T
..
.

1
..
.

xnT
1
1
C =
x T
1
n1 +1

..
..

.
.
xnT1 +n2 1

0
..
.
0

1
0
..
..
..
.
.
.
.

1 0 ... 0
.
, rhs = .

... 0 1
..

..
..

.
.
..
... 0
1
1
0
..
.

...

o 1n est le vecteur (1, ... , 1)T Rn et o on a not (x1T , ... , xnT1 ) les lignes de groupe1 et
(xnT1 +1 , ... , xnT1 +n2 ) celles de groupe2. La matrice C est une matrice (n1 +n2 )(n +1+n1 +n2 ).
57

Chapitre 6
En Scilab, scrit %inf. Comme il ny a pas de borne suprieure sur les variables, on
peut rentrer un tableau vide pour ub. Heureusement, il est beaucoup plus ais dcrire ces
matrices sous Scilab (qui accepte lcriture matricielle par bloc) quil ne lest sous LATEX. Il
ne nous reste alors plus qu demander la fonction quapro de rsoudre le problme.
Comme toutes les questions se ressemblent, nous nous contenterons de rsoudre la
dernire. Commenons par crire un programme qui reoit en entre une matrice (par
exemple la matrice de toutes les donnes, ou la matrice de toutes les donnes sauf quelques
unes) ainsi que et qui rend a et b :
function [a,b]=svm(D,lambda)
//Sparation des donnes en deux sous-groupes
s=size(D)
n=s(1)
groupe1=[]
groupe2=[]
for k=1:n
if D(k,$)==2 then
groupe1=[groupe1 ; D(k,2:$-1)]
else
groupe2=[groupe2 ; D(k,2:$-1)]
end
end
//Construction de Q,q,C,rhs,lb,ub.
s1=size(groupe1)
n1=s1(1)
n2=n-n1
Q=[2*eye(9,9) , zeros(9,n+1) ; zeros(1,n+10) ;
zeros(n,10) 2*lambda*eye(n,n)]
q=zeros(n+10,1)
C=[groupe1 ones(n1,1) -eye(n1,n1) zeros(n1,n2) ;
-groupe2 -ones(n2,1) -eye(n2,n2) zeros(n2,n1)]
rhs=-ones(n,1)
lb=[ -%inf*ones(10,1) ; zeros(n,1)]
ub=[]
//Rsolution du problme :
x=quapro(Q,q,C,rhs,lb,ub)
a=x(1:9)
b=x(10)
endfunction
Notez au passage que si on a appel la matrice des donnes Data on peut rsoudre la
premire question en tapant dans Scilab (pour = 1) :
-->[a,b]=svm(Data,1)
Une fois le programme svm crit, la validation croise est trs facile mettre en place.
On pourra par exemple crire :
58

Chapitre 6
function res=valid_croisee(lambda)
res=0
for k=1:683
D=Data
D(k,:)=[]
//supprime la k-ime ligne
[a,b]=svm(D,lambda)
if (Data(k,$)==2 & Data(k,2:$-1)*a+b<0) then
res=res+1
elseif (Data(k,$)==4 & Data(k,2:$-1)*a+b>0) then
res=res+1
end
end
res=res/683*100
endfunction
Le temps dexcution de ce programme est relativement long (environ quelques heures
sur une machine rcente). Le rsultat est plutt bon puisquon obtient 97% de points bien
classs !

59

Chapitre 6

60

Deuxime partie
Applications

61

Chapitre 7
Vraisemblance Empirique
7.1

Introduction

Avant dnoncer le thorme de Owen sur la vraisemblance empirique, rappelons


quelques dfinitions et rsultats classiques de processus empiriques.
Dfinition 7.1.1. Soit (Xi )i 1 une suite i.i.d. de variables alatoires relles. La loi de pron
1X
babilit empirique de (X1 , ... , Xn ) est dfinie par : Pn =
X .
n i =1 i
Cette loi de probabilit met un poids de 1/n sur chacune des observations. Elle a de
bonnes proprits, par exemples celles nonces par les thormes de Glivenko-Cantelli
et Donsker.
Dfinition 7.1.2 (Vraisemblance). La vraisemblance dune loi de probabilit P pour lchann
Y
tillon (X1 , ... , Xn ) est L(P) =
P{Xi }.
i =1

Proposition 7.1.3
La probabilit empirique de (X1 , ... , Xn ) est la loi de probabilit qui maximise la
vraisemblance de lchantillon.

7.2

Thorme de Owen

Le thorme de Owen part dun constat simple, celui de la proposition 7.1.3 : la loi
de probabilit empirique dun chantillon maximise la vraisemblance de cet chantillon.
Etant donn un chantillon, lide est alors de maximiser la vraisemblance de cet chantillon en ajoutant une contrainte.
63

Chapitre 7
Notation. Soit (Xi )i N une suite de variables alatoires relles i.i.d. et R. On pose :
( n
)
n
n
Y
X
X
R() = max
npi ,
pi = 1 , pi 0
pi Xi =
i =1

i =1

i =1

Thorme 7.2.1 (Owen)


Soit (Xi )i N une suite de variables alatoires relles i.i.d. et 0 = EX1 . Alors :
L

2 log R(0 ) 2

R() tant dfini par un problme de maximisation, il nest pas tonnant que la dmonstration du rsultat de Owen fasse appel la dualit Lagrangienne. Nous allons voir
quil y a dualit forte dans ce problme, ce qui est utilis dans la preuve du thorme mais
qui nest trangement pas dmontr !

64

Index
I
A
Arbre couvrant . . . . . . . . . . . . . . . . . . . . . . . . . 43 Ingalit du sous-gradient . . . . . . . . . . . . . . 13
Assignment problem . . . . . . . . . . . . . . . . . . . . 44
K
B
Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . . 29
Beaux dessins . . . . . . . . . voir un peu partout
L
C
Lagrange, fonction de . . . . . . . . . . . . . . . 33, 37
Chemin, plus court chemin . . . . . . . . . . . . . 43
LASSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Coloration, problme de . . . . . . . . . . . . . . . . . 4
Learning, problme du . . . . . . . . . . . . . . . . . . 25
Cne
Lemme des trois pentes . . . . . . . . . . . . . . . . . 12
normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
linpro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
un polydre . . . . . . . . . . . . . . . . . . . . . 23
polaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
M
tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Markovitz, problme de . . . . . . . . . . . . . . . . . 25
Contrainte active . . . . . . . . . . . . . . . . . . . . . . . . 23
Matrice
Convexe
dincidence . . . . . . . . . . . . . . . . . . . . . . . . . 45
ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Matrice
fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
positive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Cramer, formule de . . . . . . . . . . . . . . . . . . . . . 45
semi-dfinie positive . . . . . . . . . . . . . . . . 14
Minimum spanning tree . . . . . . . . . . . . . . . . 43
D
Diffrentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
O
Duale, fonction . . . . . . . . . . . . . . . . . . . . . . 34, 37
Owen
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Dualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
faible . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 37
P
forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 38
Problme
E
daffectation . . . . . . . . . . . . . . . . . . . . . . . . 44
Epigraphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
du mariage . . . . . . . . . . . . . . . . . . . . . . . . . 44
Equations de Karush-Kuhn-Tucker . . . . . . 29 Problmes
Extraterrestre . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
combinatoire . . . . . . . . . . . . . . . . . . . . . . . . 43
Programmation
F
linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Fonction
non linaire convexe . . . . . . . . . . . . . . . . 28
de Lagrange . . . . . . . . . . . . . . . . . . . . . 33, 37
quadratique . . . . . . . . . . . . . . . . . . . . . . . . . 24
duale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 37
Q
G
quapro.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 6
R
H
Hahn-Banach . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Rgression linaire . . . . . . . . . . . . . . . . . . . . . . 53
Hessienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Rgression ridge . . . . . . . . . . . . . . . . . . . . . . . . 53
65

S
Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
linpro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
quapro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Shortest path problem . . . . . . . . . . . . . . . . . . 43
Soucoupe . . . . . . . . . . . . . . . voir Extraterrestre
Sous-diffrentiel . . . . . . . . . . . . . . . . . . . . . . . . 35
Sous-gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Support Vector Machines . . . . . . . . . . . . 54, 56
T
Taylor, formule de. . . . . . . . . . . . . . . . . . . . . . . . 6
Thorme
de dualit faible . . . . . . . . . . . . . . . . . 34, 37
de Owen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
de dualit forte . . . . . . . . . . . . . . . . . . 36, 38
Totale unimodularit . . . . . . . . . . . . . . . . . . . . 44
Transport, problme de . . . . . . . . . . . . . . . . . . 3
U
Unimodularit . . . . . . . . . . . . . . . . . . . . . . . . . . 44
V
Vraisemblance Empirique . . . . . . . . . . . . . . . 63
W
Weirstrass, thorme de . . . . . . . . . . . . . . . . . . 5

Vous aimerez peut-être aussi