Outils de Recherche Opérationnelle en Génie MTH 8414A

Slides:



Advertisements
Présentations similaires
Equipe optimisation TempoSoft
Advertisements

A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Génération de colonnes
GPA750 Les ateliers multigammes Chapitre 5
Programmation linéaire et Recherche opérationnelle
Génération de colonnes pour la résolution des problemes de foresterie
Programmation linéaire en nombres entiers : les méthodes de troncature
Modélisation des problèmes complexes et Optimisation
Problème de voyageur de commerce
1 UE Intro Opti L3 INFO UPSud Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Les rprésentation des signaux dans le cadre décisionnel de Bayes Jorge F. Silva Shrikanth S. Narayanan.
MRP Étapes 1/12 Introduction Définitions JP Rennard Objectifs Toute entreprise appelée à fournir des biens et services est amenée à gérer la double contrainte.
1. Introduction.
Cours d’Econométrie de la Finance (Stat des choix de portf. IV 1-2)
Outils de Recherche Opérationnelle en Génie MTH 8414
Outils de Recherche Opérationnelle en Génie MTH 8414
Outils de Recherche Opérationnelle en Génie MTH 8414
Outils de Recherche opérationnelle en Génie MTH 8414
Module de gestion des tournées de livraison
Analyse, Classification,Indexation des Données ACID
Pierre Joli Cours de Mathématique Pierre Joli
6. Analyse postoptimale.
Techniques de décomposition
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Techniques d’Optimisation Chapitre 2: Problème de flôt
Analyse en Composantes Principales A.C.P. M. Rehailia Laboratoire de Mathématiques de l’Université de Saint Etienne (LaMUSE).
Routage S 3 - Questionnaire N°1
IFT 615 – Intelligence artificielle Recherche heuristique
Les bases de données et le modèle relationnel
3ème Livre 1 Rappel.
Optimisation et Recherche Opérationnelle
Techniques d’Optimisation Chapitre 3: Programmation en 0-1 (bivalente)
Programmation linéaire et Recherche opérationnelle Licence d’Econométrie Professeur Michel de Rougemont
Routage S 3 - Questionnaire N°1
Information, Calcul, Communication
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
Technologies de l’intelligence d’affaires Séance 12
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Branch-and-price algorithms for the solution of the multi-trip vehicle routing problem with time windows (MTVRPTW) 1.
1. Introduction.
La gestion des stocks (Modèle de Wilson).
ACP Analyse en Composantes Principales
Résolution d’un problème de diffusion 3D
OPTIMISATION 1ère année ingénieurs
La gestion optimale de la production électrique : un exemple d’application industrielle de l’algorithme de point intérieur S. Charousset, G. Vignal.
OPTIMISATION 1ère année ingénieurs
Ä A B C D E F µ Un problème de Tournée (ou du Voyageur de commerce) consiste à chercher le meilleur trajet pour visiter.
Arbres de décision.
Exemple d'algorithme de construction de la matrice [ZBus] Schéma unifilaire.
Variable Neighborhood Descent (VND) Réalisée par Nadia Sassi Eya baghdedi AU
2. Méthode du simplexe et son analyse.
Chapitre 1 Formulation d’un programme linéaire (PL) Georges Abboudeh BUST 347.
Information, Calcul, Communication
l’algorithme du simplexe
CSI 3505 Algorithmes Voraces
Flowchart Itération Cours 04.
Encadré par : M. Mohammad EL GHABZOURI Elaboré par : - AZEGAMOUT Mohamed - ABOULKACEM abdelouahed - GOUN Ayoub EXPOSÉ Sous le thème : SER 2018 Parallélisme.
5. Algorithme du simplexe
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Programmation linéaire. Introduction  Qu’est-ce qu’un programme linéaire ?  Exemples :  allocation de ressources  problème de recouvrement  Hypothèses.
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
PROGRAMMATION SCIENTIFIQUE EN C
Introduction  La PLNE regroupe l’ensemble des techniques permettant de résoudre des programmes linéaires dont les solutions doivent être entières.  Formellement,
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
Vocabulaire du stock et de la commande
Outils de Recherche Opérationnelle en Génie MTH 8414
La programmation dynamique
Transcription de la présentation:

Outils de Recherche Opérationnelle en Génie MTH 8414A Méthodes de décomposition: Génération de contraintes Génération de variables

Plan Génération de coupes (lignes) Génération de variables (colonnes) Illustration sur le problème du voyageur de commerce Génération de variables (colonnes) Illustration sur un problème de tournée de véhicule

Le problème du voyageur de commerce C’est le problème le plus connu en recherche opérationnelle, celui qui a reçu le plus d’attention et probablement le plus prestigieux; Étant donné un nombre de points (villes) à visiter et une matrice donnant la distance entre chacune d’elles, donner la tournée qui visite toutes les villes en parcourant la plus petite distance.

TSP: la structure Le problème du voyageur de commerce (ou Traveling Salesman Problem) est un problème combinatoire NP-difficile C'est-à-dire qu’il n’existe pas de solution dont le temps de calcul est une fonction polynomiale du nombre de points à visiter. Le TSP combine deux structures qui elles sont «faciles». Le problème d’affectation (le degré de chaque noeud = 2) Le problème d’arbre de recouvrement minimum (connectivité)

TSP: Modèle mathématique Soit: xij une variable binaire qui indique si la route passe directement du point i au point j ( 1 si oui, 0 sinon ) Cij le coût d’aller directement de i à j. S un sous-ensemble non vide des points à visiter. Les deux modèles suivants sont corrects et équivalents. Contraintes de degré Contraintes de connectivité

TSP: les difficultés Le problème avec les formulations précédentes est le nombre de contraintes de connectivité. Il y en a une pour chaque sous-ensemble possible des points à visiter... donc environ 2|N| Par contre, celles-ci ne sont peut-être pas toutes utiles. On peut donc les ignorer pour commencer et les ajouter par la suite. C’est ce qu’on appelle une approche par plans coupants (Cutting Plane Method) On résout d’abord le problème sans ces contraintes On vérifie la solution si celle-ci satisfait toutes les contraintes ignorées, alors elle est optimale. ON ARRÊTE. sinon, on ajoute les contraintes qui sont violées (c’est ce qu’on appelle la séparation) ON RETOURNE à 1

Problème de tournées de véhicules Planifier les tournées de sorte que chaque client soit visité une fois. Satisfaire les demandes tout en respectant la capacité. Minimiser le nombre de véhicules. Minimiser la distance totale parcourue.

L’approche par génération de colonnes Intuition Supposons que l’on puisse créer et emmagasiner toutes les routes possibles. Clients 1 2 3 4 6 … Alors il ne suffirait que de sélectionner l’ensemble de routes optimales

L’approche par génération de colonnes Intuition Mais bien sûr c’est impossible  Alors on travail sur un ensemble partiel des routes possibles 1 2 3 4 6 Que l’on enrichie itérativement en résolvant un sous-problème Jusqu’à ce que l’on puisse démontrer que l’on possède toutes les routes optimales

Rappels sur la programmation linéaire À chaque itération du simplex, on passe d’un point extrême du polyèdre à un autre point extrême. L’objectif ne peut que s’améliorer, ou rester identique. Calculer le vecteur de multiplicateurs correspondant : p Chercher une variable de cout réduit négatif (si on minimise) et on essaie d’augmenter sa valeur (Si son coût réduit est négatif, c’est que sa valeur est actuellement nulle). Si pas de variable de cout réduit négatif, STOP: optimalité atteinte

Idée de base On a un problème ou le nombre de variables (colonnes) est très élevé Faire le pricing (évaluer le coût réduit d’une colonne) sur un (petit) sous-ensemble des colonnes. Augmenter l’ensemble des colonnes considérées au fur et à mesure si nécessaire But: Obtenir une solution optimale en prenant en considération un ensemble réduit de colonnes Résolution plus efficace

Génération de colonnes: principe Considérer une version restreinte du probleme avec un « petit » ensemble de colonnes: problème maitre restreint (PMR) Résoudre PMR Si solution optimale, STOP Sinon, ajouter des colonnes et réoptimiser

Génération de colonnes: principe Programme linéaire (Problème maître): Primal (P) Dual (D) A a un très grand nombre de colonnes Impossible à considérer simultanément

Génération de colonnes: principe Considérer un sous ensemble de colonnes Problème maître restreint Primal (MP k) Dual (MD k) Solutions : réalisable pour (P) Optimalité atteinte?

Génération de colonnes: principe Calculer le coût réduit minimum Oracle ou sous-problème Si , est optimale pour (P) Sinon On vient d’identifier une colonne de coût réduit < 0 ajouter au problème maître restreint: (MP k+1) Réoptimiser (MP k+1)

Génération de colonnes: principe

Génération de colonnes: point de vue dual

Génération de colonnes: visuellement  b Base Colonnes inconnues Nouvelle colonne = Problème maître restreint  ’ Variables duales i Domaine des sous-problèmes réalisables Fonction objectif Sous-problème

GC: sous-probleme Structure particuliere: résolution plus efficace que l‘énumération explicite de toutes les colonnes Dépend de l’application Critique pour l’efficacité de l’algorithme Résolution approximative Ajouter plusieurs colonnes à la fois

GC: sous-probleme Problème de plus court/plus long chemin Problème de sac-à-dos Programme linéaire Problème en nombres entiers Oracle: entrée : vecteur de multiplicateurs p sortie : colonne(s) de cout réduit négatif OU preuve qu’il n’en existe pas.

En logistique MAÎTRE: Modèle de recouvrement (ou partitionnement) SOUS-PROBLÈME :Modèle de réseau Objets à couvrir Entités à répartir Clients Camions Tâches Machines Trajets d’autobus Conducteurs Zones d’une ville Hôpitaux, ambulances, pompiers Vols Équipages

Comme ce modèle de VRP déjà vu Soit R l’ensemble de toutes les routes possibles (ou admissibles) respectant les contraintes de capacité et de fenêtre de temps. Cr : le coût de cette route Air une matrice qui indique si la route r visite le point i.

Modèle de partitionnement Entités à répartir 1 0 0 … 0 1 1 … 1 1 0 … 0 0 1 ... 0 0 0 … ... = 1 ... Objets à couvrir

Modèle de recouvrement Entités à répartir 1 0 0 … 0 1 1 … 1 1 0 … 0 0 1 ... 0 0 0 … ...  1 ... Objets à couvrir

Problèmes de confection de tournées de véhicules Route de véhicule 1 : Clients ou tâches Sous-problème : Chemin le plus court + Capacité des ressources Autre contraintes

Sous-Problème (plus court chemin) Trouver un chemin qui visite certains clients au maximum une fois Satisfaire les demandes tout en respectant la capacité Le coût réduit doit être négatif

Plus Court Chemin avec Contraintes graphe cyclique vs. acyclique Il existe des algorithmes efficaces pour résoudre le problème si on permet les visites multiples Ces algorithmes sont bien adaptés dans les cas acycliques Les problèmes naturellement acyclique Transformation CycliqueAcyclique possible Génère (implicitement) des graphes de très grande taille Nécessite une discrétisation des ressources En pratique ces problèmes sont résolu par programmation dynamique ou de manières heuristique.

Exemple de génération de colonnes, faire avec excell Résoudre le problème de construction de tournées de véhicules ci-dessous, sachant que: Une route ne peut visiter plus de 4 nœuds (capacité) (1,6) et(3,6) ne peuvent être visités ensemble (incompatibilité) 6 2 15 10 10 5 5 5 10 4 1 5 5 5 5 10 5 3 15

Résolution en nombres entiers Branch-and-price: extension du Branch-and-Bound Schémas de branchement: tenir compte du sous-problème Variables de volume ou de quantité: grandes valeurs Pas besoin d’imposer l’intégrité Variables binaires: intégralité requise Difficile de trouver des schemas de branchement assez efficaces En particulier on ne peut fixer une variable du PMR à 0… pourquoi ?