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 :

Questions autours du pathfinding


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut Questions autours du pathfinding
    Bonjour.

    Premiere question, à propos de la mesure de l'efficacité d'un algo que j'ai implémenté en c++.
    Quels sont les indicateurs qui me montreront qu'il est plus ou moins adapté qu'un autre ? Dois-je utiliser un "time" dans mon code pour calculer le temps pris et le comparer au résultat d'un autre avec les même données en entrée ?
    Faut-il que je détermine sa complexité ?
    Esiste-til un standard de codage et d'intreface pour le comparer à d'autre ?

    Deuxième question, à propos de A*.
    Cet algo fut mon pire cauchemard des cours d'IA que j'ai subit. Chaque fois que quelqu'un dit je veux fairte du pathfinding on lui répond sans hésiter "A*". Mais je me demandais si avec des contraintes telles que :
    - trouver un chemin le plus vite possible (pas necessairement le plus court) ou dire qu'il n'en existe pas
    - considerer que toutes les cases ont un coût de parcours égal
    on ne pourrait pas imaginer un truc différent, plus intuitif qu'une recherche tout azimut jusqu'à trouver le meilleur chemin ?

    Comme je pense avoir une solution, j'aimerai vous la proposer sans pour autant avoir l'air d'avoir ré-inventé le fil à couper le beurre. Faudrait pas que ça en énnerve quelques un

    Merci de votre lecture.

  2. #2
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Par défaut
    Hello,

    Personnellement je serai interressé et heureux de lire ta reflexion...

    A* et Drijksta (imprononçable ce nom ! :p) sont bien sur les plus connus mais ce n'est pas pour ca que c'est forcément les plus puissants. En fait je voulais juste dire qu'il y a désormais peut etre de nouvelles solutions plus adaptés en vue des nouvelles découvertes ...

    Donc moi perso je suis impatient de lire ca

    a++
    Nico

  3. #3
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Après un petit nettoyage de code voici le résultat.

    Le pseudo code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Paramètres d'entrée
      point de départ
      point d'arrivée
     
    Paramètres de sortie
      liste de points
     
    Initialisation
      point courant <- point de départ
      liste de points += point courant
     
    Corps
      tant que l'arrivée n'est pas atteinte
        si aucun obstacle 
          aller en ligne droite de point courant jusqu'à l'arrivée
          liste de points += point courant
          si point courant == point d'arrivée 
            c'est fini
          sinon 
            détermination de la face, du sens, et du critère de sortie pour contourner l'obstacle
          fsi
        sinon
          contournement de l'obstacle par une face
          liste de points += point courant
          si critère de contournement ok
            aucun obstacle
          sinon
            contournement par la face suivante déterminée par le sens de contournement
          fsi
        fsi
      ftq
    Pour compiler le source, il y a quelques infos dans l'entête (à l'origine l'extension du source est .cc).

    Pour lancer l'exécutable, il faut passer un fichier bmp avec deux couleurs : du blanc pour les zones navigables, et du noir pour les "murs". A titre d'exemple j'ai joins un fichier test à dé-zipper.

    Pour utiliser le programme, il faut taper la touche 'a' à l'endroit où voulez partir, et 'b' à l'endroit où vous voulez arriver.


    L'algo peut fonctionner avec des murs courbes (escargot par exemple). Mais il n'est pas trop fait pour cela à l'origine. Pour essayer il faut augmenter la valeur de la variable 'ttl'.


    Merci de me donner votre avis sur la pertinence de cette idée.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Par défaut
    Hello,

    tu n'aurais pas un code compilé stp car je n'ai que vb.net express sous la main et je ne peux donc pas le tester

    a++
    nico

  5. #5
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Désolé je n'ai pas ça !

  6. #6
    Expert confirmé
    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 : 39
    Localisation : France, Vienne (Poitou Charente)

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Si tu as besoin d'informations sur l'algorithme A*, tu peux regarder éventuellement ici :

    http://khayyam.developpez.com/articles/algo/astar/

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2008, 16h58
  2. Question autour de sp_executesql
    Par Colon dans le forum Développement
    Réponses: 3
    Dernier message: 29/05/2008, 12h18
  3. [CPUID] Questions autour du CPU
    Par secretman dans le forum Delphi
    Réponses: 1
    Dernier message: 09/06/2007, 13h00
  4. Trois questions autour de Windows Server
    Par Kain94 dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 07/08/2006, 10h32
  5. [JSF] Questions autour des servlets
    Par maximus001ma dans le forum JSF
    Réponses: 4
    Dernier message: 25/07/2006, 13h27

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