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