diff --git a/pom.xml b/pom.xml index 7fdaa66c..283fa4d2 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,11 @@ jchart2d 3.3.2 + + commons-cli + commons-cli + 1.2 + diff --git a/src/eva2/OptimizerFactory.java b/src/eva2/OptimizerFactory.java index 053e8604..c4495628 100644 --- a/src/eva2/OptimizerFactory.java +++ b/src/eva2/OptimizerFactory.java @@ -1,5 +1,6 @@ package eva2; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.mutation.InterfaceMutation; import eva2.optimization.operators.mutation.NoMutation; 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.Population; import eva2.optimization.problems.AbstractOptimizationProblem; -import eva2.optimization.modules.GOParameters; import eva2.optimization.stat.InterfaceStatistics; import eva2.tools.math.RNG; import java.util.ArrayList; @@ -290,8 +290,8 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardMOGA(AbstractOptimizationProblem problem) { - GOParameters gaParams = standardGA(problem); + public static OptimizationParameters standardMOGA(AbstractOptimizationProblem problem) { + OptimizationParameters gaParams = standardGA(problem); int archiveSize = 100; int popSize = 100; MultiObjectiveEA moga = createMultiObjectiveEA(gaParams.getOptimizer(), archiveSize, problem, null); @@ -563,7 +563,7 @@ public class OptimizerFactory { * @param optType optimizer identifier * @param problem corresponding optimization problem */ - public static GOParameters getParams(final int optType, + public static OptimizationParameters getParams(final int optType, AbstractOptimizationProblem problem) { switch (optType) { case STD_ES: @@ -647,7 +647,7 @@ public class OptimizerFactory { AbstractOptimizationProblem problem, InterfaceTerminator terminator, String outputFilePrefix) { OptimizerRunnable opt = null; - GOParameters params = getParams(optType, problem); + OptimizationParameters params = getParams(optType, problem); if (params != null) { opt = new OptimizerRunnable(params, outputFilePrefix); 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. * * @param params * @param outputFilePrefix * @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); } @@ -714,13 +714,13 @@ public class OptimizerFactory { // /////////////////////// 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 problem * @return */ - public static GOParameters makeESParams(EvolutionStrategies es, + public static OptimizationParameters makeESParams(EvolutionStrategies es, AbstractOptimizationProblem problem) { return makeParams(es, es.getLambda(), problem, randSeed, getTerminator()); } @@ -735,7 +735,7 @@ public class OptimizerFactory { * @param problem * @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()); } @@ -749,7 +749,7 @@ public class OptimizerFactory { * @param problem * @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); } @@ -766,7 +766,7 @@ public class OptimizerFactory { * @param term * @return */ - public static GOParameters makeParams(InterfaceOptimizer opt, + public static OptimizationParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem, long seed, InterfaceTerminator term) { 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, * which of course can simply be run. * @@ -788,10 +788,10 @@ public class OptimizerFactory { * @param term * @return */ - public static GOParameters makeParams(InterfaceOptimizer opt, + public static OptimizationParameters makeParams(InterfaceOptimizer opt, Population pop, AbstractOptimizationProblem problem, long seed, InterfaceTerminator term) { - GOParameters params = new GOParameters(); + OptimizationParameters params = new OptimizationParameters(); params.setProblem(problem); opt.setProblem(problem); opt.setPopulation(pop); @@ -840,7 +840,7 @@ public class OptimizerFactory { * @param outputFilePrefix * @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)); } @@ -859,7 +859,7 @@ public class OptimizerFactory { } // ///////////////////////////// Optimize a given parameter instance - public static BitSet optimizeToBinary(GOParameters params, + public static BitSet optimizeToBinary(OptimizationParameters params, String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); @@ -886,20 +886,20 @@ public class OptimizerFactory { return (runnable != null) ? runnable.getBinarySolution() : null; } - public static double[] optimizeToDouble(GOParameters params, + public static double[] optimizeToDouble(OptimizationParameters params, String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); return runnable.getDoubleSolution(); } - public static double[] optimizeToDouble(GOParameters params) { + public static double[] optimizeToDouble(OptimizationParameters params) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, false)); 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, false)); return runnable.getDoubleSolution(); @@ -922,13 +922,13 @@ public class OptimizerFactory { return (runnable != null) ? runnable.getDoubleSolution() : null; } - public static IndividualInterface optimizeToInd(GOParameters params) { + public static IndividualInterface optimizeToInd(OptimizationParameters params) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, false)); return runnable.getResult(); } - public static IndividualInterface optimizeToInd(GOParameters params, + public static IndividualInterface optimizeToInd(OptimizationParameters params, String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); @@ -952,7 +952,7 @@ public class OptimizerFactory { return (runnable != null) ? runnable.getResult() : null; } - public static Population optimizeToPop(GOParameters params, + public static Population optimizeToPop(OptimizationParameters params, String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); @@ -1191,7 +1191,7 @@ public class OptimizerFactory { * * @return a standard multi-start hill-climber */ - public static GOParameters hillClimbing( + public static OptimizationParameters hillClimbing( AbstractOptimizationProblem problem) { return hillClimbing(problem, 50); } @@ -1202,12 +1202,12 @@ public class OptimizerFactory { * * @return a standard multi-start hill-climber */ - public static GOParameters hillClimbing( + public static OptimizationParameters hillClimbing( AbstractOptimizationProblem problem, int popSize) { return makeParams(new HillClimbing(), popSize, problem, randSeed, getTerminator()); } - public static GOParameters monteCarlo( + public static OptimizationParameters monteCarlo( AbstractOptimizationProblem problem) { return makeParams(new MonteCarloSearch(), 50, problem, randSeed, getTerminator()); } @@ -1225,7 +1225,7 @@ public class OptimizerFactory { * @param popSize * @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) { return createCbn(problem, opt, new ClusteringDensityBased(clusterSigma, minClustSize), maxSpecSize, new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize); @@ -1238,14 +1238,14 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardCbnPSO(AbstractOptimizationProblem problem) { + public static OptimizationParameters standardCbnPSO(AbstractOptimizationProblem problem) { return createCbnPSO(problem, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, 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) { - GOParameters psoParams = standardPSO(problem); + OptimizationParameters psoParams = standardPSO(problem); ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer(); ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize, new IndividualDataMetric(ParticleSwarmOptimization.partBestPosKey)); @@ -1265,7 +1265,7 @@ public class OptimizerFactory { * @param popSize * @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, double haltingWindowEpsilon, int popSize) { ClusterBasedNichingEA cbn = new ClusterBasedNichingEA(); @@ -1289,7 +1289,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardCbnES(AbstractOptimizationProblem problem) { + public static OptimizationParameters standardCbnES(AbstractOptimizationProblem problem) { EvolutionStrategies es = new EvolutionStrategies(); es.setMu(15); es.setLambda(50); @@ -1304,8 +1304,8 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardCbnCmaES(AbstractOptimizationProblem problem) { - GOParameters cmaEsParams = cmaES(problem); + public static OptimizationParameters standardCbnCmaES(AbstractOptimizationProblem problem) { + OptimizationParameters cmaEsParams = cmaES(problem); EvolutionStrategies cmaES = (EvolutionStrategies) cmaEsParams.getOptimizer(); return createCbn(problem, cmaES, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100); } @@ -1317,7 +1317,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardCbnGA(AbstractOptimizationProblem problem) { + public static OptimizationParameters standardCbnGA(AbstractOptimizationProblem problem) { GeneticAlgorithm ga = new GeneticAlgorithm(); return createCbn(problem, ga, cbnDefaultClusterSigma, cbnDefaultMinGroupSize, cbnDefaultMaxGroupSize, cbnDefaultHaltingWindowLength, cbnDefaultHaltingWindowEpsilon, 100); } @@ -1327,7 +1327,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardPBIL(AbstractOptimizationProblem problem) { + public static OptimizationParameters standardPBIL(AbstractOptimizationProblem problem) { PopulationBasedIncrementalLearning pbil = createPBIL(0.04, 0.01, 0.5, 1, new SelectBestIndividuals(), 50, problem, null); @@ -1345,7 +1345,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters stdClusteringHillClimbing( + public static OptimizationParameters stdClusteringHillClimbing( AbstractOptimizationProblem problem) { return clusteringHillClimbing(problem, 1000, 100, 0.000001, PostProcessMethod.hillClimber, 0.05, 0.000001, 0.05); @@ -1363,7 +1363,7 @@ public class OptimizerFactory { * @param sigmaClust * @return */ - public static GOParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem, + public static OptimizationParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem, int evalCycle, int popSize, double minImprovement, double sigmaClust) { return clusteringHillClimbing(problem, evalCycle, popSize, minImprovement, PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust); @@ -1384,7 +1384,7 @@ public class OptimizerFactory { * @param sigmaClust * @return */ - public static GOParameters clusteringHillClimbing( + public static OptimizationParameters clusteringHillClimbing( AbstractOptimizationProblem problem, int evalCycle, int popSize, double minImprovement, PostProcessMethod method, double hcInitialStep, double hcStepThresh, double sigmaClust) { ClusteringHillClimbing chc = new ClusteringHillClimbing(); @@ -1401,7 +1401,7 @@ public class OptimizerFactory { return makeParams(chc, popSize, problem, randSeed, getTerminator()); } - public static GOParameters cmaES(AbstractOptimizationProblem problem) { + public static OptimizationParameters cmaES(AbstractOptimizationProblem problem) { EvolutionStrategies es = new EvolutionStrategies(); es.setMu(15); es.setLambda(50); @@ -1428,11 +1428,11 @@ public class OptimizerFactory { * @param problem the optimization problem * @return */ - public static GOParameters cmaESIPOP(AbstractOptimizationProblem problem) { + public static OptimizationParameters cmaESIPOP(AbstractOptimizationProblem problem) { return createCmaEsIPop(problem, 2.); } - public static GOParameters createCmaEsIPop(AbstractOptimizationProblem problem, double incLambdaFact) { + public static OptimizationParameters createCmaEsIPop(AbstractOptimizationProblem problem, double incLambdaFact) { EvolutionStrategies es = new EvolutionStrategyIPOP(); AbstractEAIndividual indyTemplate = problem.getIndividualTemplate(); @@ -1460,7 +1460,7 @@ public class OptimizerFactory { return makeESParams(es, problem); } - public static GOParameters standardNMS(AbstractOptimizationProblem problem) { + public static OptimizationParameters standardNMS(AbstractOptimizationProblem problem) { NelderMeadSimplex nms = NelderMeadSimplex.createNelderMeadSimplex(problem, null); return makeParams(nms, 50, problem, randSeed, getTerminator()); } @@ -1472,7 +1472,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardDE( + public static OptimizationParameters standardDE( AbstractOptimizationProblem problem) { DifferentialEvolution de = new DifferentialEvolution(); de.setDEType(DETypeEnum.DE2_CurrentToBest); // this sets current-to-best @@ -1483,7 +1483,7 @@ public class OptimizerFactory { return makeParams(de, 50, problem, randSeed, getTerminator()); } - public static GOParameters standardES( + public static OptimizationParameters standardES( AbstractOptimizationProblem problem) { EvolutionStrategies es = new EvolutionStrategies(); es.setMu(15); @@ -1499,7 +1499,7 @@ public class OptimizerFactory { return makeESParams(es, problem); } - public static GOParameters standardGA( + public static OptimizationParameters standardGA( AbstractOptimizationProblem problem) { GeneticAlgorithm ga = new GeneticAlgorithm(); ga.setElitism(true); @@ -1515,7 +1515,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardPSO( + public static OptimizationParameters standardPSO( AbstractOptimizationProblem problem) { ParticleSwarmOptimization pso = new ParticleSwarmOptimization(); pso.setPhiValues(2.05, 2.05); @@ -1524,7 +1524,7 @@ public class OptimizerFactory { 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()); } @@ -1535,7 +1535,7 @@ public class OptimizerFactory { * @param problem * @return */ - public static GOParameters standardNichingEs(AbstractOptimizationProblem prob) { + public static OptimizationParameters standardNichingEs(AbstractOptimizationProblem prob) { // nichingEs(AbstractOptimizationProblem prob, double nicheRadius, int muPerPeak, int lambdaPerPeak, return createNichingEs(prob, -1, 100, 100, // int expectedPeaks, int rndImmigrants, int explorerPeaks, int resetExplInterval, int etaPresel) { @@ -1548,7 +1548,7 @@ public class OptimizerFactory { * @param problem * @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); if (assertIndyType(prob, InterfaceESIndividual.class)) { @@ -1567,7 +1567,7 @@ public class OptimizerFactory { * @param prob * @return */ - public static GOParameters standardNichingCmaEs(AbstractOptimizationProblem prob) { + public static OptimizationParameters standardNichingCmaEs(AbstractOptimizationProblem prob) { return createNichingCmaEs(prob, -1, 10, 10, 0, 0, -1); } @@ -1577,7 +1577,7 @@ public class OptimizerFactory { * @param prob * @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); } @@ -1587,7 +1587,7 @@ public class OptimizerFactory { * @param prob * @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); } @@ -1597,7 +1597,7 @@ public class OptimizerFactory { * @param prob * @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); } @@ -1612,7 +1612,7 @@ public class OptimizerFactory { * @param resetExplInterval * @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); if (stagnationEpsilon > 0) { nes.setEpsilonBound(stagnationEpsilon); diff --git a/src/eva2/OptimizerRunnable.java b/src/eva2/OptimizerRunnable.java index 1b4a1af0..43a14833 100644 --- a/src/eva2/OptimizerRunnable.java +++ b/src/eva2/OptimizerRunnable.java @@ -1,5 +1,6 @@ package eva2; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.stat.StatisticsDummy; import eva2.optimization.stat.InterfaceStatistics; import eva2.optimization.stat.StatisticsParameter; @@ -8,7 +9,6 @@ import eva2.optimization.stat.StatisticsStandalone; import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.OptimizationStateListener; import eva2.optimization.go.IndividualInterface; -import eva2.optimization.go.InterfaceGOParameters; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; @@ -17,7 +17,7 @@ import eva2.optimization.operators.postprocess.InterfacePostProcessParams; import eva2.optimization.operators.postprocess.PostProcessParams; import eva2.optimization.populations.Population; import eva2.optimization.populations.SolutionSet; -import eva2.optimization.modules.GOParameters; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.Processor; import java.io.PrintWriter; import java.io.StringWriter; @@ -47,7 +47,7 @@ public class OptimizerRunnable implements Runnable { * @param params * @param outputFilePrefix */ - public OptimizerRunnable(GOParameters params, String outputFilePrefix) { + public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix) { this(params, outputFilePrefix, false); } @@ -58,7 +58,7 @@ public class OptimizerRunnable implements Runnable { * @param params * @param restart */ - public OptimizerRunnable(GOParameters params, boolean restart) { + public OptimizerRunnable(OptimizationParameters params, boolean restart) { this(params, new StatisticsDummy(), restart); } @@ -71,7 +71,7 @@ public class OptimizerRunnable implements Runnable { * @param outputFilePrefix * @param restart */ - public OptimizerRunnable(GOParameters params, String outputFilePrefix, boolean restart) { + public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix, boolean restart) { this(params, new StatisticsStandalone(outputFilePrefix), restart); } @@ -83,7 +83,7 @@ public class OptimizerRunnable implements Runnable { * @param outputFilePrefix * @param restart */ - public OptimizerRunnable(GOParameters params, InterfaceStatistics stats, boolean restart) { + public OptimizerRunnable(OptimizationParameters params, InterfaceStatistics stats, boolean restart) { rnblID = cntID; cntID++; @@ -110,7 +110,7 @@ public class OptimizerRunnable implements Runnable { return rnblID; } - public InterfaceGOParameters getGOParams() { + public InterfaceOptimizationParameters getGOParams() { return proc.getGOParams(); } @@ -122,7 +122,7 @@ public class OptimizerRunnable implements Runnable { if (proc.isOptRunning()) { throw new RuntimeException("Error - cannot change statistics instance during optimization."); } - InterfaceGOParameters params = proc.getGOParams(); + InterfaceOptimizationParameters params = proc.getGOParams(); proc = new Processor(stats, null, params); if (proc.getStatistics() instanceof AbstractStatistics) { ((AbstractStatistics)proc.getStatistics()).setSaveParams(false); diff --git a/src/eva2/client/EvAClient.java b/src/eva2/client/EvAClient.java index 59ade82a..63e5c100 100644 --- a/src/eva2/client/EvAClient.java +++ b/src/eva2/client/EvAClient.java @@ -14,9 +14,9 @@ package eva2.client; import eva2.EvAInfo; import eva2.gui.*; import eva2.optimization.OptimizationStateListener; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.modules.AbstractModuleAdapter; -import eva2.optimization.modules.GOParameters; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.GenericModuleAdapter; import eva2.optimization.modules.ModuleAdapter; import eva2.optimization.stat.AbstractStatistics; @@ -191,7 +191,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * @param noSplash * @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); } @@ -206,7 +206,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * @param noSplash * @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); } @@ -226,7 +226,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * @param noSplash * @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; 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 * 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(); this.parentWindow = parent; @@ -497,7 +497,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * try to load parameters from file */ if (goParams == null && (paramsFile != null && (paramsFile.length() > 0))) { - goParams = GOParameters.getInstance(paramsFile, false); + goParams = OptimizationParameters.getInstance(paramsFile, false); } loadSpecificModule(useDefaultModule, goParams);//loadSpecificModule } @@ -643,7 +643,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * optimization * @param windowListener additional window listener for client frame */ - public static EvAClient initClientGUI(GOParameters goParams, + public static EvAClient initClientGUI(OptimizationParameters goParams, InterfaceStatisticsListener statisticsListener, WindowListener windowListener, final Window parent) { EvAClient evaClient; @@ -809,7 +809,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { * * @return */ - public InterfaceGOParameters getGOParameters() { + public InterfaceOptimizationParameters getGOParameters() { if (currentModuleAdapter != null) { if (currentModuleAdapter instanceof AbstractModuleAdapter) { 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; // try { @@ -888,7 +888,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener { /* ToDo: Find a way to properly add the TreeView to the GOPanel */ if (withTreeView && (newModuleAdapter instanceof AbstractModuleAdapter)) { JComponent tree = null; - tree = getEvATreeView(frameMaker.getGOPanel(), "GOParameters", ((AbstractModuleAdapter) newModuleAdapter).getGOParameters()); + tree = getEvATreeView(frameMaker.getGOPanel(), "OptimizationParameters", ((AbstractModuleAdapter) newModuleAdapter).getGOParameters()); gbConstraints.gridx = 0; gbConstraints.gridy = 0; gbConstraints.fill = GridBagConstraints.BOTH; diff --git a/src/eva2/client/EvAComAdapter.java b/src/eva2/client/EvAComAdapter.java index 7dc5fb6c..610adda2 100644 --- a/src/eva2/client/EvAComAdapter.java +++ b/src/eva2/client/EvAComAdapter.java @@ -10,13 +10,11 @@ package eva2.client; * $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $ * $Author: mkron $ */ -import eva2.EvAInfo; import eva2.gui.LoggingPanel; import eva2.optimization.EvAMainAdapter; import eva2.optimization.EvAMainAdapterImpl; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.modules.ModuleAdapter; -import java.rmi.RemoteException; /** * @@ -50,7 +48,7 @@ public class EvAComAdapter { * * @return */ - public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceGOParameters goParams, String noGuiStatsFile) { + public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile) { ModuleAdapter newModuleAdapter; newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile); diff --git a/src/eva2/examples/TestingCbnPostProc.java b/src/eva2/examples/TestingCbnPostProc.java index faf0f670..168520d9 100644 --- a/src/eva2/examples/TestingCbnPostProc.java +++ b/src/eva2/examples/TestingCbnPostProc.java @@ -4,7 +4,7 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operators.postprocess.PostProcessParams; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.problems.FM0Problem; -import eva2.optimization.modules.GOParameters; +import eva2.optimization.modules.OptimizationParameters; import java.util.List; public class TestingCbnPostProc { @@ -14,7 +14,7 @@ public class TestingCbnPostProc { AbstractEAIndividual best; List ppSols; - GOParameters esParams = OptimizerFactory.standardCbnES(fm0); + OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0); esParams.setTerminator(new EvaluationTerminator(2000)); esParams.setSeed(0); best = (AbstractEAIndividual)OptimizerFactory.optimizeToInd(esParams, null); diff --git a/src/eva2/examples/TestingGAB1.java b/src/eva2/examples/TestingGAB1.java index 6e0998df..8ba33abb 100644 --- a/src/eva2/examples/TestingGAB1.java +++ b/src/eva2/examples/TestingGAB1.java @@ -5,7 +5,7 @@ import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.GeneticAlgorithm; -import eva2.optimization.modules.GOParameters; +import eva2.optimization.modules.OptimizationParameters; import java.util.BitSet; public class TestingGAB1 { @@ -13,7 +13,7 @@ public class TestingGAB1 { B1Problem b1 = new B1Problem(); BitSet sol; // default go-parameter instance with a GA - GOParameters gaParams = OptimizerFactory.standardGA(b1); + OptimizationParameters gaParams = OptimizerFactory.standardGA(b1); // add an evaluation terminator gaParams.setTerminator(new EvaluationTerminator(1000)); // set a specific random seed diff --git a/src/eva2/examples/TestingPlusCmaEs.java b/src/eva2/examples/TestingPlusCmaEs.java index 665887cc..b931739e 100644 --- a/src/eva2/examples/TestingPlusCmaEs.java +++ b/src/eva2/examples/TestingPlusCmaEs.java @@ -2,12 +2,12 @@ package eva2.examples; import eva2.OptimizerFactory; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.crossover.CrossoverESDefault; import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaption; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.problems.FM0Problem; import eva2.optimization.strategies.EvolutionStrategies; -import eva2.optimization.modules.GOParameters; public class TestingPlusCmaEs { @@ -16,7 +16,7 @@ public class TestingPlusCmaEs { FM0Problem fm0 = new FM0Problem(); AbstractEAIndividual bestIndy; // create standard ES parameters - GOParameters esParams = OptimizerFactory.standardES(fm0); + OptimizationParameters esParams = OptimizerFactory.standardES(fm0); esParams.setTerminator(new EvaluationTerminator(2000)); // set a random seed based on system time esParams.setSeed(0); diff --git a/src/eva2/gui/EvATreeNode.java b/src/eva2/gui/EvATreeNode.java index 5bd83e60..d9564c24 100644 --- a/src/eva2/gui/EvATreeNode.java +++ b/src/eva2/gui/EvATreeNode.java @@ -5,7 +5,7 @@ import javax.swing.tree.DefaultMutableTreeNode; /** * The node class for the EvA2 tree view panel. Each node contains a parameter object. * 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 * which is also used to generate the nested panels for parameter configuration. * diff --git a/src/eva2/optimization/EvAMainAdapter.java b/src/eva2/optimization/EvAMainAdapter.java index d4d3e23d..ecd6d2ab 100644 --- a/src/eva2/optimization/EvAMainAdapter.java +++ b/src/eva2/optimization/EvAMainAdapter.java @@ -8,7 +8,7 @@ package eva2.optimization; * $Date: 2007-11-16 17:25:09 +0100 (Fri, 16 Nov 2007) $ * $Author: mkron $ */ -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.modules.ModuleAdapter; /** * @@ -20,5 +20,5 @@ public interface EvAMainAdapter { ModuleAdapter getModuleAdapter(String selectedModuleName); - ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceGOParameters goParams, String noGuiStatsFile); + ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile); } diff --git a/src/eva2/optimization/EvAMainAdapterImpl.java b/src/eva2/optimization/EvAMainAdapterImpl.java index f3673c05..c351e949 100644 --- a/src/eva2/optimization/EvAMainAdapterImpl.java +++ b/src/eva2/optimization/EvAMainAdapterImpl.java @@ -10,7 +10,7 @@ package eva2.optimization; * $Author: mkron $ */ import eva2.EvAInfo; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.modules.ModuleAdapter; /** * @@ -35,7 +35,7 @@ public class EvAMainAdapterImpl implements EvAMainAdapter { } @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); } } diff --git a/src/eva2/optimization/ModuleServer.java b/src/eva2/optimization/ModuleServer.java index 7d0de47a..15a58cf7 100644 --- a/src/eva2/optimization/ModuleServer.java +++ b/src/eva2/optimization/ModuleServer.java @@ -10,7 +10,7 @@ package eva2.optimization; * $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $ * $Author: mkron $ */ -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.modules.GOModuleAdapter; import eva2.optimization.modules.ModuleAdapter; import eva2.tools.EVAERROR; @@ -105,7 +105,7 @@ public class ModuleServer { * * @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++; String adapterName = "ERROR MODULADAPTER !!"; String moduleName = null; @@ -147,7 +147,7 @@ public class ModuleServer { } else { Object[] param = new Object[4]; param[0] = (String) adapterName; - param[1] = (InterfaceGOParameters) goParams; + param[1] = (InterfaceOptimizationParameters) goParams; param[2] = (String) noGuiLogFile; while ((constructorArr[constrIndex].getParameterTypes().length != 4) && (constrIndex < constructorArr.length)) { constrIndex++; diff --git a/src/eva2/optimization/go/GOStandaloneVersion.java b/src/eva2/optimization/go/GOStandaloneVersion.java index 79aa927f..dba657cc 100644 --- a/src/eva2/optimization/go/GOStandaloneVersion.java +++ b/src/eva2/optimization/go/GOStandaloneVersion.java @@ -6,6 +6,7 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.GAIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.crossover.CrossoverGAGINPoint; import eva2.optimization.operators.mutation.InterfaceMutation; import eva2.optimization.operators.mutation.MutateESFixedStepSize; @@ -17,7 +18,6 @@ import eva2.optimization.problems.F1Problem; import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.optimization.modules.GOParameters; import eva2.tools.math.RNG; import java.awt.BorderLayout; import java.awt.List; @@ -58,7 +58,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu //transient private InterfaceOptimizer optimizer = new EvolutionaryMultiObjectiveOptimization(); //transient private InterfaceOptimizationProblem problem = new TF1Problem(); //transient private int functionCalls = 1000; - private GOParameters m_GO; + private OptimizationParameters m_GO; transient private int m_MultiRuns = 1; transient private int m_RecentFC; transient private int currentExperiment = 0; @@ -88,7 +88,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu // this.m_List.add("Test2"); // this.m_List.add("Test3"); // 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_GO.addPopulationChangedEventListener(this); 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 * */ - public GOParameters getGOParameters() { + public OptimizationParameters getGOParameters() { return this.m_GO; } diff --git a/src/eva2/optimization/go/InterfaceGOParameters.java b/src/eva2/optimization/go/InterfaceOptimizationParameters.java similarity index 98% rename from src/eva2/optimization/go/InterfaceGOParameters.java rename to src/eva2/optimization/go/InterfaceOptimizationParameters.java index d80dda40..c5fb2c23 100644 --- a/src/eva2/optimization/go/InterfaceGOParameters.java +++ b/src/eva2/optimization/go/InterfaceOptimizationParameters.java @@ -12,7 +12,7 @@ import eva2.optimization.strategies.InterfaceOptimizer; * Time: 13:14:06 * To change this template use Options | File Templates. */ -public interface InterfaceGOParameters { +public interface InterfaceOptimizationParameters { /** This method returns a global info string * @return description diff --git a/src/eva2/optimization/modules/AbstractModuleAdapter.java b/src/eva2/optimization/modules/AbstractModuleAdapter.java index c4e279e2..57acf72c 100644 --- a/src/eva2/optimization/modules/AbstractModuleAdapter.java +++ b/src/eva2/optimization/modules/AbstractModuleAdapter.java @@ -9,7 +9,7 @@ package eva2.optimization.modules; * $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $ * $Author: mkron $ */ -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceProcessor; import eva2.optimization.OptimizationStateListener; 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)) { return ((Processor) processor).getGOParams(); } 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)) { ((Processor) processor).setGOParams(goParams); } diff --git a/src/eva2/optimization/modules/AbstractGOParameters.java b/src/eva2/optimization/modules/AbstractOptimizationParameters.java similarity index 87% rename from src/eva2/optimization/modules/AbstractGOParameters.java rename to src/eva2/optimization/modules/AbstractOptimizationParameters.java index 16c72bd4..33c2ea6c 100644 --- a/src/eva2/optimization/modules/AbstractGOParameters.java +++ b/src/eva2/optimization/modules/AbstractOptimizationParameters.java @@ -1,7 +1,7 @@ package eva2.optimization.modules; import eva2.gui.BeanInspector; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; @@ -20,8 +20,8 @@ import java.util.logging.Level; import java.util.logging.Logger; -public abstract class AbstractGOParameters implements InterfaceGOParameters, Serializable { - protected static final Logger LOGGER = Logger.getLogger(AbstractGOParameters.class.getName()); +public abstract class AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable { + protected static final Logger LOGGER = Logger.getLogger(AbstractOptimizationParameters.class.getName()); protected long randomSeed = (long)0.0; // Opt. Algorithms and Parameters @@ -32,20 +32,20 @@ public abstract class AbstractGOParameters implements InterfaceGOParameters, Ser transient protected InterfacePopulationChangedEventListener populationChangedEventListener; transient private List toInformAboutInformers = null; - protected AbstractGOParameters() { + protected AbstractOptimizationParameters() { } - protected AbstractGOParameters(AbstractGOParameters goParameters) { + protected AbstractOptimizationParameters(AbstractOptimizationParameters optimizationParameters) { this(); - this.optimizer = goParameters.optimizer; - this.problem = goParameters.problem; - this.terminator = goParameters.terminator; + this.optimizer = optimizationParameters.optimizer; + this.problem = optimizationParameters.problem; + this.terminator = optimizationParameters.terminator; this.optimizer.setProblem(this.problem); - this.randomSeed = goParameters.randomSeed; - this.postProcessing = goParameters.postProcessing; + this.randomSeed = optimizationParameters.randomSeed; + this.postProcessing = optimizationParameters.postProcessing; } - public AbstractGOParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) { + public AbstractOptimizationParameters(InterfaceOptimizer opt, InterfaceOptimizationProblem prob, InterfaceTerminator term) { this(); optimizer = opt; 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. * - * @param src + * @param parameters */ - public void setSameParams(AbstractGOParameters src) { - setOptimizer(src.optimizer); - setProblem(src.problem); - setTerminator(src.terminator); + public void setSameParams(AbstractOptimizationParameters parameters) { + setOptimizer(parameters.optimizer); + setProblem(parameters.problem); + setTerminator(parameters.terminator); this.optimizer.setProblem(this.problem); - setSeed(src.randomSeed); - setPostProcessParams(src.postProcessing); + setSeed(parameters.randomSeed); + setPostProcessParams(parameters.postProcessing); } /** diff --git a/src/eva2/optimization/modules/DEParameters.java b/src/eva2/optimization/modules/DEParameters.java index 12874152..f57f72a3 100644 --- a/src/eva2/optimization/modules/DEParameters.java +++ b/src/eva2/optimization/modules/DEParameters.java @@ -1,7 +1,7 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.DETypeEnum; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; @@ -22,7 +22,7 @@ import java.util.logging.Level; * Time: 13:49:09 * 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 { /** diff --git a/src/eva2/optimization/modules/EPParameters.java b/src/eva2/optimization/modules/EPParameters.java index 0a163c12..c9561e2f 100644 --- a/src/eva2/optimization/modules/EPParameters.java +++ b/src/eva2/optimization/modules/EPParameters.java @@ -1,7 +1,7 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; @@ -23,7 +23,7 @@ import java.util.logging.Logger; * Time: 13:49:09 * 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()); diff --git a/src/eva2/optimization/modules/GAParameters.java b/src/eva2/optimization/modules/GAParameters.java index 7e070c0b..0db3c01a 100644 --- a/src/eva2/optimization/modules/GAParameters.java +++ b/src/eva2/optimization/modules/GAParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; @@ -22,7 +22,7 @@ import java.util.logging.Logger; * Time: 21:29:34 * 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()); diff --git a/src/eva2/optimization/modules/GOModuleAdapter.java b/src/eva2/optimization/modules/GOModuleAdapter.java index 5fdca6ed..1bc90f09 100644 --- a/src/eva2/optimization/modules/GOModuleAdapter.java +++ b/src/eva2/optimization/modules/GOModuleAdapter.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import java.io.Serializable; @@ -25,26 +25,26 @@ public class GOModuleAdapter extends GenericModuleAdapter implements ModuleAdapt * @param Client the client instance */ 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 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); } // /** -// * 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 Client the client instance // */ // public GOModuleAdapter(String adapterName, String serParamsFile, String noGuiLogFile, MainAdapterClient client) { -// //super(adapterName, "", client, GOParameters.getInstance(serParamsFile, false), false); -// super(adapterName, "", client, GOParameters.getInstance(serParamsFile, serParamsFile==null), false, noGuiLogFile); +// //super(adapterName, "", client, OptimizationParameters.getInstance(serParamsFile, false), false); +// super(adapterName, "", client, OptimizationParameters.getInstance(serParamsFile, serParamsFile==null), false, noGuiLogFile); // } } \ No newline at end of file diff --git a/src/eva2/optimization/modules/GenericModuleAdapter.java b/src/eva2/optimization/modules/GenericModuleAdapter.java index 70b25ea0..52956c6f 100644 --- a/src/eva2/optimization/modules/GenericModuleAdapter.java +++ b/src/eva2/optimization/modules/GenericModuleAdapter.java @@ -5,7 +5,7 @@ import eva2.gui.EvAModuleButtonPanelMaker; import eva2.gui.EvATabbedFrameMaker; import eva2.gui.GenericObjectEditor; import eva2.gui.JParaPanel; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.stat.AbstractStatistics; import eva2.optimization.stat.EvAJob; import eva2.optimization.stat.EvAJobList; @@ -13,7 +13,6 @@ import eva2.optimization.stat.InterfaceStatisticsParameter; import eva2.optimization.stat.StatisticsStandalone; import eva2.optimization.stat.StatisticsWithGUI; import java.io.Serializable; -import java.lang.reflect.Proxy; 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 * 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; this.adapterName = adapterName; helperFilename = helperFName; @@ -64,7 +63,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria * @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 */ - 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); } @@ -92,7 +91,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria EvAModuleButtonPanelMaker ButtonPanel = new EvAModuleButtonPanelMaker(remoteModuleAdapter, ((Processor) processor).isOptRunning()); ButtonPanel.setHelperFilename(helperFilename); frmMkr.addPanelMaker(ButtonPanel); - InterfaceGOParameters goParams = ((Processor) processor).getGOParams(); + InterfaceOptimizationParameters goParams = ((Processor) processor).getGOParams(); frmMkr.addPanelMaker(paramPanel = new JParaPanel(goParams, goParams.getName())); @@ -144,7 +143,7 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria } @Override - public void setGOParameters(InterfaceGOParameters goParams) { + public void setGOParameters(InterfaceOptimizationParameters goParams) { super.setGOParameters(goParams); paramPanel.getEditor().setValue(goParams); } diff --git a/src/eva2/optimization/modules/HCParameters.java b/src/eva2/optimization/modules/HCParameters.java index df0410ea..c8a342ea 100644 --- a/src/eva2/optimization/modules/HCParameters.java +++ b/src/eva2/optimization/modules/HCParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; import eva2.optimization.problems.B1Problem; @@ -21,7 +21,7 @@ import java.util.logging.Level; * Time: 21:19:20 * 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. diff --git a/src/eva2/optimization/modules/MCParameters.java b/src/eva2/optimization/modules/MCParameters.java index 03e1ed8f..80da22fb 100644 --- a/src/eva2/optimization/modules/MCParameters.java +++ b/src/eva2/optimization/modules/MCParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; import eva2.optimization.problems.B1Problem; @@ -20,7 +20,7 @@ import java.util.logging.Level; * Time: 21:07:40 * 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. diff --git a/src/eva2/optimization/modules/MOEAParameters.java b/src/eva2/optimization/modules/MOEAParameters.java index b3edba20..20c3f867 100644 --- a/src/eva2/optimization/modules/MOEAParameters.java +++ b/src/eva2/optimization/modules/MOEAParameters.java @@ -1,6 +1,6 @@ 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.InterfaceInformationRetrieval; import eva2.optimization.operators.terminators.EvaluationTerminator; @@ -22,7 +22,7 @@ import java.util.logging.Level; * Time: 13:49:09 * 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. diff --git a/src/eva2/optimization/modules/GOParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java similarity index 66% rename from src/eva2/optimization/modules/GOParameters.java rename to src/eva2/optimization/modules/OptimizationParameters.java index 4227e276..64b00cb6 100644 --- a/src/eva2/optimization/modules/GOParameters.java +++ b/src/eva2/optimization/modules/OptimizationParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator; 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) $ * $Author: mkron $ */ -public class GOParameters extends AbstractGOParameters implements InterfaceGOParameters, Serializable { +public class OptimizationParameters extends AbstractOptimizationParameters implements InterfaceOptimizationParameters, Serializable { - public static GOParameters getInstance() { - return getInstance("GOParameters.ser", true); + public static OptimizationParameters getInstance() { + return getInstance("OptimizationParameters.ser", true); } /** @@ -34,36 +34,36 @@ public class GOParameters extends AbstractGOParameters implements InterfaceGOPar * * @param serParamFile * @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) { - GOParameters instance = null; + public static OptimizationParameters getInstance(String serParamFile, final boolean casually) { + OptimizationParameters instance = null; try { FileInputStream fileStream = new FileInputStream(serParamFile); - instance = (GOParameters) Serializer.loadObject(fileStream, casually); + instance = (OptimizationParameters) Serializer.loadObject(fileStream, casually); } catch (FileNotFoundException ex) { LOGGER.log(Level.WARNING, "Could not load instance object.", ex); } if (instance == null) { - instance = new GOParameters(); + instance = new OptimizationParameters(); } return instance; } - public GOParameters() { + public OptimizationParameters() { 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); } /** * */ - private GOParameters(GOParameters Source) { - super(Source); + private OptimizationParameters(OptimizationParameters parameters) { + super(parameters); } /** * @@ -77,7 +77,7 @@ public class GOParameters extends AbstractGOParameters implements InterfaceGOPar */ @Override public Object clone() { - return new GOParameters(this); + return new OptimizationParameters(this); } /** This method returns a global info string. diff --git a/src/eva2/optimization/modules/PBILParameters.java b/src/eva2/optimization/modules/PBILParameters.java index 2e67d084..5131e307 100644 --- a/src/eva2/optimization/modules/PBILParameters.java +++ b/src/eva2/optimization/modules/PBILParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operators.selection.InterfaceSelection; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; @@ -22,7 +22,7 @@ import java.util.logging.Level; * Time: 21:53:29 * 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. diff --git a/src/eva2/optimization/modules/PSOParameters.java b/src/eva2/optimization/modules/PSOParameters.java index 9ec3a730..952dd18a 100644 --- a/src/eva2/optimization/modules/PSOParameters.java +++ b/src/eva2/optimization/modules/PSOParameters.java @@ -2,7 +2,7 @@ package eva2.optimization.modules; import eva2.gui.GenericObjectEditor; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.operators.terminators.EvaluationTerminator; import eva2.optimization.populations.Population; @@ -24,7 +24,7 @@ import java.util.logging.Level; * Time: 17:58:37 * 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. diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java index dd88edb5..a5b514fe 100644 --- a/src/eva2/optimization/modules/Processor.java +++ b/src/eva2/optimization/modules/Processor.java @@ -1,11 +1,7 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceNotifyOnInformers; -import eva2.optimization.go.PopulationInterface; -import eva2.optimization.go.InterfaceProcessor; -import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.go.InterfaceGOParameters; -import eva2.optimization.go.InterfacePopulationChangedEventListener; +import eva2.optimization.go.*; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.gui.BeanInspector; import eva2.optimization.OptimizationStateListener; 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 volatile boolean isOptimizationRunning; private InterfaceStatistics m_Statistics; - private InterfaceGOParameters goParams; + private InterfaceOptimizationParameters goParams; private boolean m_createInitialPopulations = true; private boolean saveParams = true; private OptimizationStateListener optimizationStateListener; @@ -76,7 +72,7 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo * * @see InterfaceNotifyOnInformers */ - public Processor(InterfaceStatistics Stat, ModuleAdapter moduleAdapter, InterfaceGOParameters params) { + public Processor(InterfaceStatistics Stat, ModuleAdapter moduleAdapter, InterfaceOptimizationParameters params) { goParams = params; m_Statistics = Stat; 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.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.getProblem(), "finish", new Object[]{goParams.getProblem(), goParams.getOptimizer().getPopulation()}); } - private void maybeUpdateParamCtrl(InterfaceGOParameters goParams) { + private void maybeUpdateParamCtrl(InterfaceOptimizationParameters goParams) { Object[] args; InterfaceTerminator terminator = goParams.getTerminator(); 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. */ - public InterfaceGOParameters getGOParams() { + public InterfaceOptimizationParameters getGOParams() { return goParams; } - public void setGOParams(InterfaceGOParameters params) { + public void setGOParams(InterfaceOptimizationParameters params) { if (params != null) { goParams = params; } else { diff --git a/src/eva2/optimization/modules/SAParameters.java b/src/eva2/optimization/modules/SAParameters.java index d76461c5..f7197c3b 100644 --- a/src/eva2/optimization/modules/SAParameters.java +++ b/src/eva2/optimization/modules/SAParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.operators.terminators.EvaluationTerminator; @@ -23,7 +23,7 @@ import java.util.logging.Level; * Time: 21:25:12 * 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 private InterfaceOptimizer m_Optimizer = new SimulatedAnnealing(); private InterfaceOptimizationProblem m_Problem = new B1Problem(); diff --git a/src/eva2/optimization/modules/SSGAParameters.java b/src/eva2/optimization/modules/SSGAParameters.java index 0126b801..f96d199f 100644 --- a/src/eva2/optimization/modules/SSGAParameters.java +++ b/src/eva2/optimization/modules/SSGAParameters.java @@ -1,6 +1,6 @@ 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.replacement.InterfaceReplacement; import eva2.optimization.operators.terminators.EvaluationTerminator; @@ -22,7 +22,7 @@ import java.util.logging.Level; * Time: 15:44:34 * 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. diff --git a/src/eva2/optimization/operators/postprocess/PostProcess.java b/src/eva2/optimization/operators/postprocess/PostProcess.java index 78f05a28..1a7b3bc6 100644 --- a/src/eva2/optimization/operators/postprocess/PostProcess.java +++ b/src/eva2/optimization/operators/postprocess/PostProcess.java @@ -37,7 +37,7 @@ import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.GradientDescentAlgorithm; import eva2.optimization.strategies.HillClimbing; import eva2.optimization.strategies.NelderMeadSimplex; -import eva2.optimization.modules.GOParameters; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.stat.StatisticsParameter; import eva2.tools.Pair; @@ -526,7 +526,7 @@ public class PostProcess { } 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(); pop.SetFunctionCalls(baseEvals); diff --git a/src/eva2/optimization/problems/ERPStarter.java b/src/eva2/optimization/problems/ERPStarter.java index a6da95b4..c088e3d1 100644 --- a/src/eva2/optimization/problems/ERPStarter.java +++ b/src/eva2/optimization/problems/ERPStarter.java @@ -5,6 +5,7 @@ import eva2.OptimizerRunnable; import eva2.client.EvAClient; import eva2.gui.BeanInspector; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.crossover.CrossoverESDefault; import eva2.optimization.operators.moso.MOSONoConvert; import eva2.optimization.operators.moso.MOSOWeightedFitness; @@ -15,7 +16,6 @@ import eva2.optimization.populations.InterfaceSolutionSet; import eva2.optimization.populations.Population; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.optimization.modules.GOParameters; import eva2.optimization.stat.StatisticsStandalone; import eva2.tools.BasicResourceLoader; import eva2.tools.StringTools; @@ -83,7 +83,7 @@ public class ERPStarter { System.out.println("Optimizer instance: " + BeanInspector.toString(opt)); System.out.println("Problem instance: " + BeanInspector.toString(erp)); // Instantiate optimization - GOParameters params = new GOParameters(opt, erp, new EvaluationTerminator(maxEvals)); + OptimizationParameters params = new OptimizationParameters(opt, erp, new EvaluationTerminator(maxEvals)); if (startGUI) { EvAClient.initClientGUI(params, null, null, null); } else { diff --git a/src/eva2/optimization/problems/FLensProblem.java b/src/eva2/optimization/problems/FLensProblem.java index b9f86c54..17fd095b 100644 --- a/src/eva2/optimization/problems/FLensProblem.java +++ b/src/eva2/optimization/problems/FLensProblem.java @@ -5,9 +5,9 @@ import eva2.optimization.go.GOStandaloneVersion; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.populations.Population; import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.optimization.modules.GOParameters; import eva2.tools.math.RNG; import java.awt.BasicStroke; import java.awt.BorderLayout; @@ -475,7 +475,7 @@ implements InterfaceOptimizationProblem, InterfaceHasSolutionViewer, java.io.Ser FLensProblem f = new FLensProblem(); System.out.println("Working Dir " +System.getProperty("user.dir")); GOStandaloneVersion program = new GOStandaloneVersion(); - GOParameters GO = program.getGOParameters(); + OptimizationParameters GO = program.getGOParameters(); GO.setProblem(f); RNG.setRandomSeed(1); program.initFrame(); diff --git a/src/eva2/optimization/stat/EvAJob.java b/src/eva2/optimization/stat/EvAJob.java index 3740f45d..d7f49f4d 100644 --- a/src/eva2/optimization/stat/EvAJob.java +++ b/src/eva2/optimization/stat/EvAJob.java @@ -1,7 +1,7 @@ package eva2.optimization.stat; import eva2.gui.BeanInspector; -import eva2.optimization.go.InterfaceGOParameters; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.tools.StringSelection; import java.io.Serializable; import java.util.List; @@ -19,7 +19,7 @@ import java.util.List; public class EvAJob implements Serializable, InterfaceStatisticsListener { private static final boolean TRACE = false; - private InterfaceGOParameters params = null; + private InterfaceOptimizationParameters params = null; private String[] fieldHeaders = null; private List multiRunFinalObjectData = null; private int jobID=0; @@ -36,7 +36,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener { jobIDCounter++; } - public EvAJob(InterfaceGOParameters params, InterfaceStatistics sts) { + public EvAJob(InterfaceOptimizationParameters params, InterfaceStatistics sts) { this(); this.params = params; if (sts instanceof AbstractStatistics) { @@ -58,7 +58,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener { multiRunFinalObjectData=null; } - public InterfaceGOParameters getParams() { + public InterfaceOptimizationParameters getParams() { return params; } @@ -67,7 +67,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener { * * @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 // the parameters will be evil, so avoid that case. if (state==StateEnum.complete) { @@ -134,7 +134,7 @@ public class EvAJob implements Serializable, InterfaceStatisticsListener { return multiRunFinalObjectData; } - public InterfaceGOParameters getGOParams() { + public InterfaceOptimizationParameters getGOParams() { return params; } diff --git a/src/eva2/optimization/stat/EvAJobList.java b/src/eva2/optimization/stat/EvAJobList.java index 0abad9b3..b12811ca 100644 --- a/src/eva2/optimization/stat/EvAJobList.java +++ b/src/eva2/optimization/stat/EvAJobList.java @@ -3,9 +3,9 @@ package eva2.optimization.stat; import eva2.gui.GenericArrayEditor; import eva2.gui.JParaPanel; 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.modules.AbstractGOParameters; import eva2.optimization.modules.AbstractModuleAdapter; import eva2.optimization.modules.GenericModuleAdapter; import eva2.optimization.modules.ModuleAdapter; @@ -24,7 +24,7 @@ import javax.swing.JFileChooser; 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. * * @author mkron @@ -53,8 +53,8 @@ public class EvAJobList extends PropertySelectableList implements Serial * @param params * @param stats */ - public EvAJob addJob(InterfaceGOParameters params, AbstractStatistics stats) { - EvAJob job = new EvAJob((InterfaceGOParameters) Serializer.deepClone(params), stats); + public EvAJob addJob(InterfaceOptimizationParameters params, AbstractStatistics stats) { + EvAJob job = new EvAJob((InterfaceOptimizationParameters) Serializer.deepClone(params), stats); stats.addDataListener(job); addJob(job, true); return job; @@ -138,13 +138,13 @@ public class EvAJobList extends PropertySelectableList implements Serial /** * 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. * * @param params * @return */ - public EvAJob getJobOf(InterfaceGOParameters params) { + public EvAJob getJobOf(InterfaceOptimizationParameters params) { for (EvAJob job : getObjects()) { if (job.getGOParams() == params) { return job; @@ -212,8 +212,8 @@ public class EvAJobList extends PropertySelectableList implements Serial List jobs = jobList.getSelectedJobs(); if (jobs.size() == 1) { EvAJob job = jobs.get(0); - AbstractGOParameters curParams = (AbstractGOParameters) ((AbstractModuleAdapter) jobList.module).getGOParameters(); - curParams.setSameParams((AbstractGOParameters) job.getGOParams()); + AbstractOptimizationParameters curParams = (AbstractOptimizationParameters) ((AbstractModuleAdapter) jobList.module).getGOParameters(); + curParams.setSameParams((AbstractOptimizationParameters) job.getGOParams()); ((GenericModuleAdapter) jobList.module).setGOParameters(curParams); ((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setMultiRuns(job.getNumRuns()); ((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().setFieldSelection(job.getFieldSelection(((GenericModuleAdapter) jobList.module).getStatistics().getStatisticsParameter().getFieldSelection())); diff --git a/src/eva2/optimization/strategies/ANPSO.java b/src/eva2/optimization/strategies/ANPSO.java index 87998e20..09c3b021 100644 --- a/src/eva2/optimization/strategies/ANPSO.java +++ b/src/eva2/optimization/strategies/ANPSO.java @@ -7,6 +7,7 @@ import eva2.optimization.go.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.nichepso.deactivation.StandardDeactivationStrategy; import eva2.optimization.operators.paramcontrol.LinearParamAdaption; import eva2.optimization.operators.paramcontrol.ParamAdaption; @@ -15,7 +16,6 @@ import eva2.optimization.populations.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; -import eva2.optimization.modules.GOParameters; import eva2.tools.ToolBox; import eva2.tools.chart2d.DPoint; 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"; } - 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.setMainSwarmSize(75); @@ -966,7 +966,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi * @param evalCnt * @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(); 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)); } - 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(); 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)); } - 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(); NichePSO.starNPSO(anpso, problem, randSeed, evalCnt); @@ -1036,7 +1036,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi * @param evalCnt * @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); } @@ -1050,8 +1050,8 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi * @param topologyRange * @return */ - public static final GOParameters starTopoANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt, int topology, int topologyRange) { - GOParameters params = starANPSO(problem, randSeed, evalCnt); + public static final OptimizationParameters starTopoANPSO(AbstractOptimizationProblem problem, long randSeed, int evalCnt, int topology, int topologyRange) { + OptimizationParameters params = starANPSO(problem, randSeed, evalCnt); ((ANPSO)params.getOptimizer()).SetMainSwarmTopologyTag(topology); ((ANPSO)params.getOptimizer()).setMainSwarmTopologyRange(topologyRange); ((ANPSO)params.getOptimizer()).getMainSwarm().setInertnessOrChi(0.73); diff --git a/src/eva2/optimization/strategies/DifferentialEvolution.java b/src/eva2/optimization/strategies/DifferentialEvolution.java index f6e09481..580a0787 100644 --- a/src/eva2/optimization/strategies/DifferentialEvolution.java +++ b/src/eva2/optimization/strategies/DifferentialEvolution.java @@ -18,6 +18,8 @@ import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; import eva2.tools.math.Mathematics; import eva2.tools.math.RNG; +import eva2.util.annotation.Parameter; + import java.util.Vector; /** @@ -35,9 +37,16 @@ public class DifferentialEvolution implements InterfaceOptimizer, java.io.Serial protected transient Population children = null; protected AbstractOptimizationProblem m_Problem = new F1Problem(); private DETypeEnum m_DEType; + + @Parameter(name = "F", description = "Differential Weight") private double m_F = 0.8; + + @Parameter(name = "CR", description = "Crossover Rate") private double m_k = 0.6; // AKA CR + + @Parameter(name = "Lambda", description = "Lambda") private double m_Lambda = 0.6; + private double m_Mt = 0.05; private int maximumAge = -1; private boolean reEvaluate = false; diff --git a/src/eva2/optimization/strategies/NichePSO.java b/src/eva2/optimization/strategies/NichePSO.java index 99b67b12..b2b93289 100644 --- a/src/eva2/optimization/strategies/NichePSO.java +++ b/src/eva2/optimization/strategies/NichePSO.java @@ -9,6 +9,7 @@ import eva2.optimization.go.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.nichepso.absorption.EuclideanDiversityAbsorptionStrategy; import eva2.optimization.operators.nichepso.absorption.InterfaceAbsorptionStrategy; 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.InterfaceMultimodalProblemKnown; import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.optimization.modules.GOParameters; import eva2.tools.SelectedTag; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconContent; @@ -2140,7 +2140,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac 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(); npso.setMainSwarmSize(75); @@ -2154,7 +2154,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac * * The evaluation count is required currently due to the * 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 * getMainSwarm().setInertnessAging(InterfaceParameteraging) * @@ -2163,11 +2163,11 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac * @param evalCnt * @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); } - 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); } @@ -2183,7 +2183,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac * @param evalCnt * @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) { npso = new NichePSO(); } @@ -2233,7 +2233,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac * @param evalCnt * @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); return OptimizerFactory.makeParams(npso, npso.getMainSwarmSize(), problem, randSeed, new EvaluationTerminator(evalCnt)); } diff --git a/src/eva2/optimization/strategies/ScatterSearch.java b/src/eva2/optimization/strategies/ScatterSearch.java index 54b95a6f..6ac02414 100644 --- a/src/eva2/optimization/strategies/ScatterSearch.java +++ b/src/eva2/optimization/strategies/ScatterSearch.java @@ -8,6 +8,7 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operators.distancemetric.PhenotypeMetric; import eva2.optimization.operators.postprocess.PostProcess; import eva2.optimization.operators.terminators.EvaluationTerminator; @@ -17,7 +18,6 @@ import eva2.optimization.populations.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.optimization.modules.GOParameters; import eva2.tools.Pair; import eva2.tools.SelectedTag; import eva2.tools.math.Mathematics; @@ -883,18 +883,18 @@ public class ScatterSearch implements InterfaceOptimizer, java.io.Serializable, // 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); return rnbl; } - public static final GOParameters standardSS( + public static final OptimizationParameters standardSS( AbstractOptimizationProblem problem) { 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, double nmInitPerturb, boolean relativeFitCrit, int refSetSize,