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.IntegerVectorEncoding/3.3/IntegerVectorProblem.cs

    r17522 r17544  
    2828using HeuristicLab.Common;
    2929using HeuristicLab.Core;
     30using HeuristicLab.Data;
    3031using HeuristicLab.Optimization;
    3132using HeuristicLab.Optimization.Operators;
     33using HeuristicLab.Parameters;
    3234
    3335namespace HeuristicLab.Encodings.IntegerVectorEncoding {
     
    3638    [Storable] protected IResultParameter<IntegerVector> BestResultParameter { get; private set; }
    3739    public IResultDefinition<IntegerVector> BestResult { get => BestResultParameter; }
     40    [Storable] protected ReferenceParameter<IntValue> DimensionRefParameter { get; private set; }
     41    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     42    [Storable] protected ReferenceParameter<IntMatrix> BoundsRefParameter { get; private set; }
     43    public IValueParameter<IntMatrix> BoundsParameter => BoundsRefParameter;
    3844
    39     public int Length {
    40       get { return Encoding.Length; }
    41       set { Encoding.Length = value; }
     45    public int Dimension {
     46      get { return DimensionRefParameter.Value.Value; }
     47      set { DimensionRefParameter.Value.Value = value; }
     48    }
     49
     50    public IntMatrix Bounds {
     51      get { return BoundsRefParameter.Value; }
     52      set { BoundsRefParameter.Value = value; }
    4253    }
    4354
     
    5263      : base(original, cloner) {
    5364      BestResultParameter = cloner.Clone(original.BestResultParameter);
     65      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     66      BoundsRefParameter = cloner.Clone(original.BoundsRefParameter);
    5467      RegisterEventHandlers();
    5568    }
     
    5972      EncodingParameter.ReadOnly = true;
    6073      Parameters.Add(BestResultParameter = new ResultParameter<IntegerVector>("Best Solution", "The best solution."));
     74      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the integer vector problem.", Encoding.LengthParameter));
     75      Parameters.Add(BoundsRefParameter = new ReferenceParameter<IntMatrix>("Bounds", "The bounding box and step sizes of the values.", Encoding.BoundsParameter));
    6176
    6277      Operators.Add(new HammingSimilarityCalculator());
     
    88103
    89104    private void RegisterEventHandlers() {
    90       Encoding.LengthParameter.Value.ValueChanged += LengthParameter_ValueChanged;
     105      DimensionRefParameter.Value.ValueChanged += DimensionParameter_Value_ValueChanged;
     106      BoundsRefParameter.ValueChanged += BoundsParameter_ValueChanged;
    91107    }
    92108
    93     protected virtual void LengthParameter_ValueChanged(object sender, EventArgs e) { }
     109    private void DimensionParameter_Value_ValueChanged(object sender, EventArgs e) {
     110      DimensionOnChanged();
     111    }
     112
     113    private void BoundsParameter_ValueChanged(object sender, EventArgs e) {
     114      BoundsOnChanged();
     115    }
     116
     117    protected virtual void DimensionOnChanged() { }
     118
     119    protected virtual void BoundsOnChanged() { }
    94120  }
    95121}
Note: See TracChangeset for help on using the changeset viewer.