Пример #1
0
 public EvaluationWorker(int start, int end, List <QEAGenome> genomeList, IDomainEvaluator evaluator)
 {
     this.start      = start;
     this.end        = end;
     this.genomeList = genomeList;
     this.evaluator  = evaluator;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }