Index: branches/2965_CancelablePersistence/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Physics/AircraftLift.cs
===================================================================
--- branches/2965_CancelablePersistence/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Physics/AircraftLift.cs	(revision 16321)
+++ branches/2965_CancelablePersistence/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Physics/AircraftLift.cs	(revision 16433)
@@ -27,18 +27,26 @@
 namespace HeuristicLab.Problems.Instances.DataAnalysis {
   class AircraftLift : ArtificialRegressionDataDescriptor {
-    public override string Name { get { return "Aircraft Lift Coefficient C_L = x1*(x2 - 2) + x3*x4*x5/x6"; } }
+    public override string Name { get { return "Aircraft Lift Coefficient C_L = C_La (a - a0) + C_Ld_e d_e S_HT / S_ref"; } }
 
     public override string Description {
       get {
-        return "A full description of this problem instance is given in the paper: A multilevel block building algorithm for fast modeling generalized separable systems. " + Environment.NewLine +
-               "Authors: Chen Chen, Changtong Luo, Zonglin Jiang" + Environment.NewLine +
-               "Function: f(X) = x1*(x2 - 2) + x3*x4*x5/x6" + Environment.NewLine +
-               "with x1 in [0.4, 0.8], x2 in [5, 10], x3 in [0.4, 0.8], x4 in [5, 10], x5 in [1, 1.5], x6 in [5, 7]";
+        return "A full description of this problem instance is given in: " + Environment.NewLine +
+          "Chen Chen, Changtong Luo, Zonglin Jiang, \"A multilevel block building algorithm for fast " +
+          "modeling generalized separable systems\", Expert Systems with Applications, Volume 109, 2018, " +
+          "Pages 25-34 https://doi.org/10.1016/j.eswa.2018.05.021. " + Environment.NewLine +
+          "Function: C_L = C_La (a - a0) + C_Ld_e d_e S_HT / S_ref" + Environment.NewLine +
+          "with C_La ∈ [0.4, 0.8]," + Environment.NewLine +
+          "a ∈ [5°, 10°]," + Environment.NewLine +
+          "C_Ld_e ∈ [0.4, 0.8]," + Environment.NewLine +
+          "d_e ∈ [5°, 10°]," + Environment.NewLine +
+          "S_HT ∈ [1m², 1.5m²]," + Environment.NewLine +
+          "S_ref ∈ [5m², 7m²]," + Environment.NewLine +
+          "a0 is set to -2°";
       }
     }
 
-    protected override string TargetVariable { get { return "f(X)"; } }
-    protected override string[] VariableNames { get { return new string[] { "x1", "x2", "x3", "x4", "x5", "x6", "f(X)" }; } }
-    protected override string[] AllowedInputVariables { get { return new string[] { "x1", "x2", "x3", "x4", "x5", "x6" }; } }
+    protected override string TargetVariable { get { return "C_L"; } }
+    protected override string[] VariableNames { get { return new string[] { "C_La", "a", "a0", "C_Ld_e", "d_e", "S_HT", "C_L" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "C_La", "a", "a0", "C_Ld_e", "d_e", "S_HT" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -58,23 +66,25 @@
 
       List<List<double>> data = new List<List<double>>();
-      var x1 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0.4, 0.8).ToList();
-      var x2 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 10.0).ToList();
-      var x3 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0.4, 0.8).ToList();
-      var x4 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 10.0).ToList();
-      var x5 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1.0, 1.5).ToList();
-      var x6 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 7.0).ToList();
+      var C_La = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0.4, 0.8).ToList();
+      var a = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 10.0).ToList();
+      var C_Ld_e = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0.4, 0.8).ToList();
+      var d_e = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 10.0).ToList();
+      var S_HT = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1.0, 1.5).ToList();
+      var S_ref = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5.0, 7.0).ToList();
 
-      List<double> fx = new List<double>();
-      data.Add(x1);
-      data.Add(x2);
-      data.Add(x3);
-      data.Add(x4);
-      data.Add(x5);
-      data.Add(x6);
-      data.Add(fx);
+      List<double> C_L = new List<double>();
+      data.Add(C_La);
+      data.Add(a);
+      data.Add(C_Ld_e);
+      data.Add(d_e);
+      data.Add(S_HT);
+      data.Add(S_ref);
+      data.Add(C_L);
 
-      for (int i = 0; i < x1.Count; i++) {
-        double fxi = x1[i] * (x2[i] - 2.0) + x3[i] * x4[i] * x5[i] / x6[i];
-        fx.Add(fxi);
+      double a0 = -2.0;
+
+      for (int i = 0; i < C_La.Count; i++) {
+        double C_Li = C_La[i] * (a[i] - a0) + C_Ld_e[i] * d_e[i] * S_HT[i] / S_ref[i];
+        C_L.Add(C_Li);
       }
 
