Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Constant.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Constant.cs	(revision 3258)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Constant.cs	(revision 3269)
@@ -21,6 +21,38 @@
 
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Symbols {
+  [StorableClass]
+  [Item("Constant", "Represents a constant value.")]
   public sealed class Constant : Symbol {
+    #region Parameter Properties
+    public IValueParameter<DoubleValue> MinValueParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["MinValue"]; }
+    }
+    public IValueParameter<DoubleValue> MaxValueParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["MaxValue"]; }
+    }
+    #endregion
+    #region Propeties
+    public DoubleValue MinValue {
+      get { return MinValueParameter.Value; }
+      set { MinValueParameter.Value = value; }
+    }
+    public DoubleValue MaxValue {
+      get { return MaxValueParameter.Value; }
+      set { MaxValueParameter.Value = value; }
+    }
+    #endregion
+    public Constant()
+      : base() {
+      Parameters.Add(new ValueParameter<DoubleValue>("MinValue", "The minimal value of the constant.", new DoubleValue(-20.0)));
+      Parameters.Add(new ValueParameter<DoubleValue>("MaxValue", "The maximal value of the constant.", new DoubleValue(20.0)));
+    }
+
     public override SymbolicExpressionTreeNode CreateTreeNode() {
       return new ConstantTreeNode(this);
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/ConstantTreeNode.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/ConstantTreeNode.cs	(revision 3258)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/ConstantTreeNode.cs	(revision 3269)
@@ -24,7 +24,13 @@
 using System.Collections.Generic;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Symbols {
   [StorableClass]
   public sealed class ConstantTreeNode : SymbolicExpressionTreeTerminalNode {
+    public new Constant Symbol {
+      get { return (Constant)base.Symbol; }
+    }
     public override bool HasLocalParameters {
       get {
@@ -39,5 +45,4 @@
       set { constantValue = value; }
     }
-
     // copy constructor
     private ConstantTreeNode(ConstantTreeNode original)
@@ -48,4 +53,10 @@
     public ConstantTreeNode(Constant constantSymbol) : base(constantSymbol) { }
 
+    public override void ResetLocalParameters(IRandom random) {
+      base.ResetLocalParameters(random);
+      var range = Symbol.MaxValue.Value - Symbol.MaxValue.Value;
+      Value = random.NextDouble() * range - Symbol.MinValue.Value;
+    }
+
     public override object Clone() {
       return new ConstantTreeNode(this);
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Variable.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Variable.cs	(revision 3258)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/Variable.cs	(revision 3269)
@@ -21,6 +21,46 @@
 
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Symbols {
+  [StorableClass]
+  [Item("Variable", "Represents a variable value.")]
   public sealed class Variable : Symbol {
+    #region Parameter Properties
+    public IValueParameter<DoubleValue> WeightNuParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["WeightNu"]; }
+    }
+    public IValueParameter<DoubleValue> WeightSigmaParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["WeightSigma"]; }
+    }
+    public IValueParameter<ItemList<StringValue>> VariableNamesParameter {
+      get { return (IValueParameter<ItemList<StringValue>>)Parameters["VariableNames"]; }
+    }
+    #endregion
+    #region Properties
+    public DoubleValue WeightNu {
+      get { return WeightNuParameter.Value; }
+      set { WeightNuParameter.Value = value; }
+    }
+    public DoubleValue WeightSigma {
+      get { return WeightSigmaParameter.Value; }
+      set { WeightSigmaParameter.Value = value; }
+    }
+    public ItemList<StringValue> VariableNames {
+      get { return VariableNamesParameter.Value; }
+      set { VariableNamesParameter.Value = value; }
+    }
+    #endregion
+    public Variable()
+      : base() {
+      Parameters.Add(new ValueParameter<DoubleValue>("WeightNu", "The mean value for the initialization of weight ((N(nu, sigma)).", new DoubleValue(1.0)));
+      Parameters.Add(new ValueParameter<DoubleValue>("WeightSigma", "The sigma value for the initialization of weight (N(nu, sigma))", new DoubleValue(1.0)));
+      Parameters.Add(new ValueParameter<ItemList<StringValue>>("VariableNames", "The list of possible variable names for initialization."));
+    }
+
     public override SymbolicExpressionTreeNode CreateTreeNode() {
       return new VariableTreeNode(this);
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/VariableTreeNode.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/VariableTreeNode.cs	(revision 3258)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Symbols/VariableTreeNode.cs	(revision 3269)
@@ -24,8 +24,13 @@
 using System.Collections.Generic;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Symbols {
   [StorableClass]
   public sealed class VariableTreeNode : SymbolicExpressionTreeTerminalNode {
-    
+    public new Variable Symbol {
+      get { return (Variable)base.Symbol; }
+    }
     private double weight;
     [Storable]
@@ -50,4 +55,12 @@
     public VariableTreeNode(Variable variableSymbol) : base(variableSymbol) { }
 
+    public override void ResetLocalParameters(IRandom random) {
+      base.ResetLocalParameters(random);
+      var normalDistributedRNG = new NormalDistributedRandom(random, Symbol.WeightNu.Value, Symbol.WeightSigma.Value);
+      weight = normalDistributedRNG.NextDouble();
+      int variableIndex = random.Next(0, Symbol.VariableNames.Count);
+      variableName = Symbol.VariableNames[variableIndex].Value;
+    }
+
     public override object Clone() {
       return new VariableTreeNode(this);
