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