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