Reformat code and optimize imports.

Language Level changed to 1.7
This commit is contained in:
Fabian Becker 2013-10-12 13:49:50 +02:00
parent 6473b35859
commit 595d0084a9
214 changed files with 989 additions and 1461 deletions

View File

@ -1,107 +1,109 @@
package eva2; package eva2;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.io.InputStream; import java.io.InputStream;
import java.util.Properties; import java.util.Properties;
/** /**
* @author mkron * @author mkron
*
*/ */
public class EvAInfo { public class EvAInfo {
/** /**
* Product Name. * Product Name.
*/ */
public static final String productName = "EvA2"; public static final String productName = "EvA2";
/** /**
* Long product name. * 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. * 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. * Relative path to default properties.
*/ */
public static final String propertyFile = "META-INF/EvA2.props"; public static final String propertyFile = "META-INF/EvA2.props";
public static final String LGPLFile = "lgpl-3.0.txt"; public static final String LGPLFile = "lgpl-3.0.txt";
public static final String GPLFile= "gpl-3.0.txt"; public static final String GPLFile = "gpl-3.0.txt";
/** /**
* Relative path to application icon. * 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. * Relative path to splash screen image.
*/ */
public static final String splashLocation = "images/EvASplashScreen.png"; public static final String splashLocation = "images/EvASplashScreen.png";
public static final String infoTitle = productName+" Information"; public static final String infoTitle = productName + " Information";
public static final String copyrightYear = "2010-2012"; 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 * An eloquent error message in case a resource was not found - which was
* expected in the EvA2 resource directory. * expected in the EvA2 resource directory.
*
* @param resourceName * @param resourceName
* @return * @return
*/ */
public static String resourceNotFoundErrorMessage(String resourceName) { public static String resourceNotFoundErrorMessage(String resourceName) {
String cp = System.getProperty("java.class.path"); String cp = System.getProperty("java.class.path");
return "Could not find " + resourceName + return "Could not find " + resourceName +
"\nPlease make resources folder available on the class path! " + "\nPlease make resources folder available on the class path! " +
"Current class path is: " + cp + "Current class path is: " + cp +
"\nYou may copy it there or add the parent folder of resources/ to the class path."; "\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() { public static String getProperty(String key) {
return evaProperties; String myVal = evaProperties.getProperty(key);
} return myVal;
}
private static void setProperty(String key, String value) {
evaProperties.setProperty(key, value);
}
public static String getVersion() { public static Properties getProperties() {
String version = getProperty("EvA2Version"); return evaProperties;
if (version==null) { }
System.err.println("ERROR, missing property EvA2Version!");
}
return version;
}
public static String propDefaultModule() { private static void setProperty(String key, String value) {
return getProperty("DefaultModule"); evaProperties.setProperty(key, value);
} }
public static String propShowModules() { public static String getVersion() {
return getProperty("ShowModules"); 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");
}
} }

View File

@ -1,41 +1,13 @@
package eva2; 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.DETypeEnum;
import eva2.optimization.enums.MutateESCrossoverTypeEnum; import eva2.optimization.enums.MutateESCrossoverTypeEnum;
import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.enums.PostProcessMethod; import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.*;
import eva2.optimization.individuals.InterfaceESIndividual; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.archiving.ArchivingNSGAII; import eva2.optimization.operator.archiving.ArchivingNSGAII;
import eva2.optimization.operator.archiving.InformationRetrievalInserting; import eva2.optimization.operator.archiving.InformationRetrievalInserting;
import eva2.optimization.operator.archiving.InterfaceArchiving; 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.InterfaceCrossover;
import eva2.optimization.operator.crossover.NoCrossover; import eva2.optimization.operator.crossover.NoCrossover;
import eva2.optimization.operator.distancemetric.IndividualDataMetric; import eva2.optimization.operator.distancemetric.IndividualDataMetric;
import eva2.optimization.operator.mutation.*;
import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.InterfacePostProcessParams;
import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams;
import eva2.optimization.operator.selection.InterfaceSelection; import eva2.optimization.operator.selection.InterfaceSelection;
@ -56,7 +29,9 @@ import eva2.optimization.population.PBILPopulation;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem;
import eva2.optimization.stat.InterfaceStatistics; import eva2.optimization.stat.InterfaceStatistics;
import eva2.optimization.strategies.*;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.BitSet; import java.util.BitSet;
import java.util.List; import java.util.List;
@ -76,11 +51,11 @@ import java.util.List;
* while (!terminator.isTerminated(optimizer.getPopulation())) optimizer.optimize(); * while (!terminator.isTerminated(optimizer.getPopulation())) optimizer.optimize();
* </code> </p> * </code> </p>
* *
* @version 0.1
* @since 2.0
* @author mkron * @author mkron
* @author Andreas Dr&auml;ger * @author Andreas Dr&auml;ger
* @version 0.1
* @date 17.04.2007 * @date 17.04.2007
* @since 2.0
*/ */
public class OptimizerFactory { public class OptimizerFactory {
@ -150,22 +125,22 @@ public class OptimizerFactory {
* *
* @param mu * @param mu
* @param lambda * @param lambda
* @param plus if true this operator uses elitism otherwise a comma * @param plus if true this operator uses elitism otherwise a comma
* strategy. * strategy.
* @param mutationoperator * @param mutationoperator
* @param pm * @param pm
* @param crossoveroperator * @param crossoveroperator
* @param pc * @param pc
* @param selection environmental selection operator * @param selection environmental selection operator
* @param problem * @param problem
* @param listener * @param listener
* @return An optimization algorithm that employs an evolution strategy. * @return An optimization algorithm that employs an evolution strategy.
*/ */
public static final EvolutionStrategies createEvolutionStrategy(int mu, public static final EvolutionStrategies createEvolutionStrategy(int mu,
int lambda, boolean plus, InterfaceMutation mutationoperator, int lambda, boolean plus, InterfaceMutation mutationoperator,
double pm, InterfaceCrossover crossoveroperator, double pc, double pm, InterfaceCrossover crossoveroperator, double pc,
InterfaceSelection selection, AbstractOptimizationProblem problem, InterfaceSelection selection, AbstractOptimizationProblem problem,
InterfacePopulationChangedEventListener listener) { InterfacePopulationChangedEventListener listener) {
return createES(new EvolutionStrategies(mu, lambda, plus), mutationoperator, pm, crossoveroperator, pc, selection, problem, 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 mu
* @param lambda * @param lambda
* @param plus if true this operator uses elitism otherwise a comma * @param plus if true this operator uses elitism otherwise a comma
* strategy. * strategy.
* @param mutationoperator * @param mutationoperator
* @param pm * @param pm
* @param crossoveroperator * @param crossoveroperator
* @param pc * @param pc
* @param incPopSizeFact factor by which to inrease lambda ro restart, * @param incPopSizeFact factor by which to inrease lambda ro restart,
* default is 2 * default is 2
* @param stagThresh if the fitness changes below this value during a * @param stagThresh if the fitness changes below this value during a
* stagnation phase, a restart is initiated * stagnation phase, a restart is initiated
* @param problem * @param problem
* @param listener * @param listener
* @return An optimization algorithm that employs an IPOP-ES. * @return An optimization algorithm that employs an IPOP-ES.
*/ */
public static final EvolutionStrategyIPOP createEvolutionStrategyIPOP(int mu, public static final EvolutionStrategyIPOP createEvolutionStrategyIPOP(int mu,
int lambda, boolean plus, InterfaceMutation mutationoperator, int lambda, boolean plus, InterfaceMutation mutationoperator,
double pm, InterfaceCrossover crossoveroperator, double pc, double incPopSizeFact, double stagThresh, double pm, InterfaceCrossover crossoveroperator, double pc, double incPopSizeFact, double stagThresh,
AbstractOptimizationProblem problem, InterfacePopulationChangedEventListener listener) { AbstractOptimizationProblem problem, InterfacePopulationChangedEventListener listener) {
EvolutionStrategyIPOP esIPOP = (EvolutionStrategyIPOP) createES(new EvolutionStrategyIPOP(mu, lambda, plus), mutationoperator, pm, crossoveroperator, pc, new SelectBestIndividuals(), problem, listener); EvolutionStrategyIPOP esIPOP = (EvolutionStrategyIPOP) createES(new EvolutionStrategyIPOP(mu, lambda, plus), mutationoperator, pm, crossoveroperator, pc, new SelectBestIndividuals(), problem, listener);
esIPOP.setIncPopSizeFact(incPopSizeFact); esIPOP.setIncPopSizeFact(incPopSizeFact);
// esIPOP.setStagnationGenerations(stagTimeGens); // esIPOP.setStagnationGenerations(stagTimeGens);
@ -201,9 +176,9 @@ public class OptimizerFactory {
} }
private static final EvolutionStrategies createES(EvolutionStrategies theES, InterfaceMutation mutationoperator, private static final EvolutionStrategies createES(EvolutionStrategies theES, InterfaceMutation mutationoperator,
double pm, InterfaceCrossover crossoveroperator, double pc, double pm, InterfaceCrossover crossoveroperator, double pc,
InterfaceSelection selection, AbstractOptimizationProblem problem, InterfaceSelection selection, AbstractOptimizationProblem problem,
InterfacePopulationChangedEventListener listener) { InterfacePopulationChangedEventListener listener) {
problem.initializeProblem(); problem.initializeProblem();
@ -267,12 +242,12 @@ public class OptimizerFactory {
* multi-objective selection method within the specific optimizer. This uses * multi-objective selection method within the specific optimizer. This uses
* a standard archiving strategy (NSGAII) and InformationRetrievalInserting. * 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 archiveSize maximum size of the archive
* @param problem * @param problem
* @param listener * @param listener
* @return An optimization algorithm that employs a multi-objective * @return An optimization algorithm that employs a multi-objective
* optimizer * optimizer
*/ */
public static MultiObjectiveEA createMultiObjectiveEA( public static MultiObjectiveEA createMultiObjectiveEA(
InterfaceOptimizer subOpt, int archiveSize, InterfaceOptimizer subOpt, int archiveSize,
@ -302,14 +277,14 @@ public class OptimizerFactory {
* This method creates a multi-objective EA optimizer. Remember to set a * This method creates a multi-objective EA optimizer. Remember to set a
* multi-objective selection method within the specific optimizer. * multi-objective selection method within the specific optimizer.
* *
* @param subOpt the specific optimizer to use * @param subOpt the specific optimizer to use
* @param archiving the archiving strategy collecting the pareto front * @param archiving the archiving strategy collecting the pareto front
* @param archiveSize maximum size of the archive * @param archiveSize maximum size of the archive
* @param infoRetrieval information retrieval strategy * @param infoRetrieval information retrieval strategy
* @param problem * @param problem
* @param listener * @param listener
* @return An optimization algorithm that employs a multi-objective * @return An optimization algorithm that employs a multi-objective
* optimizer * optimizer
*/ */
public static MultiObjectiveEA createMultiObjectiveEA( public static MultiObjectiveEA createMultiObjectiveEA(
InterfaceOptimizer subOpt, InterfaceArchiving archiving, InterfaceOptimizer subOpt, InterfaceArchiving archiving,
@ -352,28 +327,28 @@ public class OptimizerFactory {
* This method creates a Hill Climber algorithm with a default fixed-size * This method creates a Hill Climber algorithm with a default fixed-size
* mutation. * mutation.
* *
* @param pop The size of the population * @param pop The size of the population
* @param problem The problem to be optimized * @param problem The problem to be optimized
* @param listener * @param listener
* @return An optimization procedure that performs hill climbing. * @return An optimization procedure that performs hill climbing.
*/ */
public static HillClimbing createHillClimber(int popSize, public static HillClimbing createHillClimber(int popSize,
AbstractOptimizationProblem problem, AbstractOptimizationProblem problem,
InterfacePopulationChangedEventListener listener) { InterfacePopulationChangedEventListener listener) {
return createHillClimber(popSize, new MutateESFixedStepSize(0.2), problem, listener); return createHillClimber(popSize, new MutateESFixedStepSize(0.2), problem, listener);
} }
/** /**
* This method creates a Hill Climber algorithm. * This method creates a Hill Climber algorithm.
* *
* @param pop The size of the population * @param pop The size of the population
* @param problem The problem to be optimized * @param problem The problem to be optimized
* @param listener * @param listener
* @return An optimization procedure that performs hill climbing. * @return An optimization procedure that performs hill climbing.
*/ */
public static HillClimbing createHillClimber(int popSize, InterfaceMutation mutator, public static HillClimbing createHillClimber(int popSize, InterfaceMutation mutator,
AbstractOptimizationProblem problem, AbstractOptimizationProblem problem,
InterfacePopulationChangedEventListener listener) { InterfacePopulationChangedEventListener listener) {
problem.initializeProblem(); problem.initializeProblem();
@ -434,9 +409,9 @@ public class OptimizerFactory {
* @param speedLim * @param speedLim
* @param listener * @param listener
* @param topology * @param topology
* @see ParticleSwarmOpimization
* @return An optimization algorithm that performs particle swarm * @return An optimization algorithm that performs particle swarm
* optimization. * optimization.
* @see ParticleSwarmOpimization
*/ */
public static ParticleSwarmOptimization createParticleSwarmOptimization( public static ParticleSwarmOptimization createParticleSwarmOptimization(
AbstractOptimizationProblem problem, int popsize, double phi1, AbstractOptimizationProblem problem, int popsize, double phi1,
@ -473,7 +448,7 @@ public class OptimizerFactory {
* *
* @param problem * @param problem
* @param popsize * @param popsize
* @param alpha The parameter for the linear cooling * @param alpha The parameter for the linear cooling
* @param temperature The initial temperature * @param temperature The initial temperature
* @param mut * @param mut
* @param listener * @param listener
@ -556,15 +531,16 @@ public class OptimizerFactory {
} }
// /////////////////////////// constructing a default OptimizerRunnable // /////////////////////////// constructing a default OptimizerRunnable
/** /**
* For an optimizer identifier, return the corresponding default parameter * For an optimizer identifier, return the corresponding default parameter
* set including initialization (thats why the problem is required). * set including initialization (thats why the problem is required).
* *
* @param optType optimizer identifier * @param optType optimizer identifier
* @param problem corresponding optimization problem * @param problem corresponding optimization problem
*/ */
public static OptimizationParameters getParams(final int optType, public static OptimizationParameters getParams(final int optType,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
switch (optType) { switch (optType) {
case STD_ES: case STD_ES:
return standardES(problem); return standardES(problem);
@ -625,8 +601,8 @@ public class OptimizerFactory {
* @return a runnable optimizer * @return a runnable optimizer
*/ */
public static OptimizerRunnable getOptRunnable(final int optType, public static OptimizerRunnable getOptRunnable(final int optType,
AbstractOptimizationProblem problem, int fitCalls, AbstractOptimizationProblem problem, int fitCalls,
String outputFilePrefix) { String outputFilePrefix) {
return getOptRunnable(optType, problem, new EvaluationTerminator(fitCalls), outputFilePrefix); return getOptRunnable(optType, problem, new EvaluationTerminator(fitCalls), outputFilePrefix);
} }
@ -644,8 +620,8 @@ public class OptimizerFactory {
* @return a runnable optimizer * @return a runnable optimizer
*/ */
public static OptimizerRunnable getOptRunnable(final int optType, public static OptimizerRunnable getOptRunnable(final int optType,
AbstractOptimizationProblem problem, InterfaceTerminator terminator, AbstractOptimizationProblem problem, InterfaceTerminator terminator,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable opt = null; OptimizerRunnable opt = null;
OptimizationParameters params = getParams(optType, problem); OptimizationParameters params = getParams(optType, problem);
if (params != null) { if (params != null) {
@ -672,19 +648,20 @@ public class OptimizerFactory {
} }
// /////////////////////////// constructing a default OptimizerRunnable // /////////////////////////// constructing a default OptimizerRunnable
/** /**
* Produce a runnable optimizer from a strategy identifier, a problem * Produce a runnable optimizer from a strategy identifier, a problem
* instance and with the current static terminator in use. Output is written * instance and with the current static terminator in use. Output is written
* to a file if the prefix String is given. * to a file if the prefix String is given.
* *
* @see #getOptRunnable(int, AbstractOptimizationProblem, int, String)
* @param optType * @param optType
* @param problem * @param problem
* @param outputFilePrefix * @param outputFilePrefix
* @return a runnable optimizer * @return a runnable optimizer
* @see #getOptRunnable(int, AbstractOptimizationProblem, int, String)
*/ */
public static OptimizerRunnable getOptRunnable(final int optType, public static OptimizerRunnable getOptRunnable(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
return getOptRunnable(optType, problem, getTerminator(), outputFilePrefix); return getOptRunnable(optType, problem, getTerminator(), outputFilePrefix);
} }
@ -713,6 +690,7 @@ public class OptimizerFactory {
} }
// /////////////////////// Creating default strategies // /////////////////////// Creating default strategies
/** /**
* Use lambda, default random seed and terminator to produce OptimizationParameters. * Use lambda, default random seed and terminator to produce OptimizationParameters.
* *
@ -721,19 +699,19 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static OptimizationParameters makeESParams(EvolutionStrategies es, public static OptimizationParameters makeESParams(EvolutionStrategies es,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return makeParams(es, es.getLambda(), problem, randSeed, getTerminator()); return makeParams(es, es.getLambda(), problem, randSeed, getTerminator());
} }
/** /**
* Use default random seed and terminator for a parameter set. * Use default random seed and terminator for a parameter set.
* *
* @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem,
* long, InterfaceTerminator)
* @param opt * @param opt
* @param popSize * @param popSize
* @param problem * @param problem
* @return * @return
* @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem,
* long, InterfaceTerminator)
*/ */
public static OptimizationParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem) { public static OptimizationParameters makeParams(InterfaceOptimizer opt, int popSize, AbstractOptimizationProblem problem) {
return makeParams(opt, popSize, problem, randSeed, getTerminator()); return makeParams(opt, popSize, problem, randSeed, getTerminator());
@ -742,12 +720,12 @@ public class OptimizerFactory {
/** /**
* Use default random seed and the population size of the optimizer. * Use default random seed and the population size of the optimizer.
* *
* @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem,
* long, InterfaceTerminator)
* @param opt * @param opt
* @param popSize * @param popSize
* @param problem * @param problem
* @return * @return
* @see #makeParams(InterfaceOptimizer, int, AbstractOptimizationProblem,
* long, InterfaceTerminator)
*/ */
public static OptimizationParameters makeParams(InterfaceOptimizer opt, AbstractOptimizationProblem problem, InterfaceTerminator term) { public static OptimizationParameters makeParams(InterfaceOptimizer opt, AbstractOptimizationProblem problem, InterfaceTerminator term) {
return makeParams(opt, opt.getPopulation().getTargetSize(), problem, randSeed, term); return makeParams(opt, opt.getPopulation().getTargetSize(), problem, randSeed, term);
@ -757,18 +735,18 @@ public class OptimizerFactory {
* Set the population size, initialize the population and return a parameter * Set the population size, initialize the population and return a parameter
* structure containing all given parts. * structure containing all given parts.
* *
* @see #makeParams(InterfaceOptimizer, Population,
* AbstractOptimizationProblem, long, InterfaceTerminator)
* @param opt * @param opt
* @param popSize * @param popSize
* @param problem * @param problem
* @param seed * @param seed
* @param term * @param term
* @return * @return
* @see #makeParams(InterfaceOptimizer, Population,
* AbstractOptimizationProblem, long, InterfaceTerminator)
*/ */
public static OptimizationParameters makeParams(InterfaceOptimizer opt, public static OptimizationParameters makeParams(InterfaceOptimizer opt,
int popSize, AbstractOptimizationProblem problem, long seed, int popSize, AbstractOptimizationProblem problem, long seed,
InterfaceTerminator term) { InterfaceTerminator term) {
Population pop = new Population(popSize); Population pop = new Population(popSize);
RNG.setRandomSeed(seed); RNG.setRandomSeed(seed);
problem.initializePopulation(pop); problem.initializePopulation(pop);
@ -780,17 +758,17 @@ public class OptimizerFactory {
* The result can be modified and then used to create an OptimizerRunnable, * The result can be modified and then used to create an OptimizerRunnable,
* which of course can simply be run. * which of course can simply be run.
* *
* @see OptimizerRunnable
* @param opt * @param opt
* @param pop * @param pop
* @param problem * @param problem
* @param seed * @param seed
* @param term * @param term
* @return * @return
* @see OptimizerRunnable
*/ */
public static OptimizationParameters makeParams(InterfaceOptimizer opt, public static OptimizationParameters makeParams(InterfaceOptimizer opt,
Population pop, AbstractOptimizationProblem problem, long seed, Population pop, AbstractOptimizationProblem problem, long seed,
InterfaceTerminator term) { InterfaceTerminator term) {
OptimizationParameters params = new OptimizationParameters(); OptimizationParameters params = new OptimizationParameters();
params.setProblem(problem); params.setProblem(problem);
opt.setProblem(problem); opt.setProblem(problem);
@ -802,7 +780,7 @@ public class OptimizerFactory {
} }
public static OptimizerRunnable optimize(final int optType, public static OptimizerRunnable optimize(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
return optimize(getOptRunnable(optType, problem, outputFilePrefix)); return optimize(getOptRunnable(optType, problem, outputFilePrefix));
} }
@ -860,7 +838,7 @@ public class OptimizerFactory {
// ///////////////////////////// Optimize a given parameter instance // ///////////////////////////// Optimize a given parameter instance
public static BitSet optimizeToBinary(OptimizationParameters params, public static BitSet optimizeToBinary(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
return runnable.getBinarySolution(); return runnable.getBinarySolution();
@ -868,13 +846,13 @@ public class OptimizerFactory {
// ///////////////////////////// Optimize using a default strategy // ///////////////////////////// Optimize using a default strategy
public static BitSet optimizeToBinary(final int optType, public static BitSet optimizeToBinary(final int optType,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return optimizeToBinary(optType, problem, null); return optimizeToBinary(optType, problem, null);
} }
// ///////////////////////////// Optimize using a default strategy // ///////////////////////////// Optimize using a default strategy
public static BitSet optimizeToBinary(final int optType, public static BitSet optimizeToBinary(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
OptimizerRunnable runnable = optimize(optType, problem, OptimizerRunnable runnable = optimize(optType, problem,
outputFilePrefix); outputFilePrefix);
return (runnable != null) ? runnable.getBinarySolution() : null; return (runnable != null) ? runnable.getBinarySolution() : null;
@ -887,7 +865,7 @@ public class OptimizerFactory {
} }
public static double[] optimizeToDouble(OptimizationParameters params, public static double[] optimizeToDouble(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
return runnable.getDoubleSolution(); return runnable.getDoubleSolution();
@ -906,12 +884,12 @@ public class OptimizerFactory {
} }
public static double[] optimizeToDouble(final int optType, public static double[] optimizeToDouble(final int optType,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return optimizeToDouble(optType, problem, null); return optimizeToDouble(optType, problem, null);
} }
public static double[] optimizeToDouble(final int optType, public static double[] optimizeToDouble(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
OptimizerRunnable runnable = optimize(optType, problem, OptimizerRunnable runnable = optimize(optType, problem,
outputFilePrefix); outputFilePrefix);
return (runnable != null) ? runnable.getDoubleSolution() : null; return (runnable != null) ? runnable.getDoubleSolution() : null;
@ -929,19 +907,19 @@ public class OptimizerFactory {
} }
public static IndividualInterface optimizeToInd(OptimizationParameters params, public static IndividualInterface optimizeToInd(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
return runnable.getResult(); return runnable.getResult();
} }
public static IndividualInterface optimizeToInd(final int optType, public static IndividualInterface optimizeToInd(final int optType,
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
return optimizeToInd(optType, problem, null); return optimizeToInd(optType, problem, null);
} }
public static IndividualInterface optimizeToInd(final int optType, public static IndividualInterface optimizeToInd(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
OptimizerRunnable runnable = optimize(optType, problem, OptimizerRunnable runnable = optimize(optType, problem,
outputFilePrefix); outputFilePrefix);
return (runnable != null) ? runnable.getResult() : null; return (runnable != null) ? runnable.getResult() : null;
@ -953,14 +931,14 @@ public class OptimizerFactory {
} }
public static Population optimizeToPop(OptimizationParameters params, public static Population optimizeToPop(OptimizationParameters params,
String outputFilePrefix) { String outputFilePrefix) {
OptimizerRunnable runnable = optimize(new OptimizerRunnable(params, OptimizerRunnable runnable = optimize(new OptimizerRunnable(params,
outputFilePrefix)); outputFilePrefix));
return runnable.getResultPopulation(); return runnable.getResultPopulation();
} }
public static Population optimizeToPop(final int optType, public static Population optimizeToPop(final int optType,
AbstractOptimizationProblem problem, String outputFilePrefix) { AbstractOptimizationProblem problem, String outputFilePrefix) {
OptimizerRunnable runnable = optimize(optType, problem, OptimizerRunnable runnable = optimize(optType, problem,
outputFilePrefix); outputFilePrefix);
return (runnable != null) ? runnable.getResultPopulation() : null; return (runnable != null) ? runnable.getResultPopulation() : null;
@ -992,7 +970,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static Population postProcess(OptimizerRunnable runnable, int steps, public static Population postProcess(OptimizerRunnable runnable, int steps,
double sigma, int nBest) { double sigma, int nBest) {
PostProcessParams ppp = new PostProcessParams(steps, sigma, nBest); PostProcessParams ppp = new PostProcessParams(steps, sigma, nBest);
return postProcess(runnable, ppp); return postProcess(runnable, ppp);
} }
@ -1006,7 +984,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static Population postProcess(OptimizerRunnable runnable, public static Population postProcess(OptimizerRunnable runnable,
InterfacePostProcessParams ppp) { InterfacePostProcessParams ppp) {
runnable.setDoRestart(true); runnable.setDoRestart(true);
runnable.setDoPostProcessOnly(true); runnable.setDoPostProcessOnly(true);
runnable.setPostProcessingParams(ppp); runnable.setPostProcessingParams(ppp);
@ -1017,7 +995,7 @@ public class OptimizerFactory {
} }
public static List<BitSet> postProcessBinVec(int steps, double sigma, public static List<BitSet> postProcessBinVec(int steps, double sigma,
int nBest) { int nBest) {
return (lastRunnable != null) ? postProcessBinVec(lastRunnable, return (lastRunnable != null) ? postProcessBinVec(lastRunnable,
new PostProcessParams(steps, sigma, nBest)) : null; new PostProcessParams(steps, sigma, nBest)) : null;
} }
@ -1029,7 +1007,7 @@ public class OptimizerFactory {
} }
public static List<BitSet> postProcessBinVec(OptimizerRunnable runnable, public static List<BitSet> postProcessBinVec(OptimizerRunnable runnable,
int steps, double sigma, int nBest) { int steps, double sigma, int nBest) {
return postProcessBinVec(runnable, new PostProcessParams(steps, sigma, return postProcessBinVec(runnable, new PostProcessParams(steps, sigma,
nBest)); nBest));
} }
@ -1043,7 +1021,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static List<BitSet> postProcessBinVec(OptimizerRunnable runnable, public static List<BitSet> postProcessBinVec(OptimizerRunnable runnable,
InterfacePostProcessParams ppp) { InterfacePostProcessParams ppp) {
Population resPop = postProcess(runnable, ppp); Population resPop = postProcess(runnable, ppp);
List<BitSet> ret = new ArrayList<BitSet>(resPop.size()); List<BitSet> ret = new ArrayList<BitSet>(resPop.size());
for (Object o : resPop) { for (Object o : resPop) {
@ -1056,7 +1034,7 @@ public class OptimizerFactory {
} }
public static List<double[]> postProcessDblVec(int steps, double sigma, public static List<double[]> postProcessDblVec(int steps, double sigma,
int nBest) { int nBest) {
return (lastRunnable == null) ? null : postProcessDblVec(lastRunnable, return (lastRunnable == null) ? null : postProcessDblVec(lastRunnable,
new PostProcessParams(steps, sigma, nBest)); new PostProcessParams(steps, sigma, nBest));
} }
@ -1096,7 +1074,7 @@ public class OptimizerFactory {
} }
public static List<AbstractEAIndividual> postProcessIndVec(int steps, public static List<AbstractEAIndividual> postProcessIndVec(int steps,
double sigma, int nBest) { double sigma, int nBest) {
return (lastRunnable != null) ? postProcessIndVec(lastRunnable, return (lastRunnable != null) ? postProcessIndVec(lastRunnable,
new PostProcessParams(steps, sigma, nBest)) : null; new PostProcessParams(steps, sigma, nBest)) : null;
} }
@ -1137,6 +1115,7 @@ public class OptimizerFactory {
} }
///////////////////////////// termination management ///////////////////////////// termination management
/** /**
* Replace the current user-defined terminator by the given one. * Replace the current user-defined terminator by the given one.
* *
@ -1154,7 +1133,7 @@ public class OptimizerFactory {
* the new one is used without conjunction. * the new one is used without conjunction.
* *
* @param newTerm a new InterfaceTerminator instance * @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) { public static void addTerminator(InterfaceTerminator newTerm, boolean bAnd) {
if (OptimizerFactory.userTerm == null) { if (OptimizerFactory.userTerm == null) {
@ -1185,11 +1164,12 @@ public class OptimizerFactory {
} }
///////////////////////////// default parameters ///////////////////////////// default parameters
/** /**
* Create a standard multi-start hill-climber parameter set with 50 initial * Create a standard multi-start hill-climber parameter set with 50 initial
* individuals. * individuals.
* *
* @return a standard multi-start hill-climber * @return a standard multi-start hill-climber
*/ */
public static OptimizationParameters hillClimbing( public static OptimizationParameters hillClimbing(
AbstractOptimizationProblem problem) { AbstractOptimizationProblem problem) {
@ -1200,7 +1180,7 @@ public class OptimizerFactory {
* Create a standard multi-start hill-climber parameter set with the given * Create a standard multi-start hill-climber parameter set with the given
* number of individuals. * number of individuals.
* *
* @return a standard multi-start hill-climber * @return a standard multi-start hill-climber
*/ */
public static OptimizationParameters hillClimbing( public static OptimizationParameters hillClimbing(
AbstractOptimizationProblem problem, int popSize) { AbstractOptimizationProblem problem, int popSize) {
@ -1226,7 +1206,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt, public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt,
double clusterSigma, int minClustSize, int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) { double clusterSigma, int minClustSize, int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) {
return createCbn(problem, opt, new ClusteringDensityBased(clusterSigma, minClustSize), maxSpecSize, return createCbn(problem, opt, new ClusteringDensityBased(clusterSigma, minClustSize), maxSpecSize,
new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize); new ClusteringDensityBased(clusterSigma, minClustSize), haltingWindowLength, haltingWindowEpsilon, popSize);
} }
@ -1244,7 +1224,7 @@ public class OptimizerFactory {
} }
public static OptimizationParameters createCbnPSO(AbstractOptimizationProblem problem, double clusterSigma, int minClustSize, public static OptimizationParameters createCbnPSO(AbstractOptimizationProblem problem, double clusterSigma, int minClustSize,
int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) { int maxSpecSize, int haltingWindowLength, double haltingWindowEpsilon, int popSize) {
OptimizationParameters psoParams = standardPSO(problem); OptimizationParameters psoParams = standardPSO(problem);
ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer(); ParticleSwarmOptimization pso = (ParticleSwarmOptimization) psoParams.getOptimizer();
ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize, ClusteringDensityBased clust = new ClusteringDensityBased(clusterSigma, minClustSize,
@ -1266,8 +1246,8 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt, public static OptimizationParameters createCbn(AbstractOptimizationProblem problem, InterfaceOptimizer opt,
InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength, InterfaceClustering clustDifferentiate, int maxSpecSize, InterfaceClustering clustMerge, int haltingWindowLength,
double haltingWindowEpsilon, int popSize) { double haltingWindowEpsilon, int popSize) {
ClusterBasedNichingEA cbn = new ClusterBasedNichingEA(); ClusterBasedNichingEA cbn = new ClusterBasedNichingEA();
cbn.setOptimizer(opt); cbn.setOptimizer(opt);
cbn.setMergingCA(clustMerge); cbn.setMergingCA(clustMerge);
@ -1323,7 +1303,6 @@ public class OptimizerFactory {
} }
/** /**
*
* @param problem * @param problem
* @return * @return
*/ */
@ -1364,7 +1343,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
public static OptimizationParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem, public static OptimizationParameters clusteringHillClimbingNM(AbstractOptimizationProblem problem,
int evalCycle, int popSize, double minImprovement, double sigmaClust) { int evalCycle, int popSize, double minImprovement, double sigmaClust) {
return clusteringHillClimbing(problem, evalCycle, popSize, minImprovement, return clusteringHillClimbing(problem, evalCycle, popSize, minImprovement,
PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust); PostProcessMethod.nelderMead, 0.01, 0.00000001, sigmaClust);
} }
@ -1637,7 +1616,7 @@ public class OptimizerFactory {
* @return * @return
*/ */
private static boolean assertIndyType(AbstractOptimizationProblem prob, private static boolean assertIndyType(AbstractOptimizationProblem prob,
Class<InterfaceESIndividual> cls) { Class<InterfaceESIndividual> cls) {
return cls.isAssignableFrom(prob.getIndividualTemplate().getClass()); return cls.isAssignableFrom(prob.getIndividualTemplate().getClass());
} }

View File

@ -1,24 +1,20 @@
package eva2; 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.OptimizationStateListener;
import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.IndividualInterface;
import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeBinary;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.individuals.InterfaceDataTypeInteger; 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.InterfacePostProcessParams;
import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.population.SolutionSet; import eva2.optimization.population.SolutionSet;
import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.stat.*;
import eva2.optimization.modules.Processor;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.BitSet; 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. * 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 { public class OptimizerRunnable implements Runnable {
private Processor proc; private Processor proc;
private boolean isFinished = false; private boolean isFinished = false;
private boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized. private boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized.
private boolean postProcessOnly = false; private boolean postProcessOnly = false;
private InterfaceTextListener listener = null; private InterfaceTextListener listener = null;
private String ident="OptimizerRunnable"; private String ident = "OptimizerRunnable";
private static int cntID = 0; private static int cntID = 0;
private int rnblID = -1; 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++;
proc = new Processor(stats, null, params); /**
if (proc.getStatistics() instanceof AbstractStatistics) { * Construct an OptimizerRunnable with given parameters and a StatisticsStandalone instance without restart,
((AbstractStatistics)proc.getStatistics()).setSaveParams(false); * meaning that the population will be initialized randomly.
} *
doRestart = restart; * @param params
} * @param outputFilePrefix
*/
public void setIdentifier(String id) { public OptimizerRunnable(OptimizationParameters params, String outputFilePrefix) {
ident=id; this(params, outputFilePrefix, false);
}
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();
}
} 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) { * This constructor assumes that DummyStatistics are enough. This saves time e.g. for small populations.
if (postProcessOnly) { * If restart is true, the processor will not reinitialize the population allowing search on predefined populations.
return "Post processing finished"; *
} else { * @param params
InterfaceTerminator term = proc.getGOParams().getTerminator(); * @param restart
return term.lastTerminationMessage(); */
} public OptimizerRunnable(OptimizationParameters params, boolean restart) {
} else { this(params, new StatisticsDummy(), restart);
return "Not yet terminated"; }
/**
* 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();
} }
} } catch (Exception e) {
proc.getStatistics().printToTextListener("Exception in OptimizeThread::run: " + e.getMessage() + "\n");
public double[] getDoubleSolution() { StringWriter sw = new StringWriter();
IndividualInterface indy = getResult(); e.printStackTrace(new PrintWriter(sw));
if (indy instanceof InterfaceDataTypeDouble) { proc.getStatistics().printToTextListener(sw.toString());
return ((InterfaceDataTypeDouble)indy).getDoubleData(); }
} else { isFinished = true;
return null; 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";
public BitSet getBinarySolution() { }
IndividualInterface indy = getResult(); }
if (indy instanceof InterfaceDataTypeBinary) {
return ((InterfaceDataTypeBinary)indy).getBinaryData(); public double[] getDoubleSolution() {
} else { IndividualInterface indy = getResult();
return null; if (indy instanceof InterfaceDataTypeDouble) {
} return ((InterfaceDataTypeDouble) indy).getDoubleData();
} } else {
return null;
public int[] getIntegerSolution() { }
IndividualInterface indy = getResult(); }
if (indy instanceof InterfaceDataTypeInteger) {
return ((InterfaceDataTypeInteger)indy).getIntegerData(); public BitSet getBinarySolution() {
} else { IndividualInterface indy = getResult();
return null; if (indy instanceof InterfaceDataTypeBinary) {
} return ((InterfaceDataTypeBinary) indy).getBinaryData();
} } else {
return null;
/** }
* Set the verbosity level in the statistics module to the given value. }
*
* @see StatsParameter public int[] getIntegerSolution() {
* @param vLev IndividualInterface indy = getResult();
*/ if (indy instanceof InterfaceDataTypeInteger) {
public void setVerbosityLevel(int vLev) { return ((InterfaceDataTypeInteger) indy).getIntegerData();
if (vLev >= 0 && vLev < proc.getStatistics().getStatisticsParameter().getOutputVerbosity().getTags().length) { } else {
proc.getStatistics().getStatisticsParameter().getOutputVerbosity().setSelectedTag(vLev); return null;
} else { }
System.err.println("Invalid verbosity leveln in OptimizerRunnable.setVerbosityLevel!"); }
}
} /**
* Set the verbosity level in the statistics module to the given value.
/** *
* Set the output direction in the statistics module. * @param vLev
* * @see StatsParameter
* @see StatsParameter */
* @param outp public void setVerbosityLevel(int vLev) {
*/ if (vLev >= 0 && vLev < proc.getStatistics().getStatisticsParameter().getOutputVerbosity().getTags().length) {
public void setOutputTo(int outp) { proc.getStatistics().getStatisticsParameter().getOutputVerbosity().setSelectedTag(vLev);
((StatisticsParameter)proc.getStatistics().getStatisticsParameter()).setOutputTo(outp); } else {
} System.err.println("Invalid verbosity leveln in OptimizerRunnable.setVerbosityLevel!");
}
/** }
* Set the number of multiruns in the statistics module.
* @param multis /**
*/ * Set the output direction in the statistics module.
public void setMultiRuns(int multis) { *
((AbstractStatistics)proc.getStatistics()).getStatisticsParameter().setMultiRuns(multis); * @param outp
} * @see StatsParameter
*/
/** public void setOutputTo(int outp) {
* Indicate whether full stats should be printed as text (or only selected entries). ((StatisticsParameter) proc.getStatistics().getStatisticsParameter()).setOutputTo(outp);
* @see StatsParameter }
* @param addInfo
*/ /**
public void setOutputFullStatsToText(boolean addInfo) { * Set the number of multiruns in the statistics module.
((AbstractStatistics)proc.getStatistics()).getStatisticsParameter().setOutputAllFieldsAsText(addInfo); *
} * @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);
}
} }

View File

@ -1,21 +1,19 @@
package eva2.cli; 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.OptimizationStateListener;
import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.strategies.InterfaceOptimizer;
import org.apache.commons.cli.*;
import org.reflections.Reflections; import org.reflections.Reflections;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier; 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 { public class Main implements OptimizationStateListener {
private static Options createDefaultCommandLineOptions() { private static Options createDefaultCommandLineOptions() {
Options opt = new Options(); Options opt = new Options();
@ -56,15 +54,15 @@ public class Main implements OptimizationStateListener {
//To change body of implemented methods use File | Settings | File Templates. //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("["); StringBuilder bar = new StringBuilder("[");
for(int i = 0; i < 50; i++){ for (int i = 0; i < 50; i++) {
if( i < (percent/2)){ if (i < (percent / 2)) {
bar.append("="); bar.append("=");
}else if( i == (percent/2)){ } else if (i == (percent / 2)) {
bar.append(">"); bar.append(">");
}else{ } else {
bar.append(" "); bar.append(" ");
} }
} }
@ -78,9 +76,9 @@ public class Main implements OptimizationStateListener {
Reflections reflections = new Reflections("eva2.optimization.strategies"); Reflections reflections = new Reflections("eva2.optimization.strategies");
Set<Class<? extends InterfaceOptimizer>> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class); Set<Class<? extends InterfaceOptimizer>> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class);
for(Class<? extends InterfaceOptimizer> optimizer : optimizers) { for (Class<? extends InterfaceOptimizer> optimizer : optimizers) {
// We only want instantiable classes.ya // We only want instantiable classes.ya
if(optimizer.isInterface() || Modifier.isAbstract(optimizer.getModifiers())) { if (optimizer.isInterface() || Modifier.isAbstract(optimizer.getModifiers())) {
continue; continue;
} }
optimizerList.put(optimizer.getSimpleName(), optimizer); optimizerList.put(optimizer.getSimpleName(), optimizer);
@ -92,9 +90,9 @@ public class Main implements OptimizationStateListener {
Map<String, Class<? extends InterfaceOptimizationProblem>> problemList = new TreeMap<String, Class<? extends InterfaceOptimizationProblem>>(); Map<String, Class<? extends InterfaceOptimizationProblem>> problemList = new TreeMap<String, Class<? extends InterfaceOptimizationProblem>>();
Reflections reflections = new Reflections("eva2.optimization.problems"); Reflections reflections = new Reflections("eva2.optimization.problems");
Set<Class<? extends InterfaceOptimizationProblem>> problems = reflections.getSubTypesOf(InterfaceOptimizationProblem.class); Set<Class<? extends InterfaceOptimizationProblem>> problems = reflections.getSubTypesOf(InterfaceOptimizationProblem.class);
for(Class<? extends InterfaceOptimizationProblem> problem : problems) { for (Class<? extends InterfaceOptimizationProblem> problem : problems) {
// We only want instantiable classes // We only want instantiable classes
if(problem.isInterface() || Modifier.isAbstract(problem.getModifiers())) { if (problem.isInterface() || Modifier.isAbstract(problem.getModifiers())) {
continue; continue;
} }
problemList.put(problem.getSimpleName(), problem); problemList.put(problem.getSimpleName(), problem);
@ -130,9 +128,9 @@ public class Main implements OptimizationStateListener {
/** /**
* Process help and help sub pages. * Process help and help sub pages.
*/ */
if(commandLine.hasOption("help")) { if (commandLine.hasOption("help")) {
String helpOption = commandLine.getOptionValue("help"); String helpOption = commandLine.getOptionValue("help");
if("optimizer".equals(helpOption)) { if ("optimizer".equals(helpOption)) {
showOptimizerHelp(); showOptimizerHelp();
} else if ("problem".equals(helpOption)) { } else if ("problem".equals(helpOption)) {
showProblemHelp(); showProblemHelp();
@ -148,16 +146,16 @@ public class Main implements OptimizationStateListener {
Map<String, Class<? extends InterfaceOptimizer>> optimizerList = createOptimizerList(); Map<String, Class<? extends InterfaceOptimizer>> optimizerList = createOptimizerList();
System.out.println("Available Optimizers:"); System.out.println("Available Optimizers:");
for(String name : optimizerList.keySet()) { for (String name : optimizerList.keySet()) {
System.out.printf("\t%s\n", name); System.out.printf("\t%s\n", name);
} }
} }
private static void showProblemHelp() { private static void showProblemHelp() {
Map<String, Class<? extends InterfaceOptimizationProblem>> problemList= createProblemList(); Map<String, Class<? extends InterfaceOptimizationProblem>> problemList = createProblemList();
System.out.println("Available Problems:"); System.out.println("Available Problems:");
for(String name : problemList.keySet()) { for (String name : problemList.keySet()) {
System.out.printf("\t%s\n", name); System.out.printf("\t%s\n", name);
} }
} }

View File

@ -8,7 +8,6 @@ import eva2.gui.editor.GenericObjectEditor;
* done at startup time and accelerates later reloading. * done at startup time and accelerates later reloading.
* *
* @author mkron * @author mkron
*
*/ */
public class ClassPreloader implements Runnable { public class ClassPreloader implements Runnable {

View File

@ -36,7 +36,7 @@ public class EvAComAdapter {
public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile) { public ModuleAdapter getModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters goParams, String noGuiStatsFile) {
ModuleAdapter newModuleAdapter; ModuleAdapter newModuleAdapter;
newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile); newModuleAdapter = getLocalMainAdapter().getModuleAdapter(selectedModuleName, goParams, noGuiStatsFile);
return newModuleAdapter; return newModuleAdapter;
} }

View File

@ -1,39 +1,43 @@
package eva2.examples; package eva2.examples;
import eva2.OptimizerFactory; import eva2.OptimizerFactory;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.FM0Problem;
import eva2.optimization.modules.OptimizationParameters;
import java.util.List; import java.util.List;
public class TestingCbnPostProc { public class TestingCbnPostProc {
public static void main(String[] args) { public static void main(String[] args) {
// a simple bimodal target function, two optima near (1.7,0) and (-1.44/0) // a simple bimodal target function, two optima near (1.7,0) and (-1.44/0)
FM0Problem fm0 = new FM0Problem(); FM0Problem fm0 = new FM0Problem();
AbstractEAIndividual best; AbstractEAIndividual best;
List<AbstractEAIndividual> ppSols; List<AbstractEAIndividual> ppSols;
OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0); OptimizationParameters esParams = OptimizerFactory.standardCbnES(fm0);
esParams.setTerminator(new EvaluationTerminator(2000)); esParams.setTerminator(new EvaluationTerminator(2000));
esParams.setSeed(0); esParams.setSeed(0);
best = (AbstractEAIndividual)OptimizerFactory.optimizeToInd(esParams, null); best = (AbstractEAIndividual) OptimizerFactory.optimizeToInd(esParams, null);
System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: " System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: "
+ AbstractEAIndividual.getDefaultDataString(best)); + AbstractEAIndividual.getDefaultDataString(best));
// post-process with clustering only // post-process with clustering only
ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(0, 0.1, 5)); ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(0, 0.1, 5));
System.out.println("After clustering: "); System.out.println("After clustering: ");
for (AbstractEAIndividual indy : ppSols) { for (AbstractEAIndividual indy : ppSols) {
System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); System.out.println(AbstractEAIndividual.getDefaultDataString(indy));
} }
// post-process with clustering and hill climbing // post-process with clustering and hill climbing
ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(1000, 0.1, 5)); ppSols = OptimizerFactory.postProcessIndVec(new PostProcessParams(1000, 0.1, 5));
System.out.println("After clustering and local refinement: "); System.out.println("After clustering and local refinement: ");
for (AbstractEAIndividual indy : ppSols) { for (AbstractEAIndividual indy : ppSols) {
System.out.println(AbstractEAIndividual.getDefaultDataString(indy)); System.out.println(AbstractEAIndividual.getDefaultDataString(indy));
} }
}; }
;
} }

View File

@ -1,37 +1,41 @@
package eva2.examples; package eva2.examples;
import eva2.OptimizerFactory; import eva2.OptimizerFactory;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.selection.SelectXProbRouletteWheel; import eva2.optimization.operator.selection.SelectXProbRouletteWheel;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.modules.OptimizationParameters;
import java.util.BitSet; import java.util.BitSet;
public class TestingGAB1 { public class TestingGAB1 {
public static void main(String[] args) { public static void main(String[] args) {
B1Problem b1 = new B1Problem(); B1Problem b1 = new B1Problem();
BitSet sol; BitSet sol;
// default go-parameter instance with a GA // default go-parameter instance with a GA
OptimizationParameters gaParams = OptimizerFactory.standardGA(b1); OptimizationParameters gaParams = OptimizerFactory.standardGA(b1);
// add an evaluation terminator // add an evaluation terminator
gaParams.setTerminator(new EvaluationTerminator(1000)); gaParams.setTerminator(new EvaluationTerminator(1000));
// set a specific random seed // set a specific random seed
gaParams.setSeed(2342); gaParams.setSeed(2342);
// access the GA // access the GA
GeneticAlgorithm ga = (GeneticAlgorithm)gaParams.getOptimizer(); GeneticAlgorithm ga = (GeneticAlgorithm) gaParams.getOptimizer();
ga.setElitism(false); ga.setElitism(false);
ga.setParentSelection(new SelectXProbRouletteWheel()); // roulette wheel selection ga.setParentSelection(new SelectXProbRouletteWheel()); // roulette wheel selection
ga.setPopulation(new Population(150)); // population size 150 ga.setPopulation(new Population(150)); // population size 150
// run optimization and print intermediate results to a file with given prefix // run optimization and print intermediate results to a file with given prefix
sol = OptimizerFactory.optimizeToBinary(gaParams, "ga-opt-results"); sol = OptimizerFactory.optimizeToBinary(gaParams, "ga-opt-results");
System.out.println(OptimizerFactory.terminatedBecause() + "\nFound solution: "); System.out.println(OptimizerFactory.terminatedBecause() + "\nFound solution: ");
for (int i=0; i<b1.getProblemDimension(); i++) { for (int i = 0; i < b1.getProblemDimension(); i++) {
System.out.print(sol.get(i)+" "); System.out.print(sol.get(i) + " ");
} }
System.out.println(); System.out.println();
}; }
;
} }

View File

@ -39,5 +39,6 @@ public class TestingPlusCmaEs {
System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: " System.out.println(esParams.getTerminator().lastTerminationMessage() + "\nFound solution: "
+ AbstractEAIndividual.getDefaultDataString(bestIndy)); + AbstractEAIndividual.getDefaultDataString(bestIndy));
} }
;
;
} }

View File

@ -6,12 +6,12 @@ package eva2.gui;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener; import javax.swing.event.HyperlinkListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/** /**
* @author becker * @author becker

View File

@ -7,13 +7,8 @@ import eva2.tools.SelectedTag;
import eva2.tools.StringTools; import eva2.tools.StringTools;
import eva2.tools.Tag; import eva2.tools.Tag;
import eva2.util.annotation.Description; import eva2.util.annotation.Description;
import eva2.util.annotation.Parameter;
import java.beans.BeanInfo; import java.beans.*;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Array; import java.lang.reflect.Array;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
@ -641,7 +636,8 @@ public class BeanInspector {
infoBf.append((String) ret); infoBf.append((String) ret);
} else { } else {
Description description = obj.getClass().getAnnotation(Description.class); Description description = obj.getClass().getAnnotation(Description.class);
if(description != null) {; if (description != null) {
;
infoBf.append("\t"); infoBf.append("\t");
infoBf.append(description.text()); infoBf.append(description.text());
} }

View File

@ -15,14 +15,12 @@ import eva2.optimization.modules.ModuleAdapter;
import eva2.optimization.stat.OptimizationJob; import eva2.optimization.stat.OptimizationJob;
import eva2.tools.ToolBoxGui; import eva2.tools.ToolBoxGui;
import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.Serializable; import java.io.Serializable;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JToolBar;
/** /**
* Contains the GUI elements of start and stop buttons and optionally a help * Contains the GUI elements of start and stop buttons and optionally a help

View File

@ -8,14 +8,14 @@ package eva2.gui;
import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfaceNotifyOnInformers;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
/** /**
* Produces the main EvA2 frame and a tool bar instance. TODO This class should be removed * Produces the main EvA2 frame and a tool bar instance. TODO This class should be removed

View File

@ -1,14 +1,14 @@
package eva2.gui; package eva2.gui;
import java.awt.Component; import javax.swing.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyEditor;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener; import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath; import javax.swing.tree.TreePath;
import java.awt.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyEditor;
/** /**
* Listener for use with the EvATreeNode class. It implements both the tree selection listener * Listener for use with the EvATreeNode class. It implements both the tree selection listener

View File

@ -13,10 +13,7 @@ package eva2.gui;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import javax.swing.AbstractAction; import javax.swing.*;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.KeyStroke;
/** /**
* *

View File

@ -13,9 +13,9 @@ package eva2.gui;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import javax.swing.*;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import javax.swing.JComponent;
/** /**
* *

View File

@ -10,14 +10,10 @@ package eva2.gui;
* $Author: streiche $ * $Author: streiche $
*/ */
import java.awt.Component; import javax.swing.*;
import java.awt.Event; import java.awt.*;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.DefaultDesktopManager;
import javax.swing.JInternalFrame;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
/** /**
* *

View File

@ -13,20 +13,15 @@ package eva2.gui;
import eva2.EvAInfo; import eva2.EvAInfo;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener; import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLFrameHyperlinkEvent; import javax.swing.text.html.HTMLFrameHyperlinkEvent;
import java.awt.*;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
/** /**
* *

View File

@ -1,19 +1,7 @@
package eva2.gui; package eva2.gui;
/*
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
* @version: $Revision: 10 $
* $Date: 2006-01-18 11:02:22 +0100 (Wed, 18 Jan 2006) $
* $Author: streiche $
*/
import javax.swing.*;
import java.io.File; import java.io.File;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JToolBar;
/** /**
* *

View File

@ -10,16 +10,13 @@ package eva2.gui;
* $Author: streiche $ * $Author: streiche $
*/ */
import java.awt.Event; import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.KeyStroke;
import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent; import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener; import javax.swing.event.InternalFrameListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
public class JEFrame extends JInternalFrame { public class JEFrame extends JInternalFrame {
private boolean closeAllOnClose = false; private boolean closeAllOnClose = false;

View File

@ -1,8 +1,8 @@
package eva2.gui; package eva2.gui;
import javax.swing.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.swing.JDesktopPane;
/* /*
* Title: EvA2 * Title: EvA2
* Description: * Description:

View File

@ -7,14 +7,13 @@ package eva2.gui;
import eva2.gui.editor.ComponentFilter; import eva2.gui.editor.ComponentFilter;
import java.awt.Component; import javax.swing.*;
import java.awt.Event; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.beans.PropertyVetoException; import java.beans.PropertyVetoException;
import java.util.Vector; import java.util.Vector;
import javax.swing.*;
/** /**
* *

View File

@ -2,11 +2,9 @@ package eva2.gui;
import eva2.tools.ToolBoxGui; import eva2.tools.ToolBoxGui;
import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
/** /**
* @author becker * @author becker

View File

@ -13,8 +13,8 @@ package eva2.gui;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import java.io.File;
import javax.swing.*; import javax.swing.*;
import java.io.File;
public class JExtFileChooser extends JFileChooser { public class JExtFileChooser extends JFileChooser {
private boolean overwriteWarning = true; private boolean overwriteWarning = true;

View File

@ -10,12 +10,9 @@ package eva2.gui;
* $Author: streiche $ * $Author: streiche $
*/ */
import java.beans.*; import javax.swing.*;
import javax.swing.Action; import java.beans.PropertyChangeEvent;
import javax.swing.Icon; import java.beans.PropertyChangeListener;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
/** /**
* *

View File

@ -10,11 +10,11 @@ package eva2.gui;
* $Author: streiche $ * $Author: streiche $
*/ */
import java.awt.Insets; import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import javax.swing.*;
/** /**
* *

View File

@ -11,11 +11,10 @@ package eva2.gui;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.stat.OptimizationJobList; import eva2.optimization.stat.OptimizationJobList;
import javax.swing.*;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager; import java.beans.PropertyEditorManager;
import java.io.Serializable; import java.io.Serializable;
import javax.swing.JComponent;
import javax.swing.JPanel;
public class JParaPanel implements Serializable, PanelMaker { public class JParaPanel implements Serializable, PanelMaker {

View File

@ -13,14 +13,21 @@ package eva2.gui;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import java.awt.Event; import javax.swing.*;
import java.awt.event.*; import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.text.DefaultEditorKit;
import javax.swing.text.Keymap;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.io.*; import java.io.*;
import java.util.Hashtable; import java.util.Hashtable;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.undo.*;
public class JTextEditorInternalFrame extends JDocFrame { public class JTextEditorInternalFrame extends JDocFrame {

View File

@ -5,18 +5,14 @@ package eva2.gui;
* $ $Date: 2007-11-15 14:58:12 +0100 (Thu, 15 Nov 2007) $ $Author: mkron $ * $ $Date: 2007-11-15 14:58:12 +0100 (Thu, 15 Nov 2007) $ $Author: mkron $
*/ */
import eva2.EvAInfo;
import eva2.optimization.tools.FileTools; import eva2.optimization.tools.FileTools;
import eva2.tools.BasicResourceLoader;
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.event.InternalFrameAdapter; import java.awt.*;
import javax.swing.event.InternalFrameEvent; import java.awt.event.*;
import java.io.Serializable;
/** /**
* *

View File

@ -4,15 +4,13 @@
*/ */
package eva2.gui; package eva2.gui;
import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
/** /**
* This is a JLabel that shows the current logging level * This is a JLabel that shows the current logging level

View File

@ -1,17 +1,15 @@
package eva2.gui; package eva2.gui;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Color; import javax.swing.event.ChangeEvent;
import java.awt.Point; import javax.swing.event.ChangeListener;
import java.awt.*;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.logging.Handler; import java.util.logging.Handler;
import java.util.logging.LogRecord; import java.util.logging.LogRecord;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/** /**
* Simple logging panel that shows logs produced by EvA2 * Simple logging panel that shows logs produced by EvA2
@ -104,7 +102,7 @@ class LoggingHandler extends Handler {
@Override @Override
public void close() throws SecurityException { public void close() throws SecurityException {
/* /*
* Nothing to close * Nothing to close
*/ */
} }

View File

@ -1,7 +1,8 @@
package eva2.gui; package eva2.gui;
import eva2.EvAInfo; import eva2.EvAInfo;
import eva2.client.*; import eva2.client.ClassPreloader;
import eva2.client.EvAComAdapter;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.AbstractModuleAdapter; import eva2.optimization.modules.AbstractModuleAdapter;
@ -23,8 +24,9 @@ import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.net.URL; import java.net.URL;
import java.util.*; import java.util.ArrayList;
import java.util.logging.ConsoleHandler; import java.util.Enumeration;
import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -373,7 +375,6 @@ public class Main extends JFrame implements OptimizationStateListener {
} }
LoggingPanel logPanel = new LoggingPanel(); LoggingPanel logPanel = new LoggingPanel();
logPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); logPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

View File

@ -6,8 +6,9 @@ import eva2.tools.BasicResourceLoader;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
import eva2.tools.SerializedObject; import eva2.tools.SerializedObject;
import eva2.util.annotation.Description; import eva2.util.annotation.Description;
import org.reflections.Reflections;
import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxRenderer;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -19,11 +20,11 @@ import java.beans.PropertyChangeSupport;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy; import java.lang.reflect.Proxy;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Vector;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxRenderer;
/** /**
* *
@ -352,9 +353,9 @@ public class OptimizationEditorPanel extends JPanel implements ItemListener {
} }
// If the globalInfo method doesn't exist try to use the Annotation // If the globalInfo method doesn't exist try to use the Annotation
if(tip == null || tip.isEmpty()) { if (tip == null || tip.isEmpty()) {
Description description = instances.get(i).getAnnotation(Description.class); Description description = instances.get(i).getAnnotation(Description.class);
if(description != null) { if (description != null) {
tip = description.text(); tip = description.text();
} }
} }

View File

@ -1,6 +1,6 @@
package eva2.gui; package eva2.gui;
import javax.swing.JComponent; import javax.swing.*;
/** /**
* Simple helper interface. * Simple helper interface.

View File

@ -1,9 +1,9 @@
package eva2.gui; package eva2.gui;
import javax.swing.*;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.JCheckBox;
/** /**
* A checkbox for boolean editors. * A checkbox for boolean editors.

View File

@ -9,10 +9,9 @@ import eva2.EvAInfo;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Component; import java.awt.*;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.JDialog;
/** /**
* *

View File

@ -12,14 +12,9 @@ package eva2.gui;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
/** /**
* *

View File

@ -13,6 +13,11 @@ package eva2.gui;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -22,11 +27,6 @@ import java.lang.reflect.Method;
import java.util.EventObject; import java.util.EventObject;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
/** /**
* There are some trick methods interpreted here. Check EvA2Notes.txt. * There are some trick methods interpreted here. Check EvA2Notes.txt.

View File

@ -13,18 +13,12 @@ package eva2.gui;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.io.Serializable; import java.io.Serializable;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
/** /**
* *

View File

@ -5,6 +5,9 @@ package eva2.gui;
* $Date: 2006-01-18 11:02:22 +0100 (Wed, 18 Jan 2006) $ $Author: streiche $ * $Date: 2006-01-18 11:02:22 +0100 (Wed, 18 Jan 2006) $ $Author: streiche $
*/ */
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.FocusAdapter; import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent; import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter; import java.awt.event.KeyAdapter;
@ -12,10 +15,6 @@ import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/** /**
* *

View File

@ -1,12 +1,11 @@
package eva2.gui; package eva2.gui;
import javax.swing.*;
import java.awt.event.FocusAdapter; import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent; import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter; import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.BorderFactory;
import javax.swing.JTextField;
/** /**
* A text property editor view. Updates the editor on key release and lost focus * A text property editor view. Updates the editor on key release and lost focus

View File

@ -5,11 +5,8 @@ package eva2.gui;
* $Date: 2007-05-04 14:22:16 +0200 (Fri, 04 May 2007) $ $Author: mkron $ * $Date: 2007-05-04 14:22:16 +0200 (Fri, 04 May 2007) $ $Author: mkron $
*/ */
import javax.swing.*;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
public class PropertyValueSelector extends JComboBox { public class PropertyValueSelector extends JComboBox {

View File

@ -14,8 +14,8 @@ package eva2.gui;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.awt.*;
import javax.swing.*; import javax.swing.*;
import java.awt.*;
class SplashScreen extends Frame { class SplashScreen extends Frame {

View File

@ -1,23 +1,14 @@
package eva2.gui.editor; package eva2.gui.editor;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Component; import java.awt.*;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -15,10 +15,15 @@ package eva2.gui.editor;
import eva2.gui.PropertyDialog; import eva2.gui.PropertyDialog;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import javax.swing.*; import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor;
/*==========================================================================* /*==========================================================================*
* CLASS DECLARATION * CLASS DECLARATION

View File

@ -2,11 +2,11 @@ package eva2.gui.editor;
import eva2.gui.PropertyValueSelector; import eva2.gui.PropertyValueSelector;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.beans.PropertyEditorSupport; import java.beans.PropertyEditorSupport;
import javax.swing.JFrame;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -4,6 +4,9 @@ import eva2.gui.*;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
import eva2.tools.SerializedObject; import eva2.tools.SerializedObject;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
@ -15,9 +18,6 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class GenericArrayEditor extends JPanel implements PropertyEditor { public class GenericArrayEditor extends JPanel implements PropertyEditor {

View File

@ -2,27 +2,12 @@ package eva2.gui.editor;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Component; import java.awt.*;
import java.awt.FontMetrics; import java.awt.event.*;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
/** /**
* A simple focus listener with an object ID and callback. * A simple focus listener with an object ID and callback.

View File

@ -2,12 +2,12 @@ package eva2.gui.editor;
import eva2.gui.PropertyEpsilonConstraint; import eva2.gui.PropertyEpsilonConstraint;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -2,12 +2,12 @@ package eva2.gui.editor;
import eva2.gui.PropertyEpsilonThreshold; import eva2.gui.PropertyEpsilonThreshold;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -2,6 +2,7 @@ package eva2.gui.editor;
import eva2.gui.PropertyFilePath; import eva2.gui.PropertyFilePath;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -9,10 +10,6 @@ import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import java.io.File; import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -2,6 +2,7 @@ package eva2.gui.editor;
import eva2.gui.PropertyIntArray; import eva2.gui.PropertyIntArray;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -10,7 +11,6 @@ import java.awt.event.KeyListener;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -4,18 +4,8 @@ import eva2.EvAInfo;
import eva2.gui.OptimizationEditorPanel; import eva2.gui.OptimizationEditorPanel;
import eva2.tools.ReflectPackage; import eva2.tools.ReflectPackage;
import java.awt.Component; import java.awt.*;
import java.awt.FontMetrics; import java.beans.*;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -9,31 +9,14 @@ import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Component; import java.awt.*;
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.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; 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.SwingConstants;
/** /**

View File

@ -8,17 +8,8 @@ import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Component; import java.awt.*;
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 java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
@ -27,16 +18,6 @@ import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; 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;
/** /**

View File

@ -2,12 +2,15 @@ package eva2.gui.editor;
import eva2.gui.PropertyWeightedLPTchebycheff; import eva2.gui.PropertyWeightedLPTchebycheff;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor; import java.beans.PropertyEditor;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -3,8 +3,11 @@ package eva2.gui.editor;
import eva2.gui.MultiLineString; import eva2.gui.MultiLineString;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.TextEvent;
import java.beans.*; import java.awt.event.TextListener;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor;
/** /**

View File

@ -13,9 +13,12 @@ package eva2.gui.editor;
import eva2.gui.PropertySheetPanelStat; import eva2.gui.PropertySheetPanelStat;
import eva2.optimization.stat.GenericStatistics; import eva2.optimization.stat.GenericStatistics;
import java.awt.*;
import java.beans.*;
import javax.swing.*; import javax.swing.*;
import java.awt.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyEditor;
public class StatisticsEditor implements PropertyEditor { public class StatisticsEditor implements PropertyEditor {

View File

@ -16,13 +16,12 @@ import eva2.tools.BasicResourceLoader;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
import eva2.tools.Tag; import eva2.tools.Tag;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Toolkit; import java.awt.*;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.beans.PropertyEditorManager; import java.beans.PropertyEditorManager;
import java.beans.PropertyEditorSupport; import java.beans.PropertyEditorSupport;
import javax.swing.JFrame;
/** /**
* *

View File

@ -1,20 +1,9 @@
package eva2.gui.plot; package eva2.gui.plot;
import eva2.tools.chart2d.DArray; import eva2.tools.chart2d.*;
import eva2.tools.chart2d.DBorder;
import eva2.tools.chart2d.DComponent;
import eva2.tools.chart2d.DIntDoubleMap;
import eva2.tools.chart2d.DMeasures;
import eva2.tools.chart2d.DPoint;
import eva2.tools.chart2d.DPointIcon;
import eva2.tools.chart2d.DPointSet;
import eva2.tools.chart2d.DRectangle;
import java.awt.BasicStroke; import java.awt.*;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Stroke;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,7 +1,5 @@
package eva2.gui.plot; package eva2.gui.plot;
import eva2.gui.plot.Graph;
/* /*
* Title: EvA2 * Title: EvA2
* Description: * Description:

View File

@ -1,31 +1,15 @@
package eva2.gui.plot; package eva2.gui.plot;
import eva2.gui.*; import eva2.gui.Exp;
import eva2.gui.InterfaceSelectablePointIcon;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.mocco.paretofrontviewer.InterfaceRefPointListener; import eva2.optimization.mocco.paretofrontviewer.InterfaceRefPointListener;
import eva2.tools.ToolBoxGui; import eva2.tools.ToolBoxGui;
import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.*;
import eva2.tools.chart2d.Chart2DDPointIconContent;
import eva2.tools.chart2d.Chart2DDPointIconCross;
import eva2.tools.chart2d.Chart2DDPointIconPoint;
import eva2.tools.chart2d.Chart2DDPointIconText;
import eva2.tools.chart2d.DArea;
import eva2.tools.chart2d.DBorder;
import eva2.tools.chart2d.DFunction;
import eva2.tools.chart2d.DPoint;
import eva2.tools.chart2d.DPointIcon;
import eva2.tools.chart2d.DPointSet;
import eva2.tools.chart2d.ScaledBorder;
import java.awt.Color; import javax.swing.*;
import java.awt.Dimension; import java.awt.*;
import java.awt.Graphics; import java.awt.event.*;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
@ -35,9 +19,6 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
/** /**
* *

View File

@ -14,15 +14,10 @@ package eva2.gui.plot;
* IMPORTS * IMPORTS
*==========================================================================*/ *==========================================================================*/
import eva2.tools.chart2d.DArea; import eva2.tools.chart2d.*;
import eva2.tools.chart2d.DMeasures;
import eva2.tools.chart2d.DPoint;
import eva2.tools.chart2d.DPointIcon;
import eva2.tools.chart2d.DPointSet;
import eva2.tools.math.Mathematics; import eva2.tools.math.Mathematics;
import java.awt.BasicStroke; import java.awt.*;
import java.awt.Color;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -4,20 +4,11 @@ import eva2.tools.Pair;
import eva2.tools.StringTools; import eva2.tools.StringTools;
import eva2.tools.chart2d.SlimRect; import eva2.tools.chart2d.SlimRect;
import java.awt.Color; import javax.swing.*;
import java.awt.FontMetrics; import java.awt.*;
import java.awt.Graphics;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.util.ArrayList; import java.util.*;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/** /**
* A class representing the legend of a plot. It is created from a list of * A class representing the legend of a plot. It is created from a list of

View File

@ -7,25 +7,17 @@ import eva2.optimization.population.Population;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import eva2.tools.chart2d.DPointSet; import eva2.tools.chart2d.DPointSet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Formatter;
import java.util.Locale;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent; import javax.swing.event.InternalFrameEvent;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Formatter;
import java.util.Locale;
/** /**
* ToDo: Rename to PlotWindow * ToDo: Rename to PlotWindow

View File

@ -1,17 +1,4 @@
package eva2.gui.plot; package eva2.gui.plot;
/*
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
* @version: $Revision: 306 $
* $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $
* $Author: mkron $
*/
/*==========================================================================*
* IMPORTS
*==========================================================================*/
import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.Interface2DBorderProblem;
import eva2.optimization.problems.InterfaceFirstOrderDerivableProblem; import eva2.optimization.problems.InterfaceFirstOrderDerivableProblem;
@ -19,13 +6,8 @@ import eva2.tools.chart2d.DRectangle;
import eva2.tools.diagram.ColorBarCalculator; import eva2.tools.diagram.ColorBarCalculator;
import eva2.tools.math.Mathematics; import eva2.tools.math.Mathematics;
import java.awt.Color; import javax.swing.*;
import javax.swing.JPanel; import java.awt.*;
/*==========================================================================*
* CLASS DECLARATION
*==========================================================================*/
/** /**
* *

View File

@ -4,13 +4,13 @@
*/ */
package eva2.gui.utils; package eva2.gui.utils;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
import java.awt.*; import java.awt.*;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
public class CustomTabbedPaneUI extends BasicTabbedPaneUI { public class CustomTabbedPaneUI extends BasicTabbedPaneUI {

View File

@ -1,11 +1,9 @@
package eva2.gui.utils; package eva2.gui.utils;
import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
import java.awt.*; import java.awt.*;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.plaf.basic.BasicButtonUI;
public class VerticalButtonUI extends BasicButtonUI { public class VerticalButtonUI extends BasicButtonUI {

View File

@ -21,8 +21,8 @@ import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.List; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
@ -32,9 +32,8 @@ import java.net.InetAddress;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import javax.swing.*;
@eva2.util.annotation.Description(text="This is a simple example framework for Evolutionary Algorithms.") @eva2.util.annotation.Description(text = "This is a simple example framework for Evolutionary Algorithms.")
public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopulationChangedEventListener, java.io.Serializable { public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopulationChangedEventListener, java.io.Serializable {
// Interface GUI Stuff // Interface GUI Stuff

View File

@ -1,42 +1,23 @@
package eva2.optimization.go; package eva2.optimization.go;
import eva2.optimization.mocco.MOCCOState;
import eva2.optimization.mocco.MOCCOParameterizeGDF;
import eva2.optimization.mocco.MOCCOParameterizeTchebycheff;
import eva2.optimization.mocco.MOCCOParameterizeRefPoint;
import eva2.optimization.mocco.MOCCOChooseReferenceSolution;
import eva2.optimization.mocco.MOCCOChooseReferencePoint;
import eva2.optimization.mocco.MOCCOParameterizeSTEP;
import eva2.optimization.mocco.MOCCOProblemInitialization;
import eva2.optimization.mocco.MOCCOProblemRedefinition;
import eva2.optimization.mocco.MOCCOParameterizeMO;
import eva2.optimization.mocco.MOCCOChooseMOStrategy;
import eva2.optimization.mocco.MOCCOInitialPopulationSize;
import eva2.optimization.mocco.MOCCOParameterizeSO;
import eva2.optimization.mocco.InterfaceProcessElement;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.problems.TF1Problem;
import eva2.optimization.problems.InterfaceOptimizationObjective;
import eva2.gui.JParaPanel; import eva2.gui.JParaPanel;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.mocco.*;
import eva2.optimization.mocco.paretofrontviewer.MOCCOViewer; import eva2.optimization.mocco.paretofrontviewer.MOCCOViewer;
import eva2.optimization.operator.moso.InterfaceMOSOConverter; import eva2.optimization.operator.moso.InterfaceMOSOConverter;
import eva2.optimization.operator.moso.MOSOWeightedFitness; import eva2.optimization.operator.moso.MOSOWeightedFitness;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.*;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.strategies.IslandModelEA;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Dimension; import java.awt.*;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.io.*; import java.io.*;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -1,6 +1,6 @@
package eva2.optimization.go; package eva2.optimization.go;
import javax.swing.SwingUtilities; import javax.swing.*;
/** /**
* This is the 3rd version of SwingWorker (also known as * This is the 3rd version of SwingWorker (also known as

View File

@ -19,7 +19,7 @@ import java.util.Comparator;
* @author mkron * @author mkron
* @see #AbstractEAIndividual().isDominatingFitness(double[], double[]) * @see #AbstractEAIndividual().isDominatingFitness(double[], double[])
*/ */
@eva2.util.annotation.Description(text="A comparator class for general EA individuals. Compares individuals based on their fitness in context of minimization.") @eva2.util.annotation.Description(text = "A comparator class for general EA individuals. Compares individuals based on their fitness in context of minimization.")
public class AbstractEAIndividualComparator implements Comparator<Object>, Serializable { public class AbstractEAIndividualComparator implements Comparator<Object>, Serializable {
// flag whether a data field should be used. // flag whether a data field should be used.
private String indyDataKey = ""; private String indyDataKey = "";

View File

@ -14,7 +14,7 @@ import java.util.BitSet;
* This individual uses a real-valued genotype to code for binary values, either * 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. * 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 { public class ESIndividualBinaryData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeBinary, java.io.Serializable {
private BitSet m_Phenotype = new BitSet(); private BitSet m_Phenotype = new BitSet();

View File

@ -15,7 +15,7 @@ import eva2.util.annotation.Description;
/** /**
* This individual uses a real-valued genotype to code for double values. * 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 { public class ESIndividualDoubleData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeDouble, java.io.Serializable {
private double[] genotype; private double[] genotype;

View File

@ -11,7 +11,7 @@ import eva2.util.annotation.Description;
/** /**
* This individual uses a real-valued genotype to code for integer values. * 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 { public class ESIndividualIntegerData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypeInteger, java.io.Serializable {
private double[] genotype; private double[] genotype;

View File

@ -12,7 +12,7 @@ import eva2.util.annotation.Description;
* This individual uses a real-valued genotype to code for a permutations, * This individual uses a real-valued genotype to code for a permutations,
* the sorting of the real-valued genotype gives the permutation. * 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 { public class ESIndividualPermutationData extends AbstractEAIndividual implements InterfaceESIndividual, InterfaceDataTypePermutation, java.io.Serializable {
private double[][] m_Genotype; private double[][] m_Genotype;

View File

@ -12,7 +12,7 @@ import java.util.BitSet;
/** /**
* This individual combines a binary and a real-valued phenotype. * 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 { public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual implements InterfaceDataTypeBinary, InterfaceDataTypeDouble, java.io.Serializable {
private InterfaceDataTypeDouble m_Numbers = new ESIndividualDoubleData(); private InterfaceDataTypeDouble m_Numbers = new ESIndividualDoubleData();

View File

@ -14,7 +14,7 @@ import java.util.BitSet;
/** /**
* This individual uses a binary genotype to code for binary values. * 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 { public class GAIndividualBinaryData extends AbstractEAIndividual implements InterfaceDataTypeBinary, InterfaceGAIndividual, java.io.Serializable {
protected BitSet m_Genotype = new BitSet(); protected BitSet m_Genotype = new BitSet();

View File

@ -17,7 +17,7 @@ import java.util.BitSet;
* This individual uses a binary genotype to code for double values * This individual uses a binary genotype to code for double values
* using two alternative encodings. * 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 { public class GAIndividualDoubleData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeDouble, java.io.Serializable {
private double[] m_Phenotype; private double[] m_Phenotype;

View File

@ -16,7 +16,7 @@ import java.util.BitSet;
* This individual uses a binary genotype to code for binary values using * This individual uses a binary genotype to code for binary values using
* two alternative encodings. * 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 { public class GAIndividualIntegerData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeInteger, java.io.Serializable {
private int[] phenotype; private int[] phenotype;

View File

@ -18,7 +18,7 @@ import java.util.BitSet;
* This individual uses a binary genotype to code for a tree-based representation * This individual uses a binary genotype to code for a tree-based representation
* using a BNF grammar, see also Grammatical Evolution. * 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 { public class GEIndividualProgramData extends AbstractEAIndividual implements InterfaceGAIndividual, InterfaceDataTypeProgram, java.io.Serializable {
protected GPArea[] m_Area; protected GPArea[] m_Area;

View File

@ -11,7 +11,7 @@ import eva2.util.annotation.Description;
/** /**
* This individual uses a integer genotype to code for integer values. * 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 { public class GIIndividualIntegerData extends AbstractEAIndividual implements InterfaceGIIndividual, InterfaceDataTypeInteger, java.io.Serializable {
private int[] m_Phenotype; private int[] m_Phenotype;

View File

@ -9,7 +9,7 @@ import eva2.util.annotation.Description;
/** /**
* This individual combines a binary and a real-valued phenotype. * 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 { public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual implements InterfaceDataTypeInteger, InterfaceDataTypePermutation, java.io.Serializable {
private InterfaceDataTypeInteger m_Integer = new GIIndividualIntegerData(); private InterfaceDataTypeInteger m_Integer = new GIIndividualIntegerData();

View File

@ -15,7 +15,7 @@ import eva2.util.annotation.Description;
/** /**
* This individual uses a tree-based genotype to code for program trees. * 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 { public class GPIndividualProgramData extends AbstractEAIndividual implements InterfaceGPIndividual, InterfaceDataTypeProgram, java.io.Serializable {
protected AbstractGPNode[] genotype; protected AbstractGPNode[] genotype;

View File

@ -14,7 +14,7 @@ import java.util.ArrayList;
* This individual uses a permutation based genotype to code for * This individual uses a permutation based genotype to code for
* permutations. * 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 { public class OBGAIndividualPermutationData extends AbstractEAIndividual implements InterfaceDataTypePermutation, InterfaceOBGAIndividual, java.io.Serializable {
int[][] phenotype; int[][] phenotype;

View File

@ -4,10 +4,10 @@ package eva2.optimization.mocco;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.tools.BasicResourceLoader; import eva2.tools.BasicResourceLoader;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**

View File

@ -6,10 +6,10 @@ import eva2.optimization.mocco.paretofrontviewer.InterfaceRefPointListener;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;
import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.optimization.problems.InterfaceOptimizationObjective;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -8,10 +8,10 @@ import eva2.optimization.population.Population;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;
import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.optimization.problems.InterfaceOptimizationObjective;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -2,15 +2,10 @@ package eva2.optimization.mocco;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 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. * Created by IntelliJ IDEA.

View File

@ -1,9 +1,9 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
@ -16,11 +16,11 @@ import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.ArrayList; import java.util.ArrayList;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -1,8 +1,8 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
@ -12,10 +12,10 @@ import eva2.optimization.strategies.MultiObjectiveEA;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -1,8 +1,8 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.migration.SOBestMigration;
@ -13,15 +13,10 @@ import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 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. * Created by IntelliJ IDEA.

View File

@ -1,8 +1,8 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
@ -11,15 +11,10 @@ import eva2.optimization.strategies.MultiObjectiveEA;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 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. * Created by IntelliJ IDEA.

View File

@ -1,9 +1,9 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
@ -16,18 +16,11 @@ import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.ArrayList; 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. * Created by IntelliJ IDEA.

View File

@ -1,8 +1,8 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.migration.SOBestMigration;
@ -13,17 +13,10 @@ import eva2.optimization.tools.AbstractObjectEditor;
import eva2.optimization.tools.GeneralOptimizationEditorProperty; import eva2.optimization.tools.GeneralOptimizationEditorProperty;
import eva2.tools.math.RNG; import eva2.tools.math.RNG;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 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. * Created by IntelliJ IDEA.

View File

@ -2,14 +2,10 @@ package eva2.optimization.mocco;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.Font; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 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. * Created by IntelliJ IDEA.

View File

@ -5,12 +5,10 @@ import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.tools.ReflectPackage; import eva2.tools.ReflectPackage;
import java.awt.BorderLayout; import javax.swing.*;
import java.awt.GridBagConstraints; import java.awt.*;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -5,10 +5,10 @@ import eva2.gui.JParaPanel;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.*;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.

View File

@ -12,7 +12,7 @@ import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.strategies.MultiObjectiveEA; import eva2.optimization.strategies.MultiObjectiveEA;
import java.awt.Color; import java.awt.*;
import java.util.ArrayList; import java.util.ArrayList;
/** /**

View File

@ -14,6 +14,7 @@ import eva2.tools.chart2d.DPoint;
import eva2.tools.chart2d.DPointIcon; import eva2.tools.chart2d.DPointIcon;
import eva2.tools.chart2d.ScaledBorder; import eva2.tools.chart2d.ScaledBorder;
import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -23,7 +24,6 @@ import java.io.FileOutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import javax.swing.*;
/** /**

Some files were not shown because too many files have changed in this diff Show More