From 08264b03a1c4263d6158cab1ea180e05e14605e5 Mon Sep 17 00:00:00 2001 From: Alexandre <alexandre.perles@gmail.com> Date: Mon, 18 Sep 2023 22:51:19 +0200 Subject: [PATCH] Fix cluster size and bucket id --- .../java/fr/irit/smac/amas4dc/amas/agent/ClusterAgent.java | 4 ++++ src/main/java/fr/irit/smac/amas4dc/cluster/Cluster.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/fr/irit/smac/amas4dc/amas/agent/ClusterAgent.java b/src/main/java/fr/irit/smac/amas4dc/amas/agent/ClusterAgent.java index 2162b40..39619e0 100644 --- a/src/main/java/fr/irit/smac/amas4dc/amas/agent/ClusterAgent.java +++ b/src/main/java/fr/irit/smac/amas4dc/amas/agent/ClusterAgent.java @@ -46,6 +46,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<DynamicClusteringAM else cluster = new Cluster<T>(dataPoint); amas.getMasSettings().database().add(cluster.getRepresentative()); + getAmas().getEnvironment().assignToBucket(cluster.getRepresentative().getBucketId(), this); } public enum State {DORMANT, WAITING_FOR_DISTANCE, DEAD} @@ -222,6 +223,8 @@ public class ClusterAgent<T extends DataPoint> extends Agent<DynamicClusteringAM if (getAmas().getMasSettings().amasOptions().contains(AMASOption.KeepAllDataPoints)) ((ExtendedCluster<T>) cluster).addClusterContent((ExtendedCluster<T>) otherCluster); + else + cluster.addClusterContent(otherCluster); } @@ -229,6 +232,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<DynamicClusteringAM protected void onDestroy() { nextState = State.DEAD; amas.getMasSettings().database().remove(cluster.getRepresentative()); + getAmas().getEnvironment().removeFromBucket(cluster.getRepresentative().getBucketId(), this); } diff --git a/src/main/java/fr/irit/smac/amas4dc/cluster/Cluster.java b/src/main/java/fr/irit/smac/amas4dc/cluster/Cluster.java index b4b0753..30a5db5 100644 --- a/src/main/java/fr/irit/smac/amas4dc/cluster/Cluster.java +++ b/src/main/java/fr/irit/smac/amas4dc/cluster/Cluster.java @@ -22,9 +22,13 @@ public class Cluster<T extends DataPoint> { this.representative = representative; this.size = 1; } + public void addDataPoint(T dataPoint) { size++; } + public void addClusterContent(Cluster<T> otherCluster) { + size += otherCluster.size; + } } -- GitLab