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 du voyageur de commerce


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut Problème du voyageur de commerce
    Bonsoir,

    Je viens vers vous pour avoir quelques avis sur les méthodes de "résolution" du problème du voyageur de commerce.

    J'applique pour le moment la méthode du récuit simulé pour trouver "l'ordre" des villes. Ensuite, j'applique dijkstra entre chaque ville pour trouver le chemin le plus court.

    Pour une 50aine de villes, mon script met environ 2minutes à tourner. Pour gratter un peu en terme de performance, j'ai essayé de remplacer dijkstra par A*. J'ai réussi à grappiller quelques secondes, mais ce n'est suffisant.

    Je voudrais au moins diviser le temps de calcul par 2, voir plus, tout en gardant des résultats assez cohérent.

    Merci de vos réactions,
    Nicolas.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Bonjour,

    Citation Envoyé par bleach1234 Voir le message
    Je voudrais au moins diviser le temps de calcul par 2, voir plus, tout en gardant des résultats assez cohérent.
    Quelle est ta définition de "résultats assez cohérent" ? Tu veux dire trouver un chemin aussi long (voir moins) dans le temps imparti ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut
    Tu veux dire trouver un chemin aussi long (voir moins) dans le temps imparti ?
    Oui, exactement.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Comme je ne connais pas tes résultats actuels, c'est dur d'être catégorique sur la réponse.

    Disons que pour trouver rapidement un bon parcours, je prendrais les colonies de fourmis. Mais le résultat final est moins bon qu'une approche itérative avec heurisitique (en particulier celle de Lin-Kernighan)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut
    J'étais également en train de me pencher pour cet algorithme (colonies des fourmis). J'ai été lire le tutoriel, avant de faire n'importe quoi j'aimerais savoir si j'ai bien tout assimilé :

    Pour réaliser cet algorithme, il faut :
    - 1 tableau à 2dimensions contenant la distance (à vol d'oiseau) entre chaque villes.
    - 1 tableau à 2dimensions contenant les phéromones entre chaque villes.

    Chaque fourmi étudie, en fonction des phéromones, les chemins possibles. Une fois qu'une fourmi à terminer son parcours, il marque les villes de phéromones qu'il a parcouru en fonction de la distance parcourue.

    Le chemin "le plus court" est celui qui a le plus de phéromones.

    Globalement, est-ce bien le fonctionnement ?

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Globalement oui.

    Sauf que le chemin le plus court c'est... le chemin le plus court () trouvé jusqu'à présent.

    Ce n'est pas forcément celui qui à le plus de phéromones, surtout au moment de sa découverte.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut optimisation ACO
    Bonjour ,
    je cherche à programmer un algorithme de fourmi sur matlab afin d'optimiser le cout d'une fonction dépendant de 3 sous systèmes en meme temps
    je doit optimiser les temps de commutation entre les 3 sous systèmes t1 et t2.
    j'ai choisi t1 et t2 chaccun comme vecteur de n ligne et une colonne .
    avec 0<t1<t2<4
    je croi que si je compare avec tsp ; mes t1 et t2 representeront les noeud et la distance optimiser sera égale au cout total des 3 sous systèmes optimisé.

    1-est ce que c'est correct??
    2-est ce je doit parcourir tous l'ensembles des cout au début afin d'implanté la formule de féramone ???

    merci d'avance

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut algorithme de fourmi (aco)
    Bonjour ,
    je cherche à programmer un algorithme de fourmi sur matlab afin d'optimiser le cout d'une fonction dépendant de 3 sous systèmes en meme temps
    je doit optimiser les temps de commutation entre les 3 sous systèmes t1 et t2.
    j'ai choisi t1 et t2 chaccun comme vecteur de n ligne et une colonne .
    avec 0<t1<t2<4
    je croi que si je compare avec tsp ; mes t1 et t2 representeront les noeud et la distance optimiser sera égale au cout total des 3 sous systèmes optimisé.

    1-est ce que c'est correct??
    2-est ce je doit parcourir tous l'ensembles des cout au début afin d'implanté la formule de féramone ???

    merci d'avance

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/03/2010, 10h13
  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