Exemple #1
0
        private static float[][] SampleBestFitter(ParetoFrontPoint best, int sampleCount)
        {
            var sensorCount   = best.Genome.Network.Sensors.Count;
            var effectorCount = best.Genome.Network.Effectors.Count;
            var sampleLen     = sensorCount + effectorCount;

            var samples = new float[sampleCount][];

            for (var i = 0; i < sampleCount; i++)
            {
                samples[i] = new float[sampleLen];
                var network = best.Genome.Network;
                for (var s = 0; s < sensorCount; ++s)
                {
                    network.Sensors[s] = RandomSource.Range(-1, 1);
                    samples[i][s]      = network.Sensors[s];
                }

                network.Activate();

                for (var e = 0; e < effectorCount; ++e)
                {
                    samples[i][sensorCount + e] = network.Effectors[e];
                }
            }

            return(samples);
        }
Exemple #2
0
            public SplitConnectionWeightsSearch(
                PopulationParameters populationParameters,
                NetworkParameters networkParameters,
                ReproductionParameters reproductionParameters)
            {
                _populationParameters = populationParameters;
                _neatPopulation       = new Population(networkParameters, reproductionParameters, false);
                _genomes = Range(0, _populationParameters.PopulationSize)
                           .Select(_ => _neatPopulation.CreateInitialGenome());

                _archiveSize = _populationParameters.PopulationSize / 2;
                _archive     = new List <ParetoFrontPoint>(_archiveSize);

                WeightSamples = Range(0, 300)
                                .Select(_ => RandomSource.Range(0, MaxAbsWeightValue))
                                .ToArray();

                InputSamples = Range(0, 60)
                               .Select(_ => RandomSource.Range(0, 1))
                               .ToArray();
            }
Exemple #3
0
 public static float GetRandomUniform() =>
 RandomSource.Range(-ConnectionGene.MaxAbsWeightValue, ConnectionGene.MaxAbsWeightValue);