aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/modules/ea/MuPlusLambda.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/modules/ea/MuPlusLambda.java')
-rw-r--r--src/jcgp/backend/modules/ea/MuPlusLambda.java98
1 files changed, 0 insertions, 98 deletions
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 "(μ + λ)";
- }
-
-}