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

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

La recherche de chemin optimal
Algorithmes et structures de données avancés
DTD Sylvain Salvati
Structures de données et complexité
Introduction à l’Algorithmique
Cours n° 8 Conception et Programmation à Objets
Cours d’Algorithmique
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Equipe optimisation TempoSoft
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
INTRODUCTION.
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Chapitre II.Rappels mathématiques et complexité
Génération de colonnes
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Introduction à l’algorithmique
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
Théorie des graphes Un peu de vocabulaire.
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Algorithmique et Programmation
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-2000
GPA 750 Chapitre 3 : Les méthodes d’ordonnancement génériques
GPA750 Les ateliers multigammes Chapitre 5
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Algorithmes d ’approximation
Efficacité des algorithmes
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Introduction aux problèmes d'ordonnancement sans temps-morts.
Ordonnancement de tâches on-line avec pénalités Nicolas Thibault et Christian Laforest Laboratoire IBISC (Évry) 1 / 12.
Programmation dynamique
GPA750 – Gestion de Projets
2. Algorithme de Recherche Tabou
Modélisation géométrique de base
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Coupes efficaces pour la relaxation lagrangienne
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Programmation linéaire en nombres entiers
Présentation du marché obligataire
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Algorithmes Branch & Bound
Le problème central de l’ordonnancement (les plus longs chemins)
Arbres binaires et tables de hachage
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°6.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Exploration systématique de graphes
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
CHAPITRE III Calcul vectoriel
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Programmation dynamique
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Chapitre 4 Variables aléatoires discrètes
Le Jeu et l’intelligence artificielle
programmation linéaire
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
Cycle, Cocycle, Arbre et Arborescence
Techniques d'Optimisation Master
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Chapitre 3 Problèmes de Cheminement
Transcription de la présentation:

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

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

Problème d'optimisation Définition : Nom du problème :  ; Paramètres génériques (nombres, ensembles, fonctions, graphes,...) Un énoncé I de  est une instanciation des paramètres génériques. A chaque énoncé I correspond : - un ensemble S(I) de solutions "réalisables"; - une fonction "objectif " f I : S(I)  N + ; Résolution (cas d'une minimisation) : Déterminer un algorithme A qui pour chaque énoncé I détermine une solution s*(I) de S(I) telle que :  s  S(I) : f I (s*(I)) ≤ f I (s).

Exemple. Nom: TSP (voyageur de commerce) Paramètres génériques : - un ensemble de n villes {1,2,...,n} ; - une matrice D n,n des distances entre villes ; Solutions réalisables d'un énoncé : les (n-1)! permutations circulaires (i 1,i 2,…,i n,i 1 ) des n villes ; Fonction objectif : f I (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 ) Résolution : Déterminer un algorithme qui, pour chaque matrice D, calcule un tour de longueur minimale.

Algorithme Branch and Bound Algorithme d’énumération (intelligemment guidée) résolvant un problème d'optimisation. Ce type d'algorithme concerne les problèmes d'optimisation tels que le nombre de solutions réalisables (i.e: Card(S(I)) est exponentiel en la taille de I. Exemple: TSP Donnée: D=[D(i,j)] est la matrice des distances entre les n villes S(I) est l’ensemble des (n-1)  tours (i 1,i 2,…,i n,i 1 ) Simplification des notations: Dans la suite, on omettra dans les notations la référence à l'énoncé I. X sera l'ensemble des solutions réalisables d'un énoncé ; f : X  N + sera la fonction objectif à minimiser

Principe général: Faire évoluer un recouvrement de l’espace des solutions, (représenté par les feuilles d'une arborescence) jusqu’à ce que tous les feuilles de l’arborescence soient déclarées « éliminées ». Le calcul de cette suite d’arborescences valides utilise: 1) des fonctions d’évaluation par excès et par défaut de la valeur optimale 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.

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* (en général la valeur de la meilleure solution connue). 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 associé ne peut contenir de solution optimale.

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 valeur de la meilleure solution de X(s): c'est-à-dire :  x  X(s), g(s) ≤ f(x)

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 + ) < f + et faire f + := f(x + )

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 si possible!) - 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.

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:

Principe de séparation Soit s une feuille d’une 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}

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:

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

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

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 l’arborescence 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

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 D TkTk

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.

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

(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