The OptimizerFactory allows quickly creating some optimizers without
+ * The OptimizerFactory allows quickly creating some optimizers without
* thinking much about parameters. You can access a runnable Optimization thread
* and directly start it, or access its fully prepared OptimizationParameter instance,
* change some parameters, and start it then.
- *
+ *
* On the other hand this
* class provides an almost complete list of all currently available
* optimization procedures in EvA2. The arguments passed to the methods
@@ -51,7 +51,7 @@ import java.util.List;
* InterfaceOptimizer optimizer = OptimizerFactory.createCertainOptimizer(arguments);
* EvaluationTerminator terminator = new EvaluationTerminator(numOfFitnessCalls);
* while (!terminator.isTerminated(optimizer.getPopulation())) optimizer.optimize();
- *
+ *
*/
public class OptimizerFactory {
diff --git a/src/eva2/gui/AboutDialog.java b/src/eva2/gui/AboutDialog.java
index f0def4f3..ab1a6ba4 100644
--- a/src/eva2/gui/AboutDialog.java
+++ b/src/eva2/gui/AboutDialog.java
@@ -14,7 +14,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
- * @author becker
+ * The About dialog used in the EvA2 GUI.
*/
class AboutDialog extends JDialog {
private JLabel imageLabel;
diff --git a/src/eva2/gui/SplashScreen.java b/src/eva2/gui/SplashScreen.java
index 11db5521..a96b29a1 100644
--- a/src/eva2/gui/SplashScreen.java
+++ b/src/eva2/gui/SplashScreen.java
@@ -28,8 +28,8 @@ class SplashScreen extends JWindow {
/**
* Show the splash screen to the end user.
- *
- *
Once this method returns, the splash screen is realized, which means
+ *
+ * Once this method returns, the splash screen is realized, which means
* that almost all work on the splash screen should proceed through the
* event dispatch thread. In particular, any call to
* dispose for the splash screen must be performed in the event
diff --git a/src/eva2/optimization/go/SwingWorker.java b/src/eva2/optimization/go/SwingWorker.java
index bad8bf55..b2fdea39 100644
--- a/src/eva2/optimization/go/SwingWorker.java
+++ b/src/eva2/optimization/go/SwingWorker.java
@@ -7,11 +7,11 @@ import javax.swing.*;
* SwingWorker 3), an abstract class that you subclass to
* perform GUI-related work in a dedicated thread. For
* instructions on using this class, see:
- *
+ *
* http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html
* or
* http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
- *
+ *
* Note that the API changed slightly in the 3rd version:
* You must now invoke start() on the SwingWorker after
* creating it.
diff --git a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java
index de1dcbe3..cb96c613 100644
--- a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java
+++ b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java
@@ -299,7 +299,7 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme
/**
* *******************************************************************************************************************
* These are for InterfaceDataTypeBinary
- *
+ *
* /** This method allows you to request a certain amount of binary data
*
* @param length The lenght of the BitSet that is to be optimized
diff --git a/src/eva2/optimization/individuals/GAPIndividualProgramData.java b/src/eva2/optimization/individuals/GAPIndividualProgramData.java
index b49770da..3a008557 100644
--- a/src/eva2/optimization/individuals/GAPIndividualProgramData.java
+++ b/src/eva2/optimization/individuals/GAPIndividualProgramData.java
@@ -192,7 +192,7 @@ public class GAPIndividualProgramData extends AbstractEAIndividual implements In
/**
* *******************************************************************************************************************
* These are for InterfaceDataTypeDouble
- *
+ *
* /** This method allows you to request a certain amount of double data
*
* @param length The lenght of the double[] that is to be optimized
diff --git a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java
index a7a68011..96a8371c 100644
--- a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java
+++ b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java
@@ -196,7 +196,7 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual
/**
* *******************************************************************************************************************
* These are for InterfaceDataTypeInteger
- *
+ *
* /** This method allows you to request a certain amount of int data
*
* @param length The lenght of the int[] that is to be optimized
diff --git a/src/eva2/optimization/individuals/InterfaceOBGAIndividual.java b/src/eva2/optimization/individuals/InterfaceOBGAIndividual.java
index 116937cb..4d06ecca 100644
--- a/src/eva2/optimization/individuals/InterfaceOBGAIndividual.java
+++ b/src/eva2/optimization/individuals/InterfaceOBGAIndividual.java
@@ -3,13 +3,6 @@ package eva2.optimization.individuals;
/**
* This interface gives access to a permutation genotype and should
* only be used by mutation and crossover operators.
- *
Title: EvA2
- *
Description:
- *
Copyright: Copyright (c) 2003
- *
Company:
- *
- * @author planatsc
- * @version 1.0
*/
public interface InterfaceOBGAIndividual {
diff --git a/src/eva2/optimization/individuals/codings/ga/GAStandardCodingDouble.java b/src/eva2/optimization/individuals/codings/ga/GAStandardCodingDouble.java
index ea112fa6..9934d1a9 100644
--- a/src/eva2/optimization/individuals/codings/ga/GAStandardCodingDouble.java
+++ b/src/eva2/optimization/individuals/codings/ga/GAStandardCodingDouble.java
@@ -131,10 +131,8 @@ public class GAStandardCodingDouble implements InterfaceGADoubleCoding, java.io.
/**
* A eva2.problems.simple test function without arguments
- *
- * @param args
*/
- public static void main(String[] args) {
+ public static void main() {
GAStandardCodingDouble t = new GAStandardCodingDouble();
String test = "01100010001000110010000011111101";
//String test = "11000000000000000000000000000000";
diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java
index cbca3d18..408e6d20 100644
--- a/src/eva2/optimization/modules/OptimizationParameters.java
+++ b/src/eva2/optimization/modules/OptimizationParameters.java
@@ -19,7 +19,7 @@ import java.util.logging.Level;
/**
* OptimizationParameters for configuration of an
* optimization run.
- *
+ *
* This class is used to generate the default GUI
* configuration panel for optimizations.
*/
diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java
index 6b947ed1..ac222ee7 100644
--- a/src/eva2/optimization/modules/Processor.java
+++ b/src/eva2/optimization/modules/Processor.java
@@ -33,7 +33,7 @@ import java.util.logging.Logger;
/**
* The Processor may run as a thread permanently (GenericModuleAdapter) and is
* then stopped and started by a switch in startOptimization/stopOptimization.
- *
+ *
* Processor also handles adaptive parameter control by checking for the method
* getParamControl in (so far) Optimizer and Problem instances. The return-value
* may be InterfaceParameterControl or an array of Objects. If it is a control
diff --git a/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java b/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java
index 370e06ac..323ed94f 100644
--- a/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java
+++ b/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java
@@ -18,7 +18,7 @@ import java.util.Vector;
/**
* Hierarchical clustering after Preuss et al., "Counteracting Genetic Drift and Disruptive Recombination
* in (mu+,lambda)-EA on Multimodal Fitness Landscapes", GECCO '05.
- *
+ *
* A tree is produced by assigning each individual the closest individual with better fitness.
* Connections with a distance above a certain threshold are cut. After that, each interconnected subtree forms a cluster.
* In the paper, the threshold is deduced as 2*d_p for d_p: the mean distance in the population.
diff --git a/src/eva2/optimization/operator/constraint/AbstractConstraint.java b/src/eva2/optimization/operator/constraint/AbstractConstraint.java
index bd0fa5a9..c40d35cc 100644
--- a/src/eva2/optimization/operator/constraint/AbstractConstraint.java
+++ b/src/eva2/optimization/operator/constraint/AbstractConstraint.java
@@ -7,6 +7,7 @@ import eva2.problems.AbstractProblemDouble;
import eva2.tools.EVAERROR;
import java.io.Serializable;
+import java.util.logging.Logger;
/**
* An abstract constraint contains a penalty factor with control strategy (for dynamic penalties)
@@ -15,7 +16,7 @@ import java.io.Serializable;
* @author mkron
*/
public abstract class AbstractConstraint implements InterfaceDoubleConstraint, Serializable {
- // private transient GPFunctionProblem func = null;
+ private static final Logger LOGGER = Logger.getLogger(AbstractConstraint.class.getName());
protected ConstraintRelationEnum relation = ConstraintRelationEnum.lessEqZero;
protected ConstraintHandlingEnum handling = ConstraintHandlingEnum.specificTag;
@@ -104,7 +105,7 @@ public abstract class AbstractConstraint implements InterfaceDoubleConstraint, S
* Some constraints require further information on the individual or work on the
* raw fitness which can be requested using this method.
*
- * @return
+ * @return The individuals raw fitness
*/
protected double[] getIndyRawFit(String key) {
return getIndyDblData(AbstractProblemDouble.rawFitKey);
@@ -115,7 +116,8 @@ public abstract class AbstractConstraint implements InterfaceDoubleConstraint, S
* additional individual data. This method uses getData of AbstractEAIndividual
* to try to retrieve a double array.
*
- * @return
+ * @param key The key used for the data
+ * @return A specific double array identified by key
*/
protected double[] getIndyDblData(String key) {
if (currentIndy != null) {
@@ -123,11 +125,11 @@ public abstract class AbstractConstraint implements InterfaceDoubleConstraint, S
if (dat != null && (dat instanceof double[])) {
return (double[]) dat;
} else {
- System.err.println("Error, invalid call to AbstractConstraint.getRawFitness(). Individual had no raw fitness set.");
+ LOGGER.finest("Error, invalid call to AbstractConstraint.getRawFitness(). Individual had no raw fitness set.");
return null;
}
} else {
- System.err.println("Error, invalid call to AbstractConstraint.getRawFitness(). Individual was unknown.");
+ LOGGER.finest("Error, invalid call to AbstractConstraint.getRawFitness(). Individual was unknown.");
return null;
}
}
@@ -137,22 +139,20 @@ public abstract class AbstractConstraint implements InterfaceDoubleConstraint, S
* additional individual data. This method uses getData of AbstractEAIndividual
* to try to retrieve a stored object.
*
- * @return
+ * @return An object identified by the key
*/
protected Object getIndyData(String key) {
if (currentIndy != null) {
return currentIndy.getData(key);
} else {
- System.err.println("Error, invalid call to AbstractConstraint.getRawFitness(). Individual was unknown.");
+ LOGGER.finest("Error, invalid call to AbstractConstraint.getRawFitness(). Individual was unknown.");
return null;
}
}
private double getViolationConsideringRelation(double val) {
-// System.out.println("Penalty is " + penaltyFactor);
val *= penaltyFactor;
switch (relation) {
-// case linearLessEqZero:
case lessEqZero:
return (val <= 0.) ? 0 : val;
case eqZero:
diff --git a/src/eva2/optimization/operator/crossover/CrossoverESFlat.java b/src/eva2/optimization/operator/crossover/CrossoverESFlat.java
index 63d9fc17..030b364f 100644
--- a/src/eva2/optimization/operator/crossover/CrossoverESFlat.java
+++ b/src/eva2/optimization/operator/crossover/CrossoverESFlat.java
@@ -12,7 +12,7 @@ import eva2.util.annotation.Description;
* The flat crossover inits values randomly within the extreme values of
* all parents, namely
* c[i]=rand(min_j(p_ij), max_j(p_ij)).
- *
+ *
* where c[i] is the i-th child component and p_ij is the i-th component
* of parent j.
*/
diff --git a/src/eva2/optimization/operator/crossover/TestESCrossover.java b/src/eva2/optimization/operator/crossover/TestESCrossover.java
index b79d564b..dcc44a06 100644
--- a/src/eva2/optimization/operator/crossover/TestESCrossover.java
+++ b/src/eva2/optimization/operator/crossover/TestESCrossover.java
@@ -240,13 +240,10 @@ public class TestESCrossover implements java.io.Serializable {
/**
* This method will test the crossover operator
- *
- * @param args
*/
public static void main(String[] args) {
TestESCrossover t = new TestESCrossover();
t.initFrame();
-
}
public void setCrossover(InterfaceCrossover NumberOfCrossovers) {
diff --git a/src/eva2/optimization/operator/distancemetric/DoubleIntegralMetric.java b/src/eva2/optimization/operator/distancemetric/DoubleIntegralMetric.java
index 48530612..fcd7364f 100644
--- a/src/eva2/optimization/operator/distancemetric/DoubleIntegralMetric.java
+++ b/src/eva2/optimization/operator/distancemetric/DoubleIntegralMetric.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* Calculate the euclidean difference between discrete integrals, which is
* d(x,y)=sqrt(sum_i=1^n(((sum_j=1^i(x_j))-(sum_j=1^i(y_j)))^2)).
- *
+ *
* This can be used with any individual type that implements getDoublePositionShallow.
*
* @see AbstractEAIndividual#getDoublePositionShallow(AbstractEAIndividual)
diff --git a/src/eva2/optimization/operator/fitnessmodifier/FitnessSharing.java b/src/eva2/optimization/operator/fitnessmodifier/FitnessSharing.java
index 610337bf..5628f9ff 100644
--- a/src/eva2/optimization/operator/fitnessmodifier/FitnessSharing.java
+++ b/src/eva2/optimization/operator/fitnessmodifier/FitnessSharing.java
@@ -5,6 +5,7 @@ import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric;
import eva2.optimization.operator.distancemetric.PhenotypeMetric;
import eva2.optimization.population.Population;
import eva2.util.annotation.Description;
+import eva2.util.annotation.Parameter;
/**
* The fitness modifier are defunct and are to be moved to
@@ -69,34 +70,28 @@ public class FitnessSharing implements java.io.Serializable, InterfaceFitnessMod
/**
* These methods allows you to set/get the Sharing Distance
*
- * @param SharingDistance
+ * @param sharingDistance The sharing distance
*/
- public void setSharingDistance(double SharingDistance) {
- this.sharingDistance = SharingDistance;
+ @Parameter(description = "The threshold for the similarity penalty.")
+ public void setSharingDistance(double sharingDistance) {
+ this.sharingDistance = sharingDistance;
}
public double getSharingDistance() {
return this.sharingDistance;
}
- public String sharingDistanceTipText() {
- return "The threshold for the similarity penalty.";
- }
-
/**
* These methods allows you to set/get the type of Distance Metric.
*
- * @param Metric
+ * @param metric The distance metric to use
*/
- public void setMetric(InterfaceDistanceMetric Metric) {
- this.distanceMetric = Metric;
+ @Parameter(name = "metric", description = "The distance metric used. Note: This depends on the type of EAIndividual used!")
+ public void setMetric(InterfaceDistanceMetric metric) {
+ this.distanceMetric = metric;
}
public InterfaceDistanceMetric getMetric() {
return this.distanceMetric;
}
-
- public String metricTipText() {
- return "The distance metric used. Note: This depends on the type of EAIndividual used!";
- }
}
diff --git a/src/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java b/src/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java
index e6e4dfec..998e4904 100644
--- a/src/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java
+++ b/src/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java
@@ -19,7 +19,7 @@ import java.util.BitSet;
* integer individuals, it allows to control the number of occurrences of a certain integer
* per segment. It may also be used to initialize with subsets of integers (by setting 0
* elements to a certain type and all to a subset of the range).
- *
+ *
* The initialization may be parameterized in two ways, where each takes a fixed
* segment length s. Firstly, a fixed number of bits (k<=s) is set per segment,
* so each segment has equal cardinality.
diff --git a/src/eva2/optimization/operator/mutation/MutateESCorrVector.java b/src/eva2/optimization/operator/mutation/MutateESCorrVector.java
index be7a6ee3..d4e87559 100644
--- a/src/eva2/optimization/operator/mutation/MutateESCorrVector.java
+++ b/src/eva2/optimization/operator/mutation/MutateESCorrVector.java
@@ -16,7 +16,7 @@ import java.util.ArrayList;
* updates the velocity by rotation and scaling, and then mutates the individual
* by adding the velocity. This was used for a particle filter localization problem
* and is less useful in general.
- *
+ *
* Rotation vectors are normal distributed with mean zero, scaling factors are
* log-normally distributed around mean 1. This means that the averaged expected change
* of the mutation vector is zero. The smaller the deviations, the higher the correlations
diff --git a/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java
index 7d370d70..ca0f20d4 100644
--- a/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java
+++ b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java
@@ -24,7 +24,7 @@ import java.io.Serializable;
* - N.Hansen & S.Kern 2004: Evaluating the CMA Evolution Strategy on Multimodal Test Functions.
* Parallel Problem Solving from Nature 2004.
* - For the stopping criteria: Auger&Hansen, CEC '05, A Restart CMA ES with increasing population size.
- *
+ *
* The implementation uses a structure for keeping all adaptive parameters, CMAParamSet, which is stored
* in the populations, so that in principle, multi-modal optimization with several populations becomes possible.
* This of course requires proper handling of the generational cycle, i.e., new generations should be cloned from
diff --git a/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java b/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java
index 6f1ac2f2..6066b7f5 100644
--- a/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java
+++ b/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java
@@ -10,7 +10,7 @@ import eva2.util.annotation.Description;
/**
- *
+ *
* Mutates a permutation by inversion a part of the permutation.
*
* Example:
diff --git a/src/eva2/optimization/operator/nichepso/absorption/ConsiderPBestAbsorptionStrategy.java b/src/eva2/optimization/operator/nichepso/absorption/ConsiderPBestAbsorptionStrategy.java
index 9102ae7a..fcde02a1 100644
--- a/src/eva2/optimization/operator/nichepso/absorption/ConsiderPBestAbsorptionStrategy.java
+++ b/src/eva2/optimization/operator/nichepso/absorption/ConsiderPBestAbsorptionStrategy.java
@@ -12,11 +12,8 @@ public class ConsiderPBestAbsorptionStrategy extends StandardAbsorptionStrategy
/**
- * @tested true if
- * the subswarm is active and
- * the particle lies in the radius of the subswarm and
+ * True if the subswarm is active and the particle lies in the radius of the subswarm and
* the particles pbest is not better than the subswarms gbest (this would "pull the subswarm away")
- * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.StandardAbsorptionStrategy#shouldAbsorbParticleIntoSubswarm(javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization)
*/
@Override
public boolean shouldAbsorbParticleIntoSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) {
@@ -30,7 +27,6 @@ public class ConsiderPBestAbsorptionStrategy extends StandardAbsorptionStrategy
* @param indy
* @param subswarm
* @return
- * @tested
*/
private boolean absorbtionConstraintViolation(AbstractEAIndividual indy, ParticleSubSwarmOptimization subswarm) {
AbstractEAIndividual indysPBest = (AbstractEAIndividual) indy.getData("PersonalBestKey");
diff --git a/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java b/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java
index a32a0d4f..68047303 100644
--- a/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java
+++ b/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java
@@ -19,20 +19,9 @@ public class GenerateNeighborSubswarmCreationStrategy extends
private double mu = 0.1;
-/**********************************************************************************************************************
- * shouldCreateSubswarm
- */
-
- // same as in StandardSubswarmCreationStrategy
-
-/**********************************************************************************************************************
- * createSubswarm
- */
-
/**
* @tested creates a subswarm from the given particle and its neighbor in the mainswarm.
* If the neighbors pbest is better than the particles pbest, a new neighbor is generated.
- * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.StandardSubswarmCreationStrategy#createSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization)
*/
@Override
public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) {
diff --git a/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java b/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java
index d5812b04..b00d2b17 100644
--- a/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java
+++ b/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java
@@ -8,7 +8,7 @@ import eva2.optimization.population.Population;
* the first one to retrieve an array of strings with the canonical names of the controlled parameters,
* and the second one to produce an object array of the same length with the values to be assigned
* at the iteration. If there is no iteration known, iteration counts will be set to -1.
- *
+ *
* This class can be used to implement strategies to adapt multiple parameters within one strategy.
* For single parameter adaption, better use the ParamAdaption inheritance tree and the ParameterControlManager class.
*
diff --git a/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java b/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java
index 3052b1c7..77b86284 100644
--- a/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java
+++ b/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java
@@ -15,7 +15,7 @@ import java.util.LinkedList;
* if it was always infeasible, the penalty factor is increased. For other cases, the penalty remains the same.
* This is plausible for the typical case that the optimum lies near the constraint boundary, however it makes
* the fitness function change dynamically based only on the positions of last best indidivuals.
- *
+ *
* The authors advise to select betaInc != 1./betaDec to avoid cycling.
*/
@Description("Adapt a constraint's penalty factor (esp. fitness based) if the population contained only valid or only invalid individuals for some generations.")
diff --git a/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java b/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java
index 207036b6..4dbbac8b 100644
--- a/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java
+++ b/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java
@@ -8,7 +8,7 @@ import eva2.optimization.population.Population;
* an update is triggered after every optimize call. This allows parameters of the object to be
* adapted dynamically, such as linearly decreasing weights or control parameters. In case of PSO,
* this may be the linearly decreasing inertia weight or the activation feedback control mechanism.
- *
+ *
* Notice how Processor handles parameter control. For now, a controlled object must implement
* the method getParamControl() which is to return either an InterfaceParameterControl or an array
* of Objects which should either be instances of InterfaceParameterControl or
@@ -22,7 +22,7 @@ public interface InterfaceParameterControl {
/**
* Make a deep copy of the object.
*
- * @return
+ * @return Deep copy
*/
public Object clone();
@@ -43,9 +43,10 @@ public interface InterfaceParameterControl {
/**
* For a given runtime (maxIteration) and current iteration, update the parameters of the object.
*
- * @param obj
- * @param iteration
- * @param maxIteration
+ * @param obj Object
+ * @param pop Population
+ * @param iteration Iteration
+ * @param maxIteration Maximum Iteration
*/
public void updateParameters(Object obj, Population pop, int iteration, int maxIteration);
@@ -53,7 +54,7 @@ public interface InterfaceParameterControl {
* If no runtime in terms of iterations can be specified, the parameter control may try to infer
* the state from the object itself.
*
- * @param obj
+ * @param obj Object
*/
public void updateParameters(Object obj);
}
diff --git a/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java b/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java
index 59b68ecc..e25c64d9 100644
--- a/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java
+++ b/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java
@@ -13,7 +13,7 @@ import java.io.Serializable;
* here is simply the average relative velocity of the particles.
* The target activity decreases with time, and if the current activity is too low (high), the
* inertia is increased (decreased) so that the activity approximates the target activity.
- *
+ *
* The original authors used an absolute velocity measure and FIPS which is not implemented in EvA2 so far.
* However, after some initial tests, this version seems
* to work ok, although it depends on the defined target activity. I am not convinced that in general it is
diff --git a/src/eva2/optimization/operator/postprocess/PostProcess.java b/src/eva2/optimization/operator/postprocess/PostProcess.java
index 308f998f..0bd3a8cb 100644
--- a/src/eva2/optimization/operator/postprocess/PostProcess.java
+++ b/src/eva2/optimization/operator/postprocess/PostProcess.java
@@ -641,7 +641,7 @@ public class PostProcess {
* At the moment, the function calls are distributed evenly between all candidate solutions. This could be
* improved by checking the convergence state in the future. The given terminator will be applied to each
* candidate sub-population anew. If the terminator is null, 10*n steps will be performed on each candidate.
- *
+ *
* A double value is added to each solution individual that replaces its ancestor candidate, using the key
* PostProcess.movedDistanceKey.
* It indicates the phenotype distance the found solution has moved relatively to the original candidate.
@@ -1123,7 +1123,7 @@ public class PostProcess {
* epsilon[k] and discarded. The number of solutions
* which are accurate by epsilon[k] are returned in the integer array. Optionally, the refined solutions
* are added to an array of histograms.
- *
+ *
* For refining, either known optima are used or {@link AbstractOptimizationProblem}.extractPotentialOptima()
* is called.
*
diff --git a/src/eva2/optimization/operator/selection/probability/SelProbStandard.java b/src/eva2/optimization/operator/selection/probability/SelProbStandard.java
index 5dc5c889..8691ef8f 100644
--- a/src/eva2/optimization/operator/selection/probability/SelProbStandard.java
+++ b/src/eva2/optimization/operator/selection/probability/SelProbStandard.java
@@ -5,7 +5,7 @@ import eva2.util.annotation.Description;
/**
* A eva2.problems.simple sum to calculate the selection probability.
- *
+ *
* p(i is selected) = exp(-fitness(i))/sum_j(exp(-fitness(j)))
*/
@Description("This is a standard normation method using the exp function.")
diff --git a/src/eva2/optimization/statistics/AbstractStatistics.java b/src/eva2/optimization/statistics/AbstractStatistics.java
index 8773f318..401f3f26 100644
--- a/src/eva2/optimization/statistics/AbstractStatistics.java
+++ b/src/eva2/optimization/statistics/AbstractStatistics.java
@@ -26,17 +26,17 @@ import java.util.*;
* updated per iteration in createNextGenerationPerformed and reported to listeners in stopOptimizationPerformed.
* Several different verbosity levels are regarded.
* The method plotCurrentResults should be implemented to plot further results per iteration.
- *
+ *
* All displayable data is now routed through a single pipeline, which consists in a
* list of Objects assembled in the getOutputValues method. This allows all eva2.problems.simple data types which are
* provided by the external informer instances to be handled uniformly to the internally collected data, and
* thus they can be plotted and text-dumped in the same manner.
* Basic fields are identified by the enum GraphSelectionEnum and are available independently of additional
* informer instances.
- *
+ *
* Depending on the field selection state and the informers, the list of data fields is dynamically altered,
* however changes during a multi-run are ignored, since the potential of inconsistencies is too high.
- *
+ *
* Listeners implementing InterfaceTextListener receive String output (human readable).
* Listeners implementing InterfaceStatisticsListener receive the raw data per iteration.
*/
diff --git a/src/eva2/optimization/statistics/OptimizationJob.java b/src/eva2/optimization/statistics/OptimizationJob.java
index 6a4b20fb..a755ed08 100644
--- a/src/eva2/optimization/statistics/OptimizationJob.java
+++ b/src/eva2/optimization/statistics/OptimizationJob.java
@@ -5,16 +5,17 @@ import eva2.tools.StringSelection;
import java.io.Serializable;
import java.util.List;
+import java.util.logging.Logger;
/**
* An OptimizationJob is a set of optimization parameters and potential results from the statistics class.
* Each job has a unique ID and may have been completely finished or not. Once finished, the
* framework should guarantee that the job is removed as a statistics listener.
- *
+ *
* A job contains data fields of a multi-run experiment and header strings describing the data.
*/
public class OptimizationJob implements Serializable, InterfaceStatisticsListener {
-
+ private static final Logger LOGGER = Logger.getLogger(OptimizationJob.class.getName());
private InterfaceOptimizationParameters params = null;
private String[] fieldHeaders = null;
private List