Vous êtes sur la page 1sur 70

Chapitre 6

Décomposition de Dantzig-Wolfe

1. Exemples d’application

2. Principe de décomposition de Dantzig-Wolfe

3. Résolution par branch-and-price

4. Bornes
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.2

La méthode de décomposition de Dantzig-Wolfe (DW)


peut être utilisée pour résoudre un PNE de grande taille
dont les contraintes principales se séparent en deux groupes
comme suit :

min cT x (6.1)
x

sujet à : Ax = b (6.2)

Dx = e (6.3)

x ∈ Nn (6.4)
0
où x est le vecteur de variables ; c ∈ Rn, b ∈ Zm, e ∈ Zm ,
0
A ∈ Zm × Zn et D ∈ Zm × Zn sont des vecteurs et
matrices de scalaires.

Un des deux groupes (Dx = e) doit posséder une struc-


ture particulière telle que, si l’autre groupe est omis, le
PNE est nettement plus facile à résoudre.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.3

Par exemple, les contraintes faciles Dx = e combinées


aux contraintes x ∈ Nn peuvent avoir la structure des
contraintes d’un ou plusieurs problèmes de flot à coût
minimum, de plus court chemin, de sac à dos, chaque
problème étant restreint à un sous-ensemble des va-
riables qui lui est propre.

Lorsque x peut se partitionner en ` sous-ensembles dis-


joints de variables x = (x1, x2, . . . , x`) tels que les con-
traintes Dx = e et x ∈ Nn peuvent s’écrire comme `
sous-ensembles de contraintes Dk xk = ek , xk ∈ Nnk ,
k ∈ K = {1, . . . , `}, on dit que ces contraintes sont
séparables et qu’elles ont une structure bloc-angulaire.

Les contraintes difficiles (Ax = b) sont souvent appelées


les contraintes liantes ou les contraintes globales car
elles impliquent des variables provenant de plusieurs des
sous-ensembles disjoints.

Remarque : La décomposition de DW peut aussi s’ap-


pliquer à certains programmes non linéaires.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.4

6.1 Exemples d’application

Voyons deux applications qui se prêtent bien à la dé-


composition de Dantzig-Wolfe.

Le problème d’horaires de véhicule avec dépôts mul-


tiples (MDVSP) s’énonce comme suit :

Pour une journée donnée, une compagnie doit envoyer


un véhicule effectuer une et une seule fois chaque tâche s
d’un ensemble S à une heure précise hs. La compagnie
répartit ses véhicules disponibles dans un ensemble K
de dépôts, le dépôt k ∈ K disposant de nk véhicules. Ces
véhicules débutent et terminent leur journée au même
dépôt k que l’on dénote ok et dk pour le début et la fin
de la journée. Les temps et coût de parcours entre deux
lieux i et j sont dénotés par tij et cij , respectivement. Ils
sont indépendants du dépôt. Il faut déterminer l’horaire
des véhicules de façon à réaliser toutes les tâches tout
en minimisant le coût total de parcours.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.5

Soit V l’ensemble des véhicules et k(v) le dépôt auquel


le véhicule v est affecté. Le MDVSP peut se formuler
comme un problème multiflots en nombres entiers avec
contraintes additionnelles qui se définit sur |K| graphes
orientés Gk (N k , Ak ), soit un par dépôt k ∈ K.

L’ensemble des noeuds N k = S ∪ {ok , dk }.

L’ensemble des arcs Ak comprend tous les arcs (ok , s) et


(s, dk ), s ∈ S et tous les arcs inter-tâches (i, j) ∈ S × S
admissibles, i.e., (i, j) ∈ Ak si hi + tij ≤ hj . De plus, on
ajoute à Ak l’arc (ok , dk ) pour représenter un véhicule
inutilisé. Le coût de passage d’un véhicule sur l’arc (i, j)
est noté cij .

Les variables sont les suivantes :

v
Xij : Variable de flot binaire qui indique si le véhicule v
utilise ou non l’arc (i, j) ∈ Ak(v).
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.6

Le MDVSP se formule alors comme suit :


X X
v
min cij Xij (6.5)
X
v∈V (i,j)∈Ak(v)

sujet à :
X X
v
Xsj = 1, ∀s ∈ S (6.6)
v∈V j | (s,j)∈Ak(v)
X
Xovk(v)j = 1, ∀v ∈ V (6.7)
j∈S∪{dk (v)}
X X
v v
Xis − Xsj = 0, ∀v ∈ V, s ∈ S (6.8)
i | (i,s)∈Ak(v) j | (s,j)∈Ak(v)
X
v
Xid k(v) = 1, ∀v ∈ V (6.9)
i∈S∪{ok(v) }
v
Xij ≥ 0, binaire, ∀v ∈ V, (i, j) ∈ Ak(v).

(6.10)

Cette formulation a une structure bloc-angulaire. Les


contraintes faciles (6.7)–(6.10) se séparent par véhicule
v ∈ V et présentent la structure d’un problème de plus
court chemin.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.7

Le problème de découpe s’énonce comme suit :

Une compagnie de papier doit satisfaire les demandes


dj , j ∈ J , pour des petits rouleaux de largeur lj qui
doivent être découpés dans un ensemble U de grands
rouleaux de largeur L. Il faut déterminer les patrons
de découpe des grands rouleaux de façon à satisfaire
la demande tout en minimisant le nombre de grands
rouleaux découpés.

Ce problème se formule en utilisant les variables sui-


vantes :

Yu : Variable binaire qui prend la valeur 1 si le grand


rouleau u ∈ U est découpé.

Xju : Nombre de petits rouleaux de largeur lj , j ∈ J ,


découpés dans le grand rouleau u ∈ U .
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.8

La formulation est :
X
min Yu (6.11)
X,Y
u∈U
sujet à :
X
Xju ≥ dj , ∀j ∈ J (6.12)
u∈U
X
lj Xju ≤ LYu, ∀u ∈ U (6.13)
j∈J

Yu ∈ {0, 1}, ∀u ∈ U (6.14)

Xju ≥ 0, entiers, ∀j ∈ J, u ∈ U. (6.15)

Cette formulation a une structure bloc-angulaire. Les


contraintes faciles (6.13)–(6.15) se séparent par grand
rouleau u ∈ U et présentent la structure d’un petit PNE
pour chaque grand rouleau. Nous verrons plus loin qu’on
pourra restreindre cette structure à celle d’un problème
de sac à dos pour chaque grand rouleau.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.9

6.2 Principe de décomposition de Dantzig-Wolfe

Le principe de décomposition de Dantzig-Wolfe (DW)


permet de réécrire le PNE (6.1)–(6.4) sous la forme
d’un autre PNE qui contient seulement des contraintes
équivalentes aux contraintes liantes Ax = b et une ou
plusieurs contraintes de convexité, mais un très grand
nombre de variables. Les contraintes faciles Dx = e sont
utilisées pour définir les nouvelles variables.

Considérons l’enveloppe convexe conv(∆) du domaine


réalisable défini par ∆ = {x | Dx = e, x ∈ Nn}, et
supposons que ∆ est non-vide. Dans ce cas, le théorème
de Minkowski s’énonce comme suit.

Théorème: : Un point x ∈ conv(∆) si et seulement si il


peut s’écrire comme une combinaison convexe des points
extrêmes de conv(∆) plus une combinaison linéaire non
négative de ses rayons extrêmes, i.e.,
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.10

X X
x= θp ω p + λr ρr
p∈Ω r∈Γ
X
θp = 1
p∈Ω

θp ≥ 0, ∀p ∈ Ω, λr ≥ 0, ∀r ∈ Γ

où Ω est l’ensemble des indices des points extrêmes ; ωp


le pième point extrême ; θp le poids associé à ce point ; Γ
l’ensemble des indices des rayons extrêmes ; ρr le r ième
rayon extrême ; et λr le poids associé à ce rayon.

Le vecteur x peut donc être remplacé dans la fonction


objectif et les contraintes liantes du PNE par les vec-
teurs θ et λ des poids utilisés. Les contraintes Dx = e
et x ≥ 0 sont directement prises en compte dans la
définition des nouvelles variables. Les contraintes d’in-
tégrité ne le sont pas et doivent donc demeurer sur les
variables x.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.11

Le changement de variables permet d’obtenir :


X X
T
min c ( θpωp + λr ρr )
x,θ,λ
p∈Ω r∈Γ
X X
sujet à : A( θpωp + λr ρr ) = b
p∈Ω r∈Γ
X
θp = 1
p∈Ω

θp ≥ 0, ∀p ∈ Ω

λr ≥ 0, ∀r ∈ Γ
X X
x= θpωp + λr ρr entiers.
p∈Ω r∈Γ

En réarrangeant les termes, on trouve :


X X
T
min (c ωp)θp + (cTρr )λr
x,θ,λ
p∈Ω r∈Γ
X X
sujet à : (Aωp)θp + (Aρr )λr = b
p∈Ω r∈Γ
X
θp = 1
p∈Ω

θp ≥ 0, ∀p ∈ Ω

λr ≥ 0, ∀r ∈ Γ
X X
x= θpωp + λr ρr entiers.
p∈Ω r∈Γ
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.12

Finalement, en posant cp = cTωp, cr = cTρr , ap = Aωp


et ar = Aρr , on obtient :

X X
min c p θp + cr λr (6.16)
x,θ,λ
p∈Ω r∈Γ

X X
sujet à : apθp + ar λr = b (6.17)
p∈Ω r∈Γ
X
θp = 1 (6.18)
p∈Ω

θp ≥ 0, ∀p ∈ Ω (6.19)

λr ≥ 0, ∀r ∈ Γ (6.20)
X X
x= θp ω p + λr ρr entiers. (6.21)
p∈Ω r∈Γ

Ce nouveau PNE, appelé problème maı̂tre en nombres


entiers (PMNE), est équivalent au PNE initial (6.1)–
(6.4). En général, il comporte moins de contraintes mais
beaucoup plus de variables, soit une par point extrême
et rayon extrême du domaine ∆. Comme nous le ver-
rons plus loin, ∆ constitue le domaine du sous-problème
(SP).
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.13

Lorsque Dx = e est séparable par sous-ensembles dis-


joints de variables x = (x1, x2, . . . , x`), on définit un
domaine ∆k = {xk | Dk xk = ek , xk ∈ Nnk } pour chaque
k ∈ K et des ensembles de points et rayons extrêmes
correspondants. Le PMNE se formule alors comme suit :

X X X 
min cpk θpk + crk λrk (6.22)
x,θ,λ
k∈K p∈Ωk r∈Γk
sujet à :
X X X 
apk θpk + ark λrk = b (6.23)
k∈K p∈Ωk r∈Γk
X
θpk = 1, ∀k ∈ K (6.24)
p∈Ωk

θpk ≥ 0, ∀k ∈ K, p ∈ Ωk

(6.25)

λrk ≥ 0, ∀k ∈ K, r ∈ Γk

(6.26)
X X
xk = θpk ωpk + λrk ρrk entiers, ∀k ∈ K.
p∈Ωk r∈Γk

(6.27)
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.14

Pour le MDVSP, les contraintes faciles (6.7)–(6.10) se


séparent par véhicule v ∈ V . Il y a donc un domaine ∆v
par véhicule v. Ce domaine étant borné, il ne possède
pas de rayons extrêmes. Chaque point extrême corres-
pond à un chemin de ok(v) à dk(v) dans Gk(v). Le PMNE
s’écrit alors :

X X
min cpv θpv (6.28)
X,θ
v∈V p∈Ωv
sujet à :
X X
aspv θpv = 1, ∀s ∈ S (6.29)
v∈V p∈Ωv
X
θpv = 1, ∀v ∈ V (6.30)
p∈Ωv

θpv ≥ 0, ∀v ∈ V, p ∈ Ωv (6.31)
X
v
Xij = bij
pv θpv entiers, ∀v ∈ V, (i, j) ∈ Ak(v)(6.32)
,
p∈Ωv

où θpv indique le flot du véhicule v empruntant le che-


min p, aspv = 1 si le chemin p inclut la tâche s et 0 sinon,
et bij
pv = 1 si le chemin p emprunte l’arc (i, j) et 0 sinon.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.15

Pour le MDVSP, on peut montrer que les contrain-


tes d’intégrité (6.32) sont équivalentes à des contraintes
d’intégrité sur les variables θ. De plus, comme tous les
véhicules provenant d’un même dépôt sont identiques,
on peut éliminer de la symétrie dans cette formulation
en agrégeant les variables θ associées à un même dépôt.
On obtient alors le PMNE :

X X
min cpk θpk (6.33)
X,θ
k∈K p∈Ωk
sujet à :
X X
aspk θpk = 1, ∀s ∈ S (6.34)
k∈K p∈Ωk
X
θpk = nk , ∀k ∈ K (6.35)
p∈Ωk

θpk ≥ 0, entiers, ∀k ∈ K, p ∈ Ωk . (6.36)


Chapitre 6 : Décomposition de Dantzig-Wolfe 6.16

Pour le problème de découpe, les contraintes faciles (6.13)–


(6.15) se séparent par grand rouleau u ∈ U . Il y a donc
un domaine ∆u par rouleau u. Ce domaine étant borné,
il ne possède pas de rayons extrêmes. Chaque point ex-
trême correspond à un patron de découpe du rouleau u
(incluant le patron vide p = 0). Le PMNE s’écrit alors :

X X
min θpu (6.37)
X,Y,θ
u∈U p∈Ωu \{0}

sujet à :
X X
ajpuθpu ≥ dj , ∀j ∈ J (6.38)
u∈U p∈Ωu
X
θpu = 1, ∀u ∈ U (6.39)
p∈Ωu

θpu ≥ 0, ∀u ∈ U, p ∈ Ωu (6.40)
X
Xju = ajpuθpu entiers, ∀j ∈ J, u ∈ U (6.41)
p∈Ωu
X
Yu = θpu ∈ {0, 1} ∀u ∈ U, (6.42)
p∈Ωu \{0}

où ajpu indique le nombre de rouleaux de largeur lj dans


le patron p.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.17

Comme les grands rouleaux sont identiques, on peut


agréger les variables θ. De plus, comme l’objectif est de
minimiser le nombre de grands rouleaux utilisés, on peut
montrer que les contraintes (6.39) et (6.42) peuvent être
omises. Le PMNE devient :

X
min θp (6.43)
X,θ
p∈Ω\{0}

sujet à :
X
ajpθp ≥ dj , ∀j ∈ J (6.44)
p∈Ω

θp ≥ 0, ∀p ∈ Ω (6.45)
X
θp = θpu, ∀p ∈ Ω (6.46)
u∈U
X
θpu = 1, ∀u ∈ U (6.47)
p∈Ωu
X
Xju = ajpθpu entiers, ∀j ∈ J, u ∈ U. (6.48)
p∈Ωu

La relaxation linéaire de cette formulation est très ser-


rée. Il y a une conjecture qui prétend que le gap d’inté-
grité est inférieur à 2.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.18

Cette formulation (6.43)–(6.48) n’est pas équivalente à


la formulation que l’on obtiendrait en remplaçant les
contraintes (6.46) et (6.48) par des contraintes d’inté-
grité sur les variables θp. En effet, il pourrait exister des
points entiers de ∆ (le domaine du SP) qui ne puissent
être générés à partir des points extrêmes de ∆ et de
poids θp entiers.

Par exemple, considérons l’instance avec L = 90, l1 =


30, l2 = 45, d1 = d2 = 1. Les points extrêmes de ∆
sont (0,0), (3,0) et (0,2). Or, la solution optimale est
donnée par un seul grand rouleau qui est découpé selon
le patron (1,1). Ce patron optimal s’obtient comme la
combinaison convexe et fractionnaire suivante :

(1, 1) = 1/3 (3, 0) + 1/2 (0, 2) + 1/6 (0, 0).


Chapitre 6 : Décomposition de Dantzig-Wolfe 6.19

6.3 Résolution par branch-and-price

La formulation (6.22)–(6.27) comporte un très grand


nombre de variables et des contraintes d’intégrité. Elle
est résolue par une méthode de type branch-and-price,
i.e., une méthode d’énumération implicite dans laquelle
les bornes inférieures sont calculées par une méthode de
génération de colonnes.

Pour simplifier, supposons qu’il y a un seul domaine ∆


et qu’il est borné (aucun rayon extrême). Le PMNE se
formule alors :

X
min cpθp (6.49)
x,θ
p∈Ω
sujet à :
X
apθp = b (6.50)
p∈Ω
X
θp = 1, (6.51)
p∈Ω

θp ≥ 0, ∀p ∈ Ω (6.52)
X
x= θpωp entiers. (6.53)
p∈Ω
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.20

6.3.1 Génération de colonnes

La méthode de génération de colonnes permet de ré-


soudre des programmes linéaires qui comportent un très
grand nombre de variables lorsque celles-ci peuvent être
générées en résolvant un problème auxiliaire appelé sous-
problème (SP). Un tel programme linéaire est donné par
la relaxation linéaire (6.49)–(6.52) du PMNE, appelée
problème maı̂tre et notée PM.

Soit π ∈ Rm et σ les variables duales associées aux con-


traintes (6.50) et (6.51). Le SP doit permettre de trou-
ver, pour tout (π, σ), une colonne aq telle que

cq − π Taq − σ = min{cp − π Tap − σ}.


p∈Ω

Afin que la méthode de génération de colonnes soit effi-


cace, il faut que le SP soit relativement facile à résoudre
car il devra être résolu de nombreuses fois.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.21

La méthode de génération de colonnes débute avec un


problème maı̂tre restreint (PMRi) qui contient un petit
sous-ensemble Ωi des variables (ici, i = 1).

X
min c p θp (6.54)
x,θ
p∈Ωi
sujet à :
X
apθp = b (6.55)
p∈Ωi
X
θp = 1, (6.56)
p∈Ωi

θp ≥ 0, ∀p ∈ Ωi. (6.57)

Les autres variables θp ∈ Ω\Ωi, aussi appelées colonnes,


seront générées au besoin à l’aide du SP.

Note : Ω1 pourrait aussi être vide si des variables ar-


tificielles sont employées dans les contraintes (6.55) et
(6.56).
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.22

La technique de génération de colonnes est un proces-


sus itératif. À chaque itération i, on résout d’abord le
PMRi, restreint à un ensemble Ωi de colonnes, et ensuite
le SP.

La résolution du PMRi permet d’obtenir une solution


réalisable θ i = {θpi }p∈Ωi pour le PM (les autres variables
θp ∈ Ω \ Ωi étant fixées à 0). Elle permet aussi d’obte-
nir une solution duale (π i, σ i) associée à cette solution
primale.

Sous quelle condition la solution primale obtenue θ i est-


elle aussi optimale pour le PM ? Si les coûts réduits de
toutes les variables non-considérées θp ∈ Ω\Ωi sont ≥ 0.

Le SP a pour rôle de trouver la variable ayant le plus


petit coût réduit cp − π Tap − σ.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.23

À l’itération i, le coût réduit c̄ip d’une variable θp est

c̄ip = cp − (π i)Tap − σ i.

Par conséquent, le SP dépend des valeurs des variables


duales et change donc à chaque itération. Celui de l’ité-
ration i, dénoté SPi, est :

z SP = min (cT − (π i)TA)x − σ i (6.58)


x

sujet à : Dx = e (6.59)

x ∈ Nn (6.60)

Si la valeur optimale ziSP du SPi est ≥ 0, alors il n’y


a aucune variable non-considérée θp ∈ Ω \ Ωi qui a un
coût réduit négatif. Par conséquent, la solution optimale
courante θ i du PMRi est aussi optimale pour le PM.

Sinon la solution xi du SPi permet de générer une va-


riable θp de coût réduit négatif. Cette variable est alors
ajoutée à Ωi pour former Ωi+1 et un nouveau PMRi+1.
On recommence alors une nouvelle itération en résolvant
d’abord PMRi+1.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.24

L’algorithme de génération de colonnes se déroule comme


suit.

Algorithme 6.1 : Méthode de génération de colonnes


1
1: Poser i = 1 et déterminer un sous-ensemble Ω de

variables initiales de sorte que PMR1 soit réalisable.


i
2: Résoudre le PMRi en considérant Ω pour obtenir

une solution primale θ i et une solution duale (π i, σ i).


i i i
3: Résoudre le SP en considérant (π , σ ). Une solution

xi de valeur ziSP est obtenue.


SP
4: Si z
i ≥ 0 alors
5: Arrêter car θ i est aussi optimale pour PM.
6: Sinon

7: À partir de xi, créer une nouvelle variable θp en


calculant cp et ap.
8: Poser Ωi+1 = Ωi ∪ {p}.
9: Poser i = i + 1 et retourner à l’étape 2.

Lorsqu’il y a plusieurs domaines ∆k , chaque domaine


engendre un sous-problème SPk . Dans ce cas, chaque
SPk doit être résolu à l’étape 3 pour conclure à l’opti-
malité à l’étape 4 quand les valeurs optimales de tous
les SPk sont non-négatives. Aux étapes 7 et 8, on peut
créer plus d’une colonne à la fois.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.25

Théorème: : La méthode de génération de colonnes converge


en un nombre fini d’itérations vers la solution optimale.

La preuve découle du fait qu’il y a un nombre fini de


points et rayons extrêmes et que le SP ne peut générer
deux fois le même point ou rayon extrême.

Voyons les sous-problèmes des problèmes d’horaires de


véhicule et de découpe.

Pour le MDVSP, le PM s’obtient en omettant les con-


traintes d’intégrité de la formulation (6.33)–(6.36). Il y
a un sous-problème par dépôt k ∈ K.

Le SPk correspond à un problème de plus court chemin


entre ok et dk dans le graphe Gk . Afin de bien calculer
le coût réduit d’une variable θpk associée à un chemin p,
il faut modifier les coûts sur les arcs en y intégrant les
valeurs des variables duales.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.26

Soit πsi et σki les valeurs à l’itération i des variables


duales des contraintes (6.34) et (6.35), respectivement.
Le coût réduit c̄ipk d’une variable θpk est
X
i
c̄pk = cpk − aspk πsi − σki .
s∈S

Afin de soustraire σki au coût réduit de chaque chemin,


le coût cos de chaque arc (o, s), s ∈ S, est remplacé par
cos − σki .

De plus, si aspk = 1, s ∈ S, (i.e., si l’horaire p inclut la


tâche s), il faut soustraire πsi du coût réduit. Pour ce
faire, on remplace le coût csj de chaque arc (s, j) ∈ Ak
par csj − πsi .

Avec ces modifications, le coût d’un chemin p entre ok


et dk dans Gk procure le coût réduit de la variable θpk .

Lorsqu’un chemin p de coût réduit négatif est identi-


fié, la variable θpk correspondante peut être générée en
calculant cpk comme la somme des coûts originaux des
arcs formant le chemin p et en fixant aspk , s ∈ S, à 1 si
le chemin p passe par le noeud s et à 0 sinon.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.27

Pour le problème de découpe, le PM est donnée par


(6.43)–(6.45). Il y a un seul sous-problème ayant pour
contraintes les contraintes (6.13)–(6.15) restreintes à un
seul grand rouleau, soit :

X
lj Xj ≤ LY (6.61)
j∈J

Y ∈ {0, 1} (6.62)

Xj ≥ 0, entiers, ∀j ∈ J. (6.63)

Lorsque Y = 0, on obtient le patron de découpe vide


p = 0 qui ne sera jamais généré. On peut donc supposer
que Y = 1 pour obtenir un problème de sac à dos. Afin
de bien calculer le coût réduit d’une variable θp associée
au patron p, il faut modifier les coûts des variables en y
intégrant les valeurs des variables duales.

Soit πji les valeurs à l’itération i des variables duales


associées aux contraintes (6.44). Le coût réduit c̄ip d’une
variable θp est alors donné par
X
i
c̄p = 1 − ajpπji .
j∈J
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.28

Dans un problème de sac à dos, l’objectif consiste à


maximiser l’utilité des items choisis, i.e.,
X
max uj X j .
j∈J

Par conséquent, en fixant uj = πji , le coût d’une solution


P j i
réalisable pour ce problème est égal à apπj pour le
j∈J
patron p correspondant. La solution optimale est telle
P j i
que apπj est maximale et procure le patron p de coût
j∈J
P j i
réduit minimal 1 − apπj .
j∈J

Lorsqu’un patron de découpe p de coût réduit négatif est


identifié, la variable θp correspondante peut être générée
en fixant ajp, j ∈ J , au nombre de rouleaux de largeur
lj découpés dans le patron p.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.29

6.3.2 Branchement

Dans le PMNE (6.49)–(6.53), les contraintes d’intégrité


sont sur les variables x ce qui nous amènent à définir
les règles de branchement sur ces variables ou sur une
combinaison de celles-ci. Le principe de décomposition
de DW permet alors de spécifier la façon de les traiter,
soit au niveau du PM ou au niveau du SP.

Au niveau du PM, ces décisions s’expriment à l’aide du


P
changement de variables x = θpωp. Au niveau du SP,
p∈Ω
elles peuvent s’exprimer en termes des variables x ou en
modifiant la nature du SP (sans trop le complexifier).
Lorsque imposées au niveau du SP, toutes les colonnes
du PMR ne satisfaisant pas ces règles doivent être reti-
rées avant d’évaluer le prochain noeud de branchement.

Remarque : Pour que la méthode soit exacte, il faut


générer au besoin des colonnes dans tous les noeuds de
l’arbre d’énumération.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.30

Lorsque la formulation (6.49)–(6.53) est équivalente à la


formulation que l’on obtiendrait en remplaçant les con-
traintes (6.53) par des contraintes d’intégrité sur les va-
riables θp, les décisions de branchement sur les variables
θp du type θp ≤ bθ̄pc et θp ≥ dθ̄pe (θ̄p étant la valeur de
θp dans la solution courante) sont inefficaces. De plus,
imposer θp ≤ bθ̄pc demande d’interdire la génération par
les SPs de la solution réalisable correspondante. Cela est
souvent difficile à implanter, voire impossible.

Les règles de décision doivent alors se définir comme


lorsqu’il n’y a pas d’équivalence, i.e., en se basant sur
les variables x.

Voyons d’abord trois exemples de règles de décision pour


le MDVSP. Nous verrons aussi comment trouver une so-
lution heuristique pour le problème de découpe.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.31

Xokk ,j =
P P
Si le nombre de véhicules θpk
j | (ok ,j)∈Ak p∈Ωk \{0}
utilisés par un dépôt k ∈ K dans la solution d’une re-
laxation linéaire est fractionnaire, un branchement sur
ce nombre de véhicules peut être effectué au niveau du
PM. Une telle décision ne peut s’imposer au niveau des
SPs car elle est globale, i.e., elle ne peut être imposée
qu’en considérant simultanément tous les horaires géné-
rés pour le dépôt k.

Si une tâche s ∈ S est effectuée par des véhicules pro-


venant de différents dépôts, alors un branchement peut
être effectué sur le dépôt devant fournir le véhicule pour
cette tâche. Par exemple, si 0 < Fsk = k
P
Xsj =
j | (s,j)∈A k
P s s
apk θpk < 1 (où apk = 1 si le chemin p effectue la
p∈Ωk
tâche s et 0 sinon), alors on peut imposer Fsk = 1 sur une
branche et Fsk = 0 sur l’autre. Ces décisions se traitent
au niveau des SPs. En effet, pour imposer Fsk = 1, on
peut retirer le noeud s et les arcs qui lui sont adja-
cents de tous les graphes Gq , q ∈ K \ {k}. Pour imposer
Fsk = 0, on retire ce noeud et ces arcs du graphe Gk .
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.32

Si le flot direct de véhicules Fij entre deux tâches i et


j est fractionnaire (0 < Fij < 1), un branchement sur
k
P
Fij peut être effectué. Dans ce cas, Fij = Xij =
k∈K
P P ij ij
bpk θpk (où bpk = 1 si le chemin p emprunte l’arc
k∈K p∈Ωk
(i, j) et 0 sinon). Par conséquent, les décisions peuvent
être imposées dans le PM. Or, comme ces décisions
peuvent être imposées pour chaque horaire individuelle-
ment, il est aussi possible et plus efficace de les imposer
au niveau du SP.

En effet, pour fixer Fij à 0, il suffit d’enlever l’arc (i, j)


reliant les tâches i et j dans tous les graphes associés
aux SPs. Pour fixer Fij à 1, il suffit d’enlever de tous
ces graphes tous les arcs (`, j) et (i, `) à l’exception de
l’arc (i, j). De plus, pour cette décision, la contrainte
de couverture de la tâche j peut être éliminée du PM
puisqu’elle devient redondante avec celle de la tâche i.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.33

Pour le problème de découpe, différentes règles de bran-


chement exactes peuvent être définies. Par contre, elles
sont soit peu efficaces (au niveau du PM) ou plus com-
plexes (au niveau du SP) car les contraintes d’intégrité
sont imposées sur les grands rouleaux spécifiques et les
colonnes générées ne sont pas directement affectées aux
grands rouleaux.

Des solutions entières heuristiques peuvent toutefois être


facilement obtenues. Voyons trois façons.

1. La résolution de la relaxation linéaire initiale four-


nit un grand nombre de variables. On peut alors
résoudre à l’aide d’une méthode d’énumération im-
plicite le problème restreint à ces variables, i.e., sans
générer de nouvelles colonnes dans l’arbre.
2. Suite à la résolution de la relaxation linéaire, on
peut tout simplement arrondir vers le haut la valeur
de toutes les variables prenant une valeur fraction-
naire.
3. Idem à l’approche précédente, sauf qu’on arrondit
une variable à la fois et on génère de nouvelles co-
lonnes entre chaque arrondissement.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.34

6.4 Bornes

La méthode de génération de colonnes est utilisée pour


calculer des bornes inférieures aux noeuds de l’arbre
d’énumération. Comparons la qualité des bornes ob-
tenues par rapport à celles obtenues par la relaxation
continue des contraintes d’intégrité de la formulation
en variables x (appelée la formulation compacte).

Définissons les domaines suivants :

DPM = {x : Ax = b}, le domaine des contraintes glo-


bales.

DSP
C
= {x : Dx = e, x ≥ 0}, le domaine du SP continu.

DSP
I
= {x : Dx = e, x ≥ 0, x entiers}, le domaine du SP
en nombres entiers.

DPL = DPM ∩ DSP


C
, le domaine de la relaxation conti-
nue.

DDW
C
= DPM ∩ DSP
C
, le domaine du PM obtenu par la
décomposition de DW lorsque le SP est continu.

DDW
I
= DPM ∩ conv(DSP
I
), le domaine du PM obtenu
par la décomposition de DW lorsque le SP est en
nombres entiers.
Chapitre 6 : Décomposition de Dantzig-Wolfe 6.35

De ces définitions, il en découle que

I
DDW ⊆ DDW
C
= DPL.

Par conséquent, la méthode de génération de colonnes


produit la même borne que la relaxation continue de la
formulation compacte si le SP est continu ou s’il possède
la propriété d’intégrité suivante.

Définition: : Un SP possède la propriété d’intégrité si


tous les points extrêmes du domaine réalisable de sa
relaxation linéaire sont entiers (i.e., si sa formulation
est idéale).

D’un autre côté, la méthode de génération de colonnes


peut fournir une meilleure borne que la relaxation conti-
nue de la formulation compacte si le SP est en nombres
entiers et qu’il ne possède pas la propriété d’intégrité.
Chapitre 7

Relaxation lagrangienne

1. Relaxation et propriétés

2. Méthodes de résolution

3. Solutions réalisables

4. Qualité de la borne

5. Décomposition lagrangienne
Chapitre 7 : Relaxation lagrangienne 7.2

Comme la méthode de décomposition de DW, la mé-


thode de relaxation lagrangienne (RL) peut être utili-
sée pour résoudre un programme mathématique (P) de
grande taille de la forme suivante :

z P = min cTx (7.1)


x

sujet à : A1x = b1 (7.2)

A2x ≥ b2 (7.3)

Dx = e (7.4)

x ∈ X (7.5)

où x est le vecteur de variables restreint à l’ensemble X


qui peut être défini par des contraintes de non-négativité
et d’intégrité ; c ∈ Rn, b1, b2 ∈ Rm1 , e ∈ Rm2 , A1, A2 ∈
Rm1 × Rn et D ∈ Rm2 × Rn sont des vecteurs et matrices
de scalaires.

Les contraintes Dx = e doivent posséder une structure


particulière telle que, si les contraintes (7.2) et (7.3) sont
omises, P est nettement plus facile à résoudre.
Chapitre 7 : Relaxation lagrangienne 7.3

Les contraintes Dx = e peuvent avoir une structure


bloc-angulaire et être séparées par bloc disjoint de va-
riables x = (x1, x2, . . . , x|K|), i.e., elles peuvent s’écrire
comme |K| sous-ensembles de contraintes Dk xk = ek ,
k ∈ K.

Pour la méthode de RL, les contraintes d’inégalités A2x ≥


b2 sont traitées légèrement différemment des contrain-
tes d’égalité A1x = b1. Ces deux groupes de contraintes
sont appelées les contraintes liantes.

Les méthodes de décomposition de DW et de relaxation


lagrangienne peuvent donc être utilisées pour les mêmes
applications. Des exemples de celles-ci ont été présentés
à la section 6.1.
Chapitre 7 : Relaxation lagrangienne 7.4

7.1 Relaxation et propriétés

Associons aux contraintes (7.2) et (7.3) les vecteurs de


multiplicateurs de Lagrange π (sans restriction) et µ
(µ ≥ 0), respectivement.

Pour des valeurs quelconques de π et non-négatives de


µ, la relaxation lagrangienne de P par rapport à (7.2)–
(7.3) s’obtient en transférant les contraintes liantes dans
l’objectif de la façon suivante :

L(π, µ) = min cTx − π T(A1x − b1) − µT(A2x − b2) (7.6)


x

sujet à : Dx = e (7.7)

x ∈ X (7.8)

La fonction objectif du problème de minimisation, le


problème de minimisation et la fonction L(π, µ) sont
appelés la fonction lagrangienne, le sous-problème la-
grangien et la fonction duale lagrangienne, respective-
ment.
Chapitre 7 : Relaxation lagrangienne 7.5

L’objectif de ce SP se récrit :

π Tb1 + µTb2 + min (cT − π TA1 − µTA2)x.


x

Par conséquent, il s’agit du même SP (à une constante


près) que celui proposé par la méthode de décomposi-
tion de DW.

Lorsque le SP est séparable par bloc de variables, on


obtient :
X
T
L(π, µ) = π b1 + µ b2 + T
min (cTk − π TA1k − µTA2k )xk
xk ∈∆k
k∈K

où l’indice k réfère au kième SP, k ∈ K,


et ∆k = {xk | Dk xk = ek , xk ∈ X k } est le domaine de
ce kième SP.
Chapitre 7 : Relaxation lagrangienne 7.6

Proposition: : Pour tout π quelconque et µ ≥ 0, L(π, µ)


est une borne inférieure sur z P, i.e.,

L(π, µ) ≤ z P.

Preuve : Pour toute solution x ∈ ∆P , le domaine réali-


sable de P , on a :

l(x, π, µ) = cTx − π T(A1x − b1) − µT(A2x − b2) ≤ cTx

car A1x − b1 = 0, A2x − b2 ≥ 0 et µ ≥ 0. Puisque


∆P ⊆ ∆SP , le domaine réalisable du SP lagrangien, on
obtient que

L(π, µ) = min l(x, π, µ) ≤ min l(x, π, µ) ≤ min cTx = z P .


x∈∆SP x∈∆P x∈∆P


Chapitre 7 : Relaxation lagrangienne 7.7

Posons maintenant le problème dual lagrangien afin de


trouver L∗, la plus grande des bornes inférieures L(π, µ),
appelée la borne duale lagrangienne :

L∗ = max L(π, µ)
π,µ
sujet à : µ ≥ 0.

D’où, pour tout π, µ ≥ 0 et solution réalisable x de P,

L(π, µ) ≤ L∗ ≤ z P ≤ cTx.

Proposition: (test d’optimalité) : Soit x∗ une solution


du SP lagrangien pour les multiplicateurs π ∗ et µ∗ ≥
0. Si x∗ satisfait les contraintes relaxées (7.2) et (7.3)
et µ∗(A2x∗ − b2) = 0, alors x∗ est aussi une solution
optimale pour P et z P = L(π ∗, µ∗) = L∗.

Preuve : x∗ est une solution réalisable pour P . De plus,

L(π ∗, µ∗) = cTx∗ −π ∗T(A1x∗ −b1)−µ∗T(A2x∗ −b2) = cTx∗

car A1x∗ − b1 = 0 et µ∗(A2x∗ − b2) = 0. Cette égalité


entre la valeur de x∗ et une borne inférieure sur la valeur
optimale montre que x∗ est optimale pour P . 
Chapitre 7 : Relaxation lagrangienne 7.8

Remarque : La solution x∗ du SP lagrangien pour des


multiplicateurs optimaux π ∗ et µ∗ du dual lagrangien ne
satisfait pas souvent les contraintes (7.2) et (7.3). Par
conséquent, la résolution du dual lagrangien ne donne
pas souvent une solution optimale primale.

La théorie de la dualité lagrangienne procure les résul-


tats suivants.

Proposition: : La fonction duale lagrangienne L(π, µ)


est concave et linéaire par morceaux. Elle est donc non-
différentiable.

Proposition: : Si P est un PL et possède une solution


optimale x∗, alors il existe des multiplicateurs optimaux
π ∗ et µ∗ ≥ 0 pour le dual lagrangien tels que

L(π ∗, µ∗) = L∗ = z P = cx∗.


Chapitre 7 : Relaxation lagrangienne 7.9

7.2 Méthodes de résolution

Une approche de relaxation lagrangienne consiste donc


à formuler le problème dual lagrangien et à le résoudre.
Cette section présente deux méthodes de résolution pou-
vant servir à cette fin.

7.2.1 Méthode du sous-gradient

La méthode du sous-gradient est une généralisation de


la méthode du gradient au cas où la fonction à mini-
miser (i.e., - maximiser) est non-différentiable. Posons
J (π, µ) = −L(π, µ).
Chapitre 7 : Relaxation lagrangienne 7.10

Définition: : Si f : Rn → R est une fonction convexe,


le sous-différentiel de f en un point x̄, noté ∂f (x̄), est
l’ensemble des vecteurs suivants :

∂f (x̄) = {γ ∈ Rn | f (x) ≥ f (x̄) + γ T(x − x̄), ∀x ∈ Rn}.

Un vecteur γ ∈ ∂f (x̄) est appelé un sous-gradient de f


en x̄.

Remarques :
• Si f (x) est différentiable, alors ∂f (x) = {∇f (x)}.
• Si γ ∈ ∂f (x̄), alors la fonction affine f (x̄)+γ T(x− x̄)
minore f (x) en tout point x et passe par le point
(x̄, f (x̄)).

Proposition: : Soit x∗ une solution optimale du SP la-


grangien défini pour π et µ. Alors le vecteur γ(x∗) =
A1 x∗ − b 1
 
est un sous-gradient de J au point (π, µ).
A2 x∗ − b 2
Chapitre 7 : Relaxation lagrangienne 7.11

La méthode du sous-gradient est itérative. À partir d’une


solution initiale (π0, µ0), elle propose à chaque itération
t une nouvelle solution comme suit :
+
(πt, µt) = [(πt−1, µt−1) − stγt(x∗)T]

où st est la grandeur du pas à l’itération t ; γt(x∗) est le


sous-gradient proposé par la solution du SP lagrangien
défini pour πt−1 et µt−1 ; et la notation [v]+ indique la
partie non-négative du vecteur v pour les composantes
restreintes à des valeurs non-négatives (µ ≥ 0).

Afin d’assurer la convergence de l’algorithme, la suite


des pas st doit respecter les deux conditions suivantes :
t
X
lim st = 0 lim sj = ∞.
t→∞ t→∞
j=1

Ces conditions sont respectées, par exemple, par la suite


α
formée des termes st = t
où α est une constante posi-
tive.
Chapitre 7 : Relaxation lagrangienne 7.12

En pratique, ce type de suite divergente produit une


convergence très lente. Au lieu, on utilise une suite for-
mée des termes
(J (πt−1, µt−1) − z)
st = αt
kγtk2
où αt ∈ [0, 2] est une constante qui tend vers 0 et z est
une borne inférieure sur la valeur optimale. Sans preuve
théorique pour l’appuyer, cette suite permet habituel-
lement une convergence rapide.

La borne inférieure z peut être mise à jour en cours de


résolution à l’aide d’une heuristique.

Plusieurs critères peuvent être utilisés pour arrêter l’al-


gorithme après l’itération t :

1. kγtk < 

2. J¯ − z <  ;

3. t > tmax

où  est une petite constante positive, J¯ est la plus petite


borne supérieure J (πt, µt) trouvée et tmax est un entier
positif suffisamment grand.
Chapitre 7 : Relaxation lagrangienne 7.13

7.2.2 Programmation linéaire

Une autre façon de résoudre le problème dual lagrangien


consiste à résoudre un PL. Ce PL s’obtient de la façon
suivante.

Revenons à la définition du SP lagrangien :

L(π, µ) = π Tb1 + µTb2 + min (cT − π TA1 − µTA2)x


x∈∆

où ∆ correspond au domaine défini par les contraintes


Dx = e et x ∈ X.

Si, pour π et µ donnés, il existe un rayon extrême ρr ,


r ∈ Γ, de conv(∆) tel que (cT − π TA1 − µTA2)ρr < 0,
alors L(π, µ) = −∞.

Sinon

L(π, µ) = π Tb1 + µTb2 + (cT − π TA1 − µTA2)ωp

où ωp, p ∈ Ω, est un point extrême de conv(∆).


Chapitre 7 : Relaxation lagrangienne 7.14

Par conséquent,
 T
 π b 1 + µ T
b 2 + min (c T
− π T
A1 − µ T
A2)ωp
 p∈Ω
L(π, µ) = si (cT − π TA1 − µTA2)ρr ≥ 0, ∀r ∈ Γ

−∞ sinon.

On en déduit que L∗ peut s’obtenir en résolvant le PL


suivant :
L∗ = max v
v,π,µ

sujet à :

v ≤ π Tb1 + µTb2 + (cT − π TA1 − µTA2)ωp, ∀p ∈ Ω

(cT − π TA1 − µTA2)ρr ≥ 0, ∀r ∈ Γ

µ ≥ 0.
Chapitre 7 : Relaxation lagrangienne 7.15

En dénotant par θp et λr les variables duales associées


à ces contraintes, le dual de ce PL est :
X X
min c p θp + cr λ r
θ,λ
p∈Ω r∈Γ

X X
sujet à : a1pθp + a1r λr = b1
p∈Ω r∈Γ
X X
a2pθp + a2r λr ≥ b2
p∈Ω r∈Γ
X
θp = 1
p∈Ω

θp ≥ 0, ∀p ∈ Ω

λr ≥ 0, ∀r ∈ Γ.

Il s’agit de la formulation du PM que l’on obtient en


appliquant le principe de décomposition de DW sur le
problème initial (7.1)–(7.5). Le problème dual lagran-
gien peut donc se résoudre par génération de colonnes.

Les multiplicateurs π et µ sont aussi les variables duales


des contraintes associées aux contraintes du PM.
Chapitre 7 : Relaxation lagrangienne 7.16

7.3 Solutions réalisables

Une méthode de relaxation lagrangienne a, en général,


l’inconvénient de ne pas produire de solutions primales
réalisables. En effet, la résolution du SP procure une
solution qui ne satisfait pas la plupart du temps les con-
traintes relaxées (7.2) et (7.3).

Pour obtenir une solution réalisable, on utilise bien sou-


vent une heuristique. Cette heuristique, qui peut être
sollicitée à toute itération, est habituellement guidée par
les valeurs courantes des multiplicateurs de Lagrange ou
les solutions des SPs lagrangiens résolus (incluant pos-
siblement ceux des itérations précédentes).

Voyons un exemple avec le MDVSP que l’on reformule


comme suit (un type de flot est associé à chaque dépôt) :
Chapitre 7 : Relaxation lagrangienne 7.17

X X
k
min cij Xij (7.9)
X
k∈K (i,j)∈Ak

sujet à :
X X
k
X`j = 1, ∀` ∈ C (7.10)
k∈K j | (`,j)∈Ak
X X
k
Xj` = 1, ∀` ∈ C (7.11)
k∈K j | (j,`)∈Ak
X
Xokk j ≤ nk , ∀k ∈ K (7.12)
j∈C∪{dk }
X X
k k
Xi` − X`j = 0, ∀k ∈ K, ` ∈ C (7.13)
i | (i,`)∈Ak j | (`,j)∈Ak
k
Xij ≥ 0, entiers, ∀k ∈ K, (i, j) ∈ Ak .

(7.14)

Dans ce modèle, les contraintes (7.11) sont redondantes.


Supposons que l’on omet les contraintes (7.12) et que
l’on relaxe les contraintes (7.13), on obtient alors comme
SP un problème de flot à coût minimum (pour chaque
k
arc (i, j), on retient seulement la variable Xij de coût
réduit minimum) faisant passer une unité de flot dans
chaque noeud ` ∈ C.
Chapitre 7 : Relaxation lagrangienne 7.18

La solution du SP fournit donc un ensemble de chemins


qui peuvent être composés d’arcs associés à différents
dépôts. L’heuristique construit alors une solution réali-
sable à partir de cette solution comme suit.

Pour chaque chemin de la solution et chaque dépôt, on


peut calculer le coût d’affecter ce chemin au dépôt. On
résout par la suite un problème de transport pour af-
fecter chaque chemin à un dépôt tout en respectant les
contraintes de disponibilité des véhicules par dépôt.

7.4 Qualité de la borne

La borne calculée par une méthode de relaxation lagran-


gienne est la même que celle calculée par la méthode de
décomposition de DW équivalente.

Par conséquent, une méthode de relaxation lagrangienne


produit une borne inférieure qui est plus grande ou égale
à la borne obtenue par la relaxation continue du pro-
blème (voir section 6.4).
Chapitre 7 : Relaxation lagrangienne 7.19

7.5 Décomposition lagrangienne

Dans certains cas, la qualité des bornes peut être amélio-


rée en utilisant une décomposition lagrangienne. Consi-
dérons le problème P suivant :

z PL = min cTx (7.15)


x

sujet à : D1x = e1 (7.16)

D2 x = e 2 (7.17)

x ∈ X (7.18)

où D1x = e1 et D2x = e2 sont deux ensembles de con-


traintes faciles.

Pour effectuer une décomposition lagrangienne, il faut


d’abord modifier P en ajoutant un nouveau vecteur de
variables y et des contraintes x = y et en remplaçant
D2x = e2 par D2y = e2 :
Chapitre 7 : Relaxation lagrangienne 7.20

min cTx (7.19)


x,y

sujet à : D1x = e1 (7.20)

D2 y = e 2 (7.21)

x = y (7.22)

x, y ∈ X. (7.23)

La décomposition lagrangienne correspond alors à une


relaxation lagrangienne des contraintes x = y à l’aide
de multiplicateurs π :

L(π) = min cTx − π T(x − y) (7.24)


x,y

sujet à : D1x = e1 (7.25)

x ∈ X (7.26)

D2 y = e 2 (7.27)

y ∈ X (7.28)

On obtient deux sous-problèmes, un en x et un en y. Par


contre, il y a beaucoup de multiplicateurs π à ajuster.
Chapitre 7 : Relaxation lagrangienne 7.21

Puisqu’il s’agit d’une relaxation lagrangienne du pro-


blème, on obtient pour tout vecteur π : L(π) ≤ z P.

De plus, on peut démontrer la proposition suivante.

Proposition: : Soit

LDL, la borne duale lagrangienne obtenue par décom-


position lagrangienne (LDL = max L(π)) ;
π

LRL
1 , la borne duale lagrangienne obtenue par relaxa-

tion lagrangienne des contraintes D1x = e1 ;

LRL
2 , la borne duale lagrangienne obtenue par relaxa-

tion lagrangienne des contraintes D2x = e2.

LC , la borne de la relaxation continue.

Alors,

LC ≤ min{LRL
1 , L2 } ≤ max{L1 , L2 } ≤ L .
RL RL RL DL

Remarques :
• Si les deux SPs possèdent la propriété d’intégrité,
alors les trois inégalités deviennent des égalités.
• Si seulement un des deux SPs possède la propriété
d’intégrité, alors les première et troisième inégalités
deviennent des égalités.
Chapitre 8

Décomposition de Benders

1. Introduction

2. Exemple d’application

3. Principe de décomposition

4. Méthode de résolution
Chapitre 8 : Décomposition de Benders 8.2

8.1 Introduction

La méthode de décomposition de Benders peut être uti-


lisée pour résoudre un programme mathématique (P)
de grande taille dont les variables se séparent en deux
groupes x et y comme suit :

Minimiser cTx + dTy (8.1)

sujet à : Ax + By = e (8.2)

x ≥ 0 (8.3)

y ∈ Y (8.4)

où x ∈ Rn1 et y ∈ Rn2 sont les vecteurs de variables ;


c ∈ Rn1 , d ∈ Rn2 , e ∈ Rm, A ∈ Rm × Rn1 et B ∈ Rm × Rn2
sont des vecteurs et matrices de scalaires ; et Y définit
le domaine des variables y.

Les contraintes Ax + By = e doivent présenter une


structure particulière telle que, si y est fixé, ces con-
traintes jumelées aux contraintes x ≥ 0 correspondent
aux contraintes d’un problème facile à résoudre.
Chapitre 8 : Décomposition de Benders 8.3

Par exemple, lorsque y est fixé, les contraintes Ax = e−


By et x ≥ 0 peuvent avoir la structure des contraintes
d’un ou plusieurs problèmes de flot à coût minimum
ou de programmation linéaire, chaque problème étant
restreint à un sous-ensemble des variables x qui lui est
propre.

Lorsque x peut se partitionner en k sous-ensembles dis-


joints de variables x = (x1, x2, . . . , xk ) tels que les con-
traintes Ax = e − By et x ≥ 0 peuvent s’écrire comme
k sous-ensembles de contraintes Aixi = ei − Biy, xi ≥ 0,
i = 1, 2, . . . , k, on dit que le problème a une structure
dual bloc-angulaire.

Les variables y sont appelées les variables couplantes


car elles sont impliquées dans toutes les contraintes.
Chapitre 8 : Décomposition de Benders 8.4

8.2 Exemple d’application

Le problème de localisation d’entrepôts sans capacité


vu à la section 1.3.5 se prête bien à la décomposition de
Benders. Rappelons la notation.

M = {1, 2, . . . , m} : ensemble des clients

N = {1, 2, . . . , n} : ensemble des sites pour construire


un entrepôt

fj : coût fixe pour construire sur le site j

cij : coût pour desservir le client i à partir du site j

Variables :

1 si un entrepôt est construit sur le site j
yj =
0 sinon

1 si entrepôt j dessert client i
xij =
0 sinon
Chapitre 8 : Décomposition de Benders 8.5

La formulation forte pour ce problème est donnée par :


X X X
min cij xij + fj yj (8.5)
x,y
i∈M j∈N j∈N

sujet à :
X
xij = 1, ∀i ∈ M (8.6)
j∈N

xij ≤ yj , ∀i ∈ M, j ∈ N (8.7)

xij ≥ 0, ∀i ∈ M, j ∈ N (8.8)

yj ∈ {0, 1}, ∀j ∈ N (8.9)

Cette formulation a une structure dual bloc-angulaire


avec yj , j ∈ N , comme variables couplantes. Lorsque
celles-ci sont fixées, on obtient pour chaque client i ∈ M
un problème qui se résout par inspection (incluant le
calcul des variables duales).
Chapitre 8 : Décomposition de Benders 8.6

8.3 Principe de décomposition de Benders

Le principe de décomposition de Benders permet de


récrire P sous la forme d’un autre programme mathé-
matique qui contient moins de variables, mais un très
grand nombre de contraintes. Les variantes couplantes
sont utilisées pour décomposer le problème.

D’abord, exprimons P sous la forme suivante :

min h(y) + dTy


y∈Y

où, pour un y ∈ Y donné,

h(y) = Minimiser cTx (8.10)

sujet à : Ax = e − By (8.11)

x ≥ 0 (8.12)

est appelé le sous-problème primal de Benders (SPP ).


Chapitre 8 : Décomposition de Benders 8.7

On suppose que

∞ si SPP est non-réalisable
h(y) =
−∞ si SPP est non-borné.

En associant les variables duales u aux contraintes (8.11),


le dual de ce problème, appelé le sous-problème dual de
Benders (SPD ), est :

h(y) = Maximiser uT(e − By) (8.13)

sujet à : uTA ≤ c. (8.14)

Le problème P est réalisable s’il existe y ∈ Y tel que


le SPP est réalisable. Le théorème suivant de Farkas et
Minkowski permet de traduire cette condition.

Théorème: : SPP est réalisable pour y ∈ Y si et seule-


ment si

uT(e − By) ≤ 0 pour tout u vérifiant uTA ≤ 0.


Chapitre 8 : Décomposition de Benders 8.8

Comme le cône C = {u | uTA ≤ 0} est polyédrique,


il possède un nombre fini de rayons extrêmes que l’on
dénote par ρr , r ∈ Γ. D’où, SPP est réalisable pour
y ∈ Y si et seulement si

ρTr (e − By) ≤ 0, ∀r ∈ Γ.

Par conséquent, P est réalisable s’il existe y ∈ Y tel que

ρTr (e − By) ≤ 0, ∀r ∈ Γ.

Ces contraintes peuvent donc être ajoutées à la formu-


lation de P afin d’éliminer la possibilité que le SPP soit
non-réalisable. On obtient alors :

Minimiser h(y) + dTy

sujet à : ρTr (e − By) ≤ 0, ∀r ∈ Γ

y ∈ Y.

Dénotons par Ȳ ce domaine réalisable.


Chapitre 8 : Décomposition de Benders 8.9

Supposons maintenant qu’il existe y ∈ Ȳ . Pour un tel


y, le SPP est soit borné ou non-borné et son dual SPD
est alors borné ou non-réalisable, respectivement.

Supposons que SPP est non-borné pour un y ∈ Ȳ . On


peut alors conclure que P est aussi non-borné. On re-
marque que, dans ce cas, SPD est non-réalisable quelque
soit y puisque son domaine ne dépend pas de y.

Supposons que SPP est borné pour un y ∈ Ȳ . Dans ce


cas, SPD est aussi borné et son optimum est atteint en
un point extrême ωp, p ∈ Ω, de son domaine, i.e.,

h(y) = max ωpT(e − By).


p∈Ω

Par conséquent, P peut se récrire :

Minimiser z + dTy (8.15)

sujet à : z − ωpT(e − By) ≥ 0, ∀p ∈ Ω (8.16)

ρTr (e − By) ≤ 0, ∀r ∈ Γ (8.17)

y ∈ Y. (8.18)
Chapitre 8 : Décomposition de Benders 8.10

Définition: : Les contraintes (8.16) et (8.17) sont appe-


lées des coupes d’optimalité et des coupes de faisabilité,
respectivement.

Le programme (8.15)–(8.18), appelé problème maı̂tre


(PM), est équivalent à P. En général, il comporte moins
de variables mais beaucoup plus de contraintes, soit une
par point extrême et rayon extrême du domaine de SPD .
Chapitre 8 : Décomposition de Benders 8.11

8.4 Méthode de résolution

En pratique, la construction de PM est difficile puisque


l’énumération des points et rayons extrêmes du domaine
de SPD est un problème NP-complet. L’approche de dé-
composition de Benders propose donc de recourir à la
génération de contraintes pour résoudre le PM. Voyons
l’algorithme avant de présenter quelques stratégies d’ac-
célération.

8.4.1 Algorithme

À chaque itération n de la méthode de décomposition


de Benders, une relaxation du PM, appelée le PM re-
laxé (PMRn), est résolue. Ce PMRn contient un sous-
ensemble Ωn ⊆ Ω des coupes d’optimalité et un sous-
ensemble Γn ⊆ Γ des coupes de faisabilité. Ensuite, le
SPD est résolu afin d’identifier la contrainte du PMR
non-considérée qui est la plus violée par (z, y), la solu-
tion du PMRn. L’algorithme se termine lorsque le SPD
ne peut plus identifier de contrainte violée.
Chapitre 8 : Décomposition de Benders 8.12

Algorithme 8.1: Méthode de décomposition de Benders


1: Poser n = 1 et déterminer des sous-ensembles Ω1 et

Γ1 de coupes initiales (possiblement vides).


2: Résoudre le PMRn en considérant Ωn et Γn .

3: Si PMRn est non-réalisable alors

4: Arrêter car P est non-réalisable.


5: Sinon

6: La solution obtenue est notée (zn, yn).


7: Résoudre le SPP en utilisant yn .

8: Si SPP est non-réalisable alors

9: Il existe un rayon extrême ρr , r ∈ Γ \ Γn tel que


ρr (e−By) > 0. Poser Γn+1 = Γn ∪{r} et n = n+1.
Retourner à l’étape 2.
10: Sinon Si SPP est non-borné alors

11: Arrêter car P est non-borné.


12: Sinon

13: Il existe un point extrême ωp, p ∈ Ω \ Ωn, de coût


hn = ωpT(e − Byn).
14: Si hn > zn alors
15: Poser Ωn+1 = Ωn ∪ {p} et n = n + 1. Retourner
à l’étape 2.
16: Sinon
17: Arrêter car (xn, yn) est optimale pour P où xn
est la solution optimale de SPP .
Chapitre 8 : Décomposition de Benders 8.13

Remarque : Les premiers PMRs pourraient être non-


bornés (étape 6). Dans ces cas, on choisit un point réa-
lisable (zn, yn) tel que zn est très petit.

Théorème: : La méthode de décomposition de Benders


converge en un nombre fini d’itérations vers la solution
optimale.

La preuve découle du fait qu’il y a un nombre fini de


points et rayons extrêmes et que le SPD ne peut générer
deux fois le même point ou rayon extrême.
Chapitre 8 : Décomposition de Benders 8.14

8.4.2 Stratégies d’accélération


Les stratégies suivantes sont souvent utilisées.
• Le critère d’arrêt hn ≤ zn est remplacé par hn ≤
zn + .
• Des contraintes redondantes pour P peuvent être
ajoutées à PM afin de l’enrichir.
• Des coupes initiales peuvent être générées à partir
d’une relaxation du problème. Par exemple, si le
PM est en nombres entiers, des coupes d’optimalité
et de faisabilité pour sa relaxation linéaire sont aussi
valides pour PM.
• Si le SP est séparable en |K| sous-ensembles de va-
riables disjoints, il est préférable de générer une
coupe par SP. On remplace alors, dans le PMR, la
variable z par |K| variables z k qui sont utilisées in-
dividuellement dans les coupes. L’objectif du PMR
P k
consiste alors à minimiser z + dTy.
k∈K
• Lorsqu’il existe plusieurs solutions pour SPD , il est
possible de résoudre un petit PL afin de déterminer
quelle solution fournira une coupe Pareto-optimale,
soit une coupe qui resserrera le plus possible le do-
maine du PMR.

Vous aimerez peut-être aussi