Index: /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.sln
===================================================================
--- /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.sln	(revision 12368)
+++ /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.sln	(revision 12369)
@@ -2,7 +2,9 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2013
-VisualStudioVersion = 12.0.30723.0
+VisualStudioVersion = 12.0.31101.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm\HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{41DDAEFF-914B-49BB-BB67-A9271C21F24E}"
 EndProject
 Global
@@ -32,3 +34,6 @@
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(Performance) = preSolution
+		HasPerformanceSessions = true
+	EndGlobalSection
 EndGlobal
Index: /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.csproj
===================================================================
--- /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.csproj	(revision 12368)
+++ /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm-3.3.csproj	(revision 12369)
@@ -179,4 +179,5 @@
     <Compile Include="Comparators\WeightedParentsQualityComparator.cs" />
     <Compile Include="ISubScopesQualityComparatorOperator.cs" />
+    <Compile Include="LinearDiscreteReverseDoubleValueModifier.cs" />
     <Compile Include="OffspringCollector.cs" />
     <Compile Include="OffspringSelectors\IOffspringSelector.cs" />
Index: /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/LinearDiscreteReverseDoubleValueModifier.cs
===================================================================
--- /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/LinearDiscreteReverseDoubleValueModifier.cs	(revision 12369)
+++ /branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/LinearDiscreteReverseDoubleValueModifier.cs	(revision 12369)
@@ -0,0 +1,48 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Optimization.Operators {
+  /// <summary>
+  /// Modifies the value by linear (constant) fall or rise.
+  /// </summary>
+  [Item("LinearDiscreteReverseDoubleValueModifier", "Modifies the value by linear (constant) fall or rise.")]
+  [StorableClass]
+  public class LinearDiscreteReverseDoubleValueModifier : DiscreteDoubleValueModifier {
+    [StorableConstructor]
+    protected LinearDiscreteReverseDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected LinearDiscreteReverseDoubleValueModifier(LinearDiscreteReverseDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
+    public LinearDiscreteReverseDoubleValueModifier() : base() { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LinearDiscreteReverseDoubleValueModifier(this, cloner);
+    }
+
+    protected override double Modify(double value, double startValue, double endValue, int index, int startIndex, int endIndex) {
+      double k = (endValue - startValue) / (endIndex - startIndex);
+      double x = endIndex - index;
+      return k * x + startValue;
+    }
+  }
+}
