Changeset 17315 for branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveProblem.cs
- Timestamp:
- 10/04/19 14:23:08 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveProblem.cs
r17309 r17315 37 37 where TEncodedSolution : class, IEncodedSolution { 38 38 #region Parameternames 39 public const string MaximizationParameterName = "Maximization"; 39 40 public const string BestKnownFrontParameterName = "BestKnownFront"; 40 41 public const string ReferencePointParameterName = "ReferencePoint"; … … 42 43 43 44 #region Parameterproperties 44 [Storable] protected IValueParameter<BoolArray> MaximizationParameter { get; } 45 public IValueParameter<BoolArray> MaximizationParameter { 46 get { return (IValueParameter<BoolArray>)Parameters[MaximizationParameterName]; } 47 } 45 48 public IValueParameter<DoubleMatrix> BestKnownFrontParameter { 46 49 get { return (IValueParameter<DoubleMatrix>)Parameters[BestKnownFrontParameterName]; } … … 57 60 protected MultiObjectiveProblem(MultiObjectiveProblem<TEncoding, TEncodedSolution> original, Cloner cloner) 58 61 : base(original, cloner) { 59 MaximizationParameter = cloner.Clone(original.MaximizationParameter);60 62 ParameterizeOperators(); 61 63 } 62 64 63 65 protected MultiObjectiveProblem() : base() { 64 MaximizationParameter = new ValueParameter<BoolArray>("Maximization", "Set to false if the problem should be minimized.", new BoolArray(new[] { false, false }).AsReadOnly()) { Hidden = true, ReadOnly = true }; 65 Parameters.Add(MaximizationParameter); 66 Parameters.Add(new ValueParameter<BoolArray>(MaximizationParameterName, "Set to false if the problem should be minimized.", (BoolArray)new BoolArray(Maximization).AsReadOnly())); 66 67 Parameters.Add(new OptionalValueParameter<DoubleMatrix>(BestKnownFrontParameterName, "A double matrix representing the best known qualites for this problem (aka points on the Pareto front). Points are to be given in a row-wise fashion.")); 67 68 Parameters.Add(new OptionalValueParameter<DoubleArray>(ReferencePointParameterName, "The refrence point for hypervolume calculations on this problem")); … … 72 73 73 74 protected MultiObjectiveProblem(TEncoding encoding) : base(encoding) { 74 MaximizationParameter = new ValueParameter<BoolArray>("Maximization", "Set to false if the problem should be minimized.", new BoolArray(new[] { false, false }).AsReadOnly()) { Hidden = true, ReadOnly = true }; 75 Parameters.Add(MaximizationParameter); 75 Parameters.Add(new ValueParameter<BoolArray>(MaximizationParameterName, "Set to false if the problem should be minimized.", (BoolArray)new BoolArray(Maximization).AsReadOnly())); 76 76 Parameters.Add(new OptionalValueParameter<DoubleMatrix>(BestKnownFrontParameterName, "A double matrix representing the best known qualites for this problem (aka points on the Pareto front). Points are to be given in a row-wise fashion.")); 77 77 Parameters.Add(new OptionalValueParameter<DoubleArray>(ReferencePointParameterName, "The refrence point for hypervolume calculations on this problem")); … … 89 89 get { return Maximization.Length; } 90 90 } 91 IReadOnlyList<bool> IMultiObjectiveProblemDefinition.Maximization { 92 get { return Maximization.CloneAsArray(); } 93 } 94 public BoolArray Maximization { 95 get { return MaximizationParameter.Value; } 96 set { 97 if (Maximization == value) return; 98 MaximizationParameter.ReadOnly = false; 99 MaximizationParameter.Value = value.AsReadOnly(); 100 MaximizationParameter.ReadOnly = true; 101 } 102 } 91 public abstract bool[] Maximization { get; } 103 92 104 93 public virtual IReadOnlyList<double[]> BestKnownFront { … … 179 168 #region IMultiObjectiveHeuristicOptimizationProblem Members 180 169 IParameter IMultiObjectiveHeuristicOptimizationProblem.MaximizationParameter { 181 get { return MaximizationParameter; }170 get { return Parameters[MaximizationParameterName]; } 182 171 } 183 172 IMultiObjectiveEvaluator IMultiObjectiveHeuristicOptimizationProblem.Evaluator {
Note: See TracChangeset
for help on using the changeset viewer.