diff --git a/src/eva2/EvAInfo.java b/src/eva2/EvAInfo.java index 8231ccf6..270a8654 100644 --- a/src/eva2/EvAInfo.java +++ b/src/eva2/EvAInfo.java @@ -1,107 +1,109 @@ package eva2; import eva2.tools.BasicResourceLoader; + import java.io.InputStream; import java.util.Properties; -/** +/** * @author mkron - * */ public class EvAInfo { /** * Product Name. */ - public static final String productName = "EvA2"; - + public static final String productName = "EvA2"; + /** * Long product name. */ - public static final String productLongName = "Evolutionary Algorithms Workbench 2"; - + public static final String productLongName = "Evolutionary Algorithms Workbench 2"; + /** * Website URL of EvA2. */ - public static final String url = "http://www.cogsys.cs.uni-tuebingen.de/software/EvA2"; + public static final String url = "http://www.cogsys.cs.uni-tuebingen.de/software/EvA2"; /** * Relative path to default properties. */ - public static final String propertyFile = "META-INF/EvA2.props"; - - public static final String LGPLFile = "lgpl-3.0.txt"; - public static final String GPLFile= "gpl-3.0.txt"; - + public static final String propertyFile = "META-INF/EvA2.props"; + + public static final String LGPLFile = "lgpl-3.0.txt"; + public static final String GPLFile = "gpl-3.0.txt"; + /** * Relative path to application icon. */ - public static final String iconLocation = "images/icon4.gif"; + public static final String iconLocation = "images/icon4.gif"; /** * Relative path to splash screen image. */ - public static final String splashLocation = "images/EvASplashScreen.png"; - - public static final String infoTitle = productName+" Information"; - public static final String copyrightYear = "2010-2012"; + public static final String splashLocation = "images/EvASplashScreen.png"; + + public static final String infoTitle = productName + " Information"; + public static final String copyrightYear = "2010-2012"; + + ////////////// Property handling... + + private static Properties evaProperties; + + static { + try { + evaProperties = BasicResourceLoader.readProperties(EvAInfo.propertyFile); + } catch (Exception ex) { + System.err.println(resourceNotFoundErrorMessage(EvAInfo.propertyFile)); + System.err.println(ex.getMessage()); + System.exit(1); + } + InputStream istr = BasicResourceLoader.instance().getStreamFromResourceLocation(EvAInfo.iconLocation); + if (istr == null) { + throw new RuntimeException(resourceNotFoundErrorMessage(EvAInfo.iconLocation) + " (EvAInfo.static)"); + } + } - ////////////// Property handling... - - private static Properties evaProperties; - static { - try { - evaProperties = BasicResourceLoader.readProperties(EvAInfo.propertyFile); - } catch (Exception ex) { - System.err.println(resourceNotFoundErrorMessage(EvAInfo.propertyFile)); - System.err.println(ex.getMessage()); - System.exit(1); - } - InputStream istr = BasicResourceLoader.instance().getStreamFromResourceLocation(EvAInfo.iconLocation); - if (istr==null) { - throw new RuntimeException(resourceNotFoundErrorMessage(EvAInfo.iconLocation) + " (EvAInfo.static)"); - } - } - /** * An eloquent error message in case a resource was not found - which was * expected in the EvA2 resource directory. + * * @param resourceName * @return */ public static String resourceNotFoundErrorMessage(String resourceName) { - String cp = System.getProperty("java.class.path"); - return "Could not find " + resourceName + - "\nPlease make resources folder available on the class path! " + - "Current class path is: " + cp + - "\nYou may copy it there or add the parent folder of resources/ to the class path."; + String cp = System.getProperty("java.class.path"); + return "Could not find " + resourceName + + "\nPlease make resources folder available on the class path! " + + "Current class path is: " + cp + + "\nYou may copy it there or add the parent folder of resources/ to the class path."; } - - public static String getProperty(String key) { - String myVal = evaProperties.getProperty(key); - return myVal; - } - public static Properties getProperties() { - return evaProperties; - } - - private static void setProperty(String key, String value) { - evaProperties.setProperty(key, value); - } + public static String getProperty(String key) { + String myVal = evaProperties.getProperty(key); + return myVal; + } - public static String getVersion() { - String version = getProperty("EvA2Version"); - if (version==null) { - System.err.println("ERROR, missing property EvA2Version!"); - } - return version; - } + public static Properties getProperties() { + return evaProperties; + } - public static String propDefaultModule() { - return getProperty("DefaultModule"); - } + private static void setProperty(String key, String value) { + evaProperties.setProperty(key, value); + } - public static String propShowModules() { - return getProperty("ShowModules"); - } + public static String getVersion() { + String version = getProperty("EvA2Version"); + if (version == null) { + System.err.println("ERROR, missing property EvA2Version!"); + } + return version; + } + + public static String propDefaultModule() { + return getProperty("DefaultModule"); + } + + public static String propShowModules() { + return getProperty("ShowModules"); + } } diff --git a/src/eva2/OptimizerFactory.java b/src/eva2/OptimizerFactory.java index d67000ca..179dd875 100644 --- a/src/eva2/OptimizerFactory.java +++ b/src/eva2/OptimizerFactory.java @@ -1,41 +1,13 @@ package eva2; -import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operator.mutation.InterfaceMutation; -import eva2.optimization.operator.mutation.NoMutation; -import eva2.optimization.operator.mutation.MutateESFixedStepSize; -import eva2.optimization.operator.mutation.MutateESCovarianceMatrixAdaption; -import eva2.optimization.operator.mutation.MutateESGlobal; -import eva2.optimization.operator.mutation.MutateESRankMuCMA; -import eva2.optimization.strategies.ParticleSwarmOptimization; -import eva2.optimization.strategies.EvolutionStrategyIPOP; -import eva2.optimization.strategies.GradientDescentAlgorithm; -import eva2.optimization.strategies.NelderMeadSimplex; -import eva2.optimization.strategies.DifferentialEvolution; -import eva2.optimization.strategies.EsDpiNiching; -import eva2.optimization.strategies.HillClimbing; -import eva2.optimization.strategies.EvolutionStrategies; -import eva2.optimization.strategies.PopulationBasedIncrementalLearning; -import eva2.optimization.strategies.EsDpiNichingCma; -import eva2.optimization.strategies.MultiObjectiveEA; -import eva2.optimization.strategies.GeneticAlgorithm; -import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.optimization.strategies.Tribes; -import eva2.optimization.strategies.SimulatedAnnealing; -import eva2.optimization.strategies.ClusteringHillClimbing; -import eva2.optimization.strategies.ClusterBasedNichingEA; -import eva2.optimization.strategies.MonteCarloSearch; -import eva2.optimization.individuals.IndividualInterface; -import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.enums.DETypeEnum; import eva2.optimization.enums.MutateESCrossoverTypeEnum; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PostProcessMethod; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.InterfaceDataTypeBinary; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.InterfaceESIndividual; +import eva2.optimization.go.InterfacePopulationChangedEventListener; +import eva2.optimization.go.InterfaceTerminator; +import eva2.optimization.individuals.*; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.archiving.ArchivingNSGAII; import eva2.optimization.operator.archiving.InformationRetrievalInserting; import eva2.optimization.operator.archiving.InterfaceArchiving; @@ -46,6 +18,7 @@ import eva2.optimization.operator.crossover.CrossoverESDefault; import eva2.optimization.operator.crossover.InterfaceCrossover; import eva2.optimization.operator.crossover.NoCrossover; import eva2.optimization.operator.distancemetric.IndividualDataMetric; +import eva2.optimization.operator.mutation.*; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.operator.selection.InterfaceSelection; @@ -56,7 +29,9 @@ import eva2.optimization.population.PBILPopulation; import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.stat.InterfaceStatistics; +import eva2.optimization.strategies.*; import eva2.tools.math.RNG; + import java.util.ArrayList; import java.util.BitSet; import java.util.List; @@ -76,11 +51,11 @@ import java.util.List; * while (!terminator.isTerminated(optimizer.getPopulation())) optimizer.optimize(); *

* - * @version 0.1 - * @since 2.0 * @author mkron * @author Andreas Dräger + * @version 0.1 * @date 17.04.2007 + * @since 2.0 */ public class OptimizerFactory { @@ -150,22 +125,22 @@ public class OptimizerFactory { * * @param mu * @param lambda - * @param plus if true this operator uses elitism otherwise a comma - * strategy. + * @param plus if true this operator uses elitism otherwise a comma + * strategy. * @param mutationoperator * @param pm * @param crossoveroperator * @param pc - * @param selection environmental selection operator + * @param selection environmental selection operator * @param problem * @param listener * @return An optimization algorithm that employs an evolution strategy. */ public static final EvolutionStrategies createEvolutionStrategy(int mu, - int lambda, boolean plus, InterfaceMutation mutationoperator, - double pm, InterfaceCrossover crossoveroperator, double pc, - InterfaceSelection selection, AbstractOptimizationProblem problem, - InterfacePopulationChangedEventListener listener) { + int lambda, boolean plus, InterfaceMutation mutationoperator, + double pm, InterfaceCrossover crossoveroperator, double pc, + InterfaceSelection selection, AbstractOptimizationProblem problem, + InterfacePopulationChangedEventListener listener) { return createES(new EvolutionStrategies(mu, lambda, plus), mutationoperator, pm, crossoveroperator, pc, selection, problem, listener); } @@ -175,24 +150,24 @@ public class OptimizerFactory { * * @param mu * @param lambda - * @param plus if true this operator uses elitism otherwise a comma - * strategy. + * @param plus if true this operator uses elitism otherwise a comma + * strategy. * @param mutationoperator * @param pm * @param crossoveroperator * @param pc - * @param incPopSizeFact factor by which to inrease lambda ro restart, - * default is 2 - * @param stagThresh if the fitness changes below this value during a - * stagnation phase, a restart is initiated + * @param incPopSizeFact factor by which to inrease lambda ro restart, + * default is 2 + * @param stagThresh if the fitness changes below this value during a + * stagnation phase, a restart is initiated * @param problem * @param listener * @return An optimization algorithm that employs an IPOP-ES. */ public static final EvolutionStrategyIPOP createEvolutionStrategyIPOP(int mu, - int lambda, boolean plus, InterfaceMutation mutationoperator, - double pm, InterfaceCrossover crossoveroperator, double pc, double incPopSizeFact, double stagThresh, - AbstractOptimizationProblem problem, InterfacePopulationChangedEventListener listener) { + int lambda, boolean plus, InterfaceMutation mutationoperator, + double pm, InterfaceCrossover crossoveroperator, double pc, double incPopSizeFact, double stagThresh, + AbstractOptimizationProblem problem, InterfacePopulationChangedEventListener listener) { EvolutionStrategyIPOP esIPOP = (EvolutionStrategyIPOP) createES(new EvolutionStrategyIPOP(mu, lambda, plus), mutationoperator, pm, crossoveroperator, pc, new SelectBestIndividuals(), problem, listener); esIPOP.setIncPopSizeFact(incPopSizeFact); // esIPOP.setStagnationGenerations(stagTimeGens); @@ -201,9 +176,9 @@ public class OptimizerFactory { } private static final EvolutionStrategies createES(EvolutionStrategies theES, InterfaceMutation mutationoperator, - double pm, InterfaceCrossover crossoveroperator, double pc, - InterfaceSelection selection, AbstractOptimizationProblem problem, - InterfacePopulationChangedEventListener listener) { + double pm, InterfaceCrossover crossoveroperator, double pc, + InterfaceSelection selection, AbstractOptimizationProblem problem, + InterfacePopulationChangedEventListener listener) { problem.initializeProblem(); @@ -267,12 +242,12 @@ public class OptimizerFactory { * multi-objective selection method within the specific optimizer. This uses * a standard archiving strategy (NSGAII) and InformationRetrievalInserting. * - * @param subOpt the specific optimizer to use + * @param subOpt the specific optimizer to use * @param archiveSize maximum size of the archive * @param problem * @param listener * @return An optimization algorithm that employs a multi-objective - * optimizer + * optimizer */ public static MultiObjectiveEA createMultiObjectiveEA( InterfaceOptimizer subOpt, int archiveSize, @@ -302,14 +277,14 @@ public class OptimizerFactory { * This method creates a multi-objective EA optimizer. Remember to set a * multi-objective selection method within the specific optimizer. * - * @param subOpt the specific optimizer to use - * @param archiving the archiving strategy collecting the pareto front - * @param archiveSize maximum size of the archive + * @param subOpt the specific optimizer to use + * @param archiving the archiving strategy collecting the pareto front + * @param archiveSize maximum size of the archive * @param infoRetrieval information retrieval strategy * @param problem * @param listener * @return An optimization algorithm that employs a multi-objective - * optimizer + * optimizer */ public static MultiObjectiveEA createMultiObjectiveEA( InterfaceOptimizer subOpt, InterfaceArchiving archiving, @@ -352,28 +327,28 @@ public class OptimizerFactory { * This method creates a Hill Climber algorithm with a default fixed-size * mutation. * - * @param pop The size of the population - * @param problem The problem to be optimized + * @param pop The size of the population + * @param problem The problem to be optimized * @param listener * @return An optimization procedure that performs hill climbing. */ public static HillClimbing createHillClimber(int popSize, - AbstractOptimizationProblem problem, - InterfacePopulationChangedEventListener listener) { + AbstractOptimizationProblem problem, + InterfacePopulationChangedEventListener listener) { return createHillClimber(popSize, new MutateESFixedStepSize(0.2), problem, listener); } /** * This method creates a Hill Climber algorithm. * - * @param pop The size of the population - * @param problem The problem to be optimized + * @param pop The size of the population + * @param problem The problem to be optimized * @param listener * @return An optimization procedure that performs hill climbing. */ public static HillClimbing createHillClimber(int popSize, InterfaceMutation mutator, - AbstractOptimizationProblem problem, - InterfacePopulationChangedEventListener listener) { + AbstractOptimizationProblem problem, + InterfacePopulationChangedEventListener listener) { problem.initializeProblem(); @@ -434,9 +409,9 @@ public class OptimizerFactory { * @param speedLim * @param listener * @param topology - * @see ParticleSwarmOpimization * @return An optimization algorithm that performs particle swarm - * optimization. + * optimization. + * @see ParticleSwarmOpimization */ public static ParticleSwarmOptimization createParticleSwarmOptimization( AbstractOptimizationProblem problem, int popsize, double phi1, @@ -473,7 +448,7 @@ public class OptimizerFactory { * * @param problem * @param popsize - * @param alpha The parameter for the linear cooling + * @param alpha The parameter for the linear cooling * @param temperature The initial temperature * @param mut * @param listener @@ -556,15 +531,16 @@ public class OptimizerFactory { } // /////////////////////////// constructing a default OptimizerRunnable + /** * For an optimizer identifier, return the corresponding default parameter * set including initialization (thats why the problem is required). * - * @param optType optimizer identifier - * @param problem corresponding optimization problem + * @param optType optimizer identifier + * @param problem corresponding optimization problem */ public static OptimizationParameters getParams(final int optType, - AbstractOptimizationProblem problem) { + AbstractOptimizationProblem problem) { switch (optType) { case STD_ES: return standardES(problem); @@ -625,8 +601,8 @@ public class OptimizerFactory { * @return a runnable optimizer */ public static OptimizerRunnable getOptRunnable(final int optType, - AbstractOptimizationProblem problem, int fitCalls, - String outputFilePrefix) { + AbstractOptimizationProblem problem, int fitCalls, + String outputFilePrefix) { return getOptRunnable(optType, problem, new EvaluationTerminator(fitCalls), outputFilePrefix); } @@ -644,8 +620,8 @@ public class OptimizerFactory { * @return a runnable optimizer */ public static OptimizerRunnable getOptRunnable(final int optType, - AbstractOptimizationProblem problem, InterfaceTerminator terminator, - String outputFilePrefix) { + AbstractOptimizationProblem problem, InterfaceTerminator terminator, + String outputFilePrefix) { OptimizerRunnable opt = null; OptimizationParameters params = getParams(optType, problem); if (params != null) { @@ -672,19 +648,20 @@ public class OptimizerFactory { } // /////////////////////////// constructing a default OptimizerRunnable + /** * Produce a runnable optimizer from a strategy identifier, a problem * instance and with the current static terminator in use. Output is written * to a file if the prefix String is given. * - * @see #getOptRunnable(int, AbstractOptimizationProblem, int, String) * @param optType * @param problem * @param outputFilePrefix * @return a runnable optimizer + * @see #getOptRunnable(int, AbstractOptimizationProblem, int, String) */ public static OptimizerRunnable getOptRunnable(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { return getOptRunnable(optType, problem, getTerminator(), outputFilePrefix); } @@ -713,6 +690,7 @@ public class OptimizerFactory { } // /////////////////////// Creating default strategies + /** * Use lambda, default random seed and terminator to produce OptimizationParameters. * @@ -721,19 +699,19 @@ public class OptimizerFactory { * @return */ public static OptimizationParameters makeESParams(EvolutionStrategies es, - AbstractOptimizationProblem problem) { + AbstractOptimizationProblem problem) { return makeParams(es, es.getLambda(), problem, randSeed, getTerminator()); } /** * Use default random seed and terminator for a parameter set. * - * @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem, - * long, InterfaceTerminator) * @param opt * @param popSize * @param problem * @return + * @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem, + * long, InterfaceTerminator) */ public static OptimizationParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem) { return makeParams(opt, popSize, problem, randSeed, getTerminator()); @@ -742,12 +720,12 @@ public class OptimizerFactory { /** * Use default random seed and the population size of the optimizer. * - * @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem, - * long, InterfaceTerminator) * @param opt * @param popSize * @param problem * @return + * @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem, + * long, InterfaceTerminator) */ public static OptimizationParameters makeParams(InterfaceOptimizer opt, AbstractOptimizationProblem problem, InterfaceTerminator term) { return makeParams(opt, opt.getPopulation().getTargetSize(), problem, randSeed, term); @@ -757,18 +735,18 @@ public class OptimizerFactory { * Set the population size, initialize the population and return a parameter * structure containing all given parts. * - * @see #makeParams(InterfaceOptimizer, Population, - * AbstractOptimizationProblem, long, InterfaceTerminator) * @param opt * @param popSize * @param problem * @param seed * @param term * @return + * @see #makeParams(InterfaceOptimizer, Population, + * AbstractOptimizationProblem, long, InterfaceTerminator) */ public static OptimizationParameters makeParams(InterfaceOptimizer opt, - int popSize, AbstractOptimizationProblem problem, long seed, - InterfaceTerminator term) { + int popSize, AbstractOptimizationProblem problem, long seed, + InterfaceTerminator term) { Population pop = new Population(popSize); RNG.setRandomSeed(seed); problem.initializePopulation(pop); @@ -780,17 +758,17 @@ public class OptimizerFactory { * The result can be modified and then used to create an OptimizerRunnable, * which of course can simply be run. * - * @see OptimizerRunnable * @param opt * @param pop * @param problem * @param seed * @param term * @return + * @see OptimizerRunnable */ public static OptimizationParameters makeParams(InterfaceOptimizer opt, - Population pop, AbstractOptimizationProblem problem, long seed, - InterfaceTerminator term) { + Population pop, AbstractOptimizationProblem problem, long seed, + InterfaceTerminator term) { OptimizationParameters params = new OptimizationParameters(); params.setProblem(problem); opt.setProblem(problem); @@ -802,7 +780,7 @@ public class OptimizerFactory { } public static OptimizerRunnable optimize(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { return optimize(getOptRunnable(optType, problem, outputFilePrefix)); } @@ -860,7 +838,7 @@ public class OptimizerFactory { // ///////////////////////////// Optimize a given parameter instance public static BitSet optimizeToBinary(OptimizationParameters params, - String outputFilePrefix) { + String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); return runnable.getBinarySolution(); @@ -868,13 +846,13 @@ public class OptimizerFactory { // ///////////////////////////// Optimize using a default strategy public static BitSet optimizeToBinary(final int optType, - AbstractOptimizationProblem problem) { + AbstractOptimizationProblem problem) { return optimizeToBinary(optType, problem, null); } // ///////////////////////////// Optimize using a default strategy public static BitSet optimizeToBinary(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { OptimizerRunnable runnable = optimize(optType, problem, outputFilePrefix); return (runnable != null) ? runnable.getBinarySolution() : null; @@ -887,7 +865,7 @@ public class OptimizerFactory { } public static double[] optimizeToDouble(OptimizationParameters params, - String outputFilePrefix) { + String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); return runnable.getDoubleSolution(); @@ -906,12 +884,12 @@ public class OptimizerFactory { } public static double[] optimizeToDouble(final int optType, - AbstractOptimizationProblem problem) { + AbstractOptimizationProblem problem) { return optimizeToDouble(optType, problem, null); } public static double[] optimizeToDouble(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { OptimizerRunnable runnable = optimize(optType, problem, outputFilePrefix); return (runnable != null) ? runnable.getDoubleSolution() : null; @@ -929,19 +907,19 @@ public class OptimizerFactory { } public static IndividualInterface optimizeToInd(OptimizationParameters params, - String outputFilePrefix) { + String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); return runnable.getResult(); } public static IndividualInterface optimizeToInd(final int optType, - AbstractOptimizationProblem problem) { + AbstractOptimizationProblem problem) { return optimizeToInd(optType, problem, null); } public static IndividualInterface optimizeToInd(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { OptimizerRunnable runnable = optimize(optType, problem, outputFilePrefix); return (runnable != null) ? runnable.getResult() : null; @@ -953,14 +931,14 @@ public class OptimizerFactory { } public static Population optimizeToPop(OptimizationParameters params, - String outputFilePrefix) { + String outputFilePrefix) { OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, outputFilePrefix)); return runnable.getResultPopulation(); } public static Population optimizeToPop(final int optType, - AbstractOptimizationProblem problem, String outputFilePrefix) { + AbstractOptimizationProblem problem, String outputFilePrefix) { OptimizerRunnable runnable = optimize(optType, problem, outputFilePrefix); return (runnable != null) ? runnable.getResultPopulation() : null; @@ -992,7 +970,7 @@ public class OptimizerFactory { * @return */ public static Population postProcess(OptimizerRunnable runnable, int steps, - double sigma, int nBest) { + double sigma, int nBest) { PostProcessParams ppp = new PostProcessParams(steps, sigma, nBest); return postProcess(runnable, ppp); } @@ -1006,7 +984,7 @@ public class OptimizerFactory { * @return */ public static Population postProcess(OptimizerRunnable runnable, - InterfacePostProcessParams ppp) { + InterfacePostProcessParams ppp) { runnable.setDoRestart(true); runnable.setDoPostProcessOnly(true); runnable.setPostProcessingParams(ppp); @@ -1017,7 +995,7 @@ public class OptimizerFactory { } public static List postProcessBinVec(int steps, double sigma, - int nBest) { + int nBest) { return (lastRunnable != null) ? postProcessBinVec(lastRunnable, new PostProcessParams(steps, sigma, nBest)) : null; } @@ -1029,7 +1007,7 @@ public class OptimizerFactory { } public static List postProcessBinVec(OptimizerRunnable runnable, - int steps, double sigma, int nBest) { + int steps, double sigma, int nBest) { return postProcessBinVec(runnable, new PostProcessParams(steps, sigma, nBest)); } @@ -1043,7 +1021,7 @@ public class OptimizerFactory { * @return */ public static List postProcessBinVec(OptimizerRunnable runnable, - InterfacePostProcessParams ppp) { + InterfacePostProcessParams ppp) { Population resPop = postProcess(runnable, ppp); List ret = new ArrayList(resPop.size()); for (Object o : resPop) { @@ -1056,7 +1034,7 @@ public class OptimizerFactory { } public static List postProcessDblVec(int steps, double sigma, - int nBest) { + int nBest) { return (lastRunnable == null) ? null : postProcessDblVec(lastRunnable, new PostProcessParams(steps, sigma, nBest)); } @@ -1096,7 +1074,7 @@ public class OptimizerFactory { } public static List postProcessIndVec(int steps, - double sigma, int nBest) { + double sigma, int nBest) { return (lastRunnable != null) ? postProcessIndVec(lastRunnable, new PostProcessParams(steps, sigma, nBest)) : null; } @@ -1137,6 +1115,7 @@ public class OptimizerFactory { } ///////////////////////////// termination management + /** * Replace the current user-defined terminator by the given one. * @@ -1154,7 +1133,7 @@ public class OptimizerFactory { * the new one is used without conjunction. * * @param newTerm a new InterfaceTerminator instance - * @param bAnd indicate the boolean combination + * @param bAnd indicate the boolean combination */ public static void addTerminator(InterfaceTerminator newTerm, boolean bAnd) { if (OptimizerFactory.userTerm == null) { @@ -1185,11 +1164,12 @@ public class OptimizerFactory { } ///////////////////////////// default parameters + /** * Create a standard multi-start hill-climber parameter set with 50 initial * individuals. * - * @return a standard multi-start hill-climber + * @return a standard multi-start hill-climber */ public static OptimizationParameters hillClimbing( AbstractOptimizationProblem problem) { @@ -1200,7 +1180,7 @@ public class OptimizerFactory { * Create a standard multi-start hill-climber parameter set with the given * number of individuals. * - * @return a standard multi-start hill-climber + * @return a standard multi-start hill-climber */ public static OptimizationParameters hillClimbing( AbstractOptimizationProblem problem, int popSize) { @@ -1226,7 +1206,7 @@ public class OptimizerFactory { * @return */ 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, new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize); } @@ -1244,7 +1224,7 @@ public class OptimizerFactory { } 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) { OptimizationParameters psoParams = standardPSO(problem); ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer(); ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize, @@ -1266,8 +1246,8 @@ public class OptimizerFactory { * @return */ public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt, - InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength, - double haltingWindowEpsilon, int popSize) { + InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength, + double haltingWindowEpsilon, int popSize) { ClusterBasedNichingEA cbn = new ClusterBasedNichingEA(); cbn.setOptimizer(opt); cbn.setMergingCA(clustMerge); @@ -1323,7 +1303,6 @@ public class OptimizerFactory { } /** - * * @param problem * @return */ @@ -1364,7 +1343,7 @@ public class OptimizerFactory { * @return */ 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, PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust); } @@ -1637,7 +1616,7 @@ public class OptimizerFactory { * @return */ private static boolean assertIndyType(AbstractOptimizationProblem prob, - Class cls) { + Class cls) { return cls.isAssignableFrom(prob.getIndividualTemplate().getClass()); } diff --git a/src/eva2/OptimizerRunnable.java b/src/eva2/OptimizerRunnable.java index a5aaeb1f..f381c9f3 100644 --- a/src/eva2/OptimizerRunnable.java +++ b/src/eva2/OptimizerRunnable.java @@ -1,24 +1,20 @@ package eva2; -import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.stat.StatisticsDummy; -import eva2.optimization.stat.InterfaceStatistics; -import eva2.optimization.stat.StatisticsParameter; -import eva2.optimization.stat.AbstractStatistics; -import eva2.optimization.stat.StatisticsStandalone; -import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.OptimizationStateListener; -import eva2.optimization.individuals.IndividualInterface; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceTerminator; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeInteger; +import eva2.optimization.modules.OptimizationParameters; +import eva2.optimization.modules.Processor; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; -import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.modules.Processor; +import eva2.optimization.stat.*; + import java.io.PrintWriter; import java.io.StringWriter; import java.util.BitSet; @@ -26,273 +22,274 @@ import java.util.BitSet; /** * This Runnable class just encapsulates the Processor class with some simple ways to access a solution. - * - * @author mkron * + * @author mkron */ public class OptimizerRunnable implements Runnable { - private Processor proc; - private boolean isFinished = false; - private boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized. - private boolean postProcessOnly = false; - private InterfaceTextListener listener = null; - private String ident="OptimizerRunnable"; - private static int cntID = 0; - private int rnblID = -1; - - /** - * Construct an OptimizerRunnable with given parameters and a StatisticsStandalone instance without restart, - * meaning that the population will be initialized randomly. - * - * @param params - * @param outputFilePrefix - */ - public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix) { - this(params, outputFilePrefix, false); - } - - /** - * This constructor assumes that DummyStatistics are enough. This saves time e.g. for small populations. - * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. - * - * @param params - * @param restart - */ - public OptimizerRunnable(OptimizationParameters params, boolean restart) { - this(params, new StatisticsDummy(), restart); - } - - /** - * Construct an OptimizerRunnable with given parameters and a StatisticsStandalone instance with optional restart. - * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. - * The outputFilePrefix may be null. - * - * @param params - * @param outputFilePrefix - * @param restart - */ - public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix, boolean restart) { - this(params, new StatisticsStandalone(outputFilePrefix), restart); - } - - /** - * Construct an OptimizerRunnable with given parameters and statistics instance with optional restart. - * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. - * - * @param params - * @param outputFilePrefix - * @param restart - */ - public OptimizerRunnable(OptimizationParameters params, InterfaceStatistics stats, boolean restart) { - rnblID = cntID; - cntID++; + private Processor proc; + private boolean isFinished = false; + private boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized. + private boolean postProcessOnly = false; + private InterfaceTextListener listener = null; + private String ident = "OptimizerRunnable"; + private static int cntID = 0; + private int rnblID = -1; - proc = new Processor(stats, null, params); - if (proc.getStatistics() instanceof AbstractStatistics) { - ((AbstractStatistics)proc.getStatistics()).setSaveParams(false); - } - doRestart = restart; - } - - public void setIdentifier(String id) { - ident=id; - } - - public String getIdentifier() { - return ident; - } - - /** - * A unique ID for the runnable. - * @return - */ - public int getID() { - return rnblID; - } - - public InterfaceOptimizationParameters getGOParams() { - return proc.getGOParams(); - } - - public InterfaceStatistics getStats() { - return proc.getStatistics(); - } - - public void setStats(InterfaceStatistics stats) { - if (proc.isOptimizationRunning()) { - throw new RuntimeException("Error - cannot change statistics instance during optimization."); - } - InterfaceOptimizationParameters params = proc.getGOParams(); - proc = new Processor(stats, null, params); - if (proc.getStatistics() instanceof AbstractStatistics) { - ((AbstractStatistics)proc.getStatistics()).setSaveParams(false); - } - } - - public void setTextListener(InterfaceTextListener lsnr) { - proc.getStatistics().removeTextListener(listener); - this.listener = lsnr; - if (listener != null) { - proc.getStatistics().addTextListener(listener); - } - } - - public void addOptimizationStateListener(OptimizationStateListener rsl) { - if (proc != null) { - proc.addListener(rsl); - } + /** + * Construct an OptimizerRunnable with given parameters and a StatisticsStandalone instance without restart, + * meaning that the population will be initialized randomly. + * + * @param params + * @param outputFilePrefix + */ + public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix) { + this(params, outputFilePrefix, false); } - - public void setDoRestart(boolean restart) { - doRestart = restart; - } - - @Override - public void run() { - isFinished = false; - try { - proc.setSaveParams(false); - if (postProcessOnly) { - proc.performPostProcessing((PostProcessParams)proc.getGOParams().getPostProcessParams(), listener); - } else { - if (doRestart) { - proc.restartOptimization(); - } - else { - proc.startOptimization(); - } - proc.runOptOnce(); - } - } catch(Exception e) { - proc.getStatistics().printToTextListener("Exception in OptimizeThread::run: " + e.getMessage() + "\n"); - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw)); - proc.getStatistics().printToTextListener(sw.toString()); - } - isFinished = true; - synchronized (this) { - this.notifyAll(); - } - } - - public void setDoPostProcessOnly(boolean poPO) { - postProcessOnly = poPO; - } - - public boolean isFinished() { - return isFinished; - } - - public boolean wasAborted() { - return (proc!=null && (proc.wasAborted())); - } - - public void restartOpt() { - proc.restartOptimization(); - } - - public void stopOpt() { - proc.stopOptimization(); - } - - public IndividualInterface getResult() { - return proc.getStatistics().getBestSolution(); - } - - public Population getResultPopulation() { - return proc.getResultPopulation(); - } - - public SolutionSet getSolutionSet() { - return (SolutionSet)proc.getGOParams().getOptimizer().getAllSolutions(); - } - - public void setPostProcessingParams(InterfacePostProcessParams ppp) { - proc.getGOParams().setPostProcessParams(ppp); - } - - public int getProgress() { - return proc.getGOParams().getOptimizer().getPopulation().getFunctionCalls(); - } - public String terminatedBecause() { - if (isFinished) { - if (postProcessOnly) { - return "Post processing finished"; - } else { - InterfaceTerminator term = proc.getGOParams().getTerminator(); - return term.lastTerminationMessage(); - } - } else { - return "Not yet terminated"; + /** + * This constructor assumes that DummyStatistics are enough. This saves time e.g. for small populations. + * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. + * + * @param params + * @param restart + */ + public OptimizerRunnable(OptimizationParameters params, boolean restart) { + this(params, new StatisticsDummy(), restart); + } + + /** + * Construct an OptimizerRunnable with given parameters and a StatisticsStandalone instance with optional restart. + * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. + * The outputFilePrefix may be null. + * + * @param params + * @param outputFilePrefix + * @param restart + */ + public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix, boolean restart) { + this(params, new StatisticsStandalone(outputFilePrefix), restart); + } + + /** + * Construct an OptimizerRunnable with given parameters and statistics instance with optional restart. + * If restart is true, the processor will not reinitialize the population allowing search on predefined populations. + * + * @param params + * @param outputFilePrefix + * @param restart + */ + public OptimizerRunnable(OptimizationParameters params, InterfaceStatistics stats, boolean restart) { + rnblID = cntID; + cntID++; + + proc = new Processor(stats, null, params); + if (proc.getStatistics() instanceof AbstractStatistics) { + ((AbstractStatistics) proc.getStatistics()).setSaveParams(false); + } + doRestart = restart; + } + + public void setIdentifier(String id) { + ident = id; + } + + public String getIdentifier() { + return ident; + } + + /** + * A unique ID for the runnable. + * + * @return + */ + public int getID() { + return rnblID; + } + + public InterfaceOptimizationParameters getGOParams() { + return proc.getGOParams(); + } + + public InterfaceStatistics getStats() { + return proc.getStatistics(); + } + + public void setStats(InterfaceStatistics stats) { + if (proc.isOptimizationRunning()) { + throw new RuntimeException("Error - cannot change statistics instance during optimization."); + } + InterfaceOptimizationParameters params = proc.getGOParams(); + proc = new Processor(stats, null, params); + if (proc.getStatistics() instanceof AbstractStatistics) { + ((AbstractStatistics) proc.getStatistics()).setSaveParams(false); + } + } + + public void setTextListener(InterfaceTextListener lsnr) { + proc.getStatistics().removeTextListener(listener); + this.listener = lsnr; + if (listener != null) { + proc.getStatistics().addTextListener(listener); + } + } + + public void addOptimizationStateListener(OptimizationStateListener rsl) { + if (proc != null) { + proc.addListener(rsl); + } + } + + public void setDoRestart(boolean restart) { + doRestart = restart; + } + + @Override + public void run() { + isFinished = false; + try { + proc.setSaveParams(false); + if (postProcessOnly) { + proc.performPostProcessing((PostProcessParams) proc.getGOParams().getPostProcessParams(), listener); + } else { + if (doRestart) { + proc.restartOptimization(); + } else { + proc.startOptimization(); + } + proc.runOptOnce(); } - } - - public double[] getDoubleSolution() { - IndividualInterface indy = getResult(); - if (indy instanceof InterfaceDataTypeDouble) { - return ((InterfaceDataTypeDouble)indy).getDoubleData(); - } else { - return null; + } catch (Exception e) { + proc.getStatistics().printToTextListener("Exception in OptimizeThread::run: " + e.getMessage() + "\n"); + StringWriter sw = new StringWriter(); + e.printStackTrace(new PrintWriter(sw)); + proc.getStatistics().printToTextListener(sw.toString()); + } + isFinished = true; + synchronized (this) { + this.notifyAll(); + } + } + + public void setDoPostProcessOnly(boolean poPO) { + postProcessOnly = poPO; + } + + public boolean isFinished() { + return isFinished; + } + + public boolean wasAborted() { + return (proc != null && (proc.wasAborted())); + } + + public void restartOpt() { + proc.restartOptimization(); + } + + public void stopOpt() { + proc.stopOptimization(); + } + + public IndividualInterface getResult() { + return proc.getStatistics().getBestSolution(); + } + + public Population getResultPopulation() { + return proc.getResultPopulation(); + } + + public SolutionSet getSolutionSet() { + return (SolutionSet) proc.getGOParams().getOptimizer().getAllSolutions(); + } + + public void setPostProcessingParams(InterfacePostProcessParams ppp) { + proc.getGOParams().setPostProcessParams(ppp); + } + + public int getProgress() { + return proc.getGOParams().getOptimizer().getPopulation().getFunctionCalls(); + } + + public String terminatedBecause() { + if (isFinished) { + if (postProcessOnly) { + return "Post processing finished"; + } else { + InterfaceTerminator term = proc.getGOParams().getTerminator(); + return term.lastTerminationMessage(); } - } - - public BitSet getBinarySolution() { - IndividualInterface indy = getResult(); - if (indy instanceof InterfaceDataTypeBinary) { - return ((InterfaceDataTypeBinary)indy).getBinaryData(); - } else { - return null; - } - } - - public int[] getIntegerSolution() { - IndividualInterface indy = getResult(); - if (indy instanceof InterfaceDataTypeInteger) { - return ((InterfaceDataTypeInteger)indy).getIntegerData(); - } else { - return null; - } - } - - /** - * Set the verbosity level in the statistics module to the given value. - * - * @see StatsParameter - * @param vLev - */ - public void setVerbosityLevel(int vLev) { - if (vLev >= 0 && vLev < proc.getStatistics().getStatisticsParameter().getOutputVerbosity().getTags().length) { - proc.getStatistics().getStatisticsParameter().getOutputVerbosity().setSelectedTag(vLev); - } else { - System.err.println("Invalid verbosity leveln in OptimizerRunnable.setVerbosityLevel!"); - } - } - - /** - * Set the output direction in the statistics module. - * - * @see StatsParameter - * @param outp - */ - public void setOutputTo(int outp) { - ((StatisticsParameter)proc.getStatistics().getStatisticsParameter()).setOutputTo(outp); - } - - /** - * Set the number of multiruns in the statistics module. - * @param multis - */ - public void setMultiRuns(int multis) { - ((AbstractStatistics)proc.getStatistics()).getStatisticsParameter().setMultiRuns(multis); - } - - /** - * Indicate whether full stats should be printed as text (or only selected entries). - * @see StatsParameter - * @param addInfo - */ - public void setOutputFullStatsToText(boolean addInfo) { - ((AbstractStatistics)proc.getStatistics()).getStatisticsParameter().setOutputAllFieldsAsText(addInfo); - } + } else { + return "Not yet terminated"; + } + } + + public double[] getDoubleSolution() { + IndividualInterface indy = getResult(); + if (indy instanceof InterfaceDataTypeDouble) { + return ((InterfaceDataTypeDouble) indy).getDoubleData(); + } else { + return null; + } + } + + public BitSet getBinarySolution() { + IndividualInterface indy = getResult(); + if (indy instanceof InterfaceDataTypeBinary) { + return ((InterfaceDataTypeBinary) indy).getBinaryData(); + } else { + return null; + } + } + + public int[] getIntegerSolution() { + IndividualInterface indy = getResult(); + if (indy instanceof InterfaceDataTypeInteger) { + return ((InterfaceDataTypeInteger) indy).getIntegerData(); + } else { + return null; + } + } + + /** + * Set the verbosity level in the statistics module to the given value. + * + * @param vLev + * @see StatsParameter + */ + public void setVerbosityLevel(int vLev) { + if (vLev >= 0 && vLev < proc.getStatistics().getStatisticsParameter().getOutputVerbosity().getTags().length) { + proc.getStatistics().getStatisticsParameter().getOutputVerbosity().setSelectedTag(vLev); + } else { + System.err.println("Invalid verbosity leveln in OptimizerRunnable.setVerbosityLevel!"); + } + } + + /** + * Set the output direction in the statistics module. + * + * @param outp + * @see StatsParameter + */ + public void setOutputTo(int outp) { + ((StatisticsParameter) proc.getStatistics().getStatisticsParameter()).setOutputTo(outp); + } + + /** + * Set the number of multiruns in the statistics module. + * + * @param multis + */ + public void setMultiRuns(int multis) { + ((AbstractStatistics) proc.getStatistics()).getStatisticsParameter().setMultiRuns(multis); + } + + /** + * Indicate whether full stats should be printed as text (or only selected entries). + * + * @param addInfo + * @see StatsParameter + */ + public void setOutputFullStatsToText(boolean addInfo) { + ((AbstractStatistics) proc.getStatistics()).getStatisticsParameter().setOutputAllFieldsAsText(addInfo); + } } \ No newline at end of file diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java index 557156a9..cd978959 100644 --- a/src/eva2/cli/Main.java +++ b/src/eva2/cli/Main.java @@ -1,21 +1,19 @@ package eva2.cli; -import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.optimization.strategies.DifferentialEvolution; -import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.util.annotation.Parameter; -import org.apache.commons.cli.*; import eva2.optimization.OptimizationStateListener; +import eva2.optimization.problems.InterfaceOptimizationProblem; +import eva2.optimization.strategies.InterfaceOptimizer; +import org.apache.commons.cli.*; import org.reflections.Reflections; -import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.*; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; public class Main implements OptimizationStateListener { - private static Options createDefaultCommandLineOptions() { Options opt = new Options(); @@ -56,15 +54,15 @@ public class Main implements OptimizationStateListener { //To change body of implemented methods use File | Settings | File Templates. } - public static void printProgressBar(int percent){ + public static void printProgressBar(int percent) { StringBuilder bar = new StringBuilder("["); - for(int i = 0; i < 50; i++){ - if( i < (percent/2)){ + for (int i = 0; i < 50; i++) { + if (i < (percent / 2)) { bar.append("="); - }else if( i == (percent/2)){ + } else if (i == (percent / 2)) { bar.append(">"); - }else{ + } else { bar.append(" "); } } @@ -78,9 +76,9 @@ public class Main implements OptimizationStateListener { Reflections reflections = new Reflections("eva2.optimization.strategies"); Set> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class); - for(Class optimizer : optimizers) { + for (Class optimizer : optimizers) { // We only want instantiable classes.ya - if(optimizer.isInterface() || Modifier.isAbstract(optimizer.getModifiers())) { + if (optimizer.isInterface() || Modifier.isAbstract(optimizer.getModifiers())) { continue; } optimizerList.put(optimizer.getSimpleName(), optimizer); @@ -92,9 +90,9 @@ public class Main implements OptimizationStateListener { Map> problemList = new TreeMap>(); Reflections reflections = new Reflections("eva2.optimization.problems"); Set> problems = reflections.getSubTypesOf(InterfaceOptimizationProblem.class); - for(Class problem : problems) { + for (Class problem : problems) { // We only want instantiable classes - if(problem.isInterface() || Modifier.isAbstract(problem.getModifiers())) { + if (problem.isInterface() || Modifier.isAbstract(problem.getModifiers())) { continue; } problemList.put(problem.getSimpleName(), problem); @@ -130,9 +128,9 @@ public class Main implements OptimizationStateListener { /** * Process help and help sub pages. */ - if(commandLine.hasOption("help")) { + if (commandLine.hasOption("help")) { String helpOption = commandLine.getOptionValue("help"); - if("optimizer".equals(helpOption)) { + if ("optimizer".equals(helpOption)) { showOptimizerHelp(); } else if ("problem".equals(helpOption)) { showProblemHelp(); @@ -148,16 +146,16 @@ public class Main implements OptimizationStateListener { Map> optimizerList = createOptimizerList(); System.out.println("Available Optimizers:"); - for(String name : optimizerList.keySet()) { + for (String name : optimizerList.keySet()) { System.out.printf("\t%s\n", name); } } private static void showProblemHelp() { - Map> problemList= createProblemList(); + Map> problemList = createProblemList(); System.out.println("Available Problems:"); - for(String name : problemList.keySet()) { + for (String name : problemList.keySet()) { System.out.printf("\t%s\n", name); } } diff --git a/src/eva2/client/ClassPreloader.java b/src/eva2/client/ClassPreloader.java index bce2fea1..fc67d221 100644 --- a/src/eva2/client/ClassPreloader.java +++ b/src/eva2/client/ClassPreloader.java @@ -8,7 +8,6 @@ import eva2.gui.editor.GenericObjectEditor; * done at startup time and accelerates later reloading. * * @author mkron - * */ public class ClassPreloader implements Runnable { diff --git a/src/eva2/client/EvAComAdapter.java b/src/eva2/client/EvAComAdapter.java index 4801afb5..d5098838 100644 --- a/src/eva2/client/EvAComAdapter.java +++ b/src/eva2/client/EvAComAdapter.java @@ -36,7 +36,7 @@ public class EvAComAdapter { public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile) { ModuleAdapter newModuleAdapter; newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile); - + return newModuleAdapter; } diff --git a/src/eva2/examples/TestingCbnPostProc.java b/src/eva2/examples/TestingCbnPostProc.java index 178b2027..12cf0895 100644 --- a/src/eva2/examples/TestingCbnPostProc.java +++ b/src/eva2/examples/TestingCbnPostProc.java @@ -1,39 +1,43 @@ package eva2.examples; + import eva2.OptimizerFactory; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.problems.FM0Problem; -import eva2.optimization.modules.OptimizationParameters; + import java.util.List; public class TestingCbnPostProc { - public static void main(String[] args) { - // a simple bimodal target function, two optima near (1.7,0) and (-1.44/0) - FM0Problem fm0 = new FM0Problem(); - AbstractEAIndividual best; - List ppSols; + public static void main(String[] args) { + // a simple bimodal target function, two optima near (1.7,0) and (-1.44/0) + FM0Problem fm0 = new FM0Problem(); + AbstractEAIndividual best; + List ppSols; - OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0); - esParams.setTerminator(new EvaluationTerminator(2000)); - esParams.setSeed(0); - best = (AbstractEAIndividual)OptimizerFactory.optimizeToInd(esParams, null); + OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0); + esParams.setTerminator(new EvaluationTerminator(2000)); + esParams.setSeed(0); + best = (AbstractEAIndividual) OptimizerFactory.optimizeToInd(esParams, null); - System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: " - + AbstractEAIndividual.getDefaultDataString(best)); + System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: " + + AbstractEAIndividual.getDefaultDataString(best)); - // post-process with clustering only - ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(0, 0.1, 5)); - System.out.println("After clustering: "); - for (AbstractEAIndividual indy : ppSols) { - System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); - } + // post-process with clustering only + ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(0, 0.1, 5)); + System.out.println("After clustering: "); + for (AbstractEAIndividual indy : ppSols) { + System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); + } - // post-process with clustering and hill climbing - ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(1000, 0.1, 5)); - System.out.println("After clustering and local refinement: "); - for (AbstractEAIndividual indy : ppSols) { - System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); - } - }; + // post-process with clustering and hill climbing + ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(1000, 0.1, 5)); + System.out.println("After clustering and local refinement: "); + for (AbstractEAIndividual indy : ppSols) { + System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); + } + } + + ; } \ No newline at end of file diff --git a/src/eva2/examples/TestingGAB1.java b/src/eva2/examples/TestingGAB1.java index 73ba1a22..e79731e4 100644 --- a/src/eva2/examples/TestingGAB1.java +++ b/src/eva2/examples/TestingGAB1.java @@ -1,37 +1,41 @@ package eva2.examples; + import eva2.OptimizerFactory; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.selection.SelectXProbRouletteWheel; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.GeneticAlgorithm; -import eva2.optimization.modules.OptimizationParameters; + import java.util.BitSet; public class TestingGAB1 { - public static void main(String[] args) { - B1Problem b1 = new B1Problem(); - BitSet sol; - // default go-parameter instance with a GA - OptimizationParameters gaParams = OptimizerFactory.standardGA(b1); - // add an evaluation terminator - gaParams.setTerminator(new EvaluationTerminator(1000)); - // set a specific random seed - gaParams.setSeed(2342); + public static void main(String[] args) { + B1Problem b1 = new B1Problem(); + BitSet sol; + // default go-parameter instance with a GA + OptimizationParameters gaParams = OptimizerFactory.standardGA(b1); + // add an evaluation terminator + gaParams.setTerminator(new EvaluationTerminator(1000)); + // set a specific random seed + gaParams.setSeed(2342); - // access the GA - GeneticAlgorithm ga = (GeneticAlgorithm)gaParams.getOptimizer(); - ga.setElitism(false); - ga.setParentSelection(new SelectXProbRouletteWheel()); // roulette wheel selection - ga.setPopulation(new Population(150)); // population size 150 + // access the GA + GeneticAlgorithm ga = (GeneticAlgorithm) gaParams.getOptimizer(); + ga.setElitism(false); + ga.setParentSelection(new SelectXProbRouletteWheel()); // roulette wheel selection + ga.setPopulation(new Population(150)); // population size 150 - // run optimization and print intermediate results to a file with given prefix - sol = OptimizerFactory.optimizeToBinary(gaParams, "ga-opt-results"); - System.out.println(OptimizerFactory.terminatedBecause() + "\nFound solution: "); - for (int i=0; i, Serializable { // flag whether a data field should be used. private String indyDataKey = ""; diff --git a/src/eva2/optimization/individuals/ESIndividualBinaryData.java b/src/eva2/optimization/individuals/ESIndividualBinaryData.java index 4ed7eb50..3da2407b 100644 --- a/src/eva2/optimization/individuals/ESIndividualBinaryData.java +++ b/src/eva2/optimization/individuals/ESIndividualBinaryData.java @@ -14,7 +14,7 @@ import java.util.BitSet; * This individual uses a real-valued genotype to code for binary values, either * by using a threshold value of by interpreting the double value as probability. */ -@eva2.util.annotation.Description(text="This is an ES individual adopted to optimize binary values.") +@eva2.util.annotation.Description(text = "This is an ES individual adopted to optimize binary values.") public class ESIndividualBinaryData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeBinary, java.io.Serializable { private BitSet m_Phenotype = new BitSet(); diff --git a/src/eva2/optimization/individuals/ESIndividualDoubleData.java b/src/eva2/optimization/individuals/ESIndividualDoubleData.java index f9b450fd..a0887062 100644 --- a/src/eva2/optimization/individuals/ESIndividualDoubleData.java +++ b/src/eva2/optimization/individuals/ESIndividualDoubleData.java @@ -15,7 +15,7 @@ import eva2.util.annotation.Description; /** * This individual uses a real-valued genotype to code for double values. */ -@Description(text="This is an ES individual suited to optimize double values.") +@Description(text = "This is an ES individual suited to optimize double values.") public class ESIndividualDoubleData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeDouble, java.io.Serializable { private double[] genotype; diff --git a/src/eva2/optimization/individuals/ESIndividualIntegerData.java b/src/eva2/optimization/individuals/ESIndividualIntegerData.java index bb49fec4..57670bc2 100644 --- a/src/eva2/optimization/individuals/ESIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/ESIndividualIntegerData.java @@ -11,7 +11,7 @@ import eva2.util.annotation.Description; /** * This individual uses a real-valued genotype to code for integer values. */ -@Description(text="This is an ES individual suited to optimize integer values.") +@Description(text = "This is an ES individual suited to optimize integer values.") public class ESIndividualIntegerData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeInteger, java.io.Serializable { private double[] genotype; diff --git a/src/eva2/optimization/individuals/ESIndividualPermutationData.java b/src/eva2/optimization/individuals/ESIndividualPermutationData.java index 05ebd112..68c21e51 100644 --- a/src/eva2/optimization/individuals/ESIndividualPermutationData.java +++ b/src/eva2/optimization/individuals/ESIndividualPermutationData.java @@ -12,7 +12,7 @@ import eva2.util.annotation.Description; * This individual uses a real-valued genotype to code for a permutations, * the sorting of the real-valued genotype gives the permutation. */ -@Description(text="This is an ES individual suited to optimize permutations.") +@Description(text = "This is an ES individual suited to optimize permutations.") public class ESIndividualPermutationData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypePermutation, java.io.Serializable { private double[][] m_Genotype; diff --git a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java index eef5428b..b608f427 100644 --- a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java +++ b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java @@ -12,7 +12,7 @@ import java.util.BitSet; /** * This individual combines a binary and a real-valued phenotype. */ -@Description(text="This is a mixed data type combining a BitSet and a real-valued vector.") +@Description(text = "This is a mixed data type combining a BitSet and a real-valued vector.") public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual implements InterfaceDataTypeBinary, InterfaceDataTypeDouble, java.io.Serializable { private InterfaceDataTypeDouble m_Numbers = new ESIndividualDoubleData(); diff --git a/src/eva2/optimization/individuals/GAIndividualBinaryData.java b/src/eva2/optimization/individuals/GAIndividualBinaryData.java index ce752a57..99b80471 100644 --- a/src/eva2/optimization/individuals/GAIndividualBinaryData.java +++ b/src/eva2/optimization/individuals/GAIndividualBinaryData.java @@ -14,7 +14,7 @@ import java.util.BitSet; /** * This individual uses a binary genotype to code for binary values. */ -@Description(text="This is a GA individual suited to optimize binary values.") +@Description(text = "This is a GA individual suited to optimize binary values.") public class GAIndividualBinaryData extends AbstractEAIndividual implements InterfaceDataTypeBinary, InterfaceGAIndividual, java.io.Serializable { protected BitSet m_Genotype = new BitSet(); diff --git a/src/eva2/optimization/individuals/GAIndividualDoubleData.java b/src/eva2/optimization/individuals/GAIndividualDoubleData.java index 9413bb24..e4d77d70 100644 --- a/src/eva2/optimization/individuals/GAIndividualDoubleData.java +++ b/src/eva2/optimization/individuals/GAIndividualDoubleData.java @@ -17,7 +17,7 @@ import java.util.BitSet; * This individual uses a binary genotype to code for double values * using two alternative encodings. */ -@Description(text="This is a GA individual suited to optimize double values.") +@Description(text = "This is a GA individual suited to optimize double values.") public class GAIndividualDoubleData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeDouble, java.io.Serializable { private double[] m_Phenotype; diff --git a/src/eva2/optimization/individuals/GAIndividualIntegerData.java b/src/eva2/optimization/individuals/GAIndividualIntegerData.java index 633cb086..5b31d328 100644 --- a/src/eva2/optimization/individuals/GAIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/GAIndividualIntegerData.java @@ -16,7 +16,7 @@ import java.util.BitSet; * This individual uses a binary genotype to code for binary values using * two alternative encodings. */ -@Description(text="This is a GA individual suited to optimize int values.") +@Description(text = "This is a GA individual suited to optimize int values.") public class GAIndividualIntegerData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeInteger, java.io.Serializable { private int[] phenotype; diff --git a/src/eva2/optimization/individuals/GEIndividualProgramData.java b/src/eva2/optimization/individuals/GEIndividualProgramData.java index 343bd40b..fc869328 100644 --- a/src/eva2/optimization/individuals/GEIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GEIndividualProgramData.java @@ -18,7 +18,7 @@ import java.util.BitSet; * This individual uses a binary genotype to code for a tree-based representation * using a BNF grammar, see also Grammatical Evolution. */ -@Description(text="This is a GE individual suited to optimize programs.") +@Description(text = "This is a GE individual suited to optimize programs.") public class GEIndividualProgramData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeProgram, java.io.Serializable { protected GPArea[] m_Area; diff --git a/src/eva2/optimization/individuals/GIIndividualIntegerData.java b/src/eva2/optimization/individuals/GIIndividualIntegerData.java index afb85824..7f28c716 100644 --- a/src/eva2/optimization/individuals/GIIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/GIIndividualIntegerData.java @@ -11,7 +11,7 @@ import eva2.util.annotation.Description; /** * This individual uses a integer genotype to code for integer values. */ -@Description(text="This is a GI individual suited to optimize int values.") +@Description(text = "This is a GI individual suited to optimize int values.") public class GIIndividualIntegerData extends AbstractEAIndividual implements InterfaceGIIndividual, InterfaceDataTypeInteger, java.io.Serializable { private int[] m_Phenotype; diff --git a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java index 9930c5b6..2023c2a4 100644 --- a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java +++ b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java @@ -9,7 +9,7 @@ import eva2.util.annotation.Description; /** * This individual combines a binary and a real-valued phenotype. */ -@Description(text="This is a mixed data type combining an integer vector with a permutation vector.") +@Description(text = "This is a mixed data type combining an integer vector with a permutation vector.") public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual implements InterfaceDataTypeInteger, InterfaceDataTypePermutation, java.io.Serializable { private InterfaceDataTypeInteger m_Integer = new GIIndividualIntegerData(); diff --git a/src/eva2/optimization/individuals/GPIndividualProgramData.java b/src/eva2/optimization/individuals/GPIndividualProgramData.java index 2b53d2dd..f9d1f290 100644 --- a/src/eva2/optimization/individuals/GPIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GPIndividualProgramData.java @@ -15,7 +15,7 @@ import eva2.util.annotation.Description; /** * This individual uses a tree-based genotype to code for program trees. */ -@Description(text="This is a GP individual suited to optimize Koza style program trees.") +@Description(text = "This is a GP individual suited to optimize Koza style program trees.") public class GPIndividualProgramData extends AbstractEAIndividual implements InterfaceGPIndividual, InterfaceDataTypeProgram, java.io.Serializable { protected AbstractGPNode[] genotype; diff --git a/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java b/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java index 1810738b..61fefb6a 100644 --- a/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java +++ b/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java @@ -14,7 +14,7 @@ import java.util.ArrayList; * This individual uses a permutation based genotype to code for * permutations. */ -@Description(text="This is a GA individual coding permutations.") +@Description(text = "This is a GA individual coding permutations.") public class OBGAIndividualPermutationData extends AbstractEAIndividual implements InterfaceDataTypePermutation, InterfaceOBGAIndividual, java.io.Serializable { int[][] phenotype; diff --git a/src/eva2/optimization/mocco/MOCCOChooseMOStrategy.java b/src/eva2/optimization/mocco/MOCCOChooseMOStrategy.java index 13247ec5..9a90f700 100644 --- a/src/eva2/optimization/mocco/MOCCOChooseMOStrategy.java +++ b/src/eva2/optimization/mocco/MOCCOChooseMOStrategy.java @@ -4,10 +4,10 @@ package eva2.optimization.mocco; import eva2.optimization.go.MOCCOStandalone; import eva2.tools.BasicResourceLoader; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** diff --git a/src/eva2/optimization/mocco/MOCCOChooseReferencePoint.java b/src/eva2/optimization/mocco/MOCCOChooseReferencePoint.java index 46fa4844..4184c37f 100644 --- a/src/eva2/optimization/mocco/MOCCOChooseReferencePoint.java +++ b/src/eva2/optimization/mocco/MOCCOChooseReferencePoint.java @@ -6,10 +6,10 @@ import eva2.optimization.mocco.paretofrontviewer.InterfaceRefPointListener; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java b/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java index 6b26933b..8ae4f5b4 100644 --- a/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java +++ b/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java @@ -8,10 +8,10 @@ import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOInitialPopulationSize.java b/src/eva2/optimization/mocco/MOCCOInitialPopulationSize.java index 78c2c535..670f684a 100644 --- a/src/eva2/optimization/mocco/MOCCOInitialPopulationSize.java +++ b/src/eva2/optimization/mocco/MOCCOInitialPopulationSize.java @@ -2,15 +2,10 @@ package eva2.optimization.mocco; import eva2.optimization.go.MOCCOStandalone; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java index d3eb2ffc..b925ed6a 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java @@ -1,9 +1,9 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; @@ -16,11 +16,11 @@ import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java index dcfe502b..ffeea2f3 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java @@ -1,8 +1,8 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.population.Population; @@ -12,10 +12,10 @@ import eva2.optimization.strategies.MultiObjectiveEA; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java index 76dcd0e2..bec9cc00 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java @@ -1,8 +1,8 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.operator.migration.SOBestMigration; @@ -13,15 +13,10 @@ import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.tools.math.RNG; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeSO.java b/src/eva2/optimization/mocco/MOCCOParameterizeSO.java index 358a4f1c..6fdbc0f2 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeSO.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeSO.java @@ -1,8 +1,8 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.strategies.GeneticAlgorithm; @@ -11,15 +11,10 @@ import eva2.optimization.strategies.MultiObjectiveEA; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java index 1269a60e..939555f6 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java @@ -1,9 +1,9 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; @@ -16,18 +16,11 @@ import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java index b700d205..539e6d37 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java @@ -1,8 +1,8 @@ package eva2.optimization.mocco; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.operator.migration.SOBestMigration; @@ -13,17 +13,10 @@ import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.tools.math.RNG; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOPhase.java b/src/eva2/optimization/mocco/MOCCOPhase.java index 893c1ae5..61d9608e 100644 --- a/src/eva2/optimization/mocco/MOCCOPhase.java +++ b/src/eva2/optimization/mocco/MOCCOPhase.java @@ -2,14 +2,10 @@ package eva2.optimization.mocco; import eva2.optimization.go.MOCCOStandalone; -import java.awt.BorderLayout; -import java.awt.Font; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.JTextArea; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOProblemInitialization.java b/src/eva2/optimization/mocco/MOCCOProblemInitialization.java index 3d807d49..114ab89c 100644 --- a/src/eva2/optimization/mocco/MOCCOProblemInitialization.java +++ b/src/eva2/optimization/mocco/MOCCOProblemInitialization.java @@ -5,12 +5,10 @@ import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.ReflectPackage; -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOProblemRedefinition.java b/src/eva2/optimization/mocco/MOCCOProblemRedefinition.java index 4d52248a..98c36a47 100644 --- a/src/eva2/optimization/mocco/MOCCOProblemRedefinition.java +++ b/src/eva2/optimization/mocco/MOCCOProblemRedefinition.java @@ -5,10 +5,10 @@ import eva2.gui.JParaPanel; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.problems.InterfaceOptimizationProblem; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/mocco/MOCCOState.java b/src/eva2/optimization/mocco/MOCCOState.java index f32d1995..abb3d7d5 100644 --- a/src/eva2/optimization/mocco/MOCCOState.java +++ b/src/eva2/optimization/mocco/MOCCOState.java @@ -12,7 +12,7 @@ import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.MultiObjectiveEA; -import java.awt.Color; +import java.awt.*; import java.util.ArrayList; /** diff --git a/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java b/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java index b9a652c7..fb593002 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java @@ -14,6 +14,7 @@ import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPointIcon; import eva2.tools.chart2d.ScaledBorder; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -23,7 +24,6 @@ import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import java.util.Date; -import javax.swing.*; /** diff --git a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java index a68e9a95..7fccc92c 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java @@ -8,18 +8,13 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; -import eva2.tools.chart2d.Chart2DDPointContentSelectable; -import eva2.tools.chart2d.Chart2DDPointIconCross; -import eva2.tools.chart2d.Chart2DDPointIconPoint; -import eva2.tools.chart2d.DPoint; -import eva2.tools.chart2d.DPointIcon; -import eva2.tools.chart2d.ScaledBorder; +import eva2.tools.chart2d.*; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; -import javax.swing.*; /** diff --git a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java index 23873153..79d71952 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java @@ -13,10 +13,10 @@ import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPointIcon; import eva2.tools.chart2d.ScaledBorder; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/modules/AbstractModuleAdapter.java b/src/eva2/optimization/modules/AbstractModuleAdapter.java index b0026a41..961e638c 100644 --- a/src/eva2/optimization/modules/AbstractModuleAdapter.java +++ b/src/eva2/optimization/modules/AbstractModuleAdapter.java @@ -10,9 +10,9 @@ package eva2.optimization.modules; * $Author: mkron $ */ +import eva2.optimization.OptimizationStateListener; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceProcessor; -import eva2.optimization.OptimizationStateListener; import java.io.Serializable; import java.util.ArrayList; diff --git a/src/eva2/optimization/modules/AbstractOptimizationParameters.java b/src/eva2/optimization/modules/AbstractOptimizationParameters.java index 9788df92..076a51a7 100644 --- a/src/eva2/optimization/modules/AbstractOptimizationParameters.java +++ b/src/eva2/optimization/modules/AbstractOptimizationParameters.java @@ -1,8 +1,8 @@ package eva2.optimization.modules; import eva2.gui.BeanInspector; -import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceNotifyOnInformers; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; diff --git a/src/eva2/optimization/modules/DEParameters.java b/src/eva2/optimization/modules/DEParameters.java index 859af2e2..67e30908 100644 --- a/src/eva2/optimization/modules/DEParameters.java +++ b/src/eva2/optimization/modules/DEParameters.java @@ -1,8 +1,8 @@ package eva2.optimization.modules; -import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.DETypeEnum; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; diff --git a/src/eva2/optimization/modules/GenericModuleAdapter.java b/src/eva2/optimization/modules/GenericModuleAdapter.java index 87681bba..a3b57575 100644 --- a/src/eva2/optimization/modules/GenericModuleAdapter.java +++ b/src/eva2/optimization/modules/GenericModuleAdapter.java @@ -3,11 +3,10 @@ package eva2.optimization.modules; import eva2.gui.EvAModuleButtonPanelMaker; import eva2.gui.EvATabbedFrameMaker; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.JParaPanel; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.stat.*; -import eva2.optimization.stat.OptimizationJob; import java.io.Serializable; diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java index 1e93b84d..62926383 100644 --- a/src/eva2/optimization/modules/OptimizationParameters.java +++ b/src/eva2/optimization/modules/OptimizationParameters.java @@ -18,7 +18,7 @@ import java.util.logging.Level; /** * OptimizationParamers for configuration of an * optimization run. - * + *

* This class is used to generate the default GUI * configuration panel for optimizations. */ diff --git a/src/eva2/optimization/modules/PSOParameters.java b/src/eva2/optimization/modules/PSOParameters.java index 632841ee..8b6c03d8 100644 --- a/src/eva2/optimization/modules/PSOParameters.java +++ b/src/eva2/optimization/modules/PSOParameters.java @@ -2,8 +2,8 @@ package eva2.optimization.modules; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.PSOTopologyEnum; +import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java index c27ebf6a..93de926e 100644 --- a/src/eva2/optimization/modules/Processor.java +++ b/src/eva2/optimization/modules/Processor.java @@ -1,9 +1,8 @@ package eva2.optimization.modules; -import eva2.optimization.go.*; -import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.gui.BeanInspector; import eva2.optimization.OptimizationStateListener; +import eva2.optimization.go.*; import eva2.optimization.operator.paramcontrol.ConstantParameters; import eva2.optimization.operator.paramcontrol.InterfaceParameterControl; import eva2.optimization.operator.postprocess.PostProcess; @@ -15,20 +14,20 @@ import eva2.optimization.population.Population; import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; -import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.stat.InterfaceStatistics; import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.stat.StatisticsWithGUI; +import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.EVAERROR; import eva2.tools.EVAHELP; import eva2.tools.StringTools; import eva2.tools.math.RNG; +import javax.swing.*; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import javax.swing.JOptionPane; /** * The Processor may run as a thread permanently (GenericModuleAdapter) and is @@ -258,7 +257,8 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo if (popLog != null) { EVAHELP.logString(this.optimizationParameters.getOptimizer().getPopulation().getIndyList(), popLog); } - } while (isOptimizationRunning() && !this.optimizationParameters.getTerminator().isTerminated(this.optimizationParameters.getOptimizer().getAllSolutions())); + } + while (isOptimizationRunning() && !this.optimizationParameters.getTerminator().isTerminated(this.optimizationParameters.getOptimizer().getAllSolutions())); runCounter++; maybeFinishParamCtrl(optimizationParameters); diff --git a/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java b/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java index 8a663a2e..20ce9973 100644 --- a/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java +++ b/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java @@ -3,10 +3,10 @@ package eva2.optimization.operator.classification; import eva2.tools.chart2d.*; import eva2.tools.math.RNG; +import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import javax.swing.*; /** * Self-organizing maps, a simple, but easy to visualize method diff --git a/src/eva2/optimization/operator/constraint/AbstractConstraint.java b/src/eva2/optimization/operator/constraint/AbstractConstraint.java index 05a0b027..49684849 100644 --- a/src/eva2/optimization/operator/constraint/AbstractConstraint.java +++ b/src/eva2/optimization/operator/constraint/AbstractConstraint.java @@ -1,12 +1,8 @@ package eva2.optimization.operator.constraint; -import eva2.optimization.operator.paramcontrol.InterfaceParameterControl; -import eva2.optimization.operator.paramcontrol.ParamAdaption; -import eva2.optimization.operator.paramcontrol.ParameterControlManager; -import eva2.optimization.operator.paramcontrol.GenericParamAdaption; -import eva2.optimization.operator.paramcontrol.NoParamAdaption; import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.operator.paramcontrol.*; import eva2.optimization.problems.AbstractProblemDouble; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operator/crossover/PropertyCrossoverMixerEditor.java b/src/eva2/optimization/operator/crossover/PropertyCrossoverMixerEditor.java index ed047bfb..4acfa0c5 100644 --- a/src/eva2/optimization/operator/crossover/PropertyCrossoverMixerEditor.java +++ b/src/eva2/optimization/operator/crossover/PropertyCrossoverMixerEditor.java @@ -1,24 +1,15 @@ package eva2.optimization.operator.crossover; -import eva2.gui.editor.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; +import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralGEOFaker; import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.tools.BasicResourceLoader; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.Rectangle; -import java.awt.Toolkit; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; @@ -27,16 +18,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.beans.PropertyEditor; -import javax.swing.BorderFactory; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.SwingConstants; /** diff --git a/src/eva2/optimization/operator/crossover/TestESCrossover.java b/src/eva2/optimization/operator/crossover/TestESCrossover.java index b69668f2..d0aa72d7 100644 --- a/src/eva2/optimization/operator/crossover/TestESCrossover.java +++ b/src/eva2/optimization/operator/crossover/TestESCrossover.java @@ -10,12 +10,12 @@ import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operator/distancemetric/PhenotypeMetric.java b/src/eva2/optimization/operator/distancemetric/PhenotypeMetric.java index 4546946a..1a004f1a 100644 --- a/src/eva2/optimization/operator/distancemetric/PhenotypeMetric.java +++ b/src/eva2/optimization/operator/distancemetric/PhenotypeMetric.java @@ -2,12 +2,7 @@ package eva2.optimization.operator.distancemetric; import eva2.gui.BeanInspector; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.InterfaceDataTypeBinary; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.InterfaceDataTypeInteger; -import eva2.optimization.individuals.InterfaceDataTypePermutation; -import eva2.optimization.individuals.InterfaceDataTypeProgram; +import eva2.optimization.individuals.*; import java.util.BitSet; diff --git a/src/eva2/optimization/operator/migration/MOXMeansSeparation.java b/src/eva2/optimization/operator/migration/MOXMeansSeparation.java index 66179492..746bc474 100644 --- a/src/eva2/optimization/operator/migration/MOXMeansSeparation.java +++ b/src/eva2/optimization/operator/migration/MOXMeansSeparation.java @@ -17,7 +17,8 @@ import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; import eva2.tools.chart2d.DPoint; -import java.io.*; +import java.io.BufferedWriter; +import java.io.IOException; /** * This method implements the clustering based subdivision diff --git a/src/eva2/optimization/operator/mutation/MutateDefault.java b/src/eva2/optimization/operator/mutation/MutateDefault.java index fdfc1d8d..9df552c1 100644 --- a/src/eva2/optimization/operator/mutation/MutateDefault.java +++ b/src/eva2/optimization/operator/mutation/MutateDefault.java @@ -1,7 +1,7 @@ package eva2.optimization.operator.mutation; -import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/operator/mutation/MutateESGlobal.java b/src/eva2/optimization/operator/mutation/MutateESGlobal.java index a3d7cfde..ccb4830b 100644 --- a/src/eva2/optimization/operator/mutation/MutateESGlobal.java +++ b/src/eva2/optimization/operator/mutation/MutateESGlobal.java @@ -1,10 +1,10 @@ package eva2.optimization.operator.mutation; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.MutateESCrossoverTypeEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operator/mutation/MutateESLocal.java b/src/eva2/optimization/operator/mutation/MutateESLocal.java index d832730d..bc243f7e 100644 --- a/src/eva2/optimization/operator/mutation/MutateESLocal.java +++ b/src/eva2/optimization/operator/mutation/MutateESLocal.java @@ -1,10 +1,10 @@ package eva2.optimization.operator.mutation; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.SelectedTag; diff --git a/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java index 605e12cd..82ee5601 100644 --- a/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java +++ b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java @@ -335,7 +335,7 @@ public class MutateESRankMuCMA implements InterfaceAdaptOperatorGenerational, In } /* Align (renormalize) scale C (and consequently sigma) */ - /* e.g. for infinite stationary state simulations (noise + /* e.g. for infinite stationary state simulations (noise * handling needs to be introduced for that) */ double fac = 1.; double minEig = 1e-12; diff --git a/src/eva2/optimization/operator/mutation/MutateGPAdaptive.java b/src/eva2/optimization/operator/mutation/MutateGPAdaptive.java index 381543d0..d3e4efe7 100644 --- a/src/eva2/optimization/operator/mutation/MutateGPAdaptive.java +++ b/src/eva2/optimization/operator/mutation/MutateGPAdaptive.java @@ -1,8 +1,8 @@ package eva2.optimization.operator.mutation; -import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.InterfaceGPIndividual; import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java b/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java index e5760030..a78f1219 100644 --- a/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java +++ b/src/eva2/optimization/operator/mutation/MutateOBGAInversion.java @@ -21,9 +21,9 @@ import eva2.tools.math.RNG; *

* Example: *

- *                                              1 2 | 3 4 5 | 6 7 8 9 ->
- *                                              1 2 | 5 4 3 | 6 7 8 9
- *                                     
+ * 1 2 | 3 4 5 | 6 7 8 9 -> + * 1 2 | 5 4 3 | 6 7 8 9 + * */ diff --git a/src/eva2/optimization/operator/mutation/PropertyMutationMixerEditor.java b/src/eva2/optimization/operator/mutation/PropertyMutationMixerEditor.java index 86be07ce..7a8739f1 100644 --- a/src/eva2/optimization/operator/mutation/PropertyMutationMixerEditor.java +++ b/src/eva2/optimization/operator/mutation/PropertyMutationMixerEditor.java @@ -1,19 +1,22 @@ package eva2.optimization.operator.mutation; -import eva2.gui.*; +import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.GeneralGEOFaker; import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.tools.BasicResourceLoader; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; -import java.beans.*; -import javax.swing.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.beans.PropertyEditor; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java b/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java index 194188e1..43b8795b 100644 --- a/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java +++ b/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java @@ -1,8 +1,8 @@ package eva2.optimization.operator.paramcontrol; import eva2.gui.BeanInspector; -import eva2.optimization.population.Population; import eva2.optimization.modules.Processor; +import eva2.optimization.population.Population; import eva2.tools.Pair; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/postprocess/PostProcess.java b/src/eva2/optimization/operator/postprocess/PostProcess.java index 3a5357ca..bb8c4cb9 100644 --- a/src/eva2/optimization/operator/postprocess/PostProcess.java +++ b/src/eva2/optimization/operator/postprocess/PostProcess.java @@ -1,25 +1,15 @@ package eva2.optimization.operator.postprocess; -import eva2.optimization.problems.InterfaceInterestingHistogram; -import eva2.optimization.problems.InterfaceMultimodalProblemKnown; -import eva2.optimization.problems.InterfaceSolutionViewer; -import eva2.optimization.problems.AbstractOptimizationProblem; -import eva2.optimization.problems.Interface2DBorderProblem; -import eva2.optimization.problems.InterfaceHasSolutionViewer; -import eva2.optimization.problems.FM0Problem; import eva2.OptimizerFactory; import eva2.OptimizerRunnable; import eva2.gui.BeanInspector; import eva2.gui.plot.Plot; import eva2.gui.plot.TopoPlot; -import eva2.optimization.individuals.IndividualInterface; -import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.enums.ESMutationInitialSigma; import eva2.optimization.enums.PostProcessMethod; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.InterfaceESIndividual; +import eva2.optimization.go.InterfaceTerminator; +import eva2.optimization.individuals.*; +import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.cluster.ClusteringDensityBased; import eva2.optimization.operator.cluster.InterfaceClustering; import eva2.optimization.operator.crossover.CrossoverESDefault; @@ -33,13 +23,13 @@ import eva2.optimization.operator.mutation.MutateESRankMuCMA; import eva2.optimization.operator.selection.SelectBestIndividuals; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; +import eva2.optimization.problems.*; +import eva2.optimization.stat.InterfaceTextListener; +import eva2.optimization.stat.StatisticsParameter; import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.GradientDescentAlgorithm; import eva2.optimization.strategies.HillClimbing; import eva2.optimization.strategies.NelderMeadSimplex; -import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.stat.InterfaceTextListener; -import eva2.optimization.stat.StatisticsParameter; import eva2.tools.Pair; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/operator/terminators/CombinedTerminator.java b/src/eva2/optimization/operator/terminators/CombinedTerminator.java index 112f1ae0..358c9a20 100644 --- a/src/eva2/optimization/operator/terminators/CombinedTerminator.java +++ b/src/eva2/optimization/operator/terminators/CombinedTerminator.java @@ -1,8 +1,8 @@ package eva2.optimization.operator.terminators; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.SelectedTag; diff --git a/src/eva2/optimization/operator/terminators/DiversityTerminator.java b/src/eva2/optimization/operator/terminators/DiversityTerminator.java index 7ccbb2aa..a44f7714 100644 --- a/src/eva2/optimization/operator/terminators/DiversityTerminator.java +++ b/src/eva2/optimization/operator/terminators/DiversityTerminator.java @@ -1,10 +1,10 @@ package eva2.optimization.operator.terminators; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import eva2.optimization.operator.distancemetric.PhenotypeMetric; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/terminators/EvaluationTerminator.java b/src/eva2/optimization/operator/terminators/EvaluationTerminator.java index d17d01f4..c7c325a2 100644 --- a/src/eva2/optimization/operator/terminators/EvaluationTerminator.java +++ b/src/eva2/optimization/operator/terminators/EvaluationTerminator.java @@ -14,8 +14,8 @@ package eva2.optimization.operator.terminators; *==========================================================================*/ import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/terminators/FitnessValueTerminator.java b/src/eva2/optimization/operator/terminators/FitnessValueTerminator.java index 4ef29af0..14c2b25a 100644 --- a/src/eva2/optimization/operator/terminators/FitnessValueTerminator.java +++ b/src/eva2/optimization/operator/terminators/FitnessValueTerminator.java @@ -15,8 +15,8 @@ package eva2.optimization.operator.terminators; import eva2.gui.BeanInspector; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/terminators/GenerationTerminator.java b/src/eva2/optimization/operator/terminators/GenerationTerminator.java index 62d25987..4b96d3fb 100644 --- a/src/eva2/optimization/operator/terminators/GenerationTerminator.java +++ b/src/eva2/optimization/operator/terminators/GenerationTerminator.java @@ -11,8 +11,8 @@ package eva2.optimization.operator.terminators; */ import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java b/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java index 584989b3..48f862b4 100644 --- a/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java +++ b/src/eva2/optimization/operator/terminators/HistoryConvergenceTerminator.java @@ -1,12 +1,12 @@ package eva2.optimization.operator.terminators; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/operator/terminators/KnownOptimaFoundTerminator.java b/src/eva2/optimization/operator/terminators/KnownOptimaFoundTerminator.java index 169c3cd9..c3525010 100644 --- a/src/eva2/optimization/operator/terminators/KnownOptimaFoundTerminator.java +++ b/src/eva2/optimization/operator/terminators/KnownOptimaFoundTerminator.java @@ -1,9 +1,9 @@ package eva2.optimization.operator.terminators; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceMultimodalProblemKnown; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java b/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java index 20777667..ef4e2844 100644 --- a/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java +++ b/src/eva2/optimization/operator/terminators/ParetoMetricTerminator.java @@ -1,10 +1,10 @@ package eva2.optimization.operator.terminators; import eva2.gui.BeanInspector; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric; import eva2.optimization.operator.paretofrontmetrics.MetricS; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operator/terminators/PhenotypeConvergenceTerminator.java b/src/eva2/optimization/operator/terminators/PhenotypeConvergenceTerminator.java index 845715f9..2ef34ea1 100644 --- a/src/eva2/optimization/operator/terminators/PhenotypeConvergenceTerminator.java +++ b/src/eva2/optimization/operator/terminators/PhenotypeConvergenceTerminator.java @@ -1,9 +1,9 @@ package eva2.optimization.operator.terminators; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; public class PhenotypeConvergenceTerminator extends PopulationMeasureTerminator implements InterfaceTerminator { diff --git a/src/eva2/optimization/operator/terminators/PopulationArchiveTerminator.java b/src/eva2/optimization/operator/terminators/PopulationArchiveTerminator.java index fbf6a656..7338a5a8 100644 --- a/src/eva2/optimization/operator/terminators/PopulationArchiveTerminator.java +++ b/src/eva2/optimization/operator/terminators/PopulationArchiveTerminator.java @@ -1,8 +1,8 @@ package eva2.optimization.operator.terminators; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.IndividualWeightedFitnessComparator; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; /** * Terminate if a score based on the archive of the population converges. diff --git a/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java b/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java index 06253cd9..211c5d0c 100644 --- a/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java +++ b/src/eva2/optimization/operator/terminators/PopulationMeasureTerminator.java @@ -2,8 +2,8 @@ package eva2.optimization.operator.terminators; import eva2.gui.BeanInspector; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/population/Population.java b/src/eva2/optimization/population/Population.java index d0c2e1a7..18435e9c 100644 --- a/src/eva2/optimization/population/Population.java +++ b/src/eva2/optimization/population/Population.java @@ -1,13 +1,8 @@ package eva2.optimization.population; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.AbstractEAIndividualComparator; -import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.InterfaceGAIndividual; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.go.InterfacePopulationChangedEventListener; +import eva2.optimization.individuals.*; import eva2.optimization.operator.distancemetric.EuclideanMetric; import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import eva2.optimization.operator.distancemetric.PhenotypeMetric; diff --git a/src/eva2/optimization/problems/AbstractDynTransProblem.java b/src/eva2/optimization/problems/AbstractDynTransProblem.java index 4d547c0f..822aa84b 100644 --- a/src/eva2/optimization/problems/AbstractDynTransProblem.java +++ b/src/eva2/optimization/problems/AbstractDynTransProblem.java @@ -170,7 +170,7 @@ public abstract class AbstractDynTransProblem extends AbstractSynchronousOptimiz public void setProblem(InterfaceOptimizationProblem prob) { this.prob = prob; - /* to get the right values for problemDimension and Range */ + /* to get the right values for problemDimension and Range */ Population pop = new Population(); pop.setTargetSize(1); prob.initializePopulation(pop); diff --git a/src/eva2/optimization/problems/AbstractMultiModalProblemKnown.java b/src/eva2/optimization/problems/AbstractMultiModalProblemKnown.java index 6240f212..c281e115 100644 --- a/src/eva2/optimization/problems/AbstractMultiModalProblemKnown.java +++ b/src/eva2/optimization/problems/AbstractMultiModalProblemKnown.java @@ -1,6 +1,5 @@ package eva2.optimization.problems; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; @@ -8,6 +7,7 @@ import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import eva2.optimization.operator.distancemetric.PhenotypeMetric; import eva2.optimization.operator.postprocess.PostProcess; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.tools.EVAERROR; import eva2.tools.ToolBox; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/problems/AbstractMultiObjectiveOptimizationProblem.java b/src/eva2/optimization/problems/AbstractMultiObjectiveOptimizationProblem.java index f0799daf..13ed424e 100644 --- a/src/eva2/optimization/problems/AbstractMultiObjectiveOptimizationProblem.java +++ b/src/eva2/optimization/problems/AbstractMultiObjectiveOptimizationProblem.java @@ -2,7 +2,6 @@ package eva2.optimization.problems; import eva2.gui.plot.GraphPointSet; import eva2.gui.plot.Plot; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.operator.archiving.ArchivingAllDominating; @@ -12,17 +11,18 @@ import eva2.optimization.operator.moso.MOSONoConvert; import eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric; import eva2.optimization.operator.paretofrontmetrics.MetricS; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.ToolBox; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; import eva2.tools.chart2d.DPoint; -import java.awt.Color; +import javax.swing.*; +import java.awt.*; import java.util.ArrayList; import java.util.Vector; import java.util.concurrent.Semaphore; -import javax.swing.JFrame; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/problems/AbstractOptimizationProblem.java b/src/eva2/optimization/problems/AbstractOptimizationProblem.java index 9177115c..1078800c 100644 --- a/src/eva2/optimization/problems/AbstractOptimizationProblem.java +++ b/src/eva2/optimization/problems/AbstractOptimizationProblem.java @@ -1,8 +1,7 @@ package eva2.optimization.problems; -import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PostProcessMethod; +import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.cluster.ClusteringDensityBased; @@ -22,19 +21,17 @@ import eva2.optimization.operator.terminators.PopulationMeasureTerminator.Change import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.ToolBox; -import java.awt.BorderLayout; +import javax.swing.*; +import java.awt.*; import java.io.Serializable; import java.util.Vector; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/problems/AbstractProblemDouble.java b/src/eva2/optimization/problems/AbstractProblemDouble.java index 8308065b..34589267 100644 --- a/src/eva2/optimization/problems/AbstractProblemDouble.java +++ b/src/eva2/optimization/problems/AbstractProblemDouble.java @@ -2,7 +2,6 @@ package eva2.optimization.problems; import eva2.gui.editor.GenericObjectEditor; import eva2.gui.plot.TopoPlot; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PostProcessMethod; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; @@ -15,6 +14,7 @@ import eva2.optimization.operator.terminators.PopulationMeasureTerminator.Change import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.Pair; import eva2.tools.ToolBox; diff --git a/src/eva2/optimization/problems/ConstrPressureVessel.java b/src/eva2/optimization/problems/ConstrPressureVessel.java index e2954ec2..5107d963 100644 --- a/src/eva2/optimization/problems/ConstrPressureVessel.java +++ b/src/eva2/optimization/problems/ConstrPressureVessel.java @@ -2,11 +2,7 @@ package eva2.optimization.problems; import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operator.constraint.AbstractConstraint; -import eva2.optimization.operator.constraint.ConstraintCollection; -import eva2.optimization.operator.constraint.ConstraintHandlingEnum; -import eva2.optimization.operator.constraint.ConstraintRelationEnum; -import eva2.optimization.operator.constraint.GenericConstraint; +import eva2.optimization.operator.constraint.*; import java.util.Vector; diff --git a/src/eva2/optimization/problems/DynJumpProblem.java b/src/eva2/optimization/problems/DynJumpProblem.java index 5f3412cf..19283753 100644 --- a/src/eva2/optimization/problems/DynJumpProblem.java +++ b/src/eva2/optimization/problems/DynJumpProblem.java @@ -76,7 +76,7 @@ public class DynJumpProblem extends AbstractDynTransProblem { shift[i] = rand.nextGaussian(); norm += Math.pow(shift[i], 2); } - /* normalize */ + /* normalize */ if (norm > 0.0) { norm = getSeverity() / Math.sqrt(norm); } else { diff --git a/src/eva2/optimization/problems/ERPStarter.java b/src/eva2/optimization/problems/ERPStarter.java index 64038c35..a2701888 100644 --- a/src/eva2/optimization/problems/ERPStarter.java +++ b/src/eva2/optimization/problems/ERPStarter.java @@ -2,8 +2,8 @@ package eva2.optimization.problems; import eva2.OptimizerFactory; import eva2.OptimizerRunnable; -import eva2.gui.Main; import eva2.gui.BeanInspector; +import eva2.gui.Main; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.crossover.CrossoverESDefault; @@ -14,9 +14,9 @@ import eva2.optimization.operator.selection.SelectBestIndividuals; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.stat.StatisticsStandalone; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; -import eva2.optimization.stat.StatisticsStandalone; import eva2.tools.BasicResourceLoader; import eva2.tools.StringTools; import eva2.tools.ToolBox; diff --git a/src/eva2/optimization/problems/ExternalRuntimeProblem.java b/src/eva2/optimization/problems/ExternalRuntimeProblem.java index bc6a0c1d..29c383e4 100644 --- a/src/eva2/optimization/problems/ExternalRuntimeProblem.java +++ b/src/eva2/optimization/problems/ExternalRuntimeProblem.java @@ -11,15 +11,7 @@ import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.math.Mathematics; -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.Reader; -import java.io.Writer; +import java.io.*; import java.util.ArrayList; import java.util.List; diff --git a/src/eva2/optimization/problems/F8Problem.java b/src/eva2/optimization/problems/F8Problem.java index 9a1b5b45..d302c9c0 100644 --- a/src/eva2/optimization/problems/F8Problem.java +++ b/src/eva2/optimization/problems/F8Problem.java @@ -1,10 +1,10 @@ package eva2.optimization.problems; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.distancemetric.EuclideanMetric; import eva2.optimization.operator.postprocess.SolutionHistogram; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.tools.ToolBox; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/problems/FLensProblem.java b/src/eva2/optimization/problems/FLensProblem.java index 03c9d31c..8601e5b3 100644 --- a/src/eva2/optimization/problems/FLensProblem.java +++ b/src/eva2/optimization/problems/FLensProblem.java @@ -10,21 +10,9 @@ import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.math.RNG; -import java.awt.BasicStroke; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.Stroke; +import javax.swing.*; +import java.awt.*; import java.awt.image.BufferedImage; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; class MyLensViewer extends JPanel implements InterfaceSolutionViewer { diff --git a/src/eva2/optimization/problems/MatlabProblem.java b/src/eva2/optimization/problems/MatlabProblem.java index b4be7f9d..f69edbd0 100644 --- a/src/eva2/optimization/problems/MatlabProblem.java +++ b/src/eva2/optimization/problems/MatlabProblem.java @@ -1,15 +1,9 @@ package eva2.optimization.problems; -import eva2.optimization.individuals.InterfaceDataTypeInteger; -import eva2.optimization.individuals.InterfaceDataTypeBinary; -import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.GIIndividualIntegerData; -import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.individuals.AbstractEAIndividual; import eva2.OptimizerFactory; import eva2.OptimizerRunnable; import eva2.gui.BeanInspector; +import eva2.optimization.individuals.*; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.PostProcess; import eva2.optimization.operator.postprocess.PostProcessParams; @@ -19,8 +13,8 @@ import eva2.optimization.operator.terminators.PopulationMeasureTerminator.Change import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; import eva2.optimization.population.Population; -import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.stat.InterfaceTextListener; +import eva2.optimization.strategies.InterfaceOptimizer; import java.io.FileNotFoundException; import java.io.FileOutputStream; diff --git a/src/eva2/optimization/problems/PSymbolicRegression.java b/src/eva2/optimization/problems/PSymbolicRegression.java index 1004d53e..6395d914 100644 --- a/src/eva2/optimization/problems/PSymbolicRegression.java +++ b/src/eva2/optimization/problems/PSymbolicRegression.java @@ -1,30 +1,10 @@ package eva2.optimization.problems; import eva2.gui.plot.Plot; -import eva2.optimization.population.PopulationInterface; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.GAPIndividualProgramData; -import eva2.optimization.individuals.GPIndividualProgramData; -import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.individuals.InterfaceDataTypeProgram; -import eva2.optimization.individuals.codings.gp.AbstractGPNode; -import eva2.optimization.individuals.codings.gp.GPArea; -import eva2.optimization.individuals.codings.gp.GPNodeAbs; -import eva2.optimization.individuals.codings.gp.GPNodeAdd; -import eva2.optimization.individuals.codings.gp.GPNodeCos; -import eva2.optimization.individuals.codings.gp.GPNodeDiv; -import eva2.optimization.individuals.codings.gp.GPNodeExp; -import eva2.optimization.individuals.codings.gp.GPNodeInput; -import eva2.optimization.individuals.codings.gp.GPNodeMult; -import eva2.optimization.individuals.codings.gp.GPNodeOne; -import eva2.optimization.individuals.codings.gp.GPNodePi; -import eva2.optimization.individuals.codings.gp.GPNodePow2; -import eva2.optimization.individuals.codings.gp.GPNodePow3; -import eva2.optimization.individuals.codings.gp.GPNodeSin; -import eva2.optimization.individuals.codings.gp.GPNodeSqrt; -import eva2.optimization.individuals.codings.gp.GPNodeSub; -import eva2.optimization.individuals.codings.gp.InterfaceProgram; +import eva2.optimization.individuals.*; +import eva2.optimization.individuals.codings.gp.*; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.regression.InterfaceRegressionFunction; import eva2.optimization.problems.regression.RFKoza_GPI_7_3; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/problems/SimpleProblemWrapper.java b/src/eva2/optimization/problems/SimpleProblemWrapper.java index 376acec8..d02570df 100644 --- a/src/eva2/optimization/problems/SimpleProblemWrapper.java +++ b/src/eva2/optimization/problems/SimpleProblemWrapper.java @@ -3,22 +3,17 @@ package eva2.optimization.problems; import eva2.gui.BeanInspector; import eva2.gui.editor.GenericObjectEditor; import eva2.gui.plot.Plot; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.individuals.InterfaceDataTypeBinary; -import eva2.optimization.individuals.InterfaceDataTypeDouble; +import eva2.optimization.individuals.*; import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.math.RNG; - -import java.util.BitSet; - import simpleprobs.InterfaceSimpleProblem; import simpleprobs.SimpleF1; import simpleprobs.SimpleProblemBinary; import simpleprobs.SimpleProblemDouble; +import java.util.BitSet; + public class SimpleProblemWrapper extends AbstractOptimizationProblem { InterfaceSimpleProblem simProb = new SimpleF1(); protected double defaultRange = 10; diff --git a/src/eva2/optimization/problems/TF1Problem.java b/src/eva2/optimization/problems/TF1Problem.java index 5ce344b6..8c0d4792 100644 --- a/src/eva2/optimization/problems/TF1Problem.java +++ b/src/eva2/optimization/problems/TF1Problem.java @@ -1,7 +1,7 @@ package eva2.optimization.problems; -import eva2.gui.plot.Plot; import eva2.gui.PropertyFilePath; +import eva2.gui.plot.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.constraint.InterfaceConstraint; diff --git a/src/eva2/optimization/stat/AbstractStatistics.java b/src/eva2/optimization/stat/AbstractStatistics.java index ff704803..18e1383a 100644 --- a/src/eva2/optimization/stat/AbstractStatistics.java +++ b/src/eva2/optimization/stat/AbstractStatistics.java @@ -1,11 +1,11 @@ package eva2.optimization.stat; import eva2.gui.BeanInspector; -import eva2.optimization.individuals.IndividualInterface; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.Pair; diff --git a/src/eva2/optimization/stat/EvAStatisticalEvaluationParams.java b/src/eva2/optimization/stat/EvAStatisticalEvaluationParams.java index 76772dac..294bcd43 100644 --- a/src/eva2/optimization/stat/EvAStatisticalEvaluationParams.java +++ b/src/eva2/optimization/stat/EvAStatisticalEvaluationParams.java @@ -2,11 +2,11 @@ package eva2.optimization.stat; import eva2.tools.StringSelection; +import javax.swing.*; import java.io.Serializable; import java.util.List; -import javax.swing.JButton; -@eva2.util.annotation.Description(text="Select statistical values to be calculated and tests to be performed.") +@eva2.util.annotation.Description(text = "Select statistical values to be calculated and tests to be performed.") public class EvAStatisticalEvaluationParams implements Serializable { private StringSelection singleStats = new StringSelection(StatsOnSingleDataSetEnum.mean, StatsOnSingleDataSetEnum.getInfoStrings()); diff --git a/src/eva2/optimization/stat/InterfaceStatistics.java b/src/eva2/optimization/stat/InterfaceStatistics.java index a95f5377..5b48c7fb 100644 --- a/src/eva2/optimization/stat/InterfaceStatistics.java +++ b/src/eva2/optimization/stat/InterfaceStatistics.java @@ -1,8 +1,8 @@ package eva2.optimization.stat; import eva2.optimization.individuals.IndividualInterface; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/stat/OptimizationJobList.java b/src/eva2/optimization/stat/OptimizationJobList.java index d2b025ed..c5d52dc7 100644 --- a/src/eva2/optimization/stat/OptimizationJobList.java +++ b/src/eva2/optimization/stat/OptimizationJobList.java @@ -1,17 +1,18 @@ package eva2.optimization.stat; -import eva2.gui.editor.GenericArrayEditor; import eva2.gui.JParaPanel; import eva2.gui.PropertySelectableList; +import eva2.gui.editor.GenericArrayEditor; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.modules.AbstractOptimizationParameters; -import eva2.optimization.tools.FileTools; import eva2.optimization.modules.AbstractModuleAdapter; +import eva2.optimization.modules.AbstractOptimizationParameters; import eva2.optimization.modules.GenericModuleAdapter; import eva2.optimization.modules.ModuleAdapter; +import eva2.optimization.tools.FileTools; import eva2.tools.Serializer; -import java.awt.Component; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyEditor; @@ -20,15 +21,12 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; /** * A selectable list of EvAJobs. Each job contains a OptimizationParameters instance and potentially * statistical data. */ -@eva2.util.annotation.Description(text="Display a set of jobs consisting of a multi-run experiment.") +@eva2.util.annotation.Description(text = "Display a set of jobs consisting of a multi-run experiment.") public class OptimizationJobList extends PropertySelectableList implements Serializable, InterfaceTextListener { List listeners = null; @@ -41,6 +39,7 @@ public class OptimizationJobList extends PropertySelectableList public String getName() { return "Job Set"; } + /** * This adds a new job to the list. * diff --git a/src/eva2/optimization/stat/StatisticsDummy.java b/src/eva2/optimization/stat/StatisticsDummy.java index 6bc30406..90cdf101 100644 --- a/src/eva2/optimization/stat/StatisticsDummy.java +++ b/src/eva2/optimization/stat/StatisticsDummy.java @@ -1,9 +1,9 @@ package eva2.optimization.stat; -import eva2.optimization.individuals.IndividualInterface; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/stat/StatisticsParameter.java b/src/eva2/optimization/stat/StatisticsParameter.java index 4b6afc14..4fd3d1e7 100644 --- a/src/eva2/optimization/stat/StatisticsParameter.java +++ b/src/eva2/optimization/stat/StatisticsParameter.java @@ -29,7 +29,7 @@ import java.util.logging.Logger; * * @see AbstractStatistics */ -@Description(text="Configure statistics and output of the optimization run. Changes to the data selection state will not take effect during a run.") +@Description(text = "Configure statistics and output of the optimization run. Changes to the data selection state will not take effect during a run.") public class StatisticsParameter implements InterfaceStatisticsParameter, InterfaceNotifyOnInformers, Serializable { private static final long serialVersionUID = -8681061379203108390L; private static final Logger LOGGER = Logger.getLogger(StatisticsParameter.class.getName()); diff --git a/src/eva2/optimization/stat/StatisticsWithGUI.java b/src/eva2/optimization/stat/StatisticsWithGUI.java index 36347352..4260dc29 100644 --- a/src/eva2/optimization/stat/StatisticsWithGUI.java +++ b/src/eva2/optimization/stat/StatisticsWithGUI.java @@ -1,10 +1,10 @@ package eva2.optimization.stat; import eva2.gui.BeanInspector; -import eva2.gui.plot.Graph; -import eva2.gui.plot.GraphWindow; import eva2.gui.JTextoutputFrame; import eva2.gui.JTextoutputFrameInterface; +import eva2.gui.plot.Graph; +import eva2.gui.plot.GraphWindow; import eva2.gui.plot.Plot; import eva2.gui.plot.PlotInterface; import eva2.optimization.population.PopulationInterface; diff --git a/src/eva2/optimization/strategies/ANPSO.java b/src/eva2/optimization/strategies/ANPSO.java index c0e91974..a9a5c266 100644 --- a/src/eva2/optimization/strategies/ANPSO.java +++ b/src/eva2/optimization/strategies/ANPSO.java @@ -2,9 +2,8 @@ package eva2.optimization.strategies; import eva2.OptimizerFactory; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; +import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; @@ -13,6 +12,7 @@ import eva2.optimization.operator.paramcontrol.LinearParamAdaption; import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; @@ -1104,7 +1104,7 @@ public class ANPSO extends NichePSO implements InterfaceOptimizer, InterfaceAddi } /* - public String[] getAdditionalDataHeader(PopulationInterface pop) { + public String[] getAdditionalDataHeader(PopulationInterface pop) { return new String[]{"mainSwarmSize","numActSpec","numArchived", "archivedMedCorr"}; } diff --git a/src/eva2/optimization/strategies/BOA.java b/src/eva2/optimization/strategies/BOA.java index c7ded507..b17ffbce 100644 --- a/src/eva2/optimization/strategies/BOA.java +++ b/src/eva2/optimization/strategies/BOA.java @@ -1,8 +1,8 @@ package eva2.optimization.strategies; import eva2.gui.BeanInspector; -import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.enums.BOAScoringMethods; +import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; import eva2.optimization.individuals.InterfaceDataTypeBinary; @@ -18,12 +18,7 @@ import eva2.tools.math.BayNet; import eva2.tools.math.RNG; import eva2.util.annotation.Description; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.Writer; +import java.io.*; import java.text.DateFormat; import java.util.BitSet; import java.util.Date; @@ -42,7 +37,7 @@ import java.util.logging.Logger; * * @author seitz */ -@Description(text="Basic implementation of the Bayesian Optimization Algorithm based on the works by Martin Pelikan and David E. Goldberg.") +@Description(text = "Basic implementation of the Bayesian Optimization Algorithm based on the works by Martin Pelikan and David E. Goldberg.") public class BOA implements InterfaceOptimizer, java.io.Serializable { private static final Logger LOGGER = Logger.getLogger(BOA.class.getName()); transient private InterfacePopulationChangedEventListener m_Listener = null; diff --git a/src/eva2/optimization/strategies/BinaryScatterSearch.java b/src/eva2/optimization/strategies/BinaryScatterSearch.java index 5699caf1..f1616af9 100644 --- a/src/eva2/optimization/strategies/BinaryScatterSearch.java +++ b/src/eva2/optimization/strategies/BinaryScatterSearch.java @@ -5,14 +5,7 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.operator.crossover.AdaptiveCrossoverEAMixer; -import eva2.optimization.operator.crossover.CM1; -import eva2.optimization.operator.crossover.CM2; -import eva2.optimization.operator.crossover.CM3; -import eva2.optimization.operator.crossover.CM4; -import eva2.optimization.operator.crossover.CM5; -import eva2.optimization.operator.crossover.CM6; -import eva2.optimization.operator.crossover.CM7; +import eva2.optimization.operator.crossover.*; import eva2.optimization.operator.distancemetric.GenotypeMetricBitSet; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; diff --git a/src/eva2/optimization/strategies/CBNPSO.java b/src/eva2/optimization/strategies/CBNPSO.java index e2467996..8354a052 100644 --- a/src/eva2/optimization/strategies/CBNPSO.java +++ b/src/eva2/optimization/strategies/CBNPSO.java @@ -1,6 +1,5 @@ package eva2.optimization.strategies; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.operator.cluster.ClusteringDensityBased; import eva2.optimization.operator.distancemetric.IndividualDataMetric; @@ -9,6 +8,7 @@ import eva2.optimization.operator.paramcontrol.LinearParamAdaption; import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.SinusoidalParamAdaption; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractProblemDouble; import eva2.optimization.problems.InterfaceInterestingHistogram; diff --git a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java index 3d9c8d3b..9c6a0c16 100644 --- a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java +++ b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java @@ -7,7 +7,6 @@ import eva2.gui.plot.Plot; import eva2.gui.plot.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.InterfaceDataTypeDouble; @@ -21,26 +20,14 @@ import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; import eva2.optimization.operator.terminators.HistoryConvergenceTerminator; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; -import eva2.optimization.problems.B1Problem; -import eva2.optimization.problems.Interface2DBorderProblem; -import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; -import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.optimization.problems.InterfaceProblemDouble; -import eva2.optimization.problems.TF1Problem; +import eva2.optimization.problems.*; import eva2.tools.EVAERROR; -import eva2.tools.chart2d.Chart2DDPointIconCircle; -import eva2.tools.chart2d.Chart2DDPointIconText; -import eva2.tools.chart2d.DPoint; -import eva2.tools.chart2d.DPointIcon; -import eva2.tools.chart2d.DPointSet; +import eva2.tools.chart2d.*; import eva2.tools.math.Mathematics; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.PriorityQueue; +import java.util.*; /** * The infamous clustering based niching EA, still under construction. It should diff --git a/src/eva2/optimization/strategies/ClusteringHillClimbing.java b/src/eva2/optimization/strategies/ClusteringHillClimbing.java index 46ab9cc6..d83b433a 100644 --- a/src/eva2/optimization/strategies/ClusteringHillClimbing.java +++ b/src/eva2/optimization/strategies/ClusteringHillClimbing.java @@ -1,13 +1,13 @@ package eva2.optimization.strategies; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PostProcessMethod; +import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.operator.mutation.MutateESFixedStepSize; import eva2.optimization.operator.postprocess.PostProcess; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; diff --git a/src/eva2/optimization/strategies/DifferentialEvolution.java b/src/eva2/optimization/strategies/DifferentialEvolution.java index 48a585f8..7013740d 100644 --- a/src/eva2/optimization/strategies/DifferentialEvolution.java +++ b/src/eva2/optimization/strategies/DifferentialEvolution.java @@ -2,8 +2,8 @@ package eva2.optimization.strategies; import eva2.gui.BeanInspector; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.enums.DETypeEnum; +import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.selection.replacement.ReplacementCrowding; @@ -31,7 +31,7 @@ import java.util.Vector; * dynamically changing problems. If an individual reaches the age limit, it is * doomed and replaced by the next challenge vector, even if its worse. */ -@Description(text="Differential Evolution using a steady-state population scheme.") +@Description(text = "Differential Evolution using a steady-state population scheme.") public class DifferentialEvolution implements InterfaceOptimizer, java.io.Serializable { protected Population population = new Population(); diff --git a/src/eva2/optimization/strategies/EsDpiNiching.java b/src/eva2/optimization/strategies/EsDpiNiching.java index 528e46ab..aaa5b08d 100644 --- a/src/eva2/optimization/strategies/EsDpiNiching.java +++ b/src/eva2/optimization/strategies/EsDpiNiching.java @@ -3,7 +3,6 @@ package eva2.optimization.strategies; import eva2.gui.editor.GenericObjectEditor; import eva2.gui.plot.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.cluster.ClusteringDynPeakIdent; @@ -14,14 +13,11 @@ import eva2.optimization.operator.distancemetric.PhenotypeMetric; import eva2.optimization.operator.mutation.InterfaceAdaptOperatorGenerational; import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; -import eva2.optimization.operator.selection.InterfaceSelection; -import eva2.optimization.operator.selection.SelectBestIndividuals; -import eva2.optimization.operator.selection.SelectBestSingle; -import eva2.optimization.operator.selection.SelectRandom; -import eva2.optimization.operator.selection.SelectTournament; +import eva2.optimization.operator.selection.*; import eva2.optimization.operator.terminators.HistoryConvergenceTerminator; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java b/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java index d3b14357..11daf62a 100644 --- a/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java +++ b/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java @@ -3,7 +3,6 @@ package eva2.optimization.strategies; import eva2.gui.editor.GenericObjectEditor; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.mutation.MutateESRankMuCMA; import eva2.optimization.operator.terminators.FitnessConvergenceTerminator; @@ -11,6 +10,7 @@ import eva2.optimization.operator.terminators.PopulationMeasureTerminator.Change import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/optimization/strategies/GeneticAlgorithm.java b/src/eva2/optimization/strategies/GeneticAlgorithm.java index f26436ef..7d337026 100644 --- a/src/eva2/optimization/strategies/GeneticAlgorithm.java +++ b/src/eva2/optimization/strategies/GeneticAlgorithm.java @@ -19,7 +19,7 @@ import eva2.util.annotation.Description; * global to a more local search. But you have to be careful with that else the * GA might not converge. This is a implementation of Genetic Algorithms. */ -@Description(text="This is a basic generational Genetic Algorithm.") +@Description(text = "This is a basic generational Genetic Algorithm.") public class GeneticAlgorithm implements InterfaceOptimizer, java.io.Serializable { private Population population = new Population(); diff --git a/src/eva2/optimization/strategies/IslandModelEA.java b/src/eva2/optimization/strategies/IslandModelEA.java index a29f8c92..1c1f4bbc 100644 --- a/src/eva2/optimization/strategies/IslandModelEA.java +++ b/src/eva2/optimization/strategies/IslandModelEA.java @@ -4,11 +4,7 @@ import eva2.gui.BeanInspector; import eva2.gui.plot.Plot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operator.migration.InterfaceMigration; -import eva2.optimization.operator.migration.MOBestMigration; -import eva2.optimization.operator.migration.MOClusteringSeparation; -import eva2.optimization.operator.migration.MOConeSeparation; -import eva2.optimization.operator.migration.SOBestMigration; +import eva2.optimization.operator.migration.*; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; diff --git a/src/eva2/optimization/strategies/NicheGraph.java b/src/eva2/optimization/strategies/NicheGraph.java index 3b3447d3..c359b7cc 100644 --- a/src/eva2/optimization/strategies/NicheGraph.java +++ b/src/eva2/optimization/strategies/NicheGraph.java @@ -1,12 +1,6 @@ package eva2.optimization.strategies; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; +import java.util.*; /** * This is a small implementation of an undirected graph which is able diff --git a/src/eva2/optimization/strategies/NichePSO.java b/src/eva2/optimization/strategies/NichePSO.java index 94719ced..c0f6a1a4 100644 --- a/src/eva2/optimization/strategies/NichePSO.java +++ b/src/eva2/optimization/strategies/NichePSO.java @@ -3,10 +3,9 @@ package eva2.optimization.strategies; import eva2.OptimizerFactory; import eva2.gui.editor.GenericObjectEditor; import eva2.gui.plot.TopoPlot; +import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.population.PopulationInterface; -import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; @@ -25,32 +24,14 @@ import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; -import eva2.optimization.problems.AbstractOptimizationProblem; -import eva2.optimization.problems.FM0Problem; -import eva2.optimization.problems.Interface2DBorderProblem; -import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; -import eva2.optimization.problems.InterfaceMultimodalProblem; -import eva2.optimization.problems.InterfaceMultimodalProblemKnown; -import eva2.optimization.problems.InterfaceOptimizationProblem; +import eva2.optimization.problems.*; import eva2.tools.SelectedTag; -import eva2.tools.chart2d.Chart2DDPointIconCircle; -import eva2.tools.chart2d.Chart2DDPointIconContent; -import eva2.tools.chart2d.Chart2DDPointIconCross; -import eva2.tools.chart2d.Chart2DDPointIconPoint; -import eva2.tools.chart2d.Chart2DDPointIconText; -import eva2.tools.chart2d.DElement; -import eva2.tools.chart2d.DPoint; -import eva2.tools.chart2d.DPointIcon; -import eva2.tools.chart2d.DPointSet; +import eva2.tools.chart2d.*; import eva2.util.annotation.Description; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; +import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -94,7 +75,7 @@ import java.util.Vector; * Yilmaz. Particle Swarms for Multimodal Optimization. In: ICANNGA (1), Seiten * 366�375, 2007 */ -@Description(text="A Niching Particle Swarm Optimizer") +@Description(text = "A Niching Particle Swarm Optimizer") public class NichePSO implements InterfaceAdditionalPopulationInformer, InterfaceOptimizer, java.io.Serializable { /** diff --git a/src/eva2/optimization/strategies/PDDifferentialEvolution.java b/src/eva2/optimization/strategies/PDDifferentialEvolution.java index ba41cf5e..963d3562 100644 --- a/src/eva2/optimization/strategies/PDDifferentialEvolution.java +++ b/src/eva2/optimization/strategies/PDDifferentialEvolution.java @@ -2,8 +2,8 @@ package eva2.optimization.strategies; import eva2.gui.BeanInspector; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.enums.DETypeEnum; +import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.selection.replacement.ReplacementCrowding; diff --git a/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java index 7093b729..5d7cce23 100644 --- a/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java @@ -1,8 +1,8 @@ package eva2.optimization.strategies; -import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; +import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.operator.distancemetric.EuclideanMetric; import eva2.optimization.population.Population; diff --git a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java index 2ef412b9..173d05e7 100644 --- a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java @@ -1,17 +1,11 @@ package eva2.optimization.strategies; -import eva2.gui.plot.Plot; -import eva2.optimization.problems.F1Problem; -import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.optimization.problems.InterfaceProblemDouble; -import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; -import eva2.optimization.problems.Interface2DBorderProblem; import eva2.gui.BeanInspector; import eva2.gui.editor.GenericObjectEditor; +import eva2.gui.plot.Plot; import eva2.gui.plot.TopoPlot; -import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; +import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.InterfaceDataTypeDouble; @@ -20,7 +14,9 @@ import eva2.optimization.operator.paramcontrol.ParamAdaption; import eva2.optimization.operator.paramcontrol.ParameterControlManager; import eva2.optimization.population.InterfaceSolutionSet; import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.SolutionSet; +import eva2.optimization.problems.*; import eva2.tools.SelectedTag; import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPointSet; diff --git a/src/eva2/optimization/strategies/tribes/TribesPosition.java b/src/eva2/optimization/strategies/tribes/TribesPosition.java index 3b02bd8f..1e697a7f 100644 --- a/src/eva2/optimization/strategies/tribes/TribesPosition.java +++ b/src/eva2/optimization/strategies/tribes/TribesPosition.java @@ -880,7 +880,7 @@ public class TribesPosition implements java.io.Serializable { public double calcTotalError(double objectiveFirstDim, double[] fitness) { /* - Take into account the objective value in the first dimension. + Take into account the objective value in the first dimension. */ double t = Math.abs(fitness[0] - objectiveFirstDim); diff --git a/src/eva2/optimization/strategies/tribes/TribesSwarm.java b/src/eva2/optimization/strategies/tribes/TribesSwarm.java index 6a524ee8..65cd15db 100644 --- a/src/eva2/optimization/strategies/tribes/TribesSwarm.java +++ b/src/eva2/optimization/strategies/tribes/TribesSwarm.java @@ -690,7 +690,7 @@ public class TribesSwarm implements java.io.Serializable { } if (option == 1) { /* On the boundary of the search space - For some dimensions, set the coordinate to the min or the max + For some dimensions, set the coordinate to the min or the max */ dmax = RNG.randomInt(D); // For a random number of dimensions // dmax=D-1; // For all dimensions diff --git a/src/eva2/optimization/tools/AbstractObjectEditor.java b/src/eva2/optimization/tools/AbstractObjectEditor.java index 86fe811e..4d24ecca 100644 --- a/src/eva2/optimization/tools/AbstractObjectEditor.java +++ b/src/eva2/optimization/tools/AbstractObjectEditor.java @@ -1,16 +1,19 @@ package eva2.optimization.tools; -import eva2.gui.*; +import eva2.gui.BeanInspector; +import eva2.gui.HtmlDemo; +import eva2.gui.PropertyEditorProvider; +import eva2.gui.PropertySheetPanel; import eva2.gui.editor.GenericObjectEditor; import eva2.tools.EVAHELP; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.*; import java.util.Hashtable; -import javax.swing.*; /** * TODO diff --git a/src/eva2/optimization/tools/FileTools.java b/src/eva2/optimization/tools/FileTools.java index 565fa209..b6ceb07f 100644 --- a/src/eva2/optimization/tools/FileTools.java +++ b/src/eva2/optimization/tools/FileTools.java @@ -4,21 +4,10 @@ import eva2.gui.BeanInspector; import eva2.tools.BasicResourceLoader; import eva2.tools.StringTools; -import java.awt.Component; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.PrintWriter; +import javax.swing.*; +import java.awt.*; +import java.io.*; import java.util.ArrayList; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; /** diff --git a/src/eva2/optimization/tools/GeneralGEOFaker.java b/src/eva2/optimization/tools/GeneralGEOFaker.java index 35626bbb..96f0626f 100644 --- a/src/eva2/optimization/tools/GeneralGEOFaker.java +++ b/src/eva2/optimization/tools/GeneralGEOFaker.java @@ -1,11 +1,11 @@ package eva2.optimization.tools; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyEditor; import java.io.*; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/tools/GeneralGenericObjectEditorPanel.java b/src/eva2/optimization/tools/GeneralGenericObjectEditorPanel.java index 936706f5..b2fdd514 100644 --- a/src/eva2/optimization/tools/GeneralGenericObjectEditorPanel.java +++ b/src/eva2/optimization/tools/GeneralGenericObjectEditorPanel.java @@ -4,6 +4,7 @@ package eva2.optimization.tools; import eva2.gui.editor.GenericObjectEditor; import eva2.tools.EVAHELP; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -13,7 +14,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.*; import java.util.ArrayList; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/tools/GeneralOptimizationEditorProperty.java b/src/eva2/optimization/tools/GeneralOptimizationEditorProperty.java index 76ff1ae1..7ff95c47 100644 --- a/src/eva2/optimization/tools/GeneralOptimizationEditorProperty.java +++ b/src/eva2/optimization/tools/GeneralOptimizationEditorProperty.java @@ -1,8 +1,8 @@ package eva2.optimization.tools; +import javax.swing.*; import java.beans.PropertyEditor; import java.lang.reflect.Method; -import javax.swing.*; /** * Representation of an OptimizationEditor Property diff --git a/src/eva2/optimization/tools/TestingDArea.java b/src/eva2/optimization/tools/TestingDArea.java index e3d59a2d..36af5659 100644 --- a/src/eva2/optimization/tools/TestingDArea.java +++ b/src/eva2/optimization/tools/TestingDArea.java @@ -1,9 +1,12 @@ package eva2.optimization.tools; -import eva2.tools.chart2d.*; +import eva2.tools.chart2d.DArea; +import eva2.tools.chart2d.DPointSet; +import eva2.tools.chart2d.DRectangle; +import eva2.tools.chart2d.ScaledBorder; -import java.awt.*; import javax.swing.*; +import java.awt.*; /** * diff --git a/src/eva2/tools/BasicResourceLoader.java b/src/eva2/tools/BasicResourceLoader.java index 7ca35112..b8ce3700 100644 --- a/src/eva2/tools/BasicResourceLoader.java +++ b/src/eva2/tools/BasicResourceLoader.java @@ -28,14 +28,7 @@ package eva2.tools; import eva2.EvAInfo; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.LineNumberReader; +import java.io.*; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; diff --git a/src/eva2/tools/JPasswordDialog.java b/src/eva2/tools/JPasswordDialog.java index 53898590..cdea9282 100644 --- a/src/eva2/tools/JPasswordDialog.java +++ b/src/eva2/tools/JPasswordDialog.java @@ -1,11 +1,9 @@ package eva2.tools; -import java.awt.Frame; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; +import javax.swing.*; +import java.awt.*; import java.awt.event.*; import java.util.ResourceBundle; -import javax.swing.*; /** * A modal dialog that asks the user for a user name and password. diff --git a/src/eva2/tools/JarResources.java b/src/eva2/tools/JarResources.java index 46ba8464..682e498a 100644 --- a/src/eva2/tools/JarResources.java +++ b/src/eva2/tools/JarResources.java @@ -13,9 +13,15 @@ package eva2.tools; * IMPORTS *==========================================================================*/ -import java.io.*; -import java.util.*; -import java.util.zip.*; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipInputStream; /** * JarResources: JarResources maps all resources included in a diff --git a/src/eva2/tools/MultirunRefiner.java b/src/eva2/tools/MultirunRefiner.java index 89fde44a..e480e71e 100644 --- a/src/eva2/tools/MultirunRefiner.java +++ b/src/eva2/tools/MultirunRefiner.java @@ -6,11 +6,15 @@ package eva2.tools; -import java.awt.*; -import java.awt.event.*; -import java.io.*; -import java.util.*; import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.*; +import java.util.ArrayList; +import java.util.Vector; /** * MultirunRefiner diff --git a/src/eva2/tools/ReflectPackage.java b/src/eva2/tools/ReflectPackage.java index 710c84da..1bf07e20 100644 --- a/src/eva2/tools/ReflectPackage.java +++ b/src/eva2/tools/ReflectPackage.java @@ -2,6 +2,8 @@ package eva2.tools; import eva2.gui.BeanInspector; +import javax.management.MBeanServer; +import javax.management.ObjectName; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -10,15 +12,9 @@ import java.lang.management.ManagementFactory; import java.lang.reflect.Constructor; import java.net.URISyntaxException; import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashSet; -import java.util.List; +import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; -import javax.management.MBeanServer; -import javax.management.ObjectName; /** diff --git a/src/eva2/tools/SerializedObject.java b/src/eva2/tools/SerializedObject.java index 6c0dd5f2..e580e5ec 100644 --- a/src/eva2/tools/SerializedObject.java +++ b/src/eva2/tools/SerializedObject.java @@ -1,15 +1,6 @@ package eva2.tools; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.io.Serializable; +import java.io.*; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; diff --git a/src/eva2/tools/Serializer.java b/src/eva2/tools/Serializer.java index 31036e77..12d361f7 100644 --- a/src/eva2/tools/Serializer.java +++ b/src/eva2/tools/Serializer.java @@ -4,8 +4,6 @@ import java.io.*; import java.util.logging.Level; import java.util.logging.Logger; -import com.google.gson.*; - /** * This class defines utility routines that use Java serialization. Any * serializable object can be stored to a file, loaded, and cloned (returning a diff --git a/src/eva2/tools/StringSelection.java b/src/eva2/tools/StringSelection.java index 118ad131..d0c876c2 100644 --- a/src/eva2/tools/StringSelection.java +++ b/src/eva2/tools/StringSelection.java @@ -3,11 +3,7 @@ package eva2.tools; import eva2.gui.BeanInspector; import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; +import java.util.*; /** * An array of Strings that can be selected and deselected. May be created directly from an Enum. diff --git a/src/eva2/tools/ToolBoxGui.java b/src/eva2/tools/ToolBoxGui.java index dbe9110d..0ba416ef 100644 --- a/src/eva2/tools/ToolBoxGui.java +++ b/src/eva2/tools/ToolBoxGui.java @@ -1,8 +1,7 @@ package eva2.tools; -import java.awt.Component; -import java.awt.Toolkit; import javax.swing.*; +import java.awt.*; /** * Some helper methods connected to the GUI. diff --git a/src/eva2/tools/URLGetter.java b/src/eva2/tools/URLGetter.java index 34a1344b..32a70fe9 100644 --- a/src/eva2/tools/URLGetter.java +++ b/src/eva2/tools/URLGetter.java @@ -2,7 +2,8 @@ package eva2.tools; import java.io.BufferedReader; import java.io.InputStreamReader; -import java.net.*; +import java.net.URL; +import java.net.URLConnection; /** *

Title: EvA2

diff --git a/src/eva2/tools/chart2d/Chart2DDPointContentSelectable.java b/src/eva2/tools/chart2d/Chart2DDPointContentSelectable.java index cebf17ee..2d40bc6b 100644 --- a/src/eva2/tools/chart2d/Chart2DDPointContentSelectable.java +++ b/src/eva2/tools/chart2d/Chart2DDPointContentSelectable.java @@ -1,16 +1,16 @@ package eva2.tools.chart2d; -import eva2.gui.plot.InterfaceDPointWithContent; import eva2.gui.InterfaceSelectablePointIcon; +import eva2.gui.plot.InterfaceDPointWithContent; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.mocco.paretofrontviewer.InterfaceRefSolutionListener; import eva2.optimization.problems.InterfaceOptimizationProblem; +import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/tools/chart2d/Chart2DDPointIconContent.java b/src/eva2/tools/chart2d/Chart2DDPointIconContent.java index 5e33e522..396dafbc 100644 --- a/src/eva2/tools/chart2d/Chart2DDPointIconContent.java +++ b/src/eva2/tools/chart2d/Chart2DDPointIconContent.java @@ -5,10 +5,10 @@ import eva2.gui.plot.InterfaceDPointWithContent; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.problems.InterfaceOptimizationProblem; +import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import javax.swing.*; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/tools/chart2d/DArea.java b/src/eva2/tools/chart2d/DArea.java index f31721e8..1c0b3a11 100644 --- a/src/eva2/tools/chart2d/DArea.java +++ b/src/eva2/tools/chart2d/DArea.java @@ -14,15 +14,11 @@ package eva2.tools.chart2d; import eva2.tools.print.PagePrinter; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Point; +import javax.swing.*; +import javax.swing.border.Border; +import java.awt.*; import java.awt.print.PageFormat; import java.awt.print.Printable; -import javax.swing.JComponent; -import javax.swing.border.Border; /** * DArea is the crossing of the JComponents and the diff --git a/src/eva2/tools/chart2d/DBorder.java b/src/eva2/tools/chart2d/DBorder.java index 288064ee..31b427ea 100644 --- a/src/eva2/tools/chart2d/DBorder.java +++ b/src/eva2/tools/chart2d/DBorder.java @@ -11,7 +11,7 @@ */ package eva2.tools.chart2d; -import java.awt.Insets; +import java.awt.*; public class DBorder extends Insets { diff --git a/src/eva2/tools/chart2d/DComponent.java b/src/eva2/tools/chart2d/DComponent.java index 2880979c..2c763a14 100644 --- a/src/eva2/tools/chart2d/DComponent.java +++ b/src/eva2/tools/chart2d/DComponent.java @@ -16,7 +16,7 @@ package eva2.tools.chart2d; * IMPORTS *==========================================================================*/ -import java.awt.Color; +import java.awt.*; /*==========================================================================* * CLASS DECLARATION diff --git a/src/eva2/tools/chart2d/DContainer.java b/src/eva2/tools/chart2d/DContainer.java index 4d5f93f4..4e2b995e 100644 --- a/src/eva2/tools/chart2d/DContainer.java +++ b/src/eva2/tools/chart2d/DContainer.java @@ -16,7 +16,7 @@ package eva2.tools.chart2d; * IMPORTS *==========================================================================*/ -import java.awt.Color; +import java.awt.*; import java.util.Vector; /*==========================================================================* diff --git a/src/eva2/tools/chart2d/DElement.java b/src/eva2/tools/chart2d/DElement.java index c418bab4..70fb2302 100644 --- a/src/eva2/tools/chart2d/DElement.java +++ b/src/eva2/tools/chart2d/DElement.java @@ -16,7 +16,7 @@ package eva2.tools.chart2d; * IMPORTS *==========================================================================*/ -import java.awt.Color; +import java.awt.*; /*==========================================================================* * INTERFACE DECLARATION diff --git a/src/eva2/tools/chart2d/DFunction.java b/src/eva2/tools/chart2d/DFunction.java index 15608c49..3e86e7a5 100644 --- a/src/eva2/tools/chart2d/DFunction.java +++ b/src/eva2/tools/chart2d/DFunction.java @@ -16,8 +16,7 @@ package eva2.tools.chart2d; * IMPORTS *==========================================================================*/ -import java.awt.Graphics; -import java.awt.Point; +import java.awt.*; /*==========================================================================* * ABSTRACT CLASS DECLARATION diff --git a/src/eva2/tools/chart2d/DGrid.java b/src/eva2/tools/chart2d/DGrid.java index 2bfa3709..fd318705 100644 --- a/src/eva2/tools/chart2d/DGrid.java +++ b/src/eva2/tools/chart2d/DGrid.java @@ -18,8 +18,7 @@ package eva2.tools.chart2d; import eva2.tools.math.Mathematics; -import java.awt.Color; -import java.awt.Graphics; +import java.awt.*; /*==========================================================================* * CLASS DECLARATION diff --git a/src/eva2/tools/chart2d/DMeasures.java b/src/eva2/tools/chart2d/DMeasures.java index 43318bff..b5d55ab7 100644 --- a/src/eva2/tools/chart2d/DMeasures.java +++ b/src/eva2/tools/chart2d/DMeasures.java @@ -1,10 +1,6 @@ package eva2.tools.chart2d; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Insets; -import java.awt.Point; +import java.awt.*; import java.io.Serializable; /** diff --git a/src/eva2/tools/chart2d/DPointIcon.java b/src/eva2/tools/chart2d/DPointIcon.java index f1b826a5..e66e6932 100644 --- a/src/eva2/tools/chart2d/DPointIcon.java +++ b/src/eva2/tools/chart2d/DPointIcon.java @@ -10,7 +10,7 @@ package eva2.tools.chart2d; * Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany */ -import java.awt.Graphics; +import java.awt.*; /** * A simple interface which can be used to paint certain icons at DPoints diff --git a/src/eva2/tools/chart2d/ScaledBorder.java b/src/eva2/tools/chart2d/ScaledBorder.java index c957706c..17ab86ff 100644 --- a/src/eva2/tools/chart2d/ScaledBorder.java +++ b/src/eva2/tools/chart2d/ScaledBorder.java @@ -2,20 +2,13 @@ package eva2.tools.chart2d; import eva2.tools.math.Mathematics; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Insets; -import java.awt.Point; +import javax.swing.*; +import javax.swing.border.BevelBorder; +import javax.swing.border.Border; +import java.awt.*; import java.awt.geom.AffineTransform; import java.text.DecimalFormat; import java.text.NumberFormat; -import javax.swing.BorderFactory; -import javax.swing.border.BevelBorder; -import javax.swing.border.Border; /** * ScaledBorder puts a border around Components diff --git a/src/eva2/tools/math/BayNet.java b/src/eva2/tools/math/BayNet.java index 89206a42..c38da5ad 100644 --- a/src/eva2/tools/math/BayNet.java +++ b/src/eva2/tools/math/BayNet.java @@ -8,12 +8,7 @@ import eva2.optimization.individuals.InterfaceGAIndividual; import eva2.optimization.population.Population; import eva2.tools.Pair; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.BitSet; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; +import java.util.*; public class BayNet { diff --git a/src/eva2/tools/math/Jama/SingularValueDecomposition.java b/src/eva2/tools/math/Jama/SingularValueDecomposition.java index 282c4bba..15507ff2 100644 --- a/src/eva2/tools/math/Jama/SingularValueDecomposition.java +++ b/src/eva2/tools/math/Jama/SingularValueDecomposition.java @@ -1,6 +1,6 @@ package eva2.tools.math.Jama; -import eva2.tools.math.Jama.util.*; +import eva2.tools.math.Jama.util.Maths; /** diff --git a/src/eva2/tools/math/interpolation/AbstractDataSet.java b/src/eva2/tools/math/interpolation/AbstractDataSet.java index ae1f9deb..73139f72 100644 --- a/src/eva2/tools/math/interpolation/AbstractDataSet.java +++ b/src/eva2/tools/math/interpolation/AbstractDataSet.java @@ -28,7 +28,7 @@ public abstract class AbstractDataSet { *-------------------------------------------------------------------------*/ /*--------------------------------------------------------------o-----------* - * protected member variables + * protected member variables *-------------------------------------------------------------------------*/ /** * double array of X data. diff --git a/src/eva2/tools/math/interpolation/PolynomialInterpolationResult.java b/src/eva2/tools/math/interpolation/PolynomialInterpolationResult.java index eb23dedd..43bc81e2 100644 --- a/src/eva2/tools/math/interpolation/PolynomialInterpolationResult.java +++ b/src/eva2/tools/math/interpolation/PolynomialInterpolationResult.java @@ -34,7 +34,7 @@ public class PolynomialInterpolationResult { public double yError = Double.NaN; /*------------------------------------------------------------------------* - * constructor + * constructor *------------------------------------------------------------------------*/ public PolynomialInterpolationResult() { diff --git a/src/eva2/tools/print/PagePrinter.java b/src/eva2/tools/print/PagePrinter.java index e957d081..5c38da80 100644 --- a/src/eva2/tools/print/PagePrinter.java +++ b/src/eva2/tools/print/PagePrinter.java @@ -16,10 +16,11 @@ package eva2.tools.print; * IMPORTS *==========================================================================*/ +import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; -import java.awt.print.*; -import javax.swing.*; +import java.awt.print.PageFormat; +import java.awt.print.Printable; /*==========================================================================* * CLASS DECLARATION diff --git a/src/simpleprobs/InterfaceSimpleProblem.java b/src/simpleprobs/InterfaceSimpleProblem.java index 85e8fae3..8f1c7bdb 100644 --- a/src/simpleprobs/InterfaceSimpleProblem.java +++ b/src/simpleprobs/InterfaceSimpleProblem.java @@ -3,28 +3,27 @@ package simpleprobs; /** * A simple interface to easily include new optimization problems in Java into the * EvA framework. - * - * @author mkron * + * @author mkron */ public interface InterfaceSimpleProblem { - /** - * Evaluate a double vector representing a possible problem solution as - * part of an individual in the EvA framework. This makes up the - * target function to be evaluated. - * - * @param x a double vector to be evaluated - * @return the fitness vector assigned to x as to the target function - */ - public double[] eval(T x); - - /** - * Return the problem dimension. - * - * @return the problem dimension - */ - public int getProblemDimension(); - + /** + * Evaluate a double vector representing a possible problem solution as + * part of an individual in the EvA framework. This makes up the + * target function to be evaluated. + * + * @param x a double vector to be evaluated + * @return the fitness vector assigned to x as to the target function + */ + public double[] eval(T x); + + /** + * Return the problem dimension. + * + * @return the problem dimension + */ + public int getProblemDimension(); + } diff --git a/src/simpleprobs/SimpleB1.java b/src/simpleprobs/SimpleB1.java index 834ed29b..11900e7d 100644 --- a/src/simpleprobs/SimpleB1.java +++ b/src/simpleprobs/SimpleB1.java @@ -3,27 +3,27 @@ package simpleprobs; import java.util.BitSet; public class SimpleB1 extends SimpleProblemBinary { - public static String globalInfo() { - return "A simple B1 implementation, minimize bits in a binary vector."; - } - - @Override - public double[] eval(BitSet b) { - double[] result = new double[1]; - int fitness = 0; + public static String globalInfo() { + return "A simple B1 implementation, minimize bits in a binary vector."; + } - for (int i = 0; i < getProblemDimension(); i++) { - if (b.get(i)) { - fitness++; - } + @Override + public double[] eval(BitSet b) { + double[] result = new double[1]; + int fitness = 0; + + for (int i = 0; i < getProblemDimension(); i++) { + if (b.get(i)) { + fitness++; } - result[0] = fitness; - return result; - } + } + result[0] = fitness; + return result; + } @Override - public int getProblemDimension() { - return 20; - } + public int getProblemDimension() { + return 20; + } } diff --git a/src/simpleprobs/SimpleF1.java b/src/simpleprobs/SimpleF1.java index 211b4b30..e8806e33 100644 --- a/src/simpleprobs/SimpleF1.java +++ b/src/simpleprobs/SimpleF1.java @@ -2,28 +2,28 @@ package simpleprobs; public class SimpleF1 extends SimpleProblemDouble { - public static String globalInfo() { - return "A simple F1 implementation, find the minimum of a hyper parabola."; - } + public static String globalInfo() { + return "A simple F1 implementation, find the minimum of a hyper parabola."; + } @Override - public double[] eval(double[] x) { - double res[] = new double[1]; - // this defines the dimension of the fitness vector, which should be always the same + public double[] eval(double[] x) { + double res[] = new double[1]; + // this defines the dimension of the fitness vector, which should be always the same - double sum = 0; - // calculate the fitness value - for (int i=0; i, Serializable { - public static String globalInfo() { - return "A simple binary problem. Override globalInfo() to insert more information."; - } + public static String globalInfo() { + return "A simple binary problem. Override globalInfo() to insert more information."; + } } \ No newline at end of file diff --git a/src/simpleprobs/SimpleProblemDouble.java b/src/simpleprobs/SimpleProblemDouble.java index be5cc311..c9d60dbb 100644 --- a/src/simpleprobs/SimpleProblemDouble.java +++ b/src/simpleprobs/SimpleProblemDouble.java @@ -3,7 +3,7 @@ package simpleprobs; import java.io.Serializable; public abstract class SimpleProblemDouble implements InterfaceSimpleProblem, Serializable { - public static String globalInfo() { - return "A simple double valued problem. Override globalInfo() to insert more information."; - } + public static String globalInfo() { + return "A simple double valued problem. Override globalInfo() to insert more information."; + } }