Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionModifiers/RealVectorConvexHullModifier.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionModifiers/RealVectorConvexHullModifier.cs	(revision 10282)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionModifiers/RealVectorConvexHullModifier.cs	(revision 10283)
@@ -41,4 +41,5 @@
     private const string CentroidMotionName = "Centroid Motion";
     private const string BestSolutionName = "Best Solution";
+    private const string IncrementalHullVolumeRatioName = "Incremental Hull Volume Ratio";
 
     public IValueParameter<DoubleArray> BestSolutionParameter {
@@ -65,5 +66,4 @@
         List<double[]> centroidList = new List<double[]>();
         var bestSolution = run.Results["Best Solution"] as SingleObjectiveTestFunctionSolution;
-        //var bestKnownSolution = ConvertRealVectorToVertexArray(bestSolution.BestKnownRealVector);
         var bestKnownSolution = BestSolutionParameter.Value;
 
@@ -72,4 +72,5 @@
         DataTable centroidDistancesTable = new DataTable(CentroidMovementDistancesName);
         DataTable centroidMotionTable = new DataTable(CentroidMotionName);
+        DataTable incrementalHullVolumeRatioTable = new DataTable(IncrementalHullVolumeRatioName);
         DoubleValue overallVolume = new DoubleValue();
         DoubleValue overallVolumeRatio = new DoubleValue();
@@ -80,9 +81,17 @@
         DataRow dtCentroidMotion = new DataRow("Motion");
         DataRow dtCentroidDistanceFromOptimum = new DataRow("Distance from optimum");
+        DataRow dtIncrementalHullVolume = new DataRow("Incremental Hull Volume");
+        DataRow dtIncrementalHullVolumeRatio = new DataRow("Incremental Hull Volume Ratio");
         centroidMotionTable.Rows.Add(dtCentroidMotion);
         centroidDistancesTable.Rows.Add(dtCentroidDistances);
         centroidDistancesTable.Rows.Add(dtCentroidDistanceFromOptimum);
         volDataTable.Rows.Add(dtVolumeRow);
+        volDataTable.Rows.Add(dtIncrementalHullVolume);
         nrOfPointsTable.Rows.Add(dtNrPointsRow);
+        incrementalHullVolumeRatioTable.Rows.Add(dtIncrementalHullVolumeRatio);
+
+        var boundsMatrix = run.Parameters["Bounds"] as DoubleMatrix;
+        var bounds = new double[] { boundsMatrix[0, 0], boundsMatrix[0, 1] };
+        double hyperCubeVolume = ConvexHullMeasures.CalculateHypercubeVolume(bounds, BestSolutionParameter.Value.Length);
 
         List<double[]> completeHull = null;
@@ -108,4 +117,11 @@
           }
 
+          if (completeHull != null && completeHull.Any() && completeHull.First().Length < completeHull.Count) {
+            double completeHullVolume = ConvexHullMeasures.CalculateVolume(completeHull);
+            double ratio = completeHullVolume / hyperCubeVolume;
+            dtIncrementalHullVolume.Values.Add(completeHullVolume);
+            dtIncrementalHullVolumeRatio.Values.Add(ratio);
+          }
+
           sols = solutionCache.GetSolutionsFromGeneration(++i);
         }
@@ -113,8 +129,5 @@
         if (completeHull != null && completeHull.Any() && completeHull.First().Length < completeHull.Count) {
           overallVolume.Value = ConvexHullMeasures.CalculateVolume(completeHull);
-          var boundsMatrix = run.Parameters["Bounds"] as DoubleMatrix;
-          var bounds = new double[] { boundsMatrix[0, 0], boundsMatrix[0, 1] };
-          double hyperHullVolume = ConvexHullMeasures.CalculateHypercubeVolume(bounds, BestSolutionParameter.Value.Length);
-          overallVolumeRatio.Value = overallVolume.Value / hyperHullVolume;
+          overallVolumeRatio.Value = overallVolume.Value / hyperCubeVolume;
         } else {
           overallVolume.Value = double.NaN;
@@ -133,4 +146,5 @@
         run.Results[CentroidMovementDistancesName] = centroidDistancesTable;
         run.Results[CentroidMotionName] = centroidMotionTable;
+        run.Results[IncrementalHullVolumeRatioName] = incrementalHullVolumeRatioTable;
       }
     }
