From d30c816ab192e4a986d85c99d08e8991b684da7c Mon Sep 17 00:00:00 2001
From: BrunoDatoMeneses <bruno.dato.meneses@gmail.com>
Date: Fri, 10 Jan 2020 19:11:14 +0100
Subject: [PATCH] ADD: fusionned context not growing

---
 AMOEBAonAMAK/src/agents/context/Context.java  | 17 ++++++---
 AMOEBAonAMAK/src/agents/context/Range.java    |  4 ++
 AMOEBAonAMAK/src/agents/head/Head.java        | 10 ++---
 AMOEBAonAMAK/src/agents/percept/Percept.java  |  4 +-
 .../nDimensionsLaunchers/F_N_Manager.java     | 37 ++++++++++---------
 AMOEBAonAMAK/src/kernel/World.java            |  2 +-
 6 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/AMOEBAonAMAK/src/agents/context/Context.java b/AMOEBAonAMAK/src/agents/context/Context.java
index 5d7db655..db891d06 100644
--- a/AMOEBAonAMAK/src/agents/context/Context.java
+++ b/AMOEBAonAMAK/src/agents/context/Context.java
@@ -65,6 +65,8 @@ public class Context extends AmoebaAgent {
 	public static final int successesBeforeDiminution = 5;
 	public static final int errorsBeforeAugmentation = 5;
 	
+	public boolean fusionned = false;
+	
 	public Context(AMOEBA amoeba) {
 		super(amoeba);
 		buildContext();
@@ -788,6 +790,7 @@ public class Context extends AmoebaAgent {
 		
 		
 		fusionContext.destroy();
+		fusionned =  true;
 		getAmas().getHeadAgent().setBadCurrentCriticalityMapping();
 	}
 	
@@ -1210,12 +1213,12 @@ public class Context extends AmoebaAgent {
 	 * @param head the head
 	 */
 	public void growRanges() {
-
+		
 		ArrayList<Percept> allPercepts = getAmas().getPercepts();
 		for (Percept pct : allPercepts) {
 			boolean contain = ranges.get(pct).contains(pct.getValue()) == 0 ;
-	
-			if (!contain) {
+			getEnvironment().trace(TRACE_LEVEL.NCS, new ArrayList<String>(Arrays.asList(this.getName(), "CONTAINED", ""+contain)));
+			if (!contain && !fusionned) {
 				if(ranges.get(pct).getLenght()<pct.getMappingErrorAllowedMax()) {
 					ranges.get(pct).adapt(pct.getValue());
 				}
@@ -1443,7 +1446,8 @@ public class Context extends AmoebaAgent {
 	public String toStringFull() {
 		String s = "";
 		s += "Context : " + getName() + "\n";
-		s += "creation tick : " + tickCreation +"\n";
+		s += "Creation tick : " + tickCreation +"\n";
+		s += "Confidence : " + confidence + "\n";
 		s += "\n";
 
 		s += "Model "+this.localModel.getType()+" :";
@@ -1455,6 +1459,9 @@ public class Context extends AmoebaAgent {
 		s += "Ranges :\n";
 		for(Percept p : getRanges().keySet()) {
 			s += p + " : " + getRangeByPercept(p)+"\n"; 
+			s += p + " : " + getRangeByPercept(p).getStartIncrement()+"\n"; 
+			s += p + " : " + getRangeByPercept(p).getEndIncrement()+"\n"; 
+			
 		}
 		s += "\n";
 		
@@ -1479,7 +1486,7 @@ public class Context extends AmoebaAgent {
 			s += "Action proposed : " + this.getActionProposal() + "\n";
 		}
 
-		s += "Confidence : " + confidence + "\n";
+		
 
 		s += "\n";
 
diff --git a/AMOEBAonAMAK/src/agents/context/Range.java b/AMOEBAonAMAK/src/agents/context/Range.java
index 9a5b5d07..a40fd60b 100644
--- a/AMOEBAonAMAK/src/agents/context/Range.java
+++ b/AMOEBAonAMAK/src/agents/context/Range.java
@@ -128,6 +128,10 @@ public class Range implements Serializable, Comparable, Cloneable {
 
 		startIncrement = 0.25 * world.getMappingErrorAllowed() * percept.getMinMaxDistance();
 		endIncrement = startIncrement;
+		world
+		.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList(context.getName(), p.getName(), "Init start increment " + startIncrement)));
+		world
+		.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList(context.getName(), p.getName(), "Init end increment " + endIncrement)));
 	}
 	
 	public Range(Context context, double start, double end, double extendedrangeatcreation, boolean start_inclu,
diff --git a/AMOEBAonAMAK/src/agents/head/Head.java b/AMOEBAonAMAK/src/agents/head/Head.java
index 3762dee3..154f21ab 100644
--- a/AMOEBAonAMAK/src/agents/head/Head.java
+++ b/AMOEBAonAMAK/src/agents/head/Head.java
@@ -267,15 +267,15 @@ public class Head extends AmoebaAgent {
 				
 				
 				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "size", ""+activatedNeighborsContexts.size())));
+				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "size", ""+activatedNeighborsContexts.size())));
 				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodVolume", ""+meanNeighborhoodVolume)));
+				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodVolume", ""+meanNeighborhoodVolume)));
 				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodRaduises", ""+meanNeighborhoodRaduises)));
+				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodRaduises", ""+meanNeighborhoodRaduises)));
 				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodStartIncrements", ""+meanNeighborhoodStartIncrements)));
+				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodStartIncrements", ""+meanNeighborhoodStartIncrements)));
 				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodEndIncrements", ""+meanNeighborhoodEndIncrements)));
+				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", "meanNeighborhoodEndIncrements", ""+meanNeighborhoodEndIncrements)));
 			}
 			
 			
diff --git a/AMOEBAonAMAK/src/agents/percept/Percept.java b/AMOEBAonAMAK/src/agents/percept/Percept.java
index 551fef50..82493994 100644
--- a/AMOEBAonAMAK/src/agents/percept/Percept.java
+++ b/AMOEBAonAMAK/src/agents/percept/Percept.java
@@ -396,11 +396,11 @@ public class Percept extends AmoebaAgent {
 	}
 	
 	public double getMappingErrorAllowedOverMapping() {
-		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 0.5;
+		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 1.0;
 	}
 	
 	public double getMappingErrorAllowedMax() {
-		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 1.5;
+		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 2.0;
 	}
 
 	// -----------------------
diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
index 59719e5a..df46653e 100644
--- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
+++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
@@ -278,23 +278,24 @@ public class F_N_Manager implements StudiedSystem{
 		
 		int subzone = subzone2D(xRequest);
 		
-		if(subzone == 1) {
-			/* Disques */
-			return modelN(xRequest) ;
-		}else if (subzone == 2) {
-			/* Gaussian model */
-			return gaussianModel(xRequest, subZoneCenter3D(2), gaussianCoef, gaussianVariance);
-			
-		}else if (subzone == 3) {
-			/* Square */
-			return square2DModel(xRequest, subZoneCenter3D(3));
-			
-		}else if (subzone == 4) {
-			/* Exp */
-			return gaussianMapping2D(xRequest);
-		}
-		
-		return model1();
+		/* Multi */
+//		if(subzone == 1) {
+//			/* Disques */
+//			return modelN(xRequest) ;
+//		}else if (subzone == 2) {
+//			/* Gaussian model */
+//			return gaussianModel(xRequest, subZoneCenter3D(2), gaussianCoef, gaussianVariance);
+//			
+//		}else if (subzone == 3) {
+//			/* Square */
+//			return square2DModel(xRequest, subZoneCenter3D(3));
+//			
+//		}else if (subzone == 4) {
+//			/* Exp */
+//			return gaussianMapping2D(xRequest);
+//		}
+//		
+//		return model1();
 		
 		
 		/* Disc */
@@ -305,7 +306,7 @@ public class F_N_Manager implements StudiedSystem{
 		//return model1();
 		
 		/* Triangle */
-		//return (y > x) ? 2*x + y : 5*x - 8*y;
+		return (xRequest[0] > xRequest[1]) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]);
 		
 		/* Split */
 		//return ( x <= 0 ) ? 2*x + y : 5*x - 8*y;
diff --git a/AMOEBAonAMAK/src/kernel/World.java b/AMOEBAonAMAK/src/kernel/World.java
index 0f17d86b..c065a4d4 100644
--- a/AMOEBAonAMAK/src/kernel/World.java
+++ b/AMOEBAonAMAK/src/kernel/World.java
@@ -34,7 +34,7 @@ public class World extends Environment {
 	
 	
 	
-	public static TRACE_LEVEL minLevel = TRACE_LEVEL.EVENT;
+	public static TRACE_LEVEL minLevel = TRACE_LEVEL.INFORM;
 	
 	private AMOEBA amoeba;
 
-- 
GitLab