Académique Documents
Professionnel Documents
Culture Documents
Méthodes de coupes
Eric Soutil
SUP'COM, ENSTA
2022-2023
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
Soit
X = {x t.q. Ax ≤ b, x entier}
min z = −10x1 −11x2
(P) 10x1 +12x2 ≤ 59
s.c.
x1 , x2 ≥ 0 et entiers
x1 ≤ 5 est valide
x1 + x2 ≤ 5, 5 est valide
Questions :
▶ Qu'est-ce qu'une bonne coupe ?
7x1 − 2x2 ≤ 14 (1)
x2 ≤ 3 (2)
2
1
x − 2 x2 ≤ 3 (3)
x ≥ 0 et entier
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
X X
⌊aij ⌋xj ≤ aij xj
j∈N j∈N
Donc on a : X
xi + ⌊aij ⌋xj ≤ b i
j∈N
X
xi + ⌊aij ⌋xj ≤ ⌊b i ⌋ ∀i ∈ B (2)
j∈N
X
(aij − ⌊aij ⌋)xj ≥ b i − ⌊b i ⌋
j∈N
Posons :
▶ fij = aij − ⌊aij ⌋ → partie fractionnaire de aij : 0 ≤ fij < 1
▶ fi = b i − ⌊b i ⌋ → partie fractionnaire de b i : 0 ≤ fi < 1
Finalement, nous obtenons la contrainte :
X
fij xj ≥ fi
∈N
j
X
− fij xj + s = −fi (3)
∈N
j
Propriété
Si la coupe (3) est ajoutée au tableau optimal du simplexe d'un PL, aucun
point admissible entier n'est exclu, le nouveau tableau est de base (la
matrice de base est la matrice identité), non primal réalisable si bi était
bien fractionnaire et dual réalisable.
Remarque
La nouvelle variable s est bien entière comme toutes les autres variables du
problème ;
X X
xi = − (−fi + fij xj ) + (⌊b i ⌋ − ⌊aij ⌋xj )
|{z}
j∈N j∈N
entier | {z } | {z }
s entier
Par ce procédé, on ajoute ainsi des coupes une par une, jusqu'à
obtention d'une solution de base entière, solution optimale du PLNE
de départ.
Propriété
L'optimum fractionnaire de la relaxation continue ne vérie pas la coupe de
Gomory, qui l'exclut.
En eet, ce point optimal fractionnaire est tel que tous les xj sont égaux à
0 et on a 0 < fi < 1.
algorithme Gomory
début
Résoudre la relaxation continue;
tant qu' il existe une composante fractionnaire dans la sol. opt. faire
Ajouter une coupe de Gomory
Résoudre par l'algorithme dual du simplexe
fait
fin
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
1 Choisir un indice r tel que br < 0 (si un tel indice n'existe pas, on est
à l'optimum puisque c ≥ 0.
2 Si les coecients de la r ième ligne sont tous positifs ou nuls, (P)
ième
n'admet pas de solution. En eet, cette r contrainte s'écrit :
n
X
arj xj = br
j=1
Elle ne peut donc pas être satisfaite puisque br < 0 et toutes les
variables doivent être ≥0
cs cj
= maxj|arj <0
ars arj
Sinon, on peut itérer le procédé (ou conclure que (P) n'a pas de
solution réalisable).
Il faut également préciser que (P) ne peut avoir d'optimum non borné
puisqu'on connaît, au départ, une solution réalisable du dual de (P)
(la trouver).
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
xa + xb ≤ 1
xa + xb ≤ 1
xa + xb ≤ 1
xa + xb ≥ 1
xa + xb ≤ 1
xa + xb ≥ 1
xa + xb ≤ 1
xa + xb ≥ 1
xa ≤ xb
xa + xb ≤ 1
xa + xb ≥ 1
xa ≤ xb
xa + xb ≤ 1
xa + xb ≥ 1
xa ≤ xb
xa ≤ xb
xb + xc ≥ xa
xb + xc ≥ xa
Si a ne se produit pas, alors une quantité y doit être nulle, sinon y est
libre dans IR :
xb + xc ≥ xa
Si a ne se produit pas, alors une quantité y doit être nulle, sinon y est
libre dans IR :
fonctions linéaires ai x , i = 1, . . . , m
fonctions linéairesai x , i = 1, . . . , m
▶ Ajouter une variable z
▶ Ajouter les contraintes z ≤ ai x , i = 1, . . . , m
▶ Maximiser z
k contraintes parmi n
▶ On a n contraintes ai x ≤ bi , i = 1, . . . , n
▶ k au moins doivent être satisfaites
▶ Pour chacune des contraintes on suppose qu'il existe Mi tel que
ai x ≤ bi + Mi , soit satisfaite ∀x
k contraintes parmi n
▶ On a n contraintes ai x ≤ bi , i = 1, . . . , n
▶ k au moins doivent être satisfaites
▶ Pour chacune des contraintes on suppose qu'il existe Mi tel que
ai x ≤ bi + Mi , soit satisfaite ∀x
▶ On pose y1 , . . . , yn des variables binaires
ai x ≤ bi + Mi yi ∀i = 1, . . . , n
Pn
i=1 yi ≤ n − k
−a1 x ≤ b1 + M(1 − y )
a2 x ≤ b2 + My
−a1 x ≤ b1 + M(1 − y )
a2 x ≤ b2 + My
n
X n
X
x= vi yi et yi = 1
i=1 i=1
x ≥ Ly et x ≤My
Carré d'une variable binaire :
▶ Soit x ∈ {0, 1}. Linéariser x 2.
x ≥ Ly et x ≤My
Carré d'une variable binaire :
▶ Soit x ∈ {0, 1}. Linéariser x 2 .
▶ La variable x est équivalente à la variable x 2.
e≤x
e≤y
e = xy ⇔ e ≥x +y −1
e≥0
e ∈ IR
Généralisation :
▶ produit d'une variable binaire par une variable entière (bornée)
▶ produit de plusieurs variables binaires
▶ au carré de variables entières, ...
e≤x
e≤y
e = xy ⇔ e ≥x +y −1
e≥0
e ∈ IR
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
and Price)
▶ un nombre exponentiel de contraintes : génération de coupes (Branch
and Cut)
Formulation :
n m Xn
X X
min cj xj + hij yij
j=1 i=1 j=1
X n
yij = 1, ∀i
j=1
yij ≤ xj , ∀i, ∀j
x ∈ {0, 1}, 0 ≤ y ≤ 1
j ij
Formulation :
n m Xn
X X
min cj xj + hij yij
j=1 i=1 j=1
X n
yij = 1, ∀i
j=1
yij ≤ xj , ∀i, ∀j
x ∈ {0, 1}, 0 ≤ y ≤ 1
j ij
L'un est plus petit que l'autre (et même inclus dans l'autre). Lequel ?
Recouvrement : m
X
min cj xj
j=1
X
Aij xj ≥ 1, ∀i
j
x ∈ {0, 1}m
m
X m
X
min cj xj max (ou min) cj xj
j=1 j=1
X X
Aij xj ≤ 1, ∀i Aij xj = 1, ∀i
j j
x ∈ {0, 1}m x ∈ {0, 1}m
→ De nombreuses applications
→ De nombreuses applications
c.f. TD
Soient les variables xij = 1 si l'arc (i, j) est dans le tour, 0 sinon.
Soient les variables xij = 1 si l'arc (i, j) est dans le tour, 0 sinon.
u1 = 1
2 ≤ ui ≤ n, ∀i ̸= 1
ui − uj + 1 ≤ n (1 − xij ), ∀i ̸= 1, j ̸= 1
Mais cette formulation est plus faible que la formulation par les coupes
P
e∈δ + (W ) x(e) ≥ 1 ∀W ⊊ V et W ̸= ∅
P
e∈δ − (W ) x(e) ≥ 1 ∀W ⊊ V et W ̸= ∅
où δ + (W ) (resp. δ − (W )) désigne l'ensemble des arcs sortant de
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes
On suppose ici que toutes les variables sont entières par facilité de
notation mais une partie des variables peut représenter des réels :
Propriété 1
∀x solution réalisable de (P) et ∀λ ≥ 0, L(x, λ) ≤ f (x).
Preuve
La propriété est vraie puisque λ≥0 et Ax ≤ b
Propriété 2
Soit x∗ une solution optimale de (P). ∀λ ≥ 0, ω(λ) ≤ f (x ∗ )
Preuve
En eet, ∀λ ≥ 0, ω(λ) ≤ L(x ∗ , λ) ≤ f (x ∗ )
Propriété
La valeur optimale de (D) est une borne inférieure de la valeur optimale de
(P).
min cx
ω(λ∗ ) = s.c. Ax ≤ b
x ∈ conv ({Cx ≤ d : x ∈ Zn+ })
min cx
ω(λ∗ ) = s.c. Ax ≤ b
x ∈ conv ({Cx ≤ d : x ∈ Zn+ })
Preuve
On se met ici dans le cas où {x : Cx ≤ d : x ∈ Zn+ } est un ensemble ni
(mais très grand) de points X 1, X 2, . . . , X K } :
Preuve (suite)
Ce dernier problème d'optimisation est un programme linéaire avec un
très grand nombre de contraintes K.
Son dual (au sens de la programmation linéaire) est :
Preuve (n)
min cX
= AX ≤ b
X est une combinaison convexe de X 1 , X 2 , . . . , X K
min cX
= s.c. AX ≤ b
X ∈ conv ({Cx ≤ d : x ∈ Zn+ })
Corollaire
Si :
conv ({Cx ≤ d : x ∈ Zn+ }) = {Cx ≤ d : x ∈ Rn+ }
... alors ω(λ∗ ) est égale à la valeur de la relaxation continue de (P).
dernière.
Propriété
La fonction duale ω(λ) est linéaire par morceaux et concave.
Propriété
Si, pour un λ̃ ≥ 0, ω(λ̃) est obtenu en x̃ alors Ax̃ − b est un sous-gradient
de ω en λ̃.
→ On peut donc facilement mettre en ÷uvre un algorithme de
sous-gradient pour résoudre (D).
Propriété
Si θ vérie
∞
X
θk = ∞ et lim θk =0
k→∞
k=1
k
alors ω(λ ) converge vers la valeur optimale de (D)
θk = θ0 αk , où 0 <α<1
ω−ω(λk )
θk = f ||γ k ||2
, où 0 <f <2 et ω est une estimation de la valeur
optimale. C'est cette dernière séquence qui est le plus souvent utilisée.
Mais elles peuvent quelquefois donner des indications vers des bornes
primales (valeurs de solutions réalisables) de bonne qualité.
Exemple
Considérons le problème d'afectation généralisée, qui consite à aecter m
objets à n boites sous contrainte de capacité :
Pn
En relâchant les contraintes j=1 xij ≤ 1∀i , la fonction duale pour
tout λ≥0 donné est :
Il sut alors de retirer chaque objet i aecté plus d'une fois de chaque
boite sauf une, celle où cij est le plus élevé.
3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes