Vous êtes sur la page 1sur 5

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 cT x
s.c. Ax ≤ b
x ≥ 0, entier.

Relaxation linéaire
(LP) max cT x
s.c. 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
où bxi∗ c est le plus grand entier inférieur à xi∗ .
I La solution optimale de P est la meilleure des solutions
optimales des deux problèmes

(P1 ) max cT x (P2 ) max cT x


s.c. Ax ≤ b s.c. Ax ≤ b
xi ≤ bxi∗ c xi ≥ bxi∗ c + 1
x ≥ 0, entier. x ≥ 0, entier.
Exemple (Branch-and-Bound)

max z = 5x1 +4x2


s.c. x1 +x2 ≤5
10x1 +6x2 ≤ 45
x1 , x2 ≥ 0, entiers.

(LP) x1 = 3.75, x2 = 1.25


z = 23.75

(LP) x1 = 3.75, x2 = 1.25


z = 23.75

x1 ≤ 3 x1 ≥ 4

(LP1 ) x1 = 3, x2 = 2 (LP2 ) ...


z = 23

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.75, x2 = 1.25
z = 23.75

x1 ≤ 3 x1 ≥ 4

(LP1 ) x1 = 3, x2 = 2 (LP2 ) ...


z = 23

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.75, x2 = 1.25
z = 23.75

x1 ≤ 3 x1 ≥ 4

(LP1 ) x1 = 3, x2 = 2 (LP2 ) x1 = 4, x2 = 0.83


z = 23 z = 23.33

x2 ≤ 0 x2 ≥ 1

(LP3 ) x1 = 4.5, x2 = 0 (LP4 ) Pas de solution


z = 22.5

x1 ≤ 4 x1 ≥ 5

(LP5 ) x1 = 4, x2 = 0 (LP6 ) Pas de solution


z = 20