diff --git a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java index 37bcc469..fdda0e51 100644 --- a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java +++ b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java @@ -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++) { diff --git a/src/eva2/optimization/individuals/GAPIndividualProgramData.java b/src/eva2/optimization/individuals/GAPIndividualProgramData.java index 72a47d5c..b49770da 100644 --- a/src/eva2/optimization/individuals/GAPIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GAPIndividualProgramData.java @@ -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++) { diff --git a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java index 084fe372..a7a68011 100644 --- a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java +++ b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java @@ -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++) { diff --git a/src/eva2/optimization/operator/migration/SOBestMigration.java b/src/eva2/optimization/operator/migration/SOBestMigration.java index 92ff5db2..6edc3a0d 100644 --- a/src/eva2/optimization/operator/migration/SOBestMigration.java +++ b/src/eva2/optimization/operator/migration/SOBestMigration.java @@ -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()); } } diff --git a/src/eva2/optimization/operator/postprocess/PostProcess.java b/src/eva2/optimization/operator/postprocess/PostProcess.java index e53c6a4b..74f5d717 100644 --- a/src/eva2/optimization/operator/postprocess/PostProcess.java +++ b/src/eva2/optimization/operator/postprocess/PostProcess.java @@ -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); } diff --git a/src/eva2/optimization/operator/selection/SelectBestIndividuals.java b/src/eva2/optimization/operator/selection/SelectBestIndividuals.java index cd712044..4b3b26c0 100644 --- a/src/eva2/optimization/operator/selection/SelectBestIndividuals.java +++ b/src/eva2/optimization/operator/selection/SelectBestIndividuals.java @@ -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[] 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++) { diff --git a/src/eva2/optimization/operator/selection/SelectEPTournaments.java b/src/eva2/optimization/operator/selection/SelectEPTournaments.java index 2bf5a4ed..01c0726d 100644 --- a/src/eva2/optimization/operator/selection/SelectEPTournaments.java +++ b/src/eva2/optimization/operator/selection/SelectEPTournaments.java @@ -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[] 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++) { diff --git a/src/eva2/optimization/operator/selection/SelectParticleWheel.java b/src/eva2/optimization/operator/selection/SelectParticleWheel.java index f615802a..5abf007e 100644 --- a/src/eva2/optimization/operator/selection/SelectParticleWheel.java +++ b/src/eva2/optimization/operator/selection/SelectParticleWheel.java @@ -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. diff --git a/src/eva2/optimization/population/PBILPopulation.java b/src/eva2/optimization/population/PBILPopulation.java index 486aa5b4..bbf0d88b 100644 --- a/src/eva2/optimization/population/PBILPopulation.java +++ b/src/eva2/optimization/population/PBILPopulation.java @@ -94,7 +94,7 @@ public class PBILPopulation extends Population implements Cloneable, java.io.Ser } } tmpIndy.setBGenotype(tmpBitSet); - super.add(tmpIndy); + super.add((AbstractEAIndividual) tmpIndy); } } diff --git a/src/eva2/optimization/population/Population.java b/src/eva2/optimization/population/Population.java index 66b4f94d..fccc33ad 100644 --- a/src/eva2/optimization/population/Population.java +++ b/src/eva2/optimization/population/Population.java @@ -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 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); } /** diff --git a/src/eva2/optimization/strategies/BinaryScatterSearch.java b/src/eva2/optimization/strategies/BinaryScatterSearch.java index 0647b426..f7719a7e 100644 --- a/src/eva2/optimization/strategies/BinaryScatterSearch.java +++ b/src/eva2/optimization/strategies/BinaryScatterSearch.java @@ -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); } } diff --git a/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java b/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java index 4f8772b0..5fd3fa47 100644 --- a/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java +++ b/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java @@ -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()); diff --git a/src/eva2/optimization/strategies/EsDpiNiching.java b/src/eva2/optimization/strategies/EsDpiNiching.java index 344b1595..dc7fa744 100644 --- a/src/eva2/optimization/strategies/EsDpiNiching.java +++ b/src/eva2/optimization/strategies/EsDpiNiching.java @@ -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()); } diff --git a/src/eva2/optimization/strategies/MemeticAlgorithm.java b/src/eva2/optimization/strategies/MemeticAlgorithm.java index 8937722d..ead048ab 100644 --- a/src/eva2/optimization/strategies/MemeticAlgorithm.java +++ b/src/eva2/optimization/strategies/MemeticAlgorithm.java @@ -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); diff --git a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java index 6830a2d3..96e5a5cb 100644 --- a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java @@ -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); diff --git a/src/eva2/problems/AbstractMultiModalProblemKnown.java b/src/eva2/problems/AbstractMultiModalProblemKnown.java index 980da93d..9e4f61df 100644 --- a/src/eva2/problems/AbstractMultiModalProblemKnown.java +++ b/src/eva2/problems/AbstractMultiModalProblemKnown.java @@ -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 *

* This is in analogy to the original implementation by F.Streichert. * - * @param mmProb + * @param realOpts * @param pop * @param epsilon * @return diff --git a/src/eva2/problems/AbstractProblemDouble.java b/src/eva2/problems/AbstractProblemDouble.java index 518a1181..f1a20b1f 100644 --- a/src/eva2/problems/AbstractProblemDouble.java +++ b/src/eva2/problems/AbstractProblemDouble.java @@ -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); diff --git a/src/eva2/problems/FLensProblem.java b/src/eva2/problems/FLensProblem.java index d01542b1..5c959143 100644 --- a/src/eva2/problems/FLensProblem.java +++ b/src/eva2/problems/FLensProblem.java @@ -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 {