[mlpack-git] (blog) master: Lozhnikov. Week 1 (af0fd90)

gitdub at mlpack.org gitdub at mlpack.org
Sun May 29 18:49:17 EDT 2016


Repository : https://github.com/mlpack/blog
On branch  : master
Link       : https://github.com/mlpack/blog/compare/628246a565e60833277249a7aa256e91aac5b4f7...af0fd90961a51d6e99588ab0d604b710c5f8073b

>---------------------------------------------------------------

commit af0fd90961a51d6e99588ab0d604b710c5f8073b
Author: Mikhail Lozhnikov <lozhnikovma at gmail.com>
Date:   Mon May 30 01:49:17 2016 +0300

    Lozhnikov. Week 1


>---------------------------------------------------------------

af0fd90961a51d6e99588ab0d604b710c5f8073b
 content/blog/LozhnikovWeekOne.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/content/blog/LozhnikovWeekOne.md b/content/blog/LozhnikovWeekOne.md
new file mode 100644
index 0000000..7fda824
--- /dev/null
+++ b/content/blog/LozhnikovWeekOne.md
@@ -0,0 +1,14 @@
+Title: Implementation of tree types. Week 1 (Implementation of Hilbert R tree)
+Date: 2016-05-30 01:45:00
+Tags: gsoc, Hilbert R tree, Hilbert value
+Author: Mikhail Lozhnikov
+
+The main goal of my project is to extend the mlpack's list of tree types by implementing R+ trees, Hilbert R trees, vantage point trees, random projection trees and UB trees for the purpose of using them in mlpack's dual-tree algorithms. I decided to begin with the Hilbert R tree.
+
+The Hilbert R tree differs from original Guttman's R tree by a special ordering. All points should be inserted into the tree according to their Hilbert values. In order to do this I implemented a new layer of abstraction for the RectangleTree class. Now each node of the tree contains an auxiliary information which depends on the tree type (AuxiliaryInformationType class). This class can handle the insertion and the deletion process in order to be certain that all points and nodes are arranged according to their Hilbert values. Also this class can contain some extra information like the largest Hilbert value.
+
+The comparison process along the Hilbert curve can be implemented differently. Generally, there are two approaches: a recursive approach and a discrete approach. The recursive approach in contrast to the discrete approach does not compute exact Hilbert values. I implemented two classes: DiscreteHilbertValue and RecursiveHilbertValue. All these classes can be used as template parameters for the HilbertRTreeAuxiliaryInformation class.
+
+Also I implemented the split rules and the descent heuristic rules.
+
+I think I'll spend the next week testing these changes and cleaning the code. Also I should add a bit of documentation.




More information about the mlpack-git mailing list