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 :

Plus court chemin - graphe NON orienté et pondéré


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut Plus court chemin - graphe NON orienté et pondéré
    Bonjour,

    Dans le cadre d'un projet, je dois développer un Pacman en Java.
    Pour implémenter l'intelligence artificielle des fantomes, lorsqu'ils suivent pacman, j'ai pensé à utiliser les graphes.

    A partir du labyrinthe graphique, je déduis un graphe non orienté et pondéré. Le poids etant le nombre de cases séparant chaque carrefour.

    Maintenant je dois mettre en place l'algo pour la recherche du plus court chemin (de la position du fantome à celle du pacman, biensur). Je pensais simplement utiliser Dijkstra car il est simple à implémenter, mais je viens de me rendre compte qu'il ne concerne que les graphes orientés...

    Quel algorithme dois-je utiliser ? Et qui soit facilement implémentable...

    Merci beaucoup.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Les graphes non-orientés peuvent aussi être vu comme des graphes orientés où chaque arête a sa réciproque, donc tu peux tout à fait utiliser Dijkstra. Tu peux éventuellement utiliser A* à la place (c'est du Dijkstra agrémenté d'heuristique, qui peut-être exact ou "intuitif" selon ton choix).

    --
    Jedaï

  3. #3
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Si tu ne cherches pas trop la performance , tu peux utiliser BellmanFord, c'est assez simple à coder :

    http://brassens.upmf-grenoble.fr/IMSS/mamass/graphecomp/bellmannFord.htm

    Pour ce qui est de dijkstra, le problème ne vient pas de graphes non orientés mais plutôt de la valuation des arêtes (elles doivent être toutes positives)

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    etant donné qu'il value son graph avec des distance, ce sera forcement positif (ou alors il fait des calcules etranges )
    sinon moi aussi je conseil A* qui :
    - est plus rapide de dijkstra grace au heuristiques
    - permet d'avoir des chemin plus "naturels" encore grace a certaines heuristiques
    - n'est pas plus compliqué a coder que dijkstra (c'est le même avec juste un cout suplementaire par case qui prend en compte l'heuristique)

    et le dernier point : on le trouve partout sur internet
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Remarque en passant : tu as pensé aux subtiles et sadiques différences de comportement entre les fantômes ? Je ne connais pas leurs personnalités (même les fantômes ont des sentiments) par coeur mais l'un est un traqueur implacable qui suit le plus court chemin, un autre doit plutôt viser l'intersection de destination du joueur.... Plus un qui se promène un peu au hazard et c'est un cauchemard assuré

  6. #6
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut
    Je vous remercie tous pour vos réponses et suggestions.
    Par manque de temps je viens de mettre en place simplement l'algo de Dijkstra et ça fonctionne nickel. Mais j'avoue que je suis tenté d'utiliser des heuristiques différentes par fantômes et de rendre le jeu bien plus captivant.

    Mais bon... ce projet ne compte pas beaucoup et j'ai d'autres priorités. Je le reprendrais plus tard peut être.

    Merci en tout cas

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

Discussions similaires

  1. Graphe pondéré et plus court chemin
    Par CaNiBaLe dans le forum Langage
    Réponses: 1
    Dernier message: 23/05/2014, 17h41
  2. Calcul de plus court chemin dans un graphe
    Par Elmilouse dans le forum Prolog
    Réponses: 6
    Dernier message: 21/03/2010, 20h26
  3. trouver le plus court chemin dans un graphe
    Par buggen25 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/08/2008, 17h34
  4. N plus courts chemin dans un graphe
    Par MLK jr dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 13/03/2006, 00h32

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