Vous êtes sur la page 1sur 106

ECUE2 - Optimisation Discrète

Méthodes de coupes

Eric Soutil

SUP'COM, ENSTA

2022-2023

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 1 / 86


Plan du cours
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 2 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 3 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 4 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 5 / 86


Les méthodes de coupes
Notion d'inégalité valide

Les méthodes de coupes constituent une seconde catégorie de


méthodes pour résoudre les PLNE.

Soit
X = {x t.q. Ax ≤ b, x entier}

Notion d' inégalité valide :


Dénition
L'inégalite πx ≤ π0 est valide pour X si et seulement si ∀x ∈ X , πx ≤ π0

On parle aussi de coupe ou troncature.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 6 / 86


Les méthodes de coupes
Notion d'inégalité valide  Un exemple



 min z = −10x1 −11x2

(P) 10x1 +12x2 ≤ 59

 s.c.
x1 , x2 ≥ 0 et entiers

20x1 + 24x2 ≤ 108 n'est pas valide : pourquoi ?

x1 ≤ 5 est valide

x1 + x2 ≤ 5, 5 est valide

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 7 / 86


Les méthodes de coupes
Notion d'inégalité valide

Questions :
▶ Qu'est-ce qu'une bonne coupe ?

▶ Si on connaît une famille de bonne coupes, comment l'utiliser dans la

résolution d'un PLNE ?

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 8 / 86


Les méthodes de coupes
Inégalité valide redondante

Une inégalité valide πx ≤ π0 est redondante si X = X ′ avec :


▶ X = {x t.q. Ax ≤ b, x ≥ 0}
▶ X ′ = {x t.q. Ax ≤ b, πx ≤ π0 , x ≥ 0}
Une telle inégalité est non redondante si l'ensemble X ′ est
strictement inclus dans X
Pour prouver qu'une inégalité valide πx ≤ π0 n'est pas redondante, il
sut de trouver un point x̃ ∈ X qui ne vérie pas cette inégalité,
c-à-d : π x̃ > π0

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 9 / 86


Les méthodes de coupes
Quelques inégalités valides simples

X = {x ∈ {0, 1}5 : 3x1 − 4x2 + 2x3 − 3x4 + x5 ≤ −2}


▶ x2 = x4 = 0 impossible ⇒ x2 + x4 ≥ 1 
3x1 − 4x2 + 2x3 − 3x4 + x5 ≤ −2
▶ X ′ = x ∈ {0, 1}5 :
x2 + x4 ≥ 1
▶ l'inégalité x2 + x4 ≥ 1 est non redondante car
x2 = 14 , x4 = 31 , x1 = x3 = x5 = 0 ∈ X mais ∈/ X′
Toute combinaison linéaire de contraintes est valide. Par exemple :


 7x1 − 2x2 ≤ 14 (1)

x2 ≤ 3 (2)

2
 1
 x − 2 x2 ≤ 3 (3)
x ≥ 0 et entier

▶ (1) + 2 × (2) : 7x1 ≤ 20 ⇒ x1 ≤ 207 : valide et redondante


▶ mais x1 ≤ 2 : valide et non redondante
▶ interprétation géométrique

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 10 / 86


Les méthodes de coupes
Quelques inégalités valides simples  Interprétation géométrique

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 11 / 86


Les méthodes de coupes
Inégalités valides

Idée : ajouter une coupe peut exclure l'optimum de la relaxation


continue du problème, en n'excluant aucun point entier ⇒ on garde le
même optimum entier, mais la relaxation continue du problème
modié a une valeur plus proche de l'optimum entier. Cette idée peut
permettre d'accélérer le Branch-and-Bound.

L'algorithme suivant, dû à Gomory, permet de résoudre un PLNE en


ajoutant itérativement des coupes non redondantes au problème
initial, en excluant à chaque itération l'optimum continu jusqu'à ce
que la relaxation continue admette une solution entière.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 12 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 13 / 86


Les coupes de Gomory
Considérons le PLNE sous forme standard où
 A, b et c sont entiers :
 min z = cx

(P) Ax = b
 s.c.

xj ≥ 0 et entier, ∀j ∈ 1, ..., n
La relaxation continue de ce problème est :

 min z = cx

(P) Ax = b
 s.c.

x ≥0
L'idée principale des méthodes de coupes est d'ajouter des contraintes
qui n'excluent aucun point entier admissible. La méthode
consistera à ajouter de telles contraintes linéaires une après une,
jusqu'à ce que la solution optimale de la relaxation continue soit
entière.

Les contraintes ajoutées sont appelées troncatures ou coupes. La


méthode a été proposée conjointement par Chvàtal et Gomory, on
parle souvent de coupes de Chvàtal-Gomory.
ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 14 / 86
Les coupes de Gomory
Description de la méthode

Commençons par résoudre la relaxation continue par l'algorithme


du simplexe et considérons le tableau obtenu à l'optimum (Ax = b).
Soit B l'ensemble des indices des variables de base et N l'ensemble
des indices des variables hors-base.

Parmi les variables de base, choisissons une variable xi , i ∈ B ,


fractionnaire (s'il n'y en a pas, on est à l'optimum entier).

La contrainte correspondant à xi se lit directement sur le tableau


optimal :
X
xi + aij xj = b i ∀i ∈ B (1 )
j∈N

Notation : étant donné un réel y , ⌊y ⌋ désigne le plus grand entier q


tel que q ≤ y. (Par exemple, ⌊2, 7⌋ = 2, ⌊−8, 1⌋ = −9, ⌊0⌋ = 0).

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 15 / 86


Les coupes de Gomory
Description de la méthode

Puisque toutes les variables sont ≥0 dans (1), on a :

X X
⌊aij ⌋xj ≤ aij xj
j∈N j∈N

Donc on a : X
xi + ⌊aij ⌋xj ≤ b i
j∈N

La partie gauche de cette inéquation est entière. Le second membre


(partie droite) peut donc être remplacé par ⌊b i ⌋ :

X
xi + ⌊aij ⌋xj ≤ ⌊b i ⌋ ∀i ∈ B (2)
j∈N

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 16 / 86


Les coupes de Gomory
Description de la méthode

(2) − (3) donne :

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

C'est la coupe (ou troncature) de Gomory.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 17 / 86


Les coupes de Gomory
Description de la méthode

Nous voulons ajouter cette coupe au problème initial. Pour avoir


l'expression des variables de base en fonction des variables hors-base,
nous multiplions cette dernière inéquation par −1 et ajoutons une
variable d'écart s. On obtient :

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.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 18 / 86


Les coupes de Gomory
Description de la méthode

Considérons dans le nouveau tableau ...



Âx = b̂ (tableau à l'optimum)
P

j∈N fij xj + s = −fi
x ≥ 0, s ≥ 0

... la base suivante :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 19 / 86


Les coupes de Gomory
Description de la méthode

C'est bien une base. On a drirectement l'expression des variables de


base en fonction des variables hors-base.

Cependant cette base n'est pas (primal) réalisable puisque s = −fi


dans la solution de base associée (et s ≥ 0).
Remarquons que la fonction objectif ne change pas. La solution de
base considérée est donc duale admissible (puisque ∆ ≥ 0).
→ on peut appliquer l'algorithme dual du simplexe pour trouver le
nouvel optimum de la relaxation continue.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 20 / 86


Les coupes de Gomory
Description de la méthode

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.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 21 / 86


Les coupes de Gomory
Un exemple

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 22 / 86


Les coupes de Gomory
Propriété

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.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 23 / 86


Les coupes de Gomory
Algorithme de résolution d'un PLNE basé sur les coupes de Gomory

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 24 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 25 / 86


L'algorithme dual du simplexe
Il arrive fréquemment que l'on ait à résoudre un programme linéaire tel
que ...

 min z = cx

(P) Ax = b
 s.c.

x ≥0
B non
... soit écrit sous forme canonique par rapport à une base
réalisable (certaines composantes de b sont < 0) et vériant les
conditions d'optimalité, c'est-à-dire c ≥ 0 (c ≤ 0 pour un problème
de maximisation)

On peut alors déterminer la solution optimale de (P) par l'algorithme


dual du simplexe.
À chaque étape de l'algorithme, (P) est écrit sous forme canonique
par rapport à la base courante et on s'arrange pour que les conditions
d'optimalité soient vériées à chaque étape.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 26 / 86


L'algorithme dual du simplexe

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 27 / 86


L'algorithme dual du simplexe

3 Soit s la variable entrant dans la base. On doit choisir s de telle sorte


que ars soit < 0, pour obtenir après pivotage une nouvelle variable de

base positive. Le vecteur coût c relatif à la nouvelle base
B ′ = B + {s} − {r } sera :

c ′ = c − (cs /ars ).ligne r de A

c′ restera ≥0 si s est choisi tel que :

 
cs cj
= maxj|arj <0
ars arj

(transformer max en min pour un problème de maximisation)

4 On eectue alors le pivotage et on itère le procédé (retour en )

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 28 / 86


Justication de l'algorithme dual du simplexe
La matrice de base B′ déduite de la matrice de base B par substitution
s
de la colonne A à Ar est une matrice de base puisque ars ̸= 0.
Si le second membre est positif, on a une solution optimale du
problème.

Sinon, on peut itérer le procédé (ou conclure que (P) n'a pas de
solution réalisable).

La variation de la fonction objectif d'une itération à l'autre est :


br
cs × ars . En l'absence de dégénérescence (duale), cs est > 0 (< 0 pour
un problème de maximisation). D'autre part, br et ars sont, à chaque
itération, < 0. La variation de la fonction objectif est donc < 0 (> 0
en cas de maximisation), ce qui assure la convergence du procédé
puisque le nombre de bases est ni (on peut tramsposer les règles de
Bland pour se prémunir du cyclage).

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).

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 29 / 86


Interprétation de l'algorithme dual du simplexe

L'algorithme dual du simplexe consiste à appliquer l'algorithme du


simplexe au problème dual, les opérations de changement de base
étant eectuées sur le tableau primal.

À une itération quelconque de l'algorithme du simplexe, on peut


interpréter les variables de base comme des variables d'écart u réelles
et écrire le primal sous la forme suivante puisque le problème est écrit
sous forme canonique par rapport à une base B (non réalisable) :

 min cx

(P) Ax + Im u = b
 s.c.
x, u ≥ 0

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 30 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 31 / 86


Modélisation de problèmes par la PLNE

Dans cette section, nous nous intéressons à la modélisation de


problèmes à l'aide la PLNE

Nous verrons dans un premier temps des techniques classiques utilisées


fréquemment lorsqu'on modélise un problème

Puis nous passerons en revue des modèles classiques de problèmes


d'optimisation combinatoire

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 32 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 33 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Dans la suite : exemples de modélisation d'évènements a, b et c


avec des variables binaires xa , xb et xc ∈ {0, 1}

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 34 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

xa + xb ≥ 1

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

xa + xb ≥ 1

Si a se produit alors b doit se produire :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

xa + xb ≥ 1

Si a se produit alors b doit se produire :

xa ≤ xb

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

xa + xb ≥ 1

Si a se produit alors b doit se produire :

xa ≤ xb

Si a se produit alors b doit se produire :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

a et b ne peuvent se produire tous les deux :

xa + xb ≤ 1

Au moins un évènement parmi a et b doit se produire :

xa + xb ≥ 1

Si a se produit alors b doit se produire :

xa ≤ xb

Si a se produit alors b doit se produire :

xa ≤ xb

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 35 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Si a se produit, alors b et/ou c doivent se produire :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 36 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Si a se produit, alors b et/ou c doivent se produire :

xb + xc ≥ xa

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 36 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Si a se produit, alors b et/ou c doivent se produire :

xb + xc ≥ xa

Si a ne se produit pas, alors une quantité y doit être nulle, sinon y est
libre dans IR :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 36 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Si a se produit, alors b et/ou c doivent se produire :

xb + xc ≥ xa

Si a ne se produit pas, alors une quantité y doit être nulle, sinon y est
libre dans IR :

▶ On suppose qu'on connaît M tel que y ≤M à l'optimum du problème


▶ Un tel M existe, sinon le problème est non borné
▶ Modéliser par : y ≤ M xa

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 36 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Maximiser la valeur minimale d'un ensemble de fonctions linéaires

▶ On veut maximiser la plus petite valeur prise par un ensemble de

fonctions linéaires ai x , i = 1, . . . , m

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 37 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Maximiser la valeur minimale d'un ensemble de fonctions linéaires

▶ On veut maximiser la plus petite valeur prise par un ensemble de

fonctions linéairesai x , i = 1, . . . , m
▶ Ajouter une variable z
▶ Ajouter les contraintes z ≤ ai x , i = 1, . . . , m
▶ Maximiser z

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 37 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 38 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 38 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Implication entre contraintes

▶ Soient a1 x ≤ b1 et a2 x ≤ b2 deux contraintes


▶ Si a1 x ≤ b1 n'est pas satisfaite alors a2 x ≤ b2 doit être satisfaite
▶ On suppose qu'il existe M tel que −a1 x ≤ b1 + M et a2 x ≤ b2 + M
soient vériées ∀x

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 39 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Implication entre contraintes

▶ Soient a1 x ≤ b1 et a2 x ≤ b2 deux contraintes


▶ Si a1 x ≤ b1 n'est pas satisfaite alors a2 x ≤ b2 doit être satisfaite
▶ On suppose qu'il existe M tel que −a1 x ≤ b1 + M et a2 x ≤ b2 + M
soient vériées ∀x
▶ On ajoute une variable de décision binaire y
▶ On ajoute :

−a1 x ≤ b1 + M(1 − y )
a2 x ≤ b2 + My

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 39 / 86


Modélisation de problèmes par la PLNE
Techniques classiques

Implication entre contraintes

▶ Soient a1 x ≤ b1 et a2 x ≤ b2 deux contraintes


▶ Si a1 x ≤ b1 n'est pas satisfaite alors a2 x ≤ b2 doit être satisfaite
▶ On suppose qu'il existe M tel que −a1 x ≤ b1 + M et a2 x ≤ b2 + M
soient vériées ∀x
▶ On ajoute une variable de décision binaire y
▶ On ajoute :

−a1 x ≤ b1 + M(1 − y )
a2 x ≤ b2 + My

▶ Si a1 x > b1 , alors nécessairement y =0 et la deuxième contrainte est


vériée

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 39 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

Linéarisation : méthode permettant de transformer un Programme


Mathématique Discret en un PL ou un PLNE

Généralement, ces transformations demandent l'ajout de nombreuses


variables et contraintes supplémentaires

Voyons quelques exemples

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 40 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

Exemple : linéariser une variable à valeurs dans un espace discret


▶ Soit x une variable prenant ses valeurs parmi les n possibilités
v1 , v2 , . . . , vn ∈ IR
▶ Trouver une linéarisation de x

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 41 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

Exemple : linéariser une variable à valeurs dans un espace discret


▶ Soit x une variable prenant ses valeurs parmi les n possibilités
v1 , v2 , . . . , vn ∈ IR
▶ Trouver une linéarisation de x
▶ On introduit n variables de décision binaires y1 , . . . , yn telles que yi = 1
si x = vi , et 0 sinon.
▶ On modélise alors par les deux contraintes :

n
X n
X
x= vi yi et yi = 1
i=1 i=1

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 41 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

L'opérateur logique ou entre deux contraintes :


▶ On a une variable x =0 ou x ≥L
▶ ... avec L et x bornés par une valeur M.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 42 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

L'opérateur logique ou entre deux contraintes :


▶ On a une variable x =0 ou x ≥L
▶ ... avec L et x bornés par une valeur M.
▶ On ajoute une variables y ∈ {0, 1} et on ajoute :

x ≥ Ly et x ≤My
Carré d'une variable binaire :
▶ Soit x ∈ {0, 1}. Linéariser x 2.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 42 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

L'opérateur logique ou entre deux contraintes :


▶ On a une variable x =0 ou x ≥L
▶ ... avec L et x bornés par une valeur M.
▶ On ajoute une variables y ∈ {0, 1} et on ajoute :

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.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 42 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

Produit de deux variables binaires [Glover, 1975] :


▶ Soit x ∈ {0, 1} et y ∈ {0, 1}, on veut obtenir une variable e = xy .

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 43 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

Produit de deux variables binaires [Glover, 1975] :


▶ Soit x ∈ {0, 1} et y ∈ {0, 1}, on veut obtenir une variable e = xy .
▶ On a le résultat suivant :


e≤x

e≤y



e = xy ⇔ e ≥x +y −1
e≥0




e ∈ IR

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 43 / 86


Modélisation de problèmes par la PLNE
Techniques classiques  Linéarisation

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, ...

Toute forme quadratique peut se ramener à un PLNE binaire... mais


en ajoutant de nombreuses variables et contraintes.



 e≤x
e≤y



e = xy ⇔ e ≥x +y −1
e≥0




e ∈ IR

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 44 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 45 / 86


Optimisation combinatoire et modélisations

La formulation en PLNE permet de modéliser un grand nombre de


problèmes combinatoires.

Une fois une bonne modélisation trouvée, un solveur de PLNE est le


seul outil nécessaire

Malheureusement, les seuls algorithmes connus pour résoudre les


PLNE sont exponentiels (Branch and Bound)

On peut l'enrichir par un algorithme de coupes.

Quand on n'a pas de formulation compacte, ou peut avoir :


▶ un nombre exponentiel de variables : génération de colonnes (Branch

and Price)
▶ un nombre exponentiel de contraintes : génération de coupes (Branch

and Cut)

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 46 / 86


Aectation

un groupe d'employés et de tâches à accomplir

chaque tâche doit être accomplie

chaque employé ne peut pas faire plus d'une tâche

aecter un employé à une tâche coûte un prix

Minimiser le prix total

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 47 / 86


Aectation
employés : i =1 à n
tâches : j =1 à m
coût d'aecter l'employé i à la tâche j : cij
variable de décision : xij = 1 si l'employé i est aecté à la tâche j, 0
sinon.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 48 / 86


Localisation d'usines

N = {1, . . . , n} les emplacements possibles

I = {1, . . . , m} les clients

cj le coût de positionner une usine à l'emplacement j


hij le coût de satisfaire le client i depuis l'usine j
variable de décision : xj = 1 si une usine est positionnée en j, 0 sinon.

variable de décision : yij la fraction de la demande du client i satisfaite


par l'usine j.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 49 / 86


Localisation d'usines

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 50 / 86


Localisation d'usines

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

Que se passe-t-il si on remplace, pour un j n


donné, la série de
Pm
contraintes yij ≤ xj ∀i par l'unique contrainte y
i=1 ij ≤ m × xj ?
Est-ce que les deux formulations sont valides ? Laquelle est préférable ?

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 50 / 86


Localisation d'usines

Les deux formulations donnent le même ensemble de solutions

Mais si on relâche la contrainte xj ∈ {0, 1}, alors on a deux espaces de


solutions diérents

L'un est plus petit que l'autre (et même inclus dans l'autre). Lequel ?

Que peut-on en conclure ?

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 51 / 86


Localisation d'usines

La meilleure formulation est celle dont la valeur de la relaxation


continue est le plus proche de l'optimum entier (donc celle de valeur
de relaxation la plus élevée).

Il s'agit de la première formulation : yij ≤ xj , ∀i


... même si elle contient plus de contraintes.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 52 / 86


Le problème du sac-à-dos

Soit n objets, notés i = 1, . . . , n , de bénéce ci (≥ 0), de poids ai


(≥ 0).
On veut ranger ces objets dans un sac

Poids maximum du sac : b


Le problème de sac-à-dos (knapsack) :
▶ choisir certains parmi les n objets
▶ maximiser le bénéce
▶ respecter la contrainte de poids maximum
▶ chaque objet i, i ∈ {1, . . . , n}, doit être sélectionné au moins pi fois
▶ chaque objet i, i ∈ {1, . . . , n}, doit être sélectionné au plus qi fois

Problème utilisé pour remplir les camions de transport, les avions ou


bateaux de fret, et aussi pour gérer la mémoire d'un microprocesseur

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 53 / 86


Le problème du sac-à-dos

Formulation du problème de sac-a-dos par un PLNE :

Pour chaque objet i , i ∈ {1, . . . , n}, on crée une variable entière xi ,


correspondant au nombre de fois où l'objet i est choisi.

(2) est appelée contrainte de sac-à-dos.

Une seule contrainte, mais problème NP-complet.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 54 / 86


Recouvrement, pavage et partition

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 55 / 86


Recouvrement, pavage et partition

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 56 / 86


Recouvrement, pavage et partition
Modélisation :

des variables binaires x1 , . . . , xm associées aux sous-ensembles


E1 , . . . , Em
Soit A = [Aij ] la matrice binaire dont les lignes correspondent aux
éléments x1 , . . . , xm et les colonnes aux sous-ensembles E1 , . . . , Em
Ses coecients sont Aij = 1 si i ∈ Ej et 0 sinon.

Recouvrement : m

 X


 min cj xj

j=1


X

 Aij xj ≥ 1, ∀i

j



x ∈ {0, 1}m

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 57 / 86


Recouvrement, pavage et partition

Pavage : espace Partition :

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 58 / 86


Recouvrement, pavage et partition

→ De nombreuses applications

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 59 / 86


Stable maximum et Coloration minimale

c.f. TD

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 60 / 86


Le problème du voyageur de commerce
TSP : traveling salesman Problem

Soit G = (V , E ) un graphe non-orienté

Soit c(e) un coût associé à la liaison e , ∀e ∈ E .


Le problème du voyageur de commerce : trouver un cycle passant par
chaque sommet une et une seule fois

On appelle ce cycle hamiltonien

Cas assymétrique : graphe orienté

Version pondérée : on cherche le cycle de poids minimum

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 61 / 86


Le problème du voyageur de commerce
Modélisation

Soient les variables xij = 1 si l'arc (i, j) est dans le tour, 0 sinon.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 62 / 86


Le problème du voyageur de commerce
Modélisation

Soient les variables xij = 1 si l'arc (i, j) est dans le tour, 0 sinon.

La relaxation linéaire est entière (car matrice totalement


unimodulaire).

Mais, la solution peut contenir plusieurs cycles

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 62 / 86


Le problème du voyageur de commerce
Élimination des sous-tours par la formulation MTZ

Pour éliminer les sous-tours, on peut utiliser la formulation de


Miller-Tucker-Zemlin (MTZ).

On ajoute de nouvelles variables réelles ui , i = 1 à n, pour chaque


sommet

On ajoute les contraintes :

u1 = 1
2 ≤ ui ≤ n, ∀i ̸= 1
ui − uj + 1 ≤ n (1 − xij ), ∀i ̸= 1, j ̸= 1

Pour tout arc (i, j) où xij = 1, elles forcent uj ≥ ui + 1,


si une solution du PLNE précédent contient plus d'un sous-tour, alors
l'un d'eux au moins ne contient pas le sommet 1 et, sur ce sous-tour,
les variables ui s'incrémentent à l'inni.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 63 / 86


Le problème du voyageur de commerce
Élimination des sous-tours par la formulation MTZ

La formulation MTZ a l'énorme avantage d'être compacte

On peut donc directement utiliser une procédure de branchement et


séparation (Branch & Bound)

... et donc un solveur entier

Mais cette formulation est plus faible que la formulation par les coupes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 64 / 86


Le problème du voyageur de commerce
Élimination des sous-tours en brisant les sous-tours

Ajouter les contraintes :


X
xij ≤ |S| − 1, ∀S ⊂ V , |S| ≥ 2, S ̸= V
i∈S, j∈S

Elles empêchent les solutions d'avoir des sous-tours

Mais en nombre exponentiel


Utilisation des algorithmes de coupes (grâce à une étude polyédrale)

Ajouter progressivement les inégalités dans la formulation

Un algorithme de séparation, qui revient à détecter des cycles, ajoute


des coupes (contraintes)

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 65 / 86


Le problème du voyageur de commerce
Élimination des sous-tours par la connexité et les coupes

Une solution du TSP est un ensemble d'arcs C qui forme un


sous-graphe partiel connexe

Il y a donc au moins un arc sortant de chaque ensemble de sommets

donc au moins une arête par coupe du graphe.

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

(resp. entrant dans) W


Nombre exponentiel de contraintes de connexité.

Utiliser un algorithme de coupes et branchement

C'est actuellement la méthode la plus ecace.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 66 / 86


Le problème du voyageur de commerce
Cas symétrique : modélisation

le nombre d'arétes incidentes à un sommet = 2

l'ensemble des arêtes choisies doit être connexe

nombre exponentiel de contraintes (diciles à trouver)

Comment résoudre un tel programme ?

Comment produire les contraintes d'un tel programme ?

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 67 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 68 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 69 / 86


Relaxation lagrangienne appliquée à la PLNE
Introduction

On considère le problème (P) ayant n variables et deux ensembles de


contraintes.

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 :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 70 / 86


Relaxation lagrangienne appliquée à la PLNE
Introduction

On suppose que les contraintes Ax ≤ b sont compliquantes dans le


sens où si elles n'étaient pas là, le problème (P) serait plus facile à
résoudre (un problème de chemin le plus court, d'aectation, d'arbre
couvrant, etc).

La suppression simple de ces contraintes s'appelle relaxation


combinatoire et aboutit en général à des bornes de faible qualité.

Par la relaxation lagrangienne, on tient compte de ces contraintes


compliquantes pour calculer de meilleures bornes.

Mais cela nécessite de résoudre plusieurs fois le problème simplié.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 71 / 86


Relaxation lagrangienne
Dénitions et propriétés

Dénition  Fonction de Lagrange


La fonction de Lagrange associée au problème (P) est :

L(x, λ) = f (x) + λ(Ax − b)

où λ≥0 est le vecteur des multiplicateurs de Lagrange associé aux


contraintes Ax ≤ b .

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

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 72 / 86


Relaxation lagrangienne
Dénitions et propriétés

Dénition  Fonction duale


La fonction duale associée au problème (P), dénie ∀λ ≥ 0 est :

ω(λ) = min L(x, λ)


x:Cx≤d, x∈Zn+

où λ≥0 est le vecteur des multiplicateurs de Lagrange associé aux


contraintes Ax ≤ b .

Propriété 2
Soit x∗ une solution optimale de (P). ∀λ ≥ 0, ω(λ) ≤ f (x ∗ )

Preuve
En eet, ∀λ ≥ 0, ω(λ) ≤ L(x ∗ , λ) ≤ f (x ∗ )

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 73 / 86


Relaxation lagrangienne
Dénitions et propriétés

Ainsi, pour chaque valeur de λ, ω(λ) fournit un minorant de la valeur


optimale de (P).
Le problème dual consiste à trouver le meilleur des minorants ainsi
calculés.

Dénition  Problème dual lagrangien (D)


(D) : max ω(λ)
λ≥0

Propriété
La valeur optimale de (D) est une borne inférieure de la valeur optimale de
(P).

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 74 / 86


Relaxation lagrangienne
Qualité des bornes duales

Théorème (Georion, 1974)


Soit λ∗ une solution optimale de (D). Alors :


 min cx
ω(λ∗ ) = s.c. Ax ≤ b
x ∈ conv ({Cx ≤ d : x ∈ Zn+ })

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 75 / 86


Relaxation lagrangienne
Qualité des bornes duales  Preuve du th. de Georion


 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 } :

ω(λ∗ ) = max min (cx + λ(Ax − b))


λ≥0 x:Cx≤d, x∈Zn+

= max min{cX 1 + λ(AX 1 − b), . . . , cX K + λ(AX K − b)}


λ≥0

 max η
= η ≤ cX k + λ(AX k − b) k = 1, . . . , K
λ ∈ Rm+, η ∈ R

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 76 / 86


Relaxation lagrangienne
Qualité des bornes duales  Preuve du th. de Georion

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 :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 77 / 86


Relaxation lagrangienne
Qualité des bornes duales  Preuve du th. de Georion

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).

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 78 / 86


Relaxation lagrangienne
Qualité des bornes duales  Conclusion

La borne qu'on obtient par relaxation lagrangienne (si on calcule la


valeur optimale du dual) est donc au moins aussi bonne que celle
qu'on calcule par relaxation continue

...mais il existe plusieurs problèmes pour lesquels il y a égalité des


bornes.

La relaxation lagrangienne est utile :


▶ soit pour calculer une borne meilleure que par relaxation continue
▶ soit pour aller plus vite dans le calcul d'une borne équivalente à cette

dernière.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 79 / 86


Relaxation lagrangienne
Résolution du dual lagrangien

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).

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 80 / 86


Relaxation lagrangienne
Résolution du dual lagrangien  Algorithme de sous-gradient

Algorithme de sous-gradient  Résolution approchée de (D)


Initialiser λ0
k ←0
repeat
résoudre ω(λk )
soitx k le point qui optimise ω(λk )
γk = Ax k − b est un sous-gradient de ω en λk
λk+1 ← max(0, λk + θk γ k )
k ←k +1
until condition d'arrêt
retourner le meilleur ω(λk ) obtenu durant les itérations

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 81 / 86


Relaxation lagrangienne
Résolution du dual lagrangien  Algorithme de sous-gradient  Convergence

Propriété
Si θ vérie

X
θk = ∞ et lim θk =0
k→∞
k=1
k
alors ω(λ ) converge vers la valeur optimale de (D)

Exemples de telles séquences :

θk = 1/k : convergence lente

θ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.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 82 / 86


Relaxation lagrangienne
Heuristiques lagrangiennes

La première utilisation des relaxations lagrangiennes est donc de


calculer des bornes duales (bornes inférieures pour un problème de
minimisation).

Mais elles peuvent quelquefois donner des indications vers des bornes
primales (valeurs de solutions réalisables) de bonne qualité.

En eet, le vecteur xλ solution optimale du problème ω(λ) pour un λ


donné n'est en général pas réalisable pour le problème (P).
Il arrive qu'on puisse néanmoins en déduire une solution réalisable.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 83 / 86


Relaxation lagrangienne
Heuristiques lagrangiennes  Exemple

Exemple
Considérons le problème d'afectation généralisée, qui consite à aecter m
objets à n boites sous contrainte de capacité :

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 84 / 86


Relaxation lagrangienne
Heuristiques lagrangiennes  Exemple

Pn
En relâchant les contraintes j=1 xij ≤ 1∀i , la fonction duale pour
tout λ≥0 donné est :

Ainsi, dans la solution optimale xλ , certains objets i vérient


P n P n
j=1 xij ≤ 1, d'autres vérient j=1 xij > 1 et sont donc aectés à
plus d'une boite.

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é.

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 85 / 86


Plan
1 Rappels : Algorithmes fondamentaux de Programmation Linéaire en
Nombres Entiers (PLNE)

2 Notion d'inégalité valide et Méthodes de coupes


Introduction : les inégalités valides
Les coupes de Gomory
L'algorithme dual du simplexe

3 Modélisation de problèmes
Techniques classiques
Modèles de problèmes

4 Présentation d'un langage de modélisation et des logiciels de résolution


des PLNE

5 Relaxation lagrangienne appliquée à la PLNE

6 Résolution des problèmes de grande taille. Génération de colonnes

ES (Sup'Com, Ensta) Optimisation Discrète 2022-2023 86 / 86

Vous aimerez peut-être aussi