diff --git a/src/main/java/eva2/OptimizerFactory.java b/src/main/java/eva2/OptimizerFactory.java index 09c1c7c2..16272c83 100644 --- a/src/main/java/eva2/OptimizerFactory.java +++ b/src/main/java/eva2/OptimizerFactory.java @@ -47,11 +47,11 @@ import java.util.List; * optimization procedures in EvA2. The arguments passed to the methods * initialize the respective optimization procedure. To perform an optimization * one has to do the following: - * + * {@code * InterfaceOptimizer optimizer = OptimizerFactory.createCertainOptimizer(arguments); * EvaluationTerminator terminator = new EvaluationTerminator(numOfFitnessCalls); * while (!terminator.isTerminated(optimizer.getPopulation())) optimizer.optimize(); - * + * } */ public class OptimizerFactory { @@ -323,7 +323,7 @@ public class OptimizerFactory { * This method creates a Hill Climber algorithm with a default fixed-size * mutation. * - * @param pop The size of the population + * @param popSize The size of the population * @param problem The problem to be optimized * @param listener * @return An optimization procedure that performs hill climbing. @@ -715,8 +715,8 @@ public class OptimizerFactory { * Use default random seed and the population size of the optimizer. * * @param opt - * @param popSize * @param problem + * @param term * @return * @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem, * long, InterfaceTerminator) @@ -1117,7 +1117,7 @@ public class OptimizerFactory { /** * Add a new InterfaceTerminator to the current user-defined optimizer in a * boolean combination. The old and the given terminator will be combined as - * in (TOld && TNew) if bAnd is true, and as in (TOld || TNew) if bAnd is + * in (TOld && TNew) if bAnd is true, and as in (TOld || TNew) if bAnd is * false. If there was no user-defined terminator (or it was set to null) * the new one is used without conjunction. * @@ -1327,7 +1327,6 @@ public class OptimizerFactory { * @param evalCycle * @param popSize * @param minImprovement - * @param method * @param sigmaClust * @return */ @@ -1500,7 +1499,7 @@ public class OptimizerFactory { * A standard niching ES which employs predefined values and standard ES * variation operators. * - * @param problem + * @param prob * @return */ public static OptimizationParameters standardNichingEs(AbstractOptimizationProblem prob) { @@ -1513,7 +1512,7 @@ public class OptimizerFactory { /** * A niching ES. * - * @param problem + * @param prob * @return */ public static OptimizationParameters createNichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak, int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) { diff --git a/src/main/java/eva2/gui/SplashScreen.java b/src/main/java/eva2/gui/SplashScreen.java index 8638a9e2..b3885f42 100644 --- a/src/main/java/eva2/gui/SplashScreen.java +++ b/src/main/java/eva2/gui/SplashScreen.java @@ -32,7 +32,7 @@ class SplashScreen extends JWindow { * 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 + * {@code dispose} for the splash screen must be performed in the event * dispatch thread. */ public void splash() { diff --git a/src/main/java/eva2/gui/SwingWorker.java b/src/main/java/eva2/gui/SwingWorker.java index d4ba123f..bae697ad 100644 --- a/src/main/java/eva2/gui/SwingWorker.java +++ b/src/main/java/eva2/gui/SwingWorker.java @@ -59,23 +59,23 @@ public abstract class SwingWorker { } /** - * Compute the value to be returned by the get method. + * Compute the value to be returned by the {@code get} method. */ public abstract Object construct(); /** * Called on the event dispatching thread (not on the worker thread) - * after the construct method has returned. + * after the {@code construct} method has returned. */ public void finished() { } /** - * Return the value created by the construct method. + * Return the value created by the {@code construct} method. * Returns null if either the constructing thread or the current * thread was interrupted before a value was produced. * - * @return the value created by the construct method + * @return the value created by the {@code construct} method */ public Object get() { while (true) { @@ -93,7 +93,7 @@ public abstract class SwingWorker { } /** - * Start a thread that will call the construct method + * Start a thread that will call the {@code construct} method * and then exit. */ public SwingWorker() { diff --git a/src/main/java/eva2/gui/plot/DPointSetMultiIcon.java b/src/main/java/eva2/gui/plot/DPointSetMultiIcon.java index e1228422..7165ba0d 100644 --- a/src/main/java/eva2/gui/plot/DPointSetMultiIcon.java +++ b/src/main/java/eva2/gui/plot/DPointSetMultiIcon.java @@ -150,9 +150,9 @@ public class DPointSetMultiIcon extends DComponent { } /** - * method returns the nearest DPoint in this DPointSet. + * method returns the nearest {@code DPoint} in this {@code DPointSet}. * - * @return the nearest DPoint + * @return the nearest {@code DPoint} */ public DPoint getNearestDPoint(DPoint point) { int minIndex = getNearestDPointIndex(point); @@ -169,9 +169,9 @@ public class DPointSetMultiIcon extends DComponent { } /** - * method returns the index to the nearest DPoint in this DPointSet. + * method returns the index to the nearest {@code DPoint} in this {@code DPointSet}. * - * @return the index to the nearest DPoint. -1 if no nearest DPoint was found. + * @return the index to the nearest {@code DPoint}. -1 if no nearest {@code DPoint} was found. */ public int getNearestDPointIndex(DPoint point) { double minValue = Double.MAX_VALUE; diff --git a/src/main/java/eva2/optimization/individuals/AbstractEAIndividual.java b/src/main/java/eva2/optimization/individuals/AbstractEAIndividual.java index 3e877de9..bd166c3f 100644 --- a/src/main/java/eva2/optimization/individuals/AbstractEAIndividual.java +++ b/src/main/java/eva2/optimization/individuals/AbstractEAIndividual.java @@ -497,8 +497,6 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java. /** * Allows marking an individual as infeasible if fitness penalty is used. - * - * @return */ public void setMarkPenalized(boolean p) { isPenalized = p; diff --git a/src/main/java/eva2/optimization/individuals/EAIndividualComparator.java b/src/main/java/eva2/optimization/individuals/EAIndividualComparator.java index 6bc473fc..caf6d25c 100644 --- a/src/main/java/eva2/optimization/individuals/EAIndividualComparator.java +++ b/src/main/java/eva2/optimization/individuals/EAIndividualComparator.java @@ -49,7 +49,7 @@ public class EAIndividualComparator implements Comparator, Serializable /** * Constructor for a specific fitness criterion in the multi-objective case. - * For comparison, only the given fitness criterion is used if it is >= 0. + * For comparison, only the given fitness criterion is used if it is >= 0. * * @param fitnessCriterion */ @@ -59,7 +59,7 @@ public class EAIndividualComparator implements Comparator, Serializable /** * Constructor for a specific fitness criterion in the multi-objective case. - * For comparison, only the given fitness criterion is used if it is >= 0. + * For comparison, only the given fitness criterion is used if it is >= 0. * If preferFeasible is true, feasible individuals will always be prefered. * * @param fitIndex diff --git a/src/main/java/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java b/src/main/java/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java index 5ac30542..c3116d8f 100644 --- a/src/main/java/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java +++ b/src/main/java/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java @@ -274,7 +274,6 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme * This method allows you to set the double data. * * @param doubleData The new double data. - * @see InterfaceDataTypeDouble.SetDoubleData() */ @Override public void setDoublePhenotype(double[] doubleData) { @@ -286,7 +285,6 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme * memetic algorithms. * * @param doubleData The new double data. - * @see InterfaceDataTypeDouble.SetDoubleDataLamarckian() */ @Override public void setDoubleGenotype(double[] doubleData) { @@ -341,7 +339,6 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme * This method allows you to set the binary data. * * @param binaryData The new binary data. - * @see InterfaceDataTypeBinary.SetBinaryData() */ @Override public void setBinaryPhenotype(BitSet binaryData) { @@ -353,16 +350,12 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme * memetic algorithms. * * @param binaryData The new binary data. - * @see InterfaceBinaryData.setBinaryDataLamarckian() */ @Override public void setBinaryGenotype(BitSet binaryData) { this.binaryIndividual.setBinaryGenotype(binaryData); } -/********************************************************************************************************************** - * These are for GUI - */ /** * This method allows the CommonJavaObjectEditorPanel to read the * name to the current object. diff --git a/src/main/java/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java b/src/main/java/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java index 334abb24..70b142f6 100644 --- a/src/main/java/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java +++ b/src/main/java/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java @@ -169,7 +169,7 @@ public class ClusteringDynPeakIdent implements InterfaceClustering, java.io.Seri * which are not dominated by other individuals within distance rho. * Note that the returned set may be smaller than q. * - * @param pop + * @param metric Distance Metric * @param q the number of peaks to be identified * @param rho the niche radius * @return the dynamic peak set diff --git a/src/main/java/eva2/optimization/operator/crossover/CrossoverESUNDX.java b/src/main/java/eva2/optimization/operator/crossover/CrossoverESUNDX.java index c47f418c..9be2d3bb 100644 --- a/src/main/java/eva2/optimization/operator/crossover/CrossoverESUNDX.java +++ b/src/main/java/eva2/optimization/operator/crossover/CrossoverESUNDX.java @@ -17,7 +17,7 @@ import java.util.ArrayList; /** * This is the Unimodal Normal Distribution Crossover by Ono and Kobayashi, 1997. Cf.: * - * @INPROCEEDINGS{Ono1997, author = {Ono, Isao and Kobayashi, Shigenobu}, + * INPROCEEDINGS{Ono1997, author = {Ono, Isao and Kobayashi, Shigenobu}, * title = {{A Real Coded Genetic Algorithm for Function Optimization Using Unimodal Normal Distributed Crossover}}, * booktitle = {ICGA}, * year = {1997}, diff --git a/src/main/java/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java b/src/main/java/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java index 998e4904..0e5f1cc4 100644 --- a/src/main/java/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java +++ b/src/main/java/eva2/optimization/operator/initialization/GAGIInitializeSegmentwise.java @@ -21,7 +21,7 @@ import java.util.BitSet; * 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, + * segment length s. Firstly, a fixed number of bits (k<=s) is set per segment, * so each segment has equal cardinality. * Secondly, an int-array can be specified which defines possibly varying k_i for * each segment i, so different segments may have different cardinality. The array diff --git a/src/main/java/eva2/optimization/operator/mutation/MutateESPathLengthAdaption.java b/src/main/java/eva2/optimization/operator/mutation/MutateESPathLengthAdaption.java index fd5b8816..769712c2 100644 --- a/src/main/java/eva2/optimization/operator/mutation/MutateESPathLengthAdaption.java +++ b/src/main/java/eva2/optimization/operator/mutation/MutateESPathLengthAdaption.java @@ -12,7 +12,7 @@ import eva2.util.annotation.Description; * ES mutation with path length control. The step size (single sigma) is * adapted using the evolution path length by adapting the real path length * to the expected path length in for uncorrelated single steps. - * See Hansen&Ostermeier 2001, Eqs. 16,17. + * See Hansen&Ostermeier 2001, Eqs. 16,17. */ @Description("The single step size is controlled using the evolution path.") public class MutateESPathLengthAdaption implements InterfaceMutation, java.io.Serializable { diff --git a/src/main/java/eva2/optimization/operator/mutation/MutateESRankMuCMA.java b/src/main/java/eva2/optimization/operator/mutation/MutateESRankMuCMA.java index 0851353c..605f6d59 100644 --- a/src/main/java/eva2/optimization/operator/mutation/MutateESRankMuCMA.java +++ b/src/main/java/eva2/optimization/operator/mutation/MutateESRankMuCMA.java @@ -21,9 +21,9 @@ import java.io.Serializable; /** * Implementing CMA ES with rank-mu-update and weighted recombination. More information can be found here: * - http://www.bionik.tu-berlin.de/user/niko/cmaesintro.html - * - N.Hansen & S.Kern 2004: Evaluating the CMA Evolution Strategy on Multimodal Test Functions. + * - 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. + * - 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. @@ -105,7 +105,7 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In * Perform the main adaption of sigma and C using evolution paths. * The evolution path is deduced from the center of the selected population compared to the old * mean value. - * See Hansen&Kern 04 for further information. + * See Hansen&Kern 04 for further information. * * @param oldGen * @param selectedP @@ -702,7 +702,7 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In } /** - * From Auger&Hansen, CEC '05, stopping criterion TolX. + * From Auger&Hansen, CEC '05, stopping criterion TolX. * * @param tolX * @return @@ -720,7 +720,7 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In } /** - * From Auger&Hansen, CEC '05, stopping criterion noeffectaxis. + * From Auger&Hansen, CEC '05, stopping criterion noeffectaxis. * * @param d * @param gen @@ -743,7 +743,7 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In } /** - * From Auger&Hansen, CEC '05, stopping criterion noeffectcoord. + * From Auger&Hansen, CEC '05, stopping criterion noeffectcoord. * * @param d * @return @@ -760,11 +760,11 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In } /** - * Test condition of C (Auger&Hansen, CEC '05, stopping criterion conditioncov). - * Return true, if a diagonal entry is <= 0 or >= d. + * Test condition of C (Auger&Hansen, CEC '05, stopping criterion conditioncov). + * Return true, if a diagonal entry is <= 0 or >= d. * * @param d - * @return true, if a diagonal entry is <= 0 or >= d, else false + * @return true, if a diagonal entry is <= 0 or >= d, else false */ public boolean testCCondition(Population pop, double d) { CMAParamSet params = (CMAParamSet) pop.getData(cmaParamsKey); diff --git a/src/main/java/eva2/optimization/operator/mutation/MutateGAGISwapBits.java b/src/main/java/eva2/optimization/operator/mutation/MutateGAGISwapBits.java index 12d7bb79..dc2ab74b 100644 --- a/src/main/java/eva2/optimization/operator/mutation/MutateGAGISwapBits.java +++ b/src/main/java/eva2/optimization/operator/mutation/MutateGAGISwapBits.java @@ -161,12 +161,12 @@ public class MutateGAGISwapBits implements InterfaceMutation, java.io.Serializab /** * Select a random index within the given genotype lying in [iMin,iMax]. If applicable, the given - * value is avoided with certain probility, namely by trying to find a different value for maxTries + * value is avoided with certain probality, namely by trying to find a different value for maxTries * times. * * @param maxTries * @param genotype - * @param maybePreferedValue + * @param avoidValue * @param iMin * @param iMax * @return @@ -182,11 +182,6 @@ public class MutateGAGISwapBits implements InterfaceMutation, java.io.Serializab return k; } -// private int getRandomSecondIndex(int firstIndex, AbstractEAIndividual individual) { -// int genoLen = ((InterfaceGAIndividual)individual).getGenotypeLength(); -// return RNG.randomInt(0, genoLen); -// } - protected Object valueAt(Object genotype, int k) { if (genotype instanceof BitSet) { return ((BitSet) genotype).get(k); diff --git a/src/main/java/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java b/src/main/java/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java index a848056e..18453013 100644 --- a/src/main/java/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java +++ b/src/main/java/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java @@ -14,7 +14,7 @@ import java.util.BitSet; /** * Swap two random bits of a GA individual within subsequences (segments) of fixed length. * If preferPairs is true, unequal pairs - * are picked with some preference (by trying for >= s/2 times, where s is the binary + * are picked with some preference (by trying for >= s/2 times, where s is the binary * segment length). * Multiple mutations per segment can occur if the boolean switch is activated, meaning * that further mutations are performed recursively with p_mut. Thus, the probability diff --git a/src/main/java/eva2/optimization/operator/mutation/MutateOBGAInversion.java b/src/main/java/eva2/optimization/operator/mutation/MutateOBGAInversion.java index 6066b7f5..50b39cb8 100644 --- a/src/main/java/eva2/optimization/operator/mutation/MutateOBGAInversion.java +++ b/src/main/java/eva2/optimization/operator/mutation/MutateOBGAInversion.java @@ -15,7 +15,7 @@ import eva2.util.annotation.Description; *

* Example: *

- *                                                                1 2 | 3 4 5 | 6 7 8 9 ->
+ *                                                                1 2 | 3 4 5 | 6 7 8 9 ->
  *                                                                1 2 | 5 4 3 | 6 7 8 9
  *                                                       
*/ @@ -30,8 +30,10 @@ public class MutateOBGAInversion implements java.io.Serializable, InterfaceMutat return this; } - /** This method allows you to evaluate wether two mutation operators + /** + * This method allows you to evaluate whether two mutation operators * are actually the same. + * * @param mutator The other mutation operator */ @Override diff --git a/src/main/java/eva2/optimization/operator/nichepso/absorption/EuclideanDiversityAbsorptionStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/absorption/EuclideanDiversityAbsorptionStrategy.java index 6833fb13..4375203c 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/absorption/EuclideanDiversityAbsorptionStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/absorption/EuclideanDiversityAbsorptionStrategy.java @@ -35,15 +35,11 @@ public class EuclideanDiversityAbsorptionStrategy extends StandardAbsorptionStra epsilon = eps; } -/********************************************************************************************************************** - * shouldAbsorbParticleIntoSubswarm - */ /** - * @tested true if - * the subswarm is active and - * the particle lies in the radius of the subswarm and - * the diversity (mean distance from the gbest) of the subswarm < epsilon - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.StandardAbsorptionStrategy#shouldAbsorbParticleIntoSubswarm(javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + * true if + * the sub-swarm is active and + * the particle lies in the radius of the sub-swarm and + * the diversity (mean distance from the gbest) of the sub-swarm < epsilon */ @Override public boolean shouldAbsorbParticleIntoSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) { @@ -58,10 +54,6 @@ public class EuclideanDiversityAbsorptionStrategy extends StandardAbsorptionStra return meanDistanceFromGBestPos < getEpsilon(); } - /** - * ******************************************************************************************************************* - * setter, getter - */ public void setEpsilon(double epsilon) { this.epsilon = epsilon; } diff --git a/src/main/java/eva2/optimization/operator/nichepso/absorption/InterfaceAbsorptionStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/absorption/InterfaceAbsorptionStrategy.java index eee45ac9..2d20186a 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/absorption/InterfaceAbsorptionStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/absorption/InterfaceAbsorptionStrategy.java @@ -9,12 +9,11 @@ import eva2.optimization.strategies.ParticleSubSwarmOptimization; public interface InterfaceAbsorptionStrategy { /** - * @param indy + * @param indy Individual * @param subswarm the swarm indy will be absorbed from * @param mainswarm the swarm indy currently belongs to * (population statistics from that swarm may be used to decide whether indy should be absorbed) - * @return - * @tested decides whether indy should be absorbed into the subswarm according to the absorption strategie + * @return Decides whether indy should be absorbed into the sub-swarm according to the absorption strategy */ boolean shouldAbsorbParticleIntoSubswarm( AbstractEAIndividual indy, @@ -22,10 +21,11 @@ public interface InterfaceAbsorptionStrategy { ParticleSubSwarmOptimization mainswarm); /** - * @param indy + * Absorbs indy according to the absorption strategy + * + * @param indy Individual * @param subswarm the swarm indy will be absorbed from * @param mainswarm the swarm indy currently belongs to - * @tested absorbs indy according to the absorbtion strategy */ void absorbParticle( AbstractEAIndividual indy, diff --git a/src/main/java/eva2/optimization/operator/nichepso/absorption/StandardAbsorptionStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/absorption/StandardAbsorptionStrategy.java index b969d1a0..87413f2f 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/absorption/StandardAbsorptionStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/absorption/StandardAbsorptionStrategy.java @@ -22,10 +22,9 @@ public class StandardAbsorptionStrategy implements InterfaceAbsorptionStrategy, } /** - * @tested true if + * tested true if * the subswarm is active and * the particle lies in the radius of the subswarm - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceAbsorptionStrategy#shouldAbsorbParticleIntoSubswarm(javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) */ @Override public boolean shouldAbsorbParticleIntoSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) { @@ -43,20 +42,13 @@ public class StandardAbsorptionStrategy implements InterfaceAbsorptionStrategy, return dist <= R; } - -/********************************************************************************************************************** - * absorbParticle - */ - /** - * @tested junit - * adds indy to an active subswarm, then removes indy from the mainswarm. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceAbsorptionStrategy#absorbParticle(javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + * Adds indy to an active sub-swarm, then removes indy from the main-swarm. */ @Override public void absorbParticle(AbstractEAIndividual indy, ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) { if (!subswarm.isActive()) { - System.out.println("absorbParticle: trying to absorb a particle into an inactive subswarm."); + System.out.println("absorbParticle: trying to absorb a particle into an inactive sub-swarm."); return; } subswarm.add(indy); diff --git a/src/main/java/eva2/optimization/operator/nichepso/deactivation/ImprovementDeactivationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/deactivation/ImprovementDeactivationStrategy.java index b58dfb61..650d54ac 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/deactivation/ImprovementDeactivationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/deactivation/ImprovementDeactivationStrategy.java @@ -83,9 +83,8 @@ public class ImprovementDeactivationStrategy implements InterfaceDeactivationStr } /** - * @tested true if the subswarm is active and all particles are completely converged - * (i.e. the stddev over the past 3 iterations is < epsilson) - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#shouldDeactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + * True if the subswarm is active and all particles are completely converged + * (i.e. the stddev over the past 3 iterations is < epsilson) */ @Override public boolean shouldDeactivateSubswarm(ParticleSubSwarmOptimization subswarm) { @@ -98,14 +97,9 @@ public class ImprovementDeactivationStrategy implements InterfaceDeactivationStr return (isConverged(subswarm.getPopulation())); } -/********************************************************************************************************************** - * deactivateSubswarm - */ - /** - * @tested the subswarm is deactivated and the particles indices are returned. They are + * The subswarm is deactivated and the particles indices are returned. They are * to be reinitialized into the mainswarm. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#deactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) */ @Override public int[] deactivateSubswarm(ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) { @@ -126,11 +120,6 @@ public class ImprovementDeactivationStrategy implements InterfaceDeactivationStr return particleIndices; } - /** - * ******************************************************************************************************************* - * getter, setter - */ - public void setEpsilon(double epsilon) { this.epsilon = epsilon; } diff --git a/src/main/java/eva2/optimization/operator/nichepso/deactivation/InterfaceDeactivationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/deactivation/InterfaceDeactivationStrategy.java index 1abb2059..ebfdd24e 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/deactivation/InterfaceDeactivationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/deactivation/InterfaceDeactivationStrategy.java @@ -8,18 +8,20 @@ import eva2.optimization.strategies.ParticleSubSwarmOptimization; public interface InterfaceDeactivationStrategy { /** + * Decides whether a subswarm should be deactivated according to the deactivation strategy + * * @param subswarm * @return - * @tested decides whether a subswarm should be deacitvated according to the deactivation strategy */ boolean shouldDeactivateSubswarm(ParticleSubSwarmOptimization subswarm); /** + * Deactivates a given subswarm. + * What happens to the particles in this subswarm depends on the concrete strategy. + * * @param subswarm * @param mainswarm - * @tested deactivates a given subswarm. - * What happens to the particles in this subswarm depends on the concrete strategy. - * Return the list of indices to be reinitialized or null. + * @return the list of indices to be reinitialized or null. */ int[] deactivateSubswarm(ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm); diff --git a/src/main/java/eva2/optimization/operator/nichepso/deactivation/StandardDeactivationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/deactivation/StandardDeactivationStrategy.java index 41e1ffc9..275bde8d 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/deactivation/StandardDeactivationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/deactivation/StandardDeactivationStrategy.java @@ -21,10 +21,6 @@ public class StandardDeactivationStrategy implements InterfaceDeactivationStrate private double epsilon = 0.0001; private int stdDevHorizon = 3; - /** - * ******************************************************************************************************************* - * ctors - */ public StandardDeactivationStrategy() { } @@ -51,7 +47,6 @@ public class StandardDeactivationStrategy implements InterfaceDeactivationStrate /** * @param pop * @return - * @tested */ public boolean areAllConverged(Population pop) { for (int i = 0; i < pop.size(); ++i) { @@ -72,9 +67,8 @@ public class StandardDeactivationStrategy implements InterfaceDeactivationStrate } /** - * @tested true if the subswarm is active and all particles are completely converged - * (i.e. the stddev over the past 3 iterations is < epsilson) - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#shouldDeactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + * True if the subswarm is active and all particles are completely converged + * (i.e. the stddev over the past 3 iterations is < epsilson) */ @Override public boolean shouldDeactivateSubswarm(ParticleSubSwarmOptimization subswarm) { @@ -87,14 +81,10 @@ public class StandardDeactivationStrategy implements InterfaceDeactivationStrate return (areAllConverged(subswarm.getPopulation())); } -/********************************************************************************************************************** - * deactivateSubswarm - */ /** - * @tested the subswarm is deactivated and the particles indices are returned. They are + * The subswarm is deactivated and the particles indices are returned. They are * to be reinitialized into the mainswarm. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#deactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) */ @Override public int[] deactivateSubswarm(ParticleSubSwarmOptimization subswarm, ParticleSubSwarmOptimization mainswarm) { @@ -115,11 +105,6 @@ public class StandardDeactivationStrategy implements InterfaceDeactivationStrate return particleIndices; } - /** - * ******************************************************************************************************************* - * getter, setter - */ - public void setEpsilon(double epsilon) { this.epsilon = epsilon; } diff --git a/src/main/java/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java index 765009da..f37394cc 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java @@ -31,7 +31,7 @@ public class ScatterMergingStrategy extends StandardMergingStrategy { /** * @param i * @param j - * @tested if both active: reinitializes subswarm j back into the main swarm and deletes it from the subswarms. + * if both active: reinitializes subswarm j back into the main swarm and deletes it from the subswarms. * if both inactive: adds population of subswarm j to population of subswarm i, then deletes subswarm j. */ @Override diff --git a/src/main/java/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java index 07790211..a2d91918 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java @@ -41,8 +41,7 @@ public class StandardMergingStrategy implements InterfaceMergingStrategy, java.i } /** - * @tested the subswarms are merged, if they overlap (or are very close) and if they are of equal state - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceMergingStrategie#shouldMergeSubswarms(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + * the subswarms are merged, if they overlap (or are very close) and if they are of equal state */ @Override public boolean shouldMergeSubswarms(ParticleSubSwarmOptimization subswarm1, ParticleSubSwarmOptimization subswarm2) { @@ -108,7 +107,6 @@ public class StandardMergingStrategy implements InterfaceMergingStrategy, java.i /** * @param i * @param j - * @tested junit * adds population of subswarm j to population of subswarm i, then deletes subswarm j. */ @Override diff --git a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java index 68047303..39ae27af 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java @@ -20,7 +20,7 @@ public class GenerateNeighborSubswarmCreationStrategy extends private double mu = 0.1; /** - * @tested creates a subswarm from the given particle and its neighbor in the mainswarm. + * 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. */ @Override diff --git a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java index ba86ef6d..0c892628 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java @@ -9,22 +9,25 @@ import eva2.optimization.strategies.ParticleSubSwarmOptimization; public interface InterfaceSubswarmCreationStrategy { /** + * Decides whether a subswarm should be created for the given indy and mainswarm according to the creation strategy + * * @param indy * @param mainswarm * @return - * @tested decides whether a subswarm should be created for the given indy and mainswarm according to the creation strategie */ boolean shouldCreateSubswarm( AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm); /** - * @param preparedSubswarm a subswarm which is appropriatly prepared + * Creates a subswarm from indy, the details depend on the concrete strategy. + * + * @param preparedSubswarm a subswarm which is appropriately prepared * (ie its problem, optimization strategy etc. are set correctly from the "meta-optimizer") - * Afterwards the subswarm containes the generated particles + * Afterwards the subswarm contains the generated particles * @param indy a particle from which a subswarm should be created * @param mainSwarm the main swarm which contains indy - * @tested creates a subswarm from indy, the details depend on the concrete strategy. + * Creates a subswarm from indy, the details depend on the concrete strategy. */ void createSubswarm( ParticleSubSwarmOptimization preparedSubswarm, diff --git a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java index 8c2408b8..cf49648a 100644 --- a/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java +++ b/src/main/java/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java @@ -36,9 +36,7 @@ public class StandardSubswarmCreationStrategy implements InterfaceSubswarmCreati /** * @param indy main swarm particle - * @return - * @tested junit - * true if the stddev of the particles fitness < delta and no constraints are violated + * @return true if the stddev of the particles fitness < delta and no constraints are violated */ @Override public boolean shouldCreateSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm) { @@ -54,9 +52,8 @@ public class StandardSubswarmCreationStrategy implements InterfaceSubswarmCreati /** * @param indy main swarm particle - * @return - * @tested junit - * true, if reasons exist why no subswarm should be created from indy. + * @return true, if reasons exist why no subswarm should be created from indy. + * * Reasons like: * poor fitness (not implemented), * convergence on plateau (not implemented), @@ -74,14 +71,10 @@ public class StandardSubswarmCreationStrategy implements InterfaceSubswarmCreati return result; } -/********************************************************************************************************************** - * createSubswarm - */ /** - * @tested creates a subswarm from the given particle and its neighbor in the mainswarm, + * Creates a subswarm from the given particle and its neighbor in the mainswarm, * then deletes the two particles from the mainswarm. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceSubswarmCreationStrategy#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/main/java/eva2/optimization/operator/postprocess/PostProcess.java b/src/main/java/eva2/optimization/operator/postprocess/PostProcess.java index d81bc581..1feb43e7 100644 --- a/src/main/java/eva2/optimization/operator/postprocess/PostProcess.java +++ b/src/main/java/eva2/optimization/operator/postprocess/PostProcess.java @@ -156,8 +156,8 @@ public class PostProcess { * or a random subset of the cluster or the best and a random subset. Returns shallow copies! * returnQuota should be in [0,1] and defines, which percentage of individuals of each cluster is kept, however * at least one is kept per cluster. - * lonerMode defines whether loners are discarded, kept, or treated as clusters, meaning they are kept if returnQuota > 0. - * takeOverMode defines whether, of a cluster with size > 1, which n individuals are kept. Either the n best only, + * lonerMode defines whether loners are discarded, kept, or treated as clusters, meaning they are kept if returnQuota > 0. + * takeOverMode defines whether, of a cluster with size > 1, which n individuals are kept. Either the n best only, * or the single best and random n-1, or all n random. * * @param pop @@ -238,9 +238,9 @@ public class PostProcess { * Filter the individuals of a population which have a fitness norm below a given value. * Returns shallow copies! * - * @param pop - * @param fitNorm - * @param bSmaller if true, return individuals with lower or equal, else with higher fitness norm only + * @param pop Population + * @param fitNorm The fitness threshold + * @param bSmallerEq if true, return individuals with lower or equal, else with higher fitness norm only * @return */ public static Population filterFitnessNormed(Population pop, double fitNorm, boolean bSmallerEq) { @@ -436,7 +436,7 @@ public class PostProcess { * Returns the number of function calls really performed by the method and a flag indicating whether the * processing was aborted by the user. Sets the number of function calls * in the population back to the original count. - * If the baseEvals parameter (which should be >= 0) is > 0, then the number of evaluations is set as + * If the baseEvals parameter (which should be >= 0) is > 0, then the number of evaluations is set as * number of evaluations before the optimization using the given terminator. * * @param pop @@ -471,7 +471,7 @@ public class PostProcess { * meaning that typically only one best is returned. * Returns the number of function calls really performed by the method and a flag indicating whether the * processing was aborted by the user. Sets the number of function calls - * in the population back to the original count. If the baseEvals parameter (which should be >= 0) is > 0, + * in the population back to the original count. If the baseEvals parameter (which should be >= 0) is > 0, * then the number of evaluations is set as * number of evaluations before the optimization using the given terminator. * @@ -525,7 +525,7 @@ public class PostProcess { * @param initPerturbation * @param prob * @return - * @see NelderMeadSimplex#createNMSPopulation(candidate, perturbRatio, range, includeCand) + * @see NelderMeadSimplex#createNMSPopulation */ public static Pair localSolverNMS(AbstractEAIndividual cand, int hcSteps, double initPerturbation, AbstractOptimizationProblem prob) { @@ -548,7 +548,7 @@ public class PostProcess { * @param index index of the individual for which to produce the sub population * @param maxRelativePerturbation * @param includeCand - * @see #createPopInSubRange(double, AbstractOptimizationProblem, AbstractEAIndividual) + * @see #createPopInSubRange * @see NelderMeadSimplex#createNMSPopulation(AbstractEAIndividual, double, double[][], boolean) */ public static Population createLSSupPopulation(PostProcessMethod method, AbstractOptimizationProblem problem, Population candidates, int index, double maxRelativePerturbation, boolean includeCand) { @@ -763,7 +763,6 @@ public class PostProcess { * * @param searchBoxLen * @param indy - * @return */ public static void createPopInSubRange(Population destPop, double searchBoxLen, int targetSize, AbstractEAIndividual indy) { @@ -1133,8 +1132,8 @@ public class PostProcess { * @param treatAsUnknown * @param listener * @return - * @see {@link AbstractOptimizationProblem#extractPotentialOptima} - * @see AbstractOptimizationProblem#isPotentialOptimumNMS(AbstractEAIndividual, double, double, int) + * @see AbstractOptimizationProblem#extractPotentialOptima + * @see AbstractOptimizationProblem#isPotentialOptimumNMS */ public static int[] checkAccuracy(AbstractOptimizationProblem prob, Population sols, double[] epsilonPhenoSpace, double extrOptEpsFitConf, double extrOptClustSig, int maxEvals, SolutionHistogram[] solHists, boolean treatAsUnknown, @@ -1225,7 +1224,7 @@ public class PostProcess { /** * Select a local search range for a given method based on the clustering parameter. - * If clustering was deactivated (sigma <= 0), then the default mutation step size is used. + * If clustering was deactivated (sigma <= 0), then the default mutation step size is used. * The specific search method may interpret the search range differently. * * @param method @@ -1254,7 +1253,7 @@ public class PostProcess { /** * Select a perturbation for individual i fitting to the population - avoiding overlap. * In this case, return the third of the minimum distance to the next neighbor in the population. - * The maxPerturb can be given as upper bound of the perturbation if it is > 0. + * The maxPerturb can be given as upper bound of the perturbation if it is > 0. * * @param candidates population of solutions to look at * @param i index of the individual in the population to look at diff --git a/src/main/java/eva2/optimization/operator/postprocess/SolutionHistogram.java b/src/main/java/eva2/optimization/operator/postprocess/SolutionHistogram.java index 0ebc7ada..845344b5 100644 --- a/src/main/java/eva2/optimization/operator/postprocess/SolutionHistogram.java +++ b/src/main/java/eva2/optimization/operator/postprocess/SolutionHistogram.java @@ -168,7 +168,6 @@ public class SolutionHistogram { * @param upperBound upper bound of the fitness interval * @param nBins number of bins * @return an integer array with the number of individuals in each bin - * @see filterFitnessIn() */ public static SolutionHistogram createFitNormHistogram(Population pop, double lowerBound, double upperBound, int nBins, int crit) { SolutionHistogram res = new SolutionHistogram(lowerBound, upperBound, nBins); diff --git a/src/main/java/eva2/optimization/operator/selection/InterfaceSelection.java b/src/main/java/eva2/optimization/operator/selection/InterfaceSelection.java index a5a01db9..19ed652f 100644 --- a/src/main/java/eva2/optimization/operator/selection/InterfaceSelection.java +++ b/src/main/java/eva2/optimization/operator/selection/InterfaceSelection.java @@ -34,7 +34,7 @@ public interface InterfaceSelection { void prepareSelection(Population population); /** - * This method will select >size< individuals from the given + * This method will select *size* individuals from the given * Population. * * @param population The source population where to select from @@ -44,7 +44,7 @@ public interface InterfaceSelection { Population selectFrom(Population population, int size); /** - * This method allows you to select >size< partners for a given Individual + * This method allows you to select *size* partners for a given Individual * * @param dad The already seleceted parent * @param availablePartners The mating pool. diff --git a/src/main/java/eva2/optimization/operator/selection/SelectBestSingle.java b/src/main/java/eva2/optimization/operator/selection/SelectBestSingle.java index 277e7c4d..72a172f0 100644 --- a/src/main/java/eva2/optimization/operator/selection/SelectBestSingle.java +++ b/src/main/java/eva2/optimization/operator/selection/SelectBestSingle.java @@ -48,7 +48,7 @@ public class SelectBestSingle implements InterfaceSelection, java.io.Serializabl } /** - * This method will select >size< individuals from the given + * This method will select *size* individuals from the given * Population. * * @param population The source population where to select from @@ -107,7 +107,7 @@ public class SelectBestSingle implements InterfaceSelection, java.io.Serializabl } /** - * This method allows you to select >size< partners for a given Individual + * This method allows you to select *size* partners for a given Individual * * @param dad The already selected parent * @param availablePartners The mating pool. diff --git a/src/main/java/eva2/optimization/operator/selection/SelectParticleWheel.java b/src/main/java/eva2/optimization/operator/selection/SelectParticleWheel.java index 5abf007e..ebabedcb 100644 --- a/src/main/java/eva2/optimization/operator/selection/SelectParticleWheel.java +++ b/src/main/java/eva2/optimization/operator/selection/SelectParticleWheel.java @@ -20,7 +20,7 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ private boolean obeyDebsConstViolationPrinciple = true; /** - * Comment for serialVersionUID + * Comment for {@code serialVersionUID} */ private static final long serialVersionUID = 1L; private InterfaceSelectionProbability selProbCalculator = new SelProbStandard(); @@ -55,7 +55,7 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ /** * This method will select individuals from the given Population with respect to their * selection propability. This implements a fixed segment roulette wheel selection which ensures - * that every individual which has a selection probability p >= (k/size) is selected k or k+1 times. + * that every individual which has a selection probability p >= (k/size) is selected k or k+1 times. * * @param population The source population where to select from * @param size The number of Individuals to select diff --git a/src/main/java/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java b/src/main/java/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java index 392e8b8a..d679e3b1 100644 --- a/src/main/java/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java +++ b/src/main/java/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java @@ -38,7 +38,7 @@ public class SelProbFitnessSharing extends AbstractSelProb implements java.io.Se * This method computes the selection probability for each individual * in the population. Note: Summed over the complete population the selection * probability sums up to one. Keep in mind that fitness is always to be - * minimizied! Small values for data => big values for selectionprob. + * minimizied! Small values for data => big values for selectionprob. * * @param population The population to compute. * @param data The input data as double[][]. diff --git a/src/main/java/eva2/optimization/operator/selection/probability/SelProbStandard.java b/src/main/java/eva2/optimization/operator/selection/probability/SelProbStandard.java index 47ec9bd6..a3022a76 100644 --- a/src/main/java/eva2/optimization/operator/selection/probability/SelProbStandard.java +++ b/src/main/java/eva2/optimization/operator/selection/probability/SelProbStandard.java @@ -26,7 +26,7 @@ public class SelProbStandard extends AbstractSelProb implements java.io.Serializ * This method computes the selection probability for each individual * in the population. Note: Summed over the complete population the selection * probability sums up to one. Keep in mind that fitness is always to be - * minimizied! Small values for data => big values for selectionprob. + * minimizied! Small values for data => big values for selectionprob. * * @param population The population to compute. * @param data The input data as double[][]. diff --git a/src/main/java/eva2/optimization/population/Population.java b/src/main/java/eva2/optimization/population/Population.java index 18cbaab9..2087cfb8 100644 --- a/src/main/java/eva2/optimization/population/Population.java +++ b/src/main/java/eva2/optimization/population/Population.java @@ -100,7 +100,7 @@ public class Population extends ArrayList implements Popul public static final String NEXT_GENERATION_PERFORMED = "NextGenerationPerformed"; /** - * With autoAging = true #incrGeneration automatically + * With {@code autoAging = true} #incrGeneration automatically * ages individuals. */ private boolean autoAging = true; @@ -485,8 +485,6 @@ public class Population extends ArrayList implements Popul /** * Create a population instance which distributes the individuals according * to a random latin hypercube sampling. - * - * @return */ public static void createRLHSampling(Population pop, boolean fillPop) { if (pop.size() <= 0) { @@ -523,7 +521,6 @@ public class Population extends ArrayList implements Popul * @param cardinality an integer giving the number of (random) bits to set * @param stdDev standard deviation of the cardinality variation (can be * zero to fix the cardinality) - * @return */ public static void createBinCardinality(Population pop, boolean fillPop, int cardinality, int stdDev) { if (pop.size() <= 0) { @@ -630,7 +627,7 @@ public class Population extends ArrayList implements Popul /** * This method will allow you to increment the current number of function - * calls by a number > 1. Notice that it might slightly disturb notification + * calls by a number > 1. Notice that it might slightly disturb notification * if a notifyEvalInterval is set. * * @param d The number of function calls to increment by. @@ -991,7 +988,7 @@ public class Population extends ArrayList implements Popul /** * This method will return the index of the current best individual from the * population in the given fitness component (or using dominance when - * fitIndex < 0). If the population is empty, -1 is returned. + * fitIndex < 0). If the population is empty, -1 is returned. * * @return The index of the best individual. * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator) @@ -1006,7 +1003,7 @@ public class Population extends ArrayList implements Popul /** * This method will return the index of the current best individual from the * population in the given fitness component (or using dominance when - * fitIndex < 0). + * fitIndex < 0). * * @return The index of the best individual. * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator) @@ -1163,12 +1160,12 @@ public class Population extends ArrayList implements Popul * This method returns the n current best individuals from the population, * where the sorting criterion is delivered by an * AbstractEAIndividualComparator. There are less than n individuals - * returned if the population is smaller than n. If n is <= 0, then all + * returned if the population is smaller than n. If n is <= 0, then all * individuals are returned and effectively just sorted by fitness. This * does not check constraints! * * @param n number of individuals to look out for - * @return The m best individuals, where m <= n + * @return The m best individuals, where m <= n */ public Population getBestNIndividuals(int n, int fitIndex) { if (n <= 0 || (n > super.size())) { @@ -1183,12 +1180,12 @@ public class Population extends ArrayList implements Popul * This method returns the n current worst individuals from the population, * where the sorting criterion is delivered by an * AbstractEAIndividualComparator. There are less than n individuals - * returned if the population is smaller than n. If n is <= 0, then all + * returned if the population is smaller than n. If n is <= 0, then all * individuals are returned and effectively just sorted by fitness. This * does not check constraints! * * @param n number of individuals to look out for - * @return The m worst individuals, where m <= n + * @return The m worst individuals, where m <= n */ public Population getWorstNIndividuals(int n, int fitIndex) { Population pop = new Population(n); @@ -1222,7 +1219,7 @@ public class Population extends ArrayList implements Popul * individuals * @param res sorted result population, will be cleared * @param comp the Comparator to use with individuals - * @return The m sorted best or worst individuals, where m <= n + * @param res The m sorted best or worst individuals, where m <= n (will be added to res) */ public void getSortedNIndividuals(int n, boolean bBestOrWorst, Population res, Comparator comp) { if ((n < 0) || (n > super.size())) { @@ -2082,7 +2079,7 @@ public class Population extends ArrayList implements Popul * @param indy * @param d * @param metric - * @return true if d(indy,pop)<=d, else false + * @return true if d(indy,pop)<=d, else false */ public boolean isWithinPopDist(AbstractEAIndividual indy, double d, InterfaceDistanceMetric metric) { Pair closest = Population.getClosestFarthestIndy(indy, this, metric, true); diff --git a/src/main/java/eva2/optimization/strategies/ClusterBasedNichingEA.java b/src/main/java/eva2/optimization/strategies/ClusterBasedNichingEA.java index a065b4b4..47a4f061 100644 --- a/src/main/java/eva2/optimization/strategies/ClusterBasedNichingEA.java +++ b/src/main/java/eva2/optimization/strategies/ClusterBasedNichingEA.java @@ -1184,7 +1184,6 @@ public class ClusterBasedNichingEA extends AbstractOptimizer implements Interfac * the upper limit if the clustering parameter is controlled. * * @param prob - * @param q */ public void setUpperBoundClustDiff(InterfaceProblemDouble prob) { if (caForSpeciesDifferentation instanceof ClusteringDensityBased) { diff --git a/src/main/java/eva2/optimization/strategies/EsDpiNiching.java b/src/main/java/eva2/optimization/strategies/EsDpiNiching.java index 3a41525f..36d3d482 100644 --- a/src/main/java/eva2/optimization/strategies/EsDpiNiching.java +++ b/src/main/java/eva2/optimization/strategies/EsDpiNiching.java @@ -33,7 +33,7 @@ import java.util.Formatter; * predefined, and lambda new samples are drawn for every peak in every * iteration. Thus, in relation to the standard ES, some new parameters are due. * On the other hand, the selection schemes are predefined. This is done - * according to Shir&Bäck, Niching in Evolution Strategies, Tec.Report 2005. + * according to Shir&Bäck, Niching in Evolution Strategies, Tec.Report 2005. *

* Unfortunately the algorithm was not described in every detail. It remained * unclear how exactly the peak population where filled and esp. what happens if @@ -54,7 +54,7 @@ import java.util.Formatter; * framework which is still used to optimize the single peak populations. *

* This class should also cover "Dynamic niching in evolution strategies with - * covariance matrix adaptation" by Shir & Bäck, CEC 2005, when employing + * covariance matrix adaptation" by Shir & Bäck, CEC 2005, when employing * SelectBest as parent selection and muPerPeak=1. *

* Some notes: @@ -267,7 +267,7 @@ public class EsDpiNiching extends AbstractOptimizer implements Serializable, Int /** * Use the deactivation of converged species, storing them to an archive, - * with the given parameters. If windowLen <= 0, the deactivation mechanism + * with the given parameters. If windowLen <= 0, the deactivation mechanism * is disabled. This provides for semi-sequential niching with DPI-ES * * @param threshold diff --git a/src/main/java/eva2/optimization/strategies/EvolutionStrategies.java b/src/main/java/eva2/optimization/strategies/EvolutionStrategies.java index 04dd29d9..45ad2782 100644 --- a/src/main/java/eva2/optimization/strategies/EvolutionStrategies.java +++ b/src/main/java/eva2/optimization/strategies/EvolutionStrategies.java @@ -259,7 +259,7 @@ public class EvolutionStrategies extends AbstractOptimizer implements java.io.Se } /** - * This method will check the population constraints myu <= lambda and will + * This method will check the population constraints myu <= lambda and will * calculate the population size accordingly. */ protected void checkPopulationConstraints() { diff --git a/src/main/java/eva2/optimization/strategies/EvolutionStrategyIPOP.java b/src/main/java/eva2/optimization/strategies/EvolutionStrategyIPOP.java index a9c883ce..38afe485 100644 --- a/src/main/java/eva2/optimization/strategies/EvolutionStrategyIPOP.java +++ b/src/main/java/eva2/optimization/strategies/EvolutionStrategyIPOP.java @@ -30,9 +30,9 @@ import java.util.LinkedList; * Lambda is increased multiplicatively for every restart, and typical initial values are * mu=5, lambda=10, incFact=2. * The IPOP-CMA-ES won the CEC 2005 benchmark challenge. - * Refer to Auger&Hansen 05 for more details. + * Refer to Auger&Hansen 05 for more details. *

- * A.Auger & N.Hansen. A Restart CMA Evolution Strategy With Increasing Population Size. CEC 2005. + * A.Auger & N.Hansen. A Restart CMA Evolution Strategy With Increasing Population Size. CEC 2005. */ @Description("An ES with increasing population size.") public class EvolutionStrategyIPOP extends EvolutionStrategies implements InterfacePopulationChangedEventListener, InterfaceAdditionalPopulationInformer { @@ -186,7 +186,8 @@ public class EvolutionStrategyIPOP extends EvolutionStrategies implements Interf /** * Test for the IPOP stopping criteria. * - * @param population + * @param term + * @param pop * @return */ public static boolean testIPOPStopCrit(InterfaceTerminator term, Population pop) { diff --git a/src/main/java/eva2/optimization/strategies/IslandModelEA.java b/src/main/java/eva2/optimization/strategies/IslandModelEA.java index 83eb2c29..a3ed5541 100644 --- a/src/main/java/eva2/optimization/strategies/IslandModelEA.java +++ b/src/main/java/eva2/optimization/strategies/IslandModelEA.java @@ -445,9 +445,8 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I * This method allows you to toggle between a truly parallel and a serial * implementation. * - * @return The current optimization mode */ - // TODO Deactivated from GUI because the current implementation does not really parallelize on a multicore. + // TODO Deactivated from GUI because the current implementation does not really paralelize on a multicore. // Instead, the new direct problem parallelization can be used. // public boolean isLocalOnly() { // return this.numLocalOnly; diff --git a/src/main/java/eva2/optimization/strategies/NichePSO.java b/src/main/java/eva2/optimization/strategies/NichePSO.java index dc3218ae..5bfea4a2 100644 --- a/src/main/java/eva2/optimization/strategies/NichePSO.java +++ b/src/main/java/eva2/optimization/strategies/NichePSO.java @@ -66,7 +66,7 @@ import java.util.Vector; * subswarm can formally have, but it does not affect the actual radius. This * adjustment is proposed in [2] in order to improve the performance of the * NichePSO. Experiments showed a good performance for relatively small values - * of maxAllowedSwarmRadius <= 0.0001 on lower dimensional problems. For higher + * of maxAllowedSwarmRadius <= 0.0001 on lower dimensional problems. For higher * dimensional problems, larger values may be preferable. *

* [1] R. Brits, A. P. Engelbrecht and B. Bergh. A Niching Particle Swarm @@ -147,13 +147,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo // by default, calculate the individuals fitness std dev using this number of past fitness values public static final int defaultFitStdDevHorizon = 3; - /** - * ******************************************************************************************************************** - * ctors, clone - */ - /** - * @tested - */ public NichePSO() { if (log) { initLogFile(); @@ -177,9 +170,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo GenericObjectEditor.setHideProperty(getClass(), "maxAllowedSwarmRadius", false); } - /** - * @tested @param a - */ public NichePSO(NichePSO a) { this.mainSwarmSize = a.mainSwarmSize; this.maxAllowedSwarmRadius = a.maxAllowedSwarmRadius; @@ -213,17 +203,13 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo this.optimizationProblem = (InterfaceOptimizationProblem) a.optimizationProblem.clone(); } - /** - * @tested (non-Javadoc) - * @see java.lang.Object#clone() - */ @Override public Object clone() { return new NichePSO(this); } /** - * @tested ps sets the mainswarm according to the NichePSO Parameters, + * ps sets the mainswarm according to the NichePSO Parameters, * called via initialize() */ protected void initMainSwarm() { @@ -252,7 +238,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested inits the template used for creating subswarms this is only + * inits the template used for creating subswarms this is only * called in the ctor not via initialize() (would overwrite changes set from * outside for the next run) */ @@ -279,7 +265,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return an optimizer with parameters set according to the nichePSO - * @tested returns the optimizer that should be used to create a new + * returns the optimizer that should be used to create a new * subswarm */ public ParticleSubSwarmOptimization getNewSubSwarmOptimizer() { @@ -290,7 +276,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested junit, junit&, emp, ... (non-Javadoc) * @see eva2.optimization.strategies.InterfaceOptimizer#initialize() */ @Override @@ -319,7 +304,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested (non-Javadoc) uses the given population and basically sets rnd + * uses the given population and basically sets rnd * velocity vectors (if reset == false) */ @Override @@ -335,11 +320,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * ******************************************************************************************************************** - * Optimization - */ - /** - * @tested (non-Javadoc) * @see eva2.optimization.strategies.InterfaceOptimizer#optimize() */ @Override @@ -498,7 +478,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested junit deactivates the subswarms according to the decativation + * deactivates the subswarms according to the decativation * strategy */ protected void deactivateSubSwarmsIfPossible() { @@ -546,10 +526,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo return actCnt; } - /** - * ******************************************************************************************************************** - * Merging - */ protected void mergingEventFor(int i, int j) { if (isVerbose()) { System.out.print("merge condition \n"); @@ -564,7 +540,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested junit merges the subswarms according to the merging strategy + * merges the subswarms according to the merging strategy */ protected void mergeSubswarmsIfPossible() { boolean runagain = false; @@ -608,7 +584,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * junit absorbs the mainswarm particles into the subswarm according + * absorbs the mainswarm particles into the subswarm according * to the absorbtion strategy */ protected void absorbParticlesIfPossible() { @@ -636,10 +612,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } } - /** - * ******************************************************************************************************************** - * Subswarm Creation - */ protected void subswarmCreationEventFor(AbstractEAIndividual currentindy, ParticleSubSwarmOptimization subswarm) { if (isVerbose()) { System.out.print("creating subswarm\n"); @@ -655,7 +627,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested junit creates a subswarm from every particle in the mainswarm + * creates a subswarm from every particle in the mainswarm * that meets the convergence-criteria of the creation strategy */ protected void createSubswarmIfPossible() { @@ -679,13 +651,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } } - /** - * ******************************************************************************************************************** - * setter, getter: population and solutions - */ - /** - * @tested nn (non-Javadoc) - */ @Override public void setPopulation(Population pop) { //pass on to mainswarm optimizer @@ -695,7 +660,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return a population consisting of copies from the mainswarm and all * active subswarms - * @tested junit, junit& */ public Population getActivePopulation() { // construct a metapop with clones from the mainswarm and all active subswarms @@ -727,7 +691,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return a population consisting of copies from the mainswarm and all * subswarms. - * @tested junit returns a population consisting of copies from the + * returns a population consisting of copies from the * mainswarm and all subswarms (active and inactive, so the size of this * Population is not necessarily constant). (Especially important for the * call back regarding the output file... ) Beware: @@ -788,7 +752,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return a population consisting of the personal best solutions of every * particle in the mainswarm and all subswarms - * @tested junit (non-Javadoc) * @see eva2.optimization.strategies.InterfaceOptimizer#getAllSolutions() */ @Override @@ -819,7 +782,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return the best solution found by any particle in any swarm - * @tested junit */ public AbstractEAIndividual getGlobalBestSolution() { Population metapop = getPopulation(); @@ -839,7 +801,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return array with copies of the gbest individuals - * @tested junit returns the cloned global best individuals (ie best of all + * returns the cloned global best individuals (ie best of all * time) from every subswarm and the main swarm */ public Population getSubswarmRepresentatives(boolean onlyInactive) { @@ -859,7 +821,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param size - * @tested ps sets the !initial! size of the mainswarm population use this + * ps sets the !initial! size of the mainswarm population use this * instead of getPopulation.setPopulationSize() */ public void setMainSwarmSize(int size) { @@ -871,7 +833,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return the !initial! size of the mainswarm population - * @tested nn returns the !initial! size of the mainswarm population + * returns the !initial! size of the mainswarm population */ public int getMainSwarmSize() { return this.mainSwarmSize; @@ -883,7 +845,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param val - * @tested ps defines the maximal allowed subswarm radius for absorption and + * defines the maximal allowed subswarm radius for absorption and * merging */ public void setMaxAllowedSwarmRadius(double val) { @@ -899,7 +861,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return - * @tested nn */ public double getMaxAllowedSwarmRadius() { return this.maxAllowedSwarmRadius; @@ -1002,7 +963,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param val - * @tested nn */ public void SetPartlyInactive(boolean val) { this.partlyInactive = val; @@ -1010,7 +970,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return - * @tested nn */ public boolean isPartlyInactive() { return partlyInactive; @@ -1186,7 +1145,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** * @param problem - * @tested ps This method will set the problem that is to be optimized + * This method will set the problem that is to be optimized */ @Override @Hidden @@ -1221,7 +1180,6 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param vals * @return - * @tested junit */ public double getMedian(double[] vals) { java.util.Arrays.sort(vals); @@ -1299,13 +1257,9 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo return meanDiv; } - /** - * ******************************************************************************************************************** - * setter, getter: infostrings - */ /** * @return The name of the algorithm - * @tested nn This method will return a naming String + * This method will return a naming String */ @Override public String getName() { @@ -1314,7 +1268,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return A descriptive string - * @tested nn This method will return a string describing all properties of + * This method will return a string describing all properties of * the optimizer and the applied methods. */ @Override @@ -1327,7 +1281,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return descriptive string of the elite - * @tested emp returns a string that lists the global best individuals (ie + * emp returns a string that lists the global best individuals (ie * best of all time) from every subswarm */ public String getSubswarmRepresentativesAsString(boolean onlyInactive) { @@ -1342,7 +1296,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return - * @tested emp + * emp */ public String getPerformanceAsString() { if (!(optimizationProblem instanceof InterfaceMultimodalProblem)) { @@ -1390,7 +1344,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo * for the logfile */ /** - * @tested emp generates the NichePSO_date file + * emp generates the NichePSO_date file */ protected void initLogFile() { // opening output file... @@ -1426,7 +1380,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param line string to be written - * @tested emp writes something to the LogFile + * emp writes something to the LogFile */ protected void writeToLogFile(String line) { String write = line + "\n"; @@ -1441,16 +1395,10 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } } - /** - * ************************************************- plotting analysing - * debugging -************************************ - * /********************************************************************************************************************** - * getter for debugging and analysing - */ /** * @param index * @return particle with given index - * @tested @param pop + * @param pop */ public AbstractEAIndividual getIndyByParticleIndexAndPopulation(Population pop, Integer index) { for (int i = 0; i < pop.size(); ++i) { @@ -1466,7 +1414,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @return main swarm particle with given index - * @tested @param index + * @param index */ public AbstractEAIndividual getIndyByParticleIndex(Integer index) { AbstractEAIndividual indy = null; @@ -1486,7 +1434,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested @return particle with minimal stddev in fitness over the last 3 + * @return particle with minimal stddev in fitness over the last 3 * iterations */ protected AbstractEAIndividual getIndyWithMinStdDev() { @@ -1510,11 +1458,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * ******************************************************************************************************************** - * plotting - */ - /** - * @tested inits a new Topoplot + * Inits a new Topoplot */ protected void initPlotSwarm() { double[] a = new double[2]; @@ -1528,7 +1472,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested clean everything except topology colors + * Clean everything except topology colors */ protected void cleanPlotSwarm() { // delete all previous points @@ -1544,7 +1488,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested plots the std dev of all particles in the main swarm + * Plots the std dev of all particles in the main swarm */ protected void plotAllStdDevsInMainSwarm() { //add further information to MainSwarm-Plot point by point @@ -1569,7 +1513,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested plots only the minimal std dev for the respective particle + * Plots only the minimal std dev for the respective particle */ protected void plotMinStdDevInMainSwarm() { //add further information to MainSwarm-Plot (minimal stddev) @@ -1588,7 +1532,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param boundary - * @tested plots all std devs < boundary for the respective particles + * Plots all std devs < boundary for the respective particles */ protected void plotBoundStdDevInMainSwarm(double boundary) { InterfaceDataTypeDouble tmpIndy1; @@ -1616,7 +1560,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param index index of the particle * @param text information to be added - * @tested plots a circle around the individual and adds some information + * Plots a circle around the individual and adds some information */ protected void plotCircleForIndy(int index, String text) { AbstractEAIndividual indy = getIndyByParticleIndex(index); @@ -1631,7 +1575,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param indy invidual * @param text information to be added - * @tested plots a circle around the individual and adds some information + * Plots a circle around the individual and adds some information */ protected void plotCircleForIndy(AbstractEAIndividual indy, String text) { InterfaceDataTypeDouble tmpIndy1 = (InterfaceDataTypeDouble) indy; @@ -1643,7 +1587,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested cleans the previous plot and plots the mainswarm as points + * Cleans the previous plot and plots the mainswarm as points */ protected void plotMainSwarm(boolean withIDs) { if (this.optimizationProblem instanceof Interface2DBorderProblem) { @@ -1750,7 +1694,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested plots all subswarms as connected lines to their respective best + * Plots all subswarms as connected lines to their respective best * individual */ protected void plotSubSwarms() { @@ -1823,7 +1767,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested plots information about merging, absorbtion and subswarm-creation + * Plots information about merging, absorption and subswarm-creation */ protected void plotAdditionalInfo() { // from merging @@ -1872,7 +1816,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * @tested @param particleIndex + * @param particleIndex */ protected void plotTraceIndy(int particleIndex) { AbstractEAIndividual indy = getIndyByParticleIndex(particleIndex); @@ -1890,7 +1834,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo /** * @param indy - * @tested plots the old position, new position, personal best position and + * Plots the old position, new position, personal best position and * neighborhood best position for a given individual */ protected void plotStatusForIndy(AbstractEAIndividual indy) { @@ -1991,7 +1935,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * Create a Niche PSO with parameters as to Brits, Engelbrecht & Bergh: A + * Create a Niche PSO with parameters as to Brits, Engelbrecht & Bergh: A * Niching Particle Swarm Optimizer. SEAL 2002. Exeption: the swarm size is * 200 by default, because 30 (of the orig. paper) seems way too low. *

@@ -2015,7 +1959,7 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * Set parameters as to Brits, Engelbrecht & Bergh: A Niching Particle Swarm + * Set parameters as to Brits, Engelbrecht & Bergh: A Niching Particle Swarm * Optimizer. SEAL 2002. Exception: the swarm size is 100 by default, because * 30 (of the orig. paper) seems way too low. * @@ -2065,8 +2009,8 @@ public class NichePSO extends AbstractOptimizer implements InterfaceAdditionalPo } /** - * Set parameters as to Brits, Engelbrecht & Bergh: A Niching Particle Swarm - * Optimizer. SEAL 2002. Exeption: the swarm size is 200 by default, because + * Set parameters as to Brits, Engelbrecht & Bergh: A Niching Particle Swarm + * Optimizer. SEAL 2002. Exception: the swarm size is 200 by default, because * 30 (of the orig. paper) seems way too low. * * @param npso an already existing NichePSO instance or null to create a new one diff --git a/src/main/java/eva2/optimization/strategies/ParticleSubSwarmOptimization.java b/src/main/java/eva2/optimization/strategies/ParticleSubSwarmOptimization.java index 3fa199c5..3bfa1cc6 100644 --- a/src/main/java/eva2/optimization/strategies/ParticleSubSwarmOptimization.java +++ b/src/main/java/eva2/optimization/strategies/ParticleSubSwarmOptimization.java @@ -31,10 +31,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO private int particleIndexCounter; // used to give each particle a unique index (for debbugging and plotting) private int fitnessArchiveSize = 15; // maximal number of fitnessvalues remembered from former iterations - /** - * @tested ps - * ctor - */ public ParticleSubSwarmOptimization() { updateMaxPosDist(); this.maxAllowedSwarmRadiusNormal = 0.1; // set similar to "particle swarms for multimodal optimization" by Oezcan and Yilmaz @@ -43,9 +39,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO // setInitialVelocity(1.); } - /** - * @tested cpyctor - */ public ParticleSubSwarmOptimization(ParticleSubSwarmOptimization a) { super(a); if (a.bestIndividual != null) { @@ -60,22 +53,12 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO fitnessArchiveSize = a.fitnessArchiveSize; } - /** - * @tested (non-Javadoc) @see javaeva.server.oa.go.Strategies.ParticleSwarmOptimization#clone() - */ @Override public Object clone() { return new ParticleSubSwarmOptimization(this); } -/********************************************************************************************************************** - * inits - */ - /** - * @tested ps - * (non-Javadoc) @see javaeva.server.oa.go.Strategies.ParticleSwarmOptimization#initialize() - */ @Override public void initialize() { super.initialize(); @@ -88,10 +71,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO // setInertnessOrChi(inertnessAging.getStartValue()); } - /** - * @tested ps - * (non-Javadoc) @see javaeva.server.oa.go.Strategies.ParticleSwarmOptimization#initializeByPopulation(javaeva.server.oa.go.Populations.Population, boolean) - */ @Override public void initializeByPopulation(Population pop, boolean reset) { super.initializeByPopulation(pop, reset); @@ -103,7 +82,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit& * adds a vector for fitnessvalues to all individuals in the swarm * and sets the current fitness as the first value */ @@ -129,7 +107,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested emp * adds a std deviation value to an individual * and initially sets this value to infinity. */ @@ -143,7 +120,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit * adds a representation of the personal best to an individual * and initially sets the current individual as its personal best. */ @@ -153,13 +129,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO indy.putData("PersonalBestKey", newpbest); } -/********************************************************************************************************************** - * Optimization - */ - /** - * @tested ps - * (non-Javadoc) @see javaeva.server.oa.go.Strategies.ParticleSwarmOptimization#optimize() - */ @Override public void optimize() { super.optimize(); @@ -230,11 +199,7 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } } -/********************************************************************************************************************** - * updates - */ /** - * @tested ps * when particles enter or leave the population, * call this method to update the status of the population */ @@ -243,7 +208,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit& * updates the bestIndividual member which represents the gbest individual * (i.e. the best position and fitness encountered by any particle of the swarm) * Beware: if a particle enters the swarm its knowledge about its pbest enters the swarm, @@ -271,7 +235,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit, dbg * adds the current fitnessvalue to the fitnessarchive for every individual in the swarm. * Keeps the fitnessarchive at a limited size (lim+1). */ @@ -299,7 +262,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit * sets the std dev value of all individuals in the swarm * to the std deviation over the last 3 fitness values */ @@ -315,7 +277,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit&, junit * update the personal best representation if the current individual is better than the pbest */ public void updatePersonalBest() { @@ -336,7 +297,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } /** - * @tested junit .. * updates the member representing the maximal possible distance in the current searchspace */ public void updateMaxPosDist() { @@ -385,7 +345,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO * @param indy1 * @param indy2 * @return - * @tested junit * returns the euclidean distance in the search space between indy1 and indy2. */ public double distance(AbstractEAIndividual indy1, AbstractEAIndividual indy2) { @@ -397,9 +356,8 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO * @param vec * @param range number of values (beginning at the end of vec!) considered to compute the mean * @return - * @tested junit * returns the mean value for the provided data vec but only for a given number of values. - * If range > vec.size() the mean is computed only for the available data. + * If range > vec.size() the mean is computed only for the available data. */ protected static double mean(Vector vec, int range) { if (vec.size() < range) { @@ -416,7 +374,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO * @param vec data * @param range number of values (beginning at the end of vec!) considered to compute the std deviation * @return - * @tested junit * returns the std deviation for the provided data vec but only for a given number of values */ public static double stdDev(Vector vec, int range) { @@ -443,11 +400,10 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param normalisedRadius * @return - * @tested ps * Interpretes the given maximal radius as normalised according to the current search space. * Values from [0,1], 1 means the radius can be as large as the maximal possible distance * (between any two points) in the search space. - * Because the swarmradius and distances (e.g. in merging and absortion) are given in a standard euclidean metric, + * Because the swarmradius and distances (e.g. in merging and absorption) are given in a standard euclidean metric, * this function converts the normalised distance into the standard euclidean distance. */ public double interpreteAsNormalisedSwarmRadius(double normalisedRadius) { @@ -458,13 +414,8 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO return normalisedRadius * maxPosDist; } -/********************************************************************************************************************** - * addNewParticlesToPopulation ... - */ - /** * @param particleIndices set of indices that should be used for the added particles, if null new indices are created - * @tested junit ... * adds new particles to this swarm, rndly inited over the search space by the problem */ private void addNewParticlesToPopulation(int[] particleIndices) { @@ -510,7 +461,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO */ /** * @param pop - * @tested nn * adds a population and its function calls to this.population */ public void addPopulation(ParticleSubSwarmOptimization pop) { @@ -519,7 +469,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param pop - * @tested junit& .. * adds a population and its function calls to this.population */ public void addPopulation(Population pop) { @@ -532,7 +481,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param ind * @return - * @tested nn * adss an inidividual */ public boolean addIndividual(IndividualInterface ind) { @@ -544,7 +492,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param o * @return - * @tested nn */ public boolean add(Object o) { return addIndividual((IndividualInterface) o); @@ -552,7 +499,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param indy - * @tested nn * adds indy to the swarm */ public void add(AbstractEAIndividual indy) { @@ -561,7 +507,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param ind - * @tested nn * removes an individual */ public boolean removeSubIndividual(IndividualInterface ind) { @@ -579,22 +524,8 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO } } - /* - public void removeNIndividuals(int n) { - } - public void removeDoubleInstances() { - } - public void removeDoubleInstancesUsingFitness() { - } - public void removeIndexSwitched(int index) { - }*/ - -/********************************************************************************************************************** - * getter, setter - */ /** * @param problem - * @tested ps * This method will set the problem that is to be optimized */ @Override @@ -605,7 +536,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @return the maximal euclidean distance between the swarms gbest and any other particle in the swarm. - * @tested junit */ public double getSwarmRadius() { if (getPopulation().size() == 0 || getPopulation().size() == 1) { @@ -631,7 +561,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @return - * @tested ps * returns the maximal distance between the gbest position and any individual in the swarm * this distance is not allowed to exceed a given threshold */ @@ -680,7 +609,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param maxAllowedSwarmRadius value from the intervall [0,1] - * @tested nn * binds the swarmradius to the given normalised value * (f.e. 1 means, that the swarmradius is allowed to take the maximal possible range in the search space) */ @@ -690,7 +618,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @return - * @tested nn */ public double getMaxAllowedSwarmRadius() { return this.maxAllowedSwarmRadiusNormal; @@ -698,7 +625,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param active - * @tested nn * marks the swarm as active or inactive */ public void SetActive(boolean active) { @@ -707,7 +633,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @return - * @tested nn */ public boolean isActive() { return active; @@ -728,7 +653,6 @@ public class ParticleSubSwarmOptimization extends ParticleSwarmOptimizationGCPSO /** * @param indy particle should be from this swarm * @return null if there is no neighbor else neighbor - * @tested junit * returns the particle with the minimal distance to indy */ public AbstractEAIndividual getMemberNeighbor(AbstractEAIndividual indy) { diff --git a/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimization.java b/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimization.java index cda008b1..d3a4229f 100644 --- a/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimization.java +++ b/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimization.java @@ -585,8 +585,8 @@ public class ParticleSwarmOptimization extends AbstractOptimizer implements java * This method will update a given individual according to the PSO method * * @param index The individual to update. + * @param indy An individual * @param pop The current population. - * @param best The best individual found so far. */ protected void updateIndividual(int index, AbstractEAIndividual indy, Population pop) { if (indy instanceof InterfaceDataTypeDouble) { @@ -845,7 +845,6 @@ public class ParticleSwarmOptimization extends AbstractOptimizer implements java * * @param index index of the individual for which to check * @param pop the current swarm - * @param best the currently best individual * @return a copy of the position of the best remembered individual in the * neigbourhood */ @@ -1558,7 +1557,7 @@ public class ParticleSwarmOptimization extends AbstractOptimizer implements java * usually set to 2.05. The sum tau1 and tau2 must be greater than 4. The * Chi parameter (constriction) is set as in 2 Chi = * ------------------------ |2-tau-sqrt(tau^2-4 tau)| where tau = tau1 + - * tau2 See Clerc&Kennedy: The Particle Swarm: Explosion, stability and + * tau2 See Clerc&Kennedy: The Particle Swarm: Explosion, stability and * convergence, 2002. * * @param tau1 @@ -1744,7 +1743,7 @@ public class ParticleSwarmOptimization extends AbstractOptimizer implements java } /** - * @param set swarm visualization (2D) + * @param show */ public void setShow(boolean show) { this.show = show; diff --git a/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimizationGCPSO.java b/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimizationGCPSO.java index 23dfa2f4..d23eedbe 100644 --- a/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimizationGCPSO.java +++ b/src/main/java/eva2/optimization/strategies/ParticleSwarmOptimizationGCPSO.java @@ -28,13 +28,9 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { protected int getAccelerationForGlobalBestParticleCounter = 0; // only for testing -/********************************************************************************************************************** - * ctors, inits - */ /** - * @tested ps - * ctor - sets default values according to - * "An Analyis of Paricle Swarm Optimizers" by Franz van den Bergh + * Sets default values according to + * "An Analysis of Particle Swarm Optimizers" by Franz van den Bergh */ public ParticleSwarmOptimizationGCPSO() { setGcpso(true); @@ -52,7 +48,6 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { /** * @param a - * @tested ps */ public ParticleSwarmOptimizationGCPSO(ParticleSwarmOptimizationGCPSO a) { super(a); @@ -73,12 +68,6 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { this.SetRhoDecreaseFactor(a.getRhoDecreaseFactor()); } -/********************************************************************************************************************** - * overwritten - */ - /** - * @tested (non-Javadoc) @see javaeva.server.go.strategies.ParticleSwarmOptimization#optimize() - */ @Override public void optimize() { super.optimize(); //updatePopulation->updateIndividual->updateVelocity (s.u.) @@ -86,7 +75,6 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { } /** - * @tested junit& * (non-Javadoc) @see javaeva.server.go.strategies.ParticleSwarmOptimization#updateVelocity(int, double[], double[], double[], double[], double[][]) * uses a special velocity update strategy for the gobal best particle. */ @@ -138,7 +126,6 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { /** * @return the index of the particle with the best personal best position * (i.e. the index of the global best particle) - * @tested junit */ protected int getIndexOfGlobalBestParticle() { if (getPopulation().size() == 0) { @@ -158,11 +145,7 @@ public class ParticleSwarmOptimizationGCPSO extends ParticleSwarmOptimization { return index; } -/********************************************************************************************************************** - * updateGCPSOMember - */ /** - * @tested junit * updates: gbestParticleIndex,gbestParticleHasChanged,numOfSuccesses,numOfFailures,gbestParticle,rho */ protected void updateGCPSOMember() { diff --git a/src/main/java/eva2/optimization/strategies/Tribes.java b/src/main/java/eva2/optimization/strategies/Tribes.java index 6d1cf5d5..4b701fb9 100644 --- a/src/main/java/eva2/optimization/strategies/Tribes.java +++ b/src/main/java/eva2/optimization/strategies/Tribes.java @@ -39,10 +39,7 @@ import java.util.List; * though. * * @author Maurice Clerc, Marcel Kronfeld - * @author Maurice.Clerc@WriteMe.com {@link http://mauriceclerc.net} - * {@link http://clerc.maurice.free.fr/pso/} - * @version 2006-02 21 - * @date 2007-09-13 + * @author Maurice.Clerc@WriteMe.com *

* Original notes: */ @@ -461,21 +458,21 @@ public class Tribes implements InterfaceOptimizer, java.io.Serializable { * save("\n" + iter + " " + evalF + " " + swarm.Best.position.totalError + " * " + swarm.size, runSave); * - * // Evaluate the stop criterion stop = evalF >= pb.maxEval || pb.accuracy + * // Evaluate the stop criterion stop = evalF >= pb.maxEval || pb.accuracy * > swarm.Best.position.totalError; * * if (Tribes.adaptOption == 0) { continue iterations; } * * if (Tribes.adaptOption == 1) { // Just reinitialize the swarm * adaptThreshold = iter - adapt; // adaptMax=swarmSize; adaptMax = - * swarm.linkNb(swarm); if (adaptThreshold >= adaptMax) { if - * (swarm.Best.positionPrev.totalError <= swarm.Best.position.totalError) { + * swarm.linkNb(swarm); if (adaptThreshold >= adaptMax) { if + * (swarm.Best.positionPrev.totalError <= swarm.Best.position.totalError) { * adapt = iter; // Memorize at which iteration adaptation occurs * * for (n = 0; n < swarm.tribeNb; n++) { * evalF=swarm.tribes[n].reinitTribe(pb,evalF); } } } continue iterations; } * - * // if(swarm.Best.positionPrev.totalError<=swarm.Best.position.totalError) + * // if(swarm.Best.positionPrev.totalError<=swarm.Best.position.totalError) * { // Structural adaptations * * //swarmSize = swarm.swarmSize(swarm); @@ -490,7 +487,7 @@ public class Tribes implements InterfaceOptimizer, java.io.Serializable { * adaptThreshold = iter - adapt; // adaptMax=swarmSize; adaptMax = * swarm.linkNb(swarm); * - * if (adaptThreshold >= adaptMax) { adapt = iter; // Memorize at which + * if (adaptThreshold >= adaptMax) { adapt = iter; // Memorize at which * iteration adaptation occurs evalF=swarm.adaptSwarm(pb, * Tribes.adaptOption, swarm, displayPb,evalF); // Réalise l'adaptation * diff --git a/src/main/java/eva2/optimization/tools/DoubleArrayComparator.java b/src/main/java/eva2/optimization/tools/DoubleArrayComparator.java index 15379309..d1d2fedc 100644 --- a/src/main/java/eva2/optimization/tools/DoubleArrayComparator.java +++ b/src/main/java/eva2/optimization/tools/DoubleArrayComparator.java @@ -8,7 +8,7 @@ import java.util.Comparator; * Comparator implementation which compares two double arrays. * It assigns -1 if first is pareto dominant (smaller), 1 if second is pareto dominant (larger), 0 if the two ind.s * are not comparable. - * If a criterion>=0 is specified, only the thereby indexed entry of any array + * If a criterion>=0 is specified, only the thereby indexed entry of any array * will be used for comparison (single criterion case). */ public class DoubleArrayComparator implements Comparator { diff --git a/src/main/java/eva2/problems/AbstractDynamicOptimizationProblem.java b/src/main/java/eva2/problems/AbstractDynamicOptimizationProblem.java index 6a8b389b..1e29d2f4 100644 --- a/src/main/java/eva2/problems/AbstractDynamicOptimizationProblem.java +++ b/src/main/java/eva2/problems/AbstractDynamicOptimizationProblem.java @@ -251,7 +251,7 @@ public abstract class AbstractDynamicOptimizationProblem extends AbstractOptimiz /** * Implement an indicator for when changes in the problem environment are necessary. If it returns - * true, the changeProblemAt(double problemTime) will be called. + * {@code true}, the {@code changeProblemAt(double problemTime)} will be called. * * @param problemTime the current simulation time of the problem * @return true, if the problem is to change at the given time, else false diff --git a/src/main/java/eva2/problems/AbstractMultiModalProblemKnown.java b/src/main/java/eva2/problems/AbstractMultiModalProblemKnown.java index 47f935cc..ae4b9f3f 100644 --- a/src/main/java/eva2/problems/AbstractMultiModalProblemKnown.java +++ b/src/main/java/eva2/problems/AbstractMultiModalProblemKnown.java @@ -308,7 +308,7 @@ public abstract class AbstractMultiModalProblemKnown extends AbstractProblemDoub /** * Calculates the maximum peak ratio based on the given fitness values. * This is the standard formulation of MPR which assumes that all fitness - * values are positive (and for a corresponding pair, foundFits[i]= 0. + * The additional informations generation and funCalls are shown if they are >= 0. * individual. * * @param generation generation of the individual or -1 @@ -446,9 +446,9 @@ public abstract class AbstractOptimizationProblem implements InterfaceOptimizati * @param orig individual that is to be tested * @param epsilon maximal allowed improvement before considered premature (given as distance in the search space) * @param mutationStepSize step size used to mutate the individual in one step - * (if < 0 a default value of 0.0001 is used) + * (if < 0 a default value of 0.0001 is used) * @param numOfFailures number of unsuccessful improvement steps in a row before an individual is considered to be locally unimproveable - * (if < 0 a default value of 100*problem dimensions is used ) + * (if < 0 a default value of 100*problem dimensions is used ) * @return estimation if the given individual is within epsilon of an optimum (local or global) */ public boolean isPotentialOptimum(AbstractEAIndividual orig, double epsilon, double mutationStepSize, int numOfFailures) { diff --git a/src/main/java/eva2/problems/ERPStarter.java b/src/main/java/eva2/problems/ERPStarter.java index a93a3d7a..74ec6145 100644 --- a/src/main/java/eva2/problems/ERPStarter.java +++ b/src/main/java/eva2/problems/ERPStarter.java @@ -28,7 +28,7 @@ public class ERPStarter { /** * Start an external runtime problem with some basic configs. The * default variant uses equally weighs all objectives through an equally weighted sum. - * Arguments: --csv --cmd --maxEvals [--multiObjective] [--gui] + * Arguments: {@code --csv path-to-csv-config-file> --cmd --maxEvals [--multiObjective] [--gui]} * * @param args */ @@ -40,7 +40,7 @@ public class ERPStarter { // prefix for data output file - set null to deactivate String outputFilePrefix = "erpTest"; - /** Argument handling ****************/ + // Argument handling String[] keys = new String[]{"--gui", "--multiObjective", "--csv", "--cmd", "--maxEvals"}; int[] arities = new int[]{0, 0, 1, 1, 1}; Object[] values = new Object[6]; diff --git a/src/main/java/eva2/problems/F17Problem.java b/src/main/java/eva2/problems/F17Problem.java index 1527fdd4..ab5e845b 100644 --- a/src/main/java/eva2/problems/F17Problem.java +++ b/src/main/java/eva2/problems/F17Problem.java @@ -5,7 +5,7 @@ import eva2.util.annotation.Description; /** * Bohachevsky function, numerous optima on an oval hyperparabola with similar attractor sizes - * but decreasing fitness towards the bounds. Described e.g. in Shir&Bäck, PPSN 2006, + * but decreasing fitness towards the bounds. Described e.g. in Shir&Bäck, PPSN 2006, * "Niche radius adaption in the CMA-ES Niching Algorithm". * f_B(\vec{x})=\sum_{i=1}^{n-1} x_i^2+2(x_{i+1}^2)+0.7-0.3 cos (3 \pi x_i)-0.4 cos (4 \pi x_{i+1}) */ diff --git a/src/main/java/eva2/problems/F18Problem.java b/src/main/java/eva2/problems/F18Problem.java index 2bdc204b..f5a49286 100644 --- a/src/main/java/eva2/problems/F18Problem.java +++ b/src/main/java/eva2/problems/F18Problem.java @@ -3,7 +3,7 @@ package eva2.problems; import eva2.util.annotation.Description; /** - * N-Function from Shir&Baeck, PPSN 2006. + * N-Function from Shir&Baeck, PPSN 2006. */ @Description("N-Function from Shir&Baeck, PPSN 2006") public class F18Problem extends AbstractProblemDouble implements diff --git a/src/main/java/eva2/problems/F19Problem.java b/src/main/java/eva2/problems/F19Problem.java index 5c43c553..6bdf5e33 100644 --- a/src/main/java/eva2/problems/F19Problem.java +++ b/src/main/java/eva2/problems/F19Problem.java @@ -8,7 +8,7 @@ import java.util.Arrays; import java.util.Random; /** - * Fletcher-Powell function with up to 2^n optima from Shir&Baeck, PPSN 2006, + * Fletcher-Powell function with up to 2^n optima from Shir&Baeck, PPSN 2006, * after Bäck 1996. Alphas and Matrices A and B are randomly created with a fixed seed. * */ diff --git a/src/main/java/eva2/problems/F1Problem.java b/src/main/java/eva2/problems/F1Problem.java index b1484530..55f8d50b 100644 --- a/src/main/java/eva2/problems/F1Problem.java +++ b/src/main/java/eva2/problems/F1Problem.java @@ -7,7 +7,7 @@ import eva2.util.annotation.Description; /** * Sphere Problem */ -@Description(value ="Sphere Problem") +@Description(value = "Sphere Problem") public class F1Problem extends AbstractProblemDoubleOffset implements Interface2DBorderProblem, InterfaceHasInitRange, java.io.Serializable, InterfaceFirstOrderDerivableProblem { private double initialRangeRatio = 1.; // reduce to initialize in a smaller subrange of the original range (in the corner box) @@ -103,7 +103,7 @@ public class F1Problem extends AbstractProblemDoubleOffset implements Interface2 } /** - * If initialRangeRatio<1, produce a reduced initial range in the negative corner of the range. + * If initialRangeRatio < 1, produce a reduced initial range in the negative corner of the range. */ @Override public Object getInitializationRange() { diff --git a/src/main/java/eva2/problems/F22Problem.java b/src/main/java/eva2/problems/F22Problem.java index 0e54fdab..6ae126ab 100644 --- a/src/main/java/eva2/problems/F22Problem.java +++ b/src/main/java/eva2/problems/F22Problem.java @@ -89,7 +89,7 @@ public class F22Problem extends AbstractProblemDoubleOffset implements Interface } /** - * If initialRangeRatio<1, produce a reduced initial range in the negative corner of the range. + * If initialRangeRatio < 1, produce a reduced initial range in the negative corner of the range. */ @Override public Object getInitializationRange() { diff --git a/src/main/java/eva2/problems/F23Problem.java b/src/main/java/eva2/problems/F23Problem.java index 28f11677..85ff73b3 100644 --- a/src/main/java/eva2/problems/F23Problem.java +++ b/src/main/java/eva2/problems/F23Problem.java @@ -90,7 +90,7 @@ public class F23Problem extends AbstractProblemDoubleOffset implements Interface } /** - * If initialRangeRatio<1, produce a reduced initial range in the negative corner of the range. + * If initialRangeRatio < 1, produce a reduced initial range in the negative corner of the range. */ @Override public Object getInitializationRange() { diff --git a/src/main/java/eva2/problems/GPFunctionProblem.java b/src/main/java/eva2/problems/GPFunctionProblem.java index a9ea20b2..eb885a2a 100644 --- a/src/main/java/eva2/problems/GPFunctionProblem.java +++ b/src/main/java/eva2/problems/GPFunctionProblem.java @@ -10,7 +10,7 @@ import eva2.tools.EVAERROR; * A helper problem class which takes a GP program as argument and serves as target function * for evaluating the GP function in optimization. A scaling option is implemented to flatten the * function by scaling it logarithmically. This avoids ugly functions in GP. To activate scaling, - * set the scStart and scLimit parameters to positive values. Function values y with |y|>scStart + * set the scStart and scLimit parameters to positive values. Function values y with |y| > scStart * will be rescaled to values below scLimit. */ public class GPFunctionProblem extends AbstractProblemDouble implements InterfaceProgramProblem { diff --git a/src/main/java/eva2/tools/BasicResourceLoader.java b/src/main/java/eva2/tools/BasicResourceLoader.java index b8198e80..5ab82cad 100644 --- a/src/main/java/eva2/tools/BasicResourceLoader.java +++ b/src/main/java/eva2/tools/BasicResourceLoader.java @@ -48,7 +48,6 @@ import java.util.zip.ZipInputStream; * @author wegnerj * @author Robin Friedman, rfriedman@TriadTherapeutics.com * @author Gerd Mueller - * @license GPL */ public class BasicResourceLoader implements ResourceLoader { /** diff --git a/src/main/java/eva2/tools/chart2d/DArea.java b/src/main/java/eva2/tools/chart2d/DArea.java index 2400cc40..4af08bf4 100644 --- a/src/main/java/eva2/tools/chart2d/DArea.java +++ b/src/main/java/eva2/tools/chart2d/DArea.java @@ -21,9 +21,9 @@ import java.awt.print.PageFormat; import java.awt.print.Printable; /** - * DArea is the crossing of the JComponents and the - * DComponents. It's the DParent which can be added to - * JComponents + * DArea is the crossing of the {@code JComponent}s and the + * {@code DComponent}s. It's the {@code DParent} which can be added to + * {@code JComponent}s */ public class DArea extends JComponent implements DParent, Printable { /** @@ -282,8 +282,8 @@ public class DArea extends JComponent implements DParent, Printable { } /** - * returns if the grid is visible true if the grid is visible - * or false if not + * returns if the grid is visible {@code true} if the grid is visible + * or {@code false} if not * * @return true or false */ @@ -294,7 +294,7 @@ public class DArea extends JComponent implements DParent, Printable { /** * returns whether the DArea's auto focus is on or not * - * @return true or false + * @return {@code true} or {@code false} */ public boolean isOnAutoFocus() { return autoFocus; @@ -347,7 +347,7 @@ public class DArea extends JComponent implements DParent, Printable { /** * method paints the grid how the method paints the grid depends on whether - * the area is wrapped in a ScaledBorder or not and on the + * the area is wrapped in a {@code ScaledBorder} or not and on the * autoGrid option */ private void paintGrid(DMeasures m) { @@ -586,7 +586,7 @@ public class DArea extends JComponent implements DParent, Printable { /** * sets the grid to the front that means that the grid is painted as last - * element default value is false + * element default value is {@code false} * * @param aFlag grid t front or not */ @@ -669,7 +669,7 @@ public class DArea extends JComponent implements DParent, Printable { /** * sets the minimal rectangle * - * @param rect the visible DRectangle in DArea coordinates + * @param rect the visible {@code DRectangle} in DArea coordinates */ public void setMinRectangle(DRectangle rect) { if (rect.isEmpty()) { @@ -724,7 +724,7 @@ public class DArea extends JComponent implements DParent, Printable { /** * sets the visible rectangle * - * @param rect the visible DRectangle in DArea coordinates + * @param rect the visible {@code DRectangle} in DArea coordinates */ public void setVisibleRectangle(DRectangle rect) { if (rect.isEmpty()) { diff --git a/src/main/java/eva2/tools/chart2d/DArray.java b/src/main/java/eva2/tools/chart2d/DArray.java index 7f3e61a4..1e4e59c1 100644 --- a/src/main/java/eva2/tools/chart2d/DArray.java +++ b/src/main/java/eva2/tools/chart2d/DArray.java @@ -97,9 +97,9 @@ public class DArray implements DIntDoubleMap { * the given image value becomes the image of (highest source value + 1) * * @param image the new image value - * @return true when the minimal or the maximal image value + * @return {@code true} when the minimal or the maximal image value * has been changed by this method call, else it returns - * false @see #getMinImageValue(), #getMaxImageValue() + * {@code false} @see #getMinImageValue(), #getMaxImageValue() */ @Override public boolean addImage(double image) { @@ -150,7 +150,7 @@ public class DArray implements DIntDoubleMap { /** * this method checks if the minimal and the maximal image value has changed * - * @return true if one of them changed + * @return {@code true} if one of them changed */ @Override public boolean restore() { @@ -230,7 +230,7 @@ public class DArray implements DIntDoubleMap { * It looks for differences in the stored image values * * @param o the object to compare with - * @return true when the object is an DArray object, containing + * @return {@code true} when the object is an DArray object, containing * the same values */ @Override diff --git a/src/main/java/eva2/tools/chart2d/DComponent.java b/src/main/java/eva2/tools/chart2d/DComponent.java index db617e4a..bd064c2e 100644 --- a/src/main/java/eva2/tools/chart2d/DComponent.java +++ b/src/main/java/eva2/tools/chart2d/DComponent.java @@ -3,9 +3,9 @@ package eva2.tools.chart2d; import java.awt.*; /** - * DComponent is the mother of all objects which can be displayed - * by a DArea object, even when it would be also enough to - * implement the DElement interface to an class + * {@code DComponent} is the mother of all objects which can be displayed + * by a {@code DArea} object, even when it would be also enough to + * implement the {@code DElement} interface to an class *

* DComponent is abstract because the paint method has to be overridden */ diff --git a/src/main/java/eva2/tools/chart2d/DGrid.java b/src/main/java/eva2/tools/chart2d/DGrid.java index 3906a0a3..276d5ae5 100644 --- a/src/main/java/eva2/tools/chart2d/DGrid.java +++ b/src/main/java/eva2/tools/chart2d/DGrid.java @@ -65,7 +65,7 @@ public class DGrid extends DComponent { /** * paints the grid... * - * @param m the DMeasures object to paint the grid + * @param m the {@code DMeasures} object to paint the grid */ @Override public void paint(DMeasures m) { diff --git a/src/main/java/eva2/tools/chart2d/DIntDoubleMap.java b/src/main/java/eva2/tools/chart2d/DIntDoubleMap.java index b74968e7..dea5da1f 100644 --- a/src/main/java/eva2/tools/chart2d/DIntDoubleMap.java +++ b/src/main/java/eva2/tools/chart2d/DIntDoubleMap.java @@ -16,9 +16,9 @@ public interface DIntDoubleMap { * * @param source the preimage of the image * @param image the new image of the source value - * @return true when the minimal or the maximal image value + * @return {@code true} when the minimal or the maximal image value * has been changed by this method call, else it returns - * false @see #getMinImageValue(), #getMaxImageValue() + * {@code false} @see #getMinImageValue(), #getMaxImageValue() */ boolean setImage(int source, double image); @@ -34,9 +34,9 @@ public interface DIntDoubleMap { * the image of the highest source value + 1 should be the given image value * * @param image the new image value - * @return true when the minimal or the maximal image value + * @return {@code true} when the minimal or the maximal image value * has been changed by this method call, else it returns - * false @see #getMinImageValue(), #getMaxImageValue() + * {@code false} @see #getMinImageValue(), #getMaxImageValue() */ boolean addImage(double image); @@ -72,10 +72,10 @@ public interface DIntDoubleMap { double getMinPositiveImageValue(); /** - * checks the minimal and the maximal image values and returns true + * checks the minimal and the maximal image values and returns {@code true} * when at least one of them has changed * - * @return true when either the maximal image value or the + * @return {@code true} when either the maximal image value or the * minimal image value has changed */ boolean restore(); diff --git a/src/main/java/eva2/tools/chart2d/DMeasures.java b/src/main/java/eva2/tools/chart2d/DMeasures.java index ba994dca..8eab71f9 100644 --- a/src/main/java/eva2/tools/chart2d/DMeasures.java +++ b/src/main/java/eva2/tools/chart2d/DMeasures.java @@ -41,7 +41,7 @@ public class DMeasures implements Serializable { /** * method returns the pixel-point which belongs to the given D-coordinates * it says where to paint a certain DPoint - * returns null if the double coordinates do not belong to the + * returns {@code null} if the double coordinates do not belong to the * image of the scale functions * * @param x the double x D-coordinate @@ -74,7 +74,7 @@ public class DMeasures implements Serializable { /** * method returns the point in D-coordinates which corresponds to the * given pixel-coordinates - * returns null if the given coordinates can not be calculated to + * returns {@code null} if the given coordinates can not be calculated to * the double coordinates, when they represent a point outside of the definition * area of the scale functions * @@ -168,7 +168,7 @@ public class DMeasures implements Serializable { * method returns the image rectangle of the given rectangle * they differ if there are scale functions selected which are not the identity * if the given rectangle does not belong to the definition area of the scale - * functions, the method returns null + * functions, the method returns {@code null} * * @return the source of it */ @@ -201,7 +201,7 @@ public class DMeasures implements Serializable { * method returns the source rectangle of the given rectangle * they differ if there are scale functions selected which are not the identity * if the given rectangle does not belong to the image area of the scale - * functions, the method returns null + * functions, the method returns {@code null} *

* Tuning: rect must not be empty * diff --git a/src/main/java/eva2/tools/chart2d/DPointSet.java b/src/main/java/eva2/tools/chart2d/DPointSet.java index c91aa6a0..e93a6937 100644 --- a/src/main/java/eva2/tools/chart2d/DPointSet.java +++ b/src/main/java/eva2/tools/chart2d/DPointSet.java @@ -238,12 +238,12 @@ public class DPointSet extends DComponent { /** * method returns the index to the nearest - * DPoint in this - * DPointSet. + * {@code DPoint} in this + * {@code DPointSet}. * * @return the index to the nearest - * DPoint. -1 if no nearest - * DPoint was found. + * {@code DPoint}. -1 if no nearest + * {@code DPoint} was found. */ public int getNearestDPointIndex(DPoint point) { double minValue = Double.MAX_VALUE; @@ -262,11 +262,11 @@ public class DPointSet extends DComponent { /** * method returns the nearest - * DPoint in this - * DPointSet. + * {@code DPoint} in this + * {@code DPointSet}. * * @return the nearest - * DPoint + * {@code DPoint} */ public DPoint getNearestDPoint(DPoint point) { int minIndex = getNearestDPointIndex(point); diff --git a/src/main/java/eva2/tools/chart2d/ScaledBorder.java b/src/main/java/eva2/tools/chart2d/ScaledBorder.java index b2e2d095..c99b976e 100644 --- a/src/main/java/eva2/tools/chart2d/ScaledBorder.java +++ b/src/main/java/eva2/tools/chart2d/ScaledBorder.java @@ -145,8 +145,8 @@ public class ScaledBorder implements Border { } /** - * constructor creates a new ScaledBorder - * surrounded by the specified Border + * constructor creates a new {@code ScaledBorder} + * surrounded by the specified {@code Border} */ public ScaledBorder(Border outer) { outerBorder = outer; diff --git a/src/main/java/eva2/tools/diagram/ColorBarCalculator.java b/src/main/java/eva2/tools/diagram/ColorBarCalculator.java index 904d1d0f..0557f890 100644 --- a/src/main/java/eva2/tools/diagram/ColorBarCalculator.java +++ b/src/main/java/eva2/tools/diagram/ColorBarCalculator.java @@ -39,6 +39,8 @@ public class ColorBarCalculator { /** * Returns color for the given float-value, which must be in the range from 0 to 1. * Warning: Creates new color object, better use the method 'getRGB' if possible. + * + * @param value Value to be converted into RGB color. */ public Color getColor(float value) { return new Color(getRGB(value)); @@ -46,6 +48,8 @@ public class ColorBarCalculator { /** * Returns color RGB-value for the given float-value, which must be in the range from 0 to 1. + * + * @param value Value to be converted into RGB color. */ public int getRGB(float value) { int rgbValue = 0; @@ -82,7 +86,7 @@ public class ColorBarCalculator { /** * Reverts color scale (e.g. black will be white and vice versa). * - * @param isInverse Color scale is inverted, if isInverse is set to true. + * @param isInverse Color scale is inverted, if {@code isInverse} is set to true. */ public void setInverseScale(boolean isInverse) { inverseScale = isInverse; @@ -91,7 +95,7 @@ public class ColorBarCalculator { /** * Returns current scale mode. * - * @return true if scale is inverted, else false. + * @return {@code true} if scale is inverted, else {@code false}. */ public boolean isInverseScale() { return inverseScale; diff --git a/src/main/java/eva2/tools/math/Mathematics.java b/src/main/java/eva2/tools/math/Mathematics.java index 380da272..76b2a0cd 100644 --- a/src/main/java/eva2/tools/math/Mathematics.java +++ b/src/main/java/eva2/tools/math/Mathematics.java @@ -90,15 +90,15 @@ public final class Mathematics { * @param y another vector * @param root what kind of distance function * @return the distance of x and y - * @throws Exception if x and y have different dimensions an exception is thrown. + * @throws IllegalArgumentException if x and y have different dimensions an exception is thrown. */ public static double dist(double[] x, double[] y, int root) { if (x.length != y.length) { - throw new RuntimeException( + throw new IllegalArgumentException( "The vectors x and y must have the same dimension"); } if (root == 0) { - throw new RuntimeException("There is no 0-root!"); + throw new IllegalArgumentException("There is no 0-root!"); } double d = 0; for (int i = 0; i < x.length; i++) { @@ -108,12 +108,12 @@ public final class Mathematics { } /** - * Computes the euclidian distance function. + * Computes the euclidean distance function. * * @param x a vector * @param y another vector * @return the distance of x and y - * @throws Exception if x and y have different dimensions an exception is thrown. + * @throws IllegalArgumentException if x and y have different dimensions an exception is thrown. */ public static double euclideanDist(double[] x, double[] y) { if (x.length != y.length) { @@ -787,7 +787,6 @@ public final class Mathematics { * Normalize the given vector to a euclidean length of 1. * * @param v - * @return */ public static void normVect(double[] v, double[] res) { svDiv(norm(v), v, res); @@ -910,8 +909,8 @@ public final class Mathematics { /** * Simple version of reflection of a value moving by a step and bouncing of - * min and max values like a pool ball. Precondition is min <= val <= max, - * post condition is min <= retVal <= max. + * min and max values like a pool ball. Precondition is min <= val <= max, + * post condition is min <= retVal <= max. * * @param val * @param step @@ -1051,7 +1050,7 @@ public final class Mathematics { /** * Scale a range by the given factor, meaning that the interval in each - * dimension is extended (fact>1) or reduced (fact < 1) by the defined ratio + * dimension is extended (fact > 1) or reduced (fact < 1) by the defined ratio * around the center. * * @param rangeScaleFact @@ -1075,7 +1074,6 @@ public final class Mathematics { * * @param range * @param dist - * @return */ public static void shiftRange(double[][] range, double dist) { for (int i = 0; i < range.length; i++) { @@ -1088,7 +1086,6 @@ public final class Mathematics { * dimensions as the range. * * @param range - * @return */ public static void shiftRange(double[][] range, double[] dists) { for (int i = 0; i < range.length; i++) { @@ -1174,7 +1171,6 @@ public final class Mathematics { * * @param s Scalar * @param v Vector - * @return */ public static void svAdd(double s, double[] v, double[] res) { for (int i = 0; i < v.length; i++) { @@ -1200,7 +1196,6 @@ public final class Mathematics { * * @param s * @param v - * @return */ public static void svDiv(double s, double[] v, double[] res) { for (int i = 0; i < v.length; i++) { @@ -1240,7 +1235,6 @@ public final class Mathematics { * @param s Scaling factor * @param v * @param w - * @return */ public static void svvAddScaled(double s, double[] v, double[] w, double[] res) { @@ -1255,7 +1249,6 @@ public final class Mathematics { * @param s * @param v * @param w - * @return */ public static void svvAddAndScale(double s, double[] v, double[] w, double[] res) { @@ -1284,7 +1277,6 @@ public final class Mathematics { * * @param v1 * @param v2 - * @return vector addition */ public static void vvAdd(double[] v1, double[] v2, double[] res) { vvAddOffs(v1, 0, v2, 0, res, 0, v1.length); @@ -1311,7 +1303,6 @@ public final class Mathematics { * * @param v1 * @param v2 - * @return vector addition */ public static void vvAddOffs(double[] v1, int v1Offs, double[] v2, int v2Offs, double[] res, int resOffs, int len) { @@ -1338,9 +1329,9 @@ public final class Mathematics { /** * Component wise multiplication of vectors: res[i]=u[i]*v[i] * - * @param s + * @param u * @param v - * @return + * @param res The result vector */ public static void vvMultCw(double[] u, double[] v, double[] res) { for (int i = 0; i < res.length; i++) { @@ -1366,7 +1357,7 @@ public final class Mathematics { * * @param a * @param b - * @return a new vector c = a - b + * @param res Result vector c = a - b */ public static void vvSub(double[] a, double[] b, double[] res) { for (int i = 0; i < a.length; i++) { diff --git a/src/main/java/eva2/tools/math/RNG.java b/src/main/java/eva2/tools/math/RNG.java index f97f964a..62344904 100644 --- a/src/main/java/eva2/tools/math/RNG.java +++ b/src/main/java/eva2/tools/math/RNG.java @@ -393,8 +393,8 @@ public final class RNG { /** * Returns a vector denoting a random point around the center - inside a * hypersphere of uniform distribution if nonUnif=0, - inside a hypersphere - * of non-uniform distribution if nonUnif > 0, - inside a D-Gaussian if - * nonUnif < 0. For case 2, the nonUnif parameter is used as standard + * of non-uniform distribution if nonUnif > 0, - inside a D-Gaussian if + * nonUnif < 0. For case 2, the nonUnif parameter is used as standard * deviation (instead of 1/D), the parameter is not further used in the * other two cases. Original code by Maurice Clerc, from the TRIBES package * diff --git a/src/main/java/eva2/tools/math/SpecialFunction.java b/src/main/java/eva2/tools/math/SpecialFunction.java index eed576c3..0161b641 100644 --- a/src/main/java/eva2/tools/math/SpecialFunction.java +++ b/src/main/java/eva2/tools/math/SpecialFunction.java @@ -236,7 +236,7 @@ public final class SpecialFunction { } /** - * @param x a double value + * @param xx a double value * @return the hyperbolic arc sine of the argument */ static public double asinh(double xx) throws ArithmeticException { @@ -504,7 +504,7 @@ public final class SpecialFunction { } /** - * @param x an integer value + * @param j an integer value * @return the factorial of the argument */ static public int fac(int j) throws ArithmeticException { @@ -528,7 +528,6 @@ public final class SpecialFunction { * @param x a double value * @return the Gamma function of the value. *

- * * Converted to Java from
* Cephes Math Library Release 2.2: July, 1992
* Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier
@@ -626,7 +625,7 @@ public final class SpecialFunction { } /* Gamma function computed by Stirling's formula. - * The polynomial STIR is valid for 33 <= x <= 172. + * The polynomial STIR is valid for 33 <= x <= 172. Cephes Math Library Release 2.2: July, 1992 Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier @@ -663,7 +662,6 @@ public final class SpecialFunction { * @param x double value * @return the Complemented Incomplete Gamma function. *

- * * Converted to Java from
* Cephes Math Library Release 2.2: July, 1992
* Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier
@@ -738,7 +736,6 @@ public final class SpecialFunction { * @param x double value * @return the Incomplete Gamma function. *

- * * Converted to Java from
* Cephes Math Library Release 2.2: July, 1992
* Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier
@@ -894,7 +891,6 @@ public final class SpecialFunction { * @param a double value * @return The complementary Error function *

- * * Converted to Java from
* Cephes Math Library Release 2.2: July, 1992
* Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier
@@ -995,10 +991,9 @@ public final class SpecialFunction { } /** - * @param a double value + * @param x double value * @return The Error function *

- * * Converted to Java from
* Cephes Math Library Release 2.2: July, 1992
* Copyright 1984, 1987, 1989, 1992 by Stephen L. Moshier
@@ -1175,7 +1170,6 @@ Direct inquiries to 30 Frost Street, Cambridge, MA 02140 * @param xx double value * @return The Incomplete Beta Function evaluated from zero to xx. *

- * * Converted to Java from
* Cephes Math Library Release 2.3: July, 1995
* Copyright 1984, 1995 by Stephen L. Moshier