/// <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); }
/// <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); }
/// <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); }
/// <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); }
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."); }