Vous êtes sur la page 1sur 11

Chapitre 6 : La mthode de branch and bound

1.Introduction Pour plusieurs problmes, en particulier les problmes doptimisation, lensemble de leurs solutions est fini (en tous les cas, il est dnombrable). Il est donc possible, en principe, dnumrer toutes ces solutions, et ensuite de prendre celle qui nous arrange. Linconvnient majeur de cette approche est le nombre prohibitif du nombre de solutions : il nest gure vident deffectuer cette numration. La mthode de branch and bound (procdure par valuation et sparation progressive) consiste numrer ces solutions dun manire intelligente en ce sens que, en utilisant certaines proprits du problme en question, cette technique arrive liminer des solutions partielles qui ne mnent pas la solution que lon recherche. De ce fait, on arrive souvent obtenir la solution recherche en des temps raisonnables. Bien entendu, dans le pire cas, on retombe toujours sur llimination explicite de toutes les solutions du problme. Pour ce faire, cette mthode se dote dune fonction qui permet de mettre une borne sur certaines solutions pour soit les exclure soit les maintenir comme des solutions potentielles. Bien entendu, la performance dune mthode de branch and bound depend, entre autres, de la qualit de cette fonction (de sa capacit dexclure des solutions partielles tt).

2. Lalgorithme gnral Par convenance, on reprsente lexcution de la mthode de branch-and-bound travers une arborescence. La racine de cette arborescence reprsente lensemble de toutes les solutions du problme considr. Dans ce qui suit, nous rsumons la mthode de branch-and-bound sur des problmes de minimisation. Pour appliquer la mthode de branch-and-bound, nous devons tre en possession : 1. dun moyen de calcul dune borne infrieure dune une solution partielle 2. dune stratgie de subdiviser lespace de recherche pour crer des espace de recherche de plus en plus petits. 3. dun moyen de calcul dune borne suprieure pour au moins une solution. La mthode commence par considrer le problme de dpart avec son ensemble de solutions, appel la racine. Des procdure de bornes infrieures et suprieures sont appliques la racine. Si ces deux bornes sont gales, alors une solution optimale est trouve, et on arrte l. Sinon, lensemble des solutions est divise en deux ou plusieurs sous-problmes, devenat ainsi des enfants de la racine. La mthode est ensuite applique rcursivement ces sous-problmes, engendrant ainsi une arborescence. Si une solution optimale est trouve pour une sous-problme, elle est ralisable, mais pas ncessairement optimale, pour le problme dpart. Comme elle est ralisable, elle peut tre utilise pour liminer toute sa descendance : si la borne infrieure dun

nud dpasse la valeur dune solution dj connue, alors on peut affirmer que la solution optimale globale ne peut tre contenue dans le sous-ensemble de solution reprsent par ce nud. La recherche continue jusqu ce que tous les nuds sont soit explors ou limins.

3. Illustration de la mthode sur quelques problmes La moyen le plus efficace, de comprendre un nouveau concept, est lillustration par lexemple. Cette section est donc dvolue la rsolution de quelques problmes par la mthode de Branchand-Bound Application 3.1 : le voyageur de commerce Nous avions dj vu ce problme dans les chapitre prcdents. Rappleons tout de mme sa dfinition. Dfinition 3.1 : Soit un graphe G=(V,E). Un cycle est hamiltonien si et seulement si tous les sommets de G apparaissent une et seule fois dans ce cycle. Dfinition 3.2: Soit un graphe G=(V,E) valu. Le problme du voyageur de commerce consiste trouver un cycle hamiltonien dont la somme des poids est minimale. Soit donc le graphe de la Figure 6.1:

C 4 4 E 8 D B 3 7 5 9 6 5 A

7 Figure 6.1

Cet graphe peut tre bien entendu reprsent par sa matrice D dadjacence tel que D[i,j] reprsente le poids de larc (i,j). Rsolvons ce problme en commenant par exemple partir du sommet E. Soit la borne v pour ce sommet (on verra plus loin comment la trouver !) c'est--dire la valeur de toutes les solutions incluant le sommet E vont avoir un cot v .

Le prochain sommet du cycle que nous recherchons est soit A, B, C ou D. Pour chacune de ces solutions partielles, nous calculons une nouvelle borne (signifiant que toutes les solutions comprenant cette solution partielle va avoir un cot cette nouvelle borne). Initialement, nous pouvons mettre le cot de la meilleure solution trouve un trs grand nombre ou bien de le trouver par une quelconque autre mthode (alatoire ou autre). Lide de cette mthode la suivante : toute solution partielle dont le cot est plus grand que celui de la meilleure solution trouve jusqu' prsent va tre exclue de la recherche. Ce processus est continu jusqu' avoir une solution complte. Si le cot de cette solution complte est infrieure celui de la meilleure solution que nous avons dj, alors nous remplaons ce cot comme tant celui de la meilleure solution courante. Il existe plusieurs manires de dcider quelle solution partielle explorer en premier. Celle que nous allons dcrire ci-dessous est celle qui consiste choisir toujours la solution ayant la plus petite borne. Mais il existe dautres manires de procder. Les unes se valent que les autres. La partie cruciale de branch and bound est la qualit de la fonction F. Si elle est trop simple, probablement que lexclusion des solutions partielles se fera des moment avancs. Cela a pour effet de rallonger encore les temps dexcution des ces algorithmes. Une fonction F peut tre comme suit : Lemme Soit le cycle hamiltonien suivant : v1 , v 2, ,..., v n , v n +1 = v1 . Il est facile de voir que, quelque

1 n (arc vi1 + arc vi2 ) o arc vi1 et arc vi2 dsignent deux 2 i =1 arcs adjacents au sommet i ayant le plus petit poids.
soit la solution, son cot est Preuve : Quelque soit le cycle hamiltonien, il doit y avoir deux arcs incidents chaque sommet du graphe : un arc sortant ce sommet et un arc entrant ce sommet. Le poids de larc sortant le sommet i est donn par D[i,j] , pour un certain j i. Le poids de larc entrant est aussi donn par D[k,i], pour un certain k j, car les deux arcs devant tre distincts. Par consquent, quelque soit un cycle hamiltonien, la somme des poids de deux arc incidents un sommet i doit tre suprieure celle des plus petits arcs deux arcs incidents i. En sommant sur les i, on compte par deux fois chacun des arcs. Do le rsultat du lemme.

Appliquons cette borne sur le graphe ci-dessus. En commenant partir de E, on aura donc: Le cot est {(3+4)+(4+4)+(5+5)+(3+6)+(4+7)}= 22.5 Les prochain sommets dans le cycle peuvent tre : A, B, C ou D. Pour chacune des ces solutions partielles, une borne est calcule. Par exemple pour D, la nouvelle borne est : {(8+3)+(4+4)+(5+5)+(3+6)+(4+8)}= 25.

Pour calculer cette borne, on applique la fonction ci-dessus en tenant compte que pour le sommet E, larc (E,D) doit tre pris, et pour le sommet D, larc (D,E) doit tre pris. La valeur 25 reprsente donc la plus petite valeur dun cycle hamiltonien incluant les arcs (E,D) et (D,E) ; les arcs ntant pas orients dans ce graphe. Ceci est fait pour chacun des sommets. On obtient successivement : 22.5 pour le sommet C, 23 pour le sommet A et 22.5 pour le sommet B. Parmi ces quatre valeurs, nous allons explorer le sommet ayant la plus petite valeur, soit le sommet C, avant dexplore le second sommet ayant la plus petite borne, etc. Il est utile de signaler quil existe dautre manires de procder dans le choix de la prochaine solution partielle explorer. Toutefois, chacune des ces mthodes a ses propres avantages et inconvnients. titre dexemple, nous pouvons citer lexploration en profondeur dabord (DFS) et la mthode en largeur dabord (BFS). Ce processus est ensuite rpt. Quand une solution complte est trouve, la meilleure solution courante est modifie si cela est ncessaire. Par exemple, dans notre exemple, la premire solution trouve a pour cot 26 remplaant ainsi lancienne valeur que nous avons initialise un grand nombre. Lide de Branch and Bound peut tre rsume comme suit : Quand un sommet a une borne plus grande que cette valeur, il ny a plus lieu de le considrer tant donne que cette solution partielle ne mnera pas la solution minimale. Ce processus de gnration de solutions partielles, avec le calcul de leur borne, gnre une arborescence. Pour lexemple ci-dessus, larborescence obtenue est la suivante :

Figure 6.2.

Remarquez qu galit des bornes, on choisit au hasard. On prend en premier le sommet C, on gnre les sommets A, B et D. On ensuite, on explore le sommet D. Ensuite B, A et E. ce stade, nous avons une solution complte ( ECDBAE) de valeur 26. Ensuite, on explore le sommet A qui va donner le sommet B, de valeur 26. Il ny pas lieu dexplorer encore cette solution partielle car sa borne infrieure vaut dj 26. Application 2 : problme daffectation Soient n personnes affecter n tches. Le cot de laffectation de i la tche j est not par cij . Le problme consiste affecter chaque personne une seule tche de telle manire minimiser le cot total . Bien entendu, une tche ne peut tre faite que par une seule personne. Illustration. Soit la matrice suivante des cots

C=

tche 1 9 6 5 7

tche 2 2 4 8 6

tche 3 7 3 1 9

tche 4 8 7 8 4

personne personne personne personne

a b c d

Si par exemple, on dcide de faire laffectation suivante (1, a) ; (2, c) ; (3, b) et (4,d); on aura le cot total suivant : 1 + 8 + 3 + 4 = 16. Par contre, si on faisait laffectation suivante : (1, b) ; (2, c) ; (3, d) et (4,a); on aura le cot total suivant 6 + 8 + 9 + 8 = 30. Lapplication de la mthode de branch-and-bound ncessite une fonction de borne infrieure. Une des ces fonctions de borne infrieure pourrait tre celle-ci : Il est clair que, quelque soit la solution, son cot ne peut pas tre plus petit que la somme des plus petits lments de chacune des lignes de la matrice des cots. Dans notre cas, 2 + 3 + 1 + 4 = 10. On commence par la racine qui correspond ltat de pas dlment encore choisi de la matrice des cots . La valeur de la borne infrieure est alors gale 10. Les nuds au premier niveau de larbre correspondent au 4 jobs de la premire ligne de la matrice partir du moment que chacun deux est un chois potentiel de la premire composante de la solution. Le plus prometteur parmi eux est le nud 2 car ayant la plus petite borne infrieure, comme illustr par la Figure 6.3.

Figure 6.3. En continuant, on gnre les nuds comme illustrs par la Figure 6.4. jusqu arriver la solution (2,a) ; (1,b) ; (3,c) et (4,d) engendrant un cot de valeur 13. Remarquons que, quand on arrive noeud 8, on choisit le couple (c,3). Cela nous laisse obligatoirement avec le couple (4,d). Cest la premire solution complte quon gnre ce stade de calculs. partir de l, soit on gnre une solution dont le cot est suprieur la solution courante (comme cest le cas pour le nud 9) soit on ignore les nuds car ne pouvant pas contenir une solution meilleure que celle dont on dispose (comme cest le cas des nuds 1, 3,4, 6 et 7). Notons que cest par pur hasard que nous avons gnr du premier coup la solution optimale.

Figure 6.4.

Application 3 : Flow shop trois machines Soient excuter n tches sur 3 machines. Chaque tche doit sexcuter sur la machine 1, ensuite sur la machine 2 et finalement sur la machine 3. Le temps dexcution de la tche i sur la machine 1 est not par ai , sur la machine 2 par bi et sur la machine 3 par ci . On dsire trouver une permutation dexcution de ces n tches sur les trois machines de tel manire minimiser le temps total daccomplissement, appel makespan. Illustration Soit lexemple suivant de 4 tches sur 3 machines avec les temps dexcution suivants : ai 1 2 6 3 bi 8 4 2 9 ci 4 5 8 2

tche 1 tche 2 tche 3 tche 4

Si on dcide dexcuter les tches dans lordre 1, 2, 3 et 4, alors le temps daccomplissement de toutes les tches est gal ??, comme illustr par le diagramme de Gantt suivant : (le donner en cours) Si, par contre, on les excute dans lordre 4, 3, 1 et 2, alors le temps daccomplissement de toutes les tches est gal ??, comme illustr par le diagramme de Gantt suivant (le donner en cours). Avant de procder la rsolution proprement dite, on aura besoin de calculer le makespan pour une solution donne. Soit A = {i (1), i (2),..., i (k )} lensemble des premires tches dj excutes dans cet ordre, et U lensemble des tches non encore excutes, un instant donn. Pour j = 1,2,..., k , on pose i ( k ) , i ( k ) , i ( k ) la date de fin de la tche i (k ) sur la machine 1, la machine 2 et la machine 3, respectivement. Ces trois variables sont calcules rcursivement comme suit :

i ( k ) = ai (1) ; i ( k ) = i ( k 1) + ai ( k ) ;

i (1) = ai (1) + bi (1) ; i ( k ) = max{ i ( k ) , i ( k 1) }+ bi ( k ) ; i (1) = ai (1) + bi (1) + ci (1) ; i ( k ) = max{ i ( k ) , i ( k 1) }+ ci ( k ) .


Pour calculer une borne infrieure ce problme, nous allons considrer trois possibilits les plus favorables qui peuvent se prsenter. Autrement dit, nous allons dterminer le plus court temps pour excuter les jobs dans lensemble U des tches non encore excutes. Il est clair que dans toute solution, lexcution des tches sur la machine 1 est continuelle. Considrons la dernire tche, disons i (n) , dune solution donne. Le meilleur qui puisse arriver

cette tche est de ne pas attendre sur la machine 2 et la machine 3. Autrement dit, le makespan C max est alors C max = i ( k ) + ai + (bi ( n ) + ci ( n ) )
iU

Par consquent, si on choisit les plus court temps dexcution sur la machine 2 et 3, alors quelque soit la solution, on aura C max i ( k ) + ai + min (bi + ci )
iU iU

Similairement, en considrant que la machine 2 est continue dans son excution. On a alors C max = i ( k ) + bi + ci ( n ) )
iU

En choisissant le plus court temps dexcution sur la machine 3, quelque soit la solution, on a alors : C max = i ( k ) + bi + min ci ( n )
iU iU

Similairement, en considrant que la machine 3 est continue dans son excution. On obtient la borne suivante : C max i ( k ) + ci
iU

Par consquent, quelque soit la solution, son makespan ne peut faire mieux que la valeur des trois expression ci-dessus. Autrement dit, nous avons bien :

C max max i ( k ) + ai + min{bi + ci }; i ( k ) + bi + min{ci }; i ( k ) + ci iU iU iU iU iU Munis de cette borne infrieure, on peut passer la rsolution de notre problme. la racine de larbre, aucune tche nest excute, la borne infrieure est donc : C max max i ( k ) + ai + min{bi + ci }; bi + min{ci }; ci = { 12 + 2 + 2;23 + 2;19} = 14 . iU iU iU iU iU Autrement dit, aucune solution ne peut avoir un makespan infrieur 14. - Si on met la tche 1 en position 1, on obtient : A = {1} ; U={2,3,4}

1 = 1; 1 = 9; 1 = 13
borne infrieure = max{ 1 + 11 + 9,9 + 15 + 2;13 + 15} = 28 . - Si on met la tche 2 en position 2, on obtient : A = {1,2} ; U={3,4}

2 = 1 + 2 = 3; 2 = max{3,9} + 4 = 13; 2 = max{13,13} + 5 = 18


borne infrieure = max{3 + 9 + 10;13 + 11 + 2;18 + 10} = 28 . - Si on met la tche 3 en position 3, on obtient : A = {1,2,3} ; U={4}

3 = 3 + 6 = 9; 3 = max{9,13} + 2 = 15; 3 = max{15,18} + 8 = 26


borne infrieure = max{??? 9 + 10;13 + 11 + 2;18 + 10} = 28 . - Si on met la tche 4 en position 4, on obtient : A = {1,2,3,4} ; U={}

4 = 9 + 3 = 12; 4 = max{12,15} + 9 = 24; 4 = max{24,26} + 2 = 28


Par consquent, le makespan est donc gal 28. On vient de trouver que la valeur du makespan, de notre premire solution, est 28, comme le montre la Figure 6.5.

Figure 6.5.

Ce quon vient de faire jusquici, cest davoir travers larborescence de calculs en profondeur dabord. Cela nous permet, partir de maintenant, davoir une borne suprieure du makespan. Si, dans lexploration de cette arborescence, on obtient des bornes infrieures plus grande que 28, on peut les ignorer de la recherche, puisque ces solutions partielles ne peuvent contenir la solution optimale. En continuant de la sorte, on obtient la Figure 6.6. suivante : une arborescence compltement explore.

Figure 6.6.

Les nuds cres par des arcs en pointills sont des nuds qui nont pas t explors lors de la cration de larborescence car ne pouvant contenir une solution optimales.

Rrrences:
1. Azmoodeh, M. (1988): Abstract data types and algorithms, McMillan. 2. French, S. (1982): Sequencing and scheduling, Ellis Horwood Ltd., Chichester, 3. Levitin, A. (2003): Introduction to the design and analysis of algorithms, Addison Wesley.

Vous aimerez peut-être aussi