Refactoring InterfaceGOParameters to the more generic InterfaceOptimizationParameters.

This commit is contained in:
Fabian Becker 2013-07-19 15:21:00 +02:00
parent 5297968fd2
commit 3b3c44ffc6
39 changed files with 225 additions and 218 deletions

View File

@ -37,6 +37,11 @@
<artifactId>jchart2d</artifactId> <artifactId>jchart2d</artifactId>
<version>3.3.2</version> <version>3.3.2</version>
</dependency> </dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
</dependencies> </dependencies>

View File

@ -1,5 +1,6 @@
package eva2; package eva2;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.mutation.InterfaceMutation; import eva2.optimization.operators.mutation.InterfaceMutation;
import eva2.optimization.operators.mutation.NoMutation; import eva2.optimization.operators.mutation.NoMutation;
import eva2.optimization.operators.mutation.MutateESFixedStepSize; import eva2.optimization.operators.mutation.MutateESFixedStepSize;
@ -54,7 +55,6 @@ import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.PBILPopulation; import eva2.optimization.populations.PBILPopulation;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem;
import eva2.optimization.modules.GOParameters;
import eva2.optimization.stat.InterfaceStatistics; import eva2.optimization.stat.InterfaceStatistics;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.util.ArrayList; import java.util.ArrayList;
@ -290,8 +290,8 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardMOGA(AbstractOptimizationProblem problem) { public static OptimizationParameters standardMOGA(AbstractOptimizationProblem problem) {
GOParameters gaParams = standardGA(problem); OptimizationParameters gaParams = standardGA(problem);
int archiveSize = 100; int archiveSize = 100;
int popSize = 100; int popSize = 100;
MultiObjectiveEA moga = createMultiObjectiveEA(gaParams.getOptimizer(), archiveSize, problem, null); MultiObjectiveEA moga = createMultiObjectiveEA(gaParams.getOptimizer(), archiveSize, problem, null);
@ -563,7 +563,7 @@ public class OptimizerFactory {
* @param optType optimizer identifier * @param optType optimizer identifier
* @param problem corresponding optimization problem * @param problem corresponding optimization problem
*/ */
public static GOParameters getParams(final int optType, public static OptimizationParameters getParams(final int optType,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
switch (optType) { switch (optType) {
case STD_ES: case STD_ES:
@ -647,7 +647,7 @@ public class OptimizerFactory {
AbstractOptimizationProblem problem, InterfaceTerminator terminator, AbstractOptimizationProblem problem, InterfaceTerminator terminator,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable opt = null; OptimizerRunnable opt = null;
GOParameters params = getParams(optType, problem); OptimizationParameters params = getParams(optType, problem);
if (params != null) { if (params != null) {
opt = new OptimizerRunnable(params, outputFilePrefix); opt = new OptimizerRunnable(params, outputFilePrefix);
if (terminator != null) { if (terminator != null) {
@ -660,14 +660,14 @@ public class OptimizerFactory {
} }
/** /**
* Produce a runnable optimizer from a GOParameters instance. Output is * Produce a runnable optimizer from a OptimizationParameters instance. Output is
* written to a file if the prefix String is given. * written to a file if the prefix String is given.
* *
* @param params * @param params
* @param outputFilePrefix * @param outputFilePrefix
* @return a runnable optimizer * @return a runnable optimizer
*/ */
public static OptimizerRunnable getOptRunnable(GOParameters params, String outputFilePrefix) { public static OptimizerRunnable getOptRunnable(OptimizationParameters params, String outputFilePrefix) {
return new OptimizerRunnable(params, outputFilePrefix); return new OptimizerRunnable(params, outputFilePrefix);
} }
@ -714,13 +714,13 @@ public class OptimizerFactory {
// /////////////////////// Creating default strategies // /////////////////////// Creating default strategies
/** /**
* Use lambda, default random seed and terminator to produce GOParameters. * Use lambda, default random seed and terminator to produce OptimizationParameters.
* *
* @param es * @param es
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters makeESParams(EvolutionStrategies es, public static OptimizationParameters makeESParams(EvolutionStrategies es,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return makeParams(es, es.getLambda(), problem, randSeed, getTerminator()); return makeParams(es, es.getLambda(), problem, randSeed, getTerminator());
} }
@ -735,7 +735,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem) { public static OptimizationParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem) {
return makeParams(opt, popSize, problem, randSeed, getTerminator()); return makeParams(opt, popSize, problem, randSeed, getTerminator());
} }
@ -749,7 +749,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters makeParams(InterfaceOptimizer opt, AbstractOptimizationProblem problem, InterfaceTerminator term) { public static OptimizationParameters makeParams(InterfaceOptimizer opt, AbstractOptimizationProblem problem, InterfaceTerminator term) {
return makeParams(opt, opt.getPopulation().getTargetSize(), problem, randSeed, term); return makeParams(opt, opt.getPopulation().getTargetSize(), problem, randSeed, term);
} }
@ -766,7 +766,7 @@ public class OptimizerFactory {
* @param term * @param term
* @return * @return
*/ */
public static GOParameters makeParams(InterfaceOptimizer opt, public static OptimizationParameters makeParams(InterfaceOptimizer opt,
int popSize, AbstractOptimizationProblem problem, long seed, int popSize, AbstractOptimizationProblem problem, long seed,
InterfaceTerminator term) { InterfaceTerminator term) {
Population pop = new Population(popSize); Population pop = new Population(popSize);
@ -776,7 +776,7 @@ public class OptimizerFactory {
} }
/** /**
* Create a GOParameters instance and prepare it with the given arguments. * Create a OptimizationParameters instance and prepare it with the given arguments.
* The result can be modified and then used to create an OptimizerRunnable, * The result can be modified and then used to create an OptimizerRunnable,
* which of course can simply be run. * which of course can simply be run.
* *
@ -788,10 +788,10 @@ public class OptimizerFactory {
* @param term * @param term
* @return * @return
*/ */
public static GOParameters makeParams(InterfaceOptimizer opt, public static OptimizationParameters makeParams(InterfaceOptimizer opt,
Population pop, AbstractOptimizationProblem problem, long seed, Population pop, AbstractOptimizationProblem problem, long seed,
InterfaceTerminator term) { InterfaceTerminator term) {
GOParameters params = new GOParameters(); OptimizationParameters params = new OptimizationParameters();
params.setProblem(problem); params.setProblem(problem);
opt.setProblem(problem); opt.setProblem(problem);
opt.setPopulation(pop); opt.setPopulation(pop);
@ -840,7 +840,7 @@ public class OptimizerFactory {
* @param outputFilePrefix * @param outputFilePrefix
* @return the OptimizerRunnable instance just started * @return the OptimizerRunnable instance just started
*/ */
public static OptimizerRunnable optimizeInThread(GOParameters params, String outputFilePrefix) { public static OptimizerRunnable optimizeInThread(OptimizationParameters params, String outputFilePrefix) {
return optimizeInThread(new OptimizerRunnable(params, outputFilePrefix)); return optimizeInThread(new OptimizerRunnable(params, outputFilePrefix));
} }
@ -859,7 +859,7 @@ public class OptimizerFactory {
} }
// ///////////////////////////// Optimize a given parameter instance // ///////////////////////////// Optimize a given parameter instance
public static BitSet optimizeToBinary(GOParameters params, public static BitSet optimizeToBinary(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
@ -886,20 +886,20 @@ public class OptimizerFactory {
return (runnable != null) ? runnable.getBinarySolution() : null; return (runnable != null) ? runnable.getBinarySolution() : null;
} }
public static double[] optimizeToDouble(GOParameters params, public static double[] optimizeToDouble(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
return runnable.getDoubleSolution(); return runnable.getDoubleSolution();
} }
public static double[] optimizeToDouble(GOParameters params) { public static double[] optimizeToDouble(OptimizationParameters params) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
false)); false));
return runnable.getDoubleSolution(); return runnable.getDoubleSolution();
} }
public static double[] optimizeToDouble(GOParameters params, InterfaceStatistics stats) { public static double[] optimizeToDouble(OptimizationParameters params, InterfaceStatistics stats) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, stats, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, stats,
false)); false));
return runnable.getDoubleSolution(); return runnable.getDoubleSolution();
@ -922,13 +922,13 @@ public class OptimizerFactory {
return (runnable != null) ? runnable.getDoubleSolution() : null; return (runnable != null) ? runnable.getDoubleSolution() : null;
} }
public static IndividualInterface optimizeToInd(GOParameters params) { public static IndividualInterface optimizeToInd(OptimizationParameters params) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
false)); false));
return runnable.getResult(); return runnable.getResult();
} }
public static IndividualInterface optimizeToInd(GOParameters params, public static IndividualInterface optimizeToInd(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
@ -952,7 +952,7 @@ public class OptimizerFactory {
return (runnable != null) ? runnable.getResult() : null; return (runnable != null) ? runnable.getResult() : null;
} }
public static Population optimizeToPop(GOParameters params, public static Population optimizeToPop(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
@ -1191,7 +1191,7 @@ public class OptimizerFactory {
* *
* @return a standard multi-start hill-climber * @return a standard multi-start hill-climber
*/ */
public static GOParameters hillClimbing( public static OptimizationParameters hillClimbing(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return hillClimbing(problem, 50); return hillClimbing(problem, 50);
} }
@ -1202,12 +1202,12 @@ public class OptimizerFactory {
* *
* @return a standard multi-start hill-climber * @return a standard multi-start hill-climber
*/ */
public static GOParameters hillClimbing( public static OptimizationParameters hillClimbing(
AbstractOptimizationProblem problem, int popSize) { AbstractOptimizationProblem problem, int popSize) {
return makeParams(new HillClimbing(), popSize, problem, randSeed, getTerminator()); return makeParams(new HillClimbing(), popSize, problem, randSeed, getTerminator());
} }
public static GOParameters monteCarlo( public static OptimizationParameters monteCarlo(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return makeParams(new MonteCarloSearch(), 50, problem, randSeed, getTerminator()); return makeParams(new MonteCarloSearch(), 50, problem, randSeed, getTerminator());
} }
@ -1225,7 +1225,7 @@ public class OptimizerFactory {
* @param popSize * @param popSize
* @return * @return
*/ */
public static GOParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt, public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt,
double clusterSigma, int minClustSize, int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) { double clusterSigma, int minClustSize, int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) {
return createCbn(problem, opt, new ClusteringDensityBased(clusterSigma, minClustSize), maxSpecSize, return createCbn(problem, opt, new ClusteringDensityBased(clusterSigma, minClustSize), maxSpecSize,
new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize); new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize);
@ -1238,14 +1238,14 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardCbnPSO(AbstractOptimizationProblem problem) { public static OptimizationParameters standardCbnPSO(AbstractOptimizationProblem problem) {
return createCbnPSO(problem, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, return createCbnPSO(problem, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize,
cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100); cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100);
} }
public static GOParameters createCbnPSO(AbstractOptimizationProblem problem, double clusterSigma, int minClustSize, public static OptimizationParameters createCbnPSO(AbstractOptimizationProblem problem, double clusterSigma, int minClustSize,
int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) { int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) {
GOParameters psoParams = standardPSO(problem); OptimizationParameters psoParams = standardPSO(problem);
ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer(); ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer();
ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize, ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize,
new IndividualDataMetric(ParticleSwarmOptimization.partBestPosKey)); new IndividualDataMetric(ParticleSwarmOptimization.partBestPosKey));
@ -1265,7 +1265,7 @@ public class OptimizerFactory {
* @param popSize * @param popSize
* @return * @return
*/ */
public static GOParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt, public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt,
InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength, InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength,
double haltingWindowEpsilon, int popSize) { double haltingWindowEpsilon, int popSize) {
ClusterBasedNichingEA cbn = new ClusterBasedNichingEA(); ClusterBasedNichingEA cbn = new ClusterBasedNichingEA();
@ -1289,7 +1289,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardCbnES(AbstractOptimizationProblem problem) { public static OptimizationParameters standardCbnES(AbstractOptimizationProblem problem) {
EvolutionStrategies es = new EvolutionStrategies(); EvolutionStrategies es = new EvolutionStrategies();
es.setMu(15); es.setMu(15);
es.setLambda(50); es.setLambda(50);
@ -1304,8 +1304,8 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardCbnCmaES(AbstractOptimizationProblem problem) { public static OptimizationParameters standardCbnCmaES(AbstractOptimizationProblem problem) {
GOParameters cmaEsParams = cmaES(problem); OptimizationParameters cmaEsParams = cmaES(problem);
EvolutionStrategies cmaES = (EvolutionStrategies) cmaEsParams.getOptimizer(); EvolutionStrategies cmaES = (EvolutionStrategies) cmaEsParams.getOptimizer();
return createCbn(problem, cmaES, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100); return createCbn(problem, cmaES, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100);
} }
@ -1317,7 +1317,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardCbnGA(AbstractOptimizationProblem problem) { public static OptimizationParameters standardCbnGA(AbstractOptimizationProblem problem) {
GeneticAlgorithm ga = new GeneticAlgorithm(); GeneticAlgorithm ga = new GeneticAlgorithm();
return createCbn(problem, ga, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100); return createCbn(problem, ga, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100);
} }
@ -1327,7 +1327,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardPBIL(AbstractOptimizationProblem problem) { public static OptimizationParameters standardPBIL(AbstractOptimizationProblem problem) {
PopulationBasedIncrementalLearning pbil = createPBIL(0.04, 0.01, 0.5, 1, PopulationBasedIncrementalLearning pbil = createPBIL(0.04, 0.01, 0.5, 1,
new SelectBestIndividuals(), 50, problem, null); new SelectBestIndividuals(), 50, problem, null);
@ -1345,7 +1345,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters stdClusteringHillClimbing( public static OptimizationParameters stdClusteringHillClimbing(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return clusteringHillClimbing(problem, 1000, 100, 0.000001, return clusteringHillClimbing(problem, 1000, 100, 0.000001,
PostProcessMethod.hillClimber, 0.05, 0.000001, 0.05); PostProcessMethod.hillClimber, 0.05, 0.000001, 0.05);
@ -1363,7 +1363,7 @@ public class OptimizerFactory {
* @param sigmaClust * @param sigmaClust
* @return * @return
*/ */
public static GOParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem, public static OptimizationParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem,
int evalCycle, int popSize, double minImprovement, double sigmaClust) { int evalCycle, int popSize, double minImprovement, double sigmaClust) {
return clusteringHillClimbing(problem, evalCycle, popSize, minImprovement, return clusteringHillClimbing(problem, evalCycle, popSize, minImprovement,
PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust); PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust);
@ -1384,7 +1384,7 @@ public class OptimizerFactory {
* @param sigmaClust * @param sigmaClust
* @return * @return
*/ */
public static GOParameters clusteringHillClimbing( public static OptimizationParameters clusteringHillClimbing(
AbstractOptimizationProblem problem, int evalCycle, int popSize, double minImprovement, AbstractOptimizationProblem problem, int evalCycle, int popSize, double minImprovement,
PostProcessMethod method, double hcInitialStep, double hcStepThresh, double sigmaClust) { PostProcessMethod method, double hcInitialStep, double hcStepThresh, double sigmaClust) {
ClusteringHillClimbing chc = new ClusteringHillClimbing(); ClusteringHillClimbing chc = new ClusteringHillClimbing();
@ -1401,7 +1401,7 @@ public class OptimizerFactory {
return makeParams(chc, popSize, problem, randSeed, getTerminator()); return makeParams(chc, popSize, problem, randSeed, getTerminator());
} }
public static GOParameters cmaES(AbstractOptimizationProblem problem) { public static OptimizationParameters cmaES(AbstractOptimizationProblem problem) {
EvolutionStrategies es = new EvolutionStrategies(); EvolutionStrategies es = new EvolutionStrategies();
es.setMu(15); es.setMu(15);
es.setLambda(50); es.setLambda(50);
@ -1428,11 +1428,11 @@ public class OptimizerFactory {
* @param problem the optimization problem * @param problem the optimization problem
* @return * @return
*/ */
public static GOParameters cmaESIPOP(AbstractOptimizationProblem problem) { public static OptimizationParameters cmaESIPOP(AbstractOptimizationProblem problem) {
return createCmaEsIPop(problem, 2.); return createCmaEsIPop(problem, 2.);
} }
public static GOParameters createCmaEsIPop(AbstractOptimizationProblem problem, double incLambdaFact) { public static OptimizationParameters createCmaEsIPop(AbstractOptimizationProblem problem, double incLambdaFact) {
EvolutionStrategies es = new EvolutionStrategyIPOP(); EvolutionStrategies es = new EvolutionStrategyIPOP();
AbstractEAIndividual indyTemplate = problem.getIndividualTemplate(); AbstractEAIndividual indyTemplate = problem.getIndividualTemplate();
@ -1460,7 +1460,7 @@ public class OptimizerFactory {
return makeESParams(es, problem); return makeESParams(es, problem);
} }
public static GOParameters standardNMS(AbstractOptimizationProblem problem) { public static OptimizationParameters standardNMS(AbstractOptimizationProblem problem) {
NelderMeadSimplex nms = NelderMeadSimplex.createNelderMeadSimplex(problem, null); NelderMeadSimplex nms = NelderMeadSimplex.createNelderMeadSimplex(problem, null);
return makeParams(nms, 50, problem, randSeed, getTerminator()); return makeParams(nms, 50, problem, randSeed, getTerminator());
} }
@ -1472,7 +1472,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardDE( public static OptimizationParameters standardDE(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
DifferentialEvolution de = new DifferentialEvolution(); DifferentialEvolution de = new DifferentialEvolution();
de.setDEType(DETypeEnum.DE2_CurrentToBest); // this sets current-to-best de.setDEType(DETypeEnum.DE2_CurrentToBest); // this sets current-to-best
@ -1483,7 +1483,7 @@ public class OptimizerFactory {
return makeParams(de, 50, problem, randSeed, getTerminator()); return makeParams(de, 50, problem, randSeed, getTerminator());
} }
public static GOParameters standardES( public static OptimizationParameters standardES(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
EvolutionStrategies es = new EvolutionStrategies(); EvolutionStrategies es = new EvolutionStrategies();
es.setMu(15); es.setMu(15);
@ -1499,7 +1499,7 @@ public class OptimizerFactory {
return makeESParams(es, problem); return makeESParams(es, problem);
} }
public static GOParameters standardGA( public static OptimizationParameters standardGA(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
GeneticAlgorithm ga = new GeneticAlgorithm(); GeneticAlgorithm ga = new GeneticAlgorithm();
ga.setElitism(true); ga.setElitism(true);
@ -1515,7 +1515,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardPSO( public static OptimizationParameters standardPSO(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
ParticleSwarmOptimization pso = new ParticleSwarmOptimization(); ParticleSwarmOptimization pso = new ParticleSwarmOptimization();
pso.setPhiValues(2.05, 2.05); pso.setPhiValues(2.05, 2.05);
@ -1524,7 +1524,7 @@ public class OptimizerFactory {
return makeParams(pso, 30, problem, randSeed, getTerminator()); return makeParams(pso, 30, problem, randSeed, getTerminator());
} }
public static GOParameters tribes(AbstractOptimizationProblem problem) { public static OptimizationParameters tribes(AbstractOptimizationProblem problem) {
return makeParams(new Tribes(), 1, problem, randSeed, getTerminator()); return makeParams(new Tribes(), 1, problem, randSeed, getTerminator());
} }
@ -1535,7 +1535,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters standardNichingEs(AbstractOptimizationProblem prob) { public static OptimizationParameters standardNichingEs(AbstractOptimizationProblem prob) {
// nichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak, // nichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak,
return createNichingEs(prob, -1, 100, 100, return createNichingEs(prob, -1, 100, 100,
// int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) { // int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) {
@ -1548,7 +1548,7 @@ public class OptimizerFactory {
* @param problem * @param problem
* @return * @return
*/ */
public static GOParameters createNichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak, int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) { public static OptimizationParameters createNichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak, int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) {
EsDpiNiching nes = new EsDpiNiching(nicheRadius, muPerPeak, lambdaPerPeak, expectedPeaks, rndImmigrants, explorerPeaks, resetExplInterval, etaPresel); EsDpiNiching nes = new EsDpiNiching(nicheRadius, muPerPeak, lambdaPerPeak, expectedPeaks, rndImmigrants, explorerPeaks, resetExplInterval, etaPresel);
if (assertIndyType(prob, InterfaceESIndividual.class)) { if (assertIndyType(prob, InterfaceESIndividual.class)) {
@ -1567,7 +1567,7 @@ public class OptimizerFactory {
* @param prob * @param prob
* @return * @return
*/ */
public static GOParameters standardNichingCmaEs(AbstractOptimizationProblem prob) { public static OptimizationParameters standardNichingCmaEs(AbstractOptimizationProblem prob) {
return createNichingCmaEs(prob, -1, 10, 10, 0, 0, -1); return createNichingCmaEs(prob, -1, 10, 10, 0, 0, -1);
} }
@ -1577,7 +1577,7 @@ public class OptimizerFactory {
* @param prob * @param prob
* @return * @return
*/ */
public static GOParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad) { public static OptimizationParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad) {
return createNichingCmaEs(prob, nicheRad, 10, 10, 0, 0, -1); return createNichingCmaEs(prob, nicheRad, 10, 10, 0, 0, -1);
} }
@ -1587,7 +1587,7 @@ public class OptimizerFactory {
* @param prob * @param prob
* @return * @return
*/ */
public static GOParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad, double stagnationEpsilon) { public static OptimizationParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad, double stagnationEpsilon) {
return createNichingCmaEs(prob, nicheRad, 10, 10, 0, 0, stagnationEpsilon); return createNichingCmaEs(prob, nicheRad, 10, 10, 0, 0, stagnationEpsilon);
} }
@ -1597,7 +1597,7 @@ public class OptimizerFactory {
* @param prob * @param prob
* @return * @return
*/ */
public static GOParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad, int nicheCount, double stagnationEpsilon) { public static OptimizationParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRad, int nicheCount, double stagnationEpsilon) {
return createNichingCmaEs(prob, nicheRad, 10, nicheCount, 0, 0, stagnationEpsilon); return createNichingCmaEs(prob, nicheRad, 10, nicheCount, 0, 0, stagnationEpsilon);
} }
@ -1612,7 +1612,7 @@ public class OptimizerFactory {
* @param resetExplInterval * @param resetExplInterval
* @return * @return
*/ */
public static GOParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRadius, int lambda, int expectedPeaks, int explorerPeaks, int resetExplInterval, double stagnationEpsilon) { public static OptimizationParameters createNichingCmaEs(AbstractOptimizationProblem prob, double nicheRadius, int lambda, int expectedPeaks, int explorerPeaks, int resetExplInterval, double stagnationEpsilon) {
EsDpiNiching nes = new EsDpiNichingCma(nicheRadius, lambda, expectedPeaks, explorerPeaks, resetExplInterval); EsDpiNiching nes = new EsDpiNichingCma(nicheRadius, lambda, expectedPeaks, explorerPeaks, resetExplInterval);
if (stagnationEpsilon > 0) { if (stagnationEpsilon > 0) {
nes.setEpsilonBound(stagnationEpsilon); nes.setEpsilonBound(stagnationEpsilon);

View File

@ -1,5 +1,6 @@
package eva2; package eva2;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.stat.StatisticsDummy; import eva2.optimization.stat.StatisticsDummy;
import eva2.optimization.stat.InterfaceStatistics; import eva2.optimization.stat.InterfaceStatistics;
import eva2.optimization.stat.StatisticsParameter; import eva2.optimization.stat.StatisticsParameter;
@ -8,7 +9,6 @@ import eva2.optimization.stat.StatisticsStandalone;
import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.stat.InterfaceTextListener;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.IndividualInterface; import eva2.optimization.go.IndividualInterface;
import eva2.optimization.go.InterfaceGOParameters;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeBinary;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
@ -17,7 +17,7 @@ import eva2.optimization.operators.postprocess.InterfacePostProcessParams;
import eva2.optimization.operators.postprocess.PostProcessParams; import eva2.optimization.operators.postprocess.PostProcessParams;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.populations.SolutionSet; import eva2.optimization.populations.SolutionSet;
import eva2.optimization.modules.GOParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.modules.Processor; import eva2.optimization.modules.Processor;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
@ -47,7 +47,7 @@ public class OptimizerRunnable implements Runnable {
* @param params * @param params
* @param outputFilePrefix * @param outputFilePrefix
*/ */
public OptimizerRunnable(GOParameters params, String outputFilePrefix) { public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix) {
this(params, outputFilePrefix, false); this(params, outputFilePrefix, false);
} }
@ -58,7 +58,7 @@ public class OptimizerRunnable implements Runnable {
* @param params * @param params
* @param restart * @param restart
*/ */
public OptimizerRunnable(GOParameters params, boolean restart) { public OptimizerRunnable(OptimizationParameters params, boolean restart) {
this(params, new StatisticsDummy(), restart); this(params, new StatisticsDummy(), restart);
} }
@ -71,7 +71,7 @@ public class OptimizerRunnable implements Runnable {
* @param outputFilePrefix * @param outputFilePrefix
* @param restart * @param restart
*/ */
public OptimizerRunnable(GOParameters params, String outputFilePrefix, boolean restart) { public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix, boolean restart) {
this(params, new StatisticsStandalone(outputFilePrefix), restart); this(params, new StatisticsStandalone(outputFilePrefix), restart);
} }
@ -83,7 +83,7 @@ public class OptimizerRunnable implements Runnable {
* @param outputFilePrefix * @param outputFilePrefix
* @param restart * @param restart
*/ */
public OptimizerRunnable(GOParameters params, InterfaceStatistics stats, boolean restart) { public OptimizerRunnable(OptimizationParameters params, InterfaceStatistics stats, boolean restart) {
rnblID = cntID; rnblID = cntID;
cntID++; cntID++;
@ -110,7 +110,7 @@ public class OptimizerRunnable implements Runnable {
return rnblID; return rnblID;
} }
public InterfaceGOParameters getGOParams() { public InterfaceOptimizationParameters getGOParams() {
return proc.getGOParams(); return proc.getGOParams();
} }
@ -122,7 +122,7 @@ public class OptimizerRunnable implements Runnable {
if (proc.isOptRunning()) { if (proc.isOptRunning()) {
throw new RuntimeException("Error - cannot change statistics instance during optimization."); throw new RuntimeException("Error - cannot change statistics instance during optimization.");
} }
InterfaceGOParameters params = proc.getGOParams(); InterfaceOptimizationParameters params = proc.getGOParams();
proc = new Processor(stats, null, params); proc = new Processor(stats, null, params);
if (proc.getStatistics() instanceof AbstractStatistics) { if (proc.getStatistics() instanceof AbstractStatistics) {
((AbstractStatistics)proc.getStatistics()).setSaveParams(false); ((AbstractStatistics)proc.getStatistics()).setSaveParams(false);

View File

@ -14,9 +14,9 @@ package eva2.client;
import eva2.EvAInfo; import eva2.EvAInfo;
import eva2.gui.*; import eva2.gui.*;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.AbstractModuleAdapter; import eva2.optimization.modules.AbstractModuleAdapter;
import eva2.optimization.modules.GOParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.modules.GenericModuleAdapter; import eva2.optimization.modules.GenericModuleAdapter;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
import eva2.optimization.stat.AbstractStatistics; import eva2.optimization.stat.AbstractStatistics;
@ -191,7 +191,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash * @param noSplash
* @param noGui * @param noGui
*/ */
public EvAClient(final String hostName, InterfaceGOParameters goParams, boolean autorun, boolean noSplash, boolean noGui) { public EvAClient(final String hostName, InterfaceOptimizationParameters goParams, boolean autorun, boolean noSplash, boolean noGui) {
this(hostName, null, null, goParams, autorun, noSplash, noGui, false); this(hostName, null, null, goParams, autorun, noSplash, noGui, false);
} }
@ -206,7 +206,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash * @param noSplash
* @param noGui * @param noGui
*/ */
public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceGOParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui) { public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui) {
this(hostName, parent, paramsFile, goParams, autorun, noSplash, noGui, false); this(hostName, parent, paramsFile, goParams, autorun, noSplash, noGui, false);
} }
@ -226,7 +226,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash * @param noSplash
* @param noGui * @param noGui
*/ */
public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceGOParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui, final boolean showTreeView) { public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui, final boolean showTreeView) {
clientInited = false; clientInited = false;
final SplashScreen splashScreen = new SplashScreen(EvAInfo.splashLocation); final SplashScreen splashScreen = new SplashScreen(EvAInfo.splashLocation);
@ -352,7 +352,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* Sets given hostname and tries to load GOParamsters from given file if non * Sets given hostname and tries to load GOParamsters from given file if non
* null. * null.
*/ */
private void init(String hostName, String paramsFile, InterfaceGOParameters goParams, final Window parent) { private void init(String hostName, String paramsFile, InterfaceOptimizationParameters goParams, final Window parent) {
useDefaultModule = EvAInfo.propDefaultModule(); useDefaultModule = EvAInfo.propDefaultModule();
this.parentWindow = parent; this.parentWindow = parent;
@ -497,7 +497,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* try to load parameters from file * try to load parameters from file
*/ */
if (goParams == null && (paramsFile != null && (paramsFile.length() > 0))) { if (goParams == null && (paramsFile != null && (paramsFile.length() > 0))) {
goParams = GOParameters.getInstance(paramsFile, false); goParams = OptimizationParameters.getInstance(paramsFile, false);
} }
loadSpecificModule(useDefaultModule, goParams);//loadSpecificModule loadSpecificModule(useDefaultModule, goParams);//loadSpecificModule
} }
@ -643,7 +643,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* optimization * optimization
* @param windowListener additional window listener for client frame * @param windowListener additional window listener for client frame
*/ */
public static EvAClient initClientGUI(GOParameters goParams, public static EvAClient initClientGUI(OptimizationParameters goParams,
InterfaceStatisticsListener statisticsListener, InterfaceStatisticsListener statisticsListener,
WindowListener windowListener, final Window parent) { WindowListener windowListener, final Window parent) {
EvAClient evaClient; EvAClient evaClient;
@ -809,7 +809,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* *
* @return * @return
*/ */
public InterfaceGOParameters getGOParameters() { public InterfaceOptimizationParameters getGOParameters() {
if (currentModuleAdapter != null) { if (currentModuleAdapter != null) {
if (currentModuleAdapter instanceof AbstractModuleAdapter) { if (currentModuleAdapter instanceof AbstractModuleAdapter) {
return ((AbstractModuleAdapter) currentModuleAdapter).getGOParameters(); return ((AbstractModuleAdapter) currentModuleAdapter).getGOParameters();
@ -839,7 +839,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
} }
} }
private void loadSpecificModule(String selectedModule, InterfaceGOParameters goParams) { private void loadSpecificModule(String selectedModule, InterfaceOptimizationParameters goParams) {
ModuleAdapter newModuleAdapter = null; ModuleAdapter newModuleAdapter = null;
// //
try { try {
@ -888,7 +888,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
/* ToDo: Find a way to properly add the TreeView to the GOPanel */ /* ToDo: Find a way to properly add the TreeView to the GOPanel */
if (withTreeView && (newModuleAdapter instanceof AbstractModuleAdapter)) { if (withTreeView && (newModuleAdapter instanceof AbstractModuleAdapter)) {
JComponent tree = null; JComponent tree = null;
tree = getEvATreeView(frameMaker.getGOPanel(), "GOParameters", ((AbstractModuleAdapter) newModuleAdapter).getGOParameters()); tree = getEvATreeView(frameMaker.getGOPanel(), "OptimizationParameters", ((AbstractModuleAdapter) newModuleAdapter).getGOParameters());
gbConstraints.gridx = 0; gbConstraints.gridx = 0;
gbConstraints.gridy = 0; gbConstraints.gridy = 0;
gbConstraints.fill = GridBagConstraints.BOTH; gbConstraints.fill = GridBagConstraints.BOTH;

View File

@ -10,13 +10,11 @@ package eva2.client;
* $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $ * $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $
* $Author: mkron $ * $Author: mkron $
*/ */
import eva2.EvAInfo;
import eva2.gui.LoggingPanel; import eva2.gui.LoggingPanel;
import eva2.optimization.EvAMainAdapter; import eva2.optimization.EvAMainAdapter;
import eva2.optimization.EvAMainAdapterImpl; import eva2.optimization.EvAMainAdapterImpl;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
import java.rmi.RemoteException;
/** /**
* *
@ -50,7 +48,7 @@ public class EvAComAdapter {
* *
* @return * @return
*/ */
public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceGOParameters goParams, String noGuiStatsFile) { public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile) {
ModuleAdapter newModuleAdapter; ModuleAdapter newModuleAdapter;
newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile); newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile);

View File

@ -4,7 +4,7 @@ import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operators.postprocess.PostProcessParams; import eva2.optimization.operators.postprocess.PostProcessParams;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.FM0Problem;
import eva2.optimization.modules.GOParameters; import eva2.optimization.modules.OptimizationParameters;
import java.util.List; import java.util.List;
public class TestingCbnPostProc { public class TestingCbnPostProc {
@ -14,7 +14,7 @@ public class TestingCbnPostProc {
AbstractEAIndividual best; AbstractEAIndividual best;
List<AbstractEAIndividual> ppSols; List<AbstractEAIndividual> ppSols;
GOParameters esParams = OptimizerFactory.standardCbnES(fm0); OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0);
esParams.setTerminator(new EvaluationTerminator(2000)); esParams.setTerminator(new EvaluationTerminator(2000));
esParams.setSeed(0); esParams.setSeed(0);
best = (AbstractEAIndividual)OptimizerFactory.optimizeToInd(esParams, null); best = (AbstractEAIndividual)OptimizerFactory.optimizeToInd(esParams, null);

View File

@ -5,7 +5,7 @@ import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.modules.GOParameters; import eva2.optimization.modules.OptimizationParameters;
import java.util.BitSet; import java.util.BitSet;
public class TestingGAB1 { public class TestingGAB1 {
@ -13,7 +13,7 @@ public class TestingGAB1 {
B1Problem b1 = new B1Problem(); B1Problem b1 = new B1Problem();
BitSet sol; BitSet sol;
// default go-parameter instance with a GA // default go-parameter instance with a GA
GOParameters gaParams = OptimizerFactory.standardGA(b1); OptimizationParameters gaParams = OptimizerFactory.standardGA(b1);
// add an evaluation terminator // add an evaluation terminator
gaParams.setTerminator(new EvaluationTerminator(1000)); gaParams.setTerminator(new EvaluationTerminator(1000));
// set a specific random seed // set a specific random seed

View File

@ -2,12 +2,12 @@ package eva2.examples;
import eva2.OptimizerFactory; import eva2.OptimizerFactory;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.crossover.CrossoverESDefault; import eva2.optimization.operators.crossover.CrossoverESDefault;
import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaption; import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaption;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.FM0Problem;
import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.EvolutionStrategies;
import eva2.optimization.modules.GOParameters;
public class TestingPlusCmaEs { public class TestingPlusCmaEs {
@ -16,7 +16,7 @@ public class TestingPlusCmaEs {
FM0Problem fm0 = new FM0Problem(); FM0Problem fm0 = new FM0Problem();
AbstractEAIndividual bestIndy; AbstractEAIndividual bestIndy;
// create standard ES parameters // create standard ES parameters
GOParameters esParams = OptimizerFactory.standardES(fm0); OptimizationParameters esParams = OptimizerFactory.standardES(fm0);
esParams.setTerminator(new EvaluationTerminator(2000)); esParams.setTerminator(new EvaluationTerminator(2000));
// set a random seed based on system time // set a random seed based on system time
esParams.setSeed(0); esParams.setSeed(0);

View File

@ -5,7 +5,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
/** /**
* The node class for the EvA2 tree view panel. Each node contains a parameter object. * The node class for the EvA2 tree view panel. Each node contains a parameter object.
* Typically, the tree hierarchy starts with a * Typically, the tree hierarchy starts with a
* GOParameters object, however this is not necessary. * OptimizationParameters object, however this is not necessary.
* The tree is constructed using the reflection functionality of PropertySheetPanel * The tree is constructed using the reflection functionality of PropertySheetPanel
* which is also used to generate the nested panels for parameter configuration. * which is also used to generate the nested panels for parameter configuration.
* *

View File

@ -8,7 +8,7 @@ package eva2.optimization;
* $Date: 2007-11-16 17:25:09 +0100 (Fri, 16 Nov 2007) $ * $Date: 2007-11-16 17:25:09 +0100 (Fri, 16 Nov 2007) $
* $Author: mkron $ * $Author: mkron $
*/ */
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
/** /**
* *
@ -20,5 +20,5 @@ public interface EvAMainAdapter {
ModuleAdapter getModuleAdapter(String selectedModuleName); ModuleAdapter getModuleAdapter(String selectedModuleName);
ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceGOParameters goParams, String noGuiStatsFile); ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile);
} }

View File

@ -10,7 +10,7 @@ package eva2.optimization;
* $Author: mkron $ * $Author: mkron $
*/ */
import eva2.EvAInfo; import eva2.EvAInfo;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
/** /**
* *
@ -35,7 +35,7 @@ public class EvAMainAdapterImpl implements EvAMainAdapter {
} }
@Override @Override
public ModuleAdapter getModuleAdapter(String selectedModule, InterfaceGOParameters goParams, String noGuiStatsFile) { public ModuleAdapter getModuleAdapter(String selectedModule, InterfaceOptimizationParameters goParams, String noGuiStatsFile) {
return moduleServer.createModuleAdapter(selectedModule, goParams, noGuiStatsFile); return moduleServer.createModuleAdapter(selectedModule, goParams, noGuiStatsFile);
} }
} }

View File

@ -10,7 +10,7 @@ package eva2.optimization;
* $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $ * $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $
* $Author: mkron $ * $Author: mkron $
*/ */
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.GOModuleAdapter; import eva2.optimization.modules.GOModuleAdapter;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
import eva2.tools.EVAERROR; import eva2.tools.EVAERROR;
@ -105,7 +105,7 @@ public class ModuleServer {
* *
* @return the loaded module adapter instance * @return the loaded module adapter instance
*/ */
public ModuleAdapter createModuleAdapter(String selectedModuleName, InterfaceGOParameters goParams, String noGuiLogFile) { public ModuleAdapter createModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiLogFile) {
moduleAdapterCounter++; moduleAdapterCounter++;
String adapterName = "ERROR MODULADAPTER !!"; String adapterName = "ERROR MODULADAPTER !!";
String moduleName = null; String moduleName = null;
@ -147,7 +147,7 @@ public class ModuleServer {
} else { } else {
Object[] param = new Object[4]; Object[] param = new Object[4];
param[0] = (String) adapterName; param[0] = (String) adapterName;
param[1] = (InterfaceGOParameters) goParams; param[1] = (InterfaceOptimizationParameters) goParams;
param[2] = (String) noGuiLogFile; param[2] = (String) noGuiLogFile;
while ((constructorArr[constrIndex].getParameterTypes().length != 4) && (constrIndex < constructorArr.length)) { while ((constructorArr[constrIndex].getParameterTypes().length != 4) && (constrIndex < constructorArr.length)) {
constrIndex++; constrIndex++;

View File

@ -6,6 +6,7 @@ import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.ESIndividualDoubleData;
import eva2.optimization.individuals.GAIndividualDoubleData; import eva2.optimization.individuals.GAIndividualDoubleData;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.crossover.CrossoverGAGINPoint; import eva2.optimization.operators.crossover.CrossoverGAGINPoint;
import eva2.optimization.operators.mutation.InterfaceMutation; import eva2.optimization.operators.mutation.InterfaceMutation;
import eva2.optimization.operators.mutation.MutateESFixedStepSize; import eva2.optimization.operators.mutation.MutateESFixedStepSize;
@ -17,7 +18,6 @@ import eva2.optimization.problems.F1Problem;
import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.EvolutionStrategies;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.modules.GOParameters;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.List; import java.awt.List;
@ -58,7 +58,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
//transient private InterfaceOptimizer optimizer = new EvolutionaryMultiObjectiveOptimization(); //transient private InterfaceOptimizer optimizer = new EvolutionaryMultiObjectiveOptimization();
//transient private InterfaceOptimizationProblem problem = new TF1Problem(); //transient private InterfaceOptimizationProblem problem = new TF1Problem();
//transient private int functionCalls = 1000; //transient private int functionCalls = 1000;
private GOParameters m_GO; private OptimizationParameters m_GO;
transient private int m_MultiRuns = 1; transient private int m_MultiRuns = 1;
transient private int m_RecentFC; transient private int m_RecentFC;
transient private int currentExperiment = 0; transient private int currentExperiment = 0;
@ -88,7 +88,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
// this.m_List.add("Test2"); // this.m_List.add("Test2");
// this.m_List.add("Test3"); // this.m_List.add("Test3");
// this.m_yself = this; // this.m_yself = this;
this.m_GO = GOParameters.getInstance(); this.m_GO = OptimizationParameters.getInstance();
this.m_ExperimentName = this.m_GO.getOptimizer().getName() + "-" + this.m_PerformedRuns.size(); this.m_ExperimentName = this.m_GO.getOptimizer().getName() + "-" + this.m_PerformedRuns.size();
this.m_GO.addPopulationChangedEventListener(this); this.m_GO.addPopulationChangedEventListener(this);
RNG.setRandomSeed(m_GO.getSeed()); RNG.setRandomSeed(m_GO.getSeed());
@ -98,7 +98,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
* This method allows you to get the current GO parameters * This method allows you to get the current GO parameters
* *
*/ */
public GOParameters getGOParameters() { public OptimizationParameters getGOParameters() {
return this.m_GO; return this.m_GO;
} }

View File

@ -12,7 +12,7 @@ import eva2.optimization.strategies.InterfaceOptimizer;
* Time: 13:14:06 * Time: 13:14:06
* To change this template use Options | File Templates. * To change this template use Options | File Templates.
*/ */
public interface InterfaceGOParameters { public interface InterfaceOptimizationParameters {
/** This method returns a global info string /** This method returns a global info string
* @return description * @return description

View File

@ -9,7 +9,7 @@ package eva2.optimization.modules;
* $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $ * $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $
* $Author: mkron $ * $Author: mkron $
*/ */
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceProcessor; import eva2.optimization.go.InterfaceProcessor;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import java.io.Serializable; import java.io.Serializable;
@ -108,7 +108,7 @@ abstract public class AbstractModuleAdapter implements ModuleAdapter, Serializab
} }
} }
public InterfaceGOParameters getGOParameters() { public InterfaceOptimizationParameters getGOParameters() {
if ((processor != null) && (processor instanceof Processor)) { if ((processor != null) && (processor instanceof Processor)) {
return ((Processor) processor).getGOParams(); return ((Processor) processor).getGOParams();
} else { } else {
@ -116,7 +116,7 @@ abstract public class AbstractModuleAdapter implements ModuleAdapter, Serializab
} }
} }
public void setGOParameters(InterfaceGOParameters goParams) { public void setGOParameters(InterfaceOptimizationParameters goParams) {
if ((processor != null) && (processor instanceof Processor)) { if ((processor != null) && (processor instanceof Processor)) {
((Processor) processor).setGOParams(goParams); ((Processor) processor).setGOParams(goParams);
} }

View File

@ -1,7 +1,7 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfaceNotifyOnInformers;
import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
@ -20,8 +20,8 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public abstract class AbstractGOParameters implements InterfaceGOParameters, Serializable { public abstract class AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
protected static final Logger LOGGER = Logger.getLogger(AbstractGOParameters.class.getName()); protected static final Logger LOGGER = Logger.getLogger(AbstractOptimizationParameters.class.getName());
protected long randomSeed = (long)0.0; protected long randomSeed = (long)0.0;
// Opt. Algorithms and Parameters // Opt. Algorithms and Parameters
@ -32,20 +32,20 @@ public abstract class AbstractGOParameters implements InterfaceGOParameters, Ser
transient protected InterfacePopulationChangedEventListener populationChangedEventListener; transient protected InterfacePopulationChangedEventListener populationChangedEventListener;
transient private List<InterfaceNotifyOnInformers> toInformAboutInformers = null; transient private List<InterfaceNotifyOnInformers> toInformAboutInformers = null;
protected AbstractGOParameters() { protected AbstractOptimizationParameters() {
} }
protected AbstractGOParameters(AbstractGOParameters goParameters) { protected AbstractOptimizationParameters(AbstractOptimizationParameters optimizationParameters) {
this(); this();
this.optimizer = goParameters.optimizer; this.optimizer = optimizationParameters.optimizer;
this.problem = goParameters.problem; this.problem = optimizationParameters.problem;
this.terminator = goParameters.terminator; this.terminator = optimizationParameters.terminator;
this.optimizer.setProblem(this.problem); this.optimizer.setProblem(this.problem);
this.randomSeed = goParameters.randomSeed; this.randomSeed = optimizationParameters.randomSeed;
this.postProcessing = goParameters.postProcessing; this.postProcessing = optimizationParameters.postProcessing;
} }
public AbstractGOParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) { public AbstractOptimizationParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) {
this(); this();
optimizer = opt; optimizer = opt;
problem = prob; problem = prob;
@ -57,15 +57,15 @@ public abstract class AbstractGOParameters implements InterfaceGOParameters, Ser
/** /**
* Apply the given GO parameter settings to this instance. This maintains the listeners etc. * Apply the given GO parameter settings to this instance. This maintains the listeners etc.
* *
* @param src * @param parameters
*/ */
public void setSameParams(AbstractGOParameters src) { public void setSameParams(AbstractOptimizationParameters parameters) {
setOptimizer(src.optimizer); setOptimizer(parameters.optimizer);
setProblem(src.problem); setProblem(parameters.problem);
setTerminator(src.terminator); setTerminator(parameters.terminator);
this.optimizer.setProblem(this.problem); this.optimizer.setProblem(this.problem);
setSeed(src.randomSeed); setSeed(parameters.randomSeed);
setPostProcessParams(src.postProcessing); setPostProcessParams(parameters.postProcessing);
} }
/** /**

View File

@ -1,7 +1,7 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.enums.DETypeEnum; import eva2.optimization.enums.DETypeEnum;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
@ -22,7 +22,7 @@ import java.util.logging.Level;
* Time: 13:49:09 * Time: 13:49:09
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class DEParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class DEParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**

View File

@ -1,7 +1,7 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.selection.InterfaceSelection;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
@ -23,7 +23,7 @@ import java.util.logging.Logger;
* Time: 13:49:09 * Time: 13:49:09
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class EPParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class EPParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
private static final Logger LOGGER = Logger.getLogger(EPParameters.class.getName()); private static final Logger LOGGER = Logger.getLogger(EPParameters.class.getName());

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.selection.InterfaceSelection;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
@ -22,7 +22,7 @@ import java.util.logging.Logger;
* Time: 21:29:34 * Time: 21:29:34
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class GAParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class GAParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
private static final Logger LOGGER = Logger.getLogger(GAParameters.class.getName()); private static final Logger LOGGER = Logger.getLogger(GAParameters.class.getName());

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import java.io.Serializable; import java.io.Serializable;
@ -25,26 +25,26 @@ public class GOModuleAdapter extends GenericModuleAdapter implements ModuleAdapt
* @param Client the client instance * @param Client the client instance
*/ */
public GOModuleAdapter(String adapterName) { public GOModuleAdapter(String adapterName) {
super(adapterName, "", GOParameters.getInstance(), false); super(adapterName, "", OptimizationParameters.getInstance(), false);
} }
/** /**
* Starts a statistics GUI and the GOProcessor thread with a given GOParameters file. * Starts a statistics GUI and the GOProcessor thread with a given OptimizationParameters file.
* *
* @param AdapterName the title of the ModulAdapter * @param AdapterName the title of the ModulAdapter
* @param Client the client instance * @param Client the client instance
*/ */
public GOModuleAdapter(String adapterName, InterfaceGOParameters goParams, String noGuiLogFile) { public GOModuleAdapter(String adapterName, InterfaceOptimizationParameters goParams, String noGuiLogFile) {
super(adapterName, "", goParams, false, noGuiLogFile); super(adapterName, "", goParams, false, noGuiLogFile);
} }
// /** // /**
// * Starts a statistics GUI and the GOProcessor thread with a given GOParameters file. // * Starts a statistics GUI and the GOProcessor thread with a given OptimizationParameters file.
// * // *
// * @param AdapterName the title of the ModulAdapter // * @param AdapterName the title of the ModulAdapter
// * @param Client the client instance // * @param Client the client instance
// */ // */
// public GOModuleAdapter(String adapterName, String serParamsFile, String noGuiLogFile, MainAdapterClient client) { // public GOModuleAdapter(String adapterName, String serParamsFile, String noGuiLogFile, MainAdapterClient client) {
// //super(adapterName, "", client, GOParameters.getInstance(serParamsFile, false), false); // //super(adapterName, "", client, OptimizationParameters.getInstance(serParamsFile, false), false);
// super(adapterName, "", client, GOParameters.getInstance(serParamsFile, serParamsFile==null), false, noGuiLogFile); // super(adapterName, "", client, OptimizationParameters.getInstance(serParamsFile, serParamsFile==null), false, noGuiLogFile);
// } // }
} }

View File

@ -5,7 +5,7 @@ import eva2.gui.EvAModuleButtonPanelMaker;
import eva2.gui.EvATabbedFrameMaker; import eva2.gui.EvATabbedFrameMaker;
import eva2.gui.GenericObjectEditor; import eva2.gui.GenericObjectEditor;
import eva2.gui.JParaPanel; import eva2.gui.JParaPanel;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.stat.AbstractStatistics; import eva2.optimization.stat.AbstractStatistics;
import eva2.optimization.stat.EvAJob; import eva2.optimization.stat.EvAJob;
import eva2.optimization.stat.EvAJobList; import eva2.optimization.stat.EvAJobList;
@ -13,7 +13,6 @@ import eva2.optimization.stat.InterfaceStatisticsParameter;
import eva2.optimization.stat.StatisticsStandalone; import eva2.optimization.stat.StatisticsStandalone;
import eva2.optimization.stat.StatisticsWithGUI; import eva2.optimization.stat.StatisticsWithGUI;
import java.io.Serializable; import java.io.Serializable;
import java.lang.reflect.Proxy;
public class GenericModuleAdapter extends AbstractModuleAdapter implements Serializable { public class GenericModuleAdapter extends AbstractModuleAdapter implements Serializable {
@ -33,7 +32,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria
* @param noGUIStatOut If null, statistics with GUI are used, else the standalone statistics * @param noGUIStatOut If null, statistics with GUI are used, else the standalone statistics
* with given output filename. * with given output filename.
*/ */
public GenericModuleAdapter(String adapterName, String helperFName, InterfaceGOParameters params, boolean optimizerExpert, String noGUIStatOut) { public GenericModuleAdapter(String adapterName, String helperFName, InterfaceOptimizationParameters params, boolean optimizerExpert, String noGUIStatOut) {
remoteModuleAdapter = this; remoteModuleAdapter = this;
this.adapterName = adapterName; this.adapterName = adapterName;
helperFilename = helperFName; helperFilename = helperFName;
@ -64,7 +63,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria
* @param params a parameter set describing the optimizer module * @param params a parameter set describing the optimizer module
* @param optimizerExpert set to true if setting the optimizer is an expert option being hidden from the gui * @param optimizerExpert set to true if setting the optimizer is an expert option being hidden from the gui
*/ */
public GenericModuleAdapter(String adapterName, String helperFName, InterfaceGOParameters params, boolean optimizerExpert) { public GenericModuleAdapter(String adapterName, String helperFName, InterfaceOptimizationParameters params, boolean optimizerExpert) {
this(adapterName, helperFName, params, optimizerExpert, null); this(adapterName, helperFName, params, optimizerExpert, null);
} }
@ -92,7 +91,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria
EvAModuleButtonPanelMaker ButtonPanel = new EvAModuleButtonPanelMaker(remoteModuleAdapter, ((Processor) processor).isOptRunning()); EvAModuleButtonPanelMaker ButtonPanel = new EvAModuleButtonPanelMaker(remoteModuleAdapter, ((Processor) processor).isOptRunning());
ButtonPanel.setHelperFilename(helperFilename); ButtonPanel.setHelperFilename(helperFilename);
frmMkr.addPanelMaker(ButtonPanel); frmMkr.addPanelMaker(ButtonPanel);
InterfaceGOParameters goParams = ((Processor) processor).getGOParams(); InterfaceOptimizationParameters goParams = ((Processor) processor).getGOParams();
frmMkr.addPanelMaker(paramPanel = new JParaPanel(goParams, goParams.getName())); frmMkr.addPanelMaker(paramPanel = new JParaPanel(goParams, goParams.getName()));
@ -144,7 +143,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria
} }
@Override @Override
public void setGOParameters(InterfaceGOParameters goParams) { public void setGOParameters(InterfaceOptimizationParameters goParams) {
super.setGOParameters(goParams); super.setGOParameters(goParams);
paramPanel.getEditor().setValue(goParams); paramPanel.getEditor().setValue(goParams);
} }

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
@ -21,7 +21,7 @@ import java.util.logging.Level;
* Time: 21:19:20 * Time: 21:19:20
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class HCParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class HCParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
@ -20,7 +20,7 @@ import java.util.logging.Level;
* Time: 21:07:40 * Time: 21:07:40
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class MCParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class MCParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.archiving.InterfaceArchiving; import eva2.optimization.operators.archiving.InterfaceArchiving;
import eva2.optimization.operators.archiving.InterfaceInformationRetrieval; import eva2.optimization.operators.archiving.InterfaceInformationRetrieval;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
@ -22,7 +22,7 @@ import java.util.logging.Level;
* Time: 13:49:09 * Time: 13:49:09
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class MOEAParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class MOEAParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.F1Problem;
@ -23,10 +23,10 @@ import java.util.logging.Level;
* $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $ * $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $
* $Author: mkron $ * $Author: mkron $
*/ */
public class GOParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class OptimizationParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
public static GOParameters getInstance() { public static OptimizationParameters getInstance() {
return getInstance("GOParameters.ser", true); return getInstance("OptimizationParameters.ser", true);
} }
/** /**
@ -34,36 +34,36 @@ public class GOParameters extends AbstractGOParameters implements InterfaceGOPar
* *
* @param serParamFile * @param serParamFile
* @param casually if true, standard parameters are used quietly if the params cannot be loaded * @param casually if true, standard parameters are used quietly if the params cannot be loaded
* @return a GOParameters instance * @return a OptimizationParameters instance
*/ */
public static GOParameters getInstance(String serParamFile, final boolean casually) { public static OptimizationParameters getInstance(String serParamFile, final boolean casually) {
GOParameters instance = null; OptimizationParameters instance = null;
try { try {
FileInputStream fileStream = new FileInputStream(serParamFile); FileInputStream fileStream = new FileInputStream(serParamFile);
instance = (GOParameters) Serializer.loadObject(fileStream, casually); instance = (OptimizationParameters) Serializer.loadObject(fileStream, casually);
} catch (FileNotFoundException ex) { } catch (FileNotFoundException ex) {
LOGGER.log(Level.WARNING, "Could not load instance object.", ex); LOGGER.log(Level.WARNING, "Could not load instance object.", ex);
} }
if (instance == null) { if (instance == null) {
instance = new GOParameters(); instance = new OptimizationParameters();
} }
return instance; return instance;
} }
public GOParameters() { public OptimizationParameters() {
super(new GeneticAlgorithm(), new F1Problem(), new EvaluationTerminator(1000)); super(new GeneticAlgorithm(), new F1Problem(), new EvaluationTerminator(1000));
} }
public GOParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) { public OptimizationParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) {
super(opt, prob, term); super(opt, prob, term);
} }
/** /**
* *
*/ */
private GOParameters(GOParameters Source) { private OptimizationParameters(OptimizationParameters parameters) {
super(Source); super(parameters);
} }
/** /**
* *
@ -77,7 +77,7 @@ public class GOParameters extends AbstractGOParameters implements InterfaceGOPar
*/ */
@Override @Override
public Object clone() { public Object clone() {
return new GOParameters(this); return new OptimizationParameters(this);
} }
/** This method returns a global info string. /** This method returns a global info string.

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.selection.InterfaceSelection;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
@ -22,7 +22,7 @@ import java.util.logging.Level;
* Time: 21:53:29 * Time: 21:53:29
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class PBILParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class PBILParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -2,7 +2,7 @@ package eva2.optimization.modules;
import eva2.gui.GenericObjectEditor; import eva2.gui.GenericObjectEditor;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
@ -24,7 +24,7 @@ import java.util.logging.Level;
* Time: 17:58:37 * Time: 17:58:37
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class PSOParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class PSOParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -1,11 +1,7 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.*;
import eva2.optimization.go.PopulationInterface; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceProcessor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.InterfaceGOParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.operators.paramcontrol.ConstantParameters; import eva2.optimization.operators.paramcontrol.ConstantParameters;
@ -51,7 +47,7 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
private static final Logger LOGGER = Logger.getLogger(Processor.class.getName()); private static final Logger LOGGER = Logger.getLogger(Processor.class.getName());
private volatile boolean isOptimizationRunning; private volatile boolean isOptimizationRunning;
private InterfaceStatistics m_Statistics; private InterfaceStatistics m_Statistics;
private InterfaceGOParameters goParams; private InterfaceOptimizationParameters goParams;
private boolean m_createInitialPopulations = true; private boolean m_createInitialPopulations = true;
private boolean saveParams = true; private boolean saveParams = true;
private OptimizationStateListener optimizationStateListener; private OptimizationStateListener optimizationStateListener;
@ -76,7 +72,7 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
* *
* @see InterfaceNotifyOnInformers * @see InterfaceNotifyOnInformers
*/ */
public Processor(InterfaceStatistics Stat, ModuleAdapter moduleAdapter, InterfaceGOParameters params) { public Processor(InterfaceStatistics Stat, ModuleAdapter moduleAdapter, InterfaceOptimizationParameters params) {
goParams = params; goParams = params;
m_Statistics = Stat; m_Statistics = Stat;
optimizationStateListener = moduleAdapter; optimizationStateListener = moduleAdapter;
@ -321,17 +317,17 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
} }
} }
private void maybeInitParamCtrl(InterfaceGOParameters goParams) { private void maybeInitParamCtrl(InterfaceOptimizationParameters goParams) {
iterateParamCtrl(goParams.getOptimizer(), "init", new Object[]{goParams.getOptimizer(), goParams.getOptimizer().getPopulation()}); iterateParamCtrl(goParams.getOptimizer(), "init", new Object[]{goParams.getOptimizer(), goParams.getOptimizer().getPopulation()});
iterateParamCtrl(goParams.getProblem(), "init", new Object[]{goParams.getProblem(), goParams.getOptimizer().getPopulation()}); iterateParamCtrl(goParams.getProblem(), "init", new Object[]{goParams.getProblem(), goParams.getOptimizer().getPopulation()});
} }
private void maybeFinishParamCtrl(InterfaceGOParameters goParams) { private void maybeFinishParamCtrl(InterfaceOptimizationParameters goParams) {
iterateParamCtrl(goParams.getOptimizer(), "finish", new Object[]{goParams.getOptimizer(), goParams.getOptimizer().getPopulation()}); iterateParamCtrl(goParams.getOptimizer(), "finish", new Object[]{goParams.getOptimizer(), goParams.getOptimizer().getPopulation()});
iterateParamCtrl(goParams.getProblem(), "finish", new Object[]{goParams.getProblem(), goParams.getOptimizer().getPopulation()}); iterateParamCtrl(goParams.getProblem(), "finish", new Object[]{goParams.getProblem(), goParams.getOptimizer().getPopulation()});
} }
private void maybeUpdateParamCtrl(InterfaceGOParameters goParams) { private void maybeUpdateParamCtrl(InterfaceOptimizationParameters goParams) {
Object[] args; Object[] args;
InterfaceTerminator terminator = goParams.getTerminator(); InterfaceTerminator terminator = goParams.getTerminator();
InterfaceOptimizer optimizer = goParams.getOptimizer(); InterfaceOptimizer optimizer = goParams.getOptimizer();
@ -451,11 +447,11 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
/** /**
* These methods allow you to get and set the Module Parameters. * These methods allow you to get and set the Module Parameters.
*/ */
public InterfaceGOParameters getGOParams() { public InterfaceOptimizationParameters getGOParams() {
return goParams; return goParams;
} }
public void setGOParams(InterfaceGOParameters params) { public void setGOParams(InterfaceOptimizationParameters params) {
if (params != null) { if (params != null) {
goParams = params; goParams = params;
} else { } else {

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
@ -23,7 +23,7 @@ import java.util.logging.Level;
* Time: 21:25:12 * Time: 21:25:12
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class SAParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class SAParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
// Opt. Algorithms and Parameters // Opt. Algorithms and Parameters
private InterfaceOptimizer m_Optimizer = new SimulatedAnnealing(); private InterfaceOptimizer m_Optimizer = new SimulatedAnnealing();
private InterfaceOptimizationProblem m_Problem = new B1Problem(); private InterfaceOptimizationProblem m_Problem = new B1Problem();

View File

@ -1,6 +1,6 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.selection.InterfaceSelection;
import eva2.optimization.operators.selection.replacement.InterfaceReplacement; import eva2.optimization.operators.selection.replacement.InterfaceReplacement;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
@ -22,7 +22,7 @@ import java.util.logging.Level;
* Time: 15:44:34 * Time: 15:44:34
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
public class SSGAParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { public class SSGAParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable {
/** /**
* Load or create a new instance of the class. * Load or create a new instance of the class.

View File

@ -37,7 +37,7 @@ import eva2.optimization.strategies.EvolutionStrategies;
import eva2.optimization.strategies.GradientDescentAlgorithm; import eva2.optimization.strategies.GradientDescentAlgorithm;
import eva2.optimization.strategies.HillClimbing; import eva2.optimization.strategies.HillClimbing;
import eva2.optimization.strategies.NelderMeadSimplex; import eva2.optimization.strategies.NelderMeadSimplex;
import eva2.optimization.modules.GOParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.stat.InterfaceTextListener;
import eva2.optimization.stat.StatisticsParameter; import eva2.optimization.stat.StatisticsParameter;
import eva2.tools.Pair; import eva2.tools.Pair;
@ -526,7 +526,7 @@ public class PostProcess {
} }
es.initByPopulation(pop, false); es.initByPopulation(pop, false);
GOParameters cmaParams = OptimizerFactory.makeParams(es, pop, problem, 0, term); OptimizationParameters cmaParams = OptimizerFactory.makeParams(es, pop, problem, 0, term);
int funCallsBefore = pop.getFunctionCalls(); int funCallsBefore = pop.getFunctionCalls();
pop.SetFunctionCalls(baseEvals); pop.SetFunctionCalls(baseEvals);

View File

@ -5,6 +5,7 @@ import eva2.OptimizerRunnable;
import eva2.client.EvAClient; import eva2.client.EvAClient;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.crossover.CrossoverESDefault; import eva2.optimization.operators.crossover.CrossoverESDefault;
import eva2.optimization.operators.moso.MOSONoConvert; import eva2.optimization.operators.moso.MOSONoConvert;
import eva2.optimization.operators.moso.MOSOWeightedFitness; import eva2.optimization.operators.moso.MOSOWeightedFitness;
@ -15,7 +16,6 @@ import eva2.optimization.populations.InterfaceSolutionSet;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.modules.GOParameters;
import eva2.optimization.stat.StatisticsStandalone; import eva2.optimization.stat.StatisticsStandalone;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import eva2.tools.StringTools; import eva2.tools.StringTools;
@ -83,7 +83,7 @@ public class ERPStarter {
System.out.println("Optimizer instance: " + BeanInspector.toString(opt)); System.out.println("Optimizer instance: " + BeanInspector.toString(opt));
System.out.println("Problem instance: " + BeanInspector.toString(erp)); System.out.println("Problem instance: " + BeanInspector.toString(erp));
// Instantiate optimization // Instantiate optimization
GOParameters params = new GOParameters(opt, erp, new EvaluationTerminator(maxEvals)); OptimizationParameters params = new OptimizationParameters(opt, erp, new EvaluationTerminator(maxEvals));
if (startGUI) { if (startGUI) {
EvAClient.initClientGUI(params, null, null, null); EvAClient.initClientGUI(params, null, null, null);
} else { } else {

View File

@ -5,9 +5,9 @@ import eva2.optimization.go.GOStandaloneVersion;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.ESIndividualDoubleData;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.populations.Population; import eva2.optimization.populations.Population;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.modules.GOParameters;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.awt.BasicStroke; import java.awt.BasicStroke;
import java.awt.BorderLayout; import java.awt.BorderLayout;
@ -475,7 +475,7 @@ implements InterfaceOptimizationProblem, InterfaceHasSolutionViewer, java.io.Ser
FLensProblem f = new FLensProblem(); FLensProblem f = new FLensProblem();
System.out.println("Working Dir " +System.getProperty("user.dir")); System.out.println("Working Dir " +System.getProperty("user.dir"));
GOStandaloneVersion program = new GOStandaloneVersion(); GOStandaloneVersion program = new GOStandaloneVersion();
GOParameters GO = program.getGOParameters(); OptimizationParameters GO = program.getGOParameters();
GO.setProblem(f); GO.setProblem(f);
RNG.setRandomSeed(1); RNG.setRandomSeed(1);
program.initFrame(); program.initFrame();

View File

@ -1,7 +1,7 @@
package eva2.optimization.stat; package eva2.optimization.stat;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.tools.StringSelection; import eva2.tools.StringSelection;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@ -19,7 +19,7 @@ import java.util.List;
public class EvAJob implements Serializable, InterfaceStatisticsListener { public class EvAJob implements Serializable, InterfaceStatisticsListener {
private static final boolean TRACE = false; private static final boolean TRACE = false;
private InterfaceGOParameters params = null; private InterfaceOptimizationParameters params = null;
private String[] fieldHeaders = null; private String[] fieldHeaders = null;
private List<Object[]> multiRunFinalObjectData = null; private List<Object[]> multiRunFinalObjectData = null;
private int jobID=0; private int jobID=0;
@ -36,7 +36,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener {
jobIDCounter++; jobIDCounter++;
} }
public EvAJob(InterfaceGOParameters params, InterfaceStatistics sts) { public EvAJob(InterfaceOptimizationParameters params, InterfaceStatistics sts) {
this(); this();
this.params = params; this.params = params;
if (sts instanceof AbstractStatistics) { if (sts instanceof AbstractStatistics) {
@ -58,7 +58,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener {
multiRunFinalObjectData=null; multiRunFinalObjectData=null;
} }
public InterfaceGOParameters getParams() { public InterfaceOptimizationParameters getParams() {
return params; return params;
} }
@ -67,7 +67,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener {
* *
* @param params * @param params
*/ */
public void setParams(InterfaceGOParameters params) { public void setParams(InterfaceOptimizationParameters params) {
// how should this be treated? In case the run is already finished, changing // how should this be treated? In case the run is already finished, changing
// the parameters will be evil, so avoid that case. // the parameters will be evil, so avoid that case.
if (state==StateEnum.complete) { if (state==StateEnum.complete) {
@ -134,7 +134,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener {
return multiRunFinalObjectData; return multiRunFinalObjectData;
} }
public InterfaceGOParameters getGOParams() { public InterfaceOptimizationParameters getGOParams() {
return params; return params;
} }

View File

@ -3,9 +3,9 @@ package eva2.optimization.stat;
import eva2.gui.GenericArrayEditor; import eva2.gui.GenericArrayEditor;
import eva2.gui.JParaPanel; import eva2.gui.JParaPanel;
import eva2.gui.PropertySelectableList; import eva2.gui.PropertySelectableList;
import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.AbstractOptimizationParameters;
import eva2.optimization.tools.FileTools; import eva2.optimization.tools.FileTools;
import eva2.optimization.modules.AbstractGOParameters;
import eva2.optimization.modules.AbstractModuleAdapter; import eva2.optimization.modules.AbstractModuleAdapter;
import eva2.optimization.modules.GenericModuleAdapter; import eva2.optimization.modules.GenericModuleAdapter;
import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.modules.ModuleAdapter;
@ -24,7 +24,7 @@ import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
/** /**
* A selectable list of EvAJobs. Each job contains a GOParameters instance and potentially * A selectable list of EvAJobs. Each job contains a OptimizationParameters instance and potentially
* statistical data. * statistical data.
* *
* @author mkron * @author mkron
@ -53,8 +53,8 @@ public class EvAJobList extends PropertySelectableList<EvAJob> implements Serial
* @param params * @param params
* @param stats * @param stats
*/ */
public EvAJob addJob(InterfaceGOParameters params, AbstractStatistics stats) { public EvAJob addJob(InterfaceOptimizationParameters params, AbstractStatistics stats) {
EvAJob job = new EvAJob((InterfaceGOParameters) Serializer.deepClone(params), stats); EvAJob job = new EvAJob((InterfaceOptimizationParameters) Serializer.deepClone(params), stats);
stats.addDataListener(job); stats.addDataListener(job);
addJob(job, true); addJob(job, true);
return job; return job;
@ -138,13 +138,13 @@ public class EvAJobList extends PropertySelectableList<EvAJob> implements Serial
/** /**
* Search for a job in the list which has the given parameter structure assigned. This is tested * Search for a job in the list which has the given parameter structure assigned. This is tested
* by reference, so the exact same instance of InterfaceGOParameters must be known. If no * by reference, so the exact same instance of InterfaceOptimizationParameters must be known. If no
* matching job is found, null is returned. * matching job is found, null is returned.
* *
* @param params * @param params
* @return * @return
*/ */
public EvAJob getJobOf(InterfaceGOParameters params) { public EvAJob getJobOf(InterfaceOptimizationParameters params) {
for (EvAJob job : getObjects()) { for (EvAJob job : getObjects()) {
if (job.getGOParams() == params) { if (job.getGOParams() == params) {
return job; return job;
@ -212,8 +212,8 @@ public class EvAJobList extends PropertySelectableList<EvAJob> implements Serial
List<EvAJob> jobs = jobList.getSelectedJobs(); List<EvAJob> jobs = jobList.getSelectedJobs();
if (jobs.size() == 1) { if (jobs.size() == 1) {
EvAJob job = jobs.get(0); EvAJob job = jobs.get(0);
AbstractGOParameters curParams = (AbstractGOParameters) ((AbstractModuleAdapter) jobList.module).getGOParameters(); AbstractOptimizationParameters curParams = (AbstractOptimizationParameters) ((AbstractModuleAdapter) jobList.module).getGOParameters();
curParams.setSameParams((AbstractGOParameters) job.getGOParams()); curParams.setSameParams((AbstractOptimizationParameters) job.getGOParams());
((GenericModuleAdapter) jobList.module).setGOParameters(curParams); ((GenericModuleAdapter) jobList.module).setGOParameters(curParams);
((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setMultiRuns(job.getNumRuns()); ((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setMultiRuns(job.getNumRuns());
((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setFieldSelection(job.getFieldSelection(((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().getFieldSelection())); ((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setFieldSelection(job.getFieldSelection(((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().getFieldSelection()));

View File

@ -7,6 +7,7 @@ import eva2.optimization.go.PopulationInterface;
import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.nichepso.deactivation.StandardDeactivationStrategy; import eva2.optimization.operators.nichepso.deactivation.StandardDeactivationStrategy;
import eva2.optimization.operators.paramcontrol.LinearParamAdaption; import eva2.optimization.operators.paramcontrol.LinearParamAdaption;
import eva2.optimization.operators.paramcontrol.ParamAdaption; import eva2.optimization.operators.paramcontrol.ParamAdaption;
@ -15,7 +16,6 @@ import eva2.optimization.populations.Population;
import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem;
import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.Interface2DBorderProblem;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import eva2.optimization.modules.GOParameters;
import eva2.tools.ToolBox; import eva2.tools.ToolBox;
import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPoint;
import eva2.tools.chart2d.DPointSet; import eva2.tools.chart2d.DPointSet;
@ -951,7 +951,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
return "sets the range of the neighborhood topology for the main swarm"; return "sets the range of the neighborhood topology for the main swarm";
} }
public static final GOParameters aNichePSO(AbstractOptimizationProblem problem, long randSeed, InterfaceTerminator term) { public static final OptimizationParameters aNichePSO(AbstractOptimizationProblem problem, long randSeed, InterfaceTerminator term) {
ANPSO anpso = new ANPSO(); ANPSO anpso = new ANPSO();
anpso.setMainSwarmSize(75); anpso.setMainSwarmSize(75);
@ -966,7 +966,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
* @param evalCnt * @param evalCnt
* @return * @return
*/ */
public static final GOParameters stdANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters stdANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
ANPSO anpso = new ANPSO(); ANPSO anpso = new ANPSO();
NichePSO.stdNPSO(anpso, problem, randSeed, evalCnt); NichePSO.stdNPSO(anpso, problem, randSeed, evalCnt);
@ -985,7 +985,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
return OptimizerFactory.makeParams(anpso, anpso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt)); return OptimizerFactory.makeParams(anpso, anpso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt));
} }
public static final GOParameters starANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters starANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
ANPSO anpso = new ANPSO(); ANPSO anpso = new ANPSO();
NichePSO.starNPSO(anpso, problem, randSeed, evalCnt); NichePSO.starNPSO(anpso, problem, randSeed, evalCnt);
@ -1006,7 +1006,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
return OptimizerFactory.makeParams(anpso, anpso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt)); return OptimizerFactory.makeParams(anpso, anpso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt));
} }
public static final GOParameters gmakANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters gmakANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
ANPSO anpso = new ANPSO(); ANPSO anpso = new ANPSO();
NichePSO.starNPSO(anpso, problem, randSeed, evalCnt); NichePSO.starNPSO(anpso, problem, randSeed, evalCnt);
@ -1036,7 +1036,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
* @param evalCnt * @param evalCnt
* @return * @return
*/ */
public static final GOParameters sgANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters sgANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
return starTopoANPSO(problem, randSeed, evalCnt, 1, 2); return starTopoANPSO(problem, randSeed, evalCnt, 1, 2);
} }
@ -1050,8 +1050,8 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi
* @param topologyRange * @param topologyRange
* @return * @return
*/ */
public static final GOParameters starTopoANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt, int topology, int topologyRange) { public static final OptimizationParameters starTopoANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt, int topology, int topologyRange) {
GOParameters params = starANPSO(problem, randSeed, evalCnt); OptimizationParameters params = starANPSO(problem, randSeed, evalCnt);
((ANPSO)params.getOptimizer()).SetMainSwarmTopologyTag(topology); ((ANPSO)params.getOptimizer()).SetMainSwarmTopologyTag(topology);
((ANPSO)params.getOptimizer()).setMainSwarmTopologyRange(topologyRange); ((ANPSO)params.getOptimizer()).setMainSwarmTopologyRange(topologyRange);
((ANPSO)params.getOptimizer()).getMainSwarm().setInertnessOrChi(0.73); ((ANPSO)params.getOptimizer()).getMainSwarm().setInertnessOrChi(0.73);

View File

@ -18,6 +18,8 @@ import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.tools.EVAERROR; import eva2.tools.EVAERROR;
import eva2.tools.math.Mathematics; import eva2.tools.math.Mathematics;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import eva2.util.annotation.Parameter;
import java.util.Vector; import java.util.Vector;
/** /**
@ -35,9 +37,16 @@ public class DifferentialEvolution implements InterfaceOptimizer, java.io.Serial
protected transient Population children = null; protected transient Population children = null;
protected AbstractOptimizationProblem m_Problem = new F1Problem(); protected AbstractOptimizationProblem m_Problem = new F1Problem();
private DETypeEnum m_DEType; private DETypeEnum m_DEType;
@Parameter(name = "F", description = "Differential Weight")
private double m_F = 0.8; private double m_F = 0.8;
@Parameter(name = "CR", description = "Crossover Rate")
private double m_k = 0.6; // AKA CR private double m_k = 0.6; // AKA CR
@Parameter(name = "Lambda", description = "Lambda")
private double m_Lambda = 0.6; private double m_Lambda = 0.6;
private double m_Mt = 0.05; private double m_Mt = 0.05;
private int maximumAge = -1; private int maximumAge = -1;
private boolean reEvaluate = false; private boolean reEvaluate = false;

View File

@ -9,6 +9,7 @@ import eva2.optimization.go.PopulationInterface;
import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.nichepso.absorption.EuclideanDiversityAbsorptionStrategy; import eva2.optimization.operators.nichepso.absorption.EuclideanDiversityAbsorptionStrategy;
import eva2.optimization.operators.nichepso.absorption.InterfaceAbsorptionStrategy; import eva2.optimization.operators.nichepso.absorption.InterfaceAbsorptionStrategy;
import eva2.optimization.operators.nichepso.absorption.StandardAbsorptionStrategy; import eva2.optimization.operators.nichepso.absorption.StandardAbsorptionStrategy;
@ -32,7 +33,6 @@ import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import eva2.optimization.problems.InterfaceMultimodalProblem; import eva2.optimization.problems.InterfaceMultimodalProblem;
import eva2.optimization.problems.InterfaceMultimodalProblemKnown; import eva2.optimization.problems.InterfaceMultimodalProblemKnown;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.modules.GOParameters;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconCircle;
import eva2.tools.chart2d.Chart2DDPointIconContent; import eva2.tools.chart2d.Chart2DDPointIconContent;
@ -2140,7 +2140,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
return date; return date;
} }
public static final GOParameters nichePSO(AbstractOptimizationProblem problem, long randSeed, InterfaceTerminator term) { public static final OptimizationParameters nichePSO(AbstractOptimizationProblem problem, long randSeed, InterfaceTerminator term) {
NichePSO npso = new NichePSO(); NichePSO npso = new NichePSO();
npso.setMainSwarmSize(75); npso.setMainSwarmSize(75);
@ -2154,7 +2154,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
* *
* The evaluation count is required currently due to the * The evaluation count is required currently due to the
* generation-dependent intertness decay used by the std. variant. To alter * generation-dependent intertness decay used by the std. variant. To alter
* the terminator, use GOParameters.setTerminator(), and mind the intertness * the terminator, use OptimizationParameters.setTerminator(), and mind the intertness
* behavior of the NichePSO, which can be altered by using * behavior of the NichePSO, which can be altered by using
* getMainSwarm().setInertnessAging(InterfaceParameteraging) * getMainSwarm().setInertnessAging(InterfaceParameteraging)
* *
@ -2163,11 +2163,11 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
* @param evalCnt * @param evalCnt
* @return * @return
*/ */
public static final GOParameters stdNPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters stdNPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
return stdNPSO(null, problem, randSeed, evalCnt); return stdNPSO(null, problem, randSeed, evalCnt);
} }
public static final GOParameters starNPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters starNPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
return starNPSO(null, problem, randSeed, evalCnt); return starNPSO(null, problem, randSeed, evalCnt);
} }
@ -2183,7 +2183,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
* @param evalCnt * @param evalCnt
* @return * @return
*/ */
public static final GOParameters stdNPSO(NichePSO npso, AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters stdNPSO(NichePSO npso, AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
if (npso == null) { if (npso == null) {
npso = new NichePSO(); npso = new NichePSO();
} }
@ -2233,7 +2233,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
* @param evalCnt * @param evalCnt
* @return * @return
*/ */
public static final GOParameters starNPSO(NichePSO npso, AbstractOptimizationProblem problem, long randSeed, int evalCnt) { public static final OptimizationParameters starNPSO(NichePSO npso, AbstractOptimizationProblem problem, long randSeed, int evalCnt) {
starNPSO(npso, evalCnt); starNPSO(npso, evalCnt);
return OptimizerFactory.makeParams(npso, npso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt)); return OptimizerFactory.makeParams(npso, npso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt));
} }

View File

@ -8,6 +8,7 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operators.distancemetric.PhenotypeMetric; import eva2.optimization.operators.distancemetric.PhenotypeMetric;
import eva2.optimization.operators.postprocess.PostProcess; import eva2.optimization.operators.postprocess.PostProcess;
import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator;
@ -17,7 +18,6 @@ import eva2.optimization.populations.SolutionSet;
import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem;
import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.F1Problem;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.modules.GOParameters;
import eva2.tools.Pair; import eva2.tools.Pair;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
import eva2.tools.math.Mathematics; import eva2.tools.math.Mathematics;
@ -883,18 +883,18 @@ public class ScatterSearch implements InterfaceOptimizer, java.io.Serializable,
// problem.initializeProblem(); // problem.initializeProblem();
GOParameters params = specialSS(localSearchSteps, localSearchFitnessFilter, nmInitPerturb, relativeFitCrit, refSetSize, problem, term); OptimizationParameters params = specialSS(localSearchSteps, localSearchFitnessFilter, nmInitPerturb, relativeFitCrit, refSetSize, problem, term);
OptimizerRunnable rnbl = new OptimizerRunnable(params, dataPrefix); OptimizerRunnable rnbl = new OptimizerRunnable(params, dataPrefix);
return rnbl; return rnbl;
} }
public static final GOParameters standardSS( public static final OptimizationParameters standardSS(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return specialSS(0, 0, 0.1, true, 10, problem, new EvaluationTerminator(10000)); return specialSS(0, 0, 0.1, true, 10, problem, new EvaluationTerminator(10000));
} }
public static final GOParameters specialSS( public static final OptimizationParameters specialSS(
int localSearchSteps, double localSearchFitnessFilter, int localSearchSteps, double localSearchFitnessFilter,
double nmInitPerturb, boolean relativeFitCrit, double nmInitPerturb, boolean relativeFitCrit,
int refSetSize, int refSetSize,