From 16dac63529b0559fca21b936205db32a79f98208 Mon Sep 17 00:00:00 2001 From: Alexandre <alexandre.perles@gmail.com> Date: Fri, 2 Jun 2023 14:39:33 +0200 Subject: [PATCH] Add README, Use mailbox getter --- README.md | 42 +++++++++++++++++++ .../irit/smac/clumate/amas/ClusterAgent.java | 6 +-- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1eb0b0f --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# LxPlot + +A library for data clustering using multi-agent system + +## Set up (With Gradle on an existing project) + +* Download CluMATE source + +* Rename the extracted folder "clumate" + +* Create a new gradle project in the same directory as CluMATE + +* In this new project, open build.gradle + +* Add CluMATE to the dependencies +``` +dependencies { + + // Add the two following lines + // CluMATE + implementation project(':clumate') + + ... +} +``` +* Open settings.gradle + +* Add link to local CluMATE folder +include ':clumate' +project(':clumate').projectDir = new File(settingsDir, '../clumate') + +* Click on the Gradle Refresh button + + +## Usage example + +```java +var clumate = new CluMATE<CustomDataPoint>(new MASSettings(new CustomDataPointSimilarityScoreMethod(), 0.5f, EnumSet.noneOf(AMASOption), new CustomDataPointFuser())) + +clumate.fit([new CustomDataPoint(1), new CustomDataPoint(2)]) +var results = clumate.retrieveClusters() +``` \ No newline at end of file diff --git a/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java b/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java index 0840cf1..958b2ec 100644 --- a/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java +++ b/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java @@ -82,7 +82,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu protected void onPerceive() { switch (state) { case DORMANT -> { - var receivedRequestSimilarityMessage = this.mailbox.read(RequestSimilarityMessage.class); + var receivedRequestSimilarityMessage = this.getMailbox().read(RequestSimilarityMessage.class); if (receivedRequestSimilarityMessage.isPresent()) { receivedClusterForRequestSimilarity = receivedRequestSimilarityMessage.get().getCluster(); receivedRequestSimilarityRequester = (ClusterAgent) receivedRequestSimilarityMessage.get().getSender(); @@ -93,7 +93,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu } case WAITING_FOR_REPLY -> { while (mailbox.hasMessageOfType(EvaluatedScoreMessage.class)) { - var evaluatedScoreMessage = this.mailbox.read(EvaluatedScoreMessage.class); + var evaluatedScoreMessage = this.getMailbox().read(EvaluatedScoreMessage.class); if (evaluatedScoreMessage.isPresent()) { similarityScoresReceived.put((ClusterAgent) evaluatedScoreMessage.get().getSender(), evaluatedScoreMessage.get().getSimilarityScore()); } @@ -172,7 +172,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu for (var agent : clusterAgentsRoughlySimilarOnReady) { if (logger.isLoggable(Level.INFO)) logger.info(this + " sends RequestSimilarityMessage to " + agent); - agent.mailbox.receive(new RequestSimilarityMessage(this, cluster)); + agent.getMailbox().receive(new RequestSimilarityMessage(this, cluster)); requestSimilarityMessageSentAgents.add(agent); } -- GitLab