Voyageur de commerce et solution exacte



Documents pareils
Programmation par contraintes. Laurent Beaudou

LE PROBLEME DU PLUS COURT CHEMIN

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

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

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

Transmission d informations sur le réseau électrique

Les structures de données. Rajae El Ouazzani

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Resolution limit in community detection

Plus courts chemins, programmation dynamique

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Architecture des Systèmes d Information Architecture des Systèmes d Information

Scénario de prise en main DataCar CRM v2.3 Gamme SFA

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

SUGARCRM MODULE RAPPORTS

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Etude et développement d un moteur de recherche

Programmation linéaire

Ebauche Rapport finale

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

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

Je sais utiliser. Création d une galerie photo pour un site Web. Picasa crée les documents. HTML pour insérer une galerie de photos dans un site web

Développement itératif, évolutif et agile


chapitre 4 Nombres de Catalan

données en connaissance et en actions?

Chapitre 5 : Flot maximal dans un graphe

Deux disques dans un carré

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Website Express Créer un site professionnel avec Orange

TSTI 2D CH X : Exemples de lois à densité 1

CONFIGURATION DE L AUTOMATE SIEMENS

Recherche dans un tableau

F411 - Courbes Paramétrées, Polaires

Introduction au maillage pour le calcul scientifique

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Programmation Par Contraintes

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

AutoCAD Petit exercice sous

GUIDE Excel (version débutante) Version 2013

La classification automatique de données quantitatives

GUIDE D UTILISATION DU CENTRE DE DONNÉES DE L ISU

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

WEBINAIRE SUR LE SUIVI DE TENDANCES

Guide d utilisation 2012

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Cours de Master Recherche

Jean-Philippe Préaux

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Améliorez vos taux de transformation grâce à la vidéo! Le videomarketing, la PLV pour le Web

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

DECOUVREZ Discover TYPE EDIT V12 Français

Big Data et Graphes : Quelques pistes de recherche

Notice succincte pour ordinateurs Windows - IPC-10 AC

Utilisation avancée de SugarCRM Version Professional 6.5

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

L apprentissage automatique

Traitement des données avec Microsoft EXCEL 2010

Algorithmes de recherche

Guide d installation UNIVERSALIS 2014

Site Web de paris sportifs

Fonctions de plusieurs variables

DOSSIER DE PRESSE. TCL SYTRAL lance la première agence en ligne. Janvier 2013

Complément d information concernant la fiche de concordance

Concevoir et déployer un data warehouse

Texte Agrégation limitée par diffusion interne

MEGA ITSM Accelerator. Guide de démarrage

Prezi. Table des matières

1 è r e étape : créer sa base de d o n n é e s

Guide de démarrage rapide

Fiche de version N 12.28a Nov SOMMAIRE

Mode d'emploi de la newsletter

FICHIERS ET DOSSIERS

UltraBackup NetStation 4. Guide de démarrage rapide

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Protéger une machine réelle derrière une machine virtuelle avec pfsense

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

Universalis Guide d installation. Sommaire

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

Proposition d amendements. ARC Association des Responsables de Copropriété

Organiser le disque dur Dossiers Fichiers

14.1. Paiements et achats en ligne

GUIDE DE DEMARRAGE RAPIDE:

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

EVALUATION À 360 Demonstration MICHEL DUPONT RAPPORT PERSONNEL 360. rapport généré:

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. com/webview_ software

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

1. PRESENTATION GENERALE DU PRODUIT

Quels polygones sont formés par les milieux des côtés d un autre polygone?

Problèmes de dénombrement.

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Guide d utilisation du portail de formation en ligne LeCampus.com à l attention des partenaires de l APSM

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Concevoir son premier espace de cours sur la plateforme pédagogique Moodle

Localisation des points d accès sans fil non autorisés

Analyse dialectométrique des parlers berbères de Kabylie

Transcription:

Voyageur de commerce et solution exacte uteurs :. Védrine,. Monsuez e projet consiste à réaliser un outil capable de trouver le plus court trajet pour un commercial qui doit visiter n villes, les n villes étant placées sur un plan. une solution parmi les plus courtes est un problème bien connu en recherche opérationnelle sous le nom de «Traveling Salesman Problem» ou TSP. e problème est NP-omplet. iverses approches ont été proposées pour les résoudre : des approches exactes (l outil retourne effectivement le plus court trajet) et des approches approchées (l outil retourne un trajet proche du plus court). e problème a donné lieu à beaucoup de recherches et a fourni pas mal de résultats en algorithmique et en recherche opérationnelle. Scénario : Vous vous trouvez dans la situation où votre supérieur vous demande : 1. nalysez le problème, sachant qu il est souhaitable d avoir la solution optimale 2. Réalisez un démonstrateur pour convaincre tel client que nous sommes capables de traiter ce problème et/ou de lui fournir une première solution. 3. Si le client est convaincu, vous aurez vraisemblablement des ressources supplémentaires pour transformer le démonstrateur en outil afin de le faire rentrer de manière opérationnelle chez le client. Votre objectif est d une part d arriver à finaliser le premier démonstrateur, tout en sachant que les personnes qui transformeront l outil seront des spécialistes de leur domaine et qu ils ne pourront pas connaître l ensemble de l outil pour faire leurs améliorations. Pour le projet, vous aurez à réaliser les étapes 1 et 2 et à mettre en place et réaliser un axe d amélioration pour l étape 3. e projet peut alors être décomposé en 3 phases fonctionnelles : la première phase correspond à l acquisition des données soit au fait de représenter n villes dans un plan, la seconde phase correspond à la résolution de l algorithmique soit la recherche du trajet optimal, la troisième phase correspond à afficher le trajet optimal trouvé. 1/6

Étape 1 : nalyse du problème Question : éterminez l architecture qui permet de faire évoluer les trois phases fonctionnelles (acquisition, algorithmique et affichage) indépendamment les unes des autres. Question : n pensant aux états dans lequel se trouve votre système (avant l acquisition des données, après l acquisition et avant la résolution, après la résolution sachant que l affichage ne modifie pas le système), définissez l interface exportée par chaque partie du système pour effectuer les trois phases fonctionnelles. Pour la question, une des personnes du projet peut travailler à l aide de diagrammes UML (c est simplement une option parmi d autres), pendant que les autres réfléchissent à ce qui peut bouger entre les différentes phases et comment ce sera exploité. Il faut voir que lors de l évolution de votre projet, l acquisition des données pourra être partiellement découplée de la recherche du meilleur trajet, et qu il est assez dur d anticiper sur le couplage acquisition/résolution. ertaines structures de données correspondant au résultat de l acquisition des n villes dans le plan sont plus adéquates que d autres pour l algorithmique. e couplage n est pas forcément visible au niveau de l interface que vous définirez. L analyse architecturale du projet étant terminée, voici une présentation succincte d algorithmes de type ranch & ound permettant une résolution exacte du problème du voyageur de commerce. ette présentation peut être sautée par le lecteur dans un premier temps. Vous pouvez y revenir lorsque vous implanterez les algorithmes. Nous présentons deux algorithmes différents. Noter que pour l étape 2, vous pouvez implanter un algorithme de recherche de type ranch & ound, comme un algorithme plus approché que vous aurez fait ou trouvé sur le Web. ans ce dernier cas, vous pouvez consacrer l étape 3 à remplacer l algorithme approché par un algorithme de recherche assez poussé parmi les deux que nous vous présentons. Représentation des villes Nous représentons l ensemble des villes placées sur un plan par une matrice de coût. ette matrice stocke la distance entre deux points. H G J I matrice de coût... I J... I J 2 4 7... 7 6 2 2 6... 7 7 4 2 4... 5 5 7 6 4... 3 5.................. 7 7 5 3... 2 6 7 5 5... 2 La matrice de coût peut être symétrique ou non : Si elle est symétrique, cela signifie que d(x,y) = d(y,x) quelles que soient les villes concernées. La matrice de coût peut représenter une distance euclidienne, reflétant la propriété d(x,y)+d(y,z) d(x,z). 2/6

L algorithme d insertion de nœud peut être bien optimisé pour une distance euclidienne, alors que l algorithme d insertion d arc fonctionne bien sans cette contrainte. lgorithmes de type ranch & ound (séparation-évaluation) Les algorithmes de type ranch & ound (séparation-évaluation) cherchent généralement à minimiser une fonction de coût. La fonction de coût dans notre cas est la fonction qui à un trajet associe sa la longueur totale. La partie ranch ou séparation est une méthode de parcourt de l espace des solutions. ette partie porte ce nom, car le parcourt est généralement un parcourt d arbre en profondeur d abord pour avoir rapidement. À chaque nœud de l arbre s offrent alors plusieurs possibilités. Le branchement consiste à choisir une de ces possibilités, généralement celle qui a le plus de chance d être choisie : l aspect «plus de chance» est en liaison avec la partie ound ou évaluation. La partie ound ou évaluation donne une borne minimale pour le meilleur trajet (au sens de la fonction de coût), validant les décisions (branchements ou séparations) déjà effectuées : ce meilleur trajet aura alors une fonction de coût supérieure à cette borne. L algorithme effectue un certain nombre de décisions jusqu à avoir un chemin complet. e chemin a alors une fonction de coût que nous stockerons dans l max. Nous savons que la meilleure fonction de coût pour toutes les sous-branches d un nœud est comprise entre l évaluation de la borne minimale du nœud et l max. insi si l max est supérieur à cette borne minimale, alors nous n avons aucune chance de trouver une meilleure fonction de coût dans tous les descendants du nœud. Il est inutile d explorer dans cette partie ce qui peut faire gagner énormément de temps. branch 1 l 1 min evaluation part = lower bound branch 1 l 1 min branch 1 l 1 min inutile d'explorer si l max l 5 min branch 2 l 2 min branch 2 l 2 min inutile d'explorer branch si l max l 4 min 4 branch 2 l 2 min branch 5 l 4 min branch 3 l 3 min = l max priori l 3 min l2 min l1 min branch 3 l 3 min l 4 min branch 3 l 3 min exploration si l max > l 5 min l max peut alors diminuer exploration si l max > l 4 min l max peut alors diminuer si une meilleure fonction de coût est découverte Nous concrétisons cet algorithme de deux manières différentes pour résoudre le problème du voyageur de commerce. 3/6

lgorithme d insertion de nœuds L algorithme par insertion de nœuds procède en partant d un trajet de longueur 3 et en insérant progressivement des nœuds dans ce trajet. La première décision (branch) consiste à choisir le trajet initial de longueur 3. Étant donné que les points se trouveront dans cet ordre dans le trajet optimal, il n y a pas lieu de revenir sur cette décision. Les 3 points initiaux ont donc tout intérêt à se trouver éloignés les uns des autres. Les décisions suivantes consistent à choisir un nœud en même temps que son emplacement d insertion. La borne minimale de coût peut être la longueur du trajet déjà construit. ette borne est bien minimale si nous avons affaire à une distance euclidienne. L algorithme se comporte de la manière suivante sur un petit exemple, ne comparant que 10 trajets complets au lieu des (6-1)!/2 = 60 possibilités. = 27 = 19 = 21 = 30, abandonné si l max 30 = 27 = 26 = 24 trajet final = 23 = 25 = 21, trajet conservé = 25 = 24 finalement ces 2 possibilités et les 3 autres sont abandonnées = 26 = 28 = 25 4/6

lgorithme d insertion d arc et algorithme est généralement plus efficace que le précédent. Il détermine si des arcs peuvent faire partie du trajet optimal. La décision (branchement ou séparation) est tel arc appartient au trajet optimal ou tel arc n y appartient pas. La borne minimale de coût est un peu plus complexe à calculer. lle contient la somme des longueurs des arcs insérés + min({d(x,y) / y n'est pas une destination d'arc présent}) = soustrait des x non en origine d' un arc présent lignes + ce qui reste à soustraire des colonnes. Il est possible d améliorer cette fonction de coût, sachant qu elle fonctionne aussi bien pour des distances euclidiennes que d autres distances. On soustrait de chaque ligne l'élément minimal.idem pour les colonnes valuation minimale = ce qui a été soustrait + Σ longueurs des arcs sélectionnés matrice de coût 4 4 8 6 3 4 5 5 6 2 4 5 5 2 3 8 5 5 3 4 6 6 2 3 4 3 2 3 4 4 = 16 1 1 4 3 0 1 3 3 4 0 1 3 2 0 1 4 2 2 0 1 3 4 0 0 2 0 0 1 1 2 = 17 1 1 4 3 0 (1) 1 3 3 4 0 (2) 2 2 3 1 3 3 4 0 (1) 1 3 2 0 1 3 2 0 (1) 1 3 2 0 (1) 1 4 2 2 0 4 2 2 0 (2) 4 2 2 0 (1) 1 3 4 0 0 3 4 0 (1) 0 (1) 3 4 0 (1) 0 (1) 2 0 0 1 1 2 0 (0) 0 (2) 1 1 2 0 (1) 0 (1) 1 1 2 = exclus = 17 = 19 Séparation : On essaye de choisir si un couple n'est pas dans le chemin optimal (estimer de combien augmentera la fonction de coût 1 1 4 3 2 2 3 3 2 0 = ce qui peut être soustrait) 1 3 3 4 0 1 3 2 0 2 2 0 l max = = 20 ncore des 1 3 2 0 1 4 2 2 0 4 0 0 branches 4 2 2 0 1 3 4 0 0 1 1 2 potentielles avec l 3 4 0 0 2 0 0 1 1 2 max = 20 0 0 1 1 2 = 21 = 22 2 2 3 0 (0) 0 (0) 1 1 3 2 0 1 3 2 0 (1) 1 2 0 (1) 4 2 2 0 4 2 2 0 (2) 0 (1) 2 0 (0) 3 4 0 0 3 4 0 (0) 0 (0) 2 0 (0) 0 (0) 0 0 0 1 1 2 0 (1) 0 (2) 1 1 2 0 (0) 0 (0) 1 invalidé par le 0 2 nd l invalidé par le max inutile, car dans 2 nd l max ce cas, = 22 0 0 0 2 1 3 2 2 0 = 20 3 4 0 0 0 = 20 0 0 1 1 0 (0) 0 (0) 0 (0) 0 (0) 0 0 0 (1) 2 1 l max = = 22 0 (4) 1 0 1 3 4 0 (0) 0 (0) 3 0 (0) 0 (0) 3 0 0 0 (0) 0 (2) 1 1 5/6

Étape 2 : Réalisation du démonstrateur Question : Implanter une façon d effectuer l acquisition des données pour un démonstrateur. Il est possible de stocker le résultat dans une matrice de coût, mais vous pouvez utiliser tout autre représentation. Question : éfinissez et implantez la notion de trajet pour le voyageur de commerce. Question : Implantez un algorithme exact de type ranch & ound ou un algorithme approché pour la résolution du problème. Question : Visualisez et estimez le temps que vous avez passé pour atteindre ce premier objectif. onservez l ensemble des fichiers du projet. Étape 3 : mélioration de l outil Vous avez le choix pour améliorer votre outil, mais n oubliez pas de conserver le résultat de l étape 2. Une amélioration naturelle est de faire en sorte que l algorithmique de recherche de trajet ranch & ound traite de plus en plus de villes dans votre plan. L implantation d un algorithme de type exact est conseillée pour les personnes qui ont implanté un algorithme approché à l étape 2. Vous pouvez également améliorer l acquisition des données et faire en sorte qu elle s effectue sur des notions plus naturelles pour un utilisateur externe au projet. ref, n hésitez pas à laisser libre court à votre imagination, tout en restant dans le domaine du réalisable dans le temps que vous avez décidé de consacrer au projet. 6/6