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/PermutationProblem.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.PermutationEncoding {
    3436  [StorableType("aceff7a2-0666-4055-b698-6ea3628713b6")]
    3537  public abstract class PermutationProblem : SingleObjectiveProblem<PermutationEncoding, Permutation> {
    36     public int Length {
    37       get { return Encoding.Length; }
    38       set { Encoding.Length = value; }
    39     }
     38    [Storable] protected ReferenceParameter<IntValue> DimensionRefParameter { get; private set; }
     39    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
    4040
    41     public PermutationTypes Type {
    42       get { return Encoding.Type; }
    43       set { Encoding.Type = value; }
     41    public int Dimension {
     42      get { return DimensionRefParameter.Value.Value; }
     43      set { DimensionRefParameter.Value.Value = value; }
    4444    }
    4545
     
    5353    protected PermutationProblem(PermutationProblem original, Cloner cloner)
    5454      : base(original, cloner) {
     55      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
    5556      RegisterEventHandlers();
    5657    }
     
    5960    protected PermutationProblem(PermutationEncoding encoding) : base(encoding) {
    6061      EncodingParameter.ReadOnly = true;
     62      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the permutation problem.", Encoding.LengthParameter));
    6163
    6264      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.