diff --git a/src/eva2/server/go/individuals/AbstractEAIndividual.java b/src/eva2/server/go/individuals/AbstractEAIndividual.java index 1af96383..b93d68b0 100644 --- a/src/eva2/server/go/individuals/AbstractEAIndividual.java +++ b/src/eva2/server/go/individuals/AbstractEAIndividual.java @@ -829,6 +829,7 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java. * @return */ public static String getDefaultDataString(IndividualInterface individual, String separator) { + if (individual == null) return "null"; StringBuffer sb = new StringBuffer(""); char left = '['; char right = ']'; diff --git a/src/eva2/server/stat/AbstractStatistics.java b/src/eva2/server/stat/AbstractStatistics.java index 33ecf247..cfd81cdf 100644 --- a/src/eva2/server/stat/AbstractStatistics.java +++ b/src/eva2/server/stat/AbstractStatistics.java @@ -48,7 +48,7 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter protected double[] currentBestFit; protected double[] meanFitness; protected double[] currentWorstFit; - protected IndividualInterface bestCurrentIndividual, bestIndivdualAllover; + protected IndividualInterface bestCurrentIndividual, bestIndividualAllover; private ArrayList textListeners; @@ -119,7 +119,7 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter if (saveParams) m_StatsParams.saveInstance(); initOutput(infoString); bestCurrentIndividual = null; - bestIndivdualAllover = null; + bestIndividualAllover = null; if (refineMultiRuns) meanCollection = new ArrayList(); else meanCollection = null; } @@ -161,9 +161,9 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter protected void finalizeOutput() { if (printFinalVerbosity()) printToTextListener("*******\n Runs performed: " + optRunsPerformed + ", reached target " + convergenceCnt + " times with threshold " + m_StatsParams.getConvergenceRateThreshold() + ", rate " + convergenceCnt/(double)m_StatsParams.getMultiRuns() + '\n'); - if (printFinalVerbosity()) printToTextListener("Best overall individual: " + BeanInspector.toString(bestIndivdualAllover) + '\n'); - if (printFinalVerbosity()) printToTextListener(" solution : " + AbstractEAIndividual.getDefaultDataString(bestIndivdualAllover) + '\n'); - if (printFinalVerbosity()) printToTextListener(" fitness : " + BeanInspector.toString(bestIndivdualAllover.getFitness()) + '\n'); + if (printFinalVerbosity() && (bestIndividualAllover != null)) printToTextListener("Best overall individual: " + BeanInspector.toString(bestIndividualAllover) + '\n'); + if (printFinalVerbosity() && (bestIndividualAllover != null)) printToTextListener(" solution : " + AbstractEAIndividual.getDefaultDataString(bestIndividualAllover) + '\n'); + if (printFinalVerbosity() && (bestIndividualAllover != null)) printToTextListener(" fitness : " + BeanInspector.toString(bestIndividualAllover.getFitness()) + '\n'); if (refineMultiRuns && (optRunsPerformed>1) && (meanCollection != null)) { if (printFinalVerbosity()) printToTextListener("Averaged performance:\n"); for (int i=0; i