public EvaluationWorker(int start, int end, List <QEAGenome> genomeList, IDomainEvaluator evaluator) { this.start = start; this.end = end; this.genomeList = genomeList; this.evaluator = evaluator; }
public QuickEvolutionAlgorithm(IDomainEvaluator evaluator) { this.evaluator = evaluator; r = new FastRandom(); po = new ParallelOptions(); po.MaxDegreeOfParallelism = LEEAParams.THREADS; currentGeneration = 0; createPopulation(); evaluatePopulation(); MUTATIONPOWER = LEEAParams.MUTATIONPOWER; MUTATIONRATE = LEEAParams.MUTATIONRATE; // calculate decay rate so that final mutation power is decayed properly decayRate = Math.Pow((1 - LEEAParams.MUTATIONPOWERDECAY), 1.0f / LEEAParams.MAXGENERATIONS); rateDecayRate = Math.Pow((1 - LEEAParams.MUTATIONRATEDECAY), 1.0f / LEEAParams.MAXGENERATIONS); }
public BackpropAlgorithm() { LEEAParams.DOMAIN.generateSampleList(); evaluator = LEEAParams.DOMAIN.createEvaluator(); // initialize the network, use the QEAGenome class since it's already structured well for this task int layers = LEEAParams.DOMAIN.getHiddenLayers() + 1; // layers needs to be the number of layers of connections int[] layerNodes = new int[layers + 1]; layerNodes[0] = LEEAParams.DOMAIN.getInputs() + 1; // +1 for the bias! for (int i = 0; i < layers - 1; i++) { layerNodes[i + 1] = LEEAParams.DOMAIN.getHiddenLayerNeurons(i + 1); } layerNodes[layers] = LEEAParams.DOMAIN.getOutputs(); network = new QEAGenome(layers, layerNodes, LEEAParams.BPINITIALWEIGHTMAX); box = new QuickBlackBox(network); }