Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.

Slides:



Advertisements
Présentations similaires
Programmation linéaire et Recherche opérationnelle
Advertisements

La Méthode de Simplexe Standardisation
La méthode du simplexe.
Gestion de portefeuille
Algorithmes et structures de données 9ème cours Patrick Reuter maître de conférences
Algorithmes et structures de données avancés
MATHEMATIQUES COMPETENCE 3 :
Métaheuristiques pour l’optimisation combinatoire
Journées Francophones
Cours d’Algorithmique
Cours d’Algorithmique
1 Bornes supérieures pour le TV-Break Packing Problem Thierry Benoist BOUYGUES e-lab
Equipe optimisation TempoSoft
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Génération de coupes pour la planification d’agents
Génération de colonnes
Optimisation dans les réseaux Recherche Opérationnelle GC-SIE.
Recherche opérationnelle
Optimisation globale déterministe Programmation par intervalles et branch and bound.
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.
Optimisation en nombres entiers
Optimisation non linéaire sans contraintes
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
Optimisation linéaire
ENSIIE-Master MPRO Alain Faye
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.
Optimisation non linéaire sans contraintes
Optimisation non linéaire sans contraintes
Le problème de sécurisation multicouche avec capacités du réseau IP
Systèmes d’équations du premier degré à deux variables
GPA750 Les ateliers multigammes Chapitre 5
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Programmation linéaire en nombres entiers : la méthode du simplexe
Algorithmes d ’approximation
Optimisation dans les réseaux
Optimisation dans les réseaux
Optimisation dans les réseaux
Optimisation linéaire
Optimisation linéaire
Optimisation linéaire
Optimisation linéaire
Optimisation non linéaire sans contraintes Recherche opérationnelle GC-SIE.
Optimisation non linéaire sans contraintes
Introduction à la programmation linéaire
Page de garde présentation
Programmation dynamique
GPA750 – Gestion de Projets
2. Algorithme de Recherche Tabou
Génération de colonnes pour la résolution des problemes de foresterie
Programmation linéaire en nombres entiers : les méthodes de troncature
Introduction à la programmation linéaire en nombres entiers
l’algorithme du simplexe
MAXIMISER les RESULTATS
Introduction Objet de la programmation mathématique, construction d'un modèle mathématique, problème général de programmation mathématique et classification,
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Coupes efficaces pour la relaxation lagrangienne
Décomposition de Benders
les méthodes de recherche locale
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
Foued Mnasri Weal Rekik
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Programmation dynamique
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
Programme linéaire - solution graphique
Techniques d'Optimisation Master
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

Optimisation en nombres entiers Recherche Opérationnelle GC-SIE

Branch & bound

Michel Bierlaire3 Algorithmes On distingue 3 types dalgorithmes 1. Algorithmes exacts – Ils trouvent la solution optimale – Ils peuvent prendre un nombre exponentiel ditérations 2. Algorithmes dapproximation – Ils produisent une solution sous-optimale. – Ils produisent une mesure de qualité de la solution. – Ils ne prennent pas un nombre exponentiel ditérations.

Branch & boundMichel Bierlaire4 Algorithmes 3. Algorithmes heuristiques – Ils produisent une solution sous-optimale. – Ils ne produisent pas de mesure de qualité de la solution. – En général, ils ne prennent pas un nombre exponentiel ditérations. – On observe empiriquement quils trouvent une bonne solution rapidement.

Branch & boundMichel Bierlaire5 Relaxation Soit un programme linéaire mixte en nombres entiers min c T x + d T y + e T z s.c. Ax + By + Cz = b x,y,z 0 y entier z {0,1}

Branch & boundMichel Bierlaire6 Relaxation Le programme linéaire min c T x + d T y + e T z s.c. Ax + By + Cz = b x,y 0 0 z 1 est appelé sa relaxation linéaire.

Branch & boundMichel Bierlaire7 Branch & Bound Idées : Diviser pour conquérir Utilisation de bornes sur le coût optimal pour éviter dexplorer certaines parties de lensemble des solutions admissibles.

Branch & boundMichel Bierlaire8 Branch & Bound Branch Soit F lensemble des solutions admissibles dun problème min c T x s.c. x F On partitionne F en un une collection finie de sous-ensembles F 1,…,F k. On résout séparément les problèmes min c T x s.c. x F i Par abus de langage, ce problème sera appelé F i également.

Branch & boundMichel Bierlaire9 Branch & Bound Représentation : F F1F1 F2F2 FkFk

Branch & boundMichel Bierlaire10 Branch & Bound A priori, les sous-problèmes peuvent être aussi difficiles que le problème original. Dans ce cas, on applique le même système. On partitionne le/les sous- problèmes.

Branch & boundMichel Bierlaire11 Branch & Bound F F1F1 F2F2 FkFk F 21 F 22 F 2m F 211 F 212 F 21n

Branch & boundMichel Bierlaire12 Branch & Bound Bound : On suppose que pour chaque sous- problème min c T x s.c. x F i on peut calculer efficacement une borne inférieure b(F i ) sur le coût optimal, i.e. b(F i ) min x F i c T x Typiquement, on utilise la relaxation linéaire pour obtenir cette borne

Branch & boundMichel Bierlaire13 Branch & Bound Algorithme général : A chaque instant, on maintient – une liste de sous-problèmes actifs, – le coût U de la meilleure solution obtenue jusqualors. – Valeur initiale de U : soit, soit c T x pour un x admissible connu.

Branch & boundMichel Bierlaire14 Branch & Bound Algorithme général (suite): Une étape typique est : 1. Sélectionner un sous-problème actif F i 2. Si F i est non admissible, le supprimer. Sinon, calculer b(F i ). 3. Si b(F i ) U, supprimer F i. 4. Si b(F i ) < U, soit résoudre F i directement, soit créer de nouveaux sous-problèmes et les ajouter à la liste des sous- problèmes actifs.

Branch & boundMichel Bierlaire15 Branch & Bound Soit le problème F en forme canonique min x 1 – 2x 2 s.c. -4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 0 x 1, x 2 entiers

Branch & boundMichel Bierlaire16 Branch & Bound b(F i ) sera le coût optimal de la relaxation linéaire. Si la solution de la relaxation est entière, pas besoin de partitionner le sous- problème. Sinon, on choisit un x* i non entier, et on crée deux sous-problèmes en ajoutant les contraintes : x i x* i et x i x* i Ces contraintes sont violées par x*.

Branch & boundMichel Bierlaire17 Branch & Bound U = + Liste des sous-problèmes actifs : {F} Solution de la relax. de F : x* = (1.5,2.5) b(F) = -3.5 Création des sous-problèmes en rajoutant les contraintes x 2 x* 2 = 2 x 2 x* 2 = 3

Branch & boundMichel Bierlaire18 Branch & Bound F1F1 F2F2 min x 1 – 2x 2 s.c. -4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 0 x 2 3 x 1, x 2 entiers min x 1 – 2x 2 s.c. -4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 0 x 2 2 x 1, x 2 entiers Liste des sous-problèmes actifs : {F,F 1,F 2 }

Branch & boundMichel Bierlaire19 Branch & Bound 1 - 4x 1 +6x 2 9 x 1 +x 2 4 x 2 3 x 2 2 F 1 non admissible Liste des sous-problèmes actifs : {F,F 2 } (0.75,2)

Branch & boundMichel Bierlaire20 Branch & Bound U = + Liste des sous-problèmes actifs : {F,F 2 } Solution de la relax. de F 2 : x* = (0.75,2) b(F 2 ) = Création des sous-problèmes en rajoutant les contraintes x 1 x* 1 = 0 x 1 x* 1 = 1

Branch & boundMichel Bierlaire21 Branch & bound F 21 F 22 min x 1 – 2x 2 s.c. -4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 0 x 2 2 x 1 1 x 1, x 2 entiers min x 1 – 2x 2 s.c. -4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 0 x 2 2 x 1 0 x 1, x 2 entiers

Branch & boundMichel Bierlaire22 Branch & Bound 1 - 4x 1 +6x 2 9 x 1 +x 2 4 x 2 2 Liste des sous-problèmes actifs : {F,F 2,F 21,F 22 } x 1 0 x 1 1 F 21 (1,2) F 22 (0,1.5)

Branch & boundMichel Bierlaire23 Branch & Bound U = + Liste des sous-problèmes actifs : {F,F 2, F 21, F 22 } Solution de la relax. de F 21 : x* = (1,2) (1,2) est solution de F 21 b(F 21 ) = -3 U = -3

Branch & boundMichel Bierlaire24 Branch & Bound U = -3 Liste des sous-problèmes actifs : {F, F 2, F 22 } Solution de la relax. de F 22 : x* = (0,1.5) b(F 22 ) = -3 U Liste des sous-problèmes actifs : {F, F 2 } Solution de F 2 = (1,2) Solution de F = (1,2).

Branch & boundMichel Bierlaire25 Branch & Bound F F1F1 F2F2 F 21 F 22 Non adm. x* = (0.75,2) b(F 2 ) = x 2 3 x 2 2 x 1 0 x 1 1 x* = (1,2) b(F 21 ) = -3 x* = (0,1.5) b(F 22 ) = -3 x* = (1.5,2.5) b(F) = -3.5

Branch & boundMichel Bierlaire26 Branch & Bound Problème binaire du sac à dos Deux simplifications 1. Les variables sont binaires. 2. La relaxation linéaire peut être résolue efficacement par un algorithme glouton: prendre dabord les articles à meilleur rendement, jusquà atteindre la capacité.

Branch & boundMichel Bierlaire27 Branch & Bound Une société dispose de F à investir. Les experts proposent 4 investissements possibles Bénéfice Inv Inv Inv Inv. 1 RendementCoût

Branch & boundMichel Bierlaire28 Branch & Bound Relaxation de F (U=- ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût Relaxation de F : x*=(1,1,0.5,0) b(F) = > U (! On maximise) F 1 : x 3 = 1 F 2 : x 3 =

Branch & boundMichel Bierlaire29 Branch & Bound F F2F2 F1F1 x 3 =1x 3 =0

Branch & boundMichel Bierlaire30 Branch & Bound Relaxation de F 1 (U=- ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût 1 1 5/7 0 Relaxation de F 1 : x*=(1,5/7,1,0) b(F 1 ) = > U F 11 : x 2 = 0 F 12 : x 2 = 1

Branch & boundMichel Bierlaire31 Branch & Bound F F2F2 F1F1 F 11 F 12 x 3 =1x 3 =0 x 2 =0 x 2 =1

Branch & boundMichel Bierlaire32 Branch & Bound Relaxation de F 11 (U=- ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût Relaxation de F 11 : x*=(1,0,1,1) b(F 11 ) = > U U =

Branch & boundMichel Bierlaire33 Branch & Bound F F2F2 F1F1 F 11 F 12 x 3 =1x 3 =0 x 2 =0 x 2 =

Branch & boundMichel Bierlaire34 Branch & Bound Relaxation de F 12 (U 11 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût 3/ Relaxation de F 12 : x*=(3/5,1,1,0) b(F 12 ) = > U F 121 : x 1 = 0 F 122 : x 1 = 1

Branch & boundMichel Bierlaire35 Branch & Bound F F2F2 F1F1 F 11 F 12 F 121 F 122 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =

Branch & boundMichel Bierlaire36 Branch & Bound Relaxation de F 121 (U 11 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût Relaxation de F 121 : x*=(0,1,1,1) b(F 121 ) = > U U =

Branch & boundMichel Bierlaire37 Branch & Bound F F2F2 F1F1 F 11 F 12 F 121 F 122 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =

Branch & boundMichel Bierlaire38 Branch & Bound Relaxation de F 122 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût ? Relaxation de F 122 : non admissible Supprimer F 122

Branch & boundMichel Bierlaire39 Branch & Bound F F2F2 F1F1 F 11 F 12 F 121 F 122 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =

Branch & boundMichel Bierlaire40 Branch & Bound Relaxation de F 2 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût /3 Relaxation de F 2 : x*=(1,1,0,2/3) b(F 2 ) = > U F 21 : x 4 = 0 F 22 : x 4 = 1

Branch & boundMichel Bierlaire41 Branch & Bound F F2F2 F1F1 F 21 F 22 F 11 F 12 F 121 F 122 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =1 x 4 =0x 4 =

Branch & boundMichel Bierlaire42 Branch & Bound Relaxation de F 21 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût Relaxation de F 21 : x*=(1,1,0,0) b(F 21 ) = U Supprimer F 21

Branch & boundMichel Bierlaire43 Branch & Bound F F2F2 F1F1 F 21 F 22 F 11 F 12 F 121 F 122 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =1 x 4 =0x 4 =

Branch & boundMichel Bierlaire44 Branch & Bound Relaxation de F 22 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût 1 0 6/7 1 Relaxation de F 22 : x*=(1,6/7,0,1) b(F 22 ) = > U F 221 : x 2 = 0 F 222 : x 2 = 1

Branch & boundMichel Bierlaire45 Branch & Bound F F2F2 F1F1 F 21 F 22 F 11 F 12 F 121 F 122 F 221 F 222 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =1 x 4 =0x 4 =1 x 2 =0x 2 =

Branch & boundMichel Bierlaire46 Branch & Bound Relaxation de F 221 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût Relaxation de F 221 : x*=(1,0,0,1) b(F 221 ) = U Supprimer F 221

Branch & boundMichel Bierlaire47 Branch & Bound F F2F2 F1F1 F 21 F 22 F 11 F 12 F 121 F 122 F 221 F 222 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =1 x 4 =0x 4 =1 x 2 =0x 2 =

Branch & boundMichel Bierlaire48 Branch & Bound Relaxation de F 222 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût 4/ Relaxation de F 222 : x*=(4/5,1,0,1) b(F 222 ) = U F 2221 : x 1 = 0 F 2222 : x 1 = 1

Branch & boundMichel Bierlaire49 Branch & Bound Relaxation de F 222 (U 121 = ) : Bénéfice Inv Inv Inv Inv. 1 RendementCoût ? Relaxation de F 2221 : x*=(0,1,0,1) b(F 2221 ) = U F 2222 non admissible

Branch & boundMichel Bierlaire50 Branch & Bound F F2F2 F1F1 F 21 F 22 F 11 F 12 F 121 F 122 F 221 F 222 x 3 =1x 3 =0 x 2 =0 x 2 =1 x 1 =0x 1 =1 x 4 =0x 4 =1 x 2 =0x 2 =

Branch & boundMichel Bierlaire51 Branch & Bound Notes : Seuls 7 combinaisons ont été considérées (F 11,F 121,F 122,F 21,F 221,F 2221,F 2222 ) Une énumération complète aurait considéré 2 4 =16 combinaisons