Little fixes in LTGA (Logging, deprecated method)
Refactored InterfaceOptimizer (Set* to set*)
This commit is contained in:
parent
7a6c814a56
commit
0f553039e4
@ -373,7 +373,7 @@ public class OptimizerFactory {
|
|||||||
setTemplateOperators(problem, mutator, 1., new NoCrossover(), 0);
|
setTemplateOperators(problem, mutator, 1., new NoCrossover(), 0);
|
||||||
|
|
||||||
HillClimbing hc = new HillClimbing();
|
HillClimbing hc = new HillClimbing();
|
||||||
hc.SetIdentifier("-"+popSize+"-"+mutator.getStringRepresentation());
|
hc.setIdentifier("-"+popSize+"-"+mutator.getStringRepresentation());
|
||||||
hc.getPopulation().setTargetSize(popSize);
|
hc.getPopulation().setTargetSize(popSize);
|
||||||
hc.addPopulationChangedEventListener(listener);
|
hc.addPopulationChangedEventListener(listener);
|
||||||
hc.SetProblem(problem);
|
hc.SetProblem(problem);
|
||||||
|
@ -592,7 +592,7 @@ public class BOA implements InterfaceOptimizer, java.io.Serializable {
|
|||||||
return new SolutionSet(this.population);
|
return new SolutionSet(this.population);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ public class BinaryScatterSearch implements InterfaceOptimizer, java.io.Serializ
|
|||||||
return new SolutionSet(this.refSet);
|
return new SolutionSet(this.refSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,7 +261,7 @@ public class CHCAdaptiveSearchAlgorithm implements InterfaceOptimizer, java.io.S
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -996,7 +996,7 @@ public class ClusterBasedNichingEA implements InterfacePopulationChangedEventLis
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -97,7 +97,7 @@ InterfaceOptimizer, Serializable, InterfaceAdditionalPopulationInformer {
|
|||||||
setLocalSearchMethod(getLocalSearchMethod());
|
setLocalSearchMethod(getLocalSearchMethod());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -687,7 +687,7 @@ public class DifferentialEvolution implements InterfaceOptimizer, java.io.Serial
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The identifier
|
* @param name The identifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -1062,7 +1062,7 @@ public class EsDpiNiching implements InterfaceOptimizer, Serializable, Interface
|
|||||||
return identifier;
|
return identifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
identifier = name;
|
identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ public class EvolutionStrategies implements InterfaceOptimizer, java.io.Serializ
|
|||||||
*
|
*
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.identifier = name;
|
this.identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ public class EvolutionaryProgramming implements InterfaceOptimizer, java.io.Seri
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -200,7 +200,7 @@ public class FloodAlgorithm implements InterfaceOptimizer, java.io.Serializable
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -225,7 +225,7 @@ public class GeneticAlgorithm implements InterfaceOptimizer, java.io.Serializabl
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -316,7 +316,7 @@ public class GradientDescentAlgorithm implements InterfaceOptimizer, java.io.Ser
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ public class HillClimbing implements InterfaceOptimizer, java.io.Serializable {
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -83,8 +83,9 @@ public interface InterfaceOptimizer {
|
|||||||
/**
|
/**
|
||||||
* This method allows you to set an identifier for the algorithm
|
* This method allows you to set an identifier for the algorithm
|
||||||
* @param name The identifier
|
* @param name The identifier
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name);
|
public void setIdentifier(String name);
|
||||||
public String getIdentifier();
|
public String getIdentifier();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,7 +109,7 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I
|
|||||||
this.m_Islands = new InterfaceOptimizer[this.m_numLocalCPUs];
|
this.m_Islands = new InterfaceOptimizer[this.m_numLocalCPUs];
|
||||||
for (int i = 0; i < this.m_numLocalCPUs; i++) {
|
for (int i = 0; i < this.m_numLocalCPUs; i++) {
|
||||||
this.m_Islands[i] = (InterfaceOptimizer) this.m_Optimizer.clone();
|
this.m_Islands[i] = (InterfaceOptimizer) this.m_Optimizer.clone();
|
||||||
this.m_Islands[i].SetIdentifier(""+i);
|
this.m_Islands[i].setIdentifier(""+i);
|
||||||
this.m_Islands[i].init();
|
this.m_Islands[i].init();
|
||||||
if (this.m_LogLocalChanges)
|
if (this.m_LogLocalChanges)
|
||||||
this.m_Islands[i].addPopulationChangedEventListener(this);
|
this.m_Islands[i].addPopulationChangedEventListener(this);
|
||||||
@ -129,7 +129,7 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I
|
|||||||
this.m_Islands = new InterfaceOptimizer[nodesList.length];
|
this.m_Islands = new InterfaceOptimizer[nodesList.length];
|
||||||
for (int i = 0; i < nodesList.length; i++) {
|
for (int i = 0; i < nodesList.length; i++) {
|
||||||
this.m_Islands[i] = (InterfaceOptimizer) RMIProxyRemoteThread.newInstance(this.m_Optimizer, nodesList[i]);
|
this.m_Islands[i] = (InterfaceOptimizer) RMIProxyRemoteThread.newInstance(this.m_Optimizer, nodesList[i]);
|
||||||
this.m_Islands[i].SetIdentifier(""+i);
|
this.m_Islands[i].setIdentifier(""+i);
|
||||||
this.m_Islands[i].init();
|
this.m_Islands[i].init();
|
||||||
if (this.m_LogLocalChanges)
|
if (this.m_LogLocalChanges)
|
||||||
this.m_Islands[i].addPopulationChangedEventListener(myLocal);
|
this.m_Islands[i].addPopulationChangedEventListener(myLocal);
|
||||||
@ -178,7 +178,7 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I
|
|||||||
this.m_Islands = new InterfaceOptimizer[this.m_numLocalCPUs];
|
this.m_Islands = new InterfaceOptimizer[this.m_numLocalCPUs];
|
||||||
for (int i = 0; i < this.m_numLocalCPUs; i++) {
|
for (int i = 0; i < this.m_numLocalCPUs; i++) {
|
||||||
this.m_Islands[i] = (InterfaceOptimizer) this.m_Optimizer.clone();
|
this.m_Islands[i] = (InterfaceOptimizer) this.m_Optimizer.clone();
|
||||||
this.m_Islands[i].SetIdentifier(""+i);
|
this.m_Islands[i].setIdentifier(""+i);
|
||||||
this.m_Islands[i].init();
|
this.m_Islands[i].init();
|
||||||
if (this.m_LogLocalChanges)
|
if (this.m_LogLocalChanges)
|
||||||
this.m_Islands[i].addPopulationChangedEventListener(this);
|
this.m_Islands[i].addPopulationChangedEventListener(this);
|
||||||
@ -196,7 +196,7 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I
|
|||||||
this.m_Islands = new InterfaceOptimizer[nodesList.length];
|
this.m_Islands = new InterfaceOptimizer[nodesList.length];
|
||||||
for (int i = 0; i < nodesList.length; i++) {
|
for (int i = 0; i < nodesList.length; i++) {
|
||||||
this.m_Islands[i] = (InterfaceOptimizer) RMIProxyRemoteThread.newInstance(this.m_Optimizer, nodesList[i]);
|
this.m_Islands[i] = (InterfaceOptimizer) RMIProxyRemoteThread.newInstance(this.m_Optimizer, nodesList[i]);
|
||||||
this.m_Islands[i].SetIdentifier(""+i);
|
this.m_Islands[i].setIdentifier(""+i);
|
||||||
this.m_Islands[i].init();
|
this.m_Islands[i].init();
|
||||||
if (this.m_LogLocalChanges)
|
if (this.m_LogLocalChanges)
|
||||||
this.m_Islands[i].addPopulationChangedEventListener(myLocal);
|
this.m_Islands[i].addPopulationChangedEventListener(myLocal);
|
||||||
@ -390,7 +390,7 @@ public class IslandModelEA implements InterfacePopulationChangedEventListener, I
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -23,375 +23,374 @@ import eva2.server.go.problems.InterfaceOptimizationProblem;
|
|||||||
import eva2.tools.Pair;
|
import eva2.tools.Pair;
|
||||||
import eva2.tools.math.SpecialFunction;
|
import eva2.tools.math.SpecialFunction;
|
||||||
|
|
||||||
public class LTGA implements InterfaceOptimizer, java.io.Serializable, InterfacePopulationChangedEventListener{
|
public class LTGA implements InterfaceOptimizer, java.io.Serializable, InterfacePopulationChangedEventListener {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(BOA.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(LTGA.class.getName());
|
||||||
transient private InterfacePopulationChangedEventListener m_Listener = null;
|
transient private InterfacePopulationChangedEventListener m_Listener = null;
|
||||||
private String m_Identifier = "LTGA";
|
private String m_Identifier = "LTGA";
|
||||||
|
private int probDim = 8;
|
||||||
|
private int fitCrit = -1;
|
||||||
|
private int popSize = 50;
|
||||||
|
private Population population = new Population();
|
||||||
|
private AbstractOptimizationProblem problem = new BKnapsackProblem();
|
||||||
|
private AbstractEAIndividual template = null;
|
||||||
|
private int generationCycle = 500;
|
||||||
|
|
||||||
private int probDim = 8;
|
public LTGA() {
|
||||||
private int fitCrit = -1;
|
}
|
||||||
private int popSize = 50;
|
|
||||||
private Population population = new Population();
|
|
||||||
private AbstractOptimizationProblem problem = new BKnapsackProblem();
|
|
||||||
private AbstractEAIndividual template = null;
|
|
||||||
private int generationCycle = 500;
|
|
||||||
|
|
||||||
public LTGA(){
|
public LTGA(LTGA l) {
|
||||||
}
|
this.m_Listener = l.m_Listener;
|
||||||
|
this.m_Identifier = l.m_Identifier;
|
||||||
public LTGA(LTGA l){
|
this.probDim = l.probDim;
|
||||||
this.m_Listener = l.m_Listener;
|
this.popSize = l.popSize;
|
||||||
this.m_Identifier = l.m_Identifier;
|
this.population = (Population) l.population.clone();
|
||||||
this.probDim = l.probDim;
|
this.problem = (AbstractOptimizationProblem) l.problem.clone();
|
||||||
this.popSize = l.popSize;
|
|
||||||
this.population = (Population)l.population.clone();
|
|
||||||
this.problem = (AbstractOptimizationProblem)l.problem.clone();
|
|
||||||
this.template = (AbstractEAIndividual) template.clone();
|
this.template = (AbstractEAIndividual) template.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object clone() {
|
@Override
|
||||||
return new LTGA(this);
|
public Object clone() {
|
||||||
}
|
return new LTGA(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "Linkage Tree Genetic Algorithm";
|
return "Linkage Tree Genetic Algorithm";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String globalInfo() {
|
public static String globalInfo() {
|
||||||
return "Basic implementation of the Linkage Tree Genetic Algorithm based on the works by Dirk Thierens.";
|
return "Basic implementation of the Linkage Tree Genetic Algorithm based on the works by Dirk Thierens.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addPopulationChangedEventListener(
|
public void addPopulationChangedEventListener(
|
||||||
InterfacePopulationChangedEventListener ea) {
|
InterfacePopulationChangedEventListener ea) {
|
||||||
this.m_Listener = ea;
|
this.m_Listener = ea;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean removePopulationChangedEventListener(
|
public boolean removePopulationChangedEventListener(
|
||||||
InterfacePopulationChangedEventListener ea) {
|
InterfacePopulationChangedEventListener ea) {
|
||||||
if (m_Listener == ea) {
|
if (m_Listener == ea) {
|
||||||
m_Listener = null;
|
m_Listener = null;
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void defaultInit(){
|
private void defaultInit() {
|
||||||
if (population == null) {
|
if (population == null) {
|
||||||
this.population = new Population(this.popSize);
|
this.population = new Population(this.popSize);
|
||||||
} else {
|
} else {
|
||||||
this.population.setTargetPopSize(this.popSize);
|
this.population.setTargetPopSize(this.popSize);
|
||||||
}
|
}
|
||||||
this.template = this.problem.getIndividualTemplate();
|
this.template = this.problem.getIndividualTemplate();
|
||||||
if (!(template instanceof InterfaceDataTypeBinary)) {
|
if (!(template instanceof InterfaceDataTypeBinary)) {
|
||||||
LOGGER.log(Level.WARNING, "Requiring binary data!");
|
LOGGER.log(Level.WARNING, "Requiring binary data!");
|
||||||
} else {
|
} else {
|
||||||
Object dim = BeanInspector.callIfAvailable(problem,
|
Object dim = BeanInspector.callIfAvailable(problem,
|
||||||
"getProblemDimension", null);
|
"getProblemDimension", null);
|
||||||
if (dim == null)
|
if (dim == null) {
|
||||||
LOGGER.log(Level.WARNING, "Coudn't get problem dimension!");
|
LOGGER.log(Level.WARNING, "Couldn't get problem dimension!");
|
||||||
probDim = (Integer) dim;
|
}
|
||||||
((InterfaceDataTypeBinary) this.template).SetBinaryGenotype(new BitSet(probDim));
|
probDim = (Integer) dim;
|
||||||
}
|
((InterfaceDataTypeBinary) this.template).SetBinaryGenotype(new BitSet(probDim));
|
||||||
this.population.addPopulationChangedEventListener(this);
|
}
|
||||||
this.population.setNotifyEvalInterval(this.generationCycle);
|
this.population.addPopulationChangedEventListener(this);
|
||||||
}
|
this.population.setNotifyEvalInterval(this.generationCycle);
|
||||||
|
}
|
||||||
|
|
||||||
private static BitSet getBinaryData(AbstractEAIndividual indy) {
|
private static BitSet getBinaryData(AbstractEAIndividual indy) {
|
||||||
if (indy instanceof InterfaceGAIndividual)
|
if (indy instanceof InterfaceGAIndividual) {
|
||||||
return ((InterfaceGAIndividual) indy).getBGenotype();
|
return ((InterfaceGAIndividual) indy).getBGenotype();
|
||||||
else if (indy instanceof InterfaceDataTypeBinary)
|
} else if (indy instanceof InterfaceDataTypeBinary) {
|
||||||
return ((InterfaceDataTypeBinary) indy).getBinaryData();
|
return ((InterfaceDataTypeBinary) indy).getBinaryData();
|
||||||
else {
|
} else {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Unable to get binary representation for "
|
"Unable to get binary representation for "
|
||||||
+ indy.getClass());
|
+ indy.getClass());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
defaultInit();
|
defaultInit();
|
||||||
this.problem.initPopulation(this.population);
|
this.problem.initPopulation(this.population);
|
||||||
this.evaluatePopulation(this.population);
|
this.evaluatePopulation(this.population);
|
||||||
this.firePropertyChangedEvent(Population.nextGenerationPerformed);
|
this.firePropertyChangedEvent(Population.nextGenerationPerformed);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void evaluatePopulation(Population pop) {
|
private void evaluatePopulation(Population pop) {
|
||||||
for (int i = 0; i < pop.size(); i++) {
|
for (int i = 0; i < pop.size(); i++) {
|
||||||
evaluate(pop.getEAIndividual(i));
|
evaluate(pop.getEAIndividual(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* evaluate the given Individual and increments the counter. if the
|
* evaluate the given Individual and increments the counter. if the
|
||||||
* individual is null, only the counter is incremented
|
* individual is null, only the counter is incremented
|
||||||
*
|
*
|
||||||
* @param indy
|
* @param indy the individual you want to evaluate
|
||||||
* the individual you want to evaluate
|
*/
|
||||||
*/
|
private void evaluate(AbstractEAIndividual indy) {
|
||||||
private void evaluate(AbstractEAIndividual indy) {
|
// evaluate the given individual if it is not null
|
||||||
// evaluate the given individual if it is not null
|
if (indy == null) {
|
||||||
if (indy == null) {
|
LOGGER.log(Level.WARNING, "tried to evaluate null");
|
||||||
LOGGER.log(Level.WARNING, "tried to evaluate null");
|
return;
|
||||||
return;
|
}
|
||||||
}
|
this.problem.evaluate(indy);
|
||||||
this.problem.evaluate(indy);
|
// increment the number of evaluations
|
||||||
// increment the number of evaluations
|
this.population.incrFunctionCalls();
|
||||||
this.population.incrFunctionCalls();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initByPopulation(Population pop, boolean reset) {
|
public void initByPopulation(Population pop, boolean reset) {
|
||||||
if (reset) {
|
if (reset) {
|
||||||
init();
|
init();
|
||||||
} else {
|
} else {
|
||||||
defaultInit();
|
defaultInit();
|
||||||
this.population = pop;
|
this.population = pop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Stack<Set<Integer>> buildLinkageTree(){
|
private Stack<Set<Integer>> buildLinkageTree() {
|
||||||
// the final tree
|
// the final tree
|
||||||
Stack<Set<Integer>> linkageTree = new Stack<Set<Integer>>();
|
Stack<Set<Integer>> linkageTree = new Stack<Set<Integer>>();
|
||||||
// the stack to cluster here clusters can be removed
|
// the stack to cluster here clusters can be removed
|
||||||
Stack<Set<Integer>> workingStack = new Stack<Set<Integer>>();
|
Stack<Set<Integer>> workingStack = new Stack<Set<Integer>>();
|
||||||
// add the problem variables to the stacks
|
// add the problem variables to the stacks
|
||||||
for(int i=0; i<this.probDim; i++){
|
for (int i = 0; i < this.probDim; i++) {
|
||||||
Set<Integer> s1 = new HashSet<Integer>();
|
Set<Integer> s1 = new HashSet<Integer>();
|
||||||
Set<Integer> s2 = new HashSet<Integer>();
|
Set<Integer> s2 = new HashSet<Integer>();
|
||||||
s1.add(i);
|
s1.add(i);
|
||||||
s2.add(i);
|
s2.add(i);
|
||||||
linkageTree.add(s1);
|
linkageTree.add(s1);
|
||||||
workingStack.add(s2);
|
workingStack.add(s2);
|
||||||
}
|
}
|
||||||
// double[] probMass = calculateProbabilityMassFunction();
|
// double[] probMass = calculateProbabilityMassFunction();
|
||||||
// until there is only one cluster left
|
// until there is only one cluster left
|
||||||
while(workingStack.size()>1){
|
while (workingStack.size() > 1) {
|
||||||
Pair<Set<Integer>, Set<Integer>> toCluster = findNearestClusters(workingStack);
|
Pair<Set<Integer>, Set<Integer>> toCluster = findNearestClusters(workingStack);
|
||||||
// remove the second cluster from the working set
|
// remove the second cluster from the working set
|
||||||
workingStack.remove(toCluster.tail);
|
workingStack.remove(toCluster.tail);
|
||||||
// add all elements from the second cluster to the first one
|
// add all elements from the second cluster to the first one
|
||||||
toCluster.head.addAll(toCluster.tail);
|
toCluster.head.addAll(toCluster.tail);
|
||||||
// add the combined cluster to the linkage tree
|
// add the combined cluster to the linkage tree
|
||||||
linkageTree.add(toCluster.head);
|
linkageTree.add(toCluster.head);
|
||||||
}
|
}
|
||||||
return linkageTree;
|
return linkageTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Pair<Set<Integer>, Set<Integer>> findNearestClusters(Stack<Set<Integer>> stack) {
|
private Pair<Set<Integer>, Set<Integer>> findNearestClusters(Stack<Set<Integer>> stack) {
|
||||||
Set<Integer> bestI = new HashSet<Integer>();
|
Set<Integer> bestI = new HashSet<Integer>();
|
||||||
Set<Integer> bestJ = new HashSet<Integer>();
|
Set<Integer> bestJ = new HashSet<Integer>();
|
||||||
double bestScore = Double.MAX_VALUE;
|
double bestScore = Double.MAX_VALUE;
|
||||||
for(int i=0; i<stack.size(); i++){
|
for (int i = 0; i < stack.size(); i++) {
|
||||||
Set<Integer> s1 = stack.get(i);
|
Set<Integer> s1 = stack.get(i);
|
||||||
for(int j=i+1; j<stack.size(); j++){
|
for (int j = i + 1; j < stack.size(); j++) {
|
||||||
Set<Integer> s2 = stack.get(j);
|
Set<Integer> s2 = stack.get(j);
|
||||||
double currDist = calculateDistance(s1, s2);
|
double currDist = calculateDistance(s1, s2);
|
||||||
// better cluster found
|
// better cluster found
|
||||||
if(currDist < bestScore){
|
if (currDist < bestScore) {
|
||||||
bestI = s1;
|
bestI = s1;
|
||||||
bestJ = s2;
|
bestJ = s2;
|
||||||
bestScore = currDist;
|
bestScore = currDist;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// return the best pair
|
// return the best pair
|
||||||
return new Pair<Set<Integer>, Set<Integer>>(bestI, bestJ);
|
return new Pair<Set<Integer>, Set<Integer>>(bestI, bestJ);
|
||||||
}
|
}
|
||||||
|
|
||||||
private double calculateDistance(Set<Integer> s1, Set<Integer> s2) {
|
private double calculateDistance(Set<Integer> s1, Set<Integer> s2) {
|
||||||
double entropy1 = calculateEntropy(s1);
|
double entropy1 = calculateEntropy(s1);
|
||||||
double entropy2 = calculateEntropy(s2);
|
double entropy2 = calculateEntropy(s2);
|
||||||
Set<Integer> combined = new HashSet<Integer>();
|
Set<Integer> combined = new HashSet<Integer>();
|
||||||
combined.addAll(s1);
|
combined.addAll(s1);
|
||||||
combined.addAll(s2);
|
combined.addAll(s2);
|
||||||
double entropy3 = calculateEntropy(combined);
|
double entropy3 = calculateEntropy(combined);
|
||||||
return 2 - ((entropy1 + entropy2) / (entropy3));
|
return 2 - ((entropy1 + entropy2) / (entropy3));
|
||||||
}
|
}
|
||||||
|
|
||||||
private double calculateEntropy(Set<Integer> s){
|
private double calculateEntropy(Set<Integer> s) {
|
||||||
double entropy = 0.0;
|
double entropy = 0.0;
|
||||||
// for possible states {0,1} do
|
// for possible states {0,1} do
|
||||||
for(int i=0; i<=1; i++){
|
for (int i = 0; i <= 1; i++) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
// for every individual
|
// for every individual
|
||||||
for(int k=0; k<this.popSize; k++){
|
for (int k = 0; k < this.popSize; k++) {
|
||||||
BitSet b = getBinaryData(this.population.getEAIndividual(k));
|
BitSet b = getBinaryData(this.population.getEAIndividual(k));
|
||||||
boolean addCount = true;
|
boolean addCount = true;
|
||||||
// for every specified Bit
|
// for every specified Bit
|
||||||
for(Integer value: s){
|
for (Integer value : s) {
|
||||||
// is the bit not set correctly
|
// is the bit not set correctly
|
||||||
if(b.get(value) != (i==1)){
|
if (b.get(value) != (i == 1)) {
|
||||||
addCount = false;
|
addCount = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(addCount){
|
if (addCount) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
addCount = true;
|
addCount = true;
|
||||||
}
|
}
|
||||||
entropy += ((double)count) * SpecialFunction.logb((double)count, 2.0);
|
entropy += ((double) count) * SpecialFunction.logb((double) count, 2.0);
|
||||||
count = 0;
|
count = 0;
|
||||||
}
|
}
|
||||||
return entropy;
|
return entropy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void optimize() {
|
public void optimize() {
|
||||||
this.problem.evaluatePopulationStart(this.population);
|
this.problem.evaluatePopulationStart(this.population);
|
||||||
Stack<Set<Integer>> linkageTree = buildLinkageTree();
|
Stack<Set<Integer>> linkageTree = buildLinkageTree();
|
||||||
Population newPop = new Population(this.popSize);
|
Population newPop = new Population(this.popSize);
|
||||||
for(int i=0; i<(this.popSize/2); i++){
|
for (int i = 0; i < (this.popSize / 2); i++) {
|
||||||
Population indies = this.population.getRandNIndividuals(2);
|
Population indies = this.population.getRandNIndividuals(2);
|
||||||
Population newIndies = buildNewIndies(indies, linkageTree);
|
Population newIndies = buildNewIndies(indies, linkageTree);
|
||||||
newPop.addAll(newIndies);
|
newPop.addAll(newIndies);
|
||||||
}
|
}
|
||||||
this.population.clear();
|
this.population.clear();
|
||||||
this.population.addAll(newPop);
|
this.population.addAll(newPop);
|
||||||
this.problem.evaluatePopulationEnd(this.population);
|
this.problem.evaluatePopulationEnd(this.population);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Population buildNewIndies(Population indies,
|
private Population buildNewIndies(Population indies,
|
||||||
Stack<Set<Integer>> linkageTree) {
|
Stack<Set<Integer>> linkageTree) {
|
||||||
if(indies.size() != 2){
|
if (indies.size() != 2) {
|
||||||
return indies;
|
return indies;
|
||||||
}
|
}
|
||||||
AbstractEAIndividual indy1 = indies.getEAIndividual(0);
|
AbstractEAIndividual indy1 = indies.getEAIndividual(0);
|
||||||
AbstractEAIndividual indy2 = indies.getEAIndividual(1);
|
AbstractEAIndividual indy2 = indies.getEAIndividual(1);
|
||||||
BitSet gen1 = getBinaryData(indy1);
|
BitSet gen1 = getBinaryData(indy1);
|
||||||
BitSet gen2 = getBinaryData(indy2);
|
BitSet gen2 = getBinaryData(indy2);
|
||||||
for(Set<Integer> mask: linkageTree){
|
for (Set<Integer> mask : linkageTree) {
|
||||||
BitSet newGene1 = (BitSet) gen1.clone();
|
BitSet newGene1 = (BitSet) gen1.clone();
|
||||||
BitSet newGene2 = (BitSet) gen2.clone();
|
BitSet newGene2 = (BitSet) gen2.clone();
|
||||||
boolean same = true;
|
boolean same = true;
|
||||||
for(Integer exchange: mask){
|
for (Integer exchange : mask) {
|
||||||
if(newGene1.get(exchange) != newGene2.get(exchange)){
|
if (newGene1.get(exchange) != newGene2.get(exchange)) {
|
||||||
same = false;
|
same = false;
|
||||||
}
|
}
|
||||||
newGene1.set(exchange, gen2.get(exchange));
|
newGene1.set(exchange, gen2.get(exchange));
|
||||||
newGene2.set(exchange, gen1.get(exchange));
|
newGene2.set(exchange, gen1.get(exchange));
|
||||||
}
|
}
|
||||||
if(!same){
|
if (!same) {
|
||||||
AbstractEAIndividual newIndy1 = (AbstractEAIndividual) this.template.clone();
|
AbstractEAIndividual newIndy1 = (AbstractEAIndividual) this.template.clone();
|
||||||
AbstractEAIndividual newIndy2 = (AbstractEAIndividual) this.template.clone();
|
AbstractEAIndividual newIndy2 = (AbstractEAIndividual) this.template.clone();
|
||||||
((InterfaceDataTypeBinary) newIndy1).SetBinaryGenotype(newGene1);
|
((InterfaceDataTypeBinary) newIndy1).SetBinaryGenotype(newGene1);
|
||||||
((InterfaceDataTypeBinary) newIndy2).SetBinaryGenotype(newGene2);
|
((InterfaceDataTypeBinary) newIndy2).SetBinaryGenotype(newGene2);
|
||||||
evaluate(newIndy1);
|
evaluate(newIndy1);
|
||||||
evaluate(newIndy2);
|
evaluate(newIndy2);
|
||||||
if(Math.min(newIndy1.getFitness(0), newIndy2.getFitness(0)) < Math.min(indy1.getFitness(0), indy2.getFitness(0))){
|
if (Math.min(newIndy1.getFitness(0), newIndy2.getFitness(0)) < Math.min(indy1.getFitness(0), indy2.getFitness(0))) {
|
||||||
indy1 = newIndy1;
|
indy1 = newIndy1;
|
||||||
indy2 = newIndy2;
|
indy2 = newIndy2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Population result = new Population(2);
|
Population result = new Population(2);
|
||||||
result.add(indy1);
|
result.add(indy1);
|
||||||
result.add(indy2);
|
result.add(indy2);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Something has changed
|
* Something has changed
|
||||||
*/
|
*/
|
||||||
protected void firePropertyChangedEvent(String name) {
|
protected void firePropertyChangedEvent(String name) {
|
||||||
if (this.m_Listener != null)
|
if (this.m_Listener != null) {
|
||||||
this.m_Listener.registerPopulationStateChanged(this, name);
|
this.m_Listener.registerPopulationStateChanged(this, name);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Population getPopulation() {
|
public Population getPopulation() {
|
||||||
return this.population;
|
return this.population;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPopulation(Population pop) {
|
public void setPopulation(Population pop) {
|
||||||
this.population = pop;
|
this.population = pop;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InterfaceSolutionSet getAllSolutions() {
|
public InterfaceSolutionSet getAllSolutions() {
|
||||||
return new SolutionSet(this.population);
|
return new SolutionSet(this.population);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
return this.m_Identifier;
|
return this.m_Identifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void SetProblem(InterfaceOptimizationProblem problem) {
|
public void SetProblem(InterfaceOptimizationProblem problem) {
|
||||||
this.problem = (AbstractOptimizationProblem) problem;
|
this.problem = (AbstractOptimizationProblem) problem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InterfaceOptimizationProblem getProblem() {
|
public InterfaceOptimizationProblem getProblem() {
|
||||||
return this.problem;
|
return this.problem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStringRepresentation() {
|
public String getStringRepresentation() {
|
||||||
return "Linkage Tree GA";
|
return "Linkage Tree GA";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void freeWilly() {
|
public void freeWilly() {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public void registerPopulationStateChanged(Object source, String name) {
|
||||||
@SuppressWarnings("deprecation")
|
// The events of the interim hill climbing population will be caught here
|
||||||
@Override
|
if (name.compareTo(Population.funCallIntervalReached) == 0) {
|
||||||
public void registerPopulationStateChanged(Object source, String name) {
|
// set funcalls to real value
|
||||||
// The events of the interim hill climbing population will be caught here
|
this.population.setFunctionCalls(((Population) source).getFunctionCalls());
|
||||||
if (name.compareTo(Population.funCallIntervalReached) == 0) {
|
this.firePropertyChangedEvent(Population.nextGenerationPerformed);
|
||||||
// set funcalls to real value
|
}
|
||||||
this.population.SetFunctionCalls(((Population)source).getFunctionCalls());
|
}
|
||||||
this.firePropertyChangedEvent(Population.nextGenerationPerformed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
LTGA ltga = new LTGA();
|
|
||||||
ltga.init();
|
|
||||||
ltga.optimize();
|
|
||||||
System.out.println(ltga.popSize);
|
|
||||||
Population p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
ltga.optimize();
|
|
||||||
p = ltga.getPopulation();
|
|
||||||
System.out.println(p.getFunctionCalls()+"\t"+p.size());
|
|
||||||
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
LTGA ltga = new LTGA();
|
||||||
|
ltga.init();
|
||||||
|
ltga.optimize();
|
||||||
|
System.out.println(ltga.popSize);
|
||||||
|
Population p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
ltga.optimize();
|
||||||
|
p = ltga.getPopulation();
|
||||||
|
System.out.println(p.getFunctionCalls() + "\t" + p.size());
|
||||||
|
System.out.println(p.getBestEAIndividual().getStringRepresentation());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ public class MemeticAlgorithm implements InterfaceOptimizer,
|
|||||||
* @param name
|
* @param name
|
||||||
* The indenifier
|
* The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ public class MonteCarloSearch implements InterfaceOptimizer, java.io.Serializabl
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -74,10 +74,10 @@ public class MultiObjectiveCMAES implements InterfaceOptimizer, Serializable {
|
|||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see
|
* @see
|
||||||
* eva2.server.go.strategies.InterfaceOptimizer#SetIdentifier(java.lang.
|
* eva2.server.go.strategies.InterfaceOptimizer#setIdentifier(java.lang.
|
||||||
* String)
|
* String)
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
m_Identifier = name;
|
m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ public class MultiObjectiveEA implements InterfaceOptimizer, java.io.Serializabl
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -58,7 +58,7 @@ public class NelderMeadSimplex implements InterfaceOptimizer, Serializable, Inte
|
|||||||
return new NelderMeadSimplex(this);
|
return new NelderMeadSimplex(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
m_Identifier = name;
|
m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1234,7 +1234,7 @@ public class NichePSO implements InterfaceAdditionalPopulationInformer, Interfac
|
|||||||
* This method allows you to set an identifier for the algorithm
|
* This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ public class ParticleFilterOptimization implements InterfaceOptimizer, java.io.S
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -1712,7 +1712,7 @@ public class ParticleSwarmOptimization implements InterfaceOptimizer, java.io.Se
|
|||||||
*
|
*
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ public class PopulationBasedIncrementalLearning implements InterfaceOptimizer, j
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -664,7 +664,7 @@ public class ScatterSearch implements InterfaceOptimizer, java.io.Serializable,
|
|||||||
|
|
||||||
///////////// Trivials...
|
///////////// Trivials...
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
m_Identifier = name;
|
m_Identifier = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ public class SimulatedAnnealing implements InterfaceOptimizer, java.io.Serializa
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -152,7 +152,7 @@ public class SteadyStateGA implements InterfaceOptimizer, java.io.Serializable {
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -192,7 +192,7 @@ public class ThresholdAlgorithm implements InterfaceOptimizer, java.io.Serializa
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -715,7 +715,7 @@ public class Tribes implements InterfaceOptimizer, java.io.Serializable {
|
|||||||
|
|
||||||
public void freeWilly() {}
|
public void freeWilly() {}
|
||||||
|
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
@ -246,7 +246,7 @@ public class WingedMultiObjectiveEA implements InterfaceOptimizer, java.io.Seria
|
|||||||
/** This method allows you to set an identifier for the algorithm
|
/** This method allows you to set an identifier for the algorithm
|
||||||
* @param name The indenifier
|
* @param name The indenifier
|
||||||
*/
|
*/
|
||||||
public void SetIdentifier(String name) {
|
public void setIdentifier(String name) {
|
||||||
this.m_Identifier = name;
|
this.m_Identifier = name;
|
||||||
}
|
}
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user