From 3325ec7a9078048659c47e4b54e3403916b0fdcc Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Wed, 2 Dec 2015 14:27:54 +0100 Subject: [PATCH] More markdown, refactor stuff --- src/eva2/cli/Main.java | 2 +- src/eva2/gui/OptimizationEditorPanel.java | 2 ++ .../optimization/OptimizationParameters.java | 1 + .../operator/mutation/MutateESGlobal.java | 2 +- .../terminators/CombinedTerminator.java | 2 +- .../HistoryConvergenceTerminator.java | 2 +- .../terminators/ParetoMetricTerminator.java | 2 +- .../PopulationMeasureTerminator.java | 2 +- .../statistics/AbstractStatistics.java | 19 +++++++++++-------- .../strategies/ArtificialBeeColony.java | 2 +- src/eva2/optimization/strategies/CBNPSO.java | 2 +- .../strategies/ClusterBasedNichingEA.java | 2 +- .../optimization/strategies/NichePSO.java | 2 +- .../strategies/ParticleSwarmOptimization.java | 2 +- .../AbstractMultiModalProblemKnown.java | 2 +- src/eva2/problems/AbstractProblemDouble.java | 2 +- src/eva2/problems/PSymbolicRegression.java | 2 +- 17 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java index de4d03b8..e17430aa 100644 --- a/src/eva2/cli/Main.java +++ b/src/eva2/cli/Main.java @@ -6,8 +6,8 @@ import eva2.optimization.OptimizationParameters; import eva2.optimization.Processor; import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.operator.terminators.InterfaceTerminator; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.statistics.*; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/gui/OptimizationEditorPanel.java b/src/eva2/gui/OptimizationEditorPanel.java index b5303a10..60f7f6cc 100644 --- a/src/eva2/gui/OptimizationEditorPanel.java +++ b/src/eva2/gui/OptimizationEditorPanel.java @@ -365,6 +365,8 @@ public class OptimizationEditorPanel extends JPanel implements ItemListener { boolean found = false; for (int i = 0; i < comboBoxModel.getSize(); i++) { Item element = (Item)comboBoxModel.getElementAt(i); + + System.out.println(objectName + " - " + element.getId()); if (objectName.equals(element.getId())) { found = true; objectChooser.getModel().setSelectedItem(element); diff --git a/src/eva2/optimization/OptimizationParameters.java b/src/eva2/optimization/OptimizationParameters.java index 6d822ad5..fef93cbe 100644 --- a/src/eva2/optimization/OptimizationParameters.java +++ b/src/eva2/optimization/OptimizationParameters.java @@ -47,6 +47,7 @@ public class OptimizationParameters extends AbstractOptimizationParameters imple FileInputStream fileStream = new FileInputStream(yamlFile); instance = (OptimizationParameters) new Yaml().load(fileStream); } catch (Exception ex) { + System.out.println(ex.getStackTrace() + "\n" + ex.getMessage()); LOGGER.log(Level.INFO, "Could not load OptimizationParameters.yml.", ex); } diff --git a/src/eva2/optimization/operator/mutation/MutateESGlobal.java b/src/eva2/optimization/operator/mutation/MutateESGlobal.java index f91f340f..9bb4cb30 100644 --- a/src/eva2/optimization/operator/mutation/MutateESGlobal.java +++ b/src/eva2/optimization/operator/mutation/MutateESGlobal.java @@ -3,8 +3,8 @@ package eva2.optimization.operator.mutation; import eva2.optimization.enums.MutateESCrossoverType; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.problems.InterfaceAdditionalPopulationInformer; import eva2.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operator/terminators/CombinedTerminator.java b/src/eva2/optimization/operator/terminators/CombinedTerminator.java index 1d6a8f83..de33da1f 100644 --- a/src/eva2/optimization/operator/terminators/CombinedTerminator.java +++ b/src/eva2/optimization/operator/terminators/CombinedTerminator.java @@ -1,7 +1,7 @@ package eva2.optimization.operator.terminators; -import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.InterfaceSolutionSet; import eva2.problems.InterfaceOptimizationProblem; import eva2.util.annotation.Description; import eva2.util.annotation.Parameter; diff --git a/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java b/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java index 564114e8..84a7b4a5 100644 --- a/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java +++ b/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java @@ -3,9 +3,9 @@ package eva2.optimization.operator.terminators; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.EAIndividualComparator; import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; -import eva2.optimization.population.PopulationInterface; import eva2.problems.InterfaceOptimizationProblem; import eva2.util.annotation.Description; diff --git a/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java b/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java index 29cb5d7e..0e7da230 100644 --- a/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java +++ b/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java @@ -3,8 +3,8 @@ package eva2.optimization.operator.terminators; import eva2.gui.BeanInspector; import eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric; import eva2.optimization.operator.paretofrontmetrics.MetricS; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java b/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java index d6590a42..e734170c 100644 --- a/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java +++ b/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java @@ -1,7 +1,7 @@ package eva2.optimization.operator.terminators; -import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.InterfaceSolutionSet; import eva2.problems.InterfaceOptimizationProblem; import eva2.util.annotation.Description; diff --git a/src/eva2/optimization/statistics/AbstractStatistics.java b/src/eva2/optimization/statistics/AbstractStatistics.java index 89b55e12..1ddcc272 100644 --- a/src/eva2/optimization/statistics/AbstractStatistics.java +++ b/src/eva2/optimization/statistics/AbstractStatistics.java @@ -238,11 +238,11 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter @Override public void startOptimizationPerformed(String infoString, int runNumber, InterfaceOptimizationParameters params, List informerList) { - if (printRunIntroVerbosity()) { - printToTextListener("# Optimization"); - } - if (runNumber == 0) { + if (printRunIntroVerbosity()) { + printToTextListener("# Optimization"); + } + // store the initial graph selection state, so that modifications during runtime cannot cause inconsistencies lastFieldSelection = (StringSelection) statisticsParameter.getFieldSelection().clone(); lastIsShowFull = statisticsParameter.isOutputAllFieldsAsText(); @@ -298,7 +298,7 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter if (printRunIntroVerbosity()) { printToTextListener("## Multirun " + (runNumber + 1) + "\n"); } - + feasibleFoundAfter = -1; bestCurrentIndy = null; bestOfRunIndy = null; @@ -513,7 +513,7 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter } if (refineMultiRuns && (sumDataCollection != null)) { if (printFinalVerbosity()) { - printToTextListener(" Averaged performance:\n"); + printToTextListener("#### Averaged performance:\n\n"); } // the summed-up values of the mean collection is divided by the number of runs for (int i = 0; i < sumDataCollection.size(); i++) { @@ -588,11 +588,14 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter } public String refineToText(ArrayList data, int iterationsToShow) { - String hd = getOutputHeaderFieldNamesAsString(lastInformerList); + List additionalFields = getOutputHeaderFieldNames(lastInformerList); StringBuffer sbuf = new StringBuffer("Iteration"); sbuf.append(textFieldDelimiter); - sbuf.append(hd); + sbuf.append(StringTools.concatFields(additionalFields, " | ")); sbuf.append("\n"); + String[] tableSeparator = new String[additionalFields.size()+1]; + Arrays.fill(tableSeparator, "---"); + sbuf.append(StringTools.concatFields(tableSeparator, " | ") + "\n"); refineToText(data, iterationsToShow, sbuf, textFieldDelimiter); return sbuf.toString(); } diff --git a/src/eva2/optimization/strategies/ArtificialBeeColony.java b/src/eva2/optimization/strategies/ArtificialBeeColony.java index 25c2ca58..57202684 100644 --- a/src/eva2/optimization/strategies/ArtificialBeeColony.java +++ b/src/eva2/optimization/strategies/ArtificialBeeColony.java @@ -2,9 +2,9 @@ package eva2.optimization.strategies; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.problems.InterfaceAdditionalPopulationInformer; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/strategies/CBNPSO.java b/src/eva2/optimization/strategies/CBNPSO.java index 10ef9307..47e0f479 100644 --- a/src/eva2/optimization/strategies/CBNPSO.java +++ b/src/eva2/optimization/strategies/CBNPSO.java @@ -7,8 +7,8 @@ import eva2.optimization.operator.paramcontrol.CbpsoFitnessThresholdBasedAdaptio import eva2.optimization.operator.paramcontrol.LinearParamAdaption; import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.SinusoidalParamAdaption; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; import eva2.problems.AbstractProblemDouble; import eva2.problems.InterfaceInterestingHistogram; diff --git a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java index afde27dd..593e79a7 100644 --- a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java +++ b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java @@ -18,9 +18,9 @@ import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; import eva2.optimization.operator.terminators.HistoryConvergenceTerminator; import eva2.optimization.operator.terminators.InterfaceTerminator; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfacePopulationChangedEventListener; import eva2.optimization.population.Population; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.problems.*; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/strategies/NichePSO.java b/src/eva2/optimization/strategies/NichePSO.java index 8da3399e..8991a3d2 100644 --- a/src/eva2/optimization/strategies/NichePSO.java +++ b/src/eva2/optimization/strategies/NichePSO.java @@ -22,8 +22,8 @@ import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.InterfaceTerminator; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; import eva2.problems.*; import eva2.tools.chart2d.*; diff --git a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java index 88f55b4c..715934a7 100644 --- a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java @@ -11,9 +11,9 @@ import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.distancemetric.PhenotypeMetric; import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.problems.Interface2DBorderProblem; import eva2.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/problems/AbstractMultiModalProblemKnown.java b/src/eva2/problems/AbstractMultiModalProblemKnown.java index 1c9d45b8..47f935cc 100644 --- a/src/eva2/problems/AbstractMultiModalProblemKnown.java +++ b/src/eva2/problems/AbstractMultiModalProblemKnown.java @@ -6,8 +6,8 @@ import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import eva2.optimization.operator.distancemetric.PhenotypeMetric; import eva2.optimization.operator.postprocess.PostProcess; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.tools.EVAERROR; import eva2.tools.ToolBox; import eva2.tools.math.Mathematics; diff --git a/src/eva2/problems/AbstractProblemDouble.java b/src/eva2/problems/AbstractProblemDouble.java index 3d597b2a..9e18d998 100644 --- a/src/eva2/problems/AbstractProblemDouble.java +++ b/src/eva2/problems/AbstractProblemDouble.java @@ -13,8 +13,8 @@ import eva2.optimization.operator.terminators.FitnessConvergenceTerminator; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.Pair; import eva2.tools.ToolBox; diff --git a/src/eva2/problems/PSymbolicRegression.java b/src/eva2/problems/PSymbolicRegression.java index db8aa6ac..1e59d36e 100644 --- a/src/eva2/problems/PSymbolicRegression.java +++ b/src/eva2/problems/PSymbolicRegression.java @@ -3,8 +3,8 @@ package eva2.problems; import eva2.gui.plot.Plot; import eva2.optimization.individuals.*; import eva2.optimization.individuals.codings.gp.*; -import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.problems.regression.InterfaceRegressionFunction; import eva2.problems.regression.RFKoza_GPI_7_3;