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.LinearLinkageEncoding/3.4/LinearLinkageProblem.cs

    r16950 r17544  
    2828using HeuristicLab.Common;
    2929using HeuristicLab.Core;
     30using HeuristicLab.Data;
    3031using HeuristicLab.Optimization;
    3132using HeuristicLab.Optimization.Operators;
     33using HeuristicLab.Parameters;
    3234
    3335namespace HeuristicLab.Encodings.LinearLinkageEncoding {
    3436  [StorableType("fb4cfc7c-dc7c-4da6-843f-0dad7d3d7981")]
    3537  public abstract class LinearLinkageProblem : SingleObjectiveProblem<LinearLinkageEncoding, LinearLinkage> {
    36     public int Length {
    37       get { return Encoding.Length; }
    38       set { Encoding.Length = value; }
     38    [Storable] protected ReferenceParameter<IntValue> DimensionRefParameter { get; private set; }
     39    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     40
     41    public int Dimension {
     42      get { return DimensionRefParameter.Value.Value; }
     43      set { DimensionRefParameter.Value.Value = value; }
    3944    }
    4045
     
    4853    protected LinearLinkageProblem(LinearLinkageProblem original, Cloner cloner)
    4954      : base(original, cloner) {
     55      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
    5056      RegisterEventHandlers();
    5157    }
     
    5460    protected LinearLinkageProblem(LinearLinkageEncoding encoding) : base(encoding) {
    5561      EncodingParameter.ReadOnly = true;
     62      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the linear linkage problem.", Encoding.LengthParameter));
    5663
    5764      Operators.Add(new HammingSimilarityCalculator());
     
    8390
    8491    private void RegisterEventHandlers() {
    85       Encoding.LengthParameter.Value.ValueChanged += LengthParameter_ValueChanged;
     92      DimensionRefParameter.Value.ValueChanged += DimensionParameter_Value_ValueChanged;
    8693    }
    8794
    88     protected virtual void LengthParameter_ValueChanged(object sender, EventArgs e) { }
     95    private void DimensionParameter_Value_ValueChanged(object sender, EventArgs e) {
     96      DimensionOnChanged();
     97    }
     98
     99    protected virtual void DimensionOnChanged() { }
    89100  }
    90101}
Note: See TracChangeset for help on using the changeset viewer.