- Timestamp:
- 02/05/15 11:09:38 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/Creators/RandomBinaryVectorCreator.cs
r11411 r11909 20 20 #endregion 21 21 22 using System; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 35 36 private const string TrueProbabilityParameterName = "TruePropability"; 36 37 37 private I FixedValueParameter<DoubleValue> TrueProbabilityParameter {38 get { return (I FixedValueParameter<DoubleValue>)Parameters[TrueProbabilityParameterName]; }38 private IValueLookupParameter<DoubleValue> TrueProbabilityParameter { 39 get { return (IValueLookupParameter<DoubleValue>)Parameters[TrueProbabilityParameterName]; } 39 40 } 40 41 41 public double TrueProbability {42 get { return TrueProbabilityParameter.Value .Value; }43 set { TrueProbabilityParameter.Value .Value= value; }42 public DoubleValue TrueProbability { 43 get { return TrueProbabilityParameter.Value; } 44 set { TrueProbabilityParameter.Value = value; } 44 45 } 45 46 46 47 [StorableConstructor] 47 48 private RandomBinaryVectorCreator(bool deserializing) : base(deserializing) { } 48 49 49 private RandomBinaryVectorCreator(RandomBinaryVectorCreator original, Cloner cloner) : base(original, cloner) { } 50 50 public override IDeepCloneable Clone(Cloner cloner) { return new RandomBinaryVectorCreator(this, cloner); } 51 52 51 public RandomBinaryVectorCreator() 53 52 : base() { 54 Parameters.Add(new FixedValueParameter<DoubleValue>(TrueProbabilityParameterName, "Probability of true value", new DoubleValue(0.5)));53 Parameters.Add(new ValueLookupParameter<DoubleValue>(TrueProbabilityParameterName, "Probability of true value", new DoubleValue(0.5))); 55 54 } 56 55 57 56 [StorableHook(HookType.AfterDeserialization)] 58 57 private void AfterDeserialization() { 58 // BackwardsCompatibility3.3 59 #region Backwards compatible code, remove with 3.4 60 var defaultValue = 0.5; 61 if (Parameters.ContainsKey(TrueProbabilityParameterName) && Parameters[TrueProbabilityParameterName] is IFixedValueParameter<DoubleValue>) { 62 defaultValue = ((IFixedValueParameter<DoubleValue>)Parameters[TrueProbabilityParameterName]).Value.Value; 63 Parameters.Remove(TrueProbabilityParameterName); 64 } 59 65 if (!Parameters.ContainsKey(TrueProbabilityParameterName)) 60 Parameters.Add(new FixedValueParameter<DoubleValue>(TrueProbabilityParameterName, "Probability of true value", new DoubleValue(0.5))); 66 Parameters.Add(new ValueLookupParameter<DoubleValue>(TrueProbabilityParameterName, "Probability of true value", new DoubleValue(defaultValue))); 67 #endregion 61 68 } 62 69 … … 74 81 //remove with HL 3.4 75 82 if (trueProbability.IsAlmost(0.5)) 76 result = new BinaryVector(length, random);83 result = new BinaryVector(length, random); 77 84 else { 78 85 var values = new bool[length]; … … 85 92 86 93 protected override BinaryVector Create(IRandom random, IntValue length) { 87 return Apply(random, length.Value, TrueProbability); 94 if (TrueProbabilityParameter.ActualValue == null) throw new InvalidOperationException("RandomBinaryVectorCreator: Parameter " + TrueProbabilityParameter.ActualName + " could not be found."); 95 return Apply(random, length.Value, TrueProbabilityParameter.ActualValue.Value); 88 96 } 89 97 }
Note: See TracChangeset
for help on using the changeset viewer.