Académique Documents
Professionnel Documents
Culture Documents
Nombres Entiers
Méthode de Branch&Bound
Définition PLNE
| Programmation linéaire où certaines
variables ne peuvent prendre que des
valeurs entières
Programmation pure (resp. mixte) en NE : la totalité
(resp. un sous-ensemble) des variables sont entières
Programmation 0-1 ou binaire : les variables entières
ne peuvent être que 0 ou 1
2
Exemple 1
max x1 + 0.64x2
s.c. :
50x1 + 31x2 ≤ 250
3x1 − 2x2 ≥ −4
x1 , x2 ≥ 0 et entiers
3
Exemple 1-suite
point optimal continu (1.95, 4.92)
objectif 5.0628
4
PL et PLNE sont TRES différentes
Optimisation continue convexe
/ Optimisation discrète
Suite de ce cours :
Utilité de la PLNE
5
Application 1 : choix
d’usines et d’entrepôts
But : choisir de nouveaux emplacements
pour construire des usines et des entrepôts
Deux emplacements : Lyon et Toulouse
On ne peut construire plus d’un entrepôt
On ne peut construire un entrepôt que dans
une ville où l’on a aussi une usine
On connaît, pour chaque ville :
Coefficient de rentabilité usine ou entrepôt
Coût de construction usine ou entrepôt
Le coût total de construction ne peut pas
dépasser 10
Objectif : maximiser la rentabilité
6
Application 1 : données
Rentabilité Coût
Usine à L 9 6
Usine à T 5 3
Entrepôt à L 6 5
Entrepôt à T 4 2
7
Application 1 : modèle
Variables (de décision):
x1=1 si une usine est construite à Lyon et 0 sinon
x2=1 si une usine est construite à Toulouse et 0 sinon
y1=1 si un entrepôt est construit à Lyon et 0 sinon
y2=1 si un entrepôt est construit à Toulouse et 0 sinon
8
Application 1 : modèle
Contraintes
1- On ne peut construire plus d’un entrepôt
y1 +y2≤1
2- On ne peut construire un entrepôt que dans une
ville où l’on a aussi une usine
y1 ≤ x1
y2 ≤ x2
9
Application 1 : modèle
3- Le coût total de construction ne peut pas
dépasser 10
6x1 +3x2 +5y1 +2y2≤10
Objectif :
max 9x1 +5x2 +6y1 +4y2
10
Application 1 : résumé du
modèle
max Z = 9x1 + 5x2 + 6 y1 + 4 y2
C’est notre s.c. :
exemple de y1 + y2 ≤ 1
Base y1 ≤ x1
y2 ≤ x2
6x1 + 3x2 + 5 y1 + 2 y2 ≤ 10
11
Exemple de base: résolution
par Mosel et xpress-mp
model ExempleBase
uses "mmxprs" ! utilise le solveur Xpress-Optimizer
Declarations
x1, x2, y1, y2 : mpvar ! variables
end-declarations
! le modèle
Z:= (-9)*x1 -5*x2 -6*y1 -4*y2 !fonction objectif
! les contraintes
y1 +y2<=1
y1 <= x1
y2 <= x2
6*x1 +3*x2 +5*y1 +2*y2 <= 10
x1 is_binary
x2 is_binary
y1 is_binary
y2 is_binary
! résolution du problème
minimize (Z)
writeln("Solution: ", getobjval) ! affichage de la valeur de Z
writeln("valeur de x1 : ", getsol(x1))
writeln("valeur de x2 : ", getsol(x2))
writeln("valeur de y1 : ", getsol(y1))
writeln("valeur de y2 : ", getsol(y2))
end-model
12
Exemple de base: résolution
par Mosel et xpress-mp
Solution: 14
valeur de x1 : 1
valeur de x2 : 1
valeur de y1 : 0
valeur de y2 : 0
13
Résolution des PLNE
Nous allons voir comment résoudre
les PLNE
1. Dans le cas particulier des
problèmes purement binaires PL01
2. Dans le cas général des PLNE
14
Résolution des PL01-
Exemple de base
- min (-Z) = −9x1 − 5x2 − 6 y1 − y2
s.c. :
y1 + y2 ≤ 1
y1 ≤ x1
y2 ≤ x2
6x1 + 3x2 + 5 y1 + 2 y2 ≤ 10
0 ≤ x1, x2 , y1, y2 ≤ 1 et entiers
15
1ere idée :
énumération
Résolution des PL01-
Enumération
Idée : il existe un nombre fini
de solutions. Enumérons-les !
0 1 x1
0 1 0 1 x2
0 1 0 1 0 1 0 1 y1
0 1 0 10 1 0 1 0 1 0 10 1 0 1 y2
Z=0 ! ! ! Z=-5 ! ! Z=-9 ! ! ! Z=-14! ! !
17
Résolution des PL01-
Enumération
Pour n variables binaires, 2n
cas possibles
Pour n=20, plus d’un million
Pour n=30, plus d’un milliard …
18
2ème idée :
encadrement de
la valeur optimale
Relaxation continue-
exemple de base
Relaxation continue = on « oublie »
le caractère entier des variables
On obtient un programme linéaire
(continu) qu’on sait résoudre, par
exemple par la méthode du simplexe :
Solution (x1, x2, y1, y2)=(5/6, 1, 0, 1)
Valeur optimale : -Z=-33/2=-16.5
20
Relaxation continue:
interprétation
+∞
-16,5
-∞
21
Relaxation continue:
interprétation
Conclusion :
la valeur optimale (en entier) ≥ -16.5
Propriété générale :
• Pour un problème de maximisation, la valeur optimale en entier ≤ la
valeur optimale en continu
• Pour un problème de minimisation, la valeur optimale en entier ≥ la
valeur optimale en continu
23
Connaissance d’une solution
admissible- exemple de base
Admettons que l’on connaisse la solution
(x1, x2, y1, y2)=(1, 0, 0, 0) de valeur -Z=-9
24
Connaissance d’une solution
admissible- exemple de base
+∞
Valeurs possibles de toutes les solutions
admissibles, entières ou non
-9
-16,5
Valeurs possibles de
toutes les solutions
entières optimales
-∞
25
Connaissance d’une solution
admissible- exemple de base
Conclusion : la valeur d’une solution optimale est comprise
entre -16.5 et -9
Propriété générale :
• Pour un problème de minimisation,
val. optimale en continu ≤ val. optimale en entier ≤ val. d’une solution admissible
26
Algorithme Branch-and-Bound
pour résoudre un PLNE
Ingrédients de base :
encadrement de la valeur optimale
(borne inférieure, borne supérieure)
énumération limitée dans le but
d’obtenir un encadrement de plus en
plus fin
27
B&B- Exemple de base
Dans la solution de la
relaxation continue : (x1, x2,
y1, y2)=(5/6, 1, 0, 1), x1 n’est
pas entier. On va « brancher
» selon les deux valeurs
possibles de x1 : 0 et 1
28
B&B- Exemple de base
S : toutes les
solutions entières
opt≥-16.5
x1=0 x1=1
S1 : toutes les S2 : toutes les
solutions entières solutions entières
telles que x1=0 telles que x1=1
29
B&B- Exemple de base
Sous-ensemble S1 : x1=0
-min -Z = −5x2 − 6 y1 − 4 y2
s.c. :
y1 + y2 ≤ 1
y1 ≤ 0
y2 ≤ x2
3x2 + 5 y1 + 2 y2 ≤ 10
0 ≤ x2 , y1, y2 ≤ 1 et entiers
S : toutes les
solutions entières
opt≥-16.5
x1=0 x1=1
S1 : toutes les S2 : toutes les
solutions entières solutions entières
telles que x1=0 telles que x1=1
opt= -9
31
B&B- Exemple de base
Sous-ensemble S2 : x1=1
-min -Z = −9 − 5x2 − 6 y1 − 4 y2
s.c. :
y1 + y2 ≤ 1
y1 ≤ 1
y2 ≤ x2
3x2 + 5 y1 + 2 y2 ≤ 4
0 ≤ x2 , y1, y2 ≤ 1 et entiers
32
B&B- Exemple de base
S : toutes les
solutions entières
opt≥ -16.5
x1=0 x1=1
S1 : toutes les S2 : toutes les
solutions entières solutions entières
telles que x1=0 telles que x1=1
Opt= -9 opt≥ -16.2
33
B&B- Exemple de base
Conclusion actuelle :
Meilleure solution admissible connue
(solution courante) de valeur -9
Meilleure borne inférieure connue : -16.2
La valeur optimale est donc comprise entre -9 et
-16.2
Comment continuer ?
34
B&B- Exemple de base
Le noeud S1 peut être élagué
car on connaît la valeur d’une
S1 : toutes les
solution entière optimale dans solutions entières
cet ensemble (valeur solution telles que x1=0
35
B&B- Exemple de base
Pour le noeud S2, on applique le
S2 : toutes les
même traitement que pour S solutions entières
telles que x1=1
opt≥ -16.2
36
B&B- Exemple de base
Sous-ensemble S3 : x1=1 et x2=0
Solution de la relaxation continue :
(x1,x2, y1, y2)=(1,0,4/5,0) et -Z=-13.8
37
B&B- Exemple de base
Solution
courante : -9
S
opt≥ -16.5
x1=0 x1=1
S1 S2
opt ≥ -16.2
Opt= -9
x2=0 x2=1
S4
S3
opt ≥ -16
opt ≥ -13.8
38
B&B- Exemple de base
Conclusion actuelle :
Valeur meilleure solution connue : -9
Meilleure borne inférieure connue :-16
On ne peut élaguer ni S3 ni S4
On « repart » avec S4 qui a la plus petite
39
B&B- Exemple de base
Sous-ensemble S5 : x1=1, x2=1 et y1=0
Solution de la relaxation continue :
(x1,x2, y1, y2)= (1,1,0,0.5) et Z=-16
Sous-ensemble S6 : x1=1, x2=1 et y1=1
impossible. S6 peut donc être élagué
40
B&B- Exemple de base
S Solution
opt ≥ - 16.5 courante : -9
x1=0 x1=1
S1 S2
Opt= -9 opt ≥ - 16.2
x2=0 x2=1
S4
S3
opt ≥ - 16
opt ≥ - 13.8
y1=0 y1=1
S6
S5
impossible
opt ≥ -16
41
B&B- Exemple de base
Conclusion actuelle :
Valeur meilleure solution connue : -9
Meilleure borne inférieure connue : -16
On peut repartir soit avec S3 soit avec
S5, on repart avec S5 qui a la plus petite
borne inférieure et on branche sur y2
42
B&B- Exemple de base
Sous-ensemble S7 : x1=1, x2=1, y1=0 et
y2=0 Solution unique entière et -Z=-14<-9
donc Nouvelle solution courante
43
B&B- Exemple de base
S
opt≥ -16.5 Solution
x1=0 x1=1 courante : -14
S1 S2
Opt= -9 opt ≥ -16.2
x2=0 x2=1
S4
Peut être élagué S3
opt ≥ -13.8 opt ≥ -16
car borne inférieure y1=0 y1=1
> à val. sol courante S6
S5
opt ≥ -16 impossible
y2=0 y2=1
S8
S7
Peut être élagué car
impossible
sol optimale connue Opt= -14
44
B&B- Exemple de base
Conclusion : on peut s’arrêter car tous les
noeuds ont été élagués. On prouve ainsi
que la solution optimale est : x1=1, x2=1,
y1=0 et y2=0 Solution unique entière avec
Z=14.
45
B&B- Exemple de base, gain
par rapport à l’énumération
complète
0 1 x1
0 1 0 1 x2
0 1 0 1 0 1 0 1 y1
0 1 0 10 1 0 1 0 1 0 10 1 0 1 y2
Z=0 ! ! ! Z=-5Z=-9 ! ! Z=-9 ! ! ! Z=-14! ! !
46
Algorithme B&B (min)-
Résumé
Initialisation
Calculer une solution admissible
de valeur Z* ou poser Z*=+∞
Résoudre la relaxation continue et
mettre à jour éventuellement Z*
Appliquer les tests d’élagage
Tant qu’il reste des noeuds non élagués
Choisir un noeud non élagué
Brancher sur une des variables
Pour chacun des 2 nouveaux noeuds,
résoudre la relaxation continue et
mettre à jour éventuellement Z*
Appliquer les tests d’élagage
Fin tant que
La solution courante Z* est optimale
47
Algorithme B&B (min)-
Résumé- suite
Un noeud est élagué si:
La relaxation continue n’a pas de solution
La valeur optimale de la relaxation continue ≥ Z*
49
Problème des solutions
admissibles
51
Problème d’efficacité
52
Efficacité- Exemple
n
min Z = ∑c j x j
j =1
s.c. :
n
∑ a1 j x j ≤ b1
j=1
n
∑a2 j x j ≤ b2
j =1
x j variables binaires