You are on page 1of 18
CHAPITRE 16. LES ALGORITHMES D’ENUMERATION PAR SEPARATION ET EVALUATION : BRANCH-AND-BOUND INTRODUCTION : Soit le programme linéaire en nombres entiers suivant (IP) : {min cx, sc Ax = b, x > 0 et x enticr}. Si la matrice n'est pas totalement unimodulaire ou b comprend des valeurs non entiéres, le programme linéaire.relaxé (LP) correspondant au programme (IP) considéré peut admettre des points extrémes fractionnaires. Dans ce cas, les méthodes de la programmation linéaire telle que la méthode du Simplexe s’avérent inadaptées pour la résolution du programme (IP), Pour remédier a cela, nous présentons, dans ce chapitre, des méthodes de résolution appropriées aux programmes linéaires en nombres entiers appelées méthodes d”énumération Par séparation et évaluation ou encore Branch-and-Bound. Ces méthodes consistent schématiquement a décrire l'ensemble des solutions sous la forme d’une arborescence et & parcourir cette arborescence says oublier aucun neeud, 1. LES PRINCIPES D’EVALUATION ET DE SEPARATION Considérons le programme suivant Min fix) xeD avec f(x) une fonction réelle queleonque dex € 9°, ct —_D le domaine des solutions réalisables D < LL. Premier prineipe : Le premier principe d'une procédure d'exploration par séparation et évaluation est d’explorer ensemble des solutions réalisables D en le divisant en des sous-ensembles de plus en plus Petits de fagon a isoler une solution optimale dans I’un de ces sous-ensembles, 60 Soit /* la valeur de la solution optimale sur le sous-ensemble S} de D, et f* la valeur de la solution optimale sur I’ensemble D. Alors f*= min; f* | { Figure 1.6.1 : Le domaine des solutions réalisables D est divisé en 4 sous-ensembles qui sont & leur tour divisés en des sous-ensembles plus petits. Pour représenter cette exploration, on construit une arborescence dont le sommet de base correspond a "ensemble D des solutions réalisables et dont les autres sommets correspondent 8 des sous-ensembles de D. Probléme initial D Sous-probléme | . Sous-probléme 4 seer) | Sous-probléme 2 ——sous-problame 3 D: Sous-probléme 31 Sous-probléme 33 Das Pat Sous-probléme 32 Ds Figure 1.6.2 : Représentation arborescente de ’exploration Remarque : “Séparation” ou encore "Branching" : c*est le fait de diviser le domaine réalisable en plusicurs sous-ensembles de plus en plus petits Pour définir plus précisément la procédure d’exploration, nous devons définir une régle de séparation qui permettra de construire l'arborescence d’exploration et une régle pour se déplacer dans l'arborescence. 1.2, Second principe : Le second principe d'une procédure d’exploration par séparation et évaluation est de déterminer pour chaque sous-cnsemble D; < D ainsi défini, un minorant (aussi grand que possible) de (x) sur D, 61 Ce minorant peut étre considéré comme une évaluation par défaut de f(x) sur Dj; on la notera ev(D)). Ona done | er) st) Veen, L’intérét principal de cette évaltation par défaut est le suivant : + _sinous connaissons une| solution réalisable du probléme (x D), et - sie) 2 fe) ¢ il n’existe pas alors de solution meilleure dans le sous-ensemble. Dj. Cela est évident ear Vx e Dj, ona: fix) > ev(D) > fs) On n’a done plus besoin de continuer I’exploration de la branche correspondant au sous- ensemble D;: la branche a été parcourue implicitement, C’est "I"évaluation” ou encore le "Bounding". Pratiquement, cela impose de savoir calculer rapidement une “bonne” évaluation par défaut de f(x) sur tous les sous-ensembles de D; et d’obtenir rapidement une "bonne” solution réalisable de f(x) sur D. La notion d’évaluation par défaut permet done, lorsque I’on posséde deja d’une “bonne” solution réalisable, de parcourir implicitement des branches entiéres de l’arborescence sans en examiner chacun des neeuds. Etudions en détail ces différents points. 1.3, Evaluation par défaut: + Pour chaque sous-probléme, on doit chercher une “bonne” évaluation par défaut. Pour cela diverses techniques peuvent étre utilisées mais la plus simple reste la relaxation linéaire du probléme considéré, En effet, la valeur de la solution optimale du programme linéaire relaxé Teprésente une bore inféricure (un minorant si la solution est entiére) de x) sur le sous- ensemble correspondant. 1.4, Ragles de séparation : Un ensemble D; peut étre séparé en plusieurs sous-ensembles D,j, Di, ..., Dip tels que D;= Di DaU ...W Dip. Le plus souvent, l'ensemble D, est séparé en deux sous-ensembles disjoints : Dj= Dj UV Dia, Dir 0 Dz = BD Iya deux types de séparation ~ création de nouvelles branches par fixation de la valeur d’une variable xj = i => Algorithme de Land & Doig. 62 ‘Supposons que toutes les variables sont binaires, on peut eréer deux sous-problémes oi I’on fixe la valeur de la variable considérée 0 : sous-probléme 1 x= + Sous-probléme 2 ~ création de nouvelles branches par ajout de contraintes de bomes: x; Algorithme de Dakin. * Supposons que la résolution du programme linéaire relaxé donne pour x; = 13/3. On peut eréer deux sous-problémes de fagon a avoir : S4 : sous-probléme I x25 sous-probléme 2 1.5. Déplacement dans arborescence : On distingue essentiellement deux régles de déplacement dans I’arborescenee, engendrant des procédures de séparation et d’évaluation différentes : - Procédures de séparation et d’évaluation progressive (S.E.P): elle consisie & prendre parmi les sommets pendants non encore étudiés, le sommet d’évaluation ‘minimale. Cela revient 8 faire une exploration en "largeur d’abord" (ou "breadth-first search"). Elles sont en’ général assez lourdes mais restent intéressantes lorsque le probléme est peu contrajnt et que I’on sait trouver de bonnes solutions réalisables. - Procédure de séparation et évaluation séquentielle (S.E.S) : elle consiste a prendre parmi les sommets pendants non encore étudiés, le sommet le plus proche du dernier sommet séparé, Cela revient & faire une exploration en "profondeur d’abord”” (ou “depth-first search” ow backtracking” ou LIFO). La taille de 'arborescence croit d'une maniére exponentielle et il est plus avantageux en termes de capacité de stockage requise de se limiter aux noeuds fils du noeud pére considéré, 2. LES ALGORITHMES D’ENUMERATION PAR SEPARATION ET EVALUATION : Avant de décrire les algorithmes d’énumération par séparation et évaluation, nous allons donner quelques définitions de base. 2.1, Définitions : t Considérons le programme linéaire en nombres entiers suivant: Max ex @) sc AKSb X20, x ehtier 63 i avec Aune matrice(mxn) | * Une solution partielle (ou partial solution) est une solution oi I’on fixe les valeurs de certaines des variables entiéres. Si $ est l'ensemble de ces variables fixées, ces demiéres seront notées xs et les variables de décision non encore fixées (variables libres) seront notées xS avec x5 e R™!S ! * Soit L= {x "/ Ax 2*), sauvegarder la nouvelle valeur de la meilleure solution entiére trouvée, mettre & jour 2* et couper Te nzud. c._sinon, le noeud reste pendant. Aller a V étape 3. Etape 3 a, s'il n’y aucun noeud pendant et qu’une solution entiére de valeur 2* a été trouvée, cette solution est optimale. Sinon, (P) est infaisable. Stop. b, Silya encore des nteuds pendants, aller 4 I'étape 4, Etape 4 : Choisir le nozud pendant présentant la plus grande évaluation par défaut. Soit S Trensemble des variables fixées. Aller 4 I'étape 2 Exemple 1 Max z= 3x14 % sc mt m $49 m $2 xi, x2 2 O etx, x entiers. 65 w= (i, X2) = 14 pour x = (2; 2) z= 15 pour x = (3; 1,5) 27 14,5 pourx= (3,55 infaisable ms3 x24 > oo 3 pour x=(3 4 pour x= (4; 0,5) =< Figure 1.6.4 : Arborescence du B&B Tableaux du simplexe du (LP) pére : ¥ Z |x: [x2 [x3 |x4|RHS. Z[-1/3 [4 [0 |o |o oO [1 i [1 Jo | 4,5 0 [o {1 [0 |i [2 t Z |x; [x2] x3 |x¢|RHS. Z [x1 [x2] x3|x4|RHS Z |-1[3 |0 Jo |-4]-8 Z[-1[0 [0 [-3]-1|-15,5 + [x3[0 [1 jo [1 }-112,5 xi [0 [1 [0 [0 |-1]2,5 x20 [0 [1 [o |i [2 x2/0 [0 [1 [o |i [2 Exemple 2: Max z = 3xi+2 x2 sc -2xj+2m $7 2x:+3 x < 18 9xj- 2m < 36 Xi, Xo 2 Oetxi, xzentiers. (xi, x2) 19+23/31 pour x = C (4+20/31 ; 2+28/31) (OEFD) : Point F (ABHG) : Point H 2= 17+1/3 pour x = (4+4/9 ; 2) 2= 19+1/2 pour x= (4+1/2 ; 3) (ABUG) : Point T 2= 18+2/3 pour x= (4 ; 3+1/3) infaisable z*= 18 pourx=J (453) 7 pour x= L (3 ;4) Figure 1.6.5 : Arborescence du B&B 66 Tableaux du simplexe du (LP) pére : Z |x; |x2|x3|x4|Xs|RHS Z {-1/3 [2 |0 |0 [0 |0 xs} |-2/2 [1 [0 |o |7 fxs/0 [2 13 [0 [1 JO |18 1 + [xs/0 [9 |-2/0 [0/1 [36 Xi|X2_|X3|X4/x5_| RHS X | X21 %3 | Xa Xs RHS Z|-1/0| 8/3 [0] 0]-1/3| -12 0 | 0 | 0 [-24/31| -5/31 [-612/31 x30] 0 [14/9] 1/0] 29] 15 0 | 0} 1 [-14/31 | 10/31 | 325/31 + = |x4/ 0] 0 [31/9] 0/1 |-2/9/ 10 O} 1] 0} 9/31 |-2/31] 90/31 xi/O0{1/-29}o0/0] 19] 4 1{o{o} 2/31 | 3/31 [144/31 7 onto 6 K CS Ka |GDOBT A) 17 ~~ | FDS pei Vy ~ _ [TESTE Figure 1.6.6, Représentation graphique du B&B 2.3. La résolution des programmes linéaires mixtes avec Ia méthode du B&B : Pour la résolution des programmes linéaires mixtes, on utilise l’algorithme d’énumération par séparation et évaluation proposé par Dakin en séparant sur les variables entiéres uniquement, Exemple Max z= 2x14 x sc Sxit2m <8 xt mg 53 Xi, X2 2 et x; enter, 67 I a, x2) z= 11/3 pour x = (2/3 ; 7/3) mS0 x21 x=3 Solution Candidate x Solution Candidate 3. RESOLUTION DU PROBLEME DU VOYAGEUR DE COMMERCE : Le probléme du voyageur de commerce (Traveling Salesman Problem) est défini comme suit : Un représentant de commerce doit rendre visite a un ensemble N de n clients, en partant dune ville et en retournant i son point de départ : "Tournée ou Tour”. Chaque client doit étre visité une et une seule fois. Pour cela, il connaft les distances dj séparant deux clients quelconques i etj ~ Si dj= dj le probléme est dit symétrique (Symetric TSP), = Sidj# dj le probléme est dit asymétrique (Asymetric TSP). ‘ Lrobjectif est de déterminer dans quel ordre le représentant de commerce doit rendre visite & ses clients pour que la distance totale parcourue soit minimale. 3.1. Formulation mathématique : Soient les variables binaires : x5 1 si le voyageur visite le client i puis le client j Osinon. Le probleme asymétrique du voyageur de commerce s’écrit : Min (ATSP) se Sw 1 a Yew si Viton @ St; Dw *s Isl-1 WSN /2sI8| 3 [a [a [a [ols |= 8 [Sfelets ‘On a 2 nouveaux problémes dans le 1 (Ppa), la route (D, A) est sélectionnée, dans le 2" (Pan), cette route n’est pas sélectionnée. Pour (PsA), la bome inférieure est Blpx= 16 + 3 = 19. Pour (Ppa), on met a jour la matrice puis on calcule la borne inféricure en appliquant létape 1 ‘Tableau 1.6.7 : Mise a jour Tableau 1.6.8 : (Ppa) : Réduetion dela matrice, dela matrice réduite de (Pp, calcul de la borne inférieure et calcul des pénalités A|BI|C[D|E|F A[B|CIDIE|F Alco| 0 | 3 [c/o] 1/0 Alco[ 0" [0*| co [oo] 1 B20] 0 ||| 0 [20|0 Ble] [|| 0] a Cleo] 11 {o[ 0 [ A — C, on fixe xco & ce pour éviter les sous-tours. On obtient une bome inférieure égale @ Blac = 19 + 1 = 20. On sélectionne la branche qui a la meilleure borne inféricure : (Ppa) avec Biba’ Tableau L611 : Mise’ jour dela matrice Tableau 1.6.12 : (Ppa) : Réduction de la réduite de (Poa) matrice, calcul de Ia borne inférieure et calcul des pén A[B[CIDIE[F ‘A[BICIDIEIF Alo [0 [3/2 [=| 1[0 Alc [07|3|2 [col 1 Bl) | 2 |o| 0] 0[e0|0 Bl =| «||| 0 [a0 C3 [110] 0 [oo] 00) Clo 11 | [0a 0" Do 1 [0 [cfc] 9 19} D2 | 1 [0"[ coo] 9 E[13| «| 6[0 || 2/0 E10 | «| 6 [0"| 00] 2 F[16| 1 [6|0|c[c|0 F[13[ 1 [6 [0 [eof 30 folo]o/o]3 La variable qui a la plus grande pénalité est xca avec 8ca = 10. On a2 nouveaux problémes dans le 1" (Pca), la route (C, A) est sélectionnée, dans le ed (Pep), cette route n’est pas sélectionnée, Pour (Paa), la borne inférieure est Blex= 19 + 10 = 29. Pour (Pc,), on meta jour a matric puis on ealcule la bore inférieure en appliquant 'étape | 4 Tableau 1.6.13 : Mise & jour de la matrice réduite de (Pca) A[BIC|DIE|F Also 0 [oo] 2 [oo] 1 [0 B [0 |e0| 0] 0] 0 [oo]0 C0 [co| 0/20/20 |e0]0 D[=o| 1[0[e[ao[9 [0 E[eo[oo] 6| 0 [oo| 2 [0 F[a[1[6|0[a[o[0 ofofolololi fi La bome inférieure : Blea = 19}+ 1 = 20. On a deux neeuds qui ont la meilleure valeur de la borne inférieure (20). On choisit arbitrairement d’explorer la branche du sous-probléme (Pac) car elle comprend plus de clients, La variable qui a la plus grande pénalité est xcr avec Scr = 12 On a 2 nouveaux problémes dans le 1* (Pcr), la route (C, F) est sélectionnée, dans le 2°" (Pes), cette route n’est pas sélectionnée. Pour (PG), la borne inférieure est Blc¢ = 20 + 12 = 32. Pour (Per), on met jon la matic puis on caleule la bore inftrieure en appliquant Pétape 1 ' Tableau 1.6.14 : Mise a jour de la matrice de (Pcr) A[BIC[DJE[F. aofo[a|> [8 [8 [os [8 [8 eels [8 [8 [8 [8 [8 [a [8 [8 [8 [ela lelelels [3 [3 [8 els (s [8 [8 [ols l=[3 [3 [3 [els [8 lslelelelslele| La bome inférieure : Blcr = 20 + 0 = 20. Une solution est : A> C+ F > B-+ ED A avec z= 20 15 (TSP) BI=J6 4 m~ * sx) Px Blpe = 16 ae ~ Po) Bens Blja= 19 Pac) Pre) (Pea) Px) Blac= 20 pied 22 Bica=20 © BIG=29 Via ce) (Pe) Blcr = 20 Bler= 32 Figure 1.6.8 rborescence du B&B pour le probléme du voyageur de commerce 4, RESOLUTION DU PROBLEME D’ORDONNANCEMENT : Exemple: On doit exécuter 4 taches sur une seule machine. Le temps nécessaire pour I’exécution de chaque tache et la date de fin souhaitée pour chaque tache sont donnés dans le tableau 6.15. Le retard dune tache est le nombre de jours entre la date de la fin de I’exécution et la date de fin souhaitée. Si une tiche est réalisée a temps ou avant la date de fin souhaitée, le retard est nul. Il sagit de déterminer dans quel ordre faut-il exécuter les tiches de fagon & minimiser le retard total des 4 taches ? Tableau 1.6.15 : Durées et dates de fin souhaitée pour chaque tiche ‘Temps d’exéoution (en jours) | Date de fin souhaitée Tache | 6 Fin du jour 8 Tache 2 4 Fin du jour 4 Tache 3 5 Fin du jour 12 Tache 4| 8 Fin du jour 16 On définit les variables de décision : si la tdche i Sera la j*"* a étre exécutée, sinon. 16 La procédure d’énumération par séparation et évaluation commence par séparer l'ensemble des solutions suivant la tiche qui sera exécutée en dernier lieu. Ainsi, on peut avoir : Xu= Lou x4 =1 ow x4 =10u xe =1 On a done 4 branches correspondant aux 4 taches considérées, Aprés la création des sous-problémes par séparation, on obtient des borne: retard total associé a chaque netud. : |, C'est la tache 4 qui sera exécutée Ia demiére, Les 4 téches seront achevées & la fin du jour: 6 + 4+5+8=23 ct le retard sera au moins de 23 ~ 16 = 7 jours, Ainsi, quelque soit l'ordonnancement comprenant la tiche 4 en demiére position, le retard total sera supérieur & 7 jours. féricurs sur le ‘Ned Newud2 Neud3 oe pais X | ois |X Deu Det xn= m= 1 woo a aye Xa 4 Neud io |y | Navdtt |y [Newi2] ~ [News|] x [Navas ]x [Naud7 bea Deas Deis pew |* [psi |X [pete ta= 1 ; = Neus Neus Diz D=16 x Figure 1.6.9. : Arborescence du B&B pour Ie probléme d’ordonnancement Pour se déplacer dans l’arborescence, on choisit la régle "Largeur d’abord”. Ainsi, le prochain noeud & explorer sera celui qui a le plus petite bore inférieure, & savoir le necud 4. On sépare I’ensemble des solutions en créant 3 nouveaux sous-problémes correspondant aux necuds 5, 6 et 7. Pour chaque neud, on calcule la nouvelle bome inférieure : par exemple pour le nceud 7, Ia tache 3 sera achevée au plus t6t la fin du jour 15 soit un retard de 15 - 12 = 3 jours supplémentaires et ainsi, D sera au moins égal 4 7 + 3 = 10 jours. Le prochain nzud a séparer est le ncud 7 car il a la plus petite bore inférieure. Et ainsi de suite... La solution optimale est donnée par le neud 8 : D = 12 jours avec l’ordre suivant : 2, 1, 3 et 4. 1

You might also like