Méthodologie de Développement Objet



Documents pareils
Cours de Master Recherche

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Stratégie de recherche adaptative en programmation par contrainte

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Programmation par contraintes. Laurent Beaudou

Plus courts chemins, programmation dynamique

Annexe 6. Notions d ordonnancement.

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Jean-Philippe Préaux

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

Programmation Par Contraintes

Modélisation multi-agents - Agents réactifs

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Les colonies de fourmis : apprentissage coopératif pour le problème du voyageur de commerce

Un modèle réactif pour l optimisation par colonies de fourmis : application à la satisfaction de contraintes

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Contrainte de flot pour RCPSP avec temps de transfert

Pourquoi l apprentissage?

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Optimisation et Processus métier

Intégration de la dimension sémantique dans les réseaux sociaux

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Algorithmes de recherche d itinéraires en transport multimodal

Systèmes décisionnels et programmation avancée

Intelligence Artificielle Planification

TRAVAUX DE RECHERCHE DANS LE

PROBABILITES ET STATISTIQUE I&II

Conception de réseaux de télécommunications : optimisation et expérimentations


4.2 Unités d enseignement du M1

Cours de Génie Logiciel

Programmation linéaire

Big Data et Graphes : Quelques pistes de recherche

Programmation linéaire

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Évolution de schémas dans les entrepôts de données mise à jour de hiérarchies de dimension pour la personnalisation des analyses

Programmation Linéaire - Cours 1

Séminaire OPTIMA 16 avril Optimod Lyon, une coopération public/privée pour la mobilité urbaine et l innovation

Informatique Générale

Big Data et Graphes : Quelques pistes de recherche

THÈSE. En vue de l obtention du DOCTORAT DE L UNIVERSITÉ DE TOULOUSE. Touria CHAFQANE BEN RAHHOU

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Electricité : caractéristiques et point de fonctionnement d un circuit

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Hela Boukef. To cite this version: HAL Id: tel

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI SYNALTIC 24 RUE DE L EGLISE VINCENNES

Algorithmes de recherche

Un propagateur basé sur les positions pour le problème d Open-Shop.

Guide d installation de SugarCRM Open Source version 4.5.1

Chapitre 5 : Flot maximal dans un graphe

Problème d ordonnancement de véhicules en variables booléennes

TD/TP 1 Introduction au SDK d Android

Introduction à la théorie des graphes. Solutions des exercices

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

MABioVis. Bio-informatique et la

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Deux stratégies parallèles de l'optimisation par colonie de fourmis

CENTRALE TELESURVEILLANCE VIA INTERNET WEB

Principes d implémentation des métaheuristiques

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Linked Data et description du produit automobile SemWeb Pro, Paris, 2 mai 2012

Optimisation multi-objectif par colonies de fourmis : cas des problèmes de sac à dos

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Industrial Phd Progam

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Introduction aux systèmes temps réel. Iulian Ober IRIT

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI ALTIC & SYNOTIS - TRAINING CENTER 24 RUE DE L EGLISE VINCENNES

Package Contents. System Requirements. Before You Begin

Séparation et Evaluation pour le problème d ordonnancement avec blocage.

Spécificités, Applications et Outils

ITS Switzerland - EPFL 29/10/2014 La stratégie d information multimodale du Grand Lyon : la coopération public/privée pour la mobilité urbaine et l

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

Algorithmes d'apprentissage

ELEC2753 Electrotechnique examen du 11/06/2012

Table des matières. I Mise à niveau 11. Préface

RTDS G3. Emmanuel Gaudin

CAP CAMION A ASSISTANCE PNEUMATIQUE

Eric Bertrand 08/11/06 Maître de conférence 1

THÈSE. présentée à l Université d Avignon et des Pays de Vaucluse pour obtenir le diplôme de DOCTORAT

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Trouver un vecteur le plus court dans un réseau euclidien

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

SQL Server 2012 et SQL Server 2014

L apport des contraintes globales pour la modélisation et la résolution d applications industrielles

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Introduction à l analyse numérique : exemple du cloud computing

Transcription:

1/32 Méthodologie de Développement Objet Quatrième partie : Présentation du projet Christine Solnon INSA de Lyon - 4IF 2014-2015

2/32 Plan du cours Optimisation de tournées de livraison Le projet Optimod Lyon 1 Optimisation de tournées de livraison Le projet Optimod Lyon Le projet DevOO 2

Optimisation de tournées de livraison Le projet Optimod Lyon Le projet Optimod Lyon Réponse à un appel à projets de l ADEME sur la mobilité urbaine Porteur : Grand Lyon 13 partenaires : 2 collectivités : Lyon et Grand Lyon 8 industriels : IBM, Renault Trucks, Orange, CityWay, Phoenix ISI, Parkeon, Autoroutes Trafic, Geoloc Systems 3 laboratoires de recherche : LIRIS, CETE, LET OPTIMIZE SUSTAINABLE MOBILITY IN THE CITY Durée : 3 ans (2012-2015) Budget : 7 M Euros 3/32

Optimisation de tournées de livraison Le projet Optimod Lyon Objectifs d Optimod Lyon New systems for collecting mobility data in real time Grand Lyon mobility portal Mobility Data warehouse Optimize the exploitation of urban networks by a 1 hour prediction of traffic conditions Provide real time and multi modal information, available at any time, every where and for every body Optimize urban deliveries by informing drivers and optimizing tours 4/32

5/32 Plan du cours Optimisation de tournées de livraison Le projet DevOO 1 Optimisation de tournées de livraison Le projet Optimod Lyon Le projet DevOO 2

Optimisation de tournées de livraison Le projet DevOO Vue générale du projet (IHM + DevOO) Sous-système Demande de livraison : Utilisé par les clients pour Demander une nouvelle livraison Suivre une livraison en cours Sous-système Préparation et supervision des livraisons : Utilisé par les sociétés de livraison pour Planifier les tournées de livraison Modifier une tournée planifiée Superviser le bon déroulement des tournées en cours Sous-système Réalisation des livraisons : Utilisé par les livreurs pour Connaître les livraisons à effectuer et l itinéraire à suivre Indiquer les livraisons effectuées Sous-système Relations clientèles : Utilisé par les sociétés de livraison pour gérer ses relations clients 6/32

Entrepot en bleu clair 7/32 Optimisation de tournées de livraison Le projet DevOO Périmètre du projet DevOO Préparation des feuilles de route : Charger un plan à partir d un fichier XML Charger une demande de livraisons à partir d un fichier XML Calculer une tournée pour une demande de livraisons Modifier interactivement une tournée Générer une feuille de route pour le livreur Points reliés par des tronçons Chaque tronçon a une longueur et une vitesse moyenne

7/32 Optimisation de tournées de livraison Le projet DevOO Périmètre du projet DevOO Préparation des feuilles de route : Charger un plan à partir d un fichier XML Charger une demande de livraisons à partir d un fichier XML Calculer une tournée pour une demande de livraisons Modifier interactivement une tournée Générer une feuille de route pour le livreur 3 plages de livraison : 8h-10h (bleu) : 4 livraisons 10h-12h (rose) : 4 livraisons 12h-14h (vert) : 5 livraisons

7/32 Optimisation de tournées de livraison Le projet DevOO Périmètre du projet DevOO Préparation des feuilles de route : Charger un plan à partir d un fichier XML Charger une demande de livraisons à partir d un fichier XML Calculer une tournée pour une demande de livraisons Modifier interactivement une tournée Générer une feuille de route pour le livreur Tournée la plus courte partant de (et revenant sur) l entrepot et passant successivement par 1 les points bleus 2 les points roses 3 les points verts

7/32 Optimisation de tournées de livraison Le projet DevOO Périmètre du projet DevOO Préparation des feuilles de route : Charger un plan à partir d un fichier XML Charger une demande de livraisons à partir d un fichier XML Calculer une tournée pour une demande de livraisons Modifier interactivement une tournée Générer une feuille de route pour le livreur Possibilité de Supprimer des livraisons Insérer des livraisons

7/32 Optimisation de tournées de livraison Le projet DevOO Périmètre du projet DevOO Préparation des feuilles de route : Charger un plan à partir d un fichier XML Charger une demande de livraisons à partir d un fichier XML Calculer une tournée pour une demande de livraisons Modifier interactivement une tournée Générer une feuille de route pour le livreur Description textuelle de la tournée indiquant l itinéraire et les horaires de passage

8/32 Optimisation de tournées de livraison Le projet DevOO Formalisation du problème de calcul de tournée Données fournies en entrée : Un graphe G = (V, A) tel que V = points et A = tronçons Un entrepôt e V Une fonction d : A R + telle que d ij = durée de l arc (i, j) Un ensemble de points de livraison L V Une fonction p : L N telle que p i est la plage de livraison de i Données à calculer en sortie : Un circuit c dans G tel que c part de e, passe par chaque point de L et revient sur e pour tout couple de points (i, j) L L, si p i < p j alors c passe par i avant de passer par j la somme des durées des arcs de c est minimale

Optimisation de tournées de livraison Le projet DevOO Reformulation du problème de calcul de tournée Calcul du graphe des plus courts chemins G : Entrée : G = (V, A), L V, e V, p : L N et d : A R + Sortie : G = (V, A ) et d : A R + tels que V = L {e} A = {(e, i) i L, p i est minimal} {(i, j) L L p i = p j p j = p i + 1} {(i, e) i L, p i est maximal} d ij = longueur du plus court chemin de i à j dans G e 1 3 2 4 6 5 7 9 8 Recherche du plus court circuit hamiltonien dans G Entrée : un graphe G = (V, A ) et une fonction coût d : A R + Sortie : un circuit c dans G tel que Chaque sommet de V apparaît exactement une fois dans c La somme des coûts des arcs de c est minimale Problème NP-difficile bien connu : le voyageur de commerce! 9/32

Optimisation de tournées de livraison Le projet DevOO Reformulation du problème de calcul de tournée Calcul du graphe des plus courts chemins G : Entrée : G = (V, A), L V, e V, p : L N et d : A R + Sortie : G = (V, A ) et d : A R + tels que V = L {e} A = {(e, i) i L, p i est minimal} {(i, j) L L p i = p j p j = p i + 1} {(i, e) i L, p i est maximal} d ij = longueur du plus court chemin de i à j dans G e 1 3 2 4 6 5 7 9 8 Recherche du plus court circuit hamiltonien dans G Entrée : un graphe G = (V, A ) et une fonction coût d : A R + Sortie : un circuit c dans G tel que Chaque sommet de V apparaît exactement une fois dans c La somme des coûts des arcs de c est minimale Problème NP-difficile bien connu : le voyageur de commerce! 9/32

10/32 Plan du cours Problèmes d optimisation sous contraintes 1 Optimisation de tournées de livraison 2 Problèmes d optimisation sous contraintes Programmation par contraintes Code Choco fourni pour le projet

11/32 Problèmes d optimisation sous contraintes Rappels (cf Aide à la décision / M. Miquel) Modèle mathématique d un problème d optimisation sous contraintes : Quadruplet (X, D, C, F) tel que X = ensemble de variables (inconnues du problème) D = fonction associant à chaque variable un ensemble de valeurs D(x i ) = domaine de x i = ensemble des valeurs que x i peut prendre C = contraintes du problème Contrainte = relation entre des variables de X Restreint les valeurs pouvant être affectées à ces variables F : X R = fonction objectif But du jeu : Affecter une valeur à chaque variable de sorte que Chaque variable soit affectée à une valeur de son domaine Toutes les contraintes de C soient satisfaites F soit maximisée (ou minimisée)

12/32 Quelques cas particuliers Problèmes d optimisation sous contraintes Pas de contraintes : C = Problème d optimisation Pas de fonction objectif : F = 0 Problème de satisfaction de contraintes (CSP) Domaines de D discrets (énumérables) Problème combinatoire F linéaire, D = R et C = ensemble d inéquations linéaires Problème d optimisation linéaire (programmation linéaire) F linéaire, D = Z et C = ensemble d inéquations linéaires Problème d optimisation linéaire en nombres entiers F linéaire, D = {0, 1} et C = ensemble d inéquations linéaires Problème de sac-à-dos multidimensionnel F quadratique, D = R et C = ensemble d inéquations linéaires Problème d optimisation quadratique (programmation quadratique)...

13/32 Très très nombreuses applications Problèmes d optimisation sous contraintes Conception d emplois du temps, affectation de ressources Ordonnancement de tâches Tournées de véhicules, voyageur de commerce Découpe de pièces, chargement de véhicules Optimisation du trafic (avions, trains, voitures, frêt,...)... et développement durable! cf Cours de M. Miquel pour des exemples...

14/32 Complexité Problèmes d optimisation sous contraintes Certains cas particuliers ont des complexités polynomiales : Programmation linéaire (domaines continus) 2-SAT Problème d affectation / couplage maximal Quelques problèmes dans les graphes : ACM, Plus courts chemins, Coupure minimale/flot maximal,...... Ils sont bien souvent NP-difficiles : Programmation linéaire en nombres entiers, Sac-à-dos SAT, 3-SAT, Planar-3-SAT,... Nombreux problèmes dans les graphes : Coloriage, Voyageur de commerce, Cliques/Stables,... CSP finis (contraintes quelconques)... Dans certains cas, ils sont indécidables : Equations diophantiennes CSP continus (contraintes quelconques)...

15/32 Problèmes d optimisation sous contraintes Difficulté des problèmes NP-difficiles? Croissance exponentielle : n 2 n Temps (si 10 9 instr/seconde) 30 10 9 1 seconde 40 10 12 16 minutes 50 10 15 11 jours 60 10 18 32 ans 70 10 21 317 siècles

16/32 Et en pratique? Problèmes d optimisation sous contraintes Certaines instances de problèmes NP-complets peuvent être faciles Notion de transition de phase Certains problèmes NP-difficiles admettent des cas particuliers qui ont des complexités polynomiales Certains problèmes NP-difficiles sont approximables en temps polynomial (avec garantie sur l erreur) Sinon, on peut explorer l espace de recherche de façon intelligente" : Contenir l explosion en structurant et filtrant l espace Contourner l explosion en faisant des impasses

17/32 Problèmes d optimisation sous contraintes Méthodes complètes : Contenir l explosion combinatoire Branch & Bound & Propagate Branch : Structurer l espace de recherche en arbre Elaguer les branches de l arbre : Bound : Calcul de bornes sur la fonction objectif Ex. : Solution sur R en prog. linéaire Propagate : Propagation des contraintes pour réduire les domaines Utiliser des heuristiques d ordre Choix de la prochaine variable à instancier Choix de la valeur à affecter à cette variable Ex : pb des 4 reines D(x3) vide => élagage D(x4) vide => élagage

18/32 Problèmes d optimisation sous contraintes Méthodes incomplètes : Contourner l explosion combinatoire Exploration guidée par des heuristiques Intensification de la recherche autour des zones prometteuses" Diversification pour découvrir de nouvelles zones Deux familles d approches incomplètes Perturbatives : modification de combinaisons existantes Ex : Recherche locale (LS), Algorithmes génétiques (GA), Optimisation par essaims de particules (PSO),... Constructives : construction de nouvelles combinaisons Ex : Optimisation par colonies de fourmis (ACO), Algorithmes par estimation de distribution (EDA),... Exemple de recherche locale pour le problème des 8 reines :

19/32 Plan du cours Programmation par contraintes 1 Optimisation de tournées de livraison 2 Problèmes d optimisation sous contraintes Programmation par contraintes Code Choco fourni pour le projet

20/32 Programmation par contraintes La programmation par Contraintes (CP) "Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming : the user states the problem, the computer solves it." Eugene C. Freuder En pratique : CP = Model + Search" Model = Description du problème Déclaration des variables et de leurs domaines Déclaration des contraintes Eventuellement : Déclaration d une fonction objectif Search = Exploration de l espace de recherche Utilisation d algorithmes intégrés Possibilité de guider la recherche par des heuristiques Possibilité de définir de nouvelles stratégies Pas toujours aussi efficace qu un programme «cousu main»... mais tellement plus vite développé!

21/32 Programmation par contraintes Langages et environnements de programmation par Contraintes ALICE [Jean-Louis Laurière, 1976] Premier système à base de contraintes CHIP, Prolog V, Gnu-Prolog Extensions de Prolog CHOCO (Java), Gecode (C++), OR-Tools (C++) Bibliothèques open source OPL Development Studio (IBM) Langage de modélisation + CP + MIP Comet (Dynadec) Langage de modélisation + CP + CBLS + MIP...

22/32 Programmation par contraintes Exemple de programme linéaire en OPL

Programmation par contraintes Exemple de sac-à-dos en OPL [Programme extrait du manuel utilisateur d OPL (www.ibm.com)] 23/32

24/32 Programmation par contraintes Exemple de programme CBLS : les reines en Comet

25/32 Programmation par contraintes Le voyageur de commerce en CP Variables : X = {next i, cost i i V } de sorte que : La variable next i donne le sommet visité après le sommet i La variable cost i donne le cout de l arc (i, next i ) Domaines : D(next i ) = {j V (i, j) A } D(cost i ) = [mincost i, maxcost i ] Contraintes : Le cout associé à i est égal au coût de l arc entre i et next i : i V, cost i = d i,nexti Next doit définir un circuit : circuit(next, 0) Fonction objectif : F = min i V cost i

26/32 Plan du cours Code Choco fourni pour le projet 1 Optimisation de tournées de livraison 2 Problèmes d optimisation sous contraintes Programmation par contraintes Code Choco fourni pour le projet

27/32 Diagramme de classes Code Choco fourni pour le projet

28/32 Code Choco fourni pour le projet Code Choco : Déclaration des variables et contraintes

29/32 Code Choco : Résolution Code Choco fourni pour le projet

30/32 Code Choco fourni pour le projet Code de test : Comparaison avec Branch & Bound Résultat de l exécution du test : testbestsol: 3377 ms for Choco and 69303 ms for Branch and Bound

31/32 Code Choco fourni pour le projet Code de test : Exécution sur une instance plus grosse

32/32 Résultat de l exécution du test Code Choco fourni pour le projet