diff --git a/resources/PostProcessParams.html b/resources/PostProcessParams.html new file mode 100644 index 00000000..a9477ecc --- /dev/null +++ b/resources/PostProcessParams.html @@ -0,0 +1,27 @@ + + +Post-processing parameters + + +

Post-processing parameters

+
+
+

+If post processing is activated, it is performed after every +optimization run and it may be triggered using the solutions of the last optimization run by +the "Post process" button. +Post processing performs an initial clustering of the solutions with the given sigma interval (density-based clustering), +and on the set of best representative solutions from all clusters it performs a hill-climbing run for refinement. +After the HC step the set is clustered again to filter out solutions which converged during the HC. +

+

+The results of the post processing are displayed in the text window (and/or stats output file) and show a coarse +distribution of the final solutions as well as the explicit vectors of the n best solutions obtained, where n +is set as printNBest parameter. +If post-processing is started several times in a row, the initial solution set is the same, namely the one found +by optimization. Thereby one can guess, e.g., how close the solutions are to each other and how closely they +have converged during optimization itself. +

+ + + \ No newline at end of file diff --git a/src/eva2/gui/PropertySheetPanel.java b/src/eva2/gui/PropertySheetPanel.java index 82362a20..cb72d4b0 100644 --- a/src/eva2/gui/PropertySheetPanel.java +++ b/src/eva2/gui/PropertySheetPanel.java @@ -155,6 +155,7 @@ public class PropertySheetPanel extends JPanel implements PropertyChangeListener String name = m_Methods[i].getDisplayName(); Method meth = m_Methods[i].getMethod(); if (name.equals("globalInfo")) { + if (TRACE) System.out.println("found globalInfo method for " + targ.getClass().toString()); if (meth.getReturnType().equals(String.class)) { try { Object args[] = { }; diff --git a/src/eva2/server/go/operators/postprocess/PostProcessParams.java b/src/eva2/server/go/operators/postprocess/PostProcessParams.java index d2ba5a81..6046d100 100644 --- a/src/eva2/server/go/operators/postprocess/PostProcessParams.java +++ b/src/eva2/server/go/operators/postprocess/PostProcessParams.java @@ -99,4 +99,7 @@ public class PostProcessParams implements InterfacePostProcessParams, Serializab return "PostProcessing " + (postProcess ? (postProcessSteps + "/" + postProcessClusterSigma) : "off"); } + public String globalInfo() { + return "Combined clustering and hill-climbing for post-processing of solutions."; + } } diff --git a/src/eva2/server/go/populations/Population.java b/src/eva2/server/go/populations/Population.java index 3f18c750..7434a7d3 100644 --- a/src/eva2/server/go/populations/Population.java +++ b/src/eva2/server/go/populations/Population.java @@ -492,7 +492,8 @@ public class Population extends ArrayList implements PopulationInterface, Clonea */ public void getSortedNIndividuals(int n, boolean bBestOrWorst, Population res) { if ((n < 0) || (n>super.size())) { - System.err.println("invalid request to getSortedNIndividuals: n="+n + ", size is " + super.size()); + // this may happen, treat it gracefully + //System.err.println("invalid request to getSortedNIndividuals: n="+n + ", size is " + super.size()); n = super.size(); } int skip = 0;