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 Module IAD/RP/RO Master d informatique Paris 6 Philippe Chrétienne.

Présentations similaires


Présentation au sujet: "Algorithmes Branch & Bound Module IAD/RP/RO Master d informatique Paris 6 Philippe Chrétienne."— 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 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 lensemble fini des solutions dun problème, f(x) est lévaluation de 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 (i 1,i 2,…,i n,i 1 ) Min{f(i 1,i 2,…,i n,i 1 )=d(i 1,i 2 )+d(i 2,i 3 )+…+d(i n-1,i n )+d(i n,i 1 )}

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 feuilles de larborescence soient « éliminées ». Le calcul de cette suite darborescences 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 dune 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 de X. Remarque : A partir de: - la valeur courante de f + ; - lévaluation par défaut des feuilles; certaines feuilles sont marquées « éliminées » car le sous-ensemble de solutions qu elles représentent ne peut contenir de solution optimale.

6 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 s 1, s 2, …,s j, alors: X(s)=X(s 1 ) X(s 2 ) … X(s j ); 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).

7 Opérations sur les arborescences valides Troncature: Eliminer une feuille. Séparation: Définir des successeurs s 1, …,s p pour une feuille s de A tels que X(s)= i {1..p} X(s i ); on pose alors g(s i )=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 + )

8 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 x X(s), f(x) f +, alors on peut éliminer s.

9 Règles de dominance 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. Les règles de dominance fournissent des conditions suffisantes pour éliminer des sommets de l arborescence valide en cours. Elles sont de 2 types:

10 Principe de séparation Soit s une feuille dune arborescence valide A. Remarques: 1) Souvent les propriétés p 1, p 2,..,p k induisent des parties 2 à 2 disjointes de X(s). 2) Souvent k=2. Une séparation de s se fait à partir des propriétés p 1, p 2,..,p k de X(s) telles que: x X(s), x satisfait p 1 ou p 2 ou … ou p k. Les fils de s sont alors s 1, s 2, …, s k où: j {1..k}, X(s j )={x X(s)/p j (x) est vrai}

11 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 Le choix du prochain sommet à séparer peut être réalisé de diverses façons, les 2 suivantes sont les plus utilisées:

12 Un exemple: minimiser la somme des retards d un ensemble de tâches éxécutées sur une machine Données: un ensemble E ={T 1,T 2,…,T n }de n tâches une machine M i, p i :durée de l exécution de T i sur M d i : deadline de la tâche T i. 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

13 Un énoncé: 5 tâches tâche T 1 T 2 T 3 T 4 T 5 durée deadline Un séquencement: (T 1,T 2,T 3,T 4,T 5 ) 0 F((T 1,T 2,T 3,T 4,T 5 ))= 4 d 1 = d 2 = d 3 =d 4 = d 5 =17 1

14 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(i 1 ), … T(i r )), alors le sommet est séparé en les n-r sommets associés à (T j )D, j {i 1, … i r }. 0 temps D La racine correspond à la liste vide : D = (). Un sommet de larborescence correspond à une liste fixée D=(T(i 1 ), … T(i r )) des r dernières tâches du séquencement : la tâche T(i r ) est exécutée à -p(T(i r )), la tâche T(i r-1 ) est exécutée à -[p(T(i r ))+p(T(i r-1 ))], …….. la tâche T(i 1 ) est exécutée à -[p(T(i r ))+…+p(T(i 1 ))], où = i=1 n p(T i ). Les (n-r) premières tâches ne sont pas arbitrées

15 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 T k une tâche n appartenant pas à D. Si d k -p(D), alors les séquencements caractérisés par la liste (T k ).D sont dominants dans X(s). 0 -p(D) D 0 -p(D) D TkTk

16 Deuxième règle de dominance Considérons deux feuilles s 1 et s 2 caractérisées par les listes respectives D 1 et D 2. Si R(D 2 ) R(D 1 ) et T(D 2 ) T(D 1 ) alors s 1 domine s 2. 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. On part d un séquencement quelconque U de X(s 2 ); On construit un meilleur séquencement V de X(s 1 ). Si F est une sous-ensemble de tâches et si x est un séquencement, on note R x (F) la somme des retards des tâches de F dans le séquencement x.

17 Les tâches rouges (de E \ T(D1) ) sont - soit ordonnancées à la même date ; - soit avancées; donc R V (E \ T(D1) ) R U (E \ T(D1) ). R U (E)= R(D 2 ) + R U (T(D 1 ) \ T(D 2 )) + R U (E \ T(D1) ). R V (E)=R(D1) + R V (E \ T(D1) ). 0 séquencement U de X(s 2 ) 0 séquencement V associé de X(s 1 ) D2D2 Il en résulte que V est meilleur que U. D1D1

18 (1) 13 (2) 12 (4) 10 (3) 10 (5) 1 (1,3,5) 13 (4,3,5) 10 (1,4,5) 18 (2,4,5) 17 (3,4,5) 15 0 () (1,5) 12 * (2,5) 11 * (3,5) 9 * (4,5) 9 * (2,3,5) 12 (1,4,3,5) 12 * * * * (2,4,3,5) 11 * * (1,2,4,3,5) 11 * tâche T 1 T 2 T 3 T 4 T 5 durée deadline = 18


Télécharger ppt "Algorithmes Branch & Bound Module IAD/RP/RO Master d informatique Paris 6 Philippe Chrétienne."

Présentations similaires


Annonces Google