public ClusterPair getMin() { ClusterPair min = null; PriorityQueue<ClusterPair> minpq = null; for (PriorityQueue<ClusterPair> pq : distancesIndex.values()) { ClusterPair cp = pq.peek(); if (cp != null && (min == null || cp.getLinkageDistance() < min.getLinkageDistance())) { min = cp; minpq = pq; } } minpq.poll(); distancesIndex.get(min.getlCluster()).remove(min); distancesIndex.get(min.getrCluster()).remove(min); return min; }
/** * Compute some kind of unique ID for a given cluster pair. * @return The ID */ String hashCodePair(ClusterPair link) { return hashCodePair(link.getlCluster(), link.getrCluster()); }
/** * Compute some kind of unique ID for a given cluster pair. * @return The ID */ String hashCodePair(ClusterPair link) { return hashCodePair(link.getlCluster(), link.getrCluster()); }
Cluster<T> right = link.getrCluster();
/** * @return a new ClusterPair with the two left/right inverted */ public ClusterPair reverse() { return new ClusterPair(getrCluster(), getlCluster(), getLinkageDistance()); }
/** * @return a new ClusterPair with the two left/right inverted */ public ClusterPair reverse() { return new ClusterPair(getrCluster(), getlCluster(), getLinkageDistance()); }
if (minDistLink != null) { clusters.remove(minDistLink.getrCluster()); clusters.remove(minDistLink.getlCluster()); Cluster oldClusterR = minDistLink.getrCluster(); Cluster newCluster = minDistLink.agglomerate(null); PriorityQueue<ClusterPair> newList = new PriorityQueue();
public void agglomerate(LinkageStrategy linkageStrategy) { ClusterPair minDistLink = distances.removeFirst(); if (minDistLink != null) { clusters.remove(minDistLink.getrCluster()); clusters.remove(minDistLink.getlCluster()); Cluster oldClusterR = minDistLink.getrCluster(); Cluster newCluster = minDistLink.agglomerate(null);
public void agglomerate(LinkageStrategy linkageStrategy) { ClusterPair minDistLink = distances.removeFirst(); if (minDistLink != null) { clusters.remove(minDistLink.getrCluster()); clusters.remove(minDistLink.getlCluster()); Cluster oldClusterR = minDistLink.getrCluster(); Cluster newCluster = minDistLink.agglomerate(null);