Changeset 17544 for branches/2521_ProblemRefactoring/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorProblem.cs
- Timestamp:
- 05/18/20 18:55:08 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorProblem.cs
r17522 r17544 21 21 #endregion 22 22 23 using System;24 23 using System.Linq; 25 24 using HEAL.Attic; … … 27 26 using HeuristicLab.Common; 28 27 using HeuristicLab.Core; 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Optimization; 30 30 using HeuristicLab.Optimization.Operators; 31 using HeuristicLab.Parameters; 31 32 32 33 namespace HeuristicLab.Encodings.BinaryVectorEncoding { … … 34 35 public abstract class BinaryVectorProblem : SingleObjectiveProblem<BinaryVectorEncoding, BinaryVector> { 35 36 [Storable] protected IResultParameter<ISingleObjectiveSolutionContext<BinaryVector>> BestResultParameter { get; private set; } 36 public IResultDefinition<ISingleObjectiveSolutionContext<BinaryVector>> BestResult { get { return BestResultParameter; } } 37 public IResultDefinition<ISingleObjectiveSolutionContext<BinaryVector>> BestResult => BestResultParameter; 38 [Storable] protected ReferenceParameter<IntValue> DimensionRefParameter { get; private set; } 37 39 38 public int Length{40 public int Dimension { 39 41 get { return Encoding.Length; } 40 42 set { Encoding.Length = value; } … … 51 53 : base(original, cloner) { 52 54 BestResultParameter = cloner.Clone(original.BestResultParameter); 55 DimensionRefParameter = cloner.Clone(original.DimensionRefParameter); 53 56 RegisterEventHandlers(); 54 57 } … … 58 61 EncodingParameter.ReadOnly = true; 59 62 Parameters.Add(BestResultParameter = new ResultParameter<ISingleObjectiveSolutionContext<BinaryVector>>("Best Solution", "The best solution.")); 63 Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the binary vector problem.", Encoding.LengthParameter)); 60 64 61 65 Operators.Add(new HammingSimilarityCalculator()); … … 74 78 } 75 79 76 protected override void OnEncodingChanged() {77 base.OnEncodingChanged();78 Parameterize();79 }80 81 80 private void Parameterize() { 82 81 foreach (var similarityCalculator in Operators.OfType<ISolutionSimilarityCalculator>()) { … … 87 86 88 87 private void RegisterEventHandlers() { 89 Encoding.LengthParameter.Value.ValueChanged += LengthParameter_ValueChanged; 88 Encoding.PropertyChanged += (sender, args) => { 89 if (args.PropertyName == nameof(Encoding.Length)) 90 DimensionOnChanged(); 91 }; 90 92 } 91 93 92 protected virtual void LengthParameter_ValueChanged(object sender, EventArgs e) { }94 protected virtual void DimensionOnChanged() { } 93 95 } 94 96 }
Note: See TracChangeset
for help on using the changeset viewer.