diff --git a/AMOEBAonAMAK/src/agents/head/Head.java b/AMOEBAonAMAK/src/agents/head/Head.java index b4dd18b1510cc91674742922127c2d0870bea8d2..8fe26fa6e2a131d8eab7d9df5af6c35d3e8bb09c 100644 --- a/AMOEBAonAMAK/src/agents/head/Head.java +++ b/AMOEBAonAMAK/src/agents/head/Head.java @@ -175,11 +175,18 @@ public class Head extends AmoebaAgent { getAmas().data.executionTimes[6]=System.currentTimeMillis()- getAmas().data.executionTimes[6]; - getAmas().data.executionTimes[7]=System.currentTimeMillis(); + getAmas().data.executionTimes[11]=System.currentTimeMillis(); NCSDetection_ChildContext(); + getAmas().data.executionTimes[11]=System.currentTimeMillis()- getAmas().data.executionTimes[11]; + getAmas().data.executionTimes[12]=System.currentTimeMillis(); NCSDetection_PotentialRequest(); + getAmas().data.executionTimes[12]=System.currentTimeMillis()- getAmas().data.executionTimes[12]; + + + + getAmas().data.executionTimes[7]=System.currentTimeMillis(); criticalities.addCriticality("spatialCriticality", (getMinMaxVolume() - getVolumeOfAllContexts()) / getMinMaxVolume()); @@ -236,12 +243,13 @@ public class Head extends AmoebaAgent { getAmas().data.executionTimes[7]=System.currentTimeMillis()- getAmas().data.executionTimes[7]; - for(int i = 0 ; i<20;i++) { getAmas().data.executionTimesSums[i] += getAmas().data.executionTimes[i]; } + + } public double getMinMaxVolume() { @@ -894,26 +902,28 @@ public class Head extends AmoebaAgent { double minDistanceToOraclePrediction = Double.POSITIVE_INFINITY; for (Context activatedContext : activatedContexts) { - currentDistanceToOraclePrediction = activatedContext.getLocalModel() - .distance(activatedContext.getCurrentExperiment()); - getAmas().data.distanceToRegression = currentDistanceToOraclePrediction; + currentDistanceToOraclePrediction = activatedContext.getLocalModel().distance(activatedContext.getCurrentExperiment()); + getAmas().data.contextNotFinished = false; getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("MODEL DISTANCE", activatedContext.getName(), "" + activatedContext.getLocalModel().distance(activatedContext.getCurrentExperiment())))); if (!activatedContext.getLocalModel().finishedFirstExperiments()) { + activatedContext.getLocalModel().updateModel(activatedContext.getCurrentExperiment(), getAmas().data.learningSpeed); getAmas().data.contextNotFinished = true; + } - else if (currentDistanceToOraclePrediction < getAverageRegressionPerformanceIndicator()) { //else if (currentDistanceToOraclePrediction < regressionPerformance.getPerformanceIndicator()) { + activatedContext.getLocalModel().updateModel(activatedContext.getCurrentExperiment(), getAmas().data.learningSpeed); } if (currentDistanceToOraclePrediction < minDistanceToOraclePrediction) { minDistanceToOraclePrediction = currentDistanceToOraclePrediction; + getAmas().data.distanceToRegression = minDistanceToOraclePrediction; } if (!getAmas().data.contextNotFinished) { @@ -933,6 +943,7 @@ public class Head extends AmoebaAgent { activatedContexts.get(i).criticalities.updateMeans(); if (activatedContexts.get(i).criticalities.getCriticalityMean("distanceToRegression") != null) { + activatedContexts.get(i).regressionPerformance.update(activatedContexts.get(i).criticalities.getCriticalityMean("distanceToRegression")); getEnvironment().trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("UPDATE REGRESSION PERFORMANCE", activatedContexts.get(i).getName(), ""+activatedContexts.get(i).regressionPerformance.getPerformanceIndicator()))); } diff --git a/AMOEBAonAMAK/src/kernel/AMOEBA.java b/AMOEBAonAMAK/src/kernel/AMOEBA.java index 2ad515d0aaeea48a41fd1ccc4c222f8d6bff8145..dd2b1e7a6e324d66aac411429f0a847ac00ce42b 100644 --- a/AMOEBAonAMAK/src/kernel/AMOEBA.java +++ b/AMOEBAonAMAK/src/kernel/AMOEBA.java @@ -165,6 +165,8 @@ public class AMOEBA extends Amas<World> implements IAMOEBA { timeExecution.addData("BestContextInNeighbors", cycle, data.executionTimesSums[8], notify); timeExecution.addData("CreateContext", cycle, data.executionTimesSums[9], notify); timeExecution.addData("UpdateStatitics", cycle, data.executionTimesSums[10], notify); + timeExecution.addData("ChildContext", cycle, data.executionTimesSums[11], notify); + timeExecution.addData("PotentialRequest", cycle, data.executionTimesSums[12], notify); criticalities.addData("Prediction", cycle, data.evolutionCriticalityPrediction, notify); criticalities.addData("Mapping", cycle, data.evolutionCriticalityMapping, notify);