- Timestamp:
- 07/09/10 17:01:36 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/LaggedVariable.cs
r3993 r4022 34 34 [StorableClass] 35 35 [Item("LaggedVariable", "Represents a variable value with a time offset.")] 36 public sealed class LaggedVariable : Symbol{37 #region Properties38 [Storable]39 private double weightNu;40 public double WeightNu {41 get { return weightNu; }42 set { weightNu = value; }43 }44 [Storable]45 private double weightSigma;46 public double WeightSigma {47 get { return weightSigma; }48 set {49 if (weightSigma < 0.0) throw new ArgumentException("Negative sigma is not allowed.");50 weightSigma = value;51 }52 }53 [Storable]54 private double weightManipulatorNu;55 public double WeightManipulatorNu {56 get { return weightManipulatorNu; }57 set { weightManipulatorNu = value; }58 }59 [Storable]60 private double weightManipulatorSigma;61 public double WeightManipulatorSigma {62 get { return weightManipulatorSigma; }63 set {64 if (weightManipulatorSigma < 0.0) throw new ArgumentException("Negative sigma is not allowed.");65 weightManipulatorSigma = value;66 }67 }68 private List<string> variableNames;69 [Storable]70 public IEnumerable<string> VariableNames {71 get { return variableNames; }72 set {73 if (value == null) throw new ArgumentNullException();74 variableNames.Clear();75 variableNames.AddRange(value);76 }77 }36 public sealed class LaggedVariable : Variable { 37 //#region Properties 38 //[Storable] 39 //private double weightNu; 40 //public double WeightNu { 41 // get { return weightNu; } 42 // set { weightNu = value; } 43 //} 44 //[Storable] 45 //private double weightSigma; 46 //public double WeightSigma { 47 // get { return weightSigma; } 48 // set { 49 // if (weightSigma < 0.0) throw new ArgumentException("Negative sigma is not allowed."); 50 // weightSigma = value; 51 // } 52 //} 53 //[Storable] 54 //private double weightManipulatorNu; 55 //public double WeightManipulatorNu { 56 // get { return weightManipulatorNu; } 57 // set { weightManipulatorNu = value; } 58 //} 59 //[Storable] 60 //private double weightManipulatorSigma; 61 //public double WeightManipulatorSigma { 62 // get { return weightManipulatorSigma; } 63 // set { 64 // if (weightManipulatorSigma < 0.0) throw new ArgumentException("Negative sigma is not allowed."); 65 // weightManipulatorSigma = value; 66 // } 67 //} 68 //private List<string> variableNames; 69 //[Storable] 70 //public IEnumerable<string> VariableNames { 71 // get { return variableNames; } 72 // set { 73 // if (value == null) throw new ArgumentNullException(); 74 // variableNames.Clear(); 75 // variableNames.AddRange(value); 76 // } 77 //} 78 78 [Storable] 79 79 private int minLag; … … 88 88 set { maxLag = value; } 89 89 } 90 #endregion90 //#endregion 91 91 public LaggedVariable() 92 92 : base("LaggedVariable", "Represents a variable value with a time offset.") { 93 weightNu = 1.0;94 weightSigma = 1.0;95 weightManipulatorNu = 0.0;96 weightManipulatorSigma = 1.0;97 variableNames = new List<string>();98 minLag = 0; maxLag = 0;93 //weightNu = 1.0; 94 //weightSigma = 1.0; 95 //weightManipulatorNu = 0.0; 96 //weightManipulatorSigma = 1.0; 97 //variableNames = new List<string>(); 98 minLag = -1; maxLag = -1; 99 99 } 100 100 … … 105 105 public override IDeepCloneable Clone(Cloner cloner) { 106 106 LaggedVariable clone = (LaggedVariable)base.Clone(cloner); 107 clone.weightNu = weightNu;108 clone.weightSigma = weightSigma;109 clone.variableNames = new List<string>(variableNames);110 clone.weightManipulatorNu = weightManipulatorNu;111 clone.weightManipulatorSigma = weightManipulatorSigma;107 //clone.weightNu = weightNu; 108 //clone.weightSigma = weightSigma; 109 //clone.variableNames = new List<string>(variableNames); 110 //clone.weightManipulatorNu = weightManipulatorNu; 111 //clone.weightManipulatorSigma = weightManipulatorSigma; 112 112 clone.minLag = minLag; 113 113 clone.maxLag = maxLag; -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/LaggedVariableTreeNode.cs
r3997 r4022 30 30 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols { 31 31 [StorableClass] 32 public sealed class LaggedVariableTreeNode : SymbolicExpressionTreeTerminalNode {32 public sealed class LaggedVariableTreeNode : VariableTreeNode { 33 33 public new LaggedVariable Symbol { 34 34 get { return (LaggedVariable)base.Symbol; } 35 }36 [Storable]37 private double weight;38 public double Weight {39 get { return weight; }40 set { weight = value; }41 }42 [Storable]43 private string variableName;44 public string VariableName {45 get { return variableName; }46 set { variableName = value; }47 35 } 48 36 [Storable] … … 58 46 private LaggedVariableTreeNode(LaggedVariableTreeNode original) 59 47 : base(original) { 60 weight = original.weight;61 variableName = original.variableName;62 48 lag = original.lag; 63 49 } … … 73 59 public override void ResetLocalParameters(IRandom random) { 74 60 base.ResetLocalParameters(random); 75 weight = NormalDistributedRandom.NextDouble(random, Symbol.WeightNu, Symbol.WeightSigma);76 variableName = Symbol.VariableNames.SelectRandom(random);77 61 lag = random.Next(Symbol.MinLag, Symbol.MaxLag + 1); 78 62 } … … 80 64 public override void ShakeLocalParameters(IRandom random, double shakingFactor) { 81 65 base.ShakeLocalParameters(random, shakingFactor); 82 double x = NormalDistributedRandom.NextDouble(random, Symbol.WeightManipulatorNu, Symbol.WeightManipulatorSigma); 83 weight = weight + x * shakingFactor; 84 variableName = Symbol.VariableNames.SelectRandom(random); 85 lag = lag + random.Next(-1, 2); 66 lag = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, lag + random.Next(-1, 2))); 86 67 } 87 68 … … 92 73 93 74 public override string ToString() { 94 return weight.ToString("E4") + " " + variableName + " (t" + (lag > 0 ? "+" : "") + lag + ")"; 75 return base.ToString() + 76 " (t" + (lag > 0 ? "+" : "") + lag + ")"; 95 77 } 96 78 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/Variable.cs
r3993 r4022 34 34 [StorableClass] 35 35 [Item("Variable", "Represents a variable value.")] 36 public sealedclass Variable : Symbol {36 public class Variable : Symbol { 37 37 #region Properties 38 38 [Storable] … … 94 94 } 95 95 #endregion 96 public Variable() 97 : base("Variable", "Represents a variable value.") { 96 public Variable() : this("Variable", "Represents a variable value.") { } 97 public Variable(string name, string description) 98 : base(name, description) { 98 99 weightNu = 1.0; 99 100 weightSigma = 1.0; -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/VariableTreeNode.cs
r3997 r4022 30 30 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols { 31 31 [StorableClass] 32 public sealedclass VariableTreeNode : SymbolicExpressionTreeTerminalNode {32 public class VariableTreeNode : SymbolicExpressionTreeTerminalNode { 33 33 public new Variable Symbol { 34 34 get { return (Variable)base.Symbol; } … … 48 48 49 49 50 pr ivateVariableTreeNode() { }50 protected VariableTreeNode() { } 51 51 52 52 // copy constructor 53 pr ivateVariableTreeNode(VariableTreeNode original)53 protected VariableTreeNode(VariableTreeNode original) 54 54 : base(original) { 55 55 weight = original.weight;
Note: See TracChangeset
for help on using the changeset viewer.