Reorganize imports.

More refactoring.
This commit is contained in:
Fabian Becker 2014-01-17 12:31:36 +01:00
parent 4f93bd21ab
commit 531bbe50ed
25 changed files with 85 additions and 130 deletions

View File

@ -5,7 +5,6 @@ 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.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.*; import eva2.optimization.individuals.*;
import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.archiving.ArchivingNSGAII; import eva2.optimization.operator.archiving.ArchivingNSGAII;
@ -25,6 +24,7 @@ import eva2.optimization.operator.selection.InterfaceSelection;
import eva2.optimization.operator.selection.SelectBestIndividuals; import eva2.optimization.operator.selection.SelectBestIndividuals;
import eva2.optimization.operator.terminators.CombinedTerminator; import eva2.optimization.operator.terminators.CombinedTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.PBILPopulation; 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;

View File

@ -2,7 +2,6 @@ package eva2;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.IndividualInterface; 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;
@ -11,6 +10,7 @@ import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.modules.Processor; 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.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.population.SolutionSet; import eva2.optimization.population.SolutionSet;
import eva2.optimization.stat.*; import eva2.optimization.stat.*;

View File

@ -1,22 +1,21 @@
package eva2.cli; package eva2.cli;
import com.google.gson.*;
import eva2.OptimizerFactory; import eva2.OptimizerFactory;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.enums.DETypeEnum; import eva2.optimization.enums.DETypeEnum;
import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.terminators.CombinedTerminator; import eva2.optimization.operator.terminators.CombinedTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.FitnessValueTerminator; import eva2.optimization.operator.terminators.FitnessValueTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem;
import eva2.optimization.problems.AbstractProblemDouble; import eva2.optimization.problems.AbstractProblemDouble;
import eva2.optimization.problems.AbstractProblemDoubleOffset;
import eva2.optimization.strategies.DifferentialEvolution; import eva2.optimization.strategies.DifferentialEvolution;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import com.google.gson.*;
import org.apache.commons.cli.*; import org.apache.commons.cli.*;
import org.reflections.Reflections; import org.reflections.Reflections;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
@ -323,6 +322,8 @@ public class Main implements OptimizationStateListener, InterfacePopulationChang
opt.addOption("inertnessOrChi", true, "Inertness or Chi"); opt.addOption("inertnessOrChi", true, "Inertness or Chi");
opt.addOption("algType", true, "Type of PSO"); opt.addOption("algType", true, "Type of PSO");
break;
case "EvolutionStrategies":
break; break;
default: default:
throw new Exception("Unsupported Optimizer"); throw new Exception("Unsupported Optimizer");

View File

@ -1,8 +1,8 @@
package eva2.gui; package eva2.gui;
import eva2.gui.editor.*; import eva2.gui.editor.*;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.codings.gp.GPArea; import eva2.optimization.individuals.codings.gp.GPArea;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
import eva2.tools.StringSelection; import eva2.tools.StringSelection;

View File

@ -1,14 +1,4 @@
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 eva2.tools.EVAHELP; import eva2.tools.EVAHELP;

View File

@ -1,14 +1,4 @@
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: 319 $
* $Date: 2007-12-05 11:29:32 +0100 (Wed, 05 Dec 2007) $
* $Author: mkron $
*/
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;

View File

@ -1,14 +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: 320 $
* $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $
* $Author: mkron $
*/
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -4,10 +4,10 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.moso.MOSOWeightedFitness; import eva2.optimization.operator.moso.MOSOWeightedFitness;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;
import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.optimization.problems.InterfaceOptimizationObjective;

View File

@ -3,8 +3,8 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;

View File

@ -3,10 +3,10 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.migration.SOBestMigration;
import eva2.optimization.operator.moso.MOSOLpMetric; import eva2.optimization.operator.moso.MOSOLpMetric;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.strategies.IslandModelEA;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;

View File

@ -3,8 +3,8 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.optimization.strategies.MultiObjectiveEA; import eva2.optimization.strategies.MultiObjectiveEA;

View File

@ -4,10 +4,10 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.moso.MOSOWeightedFitness; import eva2.optimization.operator.moso.MOSOWeightedFitness;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;
import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.optimization.problems.InterfaceOptimizationObjective;

View File

@ -3,10 +3,10 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider; import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor; import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.migration.SOBestMigration;
import eva2.optimization.operator.moso.MOSOWeightedLPTchebycheff; import eva2.optimization.operator.moso.MOSOWeightedLPTchebycheff;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.strategies.IslandModelEA;
import eva2.optimization.tools.AbstractObjectEditor; import eva2.optimization.tools.AbstractObjectEditor;

View File

@ -1,9 +1,9 @@
package eva2.optimization.mocco; package eva2.optimization.mocco;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.archiving.ArchivingAllDominating; import eva2.optimization.operator.archiving.ArchivingAllDominating;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem;

View File

@ -4,9 +4,9 @@ import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfaceNotifyOnInformers;
import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.operator.terminators.InterfaceTerminator;
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.terminators.InterfaceTerminator;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.InterfaceOptimizer;

View File

@ -1,8 +1,8 @@
package eva2.optimization.modules; package eva2.optimization.modules;
import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.F1Problem;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.GeneticAlgorithm;

View File

@ -2,7 +2,10 @@ package eva2.optimization.modules;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.optimization.OptimizationStateListener; import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.*; import eva2.optimization.go.InterfaceNotifyOnInformers;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceProcessor;
import eva2.optimization.operator.paramcontrol.ConstantParameters; import eva2.optimization.operator.paramcontrol.ConstantParameters;
import eva2.optimization.operator.paramcontrol.InterfaceParameterControl; import eva2.optimization.operator.paramcontrol.InterfaceParameterControl;
import eva2.optimization.operator.postprocess.PostProcess; import eva2.optimization.operator.postprocess.PostProcess;

View File

@ -2,8 +2,8 @@ package eva2.optimization.modules;
import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -7,7 +7,6 @@ import eva2.gui.plot.Plot;
import eva2.gui.plot.TopoPlot; import eva2.gui.plot.TopoPlot;
import eva2.optimization.enums.ESMutationInitialSigma; import eva2.optimization.enums.ESMutationInitialSigma;
import eva2.optimization.enums.PostProcessMethod; import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.*; import eva2.optimization.individuals.*;
import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.cluster.ClusteringDensityBased; import eva2.optimization.operator.cluster.ClusteringDensityBased;
@ -22,6 +21,7 @@ import eva2.optimization.operator.mutation.MutateESMutativeStepSizeControl;
import eva2.optimization.operator.mutation.MutateESRankMuCMA; import eva2.optimization.operator.mutation.MutateESRankMuCMA;
import eva2.optimization.operator.selection.SelectBestIndividuals; import eva2.optimization.operator.selection.SelectBestIndividuals;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population; import eva2.optimization.population.Population;
import eva2.optimization.problems.*; import eva2.optimization.problems.*;
import eva2.optimization.stat.InterfaceTextListener; import eva2.optimization.stat.InterfaceTextListener;

View File

@ -1,7 +1,6 @@
package eva2.optimization.problems; package eva2.optimization.problems;
import eva2.optimization.enums.PostProcessMethod; import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.operator.cluster.ClusteringDensityBased; import eva2.optimization.operator.cluster.ClusteringDensityBased;
@ -16,6 +15,7 @@ import eva2.optimization.operator.postprocess.PostProcess;
import eva2.optimization.operator.postprocess.SolutionHistogram; import eva2.optimization.operator.postprocess.SolutionHistogram;
import eva2.optimization.operator.terminators.CombinedTerminator; import eva2.optimization.operator.terminators.CombinedTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.terminators.PhenotypeConvergenceTerminator; import eva2.optimization.operator.terminators.PhenotypeConvergenceTerminator;
import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum;
import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum;

View File

@ -4,7 +4,6 @@ import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import java.io.Serializable; import java.io.Serializable;
import java.net.InetAddress;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -33,9 +33,6 @@ import java.util.logging.Logger;
* Martin Pelikan, David E. Goldberg and Erick Cantu-Paz: 'BOA: The Bayesian * Martin Pelikan, David E. Goldberg and Erick Cantu-Paz: 'BOA: The Bayesian
* Optimization Algorithm' the works by Martin Pelikan and David E. Goldberg. * Optimization Algorithm' the works by Martin Pelikan and David E. Goldberg.
* Genetic and Evolutionary Computation Conference (GECCO-99), pp. 525-532 * Genetic and Evolutionary Computation Conference (GECCO-99), pp. 525-532
* (1999)
*
* @author seitz
*/ */
@Description(value = "Basic implementation of the Bayesian Optimization Algorithm based on the works by Martin Pelikan and David E. Goldberg.") @Description(value = "Basic implementation of the Bayesian Optimization Algorithm based on the works by Martin Pelikan and David E. Goldberg.")
public class BOA implements InterfaceOptimizer, java.io.Serializable { public class BOA implements InterfaceOptimizer, java.io.Serializable {

View File

@ -8,20 +8,15 @@ import eva2.optimization.population.Population;
import eva2.optimization.population.SolutionSet; import eva2.optimization.population.SolutionSet;
import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.B1Problem;
import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.util.annotation.Description;
/** /**
* The simple random or Monte-Carlo search, simple but useful to evaluate the * The simple random or Monte-Carlo search, simple but useful to evaluate the
* complexity of the search space. This implements a Random Walk Search using * complexity of the search space. This implements a Random Walk Search using
* the initialization method of the problem instance, meaning that the random * the initialization method of the problem instance, meaning that the random
* characteristics may be problem dependent. * characteristics may be problem dependent.
* <p/>
* Copyright: Copyright (c) 2003 Company: University of Tuebingen, Computer
* Architecture
*
* @author Felix Streichert
* @version: $Revision: 307 $ $Date: 2007-12-04 14:31:47 +0100 (Tue, 04 Dec
* 2007) $ $Author: mkron $
*/ */
@Description("The Monte Carlo Search repeatively creates random individuals and stores the best individuals found.")
public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializable { public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializable {
/** /**
@ -29,24 +24,24 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
private static final long serialVersionUID = -751760624411490405L; private static final long serialVersionUID = -751760624411490405L;
// These variables are necessary for the simple testcase // These variables are necessary for the simple testcase
private InterfaceOptimizationProblem m_Problem = new B1Problem(); private InterfaceOptimizationProblem optimizationProblem = new B1Problem();
private int m_MultiRuns = 100; private int multiRuns = 100;
private int m_FitnessCalls = 100; private int fitnessCalls = 100;
private int m_FitnessCallsNeeded = 0; private int fitnessCallsNeeded = 0;
private Population m_Population; private Population population;
private GAIndividualBinaryData m_Best, m_Test; private GAIndividualBinaryData bestIndividual;
// These variables are necessary for the more complex LectureGUI enviroment // These variables are necessary for the more complex LectureGUI enviroment
transient private String m_Identifier = ""; transient private String identifier = "";
transient private InterfacePopulationChangedEventListener m_Listener; transient private InterfacePopulationChangedEventListener populationChangedEventListener;
public MonteCarloSearch() { public MonteCarloSearch() {
this.m_Population = new Population(); this.population = new Population();
this.m_Population.setTargetSize(50); this.population.setTargetSize(50);
} }
public MonteCarloSearch(MonteCarloSearch a) { public MonteCarloSearch(MonteCarloSearch a) {
this.m_Population = (Population) a.m_Population.clone(); this.population = (Population) a.population.clone();
this.m_Problem = (InterfaceOptimizationProblem) a.m_Problem.clone(); this.optimizationProblem = (InterfaceOptimizationProblem) a.optimizationProblem.clone();
} }
@Override @Override
@ -59,8 +54,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void init() { public void init() {
this.m_Problem.initializePopulation(this.m_Population); this.optimizationProblem.initializePopulation(this.population);
this.m_Problem.evaluate(this.m_Population); this.optimizationProblem.evaluate(this.population);
this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED);
} }
@ -72,10 +67,10 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void initByPopulation(Population pop, boolean reset) { public void initByPopulation(Population pop, boolean reset) {
this.m_Population = (Population) pop.clone(); this.population = (Population) pop.clone();
if (reset) { if (reset) {
this.m_Population.init(); this.population.init();
this.m_Problem.evaluate(this.m_Population); this.optimizationProblem.evaluate(this.population);
this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED);
} }
} }
@ -86,22 +81,22 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void optimize() { public void optimize() {
Population original = (Population) this.m_Population.clone(); Population original = (Population) this.population.clone();
// this.problem.initializePopulation(this.population); // this.problem.initializePopulation(this.population);
for (int i = 0; i < m_Population.size(); i++) { for (int i = 0; i < population.size(); i++) {
m_Population.getEAIndividual(i).defaultInit(null); population.getEAIndividual(i).defaultInit(null);
} }
this.m_Population.setFunctionCalls(original.getFunctionCalls()); this.population.setFunctionCalls(original.getFunctionCalls());
this.m_Problem.evaluate(this.m_Population); this.optimizationProblem.evaluate(this.population);
for (int i = 0; i < this.m_Population.size(); i++) { for (int i = 0; i < this.population.size(); i++) {
if (((AbstractEAIndividual) original.get(i)).isDominatingDebConstraints(((AbstractEAIndividual) this.m_Population.get(i)))) { if (((AbstractEAIndividual) original.get(i)).isDominatingDebConstraints(((AbstractEAIndividual) this.population.get(i)))) {
this.m_Population.remove(i); this.population.remove(i);
this.m_Population.add(i, original.get(i)); this.population.add(i, original.get(i));
} }
} }
this.m_Population.incrGeneration(); this.population.incrGeneration();
this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED);
} }
@ -112,36 +107,37 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void setProblem(InterfaceOptimizationProblem problem) { public void setProblem(InterfaceOptimizationProblem problem) {
this.m_Problem = problem; this.optimizationProblem = problem;
} }
@Override @Override
public InterfaceOptimizationProblem getProblem() { public InterfaceOptimizationProblem getProblem() {
return this.m_Problem; return this.optimizationProblem;
} }
/** /**
* This method will init the HillClimber * This method will init the HillClimber
*/ */
public void defaultInit() { public void defaultInit() {
this.m_FitnessCallsNeeded = 0; this.fitnessCallsNeeded = 0;
this.m_Best = new GAIndividualBinaryData(); this.bestIndividual = new GAIndividualBinaryData();
this.m_Best.defaultInit(m_Problem); this.bestIndividual.defaultInit(optimizationProblem);
} }
/** /**
* This method will optimize * This method will optimize
*/ */
public void defaultOptimize() { public void defaultOptimize() {
for (int i = 0; i < m_FitnessCalls; i++) { GAIndividualBinaryData testIndividial;
this.m_Test = new GAIndividualBinaryData(); for (int i = 0; i < fitnessCalls; i++) {
this.m_Test.defaultInit(m_Problem); testIndividial = new GAIndividualBinaryData();
if (this.m_Test.defaultEvaulateAsMiniBits() < this.m_Best.defaultEvaulateAsMiniBits()) { testIndividial.defaultInit(optimizationProblem);
this.m_Best = this.m_Test; if (testIndividial.defaultEvaulateAsMiniBits() < this.bestIndividual.defaultEvaulateAsMiniBits()) {
this.bestIndividual = testIndividial;
} }
this.m_FitnessCallsNeeded = i; this.fitnessCallsNeeded = i;
if (this.m_Best.defaultEvaulateAsMiniBits() == 0) { if (this.bestIndividual.defaultEvaulateAsMiniBits() == 0) {
i = this.m_FitnessCalls + 1; i = this.fitnessCalls + 1;
} }
} }
} }
@ -154,15 +150,15 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
public static void main(String[] args) { public static void main(String[] args) {
MonteCarloSearch program = new MonteCarloSearch(); MonteCarloSearch program = new MonteCarloSearch();
int TmpMeanCalls = 0, TmpMeanFitness = 0; int TmpMeanCalls = 0, TmpMeanFitness = 0;
for (int i = 0; i < program.m_MultiRuns; i++) { for (int i = 0; i < program.multiRuns; i++) {
program.defaultInit(); program.defaultInit();
program.defaultOptimize(); program.defaultOptimize();
TmpMeanCalls += program.m_FitnessCallsNeeded; TmpMeanCalls += program.fitnessCallsNeeded;
TmpMeanFitness += program.m_Best.defaultEvaulateAsMiniBits(); TmpMeanFitness += program.bestIndividual.defaultEvaulateAsMiniBits();
} }
TmpMeanCalls /= program.m_MultiRuns; TmpMeanCalls /= program.multiRuns;
TmpMeanFitness /= program.m_MultiRuns; TmpMeanFitness /= program.multiRuns;
System.out.println("(" + program.m_MultiRuns + "/" + program.m_FitnessCalls + ") Mean Fitness : " + TmpMeanFitness + " Mean Calls needed: " + TmpMeanCalls); System.out.println("(" + program.multiRuns + "/" + program.fitnessCalls + ") Mean Fitness : " + TmpMeanFitness + " Mean Calls needed: " + TmpMeanCalls);
} }
/** /**
@ -172,14 +168,14 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void addPopulationChangedEventListener(InterfacePopulationChangedEventListener ea) { public void addPopulationChangedEventListener(InterfacePopulationChangedEventListener ea) {
this.m_Listener = ea; this.populationChangedEventListener = ea;
} }
@Override @Override
public boolean removePopulationChangedEventListener( public boolean removePopulationChangedEventListener(
InterfacePopulationChangedEventListener ea) { InterfacePopulationChangedEventListener ea) {
if (m_Listener == ea) { if (populationChangedEventListener == ea) {
m_Listener = null; populationChangedEventListener = null;
return true; return true;
} else { } else {
return false; return false;
@ -190,8 +186,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
* Something has changed * Something has changed
*/ */
protected void firePropertyChangedEvent(String name) { protected void firePropertyChangedEvent(String name) {
if (this.m_Listener != null) { if (this.populationChangedEventListener != null) {
this.m_Listener.registerPopulationStateChanged(this, name); this.populationChangedEventListener.registerPopulationStateChanged(this, name);
} }
} }
@ -206,8 +202,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
String result = ""; String result = "";
result += "Monte-Carlo Search:\n"; result += "Monte-Carlo Search:\n";
result += "Optimization Problem: "; result += "Optimization Problem: ";
result += this.m_Problem.getStringRepresentationForProblem(this) + "\n"; result += this.optimizationProblem.getStringRepresentationForProblem(this) + "\n";
result += this.m_Population.getStringRepresentation(); result += this.population.getStringRepresentation();
return result; return result;
} }
@ -218,26 +214,14 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public void setIdentifier(String name) { public void setIdentifier(String name) {
this.m_Identifier = name; this.identifier = name;
} }
@Override @Override
public String getIdentifier() { public String getIdentifier() {
return this.m_Identifier; return this.identifier;
} }
/**
* ********************************************************************************************************************
* These are for GUI
*/
/**
* This method returns a global info string
*
* @return description
*/
public static String globalInfo() {
return "The Monte Carlo Search repeatively creates random individuals and stores the best individuals found.";
}
/** /**
* This method will return a naming String * This method will return a naming String
@ -258,12 +242,12 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
*/ */
@Override @Override
public Population getPopulation() { public Population getPopulation() {
return this.m_Population; return this.population;
} }
@Override @Override
public void setPopulation(Population pop) { public void setPopulation(Population pop) {
this.m_Population = pop; this.population = pop;
} }
public String populationTipText() { public String populationTipText() {

View File

@ -16,6 +16,7 @@ import java.util.ArrayList;
*/ */
public class ParetoFrontLocalTester { public class ParetoFrontLocalTester {
// ToDo: Have this on another frame (won't show as JInternalFrame)
private Plot m_Plot; private Plot m_Plot;
private int index = 0; private int index = 0;
private BufferedWriter m_OutputFile = null; private BufferedWriter m_OutputFile = null;

View File

@ -45,7 +45,7 @@ package eva2.tools.math;
*/ */
public final class SpecialFunction extends Object { public final class SpecialFunction {
/* /*
** machine constants ** machine constants