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

Calcul scientifique Python Discussion :

Intersection d'ensembles de points en 3D


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Intersection d'ensembles de points en 3D
    Bonjour,

    J'ai deux ensembles de points dans l'espace A et B. Je voudrais savoir quels sont les points de B qui sont proches de ceux de A (avec un seuil de distance).

    J'ai implémenté un algorithme natif : je parcours tous les points de A et je calcules toutes les distances avec les points de B.

    A et B étants très grands (5000 point en moyenne), cet algorithme est très long.

    J'ai aussi essayé une autre méthode :
    Je trouve une boite englobante de A (plus mon seuil de distance) et je cherche tous les points de B qui sont dans cette boite.

    C'est mieux, mais je cherche un algorithme plus rapide.

    Merci de m'aider

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 38
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Il faut que tu organises les points d'un des ensembles dans une structure spaciale comme un quadtree ou un octree. Cette structure te permettra ensuite pour chaque point du deuxième ensemble de trouver ses points proches.

    Tu peux regarder http://en.wikipedia.org/wiki/Kd-tree pour un algorithme et http://www.cs.wustl.edu/~suri/cs506/projects/quad.html pour un applet de demo d'un quadtree.

    Bon courage.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci,

    C'est exactement ce que je cherchais.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Ta solution marche bien dans un espace 2D mais quand on passe en 3D, on a un probleme. Il me semble que le tri n'est fait qu'en fonction des x.

    Mais je me trompe peut être ...

    En plus je ne suis pas convaincu que le temps de calcul soit inférieur à celui correspondant à trouver des points dans une boite.

    Qu'en pensez vous ?


  5. #5
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    bonjour,

    je pense que la solution a ton probleme (deja citee plus haut) est la : http://en.wikipedia.org/wiki/Kd-tree

    de plus, si la repartition de l'ensemble A et B n'est pas aleatoire,
    j'entends par la que l'intersection de A et B est petite devant A et/ou B,
    tu peux egalement evisager de ne travailler qu'avec les points se trouvant dans A inter B + epsilon.
    ce qui est plus rapide a calculer que toutes les distances An-Bn.

    tiens nous au courant, un code python qui gere ce probleme pourrait etre utile a beaucoup d'autres developpeurs.
    donc le partager serait bien venue.

    merci.

Discussions similaires

  1. Intersection d'ensemble trié
    Par lechewal dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 09/01/2008, 15h13
  2. Réponses: 5
    Dernier message: 16/02/2007, 15h53
  3. boule minimale contenant un ensemble de points
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 28/02/2006, 10h36
  4. Récupérer l'ensemble des points d'une droite
    Par Psycho_Kwak dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 18/01/2006, 11h42
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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