Méthodes de Branch-and

publicité
Méthodes de Branch-and-Bound
I
Les méthodes de branch-and-bound sont des méthodes basées
sur une énumération "intelligente" des solutions admissibles d’un
problème d’optimisation combinatoire.
I
Idée : prouver l’optimalité d’une solution en partitionant l’espace
des solutions.
I
"Diviser pour régner"
I
Application à la programmation linéaire en nombres entiers :
utilise toute la puissance de la programmation linéaire pour
déterminer de bonnes bornes.
I
On appelle relaxation linéaire d’un programme linéaire en
nombres entiers le programme linéaire obtenu en supprimant les
contraintes d’intégralité sur les variables.
Programme en nombres entiers
(P) max
s.c.
cT x
Ax ≤ b
x ≥ 0, entier.
Relaxation linéaire
(LP) max
s.c.
cT x
Ax ≤ b
x ≥ 0.
Propriétés de la relaxation linéaire
I
La valeur de la solution optimale de LP est une borne supérieure
sur la valeur de la solution optimale de P.
I
La valeur d’une solution admissible de P fournit une borne
inférieure sur la valeur de la solution optimale de P.
I
Si la solution optimale de LP est entière (donc admissible pour
P), elle est également la solution optimale de P.
Branchement
I
Si la solution de LP n’est pas entière, soit xi une variable prenant
une valeur fractionnaire xi∗ dans la solution optimale de LP.
I
Le problème peut être divisé en deux sous-problèmes en
imposant
xi ≤ bxi∗ c
ou
xi ≥ bxi∗ c + 1
I
où bxi∗ c est le plus grand entier inférieur à xi∗ .
La solution optimale de P est la meilleure des solutions
optimales des deux problèmes
(P1 ) max
s.c.
cT x
Ax ≤ b
xi ≤ bxi∗ c
x ≥ 0, entier.
(P2 ) max
s.c.
cT x
Ax ≤ b
xi ≥ bxi∗ c + 1
x ≥ 0, entier.
Exemple (Branch-and-Bound)
max z =
s.c.
5x1
x1
10x1
x1 ,
+4x2
+x2
+6x2
x2
≤5
≤ 45
≥ 0, entiers.
(LP) x1 = 3.75, x2 = 1.25
z = 23.75
(LP)
x1 ≤ 3
(LP1 )
x1 = 3, x2 = 2
z = 23
x1 = 3.75, x2 = 1.25
z = 23.75
x1 ≥ 4
(LP2 )
...
I
La solution de LP1 est une solution
admissible de P et donc z = 23 est
une borne inférieure sur la valeur de
la solution optimale de P.
I
Le noeud correspondant peut être
éliminé vu qu’une solution entière
optimale satisfaisant x1 ≤ 3 a été
trouvée (solution de P1 ).
(LP)
x1 ≤ 3
(LP1 )
x1 = 3, x2 = 2
z = 23
x1 = 3.75, x2 = 1.25
z = 23.75
x1 ≥ 4
(LP2 )
...
I
La valeur de la solution de LP,
z = 23.75 est une borne supérieure
sur la valeur de la solution optimale
de P.
I
Vu que tout les coefficients sont
entiers, on peut en déduire que la
valeur de la solution optimale de P
est inférieure ou égale à 23.
I
La solution de P1 est donc optimale
pour P.
Règles de branchement
I
Il n’y a pas de règle générale pour le choix de la variable de
branchement et de la branche à examiner en premier.
I
Ce choix peut avoir un impact important sur le nombre de
noeuds à examiner dans l’arbre de branch-and-bound.
I
Exemple : branchement d’abord du côté ≥.
(LP)
x1 ≤ 3
(LP1 )
x1 = 3, x2 = 2
z = 23
x1 = 3.75, x2 = 1.25
z = 23.75
x1 ≥ 4
(LP2 )
x2 ≤ 0
(LP5 )
x2 ≥ 1
(LP3 )
x1 = 4.5, x2 = 0
z = 22.5
x1 ≤ 4
x1 ≥ 5
x1 = 4, x2 = 0
z = 20
x1 = 4, x2 = 0.83
z = 23.33
(LP6 )
(LP4 )
Pas de solution
Pas de solution
Téléchargement