aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/fitness/TruthTableEvaluator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/fitness/TruthTableEvaluator.java')
-rw-r--r--src/jcgp/fitness/TruthTableEvaluator.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/jcgp/fitness/TruthTableEvaluator.java b/src/jcgp/fitness/TruthTableEvaluator.java
new file mode 100644
index 0000000..64ca209
--- /dev/null
+++ b/src/jcgp/fitness/TruthTableEvaluator.java
@@ -0,0 +1,26 @@
+package jcgp.fitness;
+
+import jcgp.CGP.Parameters;
+import jcgp.CGP.TruthTable;
+import jcgp.population.Chromosome;
+import jcgp.population.Population;
+
+public class TruthTableEvaluator implements FitnessFunction {
+
+ @Override
+ public void evaluate(Population population) {
+ for (Chromosome chromosome : population) {
+ for (int t = 0; t < TruthTable.getTestCaseCount(); t++) {
+ chromosome.setInputs(TruthTable.getTestCase(t).getInputs());
+ int fitness = 0;
+ for (int o = 0; o < Parameters.getOutputs(); o++) {
+ if (chromosome.getOutput(o).calculate() == TruthTable.getTestCase(t).getOutput(o)) {
+ fitness++;
+ }
+ }
+ chromosome.setFitness(fitness);
+ }
+ }
+ }
+
+}