IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Problème voyageur de commerce


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Problème voyageur de commerce
    Bonjour,

    Dans le cadre d'un projet, je me retrouve confronté à un problème type voyageur de commerce. En fait, je dispose d'un graphe et je souhaiterais calculer le chemin le plus court permettant de passer sur des sommets donnés puis de revenir au point de départ. La difficulté réside dans le fait que je dois absolument passer sur les sommets donnés en s'appuyant sur les autres sommets afin de déduire le chemin le plus court.

    Par exemple, l'algo de viamichelin.fr correspond parfaitement à ce que je veux faire. Les sommets du graphe correspondront aux villes et les arêtes aux routes entre les villes.

    Pouvez vous m'éclairez vers quel algorithme dois-je m'orienter sachant qu'en moyenne le nombre de sommets obligatoires est au tour de 100.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    As tu obligatoirement besoin du chemin le plus court ? En général pour ce genre d'algorithmes on utilise une solution qui tend vers la plus courte mais sans garantie que ce soit effectivement la plus courte.

    Ca permet d'obtenir des temps de calculs beaucoup plus rapides. Et dans la majorité des cas cela suffit comme dans ton exemple de via Michelin, on est pas à quelques km prets.

    Et vu le nombre de sommets que tu proposes, je ne peux que te conseiller cette direction.
    Apres il y a de nombreux algorithmes pour résoudre ce problème, une recherche Google te renverra sur des pages et des pages.

    Une solution que j'aime bien est l'utilisation des algorithmes génétiques. Un tutorial est d'ailleurs disponible sur ce site.

  3. #3
    Membre actif Avatar de Acrim
    Profil pro
    En recherche d'emploi
    Inscrit en
    Septembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Septembre 2010
    Messages : 134
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par l'index Voir le message
    La difficulté réside dans le fait que je dois absolument passer sur les sommets donnés en s'appuyant sur les autres sommets afin de déduire le chemin le plus court.
    Bonjour, je ne suis pas sûr de comprendre ce que tu veux dire par "en s'appuyant sur les autres sommets".

    Au cas ou : Tu n'as besoin de ne prendre en compte que les sommets/villes par lesquels tu veux passer obligatoirement et les arcs/trajets les plus courts (calculé par Dijkstra à partir de ton graphe global par exemple) reliant les villes qui t’intéressent. Reste à résoudre le problème du voyageur de commerce sur le graphe ainsi construit.

    Tu n'as pas besoin de prendre en compte les autres sommets/villes durant la résolution de ton problème du voyageur de commerce.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le problème du voyageur de commerce est un cas particulier du VRP.
    Et pour ça, il y à deux solutions :
    - La programmation par contraintes
    - Les méta heuristiques

    Pour une centaines de sommets, la programmation par contraintes ne sera sans doute pas assez efficace.

    Je te conseille donc d'utiliser une métaheuristique. Et particulièrement l'algorithme génétique. Pour l'avoir testé en stage, on à put résoudre des problème allant jusqu'à 1000 sommets avec. Tu a beaucoup d'exemple sur internet, il te suffit de tapper "algorithme génétique pour TSP" (TSP = "travelling salesman problem")

    Tu verras aussi des truc sur l'algorithme des fourmis. Toujours pour l'avoir tester, il est plus dur à mettre en oeuvre car il à beaucoup de paramètres. En plus, il est de complexité n^3 et tu ne pourras pas aller aussi loin qu'avec l'algo génétique.


    Bon courage !


    PS : comme je l'ai expliqué ici ici, l'algo de dijsktra ne permet pas de résoudre le TSP

Discussions similaires

  1. Problème du voyageur de commerce
    Par bleach1234 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 04/05/2009, 14h57
  2. Problème du voyageur de commerce parallélisé
    Par Cyberstein dans le forum Mathématiques
    Réponses: 2
    Dernier message: 06/04/2009, 17h49
  3. Réponses: 2
    Dernier message: 03/02/2009, 20h21
  4. Problème du voyageur du commerce avec plusieurs voyageurs
    Par Treuze dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/12/2007, 11h46
  5. Réponses: 3
    Dernier message: 12/04/2007, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo