[mlpack-git] [mlpack/mlpack] R+ tree implementation (#699)
lozhnikov
notifications at github.com
Wed Jun 15 23:59:29 EDT 2016
It seems I understood how git-cherry-pick works. If I understand correctly this branch will not be built until the Hilbert R tree PR is merged.
Right now the R+ tree passes `RectangleTreeTest/RPlusTreeOverlapTest` and `RectangleTreeTest/RPlusTreeTraverserTest`.
I am not sure that the partition algorithm works correctly in general (I am not sure that the resulting nodes will not be overfull). The R+ tree paper enumerates four criteria (section 4 Packing Algorithm). I implemented the criterion "minimal total space coverage accrued by the two subregions". Maybe it is good idea to add a template parameter SweepType since there is another clear criterion "minimal number of rectangle splits". But I do not undestand how should work the criteria "nearest neghbors" and "minimal total x and y displacement" and the paper does not explain that.
Also I should use
`double RPlusTreeSplit::SweepLeafNode(size_t axis, const TreeType* node,
size_t fillFactor, ElemType& axisCut)`
instead of
`double RPlusTreeSplit::SweepLeafNode(size_t axis, const TreeType* node,
size_t fillFactor, double& axisCut)`
The insertion algorithm tries to find the node that contains the point that is being inserted. If there are no such nodes the algorithm tries to enlarge a node. If the algorithm failed an empty node is added to the tree.
You can view, comment on, or merge this pull request online at:
https://github.com/mlpack/mlpack/pull/699
-- Commit Summary --
* R+ tree implementation
-- File Changes --
M src/mlpack/core/tree/CMakeLists.txt (4)
M src/mlpack/core/tree/rectangle_tree.hpp (2)
A src/mlpack/core/tree/rectangle_tree/r_plus_tree_descent_heuristic.hpp (49)
A src/mlpack/core/tree/rectangle_tree/r_plus_tree_descent_heuristic_impl.hpp (96)
A src/mlpack/core/tree/rectangle_tree/r_plus_tree_split.hpp (95)
A src/mlpack/core/tree/rectangle_tree/r_plus_tree_split_impl.hpp (441)
M src/mlpack/core/tree/rectangle_tree/r_star_tree_split_impl.hpp (3)
M src/mlpack/core/tree/rectangle_tree/r_tree_split_impl.hpp (2)
M src/mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp (4)
M src/mlpack/core/tree/rectangle_tree/typedef.hpp (8)
M src/mlpack/core/tree/rectangle_tree/x_tree_split_impl.hpp (3)
M src/mlpack/tests/rectangle_tree_test.cpp (90)
-- Patch Links --
https://github.com/mlpack/mlpack/pull/699.patch
https://github.com/mlpack/mlpack/pull/699.diff
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/pull/699
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20160615/07348de8/attachment.html>
More information about the mlpack-git
mailing list