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 :

[kd-tree][persistent][balancé] recherche implémentation


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut [kd-tree][persistent][balancé] recherche implémentation
    Hello,

    Quelqu'un aurait t'il des informations sur comment balancer un 3d-tree ?
    J'ai les algorithmes pour générer un arbre balancé à partir d'un ensemble de points, mais pas comment garder un arbre balancé après une insertion. Si vous avez des infos cela m'intéresse, ainsi qu'une implémentation. Idéallement je cherche une classe Java pour un 3D-tree balancé persistent mais si vous n'avez pas de version persistente ce n'est pas grâve je le rajouterai.

  2. #2
    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 Re: [kd-tree][persistent][balancé] recherche implémentation
    Citation Envoyé par mlequim
    Quelqu'un aurait t'il des informations sur comment balancer un 3d-tree?
    Si tu cherches a rester balance, je regarderais plutot les R-Trees. Je ne me souviens pas avoir vu d'algo de balancement incremental de kd-tree.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    C'est ce que je pensais aussi, mais le texte ci-dessous extrait de l'encyclopédie libre wikipédia me fait penser le contraire.

    Balancing a kd-tree
    Balancing a kd-tree requires care. Because kd-trees are sorted in multiple dimensions, the tree rotation technique cannot be used to balance them — this may break the invariant.
    En lisant cela j'ai l'impression que le balancement par rotations n'est plus applicable mais qu'il existe une autre méthode.

    Je ne connais pas les R-tree, tu as plus d'infos dessus ?


    Ce que je veux faire c'est créér un programme de modélisation pour le plaisir, j'étudie pour le moment les structures de données que je vais utiliser. J'ai pensé utiliser un kd-tree pour stoquer les vertices car c'est une structure qui à de bonnes performances pour la recherche. Il existe des algorithmes qui peuvent efficacement effectuer des range-search ce qui me permettrait de facilement faire un outil de sélection, et en rajoutant de la persistence je pourrais faire un undo pas trop couteux en place mémoire. Aurais tu un lien qui comparerait les complexités des R-tree et des kd-tree pour ces opérations (recherche élément, range-searching, insertion balancée) ?[/quote]

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,
    Citation Envoyé par mlequim
    Je ne connais pas les R-tree, tu as plus d'infos dessus ?
    Une implémentation de R-Tree en Java : http://www.fzg.uni-osnabrueck.de/mitarbeiter/baer/rtree.html

    Tu trouveras sur la même page un document PDF décrivant l'algorithme des R-Tree par leur inventeur, A. Guttman.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  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
    Citation Envoyé par mlequim
    Aurais tu un lien qui comparerait les complexités des R-tree et des kd-tree pour ces opérations (recherche élément, range-searching, insertion balancée)?
    Quelques papiers trouvables sur le net (en particulier citesearch mais mettre simplement les titres dans google doit permettre de trouver la plupart). J'avais fait cette liste en 2002-2003; les commentaires sont de moi. Les 3 derniers papiers ne concernent pas l'utilisation incrementale. J'avais fini par utiliser la variante "fractale" (c'etait pour le cas 2 dimentions)

    *) A. Guttman
    R-trees: A dynamic index structure for spatial searching
    Proc. SIGMOD, 1984.
    rtrees.pdf

    The foundation paper.

    *) T. Sellis et al.
    The R+ tree: a dynamic index for multi-dimensional objects.
    Proc. 13th International Conference on VLDB, pp 507-518
    also available as SRC-TR-87-32, UMIACS-TR-87-3, CS-TR-1795
    R+-tree.pdf

    *) D. Greene
    An implementation and performance analysis of spatial data access
    methods.
    Proc. of Data Engineering, pp 606-615
    greene.pdf

    An analysis of performance of R-Trees (in fact a variant even if it
    is presented as the original one), R+-Trees and some earlier
    methods.

    *) N. Beckmann et al.
    The R*-tree: An efficient and robust access method for points and
    rectangles
    Proc. SIGMOD, 1990.
    rstartrees.pdf

    Variant (keep the data structure, change some sub-parts of the
    algorithm) of rtree with better search characteristic. But more
    complicated.

    *) I. Kamel, C. Faloutsos
    Hilbert R-tree: An improved R-tree using fractals
    Proc. VLDB, 1994.
    hilbert-rtrees.pdf

    Variant (keep the data structure, change some sub-parts of the
    algorithm) of rtree with better search characteristic even than
    R*-Tree. But more complicated.

    *) P. K. Agarwal et al.
    Box-Trees and R-Trees with Near-Optimal Query Time
    To appear in Discrete and Computational Geometry, 2002.
    box.pdf

    A recent paper. Very theorical. Establish bound and give an
    algorithm but not very interesting in our case as they are for
    construction from the scratch and not for incremental editing.
    Usefull also for the given references.

    -*-

    *) J. van den Bercken et al.
    A generic approach to bulk loading multidimensional index
    structures
    Proc. VLDB, 1997.
    bulk.pdf

    *) Y. J. Garcia et al.
    A greedy algorithm for bulk-loading R-trees
    Tech. rept., Univ. of Denver, 1997. Poster on ACM-GIS '98.
    greedy-bulk.ps
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    A dynamic index structure for spatial searching
    ça à l'air de correspondre à mes besoins,...

    merci pour ces documents

    juste pour ma culture générale, quelqu'un pourrait'il me confirmer que les kd-tree n'ont pas d'algorithme de construction incrémental ?

    même si les R-tree ont plus l'air adapté à mon besoin j'aimerais avoir cette réponse par pure curiositée

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,
    Citation Envoyé par mlequim
    Je ne connais pas les R-tree, tu as plus d'infos dessus ?
    Une implémentation de R-Tree en Java : http://www.fzg.uni-osnabrueck.de/mitarbeiter/baer/rtree.html

    Tu trouveras sur la même page un document PDF décrivant l'algorithme des R-Tree par leur inventeur, A. Guttman.
    merci à toi aussi pour ce lien, ça va me faire gagner un temps fou !

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/10/2010, 16h57
  2. [Recherche] Implémentation client NNTP RFC-3977
    Par .:ce dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 31/10/2009, 10h28
  3. [MySQL] Implémenter une fonction de recherche approximative
    Par Chromatic dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/02/2006, 11h54
  4. Je recherche un composant Tree non visuel, structure mémoire
    Par bambino3996 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 05/09/2005, 17h03
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 13h44

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