aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/modules/ea
diff options
context:
space:
mode:
authorEduardo Pedroni <ep625@york.ac.uk>2014-04-07 15:58:30 +0100
committerEduardo Pedroni <ep625@york.ac.uk>2014-04-07 15:58:30 +0100
commit226365bd6a0f56143ffbce7379857ff3e126fbaf (patch)
tree4582b16a5519c94b121a369104157859dc97cba1 /src/jcgp/backend/modules/ea
parent67ace66f66ffaa00e1bd1495c0d406c801e59c5c (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.java14
-rw-r--r--src/jcgp/backend/modules/ea/MuPlusLambda.java98
-rw-r--r--src/jcgp/backend/modules/ea/TournamentSelection.java53
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";
- }
-}