diff options
Diffstat (limited to 'src/jcgp/backend/population/Chromosome.java')
-rw-r--r-- | src/jcgp/backend/population/Chromosome.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/jcgp/backend/population/Chromosome.java b/src/jcgp/backend/population/Chromosome.java index f8830fa..9e53f85 100644 --- a/src/jcgp/backend/population/Chromosome.java +++ b/src/jcgp/backend/population/Chromosome.java @@ -5,7 +5,7 @@ import java.util.ArrayList; import jcgp.backend.exceptions.ParameterMismatchException; import jcgp.backend.resources.Resources; -public class Chromosome { +public class Chromosome implements Comparable<Chromosome> { private Resources resources; @@ -276,7 +276,7 @@ public class Chromosome { } } - public boolean compareTo(Chromosome chromosome) { + public boolean compareGenesTo(Chromosome chromosome) { for (int r = 0; r < resources.rows(); r++) { for (int c = 0; c < resources.columns(); c++) { if (!(nodes[r][c].copyOf(chromosome.getNode(r, c)))) { @@ -294,7 +294,7 @@ public class Chromosome { return true; } - public boolean compareActiveTo(Chromosome chromosome) { + public boolean compareActiveGenesTo(Chromosome chromosome) { // update list if it is out of date computeActiveNodes(); @@ -310,7 +310,6 @@ public class Chromosome { } public void printNodes() { - // TODO make this proper int arity = resources.arity(); for (int r = 0; r < resources.rows(); r++) { @@ -320,7 +319,7 @@ public class Chromosome { for (int i = 0; i < arity; i++) { System.out.print("C" + i + ": (" + nodes[r][c].getConnection(i).toString() + ") "); } - System.out.print("F: " + nodes[r][c].getFunction().getName() + "\t"); + System.out.print("F: " + nodes[r][c].getFunction() + "\t"); } System.out.print("\n"); } @@ -335,4 +334,15 @@ public class Chromosome { public Resources getResources() { return resources; } + + @Override + public int compareTo(Chromosome o) { + if (fitness < o.getFitness()) { + return -1; + } else if (fitness > o.getFitness()) { + return 1; + } else { + return 0; + } + } } |