diff --git a/AMOEBAonAMAK/src/agents/context/Range.java b/AMOEBAonAMAK/src/agents/context/Range.java index 25ba066f5946f869d072bfa6add9f886df1f0011..5f48de97a246b5b257caae938623f4d95c9e4878 100644 --- a/AMOEBAonAMAK/src/agents/context/Range.java +++ b/AMOEBAonAMAK/src/agents/context/Range.java @@ -1508,18 +1508,18 @@ public class Range implements Serializable, Comparable, Cloneable { ////// " + (Math.abs(newStartValue-this.start))); } -// if ((Double) newStartValue != null) { -// if (newStartValue < percept.getMin()) { -// this.start = percept.getMin(); -// -// } else { -// this.start = newStartValue; -// } -// } else { -// this.start = newStartValue; -// } + if ((Double) newStartValue != null) { + if (newStartValue < percept.getMin()) { + this.start = percept.getMin(); + + } else { + this.start = newStartValue; + } + } else { + this.start = newStartValue; + } - this.start = newStartValue; + //this.start = newStartValue; @@ -1547,17 +1547,17 @@ public class Range implements Serializable, Comparable, Cloneable { ////// System.out.println(context.getName() + " " + percept.getName() + " END " ////// + (Math.abs(newEndValue-this.end))); } -// if ((Double) newEndValue != null) { -// if (newEndValue > percept.getMax()) { -// this.end = percept.getMax(); -// } else { -// this.end = newEndValue; -// } -// } else { -// this.end = newEndValue; -// } + if ((Double) newEndValue != null) { + if (newEndValue > percept.getMax()) { + this.end = percept.getMax(); + } else { + this.end = newEndValue; + } + } else { + this.end = newEndValue; + } - this.end = newEndValue; + //this.end = newEndValue; if (this.context != null) { diff --git a/AMOEBAonAMAK/src/agents/head/Head.java b/AMOEBAonAMAK/src/agents/head/Head.java index a80074d1b6098690289e812ba3f48efa27bc7ac8..16684af32c6acc73ad196913333007522d806e18 100644 --- a/AMOEBAonAMAK/src/agents/head/Head.java +++ b/AMOEBAonAMAK/src/agents/head/Head.java @@ -152,7 +152,10 @@ public class Head extends AmoebaAgent { if(activatedNeighborsContexts.size()>0) { - System.out.println(activatedNeighborsContexts); + getAmas().getEnvironment() + .trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("NEIGHBORDBOOD", ""+activatedNeighborsContexts))); + + for (Context ctxt : activatedNeighborsContexts) { diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java index 1ccc5f4400297de7b84acce64882dc97d9aa2954..2f5c64163ebf134e1df6f05d9827411049e2eee0 100644 --- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java +++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java @@ -42,7 +42,7 @@ public class F_N_Launcher extends Application implements Serializable { public static final double explorationIncrement = 1.0 ; public static final double explorationWidht = 0.5 ; public static final boolean setActiveLearning = true ; - public static final boolean setSelfLearning = false ; + public static final boolean setSelfLearning = true ; public static final int nbCycle = 1000; diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java index 9ce57be50be4fa1e073e8db6d8b4e8503ea3fa1b..b0dba480054498eff35623f4579419d662bdf8e2 100644 --- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java +++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java @@ -155,14 +155,14 @@ public class F_N_Manager implements StudiedSystem{ nonRandomExplorationStep(); } + else if(selfLearning) { + + for(int i = 0 ; i < dimension ; i++) { + x[i] = selfRequest.get("px" + i); + } + } else if(activeLearning) { - - - activeLearning = false; - - - for(int i = 0 ; i < dimension ; i++) { x[i] = selfRequest.get("px" + i); } @@ -176,6 +176,8 @@ public class F_N_Manager implements StudiedSystem{ } } + System.out.println("[PLAY ONE STEP] " + "selfLearning " + selfLearning + " activeLearning " + activeLearning); + return null; } @@ -280,37 +282,20 @@ public class F_N_Manager implements StudiedSystem{ int subzone = subzone2D(xRequest); /* 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(); + //return multiModel(xRequest, subzone); /* Disc */ - //return (y*y + x*x < spaceSize*spaceSize ) ? 2*x + y : 5*x - 8*y; + //return (xRequest[0]*xRequest[0] + xRequest[1]*xRequest[1] < spaceSize*spaceSize ) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]); /* Square */ - //return (xRequest[0] > -spaceSize && xRequest[0] < spaceSize && xRequest[1] < spaceSize && xRequest[1] > -spaceSize) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]) ; - //return model1(); + //return (xRequest[0] > -spaceSize && xRequest[0] < spaceSize && xRequest[0] < spaceSize && xRequest[1] > -spaceSize) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]) ; /* Triangle */ - //return (xRequest[0] > xRequest[1]) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]); + 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; + //return ( xRequest[0] <= 0 ) ? model1(xRequest[0],xRequest[1]) : model2(xRequest[0],xRequest[1]); @@ -324,6 +309,27 @@ public class F_N_Manager implements StudiedSystem{ + } + + + private double multiModel(Double[] xRequest, int subzone) { + 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(); } @@ -574,8 +580,11 @@ private double[] subZoneCenter3D(int nb) { }else { out.put("oracle",result); } + if(activeLearning) { + activeLearning=false; + } //out.put("oracle",result); - System.out.println(out); + System.out.println("[GET OUTPUT] " +out); return out; } @@ -709,6 +718,8 @@ private double[] subZoneCenter3D(int nb) { public void setSelfRequest(HashMap<Percept, Double> request){ HashMap<String,Double> newRequest = new HashMap<String,Double>(); + System.out.println("[SET SELF REQUEST] " +request); + for(Percept pct : request.keySet()) { newRequest.put(pct.getName(), request.get(pct)); }