diff options
author | Eduardo Pedroni <ep625@york.ac.uk> | 2014-04-07 15:58:30 +0100 |
---|---|---|
committer | Eduardo Pedroni <ep625@york.ac.uk> | 2014-04-07 15:58:30 +0100 |
commit | 226365bd6a0f56143ffbce7379857ff3e126fbaf (patch) | |
tree | 4582b16a5519c94b121a369104157859dc97cba1 /src/jcgp/backend/modules/ea | |
parent | 67ace66f66ffaa00e1bd1495c0d406c801e59c5c (diff) |
Refactoring resources for (hopefully) the last time
Diffstat (limited to 'src/jcgp/backend/modules/ea')
-rw-r--r-- | src/jcgp/backend/modules/ea/EvolutionaryAlgorithm.java | 14 | ||||
-rw-r--r-- | src/jcgp/backend/modules/ea/MuPlusLambda.java | 98 | ||||
-rw-r--r-- | src/jcgp/backend/modules/ea/TournamentSelection.java | 53 |
3 files changed, 0 insertions, 165 deletions
diff --git a/src/jcgp/backend/modules/ea/EvolutionaryAlgorithm.java b/src/jcgp/backend/modules/ea/EvolutionaryAlgorithm.java deleted file mode 100644 index 3aca104..0000000 --- a/src/jcgp/backend/modules/ea/EvolutionaryAlgorithm.java +++ /dev/null @@ -1,14 +0,0 @@ -package jcgp.backend.modules.ea; - -import jcgp.backend.modules.Module; -import jcgp.backend.modules.mutator.Mutator; -import jcgp.backend.population.Population; -import jcgp.backend.resources.Resources; - -public interface EvolutionaryAlgorithm extends Module { - - public abstract void evolve(Population population, Mutator mutator, Resources parameters); - - public abstract int getFittestChromosome(); - -} diff --git a/src/jcgp/backend/modules/ea/MuPlusLambda.java b/src/jcgp/backend/modules/ea/MuPlusLambda.java deleted file mode 100644 index 0d16111..0000000 --- a/src/jcgp/backend/modules/ea/MuPlusLambda.java +++ /dev/null @@ -1,98 +0,0 @@ -package jcgp.backend.modules.ea; - -import jcgp.backend.modules.mutator.Mutator; -import jcgp.backend.population.Population; -import jcgp.backend.resources.Resources; -import jcgp.backend.resources.parameters.BooleanParameter; -import jcgp.backend.resources.parameters.IntegerParameter; -import jcgp.backend.resources.parameters.Parameter; -import jcgp.backend.resources.parameters.ParameterStatus; - -/** - * (μ + λ) EA. - * - * - * @author Eduardo Pedroni - * - */ -public class MuPlusLambda implements EvolutionaryAlgorithm { - - private int fittestChromosome; - - private IntegerParameter parents, offspring; - private BooleanParameter report; - - public MuPlusLambda(final Resources resources) { - parents = new IntegerParameter(1, "Parents") { - @Override - public void validate(int newValue) { - if (newValue + offspring.get() != resources.getInt("popSize")) { - status = ParameterStatus.INVALID; - status.setDetails("Parents + offspring must equal population size."); - } else if (newValue <= 0) { - status = ParameterStatus.INVALID; - status.setDetails("EA needs at least 1 parent."); - } else { - status = ParameterStatus.VALID; - } - } - }; - offspring = new IntegerParameter(4, "Offspring") { - @Override - public void validate(int newValue) { - if (newValue + parents.get() != resources.getInt("popSize")) { - status = ParameterStatus.INVALID; - status.setDetails("Parents + offspring must equal population size."); - } else if (newValue <= 0) { - status = ParameterStatus.INVALID; - status.setDetails("EA needs at least 1 offspring."); - } else { - status = ParameterStatus.VALID; - } - } - }; - report = new BooleanParameter(false, "Report") { - @Override - public void validate(boolean newValue) { - // nothing - } - }; - } - - @Override - public void evolve(Population population, Mutator mutator, Resources resources) { - // select fittest chromosomes - fittestChromosome = 0; - - for (int i = 1; i < resources.getInt("popSize"); i++) { - if (population.getChromosome(i).getFitness() >= population.getChromosome(fittestChromosome).getFitness()) { - fittestChromosome = i; - } - } - - // create copies of fittest chromosome, mutate them - for (int i = 0; i < resources.getInt("popSize"); i++) { - if (i != fittestChromosome) { - population.copyChromosome(fittestChromosome, i); - mutator.mutate(population.getChromosome(i), resources); - } - } - - } - - @Override - public int getFittestChromosome() { - return fittestChromosome; - } - - @Override - public Parameter[] getLocalParameters() { - return new Parameter[] {parents, offspring, report}; - } - - @Override - public String toString() { - return "(μ + λ)"; - } - -} diff --git a/src/jcgp/backend/modules/ea/TournamentSelection.java b/src/jcgp/backend/modules/ea/TournamentSelection.java deleted file mode 100644 index baf6704..0000000 --- a/src/jcgp/backend/modules/ea/TournamentSelection.java +++ /dev/null @@ -1,53 +0,0 @@ -package jcgp.backend.modules.ea; - -import java.util.HashMap; - -import jcgp.backend.modules.mutator.Mutator; -import jcgp.backend.population.Population; -import jcgp.backend.resources.Resources; -import jcgp.backend.resources.parameters.IntegerParameter; -import jcgp.backend.resources.parameters.Parameter; - -public class TournamentSelection implements EvolutionaryAlgorithm { - - private int fittestChromosome; - - private IntegerParameter tournament; - private HashMap<String, Parameter> localParameters; - - public TournamentSelection() { - tournament = new IntegerParameter(1, "Tournament size") { - @Override - public void validate(int newValue) { - // TODO this - } - }; - - localParameters = new HashMap<String, Parameter>(); - localParameters.put("tournament", tournament); - } - - @Override - public Parameter[] getLocalParameters() { - return new Parameter[] {tournament}; - } - - @Override - public void evolve(Population population, Mutator mutator, - Resources parameters) { - tournament.set(tournament.get() + 1); - fittestChromosome = 0; - // TODO implement this - - } - - @Override - public int getFittestChromosome() { - return fittestChromosome; - } - - @Override - public String toString() { - return "Tournament"; - } -} |