Exemple #1
0
        /// <summary>
        /// Configures the current gray box handler.
        /// </summary>
        private void ConfigureGrayBoxHandler()
        {
            var genomeTransformation       = new GenomeTransformation <CategoricalBinaryEncoding>(this._parameterTree);
            var genomeDoubleRepresentation =
                genomeTransformation.ConvertGenomeToArray(this._currentEvaluation.GenomeInstancePair.Genome.CreateMutableGenome());

            var tunerDataRecord = new TunerDataRecord <TResult>(
                NetworkUtils.GetFullyQualifiedDomainName(),
                this._currentEvaluation.GenerationId,
                this._currentEvaluation.TournamentId,
                this._currentEvaluation.GenomeInstancePair.Instance.ToId(),
                double.NaN,
                genomeTransformation.GetConverterColumnHeader(),
                genomeDoubleRepresentation,
                null);

            this._grayBoxHandler = new GrayBoxHandler <TInstance, TResult>(
                this._configuration,
                this._configuredTargetAlgorithm as IGrayBoxTargetAlgorithm <TInstance, TResult>,
                this._id,
                tunerDataRecord,
                this._currentEvaluation.UseGrayBoxInEvaluation && this._successfullyDeserializedGrayBoxRandomForest,
                this._customGrayBoxMethods,
                this._grayBoxRandomForest);
        }
Exemple #2
0
        /// <summary>
        /// Configures the current target algorithm and gray box handler.
        /// </summary>
        /// <param name="targetAlgorithmFactory">The <see cref="ITargetAlgorithmFactory{TTargetAlgorithm,TInstance,TResult}"/>.</param>
        /// <param name="parameterTree">The <see cref="ParameterTree"/>.</param>
        /// <param name="indexOfDesiredPostTuningRun">The index of the desired post tuning run.</param>
        /// <param name="postTuningGenomeInstancePair">The post tuning genome instance pair.</param>
        private void ConfigureTargetAlgorithmAndGrayBoxHandler(
            ITargetAlgorithmFactory <TGrayBoxTargetAlgorithm, TInstance, TResult> targetAlgorithmFactory,
            ParameterTree parameterTree,
            int indexOfDesiredPostTuningRun,
            GenomeInstancePairStringRepresentation postTuningGenomeInstancePair)
        {
            var genomeDoubleRepresentation =
                GenomeDoubleRepresentation.GetGenomeDoubleRepresentationFromGenomeIdentifierStringRepresentation(postTuningGenomeInstancePair.Genome);
            var genomeTransformation = new GenomeTransformation <CategoricalBinaryEncoding>(parameterTree);
            var genome           = genomeTransformation.ConvertBack(genomeDoubleRepresentation);
            var runnerDictionary = genome.GetFilteredGenes(parameterTree);

            this._configuredTargetAlgorithm = targetAlgorithmFactory.ConfigureTargetAlgorithm(runnerDictionary);

            // Set generation to -1, since this is a post tuning run.
            var tunerDataRecord = new TunerDataRecord <TResult>(
                NetworkUtils.GetFullyQualifiedDomainName(),
                -1,
                0,
                postTuningGenomeInstancePair.Instance,
                double.NaN,
                genomeTransformation.GetConverterColumnHeader(),
                genomeDoubleRepresentation,
                null);

            this._grayBoxHandler = new GrayBoxHandler <TInstance, TResult>(
                this._tunerConfiguration,
                this._configuredTargetAlgorithm,
                indexOfDesiredPostTuningRun,
                tunerDataRecord,
                false,
                null,
                null);
        }
Exemple #3
0
        /// <summary>
        /// Gets all competitive genomes as <see cref="GenomeDoubleRepresentation"/>.
        /// </summary>
        /// <returns>The competitive genomes as <see cref="GenomeDoubleRepresentation"/>.</returns>
        public List <GenomeDoubleRepresentation> GetAllCompetitiveGenomesAsGenomeDoubleRepresentation()
        {
            var converter = new GenomeTransformation <CategoricalBinaryEncoding>(this.ParameterTree);
            var listOfGenomeDoubleRepresentations = this.MostRecentSorting
                                                    .Select(point => (GenomeDoubleRepresentation)converter.ConvertGenomeToArray(point.Genome.CreateMutableGenome())).ToList();

            return(listOfGenomeDoubleRepresentations);
        }
Exemple #4
0
        /// <summary>
        /// Gets all competitive genomes as <see cref="GenomeDoubleRepresentation"/>.
        /// </summary>
        /// <returns>The competitive genomes as <see cref="GenomeDoubleRepresentation"/>.</returns>
        public List <GenomeDoubleRepresentation> GetAllCompetitiveGenomesAsGenomeDoubleRepresentation()
        {
            var converter = new GenomeTransformation <CategoricalBinaryEncoding>(this._parameterTree);
            var listOfGenomeDoubleRepresentations = this._population.GetCompetitiveIndividuals()
                                                    .Select(genome => (GenomeDoubleRepresentation)converter.ConvertGenomeToArray(genome)).ToList();

            return(listOfGenomeDoubleRepresentations);
        }
Exemple #5
0
        public void TransformGeneToDoubleArrayOrdinal()
        {
            var tree = this.BuildCategoricalDomainParameterTree();

            // Set genes to values.
            this._genome.SetGene("1intDom", new Allele <int>(0));
            this._genome.SetGene("2intDom", new Allele <int>(1));
            this._genome.SetGene("3catDom", new Allele <int>(4));

            var converter = new GenomeTransformation <CategoricalOrdinalEncoding>(tree);

            var result = converter.ConvertGenomeToArray(this._genome);

            var expected = new[] { 0d, 1d, 3d };

            Assert.True(expected.SequenceEqual(result), "Expected different double-representation.");
        }