Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/23/20 16:21:55 (4 years ago)
Author:
abeham
Message:

#2521:

  • Moving solution creator parameter from problems to algorithms (breaking wiring in some HeuristicOptimizationProblems)
  • Disallowing evaluator or encoding changes in encoding-specific base problems (to avoid confusion in derived problems whether this needs to be handled or not)
  • Added private set to ReferenceParameter property (serialization)
Location:
branches/2521_ProblemRefactoring/HeuristicLab.Problems.GrammaticalEvolution/3.4/SymbolicRegression
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.GrammaticalEvolution/3.4/SymbolicRegression/GESymbolicDataAnalysisProblem.cs

    r17520 r17695  
    2626using System.Drawing;
    2727using System.Linq;
     28using HEAL.Attic;
    2829using HeuristicLab.Common;
    2930using HeuristicLab.Common.Resources;
     
    3435using HeuristicLab.Optimization;
    3536using HeuristicLab.Parameters;
    36 using HEAL.Attic;
    3737using HeuristicLab.PluginInfrastructure;
    3838using HeuristicLab.Problems.DataAnalysis;
     
    4343namespace HeuristicLab.Problems.GrammaticalEvolution {
    4444  [StorableType("E31AC1E8-590D-4D65-883F-3113544B6C91")]
    45   public abstract class GESymbolicDataAnalysisProblem<T, U, V> : HeuristicOptimizationProblem<U, V>, IDataAnalysisProblem<T>,
     45  public abstract class GESymbolicDataAnalysisProblem<T, U> : HeuristicOptimizationProblem<U>, IDataAnalysisProblem<T>,
    4646                                                                 IGESymbolicDataAnalysisProblem, IStorableContent,
    4747                                                                 IProblemInstanceConsumer<T>, IProblemInstanceExporter<T>
    4848    where T : class, IDataAnalysisProblemData
    49     where U : class, IGESymbolicDataAnalysisEvaluator<T>
    50     where V : class, IIntegerVectorCreator {
     49    where U : class, IGESymbolicDataAnalysisEvaluator<T> {
    5150
    5251    #region parameter names & descriptions
     
    152151      RegisterEventHandlers();
    153152    }
    154     protected GESymbolicDataAnalysisProblem(GESymbolicDataAnalysisProblem<T, U, V> original, Cloner cloner)
     153    protected GESymbolicDataAnalysisProblem(GESymbolicDataAnalysisProblem<T, U> original, Cloner cloner)
    155154      : base(original, cloner) {
    156155      RegisterEventHandlers();
    157156    }
    158157
    159     protected GESymbolicDataAnalysisProblem(T problemData, U evaluator, V solutionCreator)
    160       : base(evaluator, solutionCreator) {
     158    protected GESymbolicDataAnalysisProblem(T problemData, U evaluator)
     159      : base(evaluator) {
    161160      Parameters.Add(new ValueParameter<T>(ProblemDataParameterName, ProblemDataParameterDescription, problemData));
    162161      Parameters.Add(new ValueParameter<ISymbolicDataAnalysisGrammar>(SymbolicExpressionTreeGrammarParameterName, SymbolicExpressionTreeGrammarParameterDescription));
     
    267266        op.RelativeNumberOfEvaluatedSamplesParameter.ActualName = RelativeNumberOfEvaluatedSamplesParameter.Name;
    268267        op.ApplyLinearScalingParameter.ActualName = ApplyLinearScalingParameter.Name;
    269         op.IntegerVectorParameter.ActualName = SolutionCreator.IntegerVectorParameter.Name;
     268        //op.IntegerVectorParameter.ActualName = SolutionCreator.IntegerVectorParameter.Name;
    270269        op.GenotypeToPhenotypeMapperParameter.ActualName = GenotypeToPhenotypeMapperParameter.Name;
    271270        op.SymbolicExpressionTreeGrammarParameter.ActualName = SymbolicExpressionTreeGrammarParameter.Name;
    272271      }
    273272      foreach (var op in operators.OfType<IIntegerVectorCrossover>()) {
    274         op.ParentsParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
    275         op.ChildParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
     273        //op.ParentsParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
     274        //op.ChildParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
    276275      }
    277276      foreach (var op in operators.OfType<IIntegerVectorManipulator>()) {
    278         op.IntegerVectorParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
     277        //op.IntegerVectorParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName;
    279278      }
    280279      foreach (var op in operators.OfType<IIntegerVectorCreator>()) {
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.GrammaticalEvolution/3.4/SymbolicRegression/GESymbolicDataAnalysisSingleObjectiveProblem.cs

    r17226 r17695  
    2424using System;
    2525using System.Linq;
     26using HEAL.Attic;
    2627using HeuristicLab.Common;
    2728using HeuristicLab.Core;
    2829using HeuristicLab.Data;
    29 using HeuristicLab.Encodings.IntegerVectorEncoding;
    3030using HeuristicLab.Optimization;
    3131using HeuristicLab.Parameters;
    32 using HEAL.Attic;
    3332using HeuristicLab.Problems.DataAnalysis;
    3433using HeuristicLab.Problems.DataAnalysis.Symbolic;
     
    3635namespace HeuristicLab.Problems.GrammaticalEvolution {
    3736  [StorableType("27E01C21-6772-4CE5-8301-EF3102D1BB28")]
    38   public abstract class GESymbolicDataAnalysisSingleObjectiveProblem<T, U, V> : GESymbolicDataAnalysisProblem<T, U, V>,
     37  public abstract class GESymbolicDataAnalysisSingleObjectiveProblem<T, U> : GESymbolicDataAnalysisProblem<T, U>,
    3938                                                                                IGESymbolicDataAnalysisSingleObjectiveProblem
    4039    where T : class, IDataAnalysisProblemData
    41     where U : class, IGESymbolicDataAnalysisSingleObjectiveEvaluator<T>
    42     where V : class, IIntegerVectorCreator {
     40    where U : class, IGESymbolicDataAnalysisSingleObjectiveEvaluator<T> {
    4341    private const string MaximizationParameterName = "Maximization";
    4442    private const string BestKnownQualityParameterName = "BestKnownQuality";
     
    7371    [StorableConstructor]
    7472    protected GESymbolicDataAnalysisSingleObjectiveProblem(StorableConstructorFlag _) : base(_) { }
    75     protected GESymbolicDataAnalysisSingleObjectiveProblem(GESymbolicDataAnalysisSingleObjectiveProblem<T, U, V> original, Cloner cloner)
     73    protected GESymbolicDataAnalysisSingleObjectiveProblem(GESymbolicDataAnalysisSingleObjectiveProblem<T, U> original, Cloner cloner)
    7674      : base(original, cloner) {
    7775      RegisterEventHandler();
     
    7977    }
    8078
    81     public GESymbolicDataAnalysisSingleObjectiveProblem(T problemData, U evaluator, V solutionCreator)
    82       : base(problemData, evaluator, solutionCreator) {
     79    public GESymbolicDataAnalysisSingleObjectiveProblem(T problemData, U evaluator)
     80      : base(problemData, evaluator) {
    8381      Parameters.Add(new FixedValueParameter<BoolValue>(MaximizationParameterName, "Set to false if the problem should be minimized."));
    8482      Parameters.Add(new FixedValueParameter<DoubleValue>(BestKnownQualityParameterName, "The quality of the best known solution of this problem."));
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.GrammaticalEvolution/3.4/SymbolicRegression/GESymbolicRegressionSingleObjectiveProblem.cs

    r17226 r17695  
    2424
    2525using System.Linq;
     26using HEAL.Attic;
    2627using HeuristicLab.Common;
    2728using HeuristicLab.Core;
    28 using HeuristicLab.Encodings.IntegerVectorEncoding;
    2929using HeuristicLab.Parameters;
    30 using HEAL.Attic;
    3130using HeuristicLab.Problems.DataAnalysis;
    3231using HeuristicLab.Problems.DataAnalysis.Symbolic;
     
    3837  [StorableType("65208F51-3181-4765-BA04-33CADBCE0826")]
    3938  [Creatable(CreatableAttribute.Categories.GeneticProgrammingProblems, Priority = 180)]
    40   public class GESymbolicRegressionSingleObjectiveProblem : GESymbolicDataAnalysisSingleObjectiveProblem<IRegressionProblemData, IGESymbolicRegressionSingleObjectiveEvaluator, IIntegerVectorCreator>,
     39  public class GESymbolicRegressionSingleObjectiveProblem : GESymbolicDataAnalysisSingleObjectiveProblem<IRegressionProblemData, IGESymbolicRegressionSingleObjectiveEvaluator>,
    4140                                                            IRegressionProblem {
    4241    private const double PunishmentFactor = 10;
     
    6564
    6665    public GESymbolicRegressionSingleObjectiveProblem()
    67       : base(new RegressionProblemData(), new GESymbolicRegressionSingleObjectiveEvaluator(), new UniformRandomIntegerVectorCreator()) {
     66      : base(new RegressionProblemData(), new GESymbolicRegressionSingleObjectiveEvaluator()) {
    6867      Parameters.Add(new FixedValueParameter<DoubleLimit>(EstimationLimitsParameterName, EstimationLimitsParameterDescription));
    6968
Note: See TracChangeset for help on using the changeset viewer.