public ArrayChromosome(ArrayChromosome source) : base(source.Population) { this.randomGenerators = source.randomGenerators; this.MutationBalancer = source.MutationBalancer; this.CrossoverBalancer = source.CrossoverBalancer; this.arrayParameter = (ArrayParameter)source.arrayParameter.Clone(); }
public ArrayChromosome(ECPopulation population, ArrayParameter arrayParameter) : base(population) { this.MutationBalancer = 0.5; this.CrossoverBalancer = 0.5; this.randomGenerators = this.CreateRandomGenerators(arrayParameter.Domains); this.arrayParameter = (ArrayParameter)arrayParameter.Clone(); this.Generate(); }
public SocialArrayChromosome(ECPopulation population, uint numAgents, ArrayParameter baseParameters) : base(population) { this.NumAgents = numAgents; this._chromosomes = new ArrayChromosome[this.NumAgents]; for (var i = 0; i < this.NumAgents; i++) { this._chromosomes[i] = new ArrayChromosome(population, baseParameters); } }
public bool FromValue(string[] value) { if ((value == null) || (value.Length < this.NumAgents)) { return(false); } var valueSplit = value.Split(this.NumAgents); for (var i = 0; i < this.NumAgents; i++) { var arrayParameter = new ArrayParameter(); if (!arrayParameter.FromValue(valueSplit[i])) { return(false); } this._parameters[i] = arrayParameter; } return(true); }
public override bool FromValue(string[] value) { if ((value == null) || (value.Length < this.NumAgents)) { return(false); } var valueSplit = value.Split(this.NumAgents); for (var i = 0; i < this.NumAgents; i++) { var arrayParameter = new ArrayParameter(); if (!arrayParameter.FromValue(valueSplit[i])) { return(false); } this._chromosomes[i] = new ArrayChromosome(this.Population, arrayParameter); } return(true); }
public override List <ITestParameters> GetOptimizationTestParameters() { //creates tests for different weight parameters according to TestsConfig var testParameters = new List <ITestParameters>(); var elements = NumericArrayUtil <double> .NumericArrayFromInterval(this.ParamsStepIntervals); var allParamsComb = elements.AllCombinations(); foreach (var paramsComb in allParamsComb) { //creates array parameter var arrayParameter = new ArrayParameter(paramsComb); //only considers combinations with abs sum of 1, eg (-0.1, 0.9), (0.4, 0.6) if (this.IsValidParameter(arrayParameter)) { testParameters.Add(arrayParameter); } } return(testParameters); }
public override List <ITestParameters> GetSpecialTestParameters(IScenario scenario) { var specialParams = new List <ITestParameters>(); if (!this.AddSpecialTests) { return(specialParams); } //adds random test parameter (eg. (0, 0, 0)) var randomParam = new ArrayParameter(new double[this.NumParams]); specialParams.Add(randomParam); //adds fitness only test parameter (eg. (0, 0, 1)) var fitOnlyParam = new ArrayParameter(new double[this.NumParams]); fitOnlyParam[(this.NumParams - 1)] = 1d; specialParams.Add(fitOnlyParam); return(specialParams); }
public void Should_parse_array_parameter() { const string Text = "{name:João,age:24},{name:Emilia,age:30},{name:Carolina,age:34}"; var arrayParameter = new ArrayParameter(Text).Parse(); arrayParameter.Count.ShouldEqual(3); arrayParameter[0].ElementAt(0).Key.ShouldEqual("name"); arrayParameter[0].ElementAt(1).Key.ShouldEqual("age"); arrayParameter[1].ElementAt(0).Key.ShouldEqual("name"); arrayParameter[1].ElementAt(1).Key.ShouldEqual("age"); arrayParameter[2].ElementAt(0).Key.ShouldEqual("name"); arrayParameter[2].ElementAt(1).Key.ShouldEqual("age"); arrayParameter[0].ElementAt(0).Value.ShouldEqual("João"); arrayParameter[0].ElementAt(1).Value.ShouldEqual("24"); arrayParameter[1].ElementAt(0).Value.ShouldEqual("Emilia"); arrayParameter[1].ElementAt(1).Value.ShouldEqual("30"); arrayParameter[2].ElementAt(0).Value.ShouldEqual("Carolina"); arrayParameter[2].ElementAt(1).Value.ShouldEqual("34"); }
public SocialArrayChromosome(uint numAgents, ArrayParameter baseParameters) : this(null, numAgents, baseParameters) { }
public StochasticTest(IStochasticScenario scenario, ArrayParameter testParameters) : base(scenario, testParameters) { }
public SocialCommonArrayChromosome(uint numAgents, ArrayParameter commomTestParameters) : base(commomTestParameters) { this.NumAgents = numAgents; }
List <MaterialAsset> loadMaterials() { var materials = new List <MaterialAsset>(); if (!Directory.Exists(metadataPath + "Materials")) { Directory.CreateDirectory(metadataPath + "Materials"); } foreach (var filename in Directory.EnumerateFiles(metadataPath + "Materials")) { var metadata = File.ReadAllLines(filename); var material = new MaterialAsset(); material.Name = System.IO.Path.GetFileNameWithoutExtension(filename); material.Description = metadata[0].Split('=')[1].Trim(); material.LastUpdated = parseLastUpdatedDate(metadata[1].Split('=')[1].Trim(), "material", material.Name); material.ImportedFilename = metadata[2].Split('=')[1].Trim(); material.ImporterVersion = int.Parse(metadata[3].Split('=')[1].Trim()); var textureLine = metadata[4].Split('=')[1].Trim(); var textureConfigs = textureLine.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (var config in textureConfigs) { var data = config.Split(','); var texture = new Texture() { Binding = data[0].Trim(), SourceId = data[1].Trim() }; material.Textures.Add(texture); } for (int i = 5; i < metadata.Length; i++) { var parameterGroupLine = metadata[i].Split('=')[1].Trim(); var groupConfigs = parameterGroupLine.Split('#'); var parameterGroup = new ParameterGroup() { Name = groupConfigs[0].Trim() }; var parameterConfigs = groupConfigs[1].Trim().Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (var config in parameterConfigs) { var data = config.Split(','); var parameterType = data[1].Trim(); if (parameterType == "float") { var parameter = new ScalarParameter <float>() { Name = data[0].Trim(), Value = float.Parse(data[2].Trim()) }; parameterGroup.Parameters.Add(parameter); } else if (parameterType == "int") { var parameter = new ScalarParameter <int>() { Name = data[0].Trim(), Value = int.Parse(data[2].Trim()) }; parameterGroup.Parameters.Add(parameter); } else if (parameterType == "bool") { var parameter = new ScalarParameter <bool>() { Name = data[0].Trim(), Value = bool.Parse(data[2].Trim()) }; parameterGroup.Parameters.Add(parameter); } else if (parameterType == "float2") { var parameter = parseVector2 <float>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "int2") { var parameter = parseVector2 <int>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "bool2") { var parameter = parseVector2 <bool>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "float3") { var parameter = parseVector3 <float>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "int3") { var parameter = parseVector3 <int>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "bool3") { var parameter = parseVector3 <bool>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "float4") { var parameter = parseVector4 <float>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "int4") { var parameter = parseVector4 <int>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "bool4") { var parameter = parseVector4 <bool>(data[0].Trim(), data[2]); parameterGroup.Parameters.Add(parameter); } else if (parameterType == "float4 array") { var elements = data[2].Split('$'); var array = new ArrayParameter <float>(); array.Name = data[0].Trim(); foreach (var element in elements) { var elementData = element.Split(','); var parameter = parseVector4 <float>(elementData[0].Trim(), elementData[2]); array.Elements.Add(parameter); } parameterGroup.Parameters.Add(array); } else if (parameterType == "int4 array") { var elements = data[2].Split('$'); var array = new ArrayParameter <int>(); array.Name = data[0].Trim(); foreach (var element in elements) { var elementData = element.Split(','); var parameter = parseVector4 <int>(elementData[0].Trim(), elementData[2]); array.Elements.Add(parameter); } parameterGroup.Parameters.Add(array); } else if (parameterType == "bool4 array") { var elements = data[2].Split('$'); var array = new ArrayParameter <bool>(); array.Name = data[0].Trim(); foreach (var element in elements) { var elementData = element.Split(','); var parameter = parseVector4 <bool>(elementData[0].Trim(), elementData[2]); array.Elements.Add(parameter); } parameterGroup.Parameters.Add(array); } } material.ParameterGroups.Add(parameterGroup); } materials.Add(material); } return(materials); }
public ArrayChromosome(ArrayParameter arrayParameter) : this(null, arrayParameter) { }