Changeset 13867 for branches/HeuristicLab.Problems.GeneticProgramming.BloodGlucosePrediction/CurvedInsVariableTreeNode.cs
- Timestamp:
- 05/31/16 17:05:49 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GeneticProgramming.BloodGlucosePrediction/CurvedInsVariableTreeNode.cs
r13865 r13867 32 32 get { return (CurvedInsVariableSymbol)base.Symbol; } 33 33 } 34 35 [Storable] 36 private double alpha; 37 public double Alpha { 38 get { return alpha; } 39 set { alpha = value; } 40 } 41 42 [Storable] 43 private double beta; 44 public double Beta { 45 get { return beta; } 46 set { beta = value; } 47 } 48 49 [Storable] 50 private double weight; 51 public double Weight { 52 get { return weight; } 53 set { weight = value; } 54 } 34 55 [StorableConstructor] 35 56 protected CurvedInsVariableTreeNode(bool deserializing) : base(deserializing) { } 36 57 protected CurvedInsVariableTreeNode(CurvedInsVariableTreeNode original, Cloner cloner) 37 58 : base(original, cloner) { 59 this.alpha = original.alpha; 60 this.beta = original.beta; 61 this.weight = original.weight; 38 62 } 39 63 protected CurvedInsVariableTreeNode() { } … … 41 65 42 66 public override bool HasLocalParameters { 43 get { return false; }67 get { return true; } 44 68 } 45 69 46 70 public override void ResetLocalParameters(IRandom random) { 47 71 base.ResetLocalParameters(random); 72 alpha = UniformDistributedRandom.NextDouble(random, Symbol.MinAlpha, Symbol.MaxAlpha); 73 beta = UniformDistributedRandom.NextDouble(random, Symbol.MinBeta, Symbol.MaxBeta); 74 weight = NormalDistributedRandom.NextDouble(random, 0, 10); 48 75 } 49 76 50 77 public override void ShakeLocalParameters(IRandom random, double shakingFactor) { 51 78 base.ShakeLocalParameters(random, shakingFactor); 79 weight += NormalDistributedRandom.NextDouble(random, 0, 1.0 * shakingFactor); 80 alpha += NormalDistributedRandom.NextDouble(random, 0, 1 * shakingFactor); 81 beta += NormalDistributedRandom.NextDouble(random, 0, 1 * shakingFactor); 82 83 alpha = Math.Min(Symbol.MaxAlpha, Math.Max(Symbol.MinAlpha, alpha)); 84 beta = Math.Min(Symbol.MinBeta, Math.Max(Symbol.MinBeta, beta)); 52 85 } 53 86 … … 57 90 58 91 public override string ToString() { 59 return string.Format(" curvedIns(alpha: {0}, beta: {1})", Symbol.Alpha, Symbol.Beta);92 return string.Format("{0:N3}*curvedIns(alpha: {1:N3}, beta: {2:N3})", weight, alpha, beta); 60 93 } 61 94 }
Note: See TracChangeset
for help on using the changeset viewer.