Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce



Documents pareils
Une application des algorithmes génétiques à l ordonnancement d atelier

Plateforme de capture et d analyse de sites Web AspirWeb

La classification automatique de données quantitatives

Développement itératif, évolutif et agile

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

Projet Active Object

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Visual Paradigm Contraintes inter-associations

Communiqué de Lancement

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

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Sommaire. Introduction Définition Historique Domaine d application.2. 4.Les Travaux réalisés sur les domaines d application.

Programmation linéaire

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

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

Site Web de paris sportifs

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Analyse,, Conception des Systèmes Informatiques

données en connaissance et en actions?

Identification du module

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Big Data et Graphes : Quelques pistes de recherche

Introduction à MATLAB R

RETRANSCRIPTION CONFÉRENCE

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

Méthodologies de développement de logiciels de gestion

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Différentes opérateurs évolutionnaires de permutation: sélections, croisements et mutations

Jean-Philippe Préaux

TP 1. Prise en main du langage Python

Analyse dialectométrique des parlers berbères de Kabylie

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

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

SECTION 5 BANQUE DE PROJETS

Concours National d Informatique. Sujet de demi-finale Montpellier et Toulouse

Etude et développement d un moteur de recherche

Cours de Génie Logiciel

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Resolution limit in community detection

Texte Agrégation limitée par diffusion interne

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

OMGL6 Dossier de Spécifications

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

# 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>

Laboratoire d Automatique et Productique Université de Batna, Algérie

MEGA ITSM Accelerator. Guide de démarrage

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Transmission d informations sur le réseau électrique

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

Utiliser Access ou Excel pour gérer vos données

Algorithmique et programmation : les bases (VBA) Corrigé

Descriptif de Kelio Protect

Sécurité et Firewall

UML (Paquetage) Unified Modeling Language

Expérience 3 Formats de signalisation binaire

Raisonnement probabiliste

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Agrégation des portefeuilles de contrats d assurance vie

Gènes Diffusion - EPIC 2010


Algorithme. Table des matières

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Rapport d'analyse des besoins

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

Présentation de la gamme des PGI/ERP modulaires Wavesoft

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

MEGA ITSM Accelerator. Guide de Démarrage

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Big Data et Graphes : Quelques pistes de recherche

Sélection du contrôleur

Le logiciel pour le courtier d assurances

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

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

COMMUNICATION PC/MINITEL

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Résolution d équations non linéaires

Processus d Informatisation

PloneLabs un gestionnaire de contenu pour les laboratoires

Qualité du logiciel: Méthodes de test

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

Web Science. Master 1 IFI. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.

ÉPREUVE COMMUNE DE TIPE Partie D

UE Programmation Impérative Licence 2ème Année

1 Recherche en table par balayage

Outil de gestion et de suivi des projets

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

CINEMATIQUE DE FICHIERS

Vérifier la qualité de vos applications logicielle de manière continue

Programmes des classes préparatoires aux Grandes Ecoles

Conception, architecture et urbanisation des systèmes d information

ITIL V2. La gestion des changements

Christophe CANDILLIER Cours de DataMining mars 2004 Page 1

Programme détaillé. LES TABLEAUX DE BORD Formation en présentiel (21 h) accompagnée d un parcours e-learning Excel (5 h)

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

SYNERGIE Associés Confidentiel Reproduction interdite sans autorisation préalable Page 1 de 44

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

PG208, Projet n 3 : Serveur HTTP évolué

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

ASR1 TD7 : Un microprocesseur RISC 16 bits

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Transcription:

Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce But du projet Ce 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 C est un problème bien connu en recherche opérationnelle sous le nom de «Traveling Salesman Problem» ou TSP. Ce problème est NP-Complet. Diverses 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). Ce problème a donné lieu à beaucoup de recherches et a fourni pas mal de résultats en algorithmique et en recherche opérationnelle. Tâches demandées Vous vous trouvez dans la situation où vous devez réaliser une analyse quant à la faisabilité du logiciel, proposer une architecture de ce logiciel et ensuite implanter un démonstrateur reposant sur cette analyse. 1. Analysez le problème, sachant qu il est souhaitable d avoir une solution évolutive, permettant d ajouter au fur et à mesure des fonctionnalités au logiciel, notamment progressivement étendre les règles du jeu. Il est notamment demandé de faire : a. Une analyse d usage du logiciel (use case analysis) b. Une analyse fonctionnelle du logiciel c. Une architecture gros grains du logiciel 2. Réalisez un démonstrateur pour valider l approche et les choix techniques et s assurer que ces derniers sont pertinents. Dans le cas d une approche évolutive, il sera possible tout d abord d implanter les premières phases (par exemple une stratégie de mutation et de sélection relativement simple ) et ensuite d ajouter les éléments supplémentaires (stratégie plus 1

avancée, évolution des meilleurs solutions à l'écran, critère d'arrêt). Il est notamment demandé de faire : a. Une description du modèle objet précis (par ex. sous UML) b. Eventuellement une liste des «design pattern» utilisés s il y a recours à des «design pattern». c. Une implantation documentée du logiciel. 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. Ce 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é. Étape 1 : Analyse du problème Question A : Déterminez l architecture qui permet de faire évoluer les trois phases fonctionnelles (acquisition, algorithmique et affichage) indépendamment les unes des autres. Question B : En 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 B, 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. Certaines 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. Ce 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 Algorithme Génétique permettant une résolution approchée du problème du voyageur de commerce. Représentation des villes 2

Nous représentons l ensemble des villes placées sur un plan par une matrice de coût. Cette matrice stocke la distance entre deux points. A H B F C G J E D I matrice de coût A B C D... I J A 2 4 7... 7 6 B 2 2 6... 7 7 C 4 2 4... 5 5 D 7 6 4... 3 5..................... I 7 7 5 3... 2 J 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). Fonctionnement d un algorithme génétique Avant de pouvoir utiliser un algorithme générique, il est nécessaire de pouvoir définir pour le problème donné : Une méthode permettant de représenter la solution sous une forme manipulable par la machine, la plupart du temps, il s agit d un vecteur de valeurs booléennes. Une fonction permettant de calculer la qualité d une solution. 1. Initialisation Un ensemble de plusieurs solutions est engendré de manière aléatoire. Cet ensemble constitue ce qui est appelé la population initiale. La taille de la population initiale dépend de la nature du problème et surtout de l existence de nombreux optima locaux. Typiquement, les populations peuvent contenir plusieurs milliers de solution possible. Habituellement, la population initiale est engendrée de manière aléatoire afin de couvrir complètement le domaine des solutions possibles. 2. Sélection A une époque donnée, un échantillon de la population existante est sélectionné afin d engendre la nouvelle génération. La sélection s effectue selon un processus de sélection des solutions ayant la meilleure adéquation. Plusieurs fonction de sélection sont possibles, la plus simple consisté à sélectionner les solutions ayant la meilleur adéquation, d autres fonctions stochastiques de sélections sont moins sélectives et ont pour but de préserver des solutions ayant une «médiocre adéquation» afin d éviter une convergence vers un optimum local. 3. Reproduction L étape suivante consiste à construire un nouvel ensemble de solutions à partie de l ensemble des solutions venant d être sélectionné. Des nouvelles solutions peuvent être engendrées à partir de solutions courantes par deux techniques, soit par le croisement d une paire de solutions, soit par la mutation de deux solutions. a. Croisement 3

Une paire de solutions parmi les solutions précédemment est sélectionnée. Chacune des solutions est en fait un vecteur de bits, et,. Nous choisissons au hasard un point de coupure tel que et. Un premier descendant des solutions, et, est construit en concaténant aux premiers bits de la première solutions les derniers bits de la seconde solution. De même un deuxième descendant en concaténant aux premiers bits de la seconde solutions les derniers bits de la première solution. Au final la paire de solutions s écrit comme suit :, et, b. Mutation La mutation standard dans le cadre d un algorithme génétique consiste en la probabilité qu un bit appartenant à une séquence de bits représentant une solution possible puisse changer d état, c est-àdire passer de zéro à un ou passer de un à zéro. La méthode standard consiste à générer une variable aléatoire pour chacun des bits dans une séquence. Cette variable aléatoire va permettre de déterminer si le bit doit être modifier ou non. 4. Terminaison Le processus générationnel continue tant qu une condition de terminaison n est pas atteinte. Les conditions de terminaison sont plus diverses et parmi les conditions de terminaisons les plus courantes nous pouvons citer : Une solution vérifie un critère d adéquation Le nombre maximal d itérations est atteint Le temps d exécution maximal est atteint La qualité des meilleures solutions a atteint un plateau et les itérations successives ne semblent plus produire de meilleurs résultats. Bien entendu, ces conditions de terminaisons peuvent être combinées entre elles. 5. Description de l algorithme en pseudo-code Sélection la population initiale Repeat Sélectionne une partie de la population en fonction de leur adéquation Sélectionne les paires des meilleures solutions pour construire de nouvelles solutions. Produit une nouvelle génération en combinant les paires des meilleures solutions et en introduisant des mutations. 4

Until la condition de terminaison est vérifiée Étape 2 : Réalisation du démonstrateur Question C : 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 D : Définissez et implantez la notion de trajet pour le voyageur de commerce. Définissez les fonctions de fitness associés à la notion de trajet Question E : Implantez un algorithme génétique manipulant des populations formées de trajet pour un voyageur de commerce. Question F : Evaluez les performances de l algorithme pour un nombre conséquent de villes. Question G : Visualisez et estimez le temps que vous avez passé pour atteindre ce premier objectif. Conservez l ensemble des fichiers du projet. Étape 3 : Amé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, il est possible notamment de modifier la fonction de fitness, les croisements de population, etc. Pour ce faire, n hésitez pas à laisser libre court à votre imagination et à consulter les références mises sur la page WEB associée à ce projet, tout en restant dans le domaine du réalisable dans le temps que vous avez décidé de consacrer au projet. 5