aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/Utilities.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/Utilities.java')
-rw-r--r--src/jcgp/Utilities.java98
1 files changed, 0 insertions, 98 deletions
diff --git a/src/jcgp/Utilities.java b/src/jcgp/Utilities.java
deleted file mode 100644
index ff5387f..0000000
--- a/src/jcgp/Utilities.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package jcgp;
-
-import java.util.Random;
-
-import jcgp.modules.function.Function;
-import jcgp.modules.function.FunctionSet;
-import jcgp.parameters.Parameters;
-import jcgp.population.*;
-
-public class Utilities {
-
- private static Random numberGenerator;
- private static FunctionSet functionSet;
-
- public static void setResources(Random numberGenerator, FunctionSet functionSet) {
- Utilities.numberGenerator = numberGenerator;
- Utilities.functionSet = functionSet;
- }
-
- public static int getRandomInt(int limit){
- return numberGenerator.nextInt(limit);
- }
-
- public static double getRandomDouble(int limit){
- return numberGenerator.nextDouble() * limit;
- }
-
- /**
- * @param chromosome the chromosome to choose from
- * @return a random input
- */
- public static Input getRandomInput(Chromosome chromosome){
- return chromosome.getInput(getRandomInt(Parameters.getInputs()));
- }
-
- /**
- * Returns a random allowed node respecting levels back.
- *
- * This method will NOT pick inputs.
- *
- * @param chromosome the chromosome to pick from
- * @param column the column to use as reference
- * @return a random node
- */
- public static Node getRandomNode(Chromosome chromosome, int column){
- // work out the allowed range obeying levels back
- int allowedColumns = ((column >= Parameters.getLevelsBack()) ? Parameters.getLevelsBack() : column);
- int offset = column - allowedColumns;
-
- // pick a random allowed column and row
- int randomColumn = (getRandomInt(allowedColumns) + offset);
- int randomRow = (getRandomInt(Parameters.getRows()));
-
- return chromosome.getNode(randomRow, randomColumn);
- }
-
- /**
- * Returns a random allowed node.
- *
- * This method will NOT pick inputs.
- *
- * @param chromosome the chromosome to pick from
- * @param column the column to use as reference
- * @param levelsBack whether or not to respect levels back
- * @return a random node
- */
- public static Node getRandomNode(Chromosome chromosome, int column, boolean levelsBack){
- if (levelsBack) {
- return getRandomNode(chromosome, column);
- } else {
- // pick any random column before the given column
- int randomColumn = (getRandomInt(column));
- // pick a random rowgetColumns
- int randomRow = (getRandomInt(Parameters.getRows()));
- return chromosome.getNode(randomRow, randomColumn);
- }
- }
-
-
- /**
- * pick from any column - use this for setting outputs
- *
- * @param chromosome
- * @return
- */
- public static Node getRandomNode(Chromosome chromosome) {
- return chromosome.getNode(getRandomInt(Parameters.getRows()), getRandomInt(Parameters.getColumns()));
- }
-
- public static Function getRandomFunction() {
- return functionSet.getFunction(Utilities.getRandomInt(functionSet.getFunctionCount()));
- }
-
- public static Function getFunction(int index) {
- return functionSet.getFunction(index);
- }
-
-}