La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmes Branch & Bound

Présentations similaires


Présentation au sujet: "Algorithmes Branch & Bound"— Transcription de la présentation:

1 Algorithmes Branch & Bound
Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne

2 Algorithmes Branch & Bound
Cadre général d ’application. Arborescence valide. Opérations sur les arborescences valides: (troncature, séparation, évaluation, ajustement) Règles de dominance Un problème d ’ordonnancement sur une machine: Minimiser la somme des retards

3 Cadre général d ’application
Méthode très générale d ’énumération intelligemment guidée. Cadre général: Opt{f(x)xX} où: Opt= Min ou Max, X est l ’ensemble fini des solutions d ’un problème, f(x) est la valeur de la fonction objectif pour la solution x. Remarque: X est fini mais très grand (exponentiel en la taille du problème) Exemple: TSP Donnée: D=[d(i,j)] est la matrice des distances entre les n villes X est l ’ensemble des (n-1) tours (i1,i2,…,in,i1) Min{f(i1,i2,…,in,i1)=d(i1,i2)+d(i2,i3)+…+d(in-1,in)+d(in,i1)}

4 Principe général: Faire évoluer un recouvrement de l ’espace des solutions, (représenté par une arborescence valide) jusqu ’à ce que tous les sommets de l ’arborescence soient marqués «éliminés ». Le calcul de cette suite d ’arborescences valides utilise: 1) des fonctions d ’évaluation par excès et par défaut de sous-ensembles des solutions, 2) des régles de séparation de sous-ensembles de solutions, 3) des règles de dominance entre sous-ensembles de solutions.

5 Arborescence valide Notations:
f*=Min{f(x)xX} est la valeur d ’une solution optimale f+ est une évaluation par excès de f* Une arborescence valide est une arborescence dont les feuilles représentent le recouvrement courant. Compte-tenu de la valeur courante de f + et de l ’évaluation par défaut de la meilleure solution associée à une feuille, certaines feuilles sont marquées « éliminées » car le sous- ensemble de solutions qu ’elles représentent ne peut contenir de solution optimale.

6 10 20 13 15 20 17 20 18 16 19 19 16 17 22 18 19 21 En bleu: valeur de la meilleure solution connue En rouge: borne inférieure des solutions associées au noeud Valeur de la solution optimale : 17

7 A est une arborescence valide pour f + si:
1) les sommets de A correspondent à des parties de X; (on note X(s) la partie de X représentée par le sommet s de A), 2) la racine r de A correspond à X (soit X(r)=X); 3) si le sommet s a pour successeurs s1, s2, … ,sj, alors: X(s)=X(s1)X(s2)  … X(sj); 4) Certains sommets de A peuvent être marqués « éliminés »; 5) Si f*< f +, alors A possède une feuille non éliminée contenant une solution optimale; 6) A toute feuille s de A est associée un nombre g(s) qui est une évaluation par défaut de la meilleure solution de X(s).

8 Opérations sur les arborescences valides
Troncature: Eliminer une feuille. Séparation: Définir des successeurs s1, … ,sp pour une feuille s de A tels que X(s)=i {1..p}X(si); on pose alors g(si)=g(s). Evaluation: Calculer pour une feuille s une nouvelle valeur de l ’évaluation par défaut g(s) strictement plus grande. Ajustement: Calculer une solution x+ telle que f(x+)<f + et donner à f+ la valeur f(x+)

9 Algorithme Branch & Bound:
Suite finie d ’opérations de troncature, séparation, évaluation ou ajustement - à partir de l ’arborescence réduite à sa racine (arborescence valide pour f + = + et g(X) = -  (ou mieux) - telle que toutes les feuilles de la dernière arborescence valide sont éliminées. Remarque: Pour l ’arborescence valide finale, on a nécessairement f +=f * (propriété (5) des arborescences valides). Troncatures induites par les évaluations et les ajustements. Soit A une arborescence valide et soit s une feuille de A. 1) Si g(s)>f +=f(x+) , alors on peut éliminer s. 2) Si on peut démontrer que xX(s), f(x)≥f + , alors on peut éliminer s.

10 Règles de dominance Les règles de dominance fournissent des conditions suffisantes pour éliminer des sommets de l ’arborescence valide en cours. Elles sont de 2 types: Soit s une feuille d ’une arborescence valide A. S ’il existe X ’ X(s) tel que xX(s),  x ’X ’: f(x ’)≤f(x) , alors on peut 1) séparer s en u et v tels que X(u)=X ’ et X(v)=X(s)\X ’, 2) éliminer v. Soient u et v deux feuilles d ’une arborescence valide A. Si xX(u),  yX(v): f(y)≤f(x) , alors on peut éliminer u.

11 Principe de séparation
Soit s une feuille d ’une arborescence valide A. Les fils de s sont alors s1, s2, …, sk où: j{1..k}, X(sj)={x X(s)/pj(x) est vrai} Une séparation de s se fait à partir des propriétés p1, p2,..,pk de X(s) telles que: xX(s), x satisfait p1 ou p2 ou … ou pk. Remarques: 1) Souvent les propriétés p1, p2,..,pk induisent des parties 2 à 2 disjointes de X(s). 2) Souvent k=2.

12 Le choix du prochain sommet à séparer peut être réalisé
de diverses façons, les 2 suivantes sont les plus utilisées: Profondeur: On choisit la feuille la plus récemment créée de l ’arborescence valide en cours Remarques: 1) Une pile permet d ’implémenter efficacement cette règle de choix 2) Cette règle permet d ’obtenir rapidement des solutions réalisables. Evaluation minimale: On choisit la feuille s dont l ’évaluation g(s) est minimale Remarques: 1) Une file de priorité (tas) permet d ’implémenter efficacement cette règle de choix 2) Cette règle favorise l ’obtention de bonnes solutions

13 Remarques générales Il est très important que la première opération soit un ajustement fournissant une bonne valeur f +=f(x+). Il faut donc concevoir une heuristique fournissant une bonne première solution x+. Si l ’on dispose à une étape donnée d ’une bonne solution x+ , il peut être intéressant de redémarrer l ’algorithme B&B sur le sous-ensemble initial de solutions: X ’={x X/f(x)<f(x+)} On peut même aller jusqu ’à faire une dichotomie sur f*

14 Un exemple: minimiser la somme des retards d ’un ensemble de tâches éxécutées sur une machine
Données: un ensemble E ={T1,T2,…,Tn}de n tâches une machine M i, pi:durée de l ’exécution de Ti sur M di: deadline de la tâche Ti. Problème: Déterminer un séquencement de l ’exécution des n tâches sur M tel que la somme des retards des tâches soit minimale. 4 7 14 16 18

15 Un énoncé: 5 tâches tâche T1 T2 T3 T4 T5 durée deadline Un séquencement: (T1,T2,T3,T4,T5) 4 d1=5 0 + 7 d2=6 1 + 14 16 d3=d4=8 18 d5=17 1 F((T1,T2,T3,T4,T5))=

16 Un sommet de l’arborescence correspond à une liste fixée
D=(T(i1), … T(ir)) des r dernières tâches du séquencement : la tâche T(ir) est exécutée à -p(T(ir)), la tâche T(ir-1) est exécutée à -[p(T(ir))+p(T(ir-1))], …….. la tâche T(i1) est exécutée à -[p(T(ir))+…+p(T(i1))], où  = ∑i=1 n p(Ti). Les (n-r) premières tâches ne sont pas arbitrées temps D La racine correspond à la liste vide : D = () . Séparation: On sépare le sommet associé à D sur la dernière tâche de la partie non encore arbitrée : si D= (T(i1), … T(ir)), alors le sommet est séparé en les n-r sommets associés à (Tj)D, j  {i1, … ir}.

17 Evaluation par défaut. Soit D la liste des dernières tâches associée à une feuille s. L ’évaluation g(s) est la somme des retards des tâches de D. Première règle de dominance: Soit s une feuille caractérisée par la liste D. Soit Tk une tâche n ’appartenant pas à D. Si dk≥ -p(D), alors les séquencements caractérisés par la liste (Tk).D sont dominants dans X(s). -p(D) D Tk -p(D) D

18 Si une feuille s est caractérisée par la liste D, on note
T(D) l ’ensemble des tâches de D et R(D) le retard lié aux tâches de D. Deuxième règle de dominance Considérons deux feuilles s1 et s2 caractérisées par les listes respectives D1 et D2. Si R(D2)≥ R(D1) et T(D2) T(D1) alors s1 domine s2. On part d ’un séquencement quelconque U de X(s2); On construit un meilleur séquencement V de X(s1). Si F est une sous-ensemble de tâches et si x est un séquencement , on note Rx(F) la somme des retards des tâches de F dans le séquencement x.

19 D2 séquencement U de X(s2)  D1 séquencement V associé de X(s1) Les tâches rouges (de E \ T(D1) ) sont soit ordonnancées à la même date ; soit avancées; donc RV(E \ T(D1) ) ≤ RU(E \ T(D1) ) . RU(E)= R(D2) + RU(T(D1) \ T(D2)) + RU(E \ T(D1) ). RV(E)=R(D1) + RV(E \ T(D1) ) . Il en résulte que V est meilleur que U.

20 () (1) (5) (2) (3) (4) (4,5) * (1,5) * (2,5) * (3,5) * * (2,4,3,5)
tâche T1 T2 T3 T4 T5 durée deadline  = 18 () (1) 13 (5) 1 (2) 12 (3) 10 (4) 10 (4,5) 9 * (1,5) 12 * (2,5) 11 * (3,5) 9 * * (2,4,3,5) 11 (3,4,5) 15 (1,3,5) 13 (1,4,5) 18 (2,4,5) 17 (2,3,5) 12 (4,3,5) 10 (1,4,3,5) 12 * (1,2,4,3,5) 11 *


Télécharger ppt "Algorithmes Branch & Bound"

Présentations similaires


Annonces Google