Class RandomSplit<E extends MTreeEntry,​N extends AbstractMTreeNode<?,​N,​E>>

  • Type Parameters:
    E - the type of MTreeEntry used in the M-Tree
    N - the type of AbstractMTreeNode used in the M-Tree
    All Implemented Interfaces:
    MTreeSplit<E,​N>

    @Reference(authors="P. Ciaccia, M. Patella, P. Zezula",
               title="M-tree: An Efficient Access Method for Similarity Search in Metric Spaces",
               booktitle="Proc. Int. Conf. Very Large Data Bases (VLDB\'97)",
               url="http://www.vldb.org/conf/1997/P426.PDF",
               bibkey="DBLP:conf/vldb/CiacciaPZ97")
    public class RandomSplit<E extends MTreeEntry,​N extends AbstractMTreeNode<?,​N,​E>>
    extends AbstractMTreeSplit<E,​N>
    Encapsulates the required methods for a split of a node in an M-Tree. The routing objects are chosen according to the RANDOM strategy.

    Note: only the routing objects are chosen at random, this is not a random assignment!

    Reference:

    P. Ciaccia, M. Patella, P. Zezula
    M-tree: An Efficient Access Method for Similarity Search in Metric Spaces
    In Proc. Int. Conf. Very Large Data Bases (VLDB'97)

    Since:
    0.2
    Author:
    Elke Achtert
    • Field Detail

      • random

        private java.util.Random random
        Random generator.
    • Constructor Detail

      • RandomSplit

        public RandomSplit​(DistributionStrategy distributor,
                           RandomFactory rnd)
        Constructor.
        Parameters:
        distributor - Distribution strategy
        rnd - Random generator
    • Method Detail

      • split

        public Assignments<E> split​(AbstractMTree<?,​N,​E,​?> tree,
                                    N node)
        Selects two objects of the specified node to be promoted and stored into the parent node. The m-RAD strategy considers all possible pairs of objects and, after partitioning the set of entries, promotes the pair of objects for which the sum of covering radiuses is minimum.
        Parameters:
        tree - Tree to use
        node - the node to be split
        Returns:
        the assignments of this split