Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ValidationBestScaledSymbolicRegressionSolutionAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ValidationBestScaledSymbolicRegressionSolutionAnalyzer.cs	(revision 3791)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ValidationBestScaledSymbolicRegressionSolutionAnalyzer.cs	(revision 3800)
@@ -51,5 +51,6 @@
     private const string SamplesStartParameterName = "SamplesStart";
     private const string SamplesEndParameterName = "SamplesEnd";
-    private const string QualityParameterName = "ScaledQuality";
+    private const string QualityParameterName = "Quality";
+    private const string ScaledQualityParameterName = "ScaledQuality";
     private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
     private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
@@ -65,4 +66,7 @@
       get { return (ScopeTreeLookupParameter<SymbolicExpressionTree>)Parameters[SymbolicExpressionTreeParameterName]; }
     }
+    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters[QualityParameterName]; }
+    }
     public IValueLookupParameter<ISymbolicExpressionTreeInterpreter> SymbolicExpressionTreeInterpreterParameter {
       get { return (IValueLookupParameter<ISymbolicExpressionTreeInterpreter>)Parameters[SymbolicExpressionTreeInterpreterParameterName]; }
@@ -102,8 +106,11 @@
     [Storable]
     private BestAverageWorstQualityCalculator bestAvgWorstValidationQualityCalculator;
+    [Storable]
+    private BestQualityMemorizer bestKnownQualityMemorizer;
 
     public ValidationBestScaledSymbolicRegressionSolutionAnalyzer()
       : base() {
       Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>(QualityParameterName, "The quality of the symbolic expression trees to analyze."));
       Parameters.Add(new ValueLookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used for the analysis of symbolic expression trees."));
       Parameters.Add(new ValueLookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data for which the symbolic expression tree is a solution."));
@@ -122,6 +129,6 @@
       SymbolicRegressionMeanSquaredErrorEvaluator validationMseEvaluator = new SymbolicRegressionMeanSquaredErrorEvaluator();
       bestSolutionAnalyzer = new BestSymbolicRegressionSolutionAnalyzer();
-      BestQualityMemorizer bestKnownQualityMemorizer = new BestQualityMemorizer();
-       bestAvgWorstValidationQualityCalculator = new BestAverageWorstQualityCalculator();
+      bestKnownQualityMemorizer = new BestQualityMemorizer();
+      bestAvgWorstValidationQualityCalculator = new BestAverageWorstQualityCalculator();
       DataTableValuesCollector validationValuesCollector = new DataTableValuesCollector();
       ResultsCollector resultsCollector = new ResultsCollector();
@@ -140,5 +147,5 @@
       validationMseEvaluator.SymbolicExpressionTreeParameter.ActualName = ScaledSymbolicExpressionTreeParameterName;
       validationMseEvaluator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
-      validationMseEvaluator.QualityParameter.ActualName = QualityParameterName;
+      validationMseEvaluator.QualityParameter.ActualName = ScaledQualityParameterName;
       validationMseEvaluator.RegressionProblemDataParameter.ActualName = ProblemDataParameter.Name;
       validationMseEvaluator.SamplesStartParameter.ActualName = SamplesStartParameter.Name;
@@ -149,5 +156,5 @@
       bestSolutionAnalyzer.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name;
       bestSolutionAnalyzer.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
-      bestSolutionAnalyzer.QualityParameter.ActualName = QualityParameterName;
+      bestSolutionAnalyzer.QualityParameter.ActualName = ScaledQualityParameterName;
       bestSolutionAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
       bestSolutionAnalyzer.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
@@ -159,5 +166,5 @@
       bestAvgWorstValidationQualityCalculator.BestQualityParameter.ActualName = CurrentBestValidationQualityParameterName;
       bestAvgWorstValidationQualityCalculator.MaximizationParameter.Value = new BoolValue(false);
-      bestAvgWorstValidationQualityCalculator.QualityParameter.ActualName = QualityParameterName;
+      bestAvgWorstValidationQualityCalculator.QualityParameter.ActualName = ScaledQualityParameterName;
       bestAvgWorstValidationQualityCalculator.QualityParameter.Depth = SymbolicExpressionTreeParameter.Depth;
       bestAvgWorstValidationQualityCalculator.WorstQualityParameter.ActualName = "Current worst validation quality";
@@ -165,6 +172,6 @@
       bestKnownQualityMemorizer.BestQualityParameter.ActualName = BestKnownQualityParameterName;
       bestKnownQualityMemorizer.MaximizationParameter.Value = new BoolValue(false);
-      bestKnownQualityMemorizer.QualityParameter.ActualName = CurrentBestValidationQualityParameterName;
-      bestKnownQualityMemorizer.QualityParameter.Depth = 0;
+      bestKnownQualityMemorizer.QualityParameter.ActualName = QualityParameter.Name;
+      bestKnownQualityMemorizer.QualityParameter.Depth = QualityParameter.Depth;
 
       validationValuesCollector.DataTableParameter.ActualName = "Validation quality";
@@ -213,4 +220,5 @@
       bestSolutionAnalyzer.QualityParameter.Depth = SymbolicExpressionTreeParameter.Depth;
       bestAvgWorstValidationQualityCalculator.QualityParameter.Depth = SymbolicExpressionTreeParameter.Depth;
+      bestKnownQualityMemorizer.QualityParameter.Depth = SymbolicExpressionTreeParameter.Depth;
     }
   }
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionProblem.cs	(revision 3791)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionProblem.cs	(revision 3800)
@@ -247,4 +247,5 @@
     protected override void OnDataAnalysisProblemChanged(EventArgs e) {
       base.OnDataAnalysisProblemChanged(e);
+      BestKnownQualityParameter.Value = null;
       // paritions could be changed
       ParameterizeEvaluator();
@@ -403,4 +404,5 @@
           bestValidationSolutionAnalyzer.SamplesEndParameter.Value = ValidationSamplesEnd;
           bestValidationSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
+          bestValidationSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
         }
         var varFreqAnalyzer = analyzer as SymbolicRegressionVariableFrequencyAnalyzer;
