Changeset 18198 for branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/StructuredSymbolicRegressionSingleObjectiveProblem.cs
- Timestamp:
- 01/14/22 15:11:36 (23 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/StructuredSymbolicRegressionSingleObjectiveProblem.cs
r18197 r18198 30 30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 31 31 using HeuristicLab.Optimization; 32 using HeuristicLab.Optimization.Operators; 32 33 using HeuristicLab.Parameters; 33 34 using HeuristicLab.Problems.Instances; … … 218 219 encoding.SolutionCreator = creator; 219 220 221 220 222 Encoding.Add(encoding); 221 223 } … … 234 236 } 235 237 236 //set single point crossover for numeric parameters238 //set single point || copy crossover for numeric parameters 237 239 var multiCrossover = (IParameterizedItem)Encoding.Operators.OfType<MultiEncodingCrossover>().First(); 238 240 foreach (var param in multiCrossover.Parameters.OfType<ConstrainedValueParameter<ICrossover>>()) { 239 var singlePointCrossover = param.ValidValues.OfType<SinglePointCrossover>().FirstOrDefault(); 240 param.Value = singlePointCrossover ?? param.ValidValues.First(); 241 if (!param.Name.Contains(NumericParametersEncoding)) continue; 242 243 var singlePointCrossover = param.ValidValues.OfType<SinglePointCrossover>().First(); 244 var copyCrossover = param.ValidValues.OfType<CopyCrossover>().First(); 245 246 var realvectorEncoding = (RealVectorEncoding)Encoding.Encodings.Where(e => e.Name == NumericParametersEncoding).First(); 247 if (realvectorEncoding.Length == 1) { //single-point crossover throws if encoding length == 1 248 param.Value = copyCrossover; 249 } else 250 param.Value = singlePointCrossover; 241 251 } 242 252
Note: See TracChangeset
for help on using the changeset viewer.