Class TopDownConstructor

  • All Implemented Interfaces:
    java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class TopDownConstructor
    extends BallTreeConstructor
    implements TechnicalInformationHandler
    The class implementing the TopDown construction method of ball trees. It further uses one of a number of different splitting methods to split a ball while constructing the tree top down.

    For more information see also:

    Stephen M. Omohundro (1989). Five Balltree Construction Algorithms.

    BibTeX:

     @techreport{Omohundro1989,
        author = {Stephen M. Omohundro},
        institution = {International Computer Science Institute},
        month = {December},
        number = {TR-89-063},
        title = {Five Balltree Construction Algorithms},
        year = {1989}
     }
     

    Valid options are:

     -S <classname and options>
      Ball splitting algorithm to use.
    Version:
    $Revision: 1.3 $
    Author:
    Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • TopDownConstructor

        public TopDownConstructor()
        Creates a new instance of TopDownConstructor.
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this nearest neighbour search algorithm.
        Returns:
        a description of the algorithm for displaying in the explorer/experimenter gui
      • getTechnicalInformation

        public TechnicalInformation getTechnicalInformation()
        Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
        Specified by:
        getTechnicalInformation in interface TechnicalInformationHandler
        Returns:
        the technical information about this class
      • buildTree

        public BallNode buildTree()
                           throws java.lang.Exception
        Builds the ball tree top down.
        Specified by:
        buildTree in class BallTreeConstructor
        Returns:
        The root node of the tree.
        Throws:
        java.lang.Exception - If there is problem building the tree.
      • addInstance

        public int[] addInstance​(BallNode node,
                                 Instance inst)
                          throws java.lang.Exception
        Adds an instance to the ball tree.
        Specified by:
        addInstance in class BallTreeConstructor
        Parameters:
        node - The root node of the tree.
        inst - The instance to add to the tree.
        Returns:
        The new master index array after adding the instance.
        Throws:
        java.lang.Exception - If there is some problem adding the given instance to the tree.
      • ballSplitterTipText

        public java.lang.String ballSplitterTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getBallSplitter

        public BallSplitter getBallSplitter()
        Returns the BallSplitter algorithm set that would be used by the TopDown BallTree constructor.
        Returns:
        The BallSplitter currently in use.
      • setBallSplitter

        public void setBallSplitter​(BallSplitter splitter)
        Sets the ball splitting algorithm to be used by the TopDown constructor.
        Parameters:
        splitter - The BallSplitter to use.
      • listOptions

        public java.util.Enumeration listOptions()
        Returns an enumeration describing the available options.
        Specified by:
        listOptions in interface OptionHandler
        Overrides:
        listOptions in class BallTreeConstructor
        Returns:
        an enumeration of all the available options.
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options. Valid options are:

         -S <classname and options>
          Ball splitting algorithm to use.
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class BallTreeConstructor
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • getOptions

        public java.lang.String[] getOptions()
        Gets the current settings of KDtree.
        Specified by:
        getOptions in interface OptionHandler
        Overrides:
        getOptions in class BallTreeConstructor
        Returns:
        an array of strings suitable for passing to setOptions