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 :

Pathfinding de groupe


Sujet :

Algorithmes et structures de données

  1. #1
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut Pathfinding de groupe
    Bonjour a tous.
    J'ai bien compris le principe du pathfinding.
    Mais un problème se pose a moi.
    Comment coordonner un groupe d'unité qui souhaite arriver dans une même zone pour éviter les interblocages et minimiser le temps passé sur le chemin ?

    J'ai beau me creuser la tête , je ne vois pas comment faire.

    Merci.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  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
    Tu peux les gérer comme s'il s'agissait d'une seule unité et parallèlement agir sur leur formation pour qu'ils ne se rentrent pas dedans (sans considération de pathfinding).

    --
    Jedaï

  3. #3
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Le seul problème étant que je ne peut pas les mettre en groupe ou en formation
    ( et oui je suis chiant ).
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  4. #4
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Tu peux éventuellement regarder du côté des algorithmes de flots car un flot peut être vus comme un ensemble de chemins simultanés et il est possible de mettre une capacité sur chaque arc (nombre maximal de chemins traversant l'arc).

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Francis, il me semble qu'il y a un aspect temporel dans le probleme des congestions pour du pathfinding qui n'est pas pris en compte dans les algo de flot.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Francis, il me semble qu'il y a un aspect temporel dans le probleme des congestions pour du pathfinding qui n'est pas pris en compte dans les algo de flot.
    Ah.
    L'aspect temporel est important car durant leur trajet , les unités qui vont suivre le chemin trouvé par l'algo vont se faire canarder .
    D'où le besoin de minimiser le temps passé dessue .
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  7. #7
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Francis, il me semble qu'il y a un aspect temporel dans le probleme des congestions pour du pathfinding qui n'est pas pris en compte dans les algo de flot.
    Je n'avais pas vu l'aspect temporel du pathfinding.

    En revanche, on peut toujours introduire cette aspect temporel dans les flots en développant le graphe: pour chaque nœud i, on crée des nœuds (i,1) (i,2) (i,3)... pour chaque instant.

    Une réf en anglais:
    http://www.math.tu-berlin.de/coga/pu...-752-2002.html

  8. #8
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Imaginez que je fasse pour chaque noeud i et durant toute la durée du trajet (décomposé en une serie d'instants t ) un noeud j(i,j).
    Cela revient il a refaire un graphe entier a chaque instant t ?

    Si oui(je pense que c'est le cas ) mon problème est résolue du coté temporel et pas loin de l'être pour éviter les interblocages.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  9. #9
    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
    Imaginez que je fasse pour chaque noeud i et durant toute la durée du trajet (décomposé en une serie d'instants t ) un noeud j(i,j).
    Cela revient il a refaire un graphe entier a chaque instant t ?
    Oui, ça peut marcher comme ça, une modélisation de la bataille de la marne (problème d'approvisionnement temporel) est faite ainsi, chacun des noeud est démultiplié. Ca densifie le graphe mais si ça passe en mémoire c'est bon.

  10. #10
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Tu peux regarder la figure 3 dans le lien que j'ai mis dans mon précédent message. Elle illustre bien la construction du "gros" graphe temporel.

  11. #11
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    J'ai regarde le PDF d ton lein précedant et j'ai rien compis
    Les intégrales et autres joyeuseté mathématique , j'ai pas encore vue ca (Je suis rentré en Ts aujourd'hui )
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  12. #12
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    A 15 ans, respect!

    Laisse tombé les intégrales (enfin pour l'instant, cela sera utile pour le bac;-) Je voulais juste juste t'indiquer la figure. Si, tu peux aller d'un point i à un point j en un temps d(i,j), l'idée est simplement de relier les nœuds (i,t) à (j,t+d(i,j)).

  13. #13
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Enfin 15 ans , j'ai 16 en février prochain et puis le lycée c'est pas la mort.

    Si, tu peux aller d'un point i à un point j en un temps d(i,j), l'idée est simplement de relier les nœuds (i,t) à (j,t+d(i,j)).
    temps d(i,j) ?
    Un temps construit avec des points ?
    Ca représente le temps pour aller du point i au point j ?
    Je pense que oui vu ca (j,t+d(i,j)) mais je souhaite confirmation .

    Merci.

    Edit : ce truc va faire exploser la mémoire .
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  14. #14
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Je pense que oui vu ca (j,t+d(i,j)) mais je souhaite confirmation
    Oui c'est bien cela.

    Edit : ce truc va faire exploser la mémoire .
    Effectivement, c'est le problème, comme le signalait PRomu@ld.

  15. #15
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Pas keul.
    Je sens que je fais faire un pathfinding tout simple par unité puis verifier si la case suivante est libre.
    Si oui on y va.
    Sinon on attend.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

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

Discussions similaires

  1. PathFinding de groupe dans un RTS:
    Par Evorlde dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 08/05/2013, 21h26
  2. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  3. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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