Changeset 16751 for branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveProblem.cs
- Timestamp:
- 04/03/19 15:37:38 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveProblem.cs
r16723 r16751 21 21 22 22 using System.Linq; 23 using HEAL.Attic; 23 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Core; 25 26 using HeuristicLab.Data; 26 27 using HeuristicLab.Parameters; 27 using HEAL.Attic;28 28 29 29 namespace HeuristicLab.Optimization { 30 30 [StorableType("6F2EC371-0309-4848-B7B1-C9B9C7E3436F")] 31 public abstract class MultiObjectiveProblem<TEncoding, T Solution> :32 Problem<TEncoding, T Solution, MultiObjectiveEvaluator<TSolution>>,33 IMultiObjectiveProblem<TEncoding, T Solution>,34 IMultiObjectiveProblemDefinition<TEncoding, T Solution>35 where TEncoding : class, IEncoding<T Solution>36 where T Solution : class, ISolution {31 public abstract class MultiObjectiveProblem<TEncoding, TEncodedSolution> : 32 Problem<TEncoding, TEncodedSolution, MultiObjectiveEvaluator<TEncodedSolution>>, 33 IMultiObjectiveProblem<TEncoding, TEncodedSolution>, 34 IMultiObjectiveProblemDefinition<TEncoding, TEncodedSolution> 35 where TEncoding : class, IEncoding<TEncodedSolution> 36 where TEncodedSolution : class, IEncodedSolution { 37 37 38 38 [StorableConstructor] 39 39 protected MultiObjectiveProblem(StorableConstructorFlag _) : base(_) { } 40 40 41 protected MultiObjectiveProblem(MultiObjectiveProblem<TEncoding, T Solution> original, Cloner cloner)41 protected MultiObjectiveProblem(MultiObjectiveProblem<TEncoding, TEncodedSolution> original, Cloner cloner) 42 42 : base(original, cloner) { 43 43 ParameterizeOperators(); … … 49 49 50 50 Operators.Add(Evaluator); 51 Operators.Add(new MultiObjectiveAnalyzer<T Solution>());51 Operators.Add(new MultiObjectiveAnalyzer<TEncodedSolution>()); 52 52 53 53 ParameterizeOperators(); … … 60 60 61 61 public abstract bool[] Maximization { get; } 62 public abstract double[] Evaluate(T Solution individual, IRandom random);63 public virtual void Analyze(T Solution[] individuals, double[][] qualities, ResultCollection results, IRandom random) { }64 62 public abstract double[] Evaluate(TEncodedSolution individual, IRandom random); 63 public virtual void Analyze(TEncodedSolution[] individuals, double[][] qualities, ResultCollection results, IRandom random) { } 64 65 65 protected override void OnOperatorsChanged() { 66 66 base.OnOperatorsChanged(); … … 93 93 94 94 private void ParameterizeOperators() { 95 foreach (var op in Operators.OfType<IMultiObjectiveEvaluationOperator<T Solution>>())95 foreach (var op in Operators.OfType<IMultiObjectiveEvaluationOperator<TEncodedSolution>>()) 96 96 op.EvaluateFunc = Evaluate; 97 foreach (var op in Operators.OfType<IMultiObjectiveAnalysisOperator<T Solution>>())97 foreach (var op in Operators.OfType<IMultiObjectiveAnalysisOperator<TEncodedSolution>>()) 98 98 op.AnalyzeAction = Analyze; 99 99 }
Note: See TracChangeset
for help on using the changeset viewer.