Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/04/19 14:23:08 (4 years ago)
Author:
abeham
Message:

#2521: reverted r17309

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveProblem.cs

    r17309 r17315  
    3737    where TEncodedSolution : class, IEncodedSolution {
    3838    #region Parameternames
     39    public const string MaximizationParameterName = "Maximization";
    3940    public const string BestKnownFrontParameterName = "BestKnownFront";
    4041    public const string ReferencePointParameterName = "ReferencePoint";
     
    4243
    4344    #region Parameterproperties
    44     [Storable] protected IValueParameter<BoolArray> MaximizationParameter { get; }
     45    public IValueParameter<BoolArray> MaximizationParameter {
     46      get { return (IValueParameter<BoolArray>)Parameters[MaximizationParameterName]; }
     47    }
    4548    public IValueParameter<DoubleMatrix> BestKnownFrontParameter {
    4649      get { return (IValueParameter<DoubleMatrix>)Parameters[BestKnownFrontParameterName]; }
     
    5760    protected MultiObjectiveProblem(MultiObjectiveProblem<TEncoding, TEncodedSolution> original, Cloner cloner)
    5861      : base(original, cloner) {
    59       MaximizationParameter = cloner.Clone(original.MaximizationParameter);
    6062      ParameterizeOperators();
    6163    }
    6264
    6365    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()));
    6667      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."));
    6768      Parameters.Add(new OptionalValueParameter<DoubleArray>(ReferencePointParameterName, "The refrence point for hypervolume calculations on this problem"));
     
    7273
    7374    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()));
    7676      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."));
    7777      Parameters.Add(new OptionalValueParameter<DoubleArray>(ReferencePointParameterName, "The refrence point for hypervolume calculations on this problem"));
     
    8989      get { return Maximization.Length; }
    9090    }
    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; }
    10392
    10493    public virtual IReadOnlyList<double[]> BestKnownFront {
     
    179168    #region IMultiObjectiveHeuristicOptimizationProblem Members
    180169    IParameter IMultiObjectiveHeuristicOptimizationProblem.MaximizationParameter {
    181       get { return MaximizationParameter; }
     170      get { return Parameters[MaximizationParameterName]; }
    182171    }
    183172    IMultiObjectiveEvaluator IMultiObjectiveHeuristicOptimizationProblem.Evaluator {
Note: See TracChangeset for help on using the changeset viewer.