aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/CGP.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/CGP.java')
-rw-r--r--src/jcgp/CGP.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/jcgp/CGP.java b/src/jcgp/CGP.java
index d2be161..0ccd74e 100644
--- a/src/jcgp/CGP.java
+++ b/src/jcgp/CGP.java
@@ -1,6 +1,7 @@
package jcgp;
import java.util.Random;
+
import jcgp.ea.EvolutionaryAlgorithm;
import jcgp.ea.Mutator;
import jcgp.ea.StandardEA;
@@ -10,6 +11,7 @@ import jcgp.fitness.TestCase;
import jcgp.fitness.TruthTableEvaluator;
import jcgp.function.Addition;
import jcgp.function.FunctionSet;
+import jcgp.function.Multiplication;
import jcgp.function.Subtraction;
import jcgp.population.Population;
@@ -28,9 +30,10 @@ public final class CGP {
Parameters.setCurrentGeneration(i);
fitnessFunction.evaluate(population);
ea.evolve(population, mutator);
- }
-
-
+ if (ea.getBestFitness() >= 3) {
+ break;
+ }
+ }
}
/**
@@ -38,19 +41,20 @@ public final class CGP {
*/
private void initialise() {
// initialise function set
- FunctionSet functionSet = new FunctionSet(new Addition(), new Subtraction());
+ FunctionSet functionSet = new FunctionSet(new Addition(), new Subtraction(), new Multiplication());
// initialise utilities
Utilities.setResources(new Random(1234), functionSet);
// initialise parameters
Parameters.setColumns(3);
- Parameters.setRows(3);
+ Parameters.setRows(6);
Parameters.setInputs(3);
Parameters.setOutputs(3);
- Parameters.setLevelsBack(1);
+ Parameters.setLevelsBack(3);
+ Parameters.setPopulationSize(1, 4);
Parameters.setMutationRate(10);
- Parameters.setTotalGenerations(100);
+ Parameters.setTotalGenerations(5000);
Parameters.setTotalRuns(5);
Parameters.setMaxArity(functionSet.getMaxArity());