diff options
Diffstat (limited to 'src/jcgp/population/Chromosome.java')
-rw-r--r-- | src/jcgp/population/Chromosome.java | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/jcgp/population/Chromosome.java b/src/jcgp/population/Chromosome.java index 6f50025..297d298 100644 --- a/src/jcgp/population/Chromosome.java +++ b/src/jcgp/population/Chromosome.java @@ -55,22 +55,22 @@ public class Chromosome { * */ private void instantiateElements() { - inputs = new Input[((int) resources.get("inputs"))]; - for (int i = 0; i < ((int) resources.get("inputs")); i++) { + inputs = new Input[(resources.getInt("inputs"))]; + for (int i = 0; i < (resources.getInt("inputs")); i++) { inputs[i] = new Input(i); } - int arity = (int) resources.get("arity"); + int arity = resources.getInt("arity"); // rows first - nodes = new Node[((int) resources.get("rows"))][((int) resources.get("columns"))]; - for (int r = 0; r < ((int) resources.get("rows")); r++) { - for (int c = 0; c < ((int) resources.get("columns")); c++) { + nodes = new Node[(resources.getInt("rows"))][(resources.getInt("columns"))]; + for (int r = 0; r < (resources.getInt("rows")); r++) { + for (int c = 0; c < (resources.getInt("columns")); c++) { nodes[r][c] = new Node(this, r, c, arity); } } - outputs = new Output[((int) resources.get("outputs"))]; - for (int o = 0; o < ((int) resources.get("outputs")); o++) { + outputs = new Output[(resources.getInt("outputs"))]; + for (int o = 0; o < (resources.getInt("outputs")); o++) { outputs[o] = new Output(this, o); } } @@ -80,7 +80,7 @@ public class Chromosome { */ private void initialiseConnections() { - int arity = (int) resources.get("arity"); + int arity = resources.getInt("arity"); // initialise nodes - [rows][columns] for (int r = 0; r < nodes.length; r++) { @@ -103,7 +103,7 @@ public class Chromosome { * @param clone */ public void copyConnections(Chromosome clone) { - int arity = (int) resources.get("arity"); + int arity = resources.getInt("arity"); // copy nodes - [rows][columns] for (int r = 0; r < nodes.length; r++) { @@ -186,7 +186,7 @@ public class Chromosome { */ public MutableElement getRandomMutableElement() { // choose output or node - int index = resources.getRandomInt(outputs.length + ((int) resources.get("rows")) * ((int) resources.get("columns"))); + int index = resources.getRandomInt(outputs.length + (resources.getInt("rows")) * (resources.getInt("columns"))); if (index < outputs.length) { // outputs @@ -194,7 +194,7 @@ public class Chromosome { } else { // node index -= outputs.length; - return nodes[index / ((int) resources.get("columns"))][index % ((int) resources.get("columns"))]; + return nodes[index / (resources.getInt("columns"))][index % (resources.getInt("columns"))]; } } @@ -208,7 +208,7 @@ public class Chromosome { */ public Connection getRandomConnection(int column) { // work out the allowed range obeying levels back - int allowedColumns = ((column >= ((int) resources.get("levelsBack"))) ? ((int) resources.get("levelsBack")) : column); + int allowedColumns = ((column >= (resources.getInt("levelsBack"))) ? (resources.getInt("levelsBack")) : column); int offset = ((column - allowedColumns) * nodes.length) - inputs.length; // choose input or allowed node @@ -235,15 +235,14 @@ public class Chromosome { */ public Connection getRandomConnection() { // choose output or node - int index = resources.getRandomInt(inputs.length + ((int) resources.get("columns")) * ((int) resources.get("rows"))); - + int index = resources.getRandomInt(inputs.length + (resources.getInt("columns")) * (resources.getInt("rows"))); if (index < inputs.length) { // outputs return inputs[index]; } else { // node index -= inputs.length; - return nodes[index / ((int) resources.get("columns"))][index % ((int) resources.get("columns"))]; + return nodes[index / (resources.getInt("columns"))][index % (resources.getInt("columns"))]; } } @@ -278,15 +277,15 @@ public class Chromosome { } public boolean compareTo(Chromosome chromosome) { - for (int r = 0; r < ((int) resources.get("rows")); r++) { - for (int c = 0; c < ((int) resources.get("columns")); c++) { + for (int r = 0; r < (resources.getInt("rows")); r++) { + for (int c = 0; c < (resources.getInt("columns")); c++) { if (!(nodes[r][c].copyOf(chromosome.getNode(r, c)))) { return false; } } } - for (int o = 0; o < ((int) resources.get("outputs")); o++) { + for (int o = 0; o < (resources.getInt("outputs")); o++) { if (!(outputs[o].copyOf(chromosome.getOutput(o)))) { return false; } @@ -311,11 +310,11 @@ public class Chromosome { } public void printNodes() { - int arity = (int) resources.get("arity"); + int arity = resources.getInt("arity"); - for (int r = 0; r < ((int) resources.get("rows")); r++) { + for (int r = 0; r < (resources.getInt("rows")); r++) { System.out.print("r: " + r + "\t"); - for (int c = 0; c < ((int) resources.get("columns")); c++) { + for (int c = 0; c < (resources.getInt("columns")); c++) { System.out.print("N: (" + r + ", " + c + ") "); for (int i = 0; i < arity; i++) { System.out.print("C" + i + ": (" + nodes[r][c].getConnection(i).getDescription() + ") "); @@ -325,7 +324,7 @@ public class Chromosome { System.out.print("\n"); } - for (int o = 0; o < ((int) resources.get("outputs")); o++) { + for (int o = 0; o < (resources.getInt("outputs")); o++) { System.out.print("o: " + o + " (" + outputs[o].getSource().getDescription() + ")\t"); } } |