Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/31/16 17:05:49 (8 years ago)
Author:
gkronber
Message:

#2608 worked on glucose prediction problem

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.GeneticProgramming.BloodGlucosePrediction/CurvedInsVariableTreeNode.cs

    r13865 r13867  
    3232      get { return (CurvedInsVariableSymbol)base.Symbol; }
    3333    }
     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    }
    3455    [StorableConstructor]
    3556    protected CurvedInsVariableTreeNode(bool deserializing) : base(deserializing) { }
    3657    protected CurvedInsVariableTreeNode(CurvedInsVariableTreeNode original, Cloner cloner)
    3758      : base(original, cloner) {
     59      this.alpha = original.alpha;
     60      this.beta = original.beta;
     61      this.weight = original.weight;
    3862    }
    3963    protected CurvedInsVariableTreeNode() { }
     
    4165
    4266    public override bool HasLocalParameters {
    43       get { return false; }
     67      get { return true; }
    4468    }
    4569
    4670    public override void ResetLocalParameters(IRandom random) {
    4771      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);
    4875    }
    4976
    5077    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
    5178      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));
    5285    }
    5386
     
    5790
    5891    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);
    6093    }
    6194  }
Note: See TracChangeset for help on using the changeset viewer.