From 04f8427f81f1a9f4c0614440bced972e4073da29 Mon Sep 17 00:00:00 2001
From: BrunoDatoMeneses <bruno.dato.meneses@gmail.com>
Date: Wed, 10 Jul 2019 18:15:30 +0200
Subject: [PATCH] FIX: double surrounding infinite loop on void detection

---
 AMOEBAonAMAK/src/agents/context/Context.java              | 4 ++--
 AMOEBAonAMAK/src/agents/head/Head.java                    | 7 ++++---
 .../experiments/nDimensionsLaunchers/F_N_Launcher.java    | 3 ++-
 .../src/experiments/nDimensionsLaunchers/F_N_Manager.java | 8 ++++++++
 AMOEBAonAMAK/src/kernel/World.java                        | 2 +-
 5 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/AMOEBAonAMAK/src/agents/context/Context.java b/AMOEBAonAMAK/src/agents/context/Context.java
index 2a4632fe..fb9f6cd7 100644
--- a/AMOEBAonAMAK/src/agents/context/Context.java
+++ b/AMOEBAonAMAK/src/agents/context/Context.java
@@ -713,7 +713,7 @@ public class Context extends AmoebaAgent {
 		for (Percept pct : getAmas().getPercepts()) {
 			currentDistance = this.distance(ctxt, pct);
 			
-			if(currentDistance<-pct.getMappingErrorAllowedMin() && getAmas().getCycle()>1000) {
+			if(currentDistance<-pct.getMappingErrorAllowedMin() && getAmas().getCycle()>50) {
 				getEnvironment().trace(TRACE_LEVEL.DEBUG,new ArrayList<String>(Arrays.asList("OVERLAP",pct.getName(), ""+this,""+ctxt)) );
 				overlapCounts+=1;
 				overlapDistances.put(pct, Math.abs(currentDistance));
@@ -723,7 +723,7 @@ public class Context extends AmoebaAgent {
 			}
 			
 
-			if (currentDistance > pct.getMappingErrorAllowedMin() && getAmas().getCycle()>2000) {
+			if (currentDistance > pct.getMappingErrorAllowedMin() && getAmas().getCycle()>50) {
 				getEnvironment().trace(TRACE_LEVEL.DEBUG,new ArrayList<String>(Arrays.asList("VOID",pct.getName(), ""+this,""+ctxt, "distance", ""+currentDistance)) );
 				voidDistances.put(pct, currentDistance);
 				bounds.put(pct, this.voidBounds(ctxt, pct));
diff --git a/AMOEBAonAMAK/src/agents/head/Head.java b/AMOEBAonAMAK/src/agents/head/Head.java
index 90995cdb..67ee3729 100644
--- a/AMOEBAonAMAK/src/agents/head/Head.java
+++ b/AMOEBAonAMAK/src/agents/head/Head.java
@@ -144,9 +144,9 @@ public class Head extends AmoebaAgent {
 	}
 
 	private void playWithOracle() {
-
+		getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("\n\n")));
 		getAmas().data.executionTimes[0]=System.currentTimeMillis();
-		getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("\n------------------------------------------------------------------------------------"
+		getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("------------------------------------------------------------------------------------"
 				+ "---------------------------------------- PLAY WITH ORACLE")));
 		
 		if (activatedContexts.size() > 0) {
@@ -2394,7 +2394,8 @@ public class Head extends AmoebaAgent {
 			
 			test = true;
 			for(Percept pct : getAmas().getPercepts()) {
-				test = test && ctxt.getRanges().get(pct).contains2(request.get(pct));
+//				test = test && ctxt.getRanges().get(pct).contains2(request.get(pct));
+				test = test && ctxt.getRanges().get(pct).contains(request.get(pct), pct.getMappingErrorAllowedMin());
 			}
 			if(test) {
 				return false;
diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
index 5a9e38b3..603a3835 100644
--- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
+++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
@@ -36,7 +36,8 @@ public class F_N_Launcher implements Serializable {
 	public static final int normType = 2	;
 	public static final boolean randomExploration = true;
 	public static final boolean limitedToSpaceZone = true;
-	public static final double mappingErrorAllowed = 0.03;
+	//public static final double mappingErrorAllowed = 0.07; // BIG SQUARE
+	public static final double mappingErrorAllowed = 0.03; // MULTI
 	public static final double explorationIncrement = 1.0	;
 	public static final double explorationWidht = 0.5	;
 	
diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
index b26d6378..ce809ad6 100644
--- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
+++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
@@ -271,6 +271,7 @@ public class F_N_Manager implements StudiedSystem{
 		center[0]=0.0;
 		center[1]=0.0;
 		//return gaussianModel(xRequest, center,gaussianCoef, gaussianVariance);
+		//return squareSimpleModel(xRequest);
 		
 		int subzone = subzone2D(xRequest);
 		
@@ -409,6 +410,13 @@ private double[] subZoneCenter3D(int nb) {
 				xRequest[1] < (center[1]+spaceSize/2)) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]) ;
 	}
 	
+	private double squareSimpleModel(Double[] xRequest) {
+		return ((-spaceSize)  < xRequest[0]  && 
+				xRequest[0] < (spaceSize) &&
+				(-spaceSize)  < xRequest[1]  && 
+				xRequest[1] < (+spaceSize)) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]) ;
+	}
+	
 	private double gaussianModel() {
 		double result = 1.0;
 		for(int i=0;i<dimension;i++) {
diff --git a/AMOEBAonAMAK/src/kernel/World.java b/AMOEBAonAMAK/src/kernel/World.java
index e248a189..5fe709fe 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.ERROR;
+	public static TRACE_LEVEL minLevel = TRACE_LEVEL.DEBUG;
 	
 	private AMOEBA amoeba;
 
-- 
GitLab