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 :

Indexation dans le plan


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
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut Indexation dans le plan
    Bonjour,

    Je travaille sur un très grand cadrillage sur lequel sont disposés des pions au hasard. (éventuellement plusieurs par case) Etant donné :

    • Une case de la grille (x, y)
    • Une distance d


    le problème est de trouver le plus rapidement possible la liste des pions situés à une distance (euclidienne) inférieure ou égale à d de la case donnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (a - x)² + (b - x)² < d²
    Quelle structure de données utiliser pour coder l'ensemble des pions du damier ? Je ne cherche pas une complexité au pire minimum : en fait, la plupart du temps il y aura très peu de pions "visibles" depuis la case à la distance donnée. Pour cette raison, je ne peux pas me contenter de parcourir le domaine "visible" et regarder sur chaque case s'il y a des pions ou non.

    Blustuff.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ce que tu pourrais faire, c'est faire du hiérarchique : tu découpe ton plan en cases, et tu surveilles juste quels points sont dans quelle case - on fait ça pour les jeux vidéos pour al collision par exemple et aussi la vision -, ...
    Quand tu veux voir si un point est proche ou pas, tu prends les cases autour du point et tu parcours les éléments dans les cases.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    C'est ce que je fais actuellement. Mais ça me pose des problèmes. En particulier la question : "Quelle taille de case prendre ?"

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ca, c'est un gros problème ! Plus les cases sont petites, moins elles sont utiles, et plus il y a de changement de région. Plus les cases sont grandes, plus il y a d'éléments. Le mieux, tester pour voir les paramètres optimaux.

  5. #5
    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
    Bonjour,

    En prenant comme dimension des cotés des "super-cases" la racine du nombre de cases du quadrillage, on devrait être proche de la bonne valeur.

    Si on fait un découpage à deux niveaux, "super-cases" et "hyper-cases", on utiliserait la racine cubique.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Pourquoi la racine carrée ? Pourquoi faire un double découpage ?

Discussions similaires

  1. lire les indexes dans une stringGrid
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 01/12/2005, 15h15
  2. A quoi servent les index dans une BDD ?
    Par Melvine dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 25/10/2005, 12h14
  3. mise a zéro de la clé d'index dans une table
    Par Atchoum_002 dans le forum Access
    Réponses: 2
    Dernier message: 19/09/2005, 15h34
  4. Récupération d'index dans DBLookupControl ?
    Par Michel D. dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/06/2004, 15h01

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