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 :

Algorithme de chemin le plus court en passant par des étapes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Points : 46
    Points
    46
    Par défaut Algorithme de chemin le plus court en passant par des étapes
    Salut a tous !

    Je viens ici chercher de l'aide pour mon algorithme du chemin le plus court PAR TOUTES LES ETAPES.
    Je grossis volontairement étapes car il ne s'agit pas ici d'un algorithme de pathfinder pur et dur comme A* ou autre.

    Non mon problème est le suivant (je vais l'expliquer avec des noms de ville)

    Rentrons dans le contexte :

    Je suis un livreur et j'ai 20 colis à déposer chez 20 clients. Un colis pas client.
    Je veux, par l'intermédiaire d'un algo, que celui-ci me sorte le chemin le plus court pour déposer les colis et ensuite revenir à mon point de départ (normal).

    J'avais une idée : L'algorithme doit prendre le trajet le plus court entre chaque point.
    Mais mon problème est le suivant : il se pourra que mon algo fasse "un retour sur les pas".

    Un petit schéma s'impose (sous Paint, désoler ^^) :

    Voilà ce que mon algorithme donnerait (en prenant le trajet le plus court)

    Nom : 95c4e69d47.png
Affichages : 1787
Taille : 21,5 Ko

    On peut voir ici qu'en utilisant le chemin le plus court, mon algorithme fait "n'importe quoi" et les chemins commence a se croiser...

    Maintenant voilà ce que devrait faire l'algorithme pour avoir quelque chose d'optimisé :

    Nom : 058d216750.png
Affichages : 1612
Taille : 19,3 Ko

    Donc j'ai eu plusieurs idées mais à chaque fois (en testant 3-4 fois avec différente configuration) j'arrivais à un problème de NON optimisation.

    Si vous avez des idées, je prends, je prends toutes les idées que vous pourrez me fournir !

    Merci !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Je ne comprends pas : tu recherche le chemin le plus court et tu considère que si celui-ci amène à un croisement, ce chemin est moins "optimisé" qu'un autre plus long sans croisement ? Si oui, tu as oublié cette contrainte de 'non-croismeent' dans ton énoncé.

    Sinon, sauf erreur de ma part (et sans prendre en compte ton problème de croisement), c'est le problème du <voyageur de commerce> (Travelling salesman problem en anglais). Juste avec ces 3/4 mots(problème voyageur de commerce / travelling salesman problem), tu vas trouver pas mal de ressources sur ce sujet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Points : 46
    Points
    46
    Par défaut
    Salut !

    Je ne dirais pas que le problème viens du croisement mais plutôt du fait que je fais des très long trajet pour rien.

    Si on regarde le premier schéma le trajet J a D et de F a départ est une perte de temps. C'est donc pour cela que je cherche une autre solutions pour mon algorithme.

    Je vais regarder ce que tu m'a dis, merci !

    Cette facon de faire me plait énormément, vous en pensez quoi ?

    Nom : Nearestneighbor.gif
Affichages : 1840
Taille : 662,4 Ko

  4. #4
    Membre actif

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Points : 207
    Points
    207
    Par défaut
    Citation Envoyé par Naografix Voir le message
    je cherche une autre solutions pour mon algorithme.
    Citation Envoyé par Naografix Voir le message
    Salut !
    Cette facon de faire me plait énormément, vous en pensez quoi ?
    Si je comprends bien, tu choisis les segments à parcourir en prenant à chaque fois le moins long parmi tous les segments possibles à partir du point où tu te situes.
    On appelle cela un algorithme "glouton". C'est une approche heuristique qui peut se justifier, puisque par définition aucun algorithme exact ne peut être développé actuellement (le problème du voyageur de commerce est NP-hard).

    Il existe d'autres heuristiques plus compliquées spécifiques au voyageur de commerce. Tu as déjà su en implémenter une et c'est déjà très bien. En plus,elle a l'air de te plaire, et énormément en plus

    Alors soit tu t'en satisfait, soit tu y vas à fond et fais de courtes recherches et implémente une heuristique théoriquement meilleure.
    Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Points : 46
    Points
    46
    Par défaut
    Hehe jai oublier de mettre résolu

    Car j'ai enfin de compte reussi a faire ce que le schéma faisait

    Cest un peu brute, car si jamais jai 100 point et bien cest 100x100 trajet qui vont être testé

    Mais bon, sur une 15 Aine de point ca se fait relativement vite.

    Voila voila !

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 70
    Points : 180
    Points
    180
    Par défaut
    Je sais que le sujet a été résolu, mais je crois que ce sujet est traité dans la partie spécialité du cours de maths de Tle ES (il n'est pas disponible en S).
    Voilà voilà...
    Nous serons en danger le jour où les machines seront capable de glander.

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour,

    N'est-ce pas de l'algorithme de Dijkstra dont tu parles ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 70
    Points : 180
    Points
    180
    Par défaut
    Si après vérification, il s'agit de cet algorithme, pourquoi ?
    Nous serons en danger le jour où les machines seront capable de glander.

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Pour donner une référence précise au premier posteur.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trouver les chemins les plus courts avec l'algorithme de Bellman-Ford
    Par geforce dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 06/02/2015, 16h28
  2. Trouver le chemin le plus court
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 24/04/2006, 08h28
  3. chemin le plus court
    Par fabetvince dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 21/04/2006, 13h38
  4. algorithme de Ford (recherche chemin le plus court)
    Par abstraite dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/05/2005, 10h39

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