Make Population a typed ArrayList
This commit is contained in:
parent
1dedb13dc9
commit
d778dc6e24
@ -152,14 +152,14 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme
|
||||
numTmp = (AbstractEAIndividual) this.getNumbers();
|
||||
numPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
numPop.add(((GAESIndividualBinaryDoubleData) partners.get(i)).getNumbers());
|
||||
numPop.add((AbstractEAIndividual) ((GAESIndividualBinaryDoubleData) partners.get(i)).getNumbers());
|
||||
}
|
||||
resNum = numTmp.mateWith(numPop);
|
||||
|
||||
binTmp = (AbstractEAIndividual) this.getBitSet();
|
||||
binPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
binPop.add(((GAESIndividualBinaryDoubleData) partners.get(i)).getBitSet());
|
||||
binPop.add((AbstractEAIndividual) ((GAESIndividualBinaryDoubleData) partners.get(i)).getBitSet());
|
||||
}
|
||||
resBin = binTmp.mateWith(binPop);
|
||||
|
||||
@ -185,7 +185,7 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme
|
||||
result = new AbstractEAIndividual[partners.size() + 1];
|
||||
result[0] = (AbstractEAIndividual) this.clone();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
result[i + 1] = (AbstractEAIndividual) ((AbstractEAIndividual) partners.get(i)).clone();
|
||||
result[i + 1] = (AbstractEAIndividual) (partners.get(i)).clone();
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
|
@ -144,14 +144,14 @@ public class GAPIndividualProgramData extends AbstractEAIndividual implements In
|
||||
numTmp = (AbstractEAIndividual) this.getNumbers();
|
||||
numPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
numPop.add(((GAPIndividualProgramData) partners.get(i)).getNumbers());
|
||||
numPop.add((AbstractEAIndividual) ((GAPIndividualProgramData) partners.get(i)).getNumbers());
|
||||
}
|
||||
resNum = numTmp.mateWith(numPop);
|
||||
|
||||
binTmp = (AbstractEAIndividual) this.getProgramRepresentation();
|
||||
binPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
binPop.add(((GAPIndividualProgramData) partners.get(i)).getProgramRepresentation());
|
||||
binPop.add((AbstractEAIndividual) ((GAPIndividualProgramData) partners.get(i)).getProgramRepresentation());
|
||||
}
|
||||
resBin = binTmp.mateWith(binPop);
|
||||
|
||||
@ -166,7 +166,7 @@ public class GAPIndividualProgramData extends AbstractEAIndividual implements In
|
||||
result = new AbstractEAIndividual[partners.size() + 1];
|
||||
result[0] = (AbstractEAIndividual) this.clone();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
result[i + 1] = (AbstractEAIndividual) ((AbstractEAIndividual) partners.get(i)).clone();
|
||||
result[i + 1] = (AbstractEAIndividual) (partners.get(i)).clone();
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
|
@ -148,14 +148,14 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual
|
||||
numTmp = (AbstractEAIndividual) this.getIntegers();
|
||||
numPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
numPop.add(((GIOBGAIndividualIntegerPermutationData) partners.get(i)).getIntegers());
|
||||
numPop.add((AbstractEAIndividual) ((GIOBGAIndividualIntegerPermutationData) partners.get(i)).getIntegers());
|
||||
}
|
||||
resNum = numTmp.mateWith(numPop);
|
||||
|
||||
binTmp = (AbstractEAIndividual) this.getPermutations();
|
||||
binPop = new Population();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
binPop.add(((GIOBGAIndividualIntegerPermutationData) partners.get(i)).getPermutations());
|
||||
binPop.add((AbstractEAIndividual) ((GIOBGAIndividualIntegerPermutationData) partners.get(i)).getPermutations());
|
||||
}
|
||||
resBin = binTmp.mateWith(binPop);
|
||||
|
||||
@ -170,7 +170,7 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual
|
||||
result = new AbstractEAIndividual[partners.size() + 1];
|
||||
result[0] = (AbstractEAIndividual) this.clone();
|
||||
for (int i = 0; i < partners.size(); i++) {
|
||||
result[i + 1] = (AbstractEAIndividual) ((AbstractEAIndividual) partners.get(i)).clone();
|
||||
result[i + 1] = (AbstractEAIndividual) (partners.get(i)).clone();
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
|
@ -67,7 +67,7 @@ public class SOBestMigration implements InterfaceMigration, java.io.Serializable
|
||||
newIPOP[i].removeNIndividuals(comSet.length * this.n);
|
||||
for (int j = 0; j < comSet.length; j++) {
|
||||
selected = this.selection.selectFrom(comSet[j], this.n);
|
||||
newIPOP[i].add(((AbstractEAIndividual) selected.get(0)).clone());
|
||||
newIPOP[i].add((AbstractEAIndividual) (selected.get(0)).clone());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -668,7 +668,7 @@ public class PostProcess {
|
||||
|
||||
prob.evaluate(subPop);
|
||||
stepsPerf += subPop.size();
|
||||
subPop.add(candidates.getEAIndividual(i).clone());
|
||||
subPop.add((AbstractEAIndividual) candidates.getEAIndividual(i).clone());
|
||||
nmPops.add(subPop);
|
||||
}
|
||||
|
||||
|
@ -57,11 +57,11 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
|
||||
Population result = new Population();
|
||||
int currentCriteria = 0, critSize;
|
||||
|
||||
critSize = ((AbstractEAIndividual) population.get(0)).getFitness().length;
|
||||
critSize = (population.get(0)).getFitness().length;
|
||||
|
||||
ArrayList[] bestIndividuals = new ArrayList[critSize];
|
||||
ArrayList<AbstractEAIndividual>[] bestIndividuals = new ArrayList[critSize];
|
||||
for (int i = 0; i < critSize; i++) {
|
||||
bestIndividuals[i] = new ArrayList();
|
||||
bestIndividuals[i] = new ArrayList<>();
|
||||
// select the best individuals regarding crit i
|
||||
for (int j = 0; j < size; j++) {
|
||||
bestIndividuals[i].add(this.getBestIndividualExcept(population, bestIndividuals[i], i));
|
||||
@ -87,7 +87,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
|
||||
* @param crit The criterion
|
||||
* @return Object the individual
|
||||
*/
|
||||
private Object getBestIndividualExcept(Population pop, ArrayList tabu, int crit) {
|
||||
private AbstractEAIndividual getBestIndividualExcept(Population pop, ArrayList tabu, int crit) {
|
||||
int index = -1;
|
||||
double bestProb = Double.POSITIVE_INFINITY;
|
||||
boolean member;
|
||||
@ -95,7 +95,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
|
||||
|
||||
if (this.obeyDebsConstViolationPrinciple) {
|
||||
for (int i = 0; i < pop.size(); i++) {
|
||||
indy = (AbstractEAIndividual) pop.get(i);
|
||||
indy = pop.get(i);
|
||||
// check if indy is tabu
|
||||
member = false;
|
||||
for (int j = 0; j < tabu.size(); j++) {
|
||||
@ -115,7 +115,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
|
||||
// darn all individuals seem to violate the constraints
|
||||
// so lets select the guy with the least worst constraint violation
|
||||
for (int i = 0; i < pop.size(); i++) {
|
||||
indy = (AbstractEAIndividual) pop.get(i);
|
||||
indy = pop.get(i);
|
||||
// check if indy is tabu
|
||||
member = false;
|
||||
for (int j = 0; j < tabu.size(); j++) {
|
||||
@ -137,7 +137,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < pop.size(); i++) {
|
||||
indy = (AbstractEAIndividual) pop.get(i);
|
||||
indy = pop.get(i);
|
||||
// check if indy is tabu
|
||||
member = false;
|
||||
for (int j = 0; j < tabu.size(); j++) {
|
||||
|
@ -100,9 +100,9 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ
|
||||
Population result = new Population();
|
||||
int currentCriteria = 0, critSize;
|
||||
|
||||
critSize = ((AbstractEAIndividual) population.get(0)).getFitness().length;
|
||||
critSize = (population.get(0)).getFitness().length;
|
||||
|
||||
ArrayList[] bestIndividuals = new ArrayList[critSize];
|
||||
ArrayList<AbstractEAIndividual>[] bestIndividuals = new ArrayList[critSize];
|
||||
for (int i = 0; i < critSize; i++) {
|
||||
bestIndividuals[i] = new ArrayList();
|
||||
// select the best individuals regarding crit i
|
||||
@ -130,14 +130,14 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ
|
||||
* @param crit The criterion
|
||||
* @return Object the individual
|
||||
*/
|
||||
private Object getBestIndividualExcept(Population pop, ArrayList tabu, int crit) {
|
||||
private AbstractEAIndividual getBestIndividualExcept(Population pop, ArrayList tabu, int crit) {
|
||||
int index = -1;
|
||||
int mostVictories = -1;
|
||||
boolean member;
|
||||
AbstractEAIndividual indy;
|
||||
|
||||
for (int i = 0; i < pop.size(); i++) {
|
||||
indy = (AbstractEAIndividual) pop.get(i);
|
||||
indy = pop.get(i);
|
||||
// check if indy is tabu
|
||||
member = false;
|
||||
for (int j = 0; j < tabu.size(); j++) {
|
||||
|
@ -108,7 +108,7 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ
|
||||
selIndex++;
|
||||
sum += ((AbstractEAIndividual) population.getIndividual(selIndex)).getSelectionProbability(0);
|
||||
}
|
||||
result.add(((AbstractEAIndividual) population.get(selIndex)).clone());
|
||||
result.add((AbstractEAIndividual) (population.get(selIndex)).clone());
|
||||
((AbstractEAIndividual) result.getIndividual(i)).setAge(0);
|
||||
}
|
||||
}
|
||||
@ -126,7 +126,7 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ
|
||||
selIndex++;
|
||||
selFitSum += ((AbstractEAIndividual) population.getIndividual(selIndex)).getSelectionProbability(0);
|
||||
}
|
||||
result.add(((AbstractEAIndividual) population.get(selIndex)).clone());
|
||||
result.add((AbstractEAIndividual) (population.get(selIndex)).clone());
|
||||
((AbstractEAIndividual) result.getIndividual(i)).setAge(0);
|
||||
selPoint += segment;
|
||||
}
|
||||
@ -145,9 +145,6 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ
|
||||
return this.selectFrom(availablePartners, size);
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* These are for GUI
|
||||
*/
|
||||
/**
|
||||
* This method allows the CommonJavaObjectEditorPanel to read the
|
||||
* name to the current object.
|
||||
|
@ -94,7 +94,7 @@ public class PBILPopulation extends Population implements Cloneable, java.io.Ser
|
||||
}
|
||||
}
|
||||
tmpIndy.setBGenotype(tmpBitSet);
|
||||
super.add(tmpIndy);
|
||||
super.add((AbstractEAIndividual) tmpIndy);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ import java.util.logging.Logger;
|
||||
* random latin hypercube implementation for InterfaceDataTypeDouble individuals.
|
||||
*/
|
||||
@Description("A population stores the individuals of a generation.")
|
||||
public class Population extends ArrayList implements PopulationInterface, Cloneable, java.io.Serializable {
|
||||
public class Population extends ArrayList<AbstractEAIndividual> implements PopulationInterface, Cloneable, java.io.Serializable {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(Population.class.getName());
|
||||
|
||||
@ -124,9 +124,9 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
|
||||
public Population(Population population) {
|
||||
LOGGER.log(Level.FINER, "New population has been created.");
|
||||
setSameParams(population);
|
||||
for (Object individual : population) {
|
||||
for (AbstractEAIndividual individual : population) {
|
||||
if (individual != null) {
|
||||
this.add((((AbstractEAIndividual) individual)).clone());
|
||||
this.add((AbstractEAIndividual) individual.clone());
|
||||
}
|
||||
}
|
||||
copyHistAndArchive(population);
|
||||
@ -1418,7 +1418,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
|
||||
return this;
|
||||
}
|
||||
Population pop = new Population();
|
||||
for (Object o : this) {
|
||||
for (AbstractEAIndividual o : this) {
|
||||
if (!exclude.contains(o)) {
|
||||
pop.add(o);
|
||||
}
|
||||
@ -1684,8 +1684,8 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
|
||||
* seen as "structural change"?
|
||||
*/
|
||||
@Override
|
||||
public Object set(int index, Object element) {
|
||||
Object prev = super.set(index, element);
|
||||
public AbstractEAIndividual set(int index, AbstractEAIndividual element) {
|
||||
AbstractEAIndividual prev = super.set(index, element);
|
||||
modCount++;
|
||||
return prev;
|
||||
}
|
||||
@ -1695,14 +1695,14 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
|
||||
* the internally sorted array in synch to minimize complete resorting
|
||||
* events.
|
||||
*/
|
||||
public Object set(int index, Object element, int fitIndex) {
|
||||
Object prev = super.set(index, element);
|
||||
public AbstractEAIndividual set(int index, AbstractEAIndividual element, int fitIndex) {
|
||||
AbstractEAIndividual prev = super.set(index, element);
|
||||
modCount++;
|
||||
return prev;
|
||||
}
|
||||
|
||||
public boolean addIndividual(IndividualInterface ind) {
|
||||
super.add(ind);
|
||||
super.add((AbstractEAIndividual) ind);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1730,8 +1730,8 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
|
||||
* @param ind
|
||||
* @return
|
||||
*/
|
||||
public IndividualInterface replaceIndividualAt(int index, IndividualInterface ind) {
|
||||
return (IndividualInterface) set(index, ind);
|
||||
public IndividualInterface replaceIndividualAt(int index, AbstractEAIndividual ind) {
|
||||
return set(index, ind);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -300,7 +300,7 @@ public class BinaryScatterSearch extends AbstractOptimizer implements java.io.Se
|
||||
}
|
||||
dblIndy.setBinaryGenotype(data);
|
||||
if (!contains(dblIndy, pop)) {
|
||||
pop.add(dblIndy);
|
||||
pop.add((AbstractEAIndividual) dblIndy);
|
||||
evaluate(indy);
|
||||
}
|
||||
}
|
||||
@ -328,7 +328,7 @@ public class BinaryScatterSearch extends AbstractOptimizer implements java.io.Se
|
||||
}
|
||||
dblIndy.setBinaryGenotype(data);
|
||||
if (!contains(dblIndy, pop)) {
|
||||
pop.add(dblIndy);
|
||||
pop.add((AbstractEAIndividual) dblIndy);
|
||||
evaluate(indy);
|
||||
}
|
||||
}
|
||||
|
@ -189,7 +189,7 @@ public class CHCAdaptiveSearchAlgorithm extends AbstractOptimizer implements jav
|
||||
}
|
||||
}
|
||||
mutant.setBGenotype(tmpBitSet);
|
||||
this.population.add(mutant);
|
||||
this.population.add((AbstractEAIndividual) mutant);
|
||||
}
|
||||
if (best instanceof InterfaceGAIndividual) {
|
||||
this.differenceThreshold = (int) (this.divergenceRate * (1 - this.divergenceRate) * ((InterfaceGAIndividual) best).getGenotypeLength());
|
||||
|
@ -416,7 +416,7 @@ public class EsDpiNiching extends AbstractOptimizer implements Serializable, Int
|
||||
// if an association was found, there is a peak close to an archived solution, so reset it.
|
||||
if (!archive.getEAIndividual(i).isDominating(peakPopSet[assoc[i]].getBestEAIndividual())) {
|
||||
// the new found species is actually better than the archived solution
|
||||
archive.set(i, peakPopSet[assoc[i]].getBestEAIndividual().clone()); // replace archived indy
|
||||
archive.set(i, (AbstractEAIndividual) peakPopSet[assoc[i]].getBestEAIndividual().clone()); // replace archived indy
|
||||
}
|
||||
peakPopSet[assoc[i]] = initRandomPeakPop(getMuPerPeak());
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ public class MemeticAlgorithm implements InterfaceOptimizer, java.io.Serializabl
|
||||
Population subset = selectorPlug.selectFrom(gop, subsetsize);
|
||||
Population subsetclone = new Population();
|
||||
for (int i = 0; i < subset.size(); i++) {
|
||||
subsetclone.add(((AbstractEAIndividual) subset.get(i)).clone());
|
||||
subsetclone.add((AbstractEAIndividual) (subset.get(i)).clone());
|
||||
}
|
||||
if (subset.size() != subsetsize) {
|
||||
System.err.println("ALERT! identical individual instances in subset");
|
||||
@ -110,8 +110,8 @@ public class MemeticAlgorithm implements InterfaceOptimizer, java.io.Serializabl
|
||||
Hashtable antilamarckismcache = new Hashtable();
|
||||
if (!this.lamarckism) {
|
||||
for (int i = 0; i < subset.size(); i++) {
|
||||
AbstractEAIndividual indy = (AbstractEAIndividual) subset.get(i);
|
||||
AbstractEAIndividual indyclone = (AbstractEAIndividual) subsetclone
|
||||
AbstractEAIndividual indy = subset.get(i);
|
||||
AbstractEAIndividual indyclone = subsetclone
|
||||
.get(i);
|
||||
antilamarckismcache.put(indy, indyclone);
|
||||
}
|
||||
@ -140,7 +140,7 @@ public class MemeticAlgorithm implements InterfaceOptimizer, java.io.Serializabl
|
||||
gop.addPopulation(subsetclone);
|
||||
} else {
|
||||
for (int i = 0; i < subset.size(); i++) {
|
||||
AbstractEAIndividual indy = (AbstractEAIndividual) subset.get(i);
|
||||
AbstractEAIndividual indy = subset.get(i);
|
||||
try {
|
||||
AbstractEAIndividual newindy = (AbstractEAIndividual) antilamarckismcache
|
||||
.get(indy);
|
||||
|
@ -1477,7 +1477,7 @@ public class ParticleSwarmOptimization extends AbstractOptimizer implements java
|
||||
|
||||
@Override
|
||||
public void setPopulation(Population pop) {
|
||||
this.population = pop;
|
||||
super.setPopulation(pop);
|
||||
if (pop.size() > 0 && pop.size() != pop.getTargetSize()) { // new particle count!
|
||||
tracedVelocity = null;
|
||||
initializeByPopulation(null, false);
|
||||
|
@ -145,12 +145,12 @@ public abstract class AbstractMultiModalProblemKnown extends AbstractProblemDoub
|
||||
* @param point
|
||||
*/
|
||||
protected void addOptimum(double[] point) {
|
||||
InterfaceDataTypeDouble tmpIndy;
|
||||
tmpIndy = (InterfaceDataTypeDouble) this.template.clone();
|
||||
tmpIndy.setDoubleGenotype(point);
|
||||
((AbstractEAIndividual) tmpIndy).setFitness(evalUnnormalized(point));
|
||||
if (((AbstractEAIndividual) tmpIndy).getFitness(0) >= globalOptimum) {
|
||||
globalOptimum = ((AbstractEAIndividual) tmpIndy).getFitness(0);
|
||||
AbstractEAIndividual tmpIndy;
|
||||
tmpIndy = (AbstractEAIndividual) template.clone();
|
||||
((InterfaceDataTypeDouble) tmpIndy).setDoubleGenotype(point);
|
||||
tmpIndy.setFitness(evalUnnormalized(point));
|
||||
if ((tmpIndy).getFitness(0) >= globalOptimum) {
|
||||
globalOptimum = (tmpIndy).getFitness(0);
|
||||
if (makeGlobalOptUnreachable) {
|
||||
double tmp = globalOptimum;
|
||||
double dx = 1e-30;
|
||||
@ -165,7 +165,7 @@ public abstract class AbstractMultiModalProblemKnown extends AbstractProblemDoub
|
||||
}
|
||||
if (isDoRotation()) {
|
||||
point = inverseRotateMaybe(point); // theres an inverse rotation required
|
||||
tmpIndy.setDoubleGenotype(point);
|
||||
((InterfaceDataTypeDouble) tmpIndy).setDoubleGenotype(point);
|
||||
}
|
||||
this.listOfOptima.add(tmpIndy);
|
||||
}
|
||||
@ -244,7 +244,7 @@ public abstract class AbstractMultiModalProblemKnown extends AbstractProblemDoub
|
||||
* <p/>
|
||||
* This is in analogy to the original implementation by F.Streichert.
|
||||
*
|
||||
* @param mmProb
|
||||
* @param realOpts
|
||||
* @param pop
|
||||
* @param epsilon
|
||||
* @return
|
||||
|
@ -413,7 +413,7 @@ public abstract class AbstractProblemDouble extends AbstractOptimizationProblem
|
||||
if (!Mathematics.isInRange(pos, prob.makeRange())) {
|
||||
System.err.println("Warning, add optimum which is out of range!");
|
||||
}
|
||||
optimas.add(tmpIndy);
|
||||
optimas.add((AbstractEAIndividual) tmpIndy);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -431,7 +431,7 @@ public abstract class AbstractProblemDouble extends AbstractOptimizationProblem
|
||||
.clone();
|
||||
tmpIndy.setDoubleGenotype(pos);
|
||||
((AbstractEAIndividual) tmpIndy).setFitness(prob.evaluate(pos));
|
||||
pop.add(tmpIndy);
|
||||
pop.add((AbstractEAIndividual) tmpIndy);
|
||||
FitnessConvergenceTerminator convTerm = new FitnessConvergenceTerminator(
|
||||
1e-25, 10, StagnationTypeEnum.generationBased,
|
||||
ChangeTypeEnum.absoluteChange, DirectionTypeEnum.decrease);
|
||||
|
@ -149,8 +149,8 @@ class MyLensViewer extends JPanel implements InterfaceSolutionViewer {
|
||||
newFrame.setVisible(true);
|
||||
}
|
||||
} else {
|
||||
InterfaceDataTypeDouble best = (InterfaceDataTypeDouble) pop.getBestIndividual();
|
||||
if (indiesToPaint.size() == 0 || ((AbstractEAIndividual) best).isDominant(indiesToPaint.getBestIndividual())) {
|
||||
AbstractEAIndividual best = (AbstractEAIndividual) pop.getBestIndividual();
|
||||
if (indiesToPaint.size() == 0 || (best).isDominant(indiesToPaint.getBestIndividual())) {
|
||||
if (indiesToPaint.size() == 1) {
|
||||
indiesToPaint.set(0, best);
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user