diff options
Diffstat (limited to 'src/jcgp/CGP.java')
-rw-r--r-- | src/jcgp/CGP.java | 18 |
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()); |