Index: trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/MinAvgMaxSymbolicExpressionTreeSizeAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/MinAvgMaxSymbolicExpressionTreeSizeAnalyzer.cs	(revision 3681)
+++ trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/MinAvgMaxSymbolicExpressionTreeSizeAnalyzer.cs	(revision 3683)
@@ -62,4 +62,6 @@
     [Storable]
     private MinAverageMaxValueAnalyzer valueAnalyzer;
+    [Storable]
+    private SymbolicExpressionTreeSizeCalculator sizeCalculator;
 
     #endregion
@@ -71,9 +73,10 @@
       Parameters.Add(new ValueLookupParameter<VariableCollection>(ResultsParameterName, "The results collection where the analysis values should be stored."));
 
-      UniformSubScopesProcessor subScopesProcessor = new UniformSubScopesProcessor();
-      SymbolicExpressionTreeSizeCalculator sizeCalculator = new SymbolicExpressionTreeSizeCalculator();
+      sizeCalculator = new SymbolicExpressionTreeSizeCalculator();
       valueAnalyzer = new MinAverageMaxValueAnalyzer();
       sizeCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter.Name;
+      sizeCalculator.SymbolicExpressionTreeParameter.Depth = SymbolicExpressionTreeParameter.Depth;
       sizeCalculator.SymbolicExpressionTreeSizeParameter.ActualName = SymbolicExpressionTreeSizeParameter.Name;
+      sizeCalculator.SymbolicExpressionTreeSizeParameter.Depth = SymbolicExpressionTreeSizeParameter.Depth;
       valueAnalyzer.ValueParameter.ActualName = sizeCalculator.SymbolicExpressionTreeSizeParameter.Name;
       valueAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeSizeParameter.Depth;
@@ -84,7 +87,6 @@
       valueAnalyzer.MinValueParameter.ActualName = "Min Tree Size";
 
-      OperatorGraph.InitialOperator = subScopesProcessor;
-      subScopesProcessor.Operator = sizeCalculator;
-      subScopesProcessor.Successor = valueAnalyzer;
+      OperatorGraph.InitialOperator = sizeCalculator;
+      sizeCalculator.Successor = valueAnalyzer;
       valueAnalyzer.Successor = null;
 
@@ -98,4 +100,5 @@
     private void Initialize() {
       SymbolicExpressionTreeParameter.DepthChanged += new EventHandler(SymbolicExpressionTreeParameter_DepthChanged);
+      SymbolicExpressionTreeSizeParameter.DepthChanged += new EventHandler(SymbolicExpressionTreeSizeParameter_DepthChanged);
     }
 
@@ -107,5 +110,15 @@
 
     private void SymbolicExpressionTreeParameter_DepthChanged(object sender, EventArgs e) {
+      OnDepthParameterChanged();
+    }
+
+    private void SymbolicExpressionTreeSizeParameter_DepthChanged(object sender, EventArgs e) {
+      OnDepthParameterChanged();
+    }
+
+    private void OnDepthParameterChanged() {
       valueAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
+      sizeCalculator.SymbolicExpressionTreeParameter.Depth = SymbolicExpressionTreeParameter.Depth;
+      sizeCalculator.SymbolicExpressionTreeSizeParameter.Depth = SymbolicExpressionTreeSizeParameter.Depth;
     }
   }
Index: trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/SymbolicExpressionTreeSizeCalculator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/SymbolicExpressionTreeSizeCalculator.cs	(revision 3681)
+++ trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/SymbolicExpressionTreeSizeCalculator.cs	(revision 3683)
@@ -42,19 +42,19 @@
 
     #region parameter properties
-    public ILookupParameter<SymbolicExpressionTree> SymbolicExpressionTreeParameter {
-      get { return (ILookupParameter<SymbolicExpressionTree>)Parameters[SymbolicExpressionTreeParameterName]; }
+    public ScopeTreeLookupParameter<SymbolicExpressionTree> SymbolicExpressionTreeParameter {
+      get { return (ScopeTreeLookupParameter<SymbolicExpressionTree>)Parameters[SymbolicExpressionTreeParameterName]; }
     }
-    public ILookupParameter<DoubleValue> SymbolicExpressionTreeSizeParameter {
-      get { return (ILookupParameter<DoubleValue>)Parameters[SymbolicExpressionTreeSizeParameterName]; }
+    public ScopeTreeLookupParameter<DoubleValue> SymbolicExpressionTreeSizeParameter {
+      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters[SymbolicExpressionTreeSizeParameterName]; }
     }
     #endregion
 
     #region properties
-    public SymbolicExpressionTree SymbolicExpressionTree {
-      get { return SymbolicExpressionTreeParameter.ActualValue;}
+    public ItemArray<SymbolicExpressionTree> SymbolicExpressionTree {
+      get { return SymbolicExpressionTreeParameter.ActualValue; }
     }
-    public DoubleValue SymbolicExpressionTreeSize {
-      get { return SymbolicExpressionTreeSizeParameter.ActualValue;}
-      set { SymbolicExpressionTreeSizeParameter.ActualValue = value;}
+    public ItemArray<DoubleValue> SymbolicExpressionTreeSize {
+      get { return SymbolicExpressionTreeSizeParameter.ActualValue; }
+      set { SymbolicExpressionTreeSizeParameter.ActualValue = value; }
     }
     #endregion
@@ -62,10 +62,12 @@
     public SymbolicExpressionTreeSizeCalculator()
       : base() {
-      Parameters.Add(new LookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose size should be calculated."));
-      Parameters.Add(new LookupParameter<DoubleValue>(SymbolicExpressionTreeSizeParameterName, "The tree size of the symbolic expression tree."));
+      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose size should be calculated."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>(SymbolicExpressionTreeSizeParameterName, "The tree size of the symbolic expression tree."));
     }
 
     public override IOperation Apply() {
-      SymbolicExpressionTreeSize = new DoubleValue(SymbolicExpressionTree.Size);
+      ItemArray<SymbolicExpressionTree> trees = SymbolicExpressionTree;
+      SymbolicExpressionTreeSize = new ItemArray<DoubleValue>(from tree in trees
+                                                              select new DoubleValue(tree.Size));
       return base.Apply();
     }
