Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/18/20 18:55:08 (4 years ago)
Author:
abeham
Message:

#2521: worked on refactoring, worked a lot on binary encoding / problems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationMultiObjectiveProblem.cs

    r17230 r17544  
    2828using HeuristicLab.Common;
    2929using HeuristicLab.Core;
     30using HeuristicLab.Data;
    3031using HeuristicLab.Optimization;
     32using HeuristicLab.Parameters;
    3133
    3234namespace HeuristicLab.Encodings.PermutationEncoding {
    3335  [StorableType("7bc5215b-c181-40d0-a758-d7c19a356e18")]
    3436  public abstract class PermutationMultiObjectiveProblem : MultiObjectiveProblem<PermutationEncoding, Permutation> {
    35     public int Length {
    36       get { return Encoding.Length; }
    37       set { Encoding.Length = value; }
    38     }
     37    [Storable] protected ReferenceParameter<IntValue> DimensionRefParameter { get; private set; }
     38    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
    3939
    40     public PermutationTypes Type {
    41       get { return Encoding.Type; }
    42       set { Encoding.Type = value; }
     40    public int Dimension {
     41      get { return DimensionRefParameter.Value.Value; }
     42      set { DimensionRefParameter.Value.Value = value; }
    4343    }
    4444
     
    5252    protected PermutationMultiObjectiveProblem(PermutationMultiObjectiveProblem original, Cloner cloner)
    5353      : base(original, cloner) {
     54      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
    5455      RegisterEventHandlers();
    5556    }
     
    5859    protected PermutationMultiObjectiveProblem(PermutationEncoding encoding) : base(encoding) {
    5960      EncodingParameter.ReadOnly = true;
     61      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the permutation problem.", Encoding.LengthParameter));
    6062
    6163      Operators.Add(new HammingSimilarityCalculator());
     
    8789
    8890    private void RegisterEventHandlers() {
    89       Encoding.LengthParameter.Value.ValueChanged += LengthParameter_ValueChanged;
    90       Encoding.PermutationTypeParameter.Value.ValueChanged += TypeParameter_ValueChanged;
     91      DimensionRefParameter.Value.ValueChanged += DimensionParameter_Value_ValueChanged;
    9192    }
    9293
    93     protected virtual void LengthParameter_ValueChanged(object sender, EventArgs e) { }
    94     protected virtual void TypeParameter_ValueChanged(object sender, EventArgs e) { }
     94    private void DimensionParameter_Value_ValueChanged(object sender, EventArgs e) {
     95      DimensionOnChanged();
     96    }
     97
     98    protected virtual void DimensionOnChanged() { }
    9599  }
    96100}
Note: See TracChangeset for help on using the changeset viewer.