diff --git a/src/eva2/OptimizerFactory.java b/src/eva2/OptimizerFactory.java index 0d392f8a..2eac006c 100644 --- a/src/eva2/OptimizerFactory.java +++ b/src/eva2/OptimizerFactory.java @@ -5,7 +5,6 @@ import eva2.optimization.enums.MutateESCrossoverTypeEnum; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.enums.PostProcessMethod; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.*; import eva2.optimization.modules.OptimizationParameters; 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.terminators.CombinedTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.PBILPopulation; import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; diff --git a/src/eva2/OptimizerRunnable.java b/src/eva2/OptimizerRunnable.java index cb1bdea0..be116aad 100644 --- a/src/eva2/OptimizerRunnable.java +++ b/src/eva2/OptimizerRunnable.java @@ -2,7 +2,6 @@ package eva2; import eva2.optimization.OptimizationStateListener; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.IndividualInterface; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; @@ -11,6 +10,7 @@ import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.Processor; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; import eva2.optimization.stat.*; diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java index d91019e1..8018cc99 100644 --- a/src/eva2/cli/Main.java +++ b/src/eva2/cli/Main.java @@ -1,22 +1,21 @@ package eva2.cli; +import com.google.gson.*; import eva2.OptimizerFactory; import eva2.optimization.OptimizationStateListener; import eva2.optimization.enums.DETypeEnum; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.operator.terminators.CombinedTerminator; -import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.operator.terminators.FitnessValueTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractProblemDouble; -import eva2.optimization.problems.AbstractProblemDoubleOffset; import eva2.optimization.strategies.DifferentialEvolution; import eva2.optimization.strategies.InterfaceOptimizer; -import com.google.gson.*; import org.apache.commons.cli.*; import org.reflections.Reflections; + import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.Map; @@ -323,6 +322,8 @@ public class Main implements OptimizationStateListener, InterfacePopulationChang opt.addOption("inertnessOrChi", true, "Inertness or Chi"); opt.addOption("algType", true, "Type of PSO"); + break; + case "EvolutionStrategies": break; default: throw new Exception("Unsupported Optimizer"); diff --git a/src/eva2/gui/PropertyEditorProvider.java b/src/eva2/gui/PropertyEditorProvider.java index 3b86e684..841a7f42 100644 --- a/src/eva2/gui/PropertyEditorProvider.java +++ b/src/eva2/gui/PropertyEditorProvider.java @@ -1,8 +1,8 @@ package eva2.gui; import eva2.gui.editor.*; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.codings.gp.GPArea; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.tools.SelectedTag; import eva2.tools.StringSelection; diff --git a/src/eva2/gui/PropertyPanel.java b/src/eva2/gui/PropertyPanel.java index c7b99fce..a616db2b 100644 --- a/src/eva2/gui/PropertyPanel.java +++ b/src/eva2/gui/PropertyPanel.java @@ -1,14 +1,4 @@ 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; diff --git a/src/eva2/gui/PropertySheetPanel.java b/src/eva2/gui/PropertySheetPanel.java index 70619165..f4049287 100644 --- a/src/eva2/gui/PropertySheetPanel.java +++ b/src/eva2/gui/PropertySheetPanel.java @@ -1,14 +1,4 @@ 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.tools.EVAHELP; diff --git a/src/eva2/gui/plot/DataViewer.java b/src/eva2/gui/plot/DataViewer.java index 808d194d..0e692381 100644 --- a/src/eva2/gui/plot/DataViewer.java +++ b/src/eva2/gui/plot/DataViewer.java @@ -1,14 +1,4 @@ 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; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java index f7377238..9d8ea736 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java @@ -4,10 +4,10 @@ package eva2.optimization.mocco; import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.moso.MOSOWeightedFitness; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java index c46de1a0..861c8701 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java @@ -3,8 +3,8 @@ package eva2.optimization.mocco; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.Population; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java index 8bb254a6..69279e08 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java @@ -3,10 +3,10 @@ package eva2.optimization.mocco; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.moso.MOSOLpMetric; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.tools.AbstractObjectEditor; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeSO.java b/src/eva2/optimization/mocco/MOCCOParameterizeSO.java index 6629ff55..7e3228c4 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeSO.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeSO.java @@ -3,8 +3,8 @@ package eva2.optimization.mocco; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.MultiObjectiveEA; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java index b7cec5c8..5e32fa96 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java @@ -4,10 +4,10 @@ package eva2.optimization.mocco; import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.moso.MOSOWeightedFitness; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java index 1dc935d8..b214a221 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java @@ -3,10 +3,10 @@ package eva2.optimization.mocco; import eva2.gui.PropertyEditorProvider; import eva2.gui.editor.GenericObjectEditor; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.operator.migration.SOBestMigration; import eva2.optimization.operator.moso.MOSOWeightedLPTchebycheff; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.tools.AbstractObjectEditor; diff --git a/src/eva2/optimization/mocco/MOCCOState.java b/src/eva2/optimization/mocco/MOCCOState.java index dd8ebbab..a392a9d5 100644 --- a/src/eva2/optimization/mocco/MOCCOState.java +++ b/src/eva2/optimization/mocco/MOCCOState.java @@ -1,9 +1,9 @@ package eva2.optimization.mocco; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.operator.archiving.ArchivingAllDominating; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; diff --git a/src/eva2/optimization/modules/AbstractOptimizationParameters.java b/src/eva2/optimization/modules/AbstractOptimizationParameters.java index be428501..1913bde7 100644 --- a/src/eva2/optimization/modules/AbstractOptimizationParameters.java +++ b/src/eva2/optimization/modules/AbstractOptimizationParameters.java @@ -4,9 +4,9 @@ import eva2.gui.BeanInspector; import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java index b426862a..9e09e1b0 100644 --- a/src/eva2/optimization/modules/OptimizationParameters.java +++ b/src/eva2/optimization/modules/OptimizationParameters.java @@ -1,8 +1,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.GeneticAlgorithm; diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java index 08c345d5..e4cb12fd 100644 --- a/src/eva2/optimization/modules/Processor.java +++ b/src/eva2/optimization/modules/Processor.java @@ -2,7 +2,10 @@ package eva2.optimization.modules; import eva2.gui.BeanInspector; 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.InterfaceParameterControl; import eva2.optimization.operator.postprocess.PostProcess; diff --git a/src/eva2/optimization/modules/SAParameters.java b/src/eva2/optimization/modules/SAParameters.java index 52cf92ed..8443816d 100644 --- a/src/eva2/optimization/modules/SAParameters.java +++ b/src/eva2/optimization/modules/SAParameters.java @@ -2,8 +2,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/operator/postprocess/PostProcess.java b/src/eva2/optimization/operator/postprocess/PostProcess.java index 3413c00d..a39d3074 100644 --- a/src/eva2/optimization/operator/postprocess/PostProcess.java +++ b/src/eva2/optimization/operator/postprocess/PostProcess.java @@ -7,7 +7,6 @@ import eva2.gui.plot.Plot; import eva2.gui.plot.TopoPlot; import eva2.optimization.enums.ESMutationInitialSigma; import eva2.optimization.enums.PostProcessMethod; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.*; import eva2.optimization.modules.OptimizationParameters; 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.selection.SelectBestIndividuals; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.population.Population; import eva2.optimization.problems.*; import eva2.optimization.stat.InterfaceTextListener; diff --git a/src/eva2/optimization/problems/AbstractOptimizationProblem.java b/src/eva2/optimization/problems/AbstractOptimizationProblem.java index 9bcf35a2..74bdb968 100644 --- a/src/eva2/optimization/problems/AbstractOptimizationProblem.java +++ b/src/eva2/optimization/problems/AbstractOptimizationProblem.java @@ -1,7 +1,6 @@ package eva2.optimization.problems; import eva2.optimization.enums.PostProcessMethod; -import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; 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.terminators.CombinedTerminator; import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.InterfaceTerminator; import eva2.optimization.operator.terminators.PhenotypeConvergenceTerminator; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; diff --git a/src/eva2/optimization/stat/StatisticsStandalone.java b/src/eva2/optimization/stat/StatisticsStandalone.java index 27084e49..4c5bc14c 100644 --- a/src/eva2/optimization/stat/StatisticsStandalone.java +++ b/src/eva2/optimization/stat/StatisticsStandalone.java @@ -4,7 +4,6 @@ import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import java.io.Serializable; -import java.net.InetAddress; import java.util.ArrayList; import java.util.List; diff --git a/src/eva2/optimization/strategies/BOA.java b/src/eva2/optimization/strategies/BOA.java index 5bd1cf8b..8c657805 100644 --- a/src/eva2/optimization/strategies/BOA.java +++ b/src/eva2/optimization/strategies/BOA.java @@ -33,9 +33,6 @@ import java.util.logging.Logger; * Martin Pelikan, David E. Goldberg and Erick Cantu-Paz: 'BOA: The Bayesian * Optimization Algorithm' the works by Martin Pelikan and David E. Goldberg. * 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.") public class BOA implements InterfaceOptimizer, java.io.Serializable { diff --git a/src/eva2/optimization/strategies/MonteCarloSearch.java b/src/eva2/optimization/strategies/MonteCarloSearch.java index 0fa3ff37..1c46974e 100644 --- a/src/eva2/optimization/strategies/MonteCarloSearch.java +++ b/src/eva2/optimization/strategies/MonteCarloSearch.java @@ -8,20 +8,15 @@ import eva2.optimization.population.Population; import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; +import eva2.util.annotation.Description; /** * 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 * the initialization method of the problem instance, meaning that the random * characteristics may be problem dependent. - *
- * 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 { /** @@ -29,24 +24,24 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ private static final long serialVersionUID = -751760624411490405L; // These variables are necessary for the simple testcase - private InterfaceOptimizationProblem m_Problem = new B1Problem(); - private int m_MultiRuns = 100; - private int m_FitnessCalls = 100; - private int m_FitnessCallsNeeded = 0; - private Population m_Population; - private GAIndividualBinaryData m_Best, m_Test; + private InterfaceOptimizationProblem optimizationProblem = new B1Problem(); + private int multiRuns = 100; + private int fitnessCalls = 100; + private int fitnessCallsNeeded = 0; + private Population population; + private GAIndividualBinaryData bestIndividual; // These variables are necessary for the more complex LectureGUI enviroment - transient private String m_Identifier = ""; - transient private InterfacePopulationChangedEventListener m_Listener; + transient private String identifier = ""; + transient private InterfacePopulationChangedEventListener populationChangedEventListener; public MonteCarloSearch() { - this.m_Population = new Population(); - this.m_Population.setTargetSize(50); + this.population = new Population(); + this.population.setTargetSize(50); } public MonteCarloSearch(MonteCarloSearch a) { - this.m_Population = (Population) a.m_Population.clone(); - this.m_Problem = (InterfaceOptimizationProblem) a.m_Problem.clone(); + this.population = (Population) a.population.clone(); + this.optimizationProblem = (InterfaceOptimizationProblem) a.optimizationProblem.clone(); } @Override @@ -59,8 +54,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public void init() { - this.m_Problem.initializePopulation(this.m_Population); - this.m_Problem.evaluate(this.m_Population); + this.optimizationProblem.initializePopulation(this.population); + this.optimizationProblem.evaluate(this.population); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); } @@ -72,10 +67,10 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public void initByPopulation(Population pop, boolean reset) { - this.m_Population = (Population) pop.clone(); + this.population = (Population) pop.clone(); if (reset) { - this.m_Population.init(); - this.m_Problem.evaluate(this.m_Population); + this.population.init(); + this.optimizationProblem.evaluate(this.population); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); } } @@ -86,22 +81,22 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public void optimize() { - Population original = (Population) this.m_Population.clone(); + Population original = (Population) this.population.clone(); // this.problem.initializePopulation(this.population); - for (int i = 0; i < m_Population.size(); i++) { - m_Population.getEAIndividual(i).defaultInit(null); + for (int i = 0; i < population.size(); i++) { + population.getEAIndividual(i).defaultInit(null); } - this.m_Population.setFunctionCalls(original.getFunctionCalls()); - this.m_Problem.evaluate(this.m_Population); - for (int i = 0; i < this.m_Population.size(); i++) { - if (((AbstractEAIndividual) original.get(i)).isDominatingDebConstraints(((AbstractEAIndividual) this.m_Population.get(i)))) { - this.m_Population.remove(i); - this.m_Population.add(i, original.get(i)); + this.population.setFunctionCalls(original.getFunctionCalls()); + this.optimizationProblem.evaluate(this.population); + for (int i = 0; i < this.population.size(); i++) { + if (((AbstractEAIndividual) original.get(i)).isDominatingDebConstraints(((AbstractEAIndividual) this.population.get(i)))) { + this.population.remove(i); + this.population.add(i, original.get(i)); } } - this.m_Population.incrGeneration(); + this.population.incrGeneration(); this.firePropertyChangedEvent(Population.NEXT_GENERATION_PERFORMED); } @@ -112,36 +107,37 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public void setProblem(InterfaceOptimizationProblem problem) { - this.m_Problem = problem; + this.optimizationProblem = problem; } @Override public InterfaceOptimizationProblem getProblem() { - return this.m_Problem; + return this.optimizationProblem; } /** * This method will init the HillClimber */ public void defaultInit() { - this.m_FitnessCallsNeeded = 0; - this.m_Best = new GAIndividualBinaryData(); - this.m_Best.defaultInit(m_Problem); + this.fitnessCallsNeeded = 0; + this.bestIndividual = new GAIndividualBinaryData(); + this.bestIndividual.defaultInit(optimizationProblem); } /** * This method will optimize */ public void defaultOptimize() { - for (int i = 0; i < m_FitnessCalls; i++) { - this.m_Test = new GAIndividualBinaryData(); - this.m_Test.defaultInit(m_Problem); - if (this.m_Test.defaultEvaulateAsMiniBits() < this.m_Best.defaultEvaulateAsMiniBits()) { - this.m_Best = this.m_Test; + GAIndividualBinaryData testIndividial; + for (int i = 0; i < fitnessCalls; i++) { + testIndividial = new GAIndividualBinaryData(); + testIndividial.defaultInit(optimizationProblem); + if (testIndividial.defaultEvaulateAsMiniBits() < this.bestIndividual.defaultEvaulateAsMiniBits()) { + this.bestIndividual = testIndividial; } - this.m_FitnessCallsNeeded = i; - if (this.m_Best.defaultEvaulateAsMiniBits() == 0) { - i = this.m_FitnessCalls + 1; + this.fitnessCallsNeeded = i; + if (this.bestIndividual.defaultEvaulateAsMiniBits() == 0) { + i = this.fitnessCalls + 1; } } } @@ -154,15 +150,15 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl public static void main(String[] args) { MonteCarloSearch program = new MonteCarloSearch(); 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.defaultOptimize(); - TmpMeanCalls += program.m_FitnessCallsNeeded; - TmpMeanFitness += program.m_Best.defaultEvaulateAsMiniBits(); + TmpMeanCalls += program.fitnessCallsNeeded; + TmpMeanFitness += program.bestIndividual.defaultEvaulateAsMiniBits(); } - TmpMeanCalls /= program.m_MultiRuns; - TmpMeanFitness /= program.m_MultiRuns; - System.out.println("(" + program.m_MultiRuns + "/" + program.m_FitnessCalls + ") Mean Fitness : " + TmpMeanFitness + " Mean Calls needed: " + TmpMeanCalls); + TmpMeanCalls /= program.multiRuns; + TmpMeanFitness /= program.multiRuns; + 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 public void addPopulationChangedEventListener(InterfacePopulationChangedEventListener ea) { - this.m_Listener = ea; + this.populationChangedEventListener = ea; } @Override public boolean removePopulationChangedEventListener( InterfacePopulationChangedEventListener ea) { - if (m_Listener == ea) { - m_Listener = null; + if (populationChangedEventListener == ea) { + populationChangedEventListener = null; return true; } else { return false; @@ -190,8 +186,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl * Something has changed */ protected void firePropertyChangedEvent(String name) { - if (this.m_Listener != null) { - this.m_Listener.registerPopulationStateChanged(this, name); + if (this.populationChangedEventListener != null) { + this.populationChangedEventListener.registerPopulationStateChanged(this, name); } } @@ -206,8 +202,8 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl String result = ""; result += "Monte-Carlo Search:\n"; result += "Optimization Problem: "; - result += this.m_Problem.getStringRepresentationForProblem(this) + "\n"; - result += this.m_Population.getStringRepresentation(); + result += this.optimizationProblem.getStringRepresentationForProblem(this) + "\n"; + result += this.population.getStringRepresentation(); return result; } @@ -218,26 +214,14 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public void setIdentifier(String name) { - this.m_Identifier = name; + this.identifier = name; } @Override 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 @@ -258,12 +242,12 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl */ @Override public Population getPopulation() { - return this.m_Population; + return this.population; } @Override public void setPopulation(Population pop) { - this.m_Population = pop; + this.population = pop; } public String populationTipText() { diff --git a/src/eva2/optimization/tools/ParetoFrontLocalTester.java b/src/eva2/optimization/tools/ParetoFrontLocalTester.java index 55b0b9b3..9265d86e 100644 --- a/src/eva2/optimization/tools/ParetoFrontLocalTester.java +++ b/src/eva2/optimization/tools/ParetoFrontLocalTester.java @@ -16,6 +16,7 @@ import java.util.ArrayList; */ public class ParetoFrontLocalTester { + // ToDo: Have this on another frame (won't show as JInternalFrame) private Plot m_Plot; private int index = 0; private BufferedWriter m_OutputFile = null; diff --git a/src/eva2/tools/math/SpecialFunction.java b/src/eva2/tools/math/SpecialFunction.java index 0e3239a9..913280ea 100644 --- a/src/eva2/tools/math/SpecialFunction.java +++ b/src/eva2/tools/math/SpecialFunction.java @@ -45,7 +45,7 @@ package eva2.tools.math; */ -public final class SpecialFunction extends Object { +public final class SpecialFunction { /* ** machine constants