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)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs

    r17520 r17695  
    3737namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
    3838  [StorableType("59935E69-C4A5-480E-8FFB-D9669DE9BFD4")]
    39   public abstract class SymbolicDataAnalysisProblem<T, U, V> : HeuristicOptimizationProblem<U, V>, IDataAnalysisProblem<T>, ISymbolicDataAnalysisProblem, IStorableContent,
     39  public abstract class SymbolicDataAnalysisProblem<T, U> : HeuristicOptimizationProblem<U>, IDataAnalysisProblem<T>, ISymbolicDataAnalysisProblem, IStorableContent,
    4040    IProblemInstanceConsumer<T>, IProblemInstanceExporter<T>
    4141    where T : class, IDataAnalysisProblemData
    42     where U : class, ISymbolicDataAnalysisEvaluator<T>
    43     where V : class, ISymbolicDataAnalysisSolutionCreator {
     42    where U : class, ISymbolicDataAnalysisEvaluator<T> {
    4443
    4544    #region parameter names & descriptions
     
    169168      RegisterEventHandlers();
    170169    }
    171     protected SymbolicDataAnalysisProblem(SymbolicDataAnalysisProblem<T, U, V> original, Cloner cloner)
     170    protected SymbolicDataAnalysisProblem(SymbolicDataAnalysisProblem<T, U> original, Cloner cloner)
    172171      : base(original, cloner) {
    173172      RegisterEventHandlers();
    174173    }
    175174
    176     protected SymbolicDataAnalysisProblem(T problemData, U evaluator, V solutionCreator)
    177       : base(evaluator, solutionCreator) {
     175    protected SymbolicDataAnalysisProblem(T problemData, U evaluator)
     176      : base(evaluator) {
    178177      Parameters.Add(new ValueParameter<T>(ProblemDataParameterName, ProblemDataParameterDescription, problemData));
    179178      Parameters.Add(new ValueParameter<ISymbolicDataAnalysisGrammar>(SymbolicExpressionTreeGrammarParameterName, SymbolicExpressionTreeGrammarParameterDescription));
     
    268267    }
    269268
    270     protected override void OnSolutionCreatorChanged() {
    271       base.OnSolutionCreatorChanged();
    272       SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
    273       ParameterizeOperators();
    274     }
    275 
    276     private void SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) {
    277       ParameterizeOperators();
    278     }
    279 
    280269    protected override void OnEvaluatorChanged() {
    281270      base.OnEvaluatorChanged();
     
    314303      foreach (var op in operators.OfType<ISymbolicDataAnalysisEvaluator<T>>()) {
    315304        op.ProblemDataParameter.ActualName = ProblemDataParameterName;
    316         op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     305        //op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    317306        op.EvaluationPartitionParameter.ActualName = FitnessCalculationPartitionParameter.Name;
    318307        op.RelativeNumberOfEvaluatedSamplesParameter.ActualName = RelativeNumberOfEvaluatedSamplesParameter.Name;
     
    320309      }
    321310      foreach (var op in operators.OfType<ISymbolicExpressionTreeCrossover>()) {
    322         op.ParentsParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    323         op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     311        //op.ParentsParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     312        //op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    324313      }
    325314      foreach (var op in operators.OfType<ISymbolicExpressionTreeManipulator>()) {
    326         op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     315        //op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    327316      }
    328317      foreach (var op in operators.OfType<ISymbolicExpressionTreeAnalyzer>()) {
    329         op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     318        //op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    330319      }
    331320      foreach (var op in operators.OfType<ISymbolicDataAnalysisSingleObjectiveAnalyzer>()) {
     
    336325      }
    337326      foreach (var op in operators.OfType<ISymbolicDataAnalysisAnalyzer>()) {
    338         op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
     327        //op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    339328      }
    340329      foreach (var op in operators.OfType<ISymbolicDataAnalysisValidationAnalyzer<U, T>>()) {
Note: See TracChangeset for help on using the changeset viewer.