Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Résolution Graphique d'un Programme Linéaire
La Méthode de Simplexe Standardisation
Tris.
Fabrice Lauri, François Charpillet, Daniel Szer
l’algorithme du simplexe
3. Variantes de l’algorithme
2. Méthodes du simplexe et son analyse.
Algorithmes et structures de données avancés
Portée des variables VBA & Excel
Fonctions & procédures
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Regroupement (clustering)
Calculs de complexité d'algorithmes
Les écritures fractionnaires
ACTIVITES Le calcul littéral (3).
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
Bloc 2 : Modèles d’optimisation par la programmation linéaire
Exercices Algorithmiques
Ordonnancement des mouvements de deux robots
5. Algorithme du simplexe
Génération de colonnes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Programme de mercatique
Systèmes d’équations du premier degré à deux variables
Systèmes d’équations du premier degré à deux variables
Les jeux (méthodes min-max et -)
CHALLENGE ROADEF 2001 Résolution par une métaheuristique à base de recherche à voisinage variable et propagation par contraintes Fabrice BUSCAYLET Fabrice.
6. Analyse postoptimale. Analyse postoptimale Mesurer linfluence sur la solution optimale de modifier certains coefficients du problème Indiquer à lutilisateur.
Les structures de données arborescentes
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
Optimisation linéaire
Nombres entiers. Ensembles de nombres
ENSIIE-Master MPRO Alain Faye
Le cas de la demande déterministe non stationnaire
1.3 COORDONNÉES DES POINTS
Systèmes d’équations du premier degré à deux variables
Équations Différentielles
Problème de flot à coût minimum
Introduction à l’algorithmique
GPA750 Les ateliers multigammes Chapitre 5
Dualité Introduction à la dualité. Construction du couple primal-dual.
Courbes de Bézier.
Programmation linéaire en nombres entiers : la méthode du simplexe
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Génération d’un segment de droite
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.
Optimisation linéaire
Les Algorithmes de Tri Introduction Tri par Sélection
GPA750 – Gestion de Projets
Programmation linéaire en nombres entiers : les méthodes de troncature
Modélisation géométrique de base
l’algorithme du simplexe
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Coupes efficaces pour la relaxation lagrangienne
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Mesurer la tension aux bornes d’un des composants.
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Cours des Systèmes d’exploitations
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Ou l’histoire du pion sans famille
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
Post-optimisation, analyse de sensibilité et paramétrage
3. Variantes de l’algorithme
Algorithmique Boucles et Itérations
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:

Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)

Introduction Stratégie : "couper en 2" la région réalisable, recouper en 2 chaque partie de la région réalisable susceptible de contenir la soln optimale et ainsi de suite. Ce processus se poursuit jusqu’à ce qu’on trouve la soln optimale ou une soln sous-optimale satisfaisante ou bien que l’on détecte l’absence de solns. Variantes : la façon de couper en 2 la région réalisable, le choix de la partie de la région réalisable à examiner en premier, la façon de s’assurer qu’un morceau ne contient pas la soln optimale afin de pouvoir éliminer ce morceau.

Exemple décrivant l’algorithme de subdivision successive Le simplexe nous donne comme soln optimale de (P0) : x = 3.5, y = 10/3 et z0max = 145/6.

Formons les 2 problèmes issus de (P0) : Quelle coupe peut-on effectuer dans l'ensemble des solns réalisables de (P0) qui n'ôte aucun point entier de cet ensemble? La soln optimale de (PE) doit vérifier soit y ≤ 3, soit y ≥ 4. Formons les 2 problèmes issus de (P0) : simplexe x = 18/5, y = 3, z1max = 24. (P1) x = 5/2, y = 4, z2max = 20,5. (P2)

Puisque z1max > z2max on choisit de travailler avec (P1) pour l’instant. Si la soln optimale de (PE) vérifie les contraintes de (P1), elle vérifiera aussi soit x  3 ou x  4. Formons 2 nouveaux problèmes issus de (P1): redondant redondant (P3) x = 3, y = 3, z3max = 21. x = 4, y = 5/3, z4max = 70/3. (P4)

Puisque z4max > z3max on choisit de travailler avec (P4) pour l’instant : soit y  1 ou y  2.

(P5) redondant x = 4.2, y = 1, z5max = 23. (P6) Pas de solns réalisables

À partir de (P5), on peut construire les 2 problèmes suivants : simplexe (P7) x = 4, y = 1, z7max = 22. (P8) Pas de solns réalisables.

(P7) possède une solution optimale entière réalisable pour (PE). Pour savoir si elle est optimale, il faut examiner les problèmes que nous avons laissés de côté en créant des coupes. (P8) et (P6) : on peut les négliger (pas de solns réalisables). (P3) : on peut le négliger car z7max = 22 > 21 = z3max. (P2) : on peut le négliger car z7max = 22 > 20.5  zmax. L’ajout de coupes à (P2) ne peut donner de solns où la fonction objective est plus grande que 20,5. Donc, x = 4, y = 1 et zmax = 22 est la soln optimale de (PE).

Cas particulier : Quelques variables ne sont pas entières et les autres le sont. Il suffit de ne pas introduire de coupes sur les variables non astreintes à être entières. Exemple : Le problème précédent où x n’est pas astreinte à être entière. Dans l’arborescence précédente, on voit que (P1) et (P2) nous donnent 2 solns réalisables et donc que la soln optimale serait dans ce cas : x = 18 / 5, y = 3 et zmax = 24.

Énoncé de l’algorithme de subdivision successive (0) Construire une banque de problèmes qui ne renferme initialement que le problème suivant : Max z = ctx A x = b (P0) x  0 k  1; zk = -; (renferme une borne inférieure de la valeur optimale de l’objectif z) (1) Si la banque de problèmes est vide, terminer les calculs, i.e. rechercher la meilleure soln réalisable rencontrée dont la valeur de l’objectif est égale à la borne inférieure. Cette soln réalisable est alors optimale. Autrement, enlever un programme linéaire de la banque et aller à (2).

(2) Résoudre le programme choisi. Si la valeur de l’objectif est au plus zk, zk+1  zk, k  k +1, aller à (1). Autrement, aller à (3). (3) Si la soln optimale obtenue du programme linéaire satisfait les contraintes d'intégralité, noter-le *, zk+1  valeur optimale de l’objectif de ce programme, faire k  k + 1, aller à (1). Autrement, aller à (4). (4) Choisir une variable xj n’ayant pas une valeur entière (xj = br). Ajouter 2 programmes linéaires à la banque issus de celui de (1) : 1e problème : xj  [br] est ajoutée. 2ième problème : xj  [br] + 1 est ajoutée. Faire zk+1  zk, k  k +1, aller à (1).

Choix d’un programme dans la banque : Résoudre l’un des 2 programmes que l’on vient d’ajouter à la banque ou le dernier à être introduit qui n’est pas encore résolu. En passant d’un nœud à son fils dans l’arbre, on a le même problème à résoudre avec seulement une contrainte en plus. Il s’agit d’utiliser l’algorithme dual du simplexe. Borne supérieure sur la valeur de l’objectif : La résolution du programme continu à chaque nœud de l’arbre nous fournit une borne supérieure sur la valeur de l’objectif de la meilleure soln possible dans cette branche.