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 :

Pb : Plus proche(s) voisin(s)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Dev C++, CUDA
    Inscrit en
    Mai 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Dev C++, CUDA
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 83
    Par défaut Pb : Plus proche(s) voisin(s)
    Bonjour,

    Voici mon probleme :
    - 2 ensembles de points dans l'espaces : environs 4000 points par ensemble(c'est en fait aux atoms dans un fichier pdb, pour ceux qui connaissent)
    - ces 2 ensembles subissent des transformations (translations et rotations) : 2000 transformations chacuns
    - Pour chaque transformations, je cherche quelle est la distance minimal entre ces 2 ensembles. Cad, quelle la distance minimale entre 2 points les plus proches appartenant à ces 2 ensembles (probleme originale : trouver les clashes stérics ...)

    Est-ce que vous avez une petite idee ? Surtout des mot cles d'algorithme "interessant" pour que je google :-)

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonsoir,

    je n'ai pas d'algorithme particulier sous la main.
    - Je commencerai par calculer les enveloppes convexes de chacun des ensembles. Cela réduira le nombre de points candidats et ne changera pas pour les transformations classiques (translation, rotation et homothétie).
    - Ensuite je trierai les points en fonctions de leurs distances par rapport au plan orhtogonal à la droite reliant les barycentres des deux ensembles. Ca te donnera un ordre de départ pour faire une recherche.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Si le problème est d'optimiser,

    • Diviser l'espace en "petits" cubes de coté C,
    • Identifier pour chaque ensemble les cubes non vides (avec des points)
    • trouver les 2 cubes non vides (1 de chaque ensemble) CubeX et CubeY avec la plus petite distance Dmin entre leur 2 volumes
    • puis éliminer les couples de cubes (1 de chaque ensemble) dont la distance D est supérieure à Dmin+2*SQRT(3*C) (majorant du pire des cas entre CubeX et cubeY).
    • traiter uniquement les couples de cubes retenus avec la méthode "bourrine" vu qu'on a déjà optimisé ou alors avec la méthode de toto13.

  4. #4
    Membre très actif
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Billets dans le blog
    1
    Par défaut
    exact, en isolant les points des enveloppes des nuages (convexe ou non) pendant les translations et rotations, on peu apres faire une selection des points dirigés vers l'autre nuage
    puis en calculant le carré des distances entre les points les plus proches, on sait quels sont les plus proches voisins.
    le carré de la distance est plus facile a obtenir et plus rapide.

Discussions similaires

  1. Algorithme KD-Tree de recherche du plus proche voisin .
    Par mobi_bil dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 11/05/2014, 11h54
  2. méthode des k plus proche voisin en matlab
    Par koukitta dans le forum Images
    Réponses: 4
    Dernier message: 15/05/2009, 17h47
  3. Recherche des plus proches voisins dans un espace variable à K dimensions parmis N
    Par JeromeBcx dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/06/2008, 17h46
  4. [Algo] Les K voisins les plus proches
    Par GyZmoO dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 25/05/2007, 11h33
  5. Réponses: 3
    Dernier message: 12/04/2007, 09h32

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