Reorganize imports.
More refactoring.
This commit is contained in:
parent
4f93bd21ab
commit
531bbe50ed
@ -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;
|
||||
|
@ -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.*;
|
||||
|
@ -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");
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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.
|
||||
* <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 {
|
||||
|
||||
/**
|
||||
@ -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() {
|
||||
|
@ -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;
|
||||
|
@ -45,7 +45,7 @@ package eva2.tools.math;
|
||||
*/
|
||||
|
||||
|
||||
public final class SpecialFunction extends Object {
|
||||
public final class SpecialFunction {
|
||||
|
||||
/*
|
||||
** machine constants
|
||||
|
Loading…
x
Reference in New Issue
Block a user