Class MedoidLinkage.Instance

  • Enclosing class:
    MedoidLinkage<O>

    public static class MedoidLinkage.Instance
    extends AGNES.Instance
    Main worker instance of AGNES.
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<elki.database.ids.ModifiableDBIDs> clusters
      Cluster to members map
      protected elki.database.query.distance.DistanceQuery<?> dq
      Distance query
      protected elki.database.ids.DBIDArrayIter ix
      Iterators into the object ids.
      protected elki.database.ids.DBIDArrayIter iy
      Iterators into the object ids.
      protected elki.database.ids.DBIDArrayMIter mi
      Iterators into medoid array.
      protected elki.database.ids.DBIDArrayMIter mj
      Iterators into medoid array.
    • Constructor Summary

      Constructors 
      Constructor Description
      Instance()
      Constructor.
    • Field Detail

      • clusters

        protected it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<elki.database.ids.ModifiableDBIDs> clusters
        Cluster to members map
      • dq

        protected elki.database.query.distance.DistanceQuery<?> dq
        Distance query
      • mi

        protected elki.database.ids.DBIDArrayMIter mi
        Iterators into medoid array.
      • mj

        protected elki.database.ids.DBIDArrayMIter mj
        Iterators into medoid array.
      • ix

        protected elki.database.ids.DBIDArrayIter ix
        Iterators into the object ids.
      • iy

        protected elki.database.ids.DBIDArrayIter iy
        Iterators into the object ids.
    • Constructor Detail

      • Instance

        public Instance()
        Constructor.
    • Method Detail

      • findMerge

        protected int findMerge()
        Description copied from class: AGNES.Instance
        Perform the next merge step in AGNES.
        Overrides:
        findMerge in class AGNES.Instance
        Returns:
        the index that has disappeared, for shrinking the working set
      • merge

        protected void merge​(int x,
                             int y)
        Execute the cluster merge.
        Parameters:
        x - first cluster to merge, with x > y
        y - second cluster to merge, with y < x
      • findMedoid

        private static double findMedoid​(elki.database.query.distance.DistanceQuery<?> dq,
                                         elki.database.ids.DBIDs c,
                                         elki.database.ids.DBIDArrayMIter prototype)
        Find the prototypes.
        Parameters:
        dq - Distance query
        c - Cluster
        prototype - Prototype output
        Returns:
        New best distance
      • updateMatrix

        protected void updateMatrix​(int x,
                                    int y)
        Update the scratch distance matrix.
        Parameters:
        x - First matrix position
        y - Second matrix position