Vous êtes sur la page 1sur 68

Relaxation Lagrangienne

Christophe RAPINE

M2-GSI

1
M2-GSI Relaxation Lagrangienne
Motivation

M
ethodes exactes :
Algorithme de Branch & Cut souvent tr`
es efficace
Solveurs commerciaux (CPLEX, XPRESS) tr`
es puissants :
capables de resoudre `a loptimum des MILP avec des milliers
de contraintes et de variables enti`eres

Cependant ce ne sont pas des baguettes


magiques ; des probl`
emes restent difficiles `
a
r
esoudre !
Probl`
emes de tr`es grandes tailles
(ERP, SCM, . . .)
Probl`
emes tr`es combinatoires sans bonne coupe
Temps de r
esolution imparti faible

2
M2-GSI Relaxation Lagrangienne
Pour ces probl`emes trop diffiles

Si la resolution `a loptimal est trop gourmante en temps :

1 Simplifier la m
ethode de r esolution.
On se contente dune solution sous-optimale, mais obtenue en
un temps raisonnable et controlable
Heuristiques, Meta-Heuristiques.

2 Simplifier le probl`
eme.
Pour le rendre plus simple `a resoudre `a loptimum.
Decomposition, Relaxation.

3
M2-GSI Relaxation Lagrangienne
Algorithme Glouton

4
M2-GSI Relaxation Lagrangienne
Algorithme Glouton

Heuristique
Algorithme retournant une solution realisable, mais sans garantie
doptimalite

Algorithme glouton (Greedy)


Heuristique constructive
Etend une solution partielle pas `
a pas
Ne revient pas sur ses choix

Souvent lheuristique la plus simple `a mettre en uvre

5
M2-GSI Relaxation Lagrangienne
Description generique

Probl`eme : Choisir un ensemble S dobjets de co


ut minimum
sous-contraintes

- Initialiser S =
- A chaque etape
Considerer les objets x restants
par ordre dinter^
et croissant.
Si x peut ^etre ajout
e `
a la
solution partielle S
Alors
Ajouter x `
a S
Passer `
a l
etape suivante

6
M2-GSI Relaxation Lagrangienne
Algorithme Glouton

Questions :
Quest-ce quun objet int
eressant ?
A decider selon le probl`eme
purement glouton : lobjet x qui
minimise/maximise le cout de S {x}
Quest-ce quun objet qui peut
etre ajoute ?
Garder une solution partielle realisable
Verifier une propriete desirable, de
dominance, . . .

7
M2-GSI Relaxation Lagrangienne
Deux fils rouges

Voyageur de commerce (TSP)


n villes `
a visiter
trouver une tourn
ee de longueur minimale

Localisation de services (UFL)


n entrep
ots `a placer
trouver une implantation minimisant le
co
ut global
investissement + fonctionnement

8
M2-GSI Relaxation Lagrangienne
Exemple de voyageur de commerce (TSP)

Un voyageur de commerce, base `a Toulon, doit visiter ses clients `a


travers la France.

9
M2-GSI Relaxation Lagrangienne
Algorithme Glouton pour le TSP

Il est facile de construire des solutions r


ealisables
Quelle serait une strat
egie purement gloutonne ?

10
M2-GSI Relaxation Lagrangienne
Algorithme Glouton pour le TSP

Partir de la ville de d
epart (1)
A chaque
etape, se rendre `
a la ville
non visit
ee la plus proche.

Cet algorithme nest pas optimal. . .mais peut se comporter bien.


Comment savoir si lon est `a quelques % de loptimum ?

11
M2-GSI Relaxation Lagrangienne
Exemple jouet TSP

On veut resoudre un TSP sur 5 villes :


1 2 3 4 5
1 30 26 50 40
2 24 40 50
3 24 26
4 30
5

Quelle solution fournie lalgorithme glouton ?


Est-elle satisfaisante ?
Comment lam
eliorer ?

12
M2-GSI Relaxation Lagrangienne
Une premi`ere borne inferieure

Arbre couvrant
Un arbre couvrant est un ensemble de n 1 arretes sans cycle.

Larbre couvrant de poids minimum est une borne


inferieure du TSP
Facile `
a determiner avec un algorithme glouton :
Kruskal

13
M2-GSI Relaxation Lagrangienne
Connexion

Connecter de villes entre elles par un nouveau reseau tr`es haut


debit. Un certains nombre de connexions directes point `a point
entre les villes sont techniquement possibles.

Comment connecter toutes les villes `a moindre co


ut ?
14
M2-GSI Relaxation Lagrangienne
Connexion

Connecter toutes les villes entre elles. . .


Choisir un ensemble dar
etes assurant la connexite
Pour minimiser son co
ut on doit eviter les cycles

Cest un arbre (graphe connexe sans sycle) qui connecte


(couvre) toutes les villes

15
M2-GSI Relaxation Lagrangienne
Arbre couvrant de poids minimum (MST)

Parmi tous les arbres couvrants possibles, on veut le moins


cher !
Le poids dun arbre est la somme du poids de ses ar
etes

16
M2-GSI Relaxation Lagrangienne
Algorithme de Kruskal

Lalgorithme optimale est un glouton !

Algorithme de Kruskal
Trier les ar^
etes par poids croissant
etes e
Parcourir toutes les ar^
Si F e est acyclique Alors
Ajouter e `
a F
FinSi
FinPour

17
M2-GSI Relaxation Lagrangienne
Arbre couvrant de poids min pour le TSP

1 2 3 4 5
1 30 26 50 40
2 24 40 50
3 24 26
4 30
5

On s
electionne larrete (2, 3) de co
ut 24
On s
electionne larrete (3, 4) de co
ut 24
...
On trouve un arbre de co
ut 100
Lalgorithme glouton est-il si mauvais (148) ?

18
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne

19
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne

Imaginons un programme lin


eaire en nombres entiers

z = minx z(x) = cx
st Ax b
Dx e

Les contraintes de D sont difficiles


Id
ee : rendre le probl`eme plus facile en supprimant les
contraintes de D
On les dualise dans lobjectif en p
enalisant les violations par
un vecteur (multiplicateurs Lagrangiens)

L() = minx z (x) = cx + (e Dx)


st Ax b

20
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne (maximisation)

21
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne

Propriete
Pour tout vecteur 0, loptimum de la relaxation lagrangienne
est une borne inferieure : L() z

Une solution x realisable dans le probl`eme initial est realisable dans


le probl`eme relaxe.

z (x) = z(x) + (e Dx) z(x)

Quels signes pour ? 0 ? R ? 0 ?

22
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne pour le TSP

Il faut partir dune formulation MILP . . .


Variables : xij = 1 si larrete (i, j) est parcourue
P
min z(x) = i<j cij xij
P
x = 2 i (1)
Pj ij P
iS jS xij |S| 1 S {1, . . . , n} (2)
xij {0, 1} i, j (3)
P
Lin
egalite i<j xij = n est valide

23
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne pour le TSP

La formulation MILP est :


Choisir un ensemble S darretes de poids minimum
Chaque sommet est de degre 2 (1)
S est acyclique sur{2, . . . , n} (2)
S comporte exactement n arretes

24
M2-GSI Relaxation Lagrangienne
Quelles contraintes relachees ?

1 La contrainte de degr e (1).


Le probl`eme Lagrangien revient `a trouver un sous-graphe
acyclique (arbre) couvrant toutes les villes sauf la ville 1.

2 La contrainte de sous-tour (2).


Le probl`eme Lagrangien revient `a trouver une collection de
cycle couvrant toutes les villes.

25
M2-GSI Relaxation Lagrangienne
Ecriture du Lagrangien

On introduit un multiplicateur i par contrainte


Il faut resoudre `a loptimum :
P P P
L() = minx z(x) =
P i<j cij xij + i i (2 j6=i xij )
x 1j = 2
P1<j P
iS jS xij |S| 1 S {1, . . . , n} (2)
xP
ij {0, 1} i, j (3)
i<j xij = n

26
M2-GSI Relaxation Lagrangienne
Comment resoudre le Lagrangien ?

probl`eme du 1-arbre :

Choisir un ensemble S darretes de poids minimum


Le sommet (1) est de degre 2 (1)
S est un arbre couvrant sur{2, . . . , n} (2)

Il suffit de d
eterminer un arbre couvrant de poids minimum
pour les villes de {2, . . . , n}
Rajouter les 2 ar
etes de plus faible poids partant de la ville 1
Mais... on a change les poids

cij cij = cij i j

27
M2-GSI Relaxation Lagrangienne
Comment resoudre le Lagrangien ?

Choisissons comme multiplicateur = (0, 0, 0, 0, 0)


Les co
uts cij sont les co
uts cij
On doit trouver le 1-arbre optimal :

1 2 3 4 5
1 30 26 50 40
2 24 40 50
3 24 26
4 30
5

On trouve un 1-arbre de co
ut 130
Lalgorithme glouton nest plus si mauvais (148)

28
M2-GSI Relaxation Lagrangienne
Et si on prend dautres multiplicateurs

Choisissons maintenant les multiplicateur


= (10, 10, 10, 10, 10)
Les co uts cij 20
uts cij sont les co
On doit trouver le 1-arbre optimal :

1 2 3 4 5
1 10 6 30 20
2 4 20 30
3 4 6
4 10
5

On trouve un 1-arbre de co
ut . . . 130 !
Comment choisir dautres multiplicateurs ?

29
M2-GSI Relaxation Lagrangienne
Dual Lagrangien

30
M2-GSI Relaxation Lagrangienne
Dual Lagrangien

Pour un vecteur de p
enalite fixe, le lagrangien est

L() = minx z (x) = cx + (e Dx)


st Ax b

Le dual lagrangien consiste `


a trouver le vecteur maximisant
L()
max L()
0

On veut la meilleure borne inf


erieure possible

31
M2-GSI Relaxation Lagrangienne
Convexite

Propriete
Le lagrangien L() est une fonction concave, lineaire par morceaux.

L*

32
M2-GSI Relaxation Lagrangienne
Optimisation Continue

Gradient
Le gradient dune fonction f continue et differentiable au point
(x1 , . . . , xn ) est le vecteur

f f
f (x) = ( ,..., )
x1 xn

f (y ) = f (x)+t f (x).(y x)+o(k y x k)

33
M2-GSI Relaxation Lagrangienne
Optimisation Convexe

Sous-Gradient
Un sous-gradient dune fonction f concave au point x est un
vecteur (x) verifiant

f (y ) f (x) +t (x).(y x) y

34
M2-GSI Relaxation Lagrangienne
Algorithme du sous-gradient

Pour minimiser une fonction concave, il suffit de suivre la


direction dun sous-gradient
Pour le lagrangien, un sous-gradient au point doptimum x
est
() = e Dx
De combien avancer dans cette direction ?
Si lon dispose dune borne sup
erieure UB et inferieure LB, on
fixe le pas `a
UB LB
k k2

35
M2-GSI Relaxation Lagrangienne
Algorithme Sous-Gradient

Algorithme Sous-Gradient
SORTIE : L
Initialiser (= 0 par exemple)
R
ep eter
R esoudre le lagrangien L(), avec pour optimum x
Mettre ` a jour LB, Calculer
// Avancer dans la direction du sous-gradient
:= max{ 0 , + (e Dx )}
FinR
ep
eter
retourner L

36
M2-GSI Relaxation Lagrangienne
Qualite de la relaxation

Propriete - Bonne nouvelle


Le dual lagrangienne est toujours meilleure que la relaxation
lineaire
L LP

Propriete - Mauvaise nouvelle


Si le probl`eme L() est trop facile,

L = LP

37
M2-GSI Relaxation Lagrangienne
Exemple Dual Lagrangien

Nous avions choisi comme multiplicateur = (0, 0, 0, 0, 0)


Les co
uts cij sont les co
uts cij :

1 2 3 4 5
1 30 26 50 40
2 24 40 50
3 24 26
4 30
5

La valeur du lagrangien est L() = 130


Le gradient est i = 2 degr
e(i), soit (0, 0, 2, 1, 1)
P 2
Le pas = (UB LB)/ i i = (148 130)/6 = 3.

38
M2-GSI Relaxation Lagrangienne
Exemple Dual Lagrangien

Multiplicateurs 0 = + = (0, 0, 6, 3, 3)
On cherche le 1-arbre optimal :

1 2 3 4 5
1 30 32 47 37
2 30 37 47
3 27 29
4 24
5

P
La valeur du lagrangien est L() = 143 + 2 i = 143
Le gradient est = (0, 0, 1, 0, 1)
i2 = (148 143)/2 = 2.5.
P
Le pas = (UB LB)/ i

39
M2-GSI Relaxation Lagrangienne
Exemple Dual Lagrangien

Multiplicateurs 00 = 0 + = (0, 0, 17/2, 3, 11/2)


On cherche le 1-arbre optimal :

1 2 3 4 5
1 30 34.5 47 34.5
2 32.5 37 44.5
3 29.5 29
4 21.5
5

P
La valeur du lagrangien est L() = 147.5 + 2 i = 147.5
la solution du glouton est optimale

40
M2-GSI Relaxation Lagrangienne
Probl`
eme UFL

41
M2-GSI Relaxation Lagrangienne
Uncapacitated Facility Location

Probl`eme du choix dimplantation de services (site de productions,


entrepots,. . .) :

A chaque service j est associ


e un
co
ut fixe douverture fj > 0
Il sagit de positionner des services
pour minimiser le co
ut total
X X
zFL (S) = fj + ci (S)
jS iI

investissement + fonctionnement

42
M2-GSI Relaxation Lagrangienne
Uncapacitated Facility Location

Des clients I
Des sites de service J
Un co
ut cij pour satisfaire la demande de i par le site j
Un co
ut fixe fj douverture des services

Il sagit de decider
Dun ensemble S J de sites `
a ouvrir
Pour chaque client i, du site (i) qui le sert

43
M2-GSI Relaxation Lagrangienne
Exemple

C
1 D
A B 2

1 2 3
4

E 2 F

Pour approvisionner les sites A, B, ... des entrep


ots doivent
etre installes.
Les co
uts de transport dun entrep
ot `a un site sont
proportionnels `a la distance `a parcourir
Les co
uts dinstallation des entrep
ots sont :
A B C D E F
2 3 4 5 3 2
44
M2-GSI Relaxation Lagrangienne
Exemple

Co
uts de service et douverture :

A B C D E F ouv.
A 0 1 3 4 5 7 2
B 0 2 3 4 6 3
C 0 1 3 4 4
D 0 2 3 5
E 0 2 3
F 0 2

Quel algorithme glouton ?


Comment calculer une borne lagrangienne ?

45
M2-GSI Relaxation Lagrangienne
Algorithme Glouton

Le glouton le plus naturel consiste `a chaque etape `a choisir le site


dont louverture occasione la plus forte diminution du co ut global
de la solution.
Le gain de louverture du site j

(S, j) = zFL (S {j}) zFL (S)

46
M2-GSI Relaxation Lagrangienne
Algorithme Glouton

Algorithme Glouton
SORTIE : SG un ensemble de services `a ouvrir
SG :=
TantQue il existe un site j tel que (SG , j) < 0
Choisir le site j tel que (j) est minimum
SG := SG {j}
FinTantQue
retourner SG

47
M2-GSI Relaxation Lagrangienne
Algorithme Glouton - Example

C
1 D
A B 2

1 2 3
4

E 2 F

On cherche la meilleure solution avec un unique entrep


ot
Les co
uts (service+ouverture) sont
A B C D E F
20+2 16+4 13+4 13+5 16+3 21+2
Le site C est ouvert, avec une valeur 17

48
M2-GSI Relaxation Lagrangienne
Algorithme Glouton - Example

C
1 D
A B 2

1 2 3
4

E 2 F

On calcul l
economie douverture de chaque site
A B C D E F ouv.
A -3 -1 2 -2
B -2 -2 3 -1
D -1 -1 -1 5 2
E -3 -2 3 -2
F -1 -4 2 -3
Le site F est ouvert, {C , F } a une valeur 14
49
M2-GSI Relaxation Lagrangienne
Algorithme Glouton - Example

C
1 D
A B 2

1 2 3
4

E 2 F

On recalcul l
economie douverture de chaque site
A B C D E F ouv.
A -3 -1 2 -2
B -2 -2 3 -1
D -1 5 4
E -2 3 1
Le site A est ouvert, {C , F , A} a une valeur 12

50
M2-GSI Relaxation Lagrangienne
Algorithme Glouton - Example

C
1 D
A B 2

1 2 3
4

E 2 F

Tous les sont positifs.


La solution SG = {C , F , A} du glouton a une valeur 12
Les co
uts douverture sont de 8
Les co
uts de service sont de 4

51
M2-GSI Relaxation Lagrangienne
Formulation Lineaire pour UFL

Variables de decision
yj = 1 si le service j est ouvert
xij = 1 si le client i est servi par j

Programme Lineaire en nombre entier (PLNE)


P P
min z(x, y ) = j fj yj + ij cij xij
P
j xij = 1 i (1)
yj xij i, j (2)
xij {0, 1}, yj {0, 1} (3)

52
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne pour UFL

Formulation lineaire
P P
min z(x, y ) = j fj yj + ij cij xij
P
j xij 1 i (1)
yj xij i, j (2)
xij {0, 1}, yj {0, 1} (3)

On dualise la contrainte (1) :


P P P P
L() = minx,y j fj yj + ij cij xij + i i (1 j xij )
yj xij i, j
xij {0, 1}, yj {0, 1}

53
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne pour UFL

La fonction objectif se r
eecrit :
X X X
min z (x, y ) = fj yj + (cij i )xij + i
x,y
j ij i

avec comme contraintes 0 xij yj 1


Imaginons le vecteur y fix
e et optimisons sur x.

>0 minimiser xij xij = 0
cij i
<0 maximiser xij xij = yj

Le probl`
eme devient
X X X
L() = min fj yj + (cij i ) yj + i
y
j ij i

54
M2-GSI Relaxation Lagrangienne
Relaxation Lagrangienne pour UFL

On obtient
!
X X X
L() = fj + (cij i ) + i
j i i

Notons cij = (cij i )


Notons sj = (fj + i cij )
P
P P
Alors L() = j sj + i i

55
M2-GSI Relaxation Lagrangienne
Dual lagrangien - Exemple

C
1 D
A B 2

1 2 3
4

E 2 F

Lalgorithme glouton a trouv


e une solution de 12
Quelle borne donne le dual Lagrangien ?

56
M2-GSI Relaxation Lagrangienne
Sous-gradient - Example

Distances et couts douverture

A B C D E F ouv.
A 0 1 3 4 5 7 2
B 0 2 3 4 6 3
C 0 1 3 4 4
D 0 2 3 5
E 0 2 3
F 0 2

Notons cij = (cij i )


ij )
P
Notons sj = (fj + ic

57
M2-GSI Relaxation Lagrangienne
Sous-gradient - Example

Partons de = 0

A B C D E F ouv. s
A 2 0
B 3 0
C 4 0

Quel lien avec les yj et xij ?


Toutes les variables sont nulles, L = 0
= (1, 1, 1, 1, 1, 1)
i2 = (12 0)/6 = 2.
P
= (UB LB)/ i

58
M2-GSI Relaxation Lagrangienne
Sous-gradient - Example

= (2, 2, 2, 2, 2, 2)

A B C D E F ouv. s
A -2 -1 2 -1
B -1 -2 3 0
C -2 -1 4 0
D -1 -2 5 0
E -2 3 0
F -2 2 0

L = 11
y = (1, 0, 0, 0, 0, 0), xAA
= 1, x = 1
AB
= (0, 0, 1, 1, 1, 1)
= (12 11)/ = 1/4

59
M2-GSI Relaxation Lagrangienne
Sous-gradient - Example

= (2, 2, 2.25, 2.25, 2.25, 2.25)

A B C D E F ouv. s
A 2
B 3
C 4
D 5
E 3
F 2

L = 11, 25
y = (1, 1, 0, 0, 0, 1)
A et B servis 2 fois (par A et B), D non servi

60
M2-GSI Relaxation Lagrangienne
Heuristique Lagrangienne

La resolution des Lagrangiens fournit des solutions enti`eres, mais


ne respectant sans doute pas toutes les contraintes.
Id
ee : Reconstruire une solution realisable `a partir des relaxations

Si ( , x , y ) est la solution trouv


ee de valeur minimale pour
L()
Ouvrir les sites dont le y est `
a1
es des sites xij = 1
Chaque client i sapprovisionne aupr`
Solution r
ealisable ?
Appliquer le glouton pour compl
eter

61
M2-GSI Relaxation Lagrangienne
Heuristique Lagrangienne

Sur lexemple la meilleure solution trouvee correspond `a


L() = 11, 25
On ouvre les sites A, B et F . Co
ut douverture 7
Chaque client sapprovisionne au mieux :

A B C D E F
0 0 2 3 2 0

Co
ut de service 7
Le glouton peut il ouvrir un autre site ?
Non.
On obtient une solution de valeur 14

62
M2-GSI Relaxation Lagrangienne
Heuristique Lagrangienne des frequences

Une autre possibilite est dutilise les frequences douverture dans


les solutions rencontrees :
Fr
equence nj = nombre de solutions avec yj = 1
Classer les sites par fr
equences decroissantes
Ouvrir le site le plus fr
equent
Ouvrir le site suivant si le gain est positif, sinon STOP.
Variante de lalgorithme glouton. . .

63
M2-GSI Relaxation Lagrangienne
Exercices

64
M2-GSI Relaxation Lagrangienne
Chemin le moins cher sous contrainte de temps [Olivier
Briant]

On souhaite acheminer des marchandise du point 1 au sommet 6


dans le reseau suivant :

Chaque ar
ete (i, j) `a un co
ut cij et un temps de parcours tij
On dispose dau plus 10 unit es de temps
65
M2-GSI Relaxation Lagrangienne
Chemin le moins cher sous contrainte de temps

On veut dualiser la contrainte sur le temps.


Quel probl`
eme obtient-on ?
Quel est la valeur du Lagrangien pour = 0 ?
Quel est la valeur du Lagrangien pour = 4 ?
Quel est la valeur du Lagrangien pour = 2 ?

66
M2-GSI Relaxation Lagrangienne
Chemin le moins cher sous contrainte de temps

Pour = 0, cest le chemin le moins cher :

La valeur du lagrangien est 3


Le chemin nest pas r
ealisable : il demande 18 unites de temps.

67
M2-GSI Relaxation Lagrangienne
Chemin le moins cher sous contrainte de temps

Pour = 2, cest le plus court chemin dans le graphe suivant :

La valeur du lagrangien est 15


Le chemin est r
ealisable : il demande 10 unites de temps.
La solution est optimale ?
68
M2-GSI Relaxation Lagrangienne