Index: able/HeuristicLab.Algorithms.EvolutionStrategy/3.3/SelfAdaptiveCrossover.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.EvolutionStrategy/3.3/SelfAdaptiveCrossover.cs	(revision 13206)
+++ 	(revision )
@@ -1,71 +1,0 @@
-﻿#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.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Algorithms.EvolutionStrategy {
-  [Item("SelfAdaptiveCrossover", "Applies one crossover on the endogeneous strategy parameters and another on the actual solution encoding.")]
-  [StorableClass]
-  public class SelfAdaptiveCrossover : SingleSuccessorOperator, ICrossover, IStochasticOperator {
-    public override bool CanChangeName {
-      get { return false; }
-    }
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ValueParameter<IRealVectorCrossover> StrategyVectorCrossoverParameter {
-      get { return (ValueParameter<IRealVectorCrossover>)Parameters["StrategyVectorCrossover"]; }
-    }
-    public ConstrainedValueParameter<ICrossover> CrossoverParameter {
-      get { return (ConstrainedValueParameter<ICrossover>)Parameters["Crossover"]; }
-    }
-
-    public IRealVectorCrossover StrategyVectorCrossover {
-      get { return StrategyVectorCrossoverParameter.Value; }
-      set { StrategyVectorCrossoverParameter.Value = value; }
-    }
-    public ICrossover Crossover {
-      get { return CrossoverParameter.Value; }
-      set { CrossoverParameter.Value = value; }
-    }
-
-    public SelfAdaptiveCrossover()
-      : base() {
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
-      Parameters.Add(new ValueParameter<IRealVectorCrossover>("StrategyVectorCrossover", "The crossover operator for the strategy vectors.", new AverageCrossover()));
-      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The solution specific crossover operator."));
-    }
-
-    public override IOperation Apply() {
-      OperationCollection next = new OperationCollection();
-      next.Add(ExecutionContext.CreateOperation(StrategyVectorCrossover));
-      if (Crossover != null)
-        next.Add(ExecutionContext.CreateOperation(Crossover));
-      next.Add(base.Apply());
-      return next;
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.EvolutionStrategy/3.3/StrategyVectorManipulator.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.EvolutionStrategy/3.3/StrategyVectorManipulator.cs	(revision 13206)
+++ 	(revision )
@@ -1,91 +1,0 @@
-﻿#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.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Data;
-using HeuristicLab.Random;
-using System;
-
-namespace HeuristicLab.Algorithms.EvolutionStrategy {
-  /// <summary>
-  /// Mutates the endogenous strategy parameters.
-  /// </summary>
-  public class StrategyVectorManipulator : SingleSuccessorOperator, IStochasticOperator {
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ILookupParameter<RealVector> StrategyVectorParameter {
-      get { return (ILookupParameter<RealVector>)Parameters["StrategyVector"]; }
-    }
-    public IValueLookupParameter<DoubleValue> GeneralLearningRateParameter {
-      get { return (IValueLookupParameter<DoubleValue>)Parameters["GeneralLearningRate"]; }
-    }
-    public IValueLookupParameter<DoubleValue> LearningRateParameter {
-      get { return (IValueLookupParameter<DoubleValue>)Parameters["LearningRate"]; }
-    }
-    /// <summary>
-    /// Initializes a new instance of <see cref="StrategyVectorManipulator"/> with four 
-    /// parameters (<c>Random</c>, <c>StrategyVector</c>, <c>GeneralLearningRate</c> and
-    /// <c>LearningRate</c>).
-    /// </summary>
-    public StrategyVectorManipulator()
-      : base() {
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
-      Parameters.Add(new LookupParameter<RealVector>("StrategyVector", "The strategy vector to manipulate."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("GeneralLearningRate", "The general learning rate (tau0)."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("LearningRate", "The learning rate (tau)."));
-    }
-
-    /// <summary>
-    /// Mutates the endogenous strategy parameters.
-    /// </summary>
-    /// <param name="random">The random number generator to use.</param>
-    /// <param name="vector">The strategy vector to manipulate.</param>
-    /// <param name="generalLearningRate">The general learning rate dampens the mutation over all dimensions.</param>
-    /// <param name="learningRate">The learning rate dampens the mutation in each dimension.</param>
-    public static void Apply(IRandom random, RealVector vector, double generalLearningRate, double learningRate) {
-      NormalDistributedRandom N = new NormalDistributedRandom(random, 0.0, 1.0);
-      double generalMultiplier = Math.Exp(generalLearningRate * N.NextDouble());
-      for (int i = 0; i < vector.Length; i++) {
-        vector[i] *= generalMultiplier * Math.Exp(learningRate * N.NextDouble());
-      }
-    }
-    /// <summary>
-    /// Mutates the endogenous strategy parameters.
-    /// </summary>
-    /// <remarks>Calls <see cref="OperatorBase.Apply"/> of base class <see cref="OperatorBase"/>.</remarks>
-    /// <inheritdoc select="returns"/>
-    public override IOperation Apply() {
-      RealVector strategyParams = StrategyVectorParameter.ActualValue;
-      if (strategyParams != null) { // only apply if there is a strategy vector
-        IRandom random = RandomParameter.ActualValue;
-        double tau0 = GeneralLearningRateParameter.ActualValue.Value;
-        double tau = LearningRateParameter.ActualValue.Value;
-        Apply(random, strategyParams, tau0, tau);
-      }
-      return base.Apply();
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/BasicMultiObjectiveQualityAnalyzer.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/BasicMultiObjectiveQualityAnalyzer.cs	(revision 13206)
+++ 	(revision )
@@ -1,98 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  [Item("BasicMultiObjectiveSolutionAnalyzer", "Basic analyzer for multiobjective problems that collects and presents the current pareto front as double matrix.")]
-  [StorableClass]
-  public class BasicMultiObjectiveQualityAnalyzer : SingleSuccessorOperator, IAnalyzer {
-    public IScopeTreeLookupParameter<IntValue> RankParameter {
-      get { return (IScopeTreeLookupParameter<IntValue>)Parameters["Rank"]; }
-    }
-    public IScopeTreeLookupParameter<DoubleArray> QualitiesParameter {
-      get { return (IScopeTreeLookupParameter<DoubleArray>)Parameters["Qualities"]; }
-    }
-    public ILookupParameter<ResultCollection> ResultsParameter {
-      get { return (ILookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-
-    [StorableConstructor]
-    protected BasicMultiObjectiveQualityAnalyzer(bool deserializing) : base(deserializing) { }
-    protected BasicMultiObjectiveQualityAnalyzer(BasicMultiObjectiveQualityAnalyzer original, Cloner cloner) : base(original, cloner) { }
-    public BasicMultiObjectiveQualityAnalyzer() {
-      Parameters.Add(new ScopeTreeLookupParameter<IntValue>("Rank", "The rank of solution describes to which front it belongs."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The vector of qualities of each solution."));
-      Parameters.Add(new LookupParameter<ResultCollection>("Results", "The result collection to store the front to."));
-    }
-
-    public override IOperation Apply() {
-      ItemArray<IntValue> ranks = RankParameter.ActualValue;
-      ItemArray<DoubleArray> qualities = QualitiesParameter.ActualValue;
-      ResultCollection results = ResultsParameter.ActualValue;
-      
-      bool populationLevel = RankParameter.Depth == 1;
-
-      int objectives = qualities[0].Length;
-      int frontSize = ranks.Count(x => x.Value == 0);
-      ItemArray<IScope> paretoArchive = null;
-      if (populationLevel) paretoArchive = new ItemArray<IScope>(frontSize);
-
-      DoubleMatrix front = new DoubleMatrix(frontSize, objectives);
-      int counter = 0;
-      for (int i = 0; i < ranks.Length; i++) {
-        if (ranks[i].Value == 0) {
-          for (int k = 0; k < objectives; k++)
-            front[counter, k] = qualities[i][k];
-          if (populationLevel) {
-            paretoArchive[counter] = (IScope)ExecutionContext.Scope.SubScopes[i].Clone();
-          }
-          counter++;
-        }
-      }
-
-      if (results.ContainsKey("Pareto Front"))
-        results["Pareto Front"].Value = front;
-      else results.Add(new Result("Pareto Front", front));
-
-      if (populationLevel) {
-        if (results.ContainsKey("Pareto Archive"))
-          results["Pareto Archive"].Value = paretoArchive;
-        else results.Add(new Result("Pareto Archive", paretoArchive));
-      }
-      return base.Apply();
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new BasicMultiObjectiveQualityAnalyzer(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/CrowdedComparisonSorter.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/CrowdedComparisonSorter.cs	(revision 13206)
+++ 	(revision )
@@ -1,99 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  /// <summary>
-  /// CrowdedComparisonSorter as described in: Deb, Pratap, Agrawal and Meyarivan, "A Fast and Elitist Multiobjective
-  /// Genetic Algorithm: NSGA-II", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002
-  /// </summary>
-  [Item("CrowdedComparisonSorter", @"CrowdedComparisonSorter as described in: Deb, Pratap, Agrawal and Meyarivan, ""A Fast and Elitist Multiobjective
-Genetic Algorithm: NSGA-II"", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002.")]
-  [StorableClass]
-  public class CrowdedComparisonSorter : SingleSuccessorOperator {
-
-    public IScopeTreeLookupParameter<IntValue> RankParameter {
-      get { return (IScopeTreeLookupParameter<IntValue>)Parameters["Rank"]; }
-    }
-
-    public IScopeTreeLookupParameter<DoubleValue> CrowdingDistanceParameter {
-      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["CrowdingDistance"]; }
-    }
-
-    [StorableConstructor]
-    protected CrowdedComparisonSorter(bool deserializing) : base(deserializing) { }
-    protected CrowdedComparisonSorter(CrowdedComparisonSorter original, Cloner cloner) : base(original, cloner) { }
-    public CrowdedComparisonSorter() {
-      Parameters.Add(new ScopeTreeLookupParameter<IntValue>("Rank", "The rank of the solution."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("CrowdingDistance", "The crowding distance of the solution."));
-    }
-
-    public override IOperation Apply() {
-      ItemArray<IntValue> ranks = RankParameter.ActualValue;
-      ItemArray<DoubleValue> distances = CrowdingDistanceParameter.ActualValue;
-      int size = ranks.Length;
-      int[] indices = Enumerable.Range(0, size).ToArray();
-
-      IScope[] scopes = ExecutionContext.Scope.SubScopes.ToArray();
-      Array.Sort(indices, scopes, new CustomComparer(ranks, distances));
-      ExecutionContext.Scope.SubScopes.Clear();
-      ExecutionContext.Scope.SubScopes.AddRange(scopes);
-      return base.Apply();
-    }
-
-    private class CustomComparer : IComparer<int> {
-      ItemArray<IntValue> ranks;
-      ItemArray<DoubleValue> distances;
-
-      public CustomComparer(ItemArray<IntValue> ranks, ItemArray<DoubleValue> distances) {
-        this.ranks = ranks;
-        this.distances = distances;
-      }
-
-      #region IComparer<int> Members
-
-      public int Compare(int x, int y) {
-        if (ranks[x].Value < ranks[y].Value) return -1;
-        else if (ranks[x].Value > ranks[y].Value) return 1;
-        else { // ranks are the same -> compare by distance
-          if (distances[x].Value > distances[y].Value) return -1;
-          else if (distances[x].Value < distances[y].Value) return 1;
-          else return 0; // same distance
-        }
-      }
-
-      #endregion
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new CrowdedComparisonSorter(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/CrowdedTournamentSelector.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/CrowdedTournamentSelector.cs	(revision 13206)
+++ 	(revision )
@@ -1,119 +1,0 @@
-﻿#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 System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
-using HeuristicLab.Selection;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  [Item("CrowdedTournamentSelector", "Selects solutions using tournament selection by using the partial order defined in Deb et al. 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6(2), pp. 182-197.")]
-  [StorableClass]
-  public class CrowdedTournamentSelector : Selector, IMultiObjectiveSelector, IStochasticOperator {
-    public ILookupParameter<BoolArray> MaximizationParameter {
-      get { return (ILookupParameter<BoolArray>)Parameters["Maximization"]; }
-    }
-    public IValueLookupParameter<IntValue> NumberOfSelectedSubScopesParameter {
-      get { return (IValueLookupParameter<IntValue>)Parameters["NumberOfSelectedSubScopes"]; }
-    }
-    public IValueParameter<BoolValue> CopySelectedParameter {
-      get { return (IValueParameter<BoolValue>)Parameters["CopySelected"]; }
-    }
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ILookupParameter<ItemArray<DoubleArray>> QualitiesParameter {
-      get { return (ILookupParameter<ItemArray<DoubleArray>>)Parameters["Qualities"]; }
-    }
-    public IScopeTreeLookupParameter<IntValue> RankParameter {
-      get { return (IScopeTreeLookupParameter<IntValue>)Parameters["Rank"]; }
-    }
-    public IScopeTreeLookupParameter<DoubleValue> CrowdingDistanceParameter {
-      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["CrowdingDistance"]; }
-    }
-    public IValueLookupParameter<IntValue> GroupSizeParameter {
-      get { return (IValueLookupParameter<IntValue>)Parameters["GroupSize"]; }
-    }
-
-    public BoolValue CopySelected {
-      get { return CopySelectedParameter.Value; }
-      set { CopySelectedParameter.Value = value; }
-    }
-
-    [StorableConstructor]
-    protected CrowdedTournamentSelector(bool deserializing) : base(deserializing) { }
-    protected CrowdedTournamentSelector(CrowdedTournamentSelector original, Cloner cloner) : base(original, cloner) { }
-    public CrowdedTournamentSelector()
-      : base() {
-      Parameters.Add(new LookupParameter<BoolArray>("Maximization", "For each objective determines whether it should be maximized or minimized."));
-      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfSelectedSubScopes", "The number of sub-scopes that should be selected."));
-      Parameters.Add(new ValueParameter<BoolValue>("CopySelected", "True if the selected scopes are to be copied (cloned) otherwise they're moved."));
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The solutions' qualities vector."));
-      Parameters.Add(new ScopeTreeLookupParameter<IntValue>("Rank", "The solutions' domination rank."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("CrowdingDistance", "The solutions' crowding distance values."));
-      Parameters.Add(new ValueLookupParameter<IntValue>("GroupSize", "The size of the group from which the best will be chosen.", new IntValue(2)));
-    }
-
-    protected override IScope[] Select(List<IScope> scopes) {
-      IRandom random = RandomParameter.ActualValue;
-      List<int> ranks = RankParameter.ActualValue.Select(x => x.Value).ToList();
-      List<double> crowdingDistance = CrowdingDistanceParameter.ActualValue.Select(x => x.Value).ToList();
-      int count = NumberOfSelectedSubScopesParameter.ActualValue.Value;
-      int groupSize = GroupSizeParameter.ActualValue.Value;
-      bool copy = CopySelected.Value;
-      IScope[] selected = new IScope[count];
-
-      for (int i = 0; i < count; i++) {
-        int best = random.Next(scopes.Count);
-        int index;
-        for (int j = 1; j < groupSize; j++) {
-          index = random.Next(scopes.Count);
-          if (ranks[best] > ranks[index]
-            || ranks[best] == ranks[index]
-              && crowdingDistance[best] < crowdingDistance[index]) {
-            best = index;
-          }
-        }
-
-        if (copy)
-          selected[i] = (IScope)scopes[best].Clone();
-        else {
-          selected[i] = scopes[best];
-          scopes.RemoveAt(best);
-          ranks.RemoveAt(best);
-          crowdingDistance.RemoveAt(best);
-        }
-      }
-
-      return selected;
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new CrowdedTournamentSelector(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/CrowdingDistanceAssignment.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/CrowdingDistanceAssignment.cs	(revision 13206)
+++ 	(revision )
@@ -1,123 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  [Item("CrowdingDistanceAssignment", "Calculates the crowding distances for each sub-scope as described in Deb et al. 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6(2), pp. 182-197.")]
-  [StorableClass]
-  public class CrowdingDistanceAssignment : SingleSuccessorOperator {
-
-    public ScopeTreeLookupParameter<DoubleArray> QualitiesParameter {
-      get { return (ScopeTreeLookupParameter<DoubleArray>)Parameters["Qualities"]; }
-    }
-
-    public ScopeTreeLookupParameter<DoubleValue> CrowdingDistanceParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["CrowdingDistance"]; }
-    }
-
-    private void QualitiesParameter_DepthChanged(object sender, EventArgs e) {
-      CrowdingDistanceParameter.Depth = QualitiesParameter.Depth;
-    }
-
-    [StorableConstructor]
-    protected CrowdingDistanceAssignment(bool deserializing) : base(deserializing) { }
-    protected CrowdingDistanceAssignment(CrowdingDistanceAssignment original, Cloner cloner) : base(original, cloner) { }
-    public CrowdingDistanceAssignment() {
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The vector of quality values."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("CrowdingDistance", "Sets the crowding distance in each sub-scope."));
-      AttachEventHandlers();
-    }
-
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AttachEventHandlers() {
-      QualitiesParameter.DepthChanged += new EventHandler(QualitiesParameter_DepthChanged);
-    }
-
-    public static void Apply(DoubleArray[] qualities, DoubleValue[] distances) {
-      int populationSize = qualities.Length;
-      int objectiveCount = qualities[0].Length;
-      for (int m = 0; m < objectiveCount; m++) {
-        Array.Sort<DoubleArray, DoubleValue>(qualities, distances, new QualitiesComparer(m));
-
-        distances[0].Value = double.MaxValue;
-        distances[populationSize - 1].Value = double.MaxValue;
-
-        double minQuality = qualities[0][m];
-        double maxQuality = qualities[populationSize - 1][m];
-        for (int i = 1; i < populationSize - 1; i++) {
-          distances[i].Value += (qualities[i + 1][m] - qualities[i - 1][m]) / (maxQuality - minQuality);
-        }
-      }
-    }
-
-    public override IOperation Apply() {
-      DoubleArray[] qualities = QualitiesParameter.ActualValue.ToArray();
-      int populationSize = qualities.Length;
-      DoubleValue[] distances = new DoubleValue[populationSize];
-      for (int i = 0; i < populationSize; i++)
-        distances[i] = new DoubleValue(0);
-
-      CrowdingDistanceParameter.ActualValue = new ItemArray<DoubleValue>(distances);
-      
-      Apply(qualities, distances);
-
-      return base.Apply();
-    }
-
-    private void Initialize(ItemArray<DoubleValue> distances) {
-      for (int i = 0; i < distances.Length; i++) {
-        if (distances[i] == null) distances[i] = new DoubleValue(0);
-        else distances[i].Value = 0;
-      }
-    }
-
-    private class QualitiesComparer : IComparer<DoubleArray> {
-      private int index;
-
-      public QualitiesComparer(int index) {
-        this.index = index;
-      }
-
-      #region IComparer<DoubleArray> Members
-
-      public int Compare(DoubleArray x, DoubleArray y) {
-        if (x[index] < y[index]) return -1;
-        else if (x[index] > y[index]) return +1;
-        else return 0;
-      }
-
-      #endregion
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new CrowdingDistanceAssignment(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/DefaultCrossover.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/DefaultCrossover.cs	(revision 13206)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#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.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  [Item("DefaultCrossover", "This operator creates a parent by copying a single individual.")]
-  [StorableClass]
-  public class DefaultCrossover : SingleSuccessorOperator, ICrossover, IStochasticOperator {
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
-    }
-
-
-    [StorableConstructor]
-    protected DefaultCrossover(bool deserializing) : base(deserializing) { }
-    protected DefaultCrossover(DefaultCrossover original, Cloner cloner) : base(original, cloner) { }
-    public DefaultCrossover()
-      : base() {
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator."));
-    }
-
-    public override IOperation Apply() {
-      IScope scope = ExecutionContext.Scope;
-      int index = RandomParameter.ActualValue.Next(scope.SubScopes.Count);
-      IScope child = scope.SubScopes[index];
-
-      foreach (IVariable var in child.Variables)
-        scope.Variables.Add((IVariable)var.Clone());
-
-      return base.Apply();
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new DefaultCrossover(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/FastNonDominatedSort.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/FastNonDominatedSort.cs	(revision 13206)
+++ 	(revision )
@@ -1,162 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  /// <summary>
-  /// FastNonDominatedSort as described in: Deb, Pratap, Agrawal and Meyarivan, "A Fast and Elitist Multiobjective
-  /// Genetic Algorithm: NSGA-II", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002
-  /// </summary>
-  [Item("FastNonDominatedSort", @"FastNonDominatedSort as described in: Deb, Pratap, Agrawal and Meyarivan, ""A Fast and Elitist Multiobjective
-Genetic Algorithm: NSGA-II"", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002")]
-  [StorableClass]
-  public class FastNonDominatedSort : SingleSuccessorOperator {
-    private enum DominationResult { Dominates, IsDominated, IsNonDominated };
-
-    public IValueLookupParameter<BoolArray> MaximizationParameter {
-      get { return (IValueLookupParameter<BoolArray>)Parameters["Maximization"]; }
-    }
-
-    public IScopeTreeLookupParameter<DoubleArray> QualitiesParameter {
-      get { return (IScopeTreeLookupParameter<DoubleArray>)Parameters["Qualities"]; }
-    }
-
-    public IScopeTreeLookupParameter<IntValue> RankParameter {
-      get { return (IScopeTreeLookupParameter<IntValue>)Parameters["Rank"]; }
-    }
-
-    [StorableConstructor]
-    protected FastNonDominatedSort(bool deserializing) : base(deserializing) { }
-    protected FastNonDominatedSort(FastNonDominatedSort original, Cloner cloner) : base(original, cloner) { }
-    public FastNonDominatedSort() {
-      Parameters.Add(new ValueLookupParameter<BoolArray>("Maximization", "Whether each objective is maximization or minimization."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The qualities of a solution.", 1));
-      Parameters.Add(new ScopeTreeLookupParameter<IntValue>("Rank", "The rank of a solution.", 1));
-    }
-
-    public override IOperation Apply() {
-      BoolArray maximization = MaximizationParameter.ActualValue;
-      ItemArray<DoubleArray> qualities = QualitiesParameter.ActualValue;
-      if (qualities == null) throw new InvalidOperationException(Name + ": No qualities found.");
-
-      IScope scope = ExecutionContext.Scope;
-      int populationSize = scope.SubScopes.Count;
-
-      List<ScopeList> fronts = new List<ScopeList>();
-      Dictionary<IScope, List<int>> dominatedScopes = new Dictionary<IScope, List<int>>();
-      int[] dominationCounter = new int[populationSize];
-      ItemArray<IntValue> rank = new ItemArray<IntValue>(populationSize);
-
-      for (int pI = 0; pI < populationSize - 1; pI++) {
-        IScope p = scope.SubScopes[pI];
-        if (!dominatedScopes.ContainsKey(p))
-          dominatedScopes[p] = new List<int>();
-        for (int qI = pI + 1; qI < populationSize; qI++) {
-          DominationResult test = Dominates(qualities[pI], qualities[qI], maximization);
-          if (test == DominationResult.Dominates) {
-            dominatedScopes[p].Add(qI);
-            dominationCounter[qI] += 1;
-          } else if (test == DominationResult.IsDominated) {
-            dominationCounter[pI] += 1;
-            if (!dominatedScopes.ContainsKey(scope.SubScopes[qI]))
-              dominatedScopes.Add(scope.SubScopes[qI], new List<int>());
-            dominatedScopes[scope.SubScopes[qI]].Add(pI);
-          }
-          if (pI == populationSize - 2
-            && qI == populationSize - 1
-            && dominationCounter[qI] == 0) {
-            rank[qI] = new IntValue(0);
-            AddToFront(scope.SubScopes[qI], fronts, 0);
-          }
-        }
-        if (dominationCounter[pI] == 0) {
-          rank[pI] = new IntValue(0);
-          AddToFront(p, fronts, 0);
-        }
-      }
-      int i = 0;
-      while (i < fronts.Count && fronts[i].Count > 0) {
-        ScopeList nextFront = new ScopeList();
-        foreach (IScope p in fronts[i]) {
-          if (dominatedScopes.ContainsKey(p)) {
-            for (int k = 0; k < dominatedScopes[p].Count; k++) {
-              int dominatedScope = dominatedScopes[p][k];
-              dominationCounter[dominatedScope] -= 1;
-              if (dominationCounter[dominatedScope] == 0) {
-                rank[dominatedScope] = new IntValue(i + 1);
-                nextFront.Add(scope.SubScopes[dominatedScope]);
-              }
-            }
-          }
-        }
-        i += 1;
-        fronts.Add(nextFront);
-      }
-
-      RankParameter.ActualValue = rank;
-      
-      scope.SubScopes.Clear();
-      
-      for (i = 0; i < fronts.Count; i++) {
-        Scope frontScope = new Scope("Front " + i);
-        foreach (var p in fronts[i])
-          frontScope.SubScopes.Add(p);
-        if (frontScope.SubScopes.Count > 0)
-          scope.SubScopes.Add(frontScope);
-      }
-      return base.Apply();
-    }
-
-    private DominationResult Dominates(DoubleArray left, DoubleArray right, BoolArray maximizations) {
-      bool leftIsBetter = false, rightIsBetter = false;
-      for (int i = 0; i < left.Length; i++) {
-        if (IsDominated(left[i], right[i], maximizations[i])) rightIsBetter = true;
-        else if (IsDominated(right[i], left[i], maximizations[i])) leftIsBetter = true;
-        if (leftIsBetter && rightIsBetter) break;
-      }
-      if (leftIsBetter && !rightIsBetter) return DominationResult.Dominates;
-      if (!leftIsBetter && rightIsBetter) return DominationResult.IsDominated;
-      return DominationResult.IsNonDominated;
-    }
-
-    private bool IsDominated(double left, double right, bool maximization) {
-      return maximization && left < right
-        || !maximization && left > right;
-    }
-
-    private void AddToFront(IScope p, List<ScopeList> fronts, int i) {
-      if (i == fronts.Count) fronts.Add(new ScopeList());
-      fronts[i].Add(p);
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new FastNonDominatedSort(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Algorithms.NSGA2/3.3/RankAndCrowdingSorter.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.NSGA2/3.3/RankAndCrowdingSorter.cs	(revision 13206)
+++ 	(revision )
@@ -1,84 +1,0 @@
-﻿#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.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Selection;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Algorithms.NSGA2 {
-  public class RankAndCrowdingSorter : AlgorithmOperator {
-    public ValueLookupParameter<BoolArray> MaximizationParameter {
-      get { return (ValueLookupParameter<BoolArray>)Parameters["Maximization"]; }
-    }
-    public ScopeTreeLookupParameter<DoubleArray> QualitiesParameter {
-      get { return (ScopeTreeLookupParameter<DoubleArray>)Parameters["Qualities"]; }
-    }
-    public ScopeTreeLookupParameter<IntValue> RankParameter {
-      get { return (ScopeTreeLookupParameter<IntValue>)Parameters["Rank"]; }
-    }
-    public ScopeTreeLookupParameter<DoubleValue> CrowdingDistanceParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["CrowdingDistance"]; }
-    }
-
-    [StorableConstructor]
-    protected RankAndCrowdingSorter(bool deserializing) : base(deserializing) { }
-    protected RankAndCrowdingSorter(RankAndCrowdingSorter original, Cloner cloner) : base(original, cloner) { }
-    public RankAndCrowdingSorter()
-      : base() {
-      Parameters.Add(new ValueLookupParameter<BoolArray>("Maximization", "For each objective a value that is true if that objective should be maximized, or false if it should be minimized."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The vector of quality values."));
-      Parameters.Add(new ScopeTreeLookupParameter<IntValue>("Rank", "The rank of a solution (to which front it belongs)."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("CrowdingDistance", "The crowding distance of a solution in a population."));
-
-      FastNonDominatedSort fastNonDominatedSort = new FastNonDominatedSort();
-      UniformSubScopesProcessor subScopesProcessor = new UniformSubScopesProcessor();
-      CrowdingDistanceAssignment crowdingDistanceAssignment = new CrowdingDistanceAssignment();
-      CrowdedComparisonSorter crowdedComparisonSorter = new CrowdedComparisonSorter();
-      MergingReducer mergingReducer = new MergingReducer();
-
-      fastNonDominatedSort.MaximizationParameter.ActualName = MaximizationParameter.Name;
-      fastNonDominatedSort.QualitiesParameter.ActualName = QualitiesParameter.Name;
-      fastNonDominatedSort.RankParameter.ActualName = RankParameter.Name;
-
-      crowdingDistanceAssignment.CrowdingDistanceParameter.ActualName = CrowdingDistanceParameter.Name;
-      crowdingDistanceAssignment.QualitiesParameter.ActualName = QualitiesParameter.Name;
-
-      crowdedComparisonSorter.CrowdingDistanceParameter.ActualName = CrowdingDistanceParameter.Name;
-      crowdedComparisonSorter.RankParameter.ActualName = RankParameter.Name;
-
-      OperatorGraph.InitialOperator = fastNonDominatedSort;
-      fastNonDominatedSort.Successor = subScopesProcessor;
-      subScopesProcessor.Operator = crowdingDistanceAssignment;
-      crowdingDistanceAssignment.Successor = crowdedComparisonSorter;
-      crowdedComparisonSorter.Successor = null;
-      subScopesProcessor.Successor = mergingReducer;
-      mergingReducer.Successor = null;
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new RankAndCrowdingSorter(this, cloner);
-    }
-  }
-}
Index: able/HeuristicLab.Clients.Hive.Views/3.3/StateLog/StateLogList.cs
===================================================================
--- /stable/HeuristicLab.Clients.Hive.Views/3.3/StateLog/StateLogList.cs	(revision 13206)
+++ 	(revision )
@@ -1,43 +1,0 @@
-﻿#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 System.Collections.Generic;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Clients.Hive.Views {
-  [StorableClass]
-  public class StateLogList : ItemList<StateLog> {
-
-    [StorableConstructor]
-    protected StateLogList(bool deserializing) : base(deserializing) { }
-    public StateLogList() : base() { }
-    protected StateLogList(StateLogList original, Cloner cloner) : base(original, cloner) { }
-    public StateLogList(IEnumerable<StateLog> collection)
-      : base(collection) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new StateLogList(this, cloner);
-    }
-
-  }
-}
Index: able/HeuristicLab.Clients.Hive.Views/3.3/StateLog/StateLogListList.cs
===================================================================
--- /stable/HeuristicLab.Clients.Hive.Views/3.3/StateLog/StateLogListList.cs	(revision 13206)
+++ 	(revision )
@@ -1,43 +1,0 @@
-﻿#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 System.Collections.Generic;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Clients.Hive.Views {
-  [StorableClass]
-  public class StateLogListList : ItemList<StateLogList> {
-
-    [StorableConstructor]
-    protected StateLogListList(bool deserializing) : base(deserializing) { }
-    public StateLogListList() : base() { }
-    protected StateLogListList(StateLogListList original, Cloner cloner) : base(original, cloner) { }
-    public StateLogListList(IEnumerable<StateLogList> collection)
-      : base(collection) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new StateLogListList(this, cloner);
-    }
-
-  }
-}
Index: able/HeuristicLab.Data.Views/3.3/ColumnsVisibilityDialog.Designer.cs
===================================================================
--- /stable/HeuristicLab.Data.Views/3.3/ColumnsVisibilityDialog.Designer.cs	(revision 13206)
+++ 	(revision )
@@ -1,112 +1,0 @@
-﻿#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
-
-namespace HeuristicLab.Data.Views {
-  partial class ColumnsVisibilityDialog {
-    /// <summary>
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary>
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Windows Form Designer generated code
-
-    /// <summary>
-    /// Required method for Designer support - do not modify
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.checkedListBox = new System.Windows.Forms.CheckedListBox();
-      this.btnShowAll = new System.Windows.Forms.Button();
-      this.btnHideAll = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // checkedListBox
-      // 
-      this.checkedListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.checkedListBox.CheckOnClick = true;
-      this.checkedListBox.FormattingEnabled = true;
-      this.checkedListBox.Location = new System.Drawing.Point(12, 12);
-      this.checkedListBox.Name = "checkedListBox";
-      this.checkedListBox.Size = new System.Drawing.Size(309, 289);
-      this.checkedListBox.TabIndex = 0;
-      this.checkedListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.checkedListBox_ItemCheck);
-      // 
-      // btnShowAll
-      // 
-      this.btnShowAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.btnShowAll.Location = new System.Drawing.Point(12, 315);
-      this.btnShowAll.Name = "btnShowAll";
-      this.btnShowAll.Size = new System.Drawing.Size(75, 23);
-      this.btnShowAll.TabIndex = 1;
-      this.btnShowAll.Text = "Show all";
-      this.btnShowAll.UseVisualStyleBackColor = true;
-      this.btnShowAll.Click += new System.EventHandler(this.btnShowAll_Click);
-      // 
-      // btnHideAll
-      // 
-      this.btnHideAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.btnHideAll.Location = new System.Drawing.Point(101, 315);
-      this.btnHideAll.Name = "btnHideAll";
-      this.btnHideAll.Size = new System.Drawing.Size(75, 23);
-      this.btnHideAll.TabIndex = 2;
-      this.btnHideAll.Text = "Hide all";
-      this.btnHideAll.UseVisualStyleBackColor = true;
-      this.btnHideAll.Click += new System.EventHandler(this.btnHideAll_Click);
-      // 
-      // ColumnsVisibilityDialog
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.ClientSize = new System.Drawing.Size(332, 350);
-      this.Controls.Add(this.btnHideAll);
-      this.Controls.Add(this.btnShowAll);
-      this.Controls.Add(this.checkedListBox);
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "ColumnsVisibilityDialog";
-      this.ShowIcon = false;
-      this.ShowInTaskbar = false;
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.Text = "Show/Hide Columns";
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.CheckedListBox checkedListBox;
-    private System.Windows.Forms.Button btnShowAll;
-    private System.Windows.Forms.Button btnHideAll;
-  }
-}
Index: able/HeuristicLab.Data.Views/3.3/ColumnsVisibilityDialog.cs
===================================================================
--- /stable/HeuristicLab.Data.Views/3.3/ColumnsVisibilityDialog.cs	(revision 13206)
+++ 	(revision )
@@ -1,64 +1,0 @@
-﻿#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 System.Collections.Generic;
-using System.Windows.Forms;
-
-namespace HeuristicLab.Data.Views {
-  public partial class ColumnsVisibilityDialog : Form {
-    public ColumnsVisibilityDialog() {
-      InitializeComponent();
-    }
-
-    public ColumnsVisibilityDialog(IEnumerable<DataGridViewColumn> columns)
-      : this() {
-      this.Columns = columns;
-    }
-
-    private List<DataGridViewColumn> columns;
-    public IEnumerable<DataGridViewColumn> Columns {
-      get { return this.columns; }
-      set {
-        this.columns = new List<DataGridViewColumn>(value);
-        UpdateCheckBoxes();
-      }
-    }
-
-    private void UpdateCheckBoxes() {
-      this.checkedListBox.Items.Clear();
-      foreach (DataGridViewColumn column in columns)
-        checkedListBox.Items.Add(column.HeaderText, column.Visible);
-    }
-
-    private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
-      this.columns[e.Index].Visible = e.NewValue == CheckState.Checked;
-    }
-
-    private void btnShowAll_Click(object sender, System.EventArgs e) {
-      for (int i = 0; i < checkedListBox.Items.Count; i++)
-        checkedListBox.SetItemChecked(i, true);
-    }
-    private void btnHideAll_Click(object sender, System.EventArgs e) {
-      for (int i = 0; i < checkedListBox.Items.Count; i++)
-        checkedListBox.SetItemChecked(i, false);
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator.cs	(revision 13206)
+++ 	(revision )
@@ -1,97 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis {
-  [Item("Pearson R² Evaluator", "Calculates the square of the pearson correlation coefficient (also known as coefficient of determination) of a symbolic time-series prognosis solution.")]
-  [StorableClass]
-  public class SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator : SymbolicTimeSeriesPrognosisSingleObjectiveEvaluator {
-    [StorableConstructor]
-    protected SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator(bool deserializing) : base(deserializing) { }
-    protected SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator(SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator(this, cloner);
-    }
-
-    public SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator() : base() { }
-
-    public override bool Maximization { get { return true; } }
-
-    public override IOperation Apply() {
-      var solution = SymbolicExpressionTreeParameter.ActualValue;
-      IEnumerable<int> rows = GenerateRowsToEvaluate();
-
-      double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution,
-        EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper,
-        ProblemDataParameter.ActualValue,
-        rows, HorizonParameter.ActualValue.Value);
-      QualityParameter.ActualValue = new DoubleValue(quality);
-
-      return base.Apply();
-    }
-
-    public static double Calculate(ISymbolicTimeSeriesPrognosisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, ITimeSeriesPrognosisProblemData problemData, IEnumerable<int> rows, int horizon) {
-      var allPredictedContinuations =
-        interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, problemData.TargetVariables.ToArray(),
-                                                    rows, horizon).ToArray();
-
-      var meanCalculator = new OnlineMeanAndVarianceCalculator();
-      int i = 0;
-      foreach (var targetVariable in problemData.TargetVariables) {
-        var actualContinuations = from r in rows
-                                  select problemData.Dataset.GetDoubleValues(targetVariable, Enumerable.Range(r, horizon));
-        var startValues = problemData.Dataset.GetDoubleValues(targetVariable, rows.Select(r => r - 1));
-        OnlineCalculatorError errorState;
-        meanCalculator.Add(OnlineTheilsUStatisticCalculator.Calculate(
-          startValues,
-          allPredictedContinuations.Select(v => v.ElementAt(i)),
-          actualContinuations, out errorState));
-        if (errorState != OnlineCalculatorError.None) return double.NaN;
-        i++;
-      }
-      return meanCalculator.Mean;
-    }
-
-    public override double Evaluate(IExecutionContext context, ISymbolicExpressionTree tree, ITimeSeriesPrognosisProblemData problemData, IEnumerable<int> rows) {
-      SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = context;
-      EstimationLimitsParameter.ExecutionContext = context;
-      HorizonParameter.ExecutionContext = context;
-
-      double r2 = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, HorizonParameter.ActualValue.Value);
-
-      HorizonParameter.ExecutionContext = null;
-      SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
-      EstimationLimitsParameter.ExecutionContext = null;
-
-      return r2;
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionSizefairCrossover.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionSizefairCrossover.cs	(revision 13206)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿#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.Data;
-using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Crossovers {
-  [Item("SizeFairCrossover", "An operator which performs subtree swapping crossover.")]
-  class SymbolicDataAnalysisExpressionSizefairCrossover<T> : SubtreeCrossover, ISymbolicDataAnalysisExpressionCrossover<T> {
-    [StorableConstructor]
-    protected SymbolicDataAnalysisExpressionSizefairCrossover(bool deserializing) : base(deserializing) { }
-    protected SymbolicDataAnalysisExpressionSizefairCrossover(SubtreeCrossover original, Cloner cloner) : base(original, cloner) { }
-    public override IDeepCloneable Clone(Cloner cloner) { return new SymbolicDataAnalysisExpressionSizefairCrossover<T>(this, cloner); }
-
-    public override bool CanChangeName {
-      get { return true; }
-    }
-
-    public SymbolicDataAnalysisExpressionSizefairCrossover()
-      : base() {
-      SymbolicDataAnalysisEvaluationPartitionParameter.Hidden = true;
-      Name = "SizeFairCrossover";
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationCache.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationCache.cs	(revision 13206)
+++ 	(revision )
@@ -1,58 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.DataAnalysis.Views {
-  [NonDiscoverableType]
-  internal class FeatureCorrelationCache : Object {
-    private Dictionary<FeatureCorrelationEnums.CorrelationCalculators, Dictionary<FeatureCorrelationEnums.Partitions, double[,]>> correlationsCache;
-
-    public FeatureCorrelationCache()
-      : base() {
-      InitializeCaches();
-    }
-
-    private void InitializeCaches() {
-      correlationsCache = new Dictionary<FeatureCorrelationEnums.CorrelationCalculators, Dictionary<FeatureCorrelationEnums.Partitions, double[,]>>();
-      foreach (var calc in FeatureCorrelationEnums.EnumToList<FeatureCorrelationEnums.CorrelationCalculators>()) {
-        correlationsCache.Add(calc, new Dictionary<FeatureCorrelationEnums.Partitions, double[,]>());
-      }
-    }
-
-    public void Reset() {
-      InitializeCaches();
-    }
-
-    public double[,] GetCorrelation(FeatureCorrelationEnums.CorrelationCalculators calc, FeatureCorrelationEnums.Partitions partition) {
-      double[,] corr;
-      correlationsCache[calc].TryGetValue(partition, out corr);
-      return corr;
-    }
-
-    public void SetCorrelation(FeatureCorrelationEnums.CorrelationCalculators calc, FeatureCorrelationEnums.Partitions partition, double[,] correlation) {
-      correlationsCache[calc][partition] = correlation;
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationEnums.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationEnums.cs	(revision 13206)
+++ 	(revision )
@@ -1,103 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using HeuristicLab.Data;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.DataAnalysis.Views {
-  // see http://blog.spontaneouspublicity.com/associating-strings-with-enums-in-c
-  [NonDiscoverableType]
-  public class FeatureCorrelationEnums {
-    public enum Partitions {
-      [Description("All Samples")]
-      AllSamples,
-      [Description("Training Samples")]
-      TrainingSamples,
-      [Description("Test Samples")]
-      TestSamples
-    }
-
-    public enum CorrelationCalculators {
-      [Description("Pearsons R")]
-      PearsonsR,
-      [Description("Pearsons R Squared")]
-      PearsonsRSquared,
-      [Description("Hoeffdings Dependence")]
-      HoeffdingsDependence,
-      [Description("Spearmans Rank")]
-      SpearmansRank
-    }
-
-    public static readonly Dictionary<CorrelationCalculators, DoubleRange> calculatorInterval = new Dictionary<CorrelationCalculators, DoubleRange>(){ 
-      { CorrelationCalculators.PearsonsR, new DoubleRange(1.0, -1.0)},
-      { CorrelationCalculators.SpearmansRank, new DoubleRange(1.0, -1.0)},
-      { CorrelationCalculators.HoeffdingsDependence, new DoubleRange(1.0, -0.5)},
-      { CorrelationCalculators.PearsonsRSquared, new DoubleRange(1.0, 0.0)}
-    };
-
-    public static string GetEnumDescription(object value) {
-      FieldInfo fi = value.GetType().GetField(value.ToString());
-
-      DescriptionAttribute[] attributes =
-          (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
-
-      if (attributes != null && attributes.Length > 0)
-        return attributes[0].Description;
-      else
-        return value.ToString();
-    }
-
-    public static IEnumerable<T> EnumToList<T>() {
-      Type enumType = typeof(T);
-
-      // Can't use generic type constraints on value types,
-      // so have to do check like this
-      if (enumType.BaseType != typeof(Enum)) {
-        throw new ArgumentException("T must be of type System.Enum");
-      }
-
-      Array enumValArray = Enum.GetValues(enumType);
-      return Enum.GetValues(enumType).Cast<int>().Select(x => (T)Enum.Parse(enumType, x.ToString())).ToList();
-    }
-
-    public static T GetEnumOfDescription<T>(string desc) {
-      Type enumType = typeof(T);
-
-      if (enumType.BaseType != typeof(Enum))
-        throw new ArgumentException("T must be of type System.Enum");
-
-      Array enumValArray = Enum.GetValues(enumType);
-      foreach (int val in enumValArray) {
-
-        T e = (T)Enum.Parse(enumType, val.ToString());
-        if (GetEnumDescription(e).Equals(desc)) {
-          return (T)e;
-        }
-      }
-      throw new ArgumentException("Description is not in the given type T");
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationTimeframeCache.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/FeatureCorrelationTimeframeCache.cs	(revision 13206)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.DataAnalysis.Views {
-  [NonDiscoverableType]
-  internal class FeatureCorrelationTimeframeCache : Object {
-    private Dictionary<FeatureCorrelationEnums.CorrelationCalculators, Dictionary<FeatureCorrelationEnums.Partitions, Dictionary<string, double[,]>>> timeFrameCorrelationsCache;
-
-    public FeatureCorrelationTimeframeCache()
-      : base() {
-      InitializeCaches();
-    }
-
-    private void InitializeCaches() {
-      timeFrameCorrelationsCache = new Dictionary<FeatureCorrelationEnums.CorrelationCalculators, Dictionary<FeatureCorrelationEnums.Partitions, Dictionary<string, double[,]>>>();
-      foreach (var calc in FeatureCorrelationEnums.EnumToList<FeatureCorrelationEnums.CorrelationCalculators>()) {
-        timeFrameCorrelationsCache.Add(calc, new Dictionary<FeatureCorrelationEnums.Partitions, Dictionary<string, double[,]>>());
-        foreach (var part in FeatureCorrelationEnums.EnumToList<FeatureCorrelationEnums.Partitions>()) {
-          timeFrameCorrelationsCache[calc].Add(part, new Dictionary<string, double[,]>());
-        }
-      }
-    }
-
-    public void Reset() {
-      InitializeCaches();
-    }
-
-    public double[,] GetTimeframeCorrelation(FeatureCorrelationEnums.CorrelationCalculators calc, FeatureCorrelationEnums.Partitions partition, string variable) {
-      double[,] corr;
-      timeFrameCorrelationsCache[calc][partition].TryGetValue(variable, out corr);
-      return corr;
-    }
-
-    public void SetTimeframeCorrelation(FeatureCorrelationEnums.CorrelationCalculators calc, FeatureCorrelationEnums.Partitions partition, string variable, double[,] correlation) {
-      timeFrameCorrelationsCache[calc][partition][variable] = correlation;
-    }
-  }
-}
Index: able/HeuristicLab.Problems.DataAnalysis.Views/3.4/Interfaces/IRegressionEnsembleSolutionEvaluationView.cs
===================================================================
--- /stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Interfaces/IRegressionEnsembleSolutionEvaluationView.cs	(revision 13206)
+++ 	(revision )
@@ -1,27 +1,0 @@
-﻿#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
-
-
-namespace HeuristicLab.Problems.DataAnalysis.Views {
-  public interface IRegressionEnsembleSolutionEvaluationView : IDataAnalysisSolutionEvaluationView {
-    new IRegressionEnsembleSolution Content { get; set; }
-  }
-}
Index: able/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/MultidimensionalScaling.cs
===================================================================
--- /stable/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/MultidimensionalScaling.cs	(revision 13206)
+++ 	(revision )
@@ -1,130 +1,0 @@
-﻿#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 System;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.Problems.QuadraticAssignment.Views {
-  public static class MultidimensionalScaling {
-
-    /// <summary>
-    /// Performs the Kruskal-Shepard algorithm and applies a gradient descent method
-    /// to fit the coordinates such that the difference between the fit distances
-    /// and the actual distances is minimal.
-    /// </summary>
-    /// <param name="distances">A symmetric NxN matrix that specifies the distances between each element i and j. Diagonal elements are ignored.</param>
-    /// <param name="stress">Returns the stress between the fit distances and the actual distances.</param>
-    /// <returns>A Nx2 matrix where the first column represents the x- and the second column the y coordinates.</returns>
-    public static DoubleMatrix MetricByDistance(DoubleMatrix distances, out double stress) {
-      if (distances == null) throw new ArgumentNullException("distances");
-      if (distances.Rows != distances.Columns) throw new ArgumentException("Distance matrix must be a square matrix.", "distances");
-      stress = 0.0;
-
-      int dimension = distances.Rows;
-      if (dimension == 1) return new DoubleMatrix(new double[,] { { 0, 0 } });
-      else if (dimension == 2) return new DoubleMatrix(new double[,] { { 0, distances[0, 1] } });
-
-      DoubleMatrix coordinates = new DoubleMatrix(dimension, 2);
-      double rad = (2 * Math.PI) / coordinates.Rows;
-      for (int i = 0; i < dimension; i++) {
-        coordinates[i, 0] = 10 * Math.Cos(rad * i);
-        coordinates[i, 1] = 10 * Math.Sin(rad * i);
-      }
-
-      double epsg = 1e-7;
-      double epsf = 0;
-      double epsx = 0;
-      int maxits = 0;
-      alglib.mincgstate state = null;
-      alglib.mincgreport rep;
-
-      for (int iterations = 0; iterations < 10; iterations++) {
-        for (int i = 0; i < dimension; i++) {
-          double[] c = new double[] { coordinates[i, 0], coordinates[i, 1] };
-
-          if (iterations == 0 && i == 0) {
-            alglib.mincgcreate(c, out state);
-            alglib.mincgsetcond(state, epsg, epsf, epsx, maxits);
-          } else {
-            alglib.mincgrestartfrom(state, c);
-          }
-          alglib.mincgoptimize(state, StressGradient, null, new Info(coordinates, distances, i));
-          alglib.mincgresults(state, out c, out rep);
-
-          coordinates[i, 0] = c[0];
-          coordinates[i, 1] = c[1];
-        }
-      }
-      stress = CalculateNormalizedStress(dimension, distances, coordinates);
-      return coordinates;
-    }
-
-    private static void StressGradient(double[] x, ref double func, double[] grad, object obj) {
-      func = 0; grad[0] = 0; grad[1] = 0;
-      Info info = (obj as Info);
-      for (int i = 0; i < info.Coordinates.Rows; i++) {
-        double c = info.Distances[info.Row, i];
-        if (i != info.Row) {
-          double a = info.Coordinates[i, 0];
-          double b = info.Coordinates[i, 1];
-          func += Stress(x, c, a, b);
-          grad[0] += ((2 * x[0] - 2 * a) * Math.Sqrt(x[1] * x[1] - 2 * b * x[1] + x[0] * x[0] - 2 * a * x[0] + b * b + a * a) - 2 * c * x[0] + 2 * a * c) / Math.Sqrt(x[1] * x[1] - 2 * b * x[1] + x[0] * x[0] - 2 * a * x[0] + b * b + a * a);
-          grad[1] += ((2 * x[1] - 2 * b) * Math.Sqrt(x[1] * x[1] - 2 * b * x[1] + x[0] * x[0] - 2 * a * x[0] + b * b + a * a) - 2 * c * x[1] + 2 * b * c) / Math.Sqrt(x[1] * x[1] - 2 * b * x[1] + x[0] * x[0] - 2 * a * x[0] + b * b + a * a);
-        }
-      }
-    }
-
-    private static double Stress(double[] x, double distance, double xCoord, double yCoord) {
-      return Stress(x[0], x[1], distance, xCoord, yCoord);
-    }
-
-    private static double Stress(double x, double y, double distance, double otherX, double otherY) {
-      double d = Math.Sqrt((x - otherX) * (x - otherX)
-                         + (y - otherY) * (y - otherY));
-      return (d - distance) * (d - distance);
-    }
-
-    public static double CalculateNormalizedStress(int dimension, DoubleMatrix distances, DoubleMatrix coordinates) {
-      double stress = 0;
-      for (int i = 0; i < dimension - 1; i++) {
-        for (int j = i + 1; j < dimension; j++) {
-          if (distances[i, j] != 0) {
-            stress += Stress(coordinates[i, 0], coordinates[i, 1], distances[i, j], coordinates[j, 0], coordinates[j, 1])
-              / (distances[i, j] * distances[i, j]);
-          }
-        }
-      }
-      return stress;
-    }
-
-    private class Info {
-      public DoubleMatrix Coordinates { get; set; }
-      public DoubleMatrix Distances { get; set; }
-      public int Row { get; set; }
-
-      public Info(DoubleMatrix c, DoubleMatrix d, int r) {
-        Coordinates = c;
-        Distances = d;
-        Row = r;
-      }
-    }
-  }
-}
Index: able/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.Designer.cs
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.Designer.cs	(revision 13206)
+++ 	(revision )
@@ -1,93 +1,0 @@
-﻿#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
-
-namespace HeuristicLab.Problems.Scheduling.Views {
-  partial class JSMEncodingView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.permutationListBox = new System.Windows.Forms.ListBox();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // nameTextBox
-      // 
-      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
-      this.nameTextBox.Size = new System.Drawing.Size(464, 20);
-      // 
-      // infoLabel
-      // 
-      this.infoLabel.Location = new System.Drawing.Point(528, 3);
-      // 
-      // permutationListBox
-      // 
-      this.permutationListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.permutationListBox.FormattingEnabled = true;
-      this.permutationListBox.Location = new System.Drawing.Point(6, 26);
-      this.permutationListBox.Name = "permutationListBox";
-      this.permutationListBox.Size = new System.Drawing.Size(224, 290);
-      this.permutationListBox.TabIndex = 3;
-      // 
-      // JSMEncodingView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.permutationListBox);
-      this.Name = "JSMEncodingView";
-      this.Size = new System.Drawing.Size(547, 325);
-      this.Controls.SetChildIndex(this.permutationListBox, 0);
-      this.Controls.SetChildIndex(this.nameLabel, 0);
-      this.Controls.SetChildIndex(this.nameTextBox, 0);
-      this.Controls.SetChildIndex(this.infoLabel, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.ListBox permutationListBox;
-  }
-}
Index: able/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.cs
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.cs	(revision 13206)
+++ 	(revision )
@@ -1,64 +1,0 @@
-﻿#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 System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Encodings.SchedulingEncoding.JobSequenceMatrix;
-
-namespace HeuristicLab.Problems.Scheduling.Views {
-  [View("JSMEncoding View")]
-  [Content(typeof(JSMEncoding), true)]
-  public partial class JSMEncodingView : NamedItemView {
-    public JSMEncodingView() {
-      InitializeComponent();
-    }
-
-    public new JSMEncoding Content {
-      get { return (JSMEncoding)base.Content; }
-      set { base.Content = value; }
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        permutationListBox.Items.Clear();
-      } else {
-        foreach (Permutation p in Content.JobSequenceMatrix)
-          permutationListBox.Items.Add(p.ToString ());
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      permutationListBox.Enabled = Content != null;
-    }
-  }
-}
Index: able/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.resx
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.resx	(revision 13206)
+++ 	(revision )
@@ -1,126 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>107, 17</value>
-  </metadata>
-  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
Index: able/HeuristicLab.Problems.Scheduling.Views/3.3/JSSPJobView.Designer.cs
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling.Views/3.3/JSSPJobView.Designer.cs	(revision 13206)
+++ 	(revision )
@@ -1,53 +1,0 @@
-﻿#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
-
-namespace HeuristicLab.Problems.Scheduling.Views {
-  partial class JSSPJobView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-    }
-
-    #endregion
-  }
-}
Index: able/HeuristicLab.Problems.Scheduling.Views/3.3/JSSPJobView.cs
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling.Views/3.3/JSSPJobView.cs	(revision 13206)
+++ 	(revision )
@@ -1,53 +1,0 @@
-﻿#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 System;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
-using HeuristicLab.MainForm;
-using HeuristicLab.Parameters;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.Scheduling.Views {
-  [View("Job View")]
-  [Content(typeof(JSSPJob), true)]
-  public partial class JSSPJobView : NamedItemView {
-    public JSSPJobView() {
-      InitializeComponent();
-    }
-
-    public new JSSPJob Content {
-      get { return (JSSPJob)base.Content; }
-      set { base.Content = value; }
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        //parameterCollectionView.Content = null;
-      } else {
-        //parameterCollectionView.Content = ((IParameterizedNamedItem)Content).Parameters;
-      }
-    }
-  }
-}
Index: able/HeuristicLab.Problems.Scheduling/3.3/Decoders/GTAlgorithmUtils.cs
===================================================================
--- /stable/HeuristicLab.Problems.Scheduling/3.3/Decoders/GTAlgorithmUtils.cs	(revision 13206)
+++ 	(revision )
@@ -1,80 +1,0 @@
-﻿#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 System;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.ScheduleEncoding;
-
-namespace HeuristicLab.Problems.Scheduling {
-  public static class GTAlgorithmUtils {
-
-    public static ItemList<Task> GetEarliestNotScheduledTasks(ItemList<Job> jobData) {
-      ItemList<Task> result = new ItemList<Task>();
-      foreach (Job j in jobData) {
-        foreach (Task t in j.Tasks) {
-          if (!t.IsScheduled) {
-            result.Add(t);
-            break;
-          }
-        }
-      }
-      return result;
-    }
-    public static Task GetTaskWithMinimalEC(ItemList<Task> earliestTasksList, Schedule schedule) {
-      double minEct = double.MaxValue;
-      Task result = null;
-      foreach (Task t in earliestTasksList) {
-        double ect = ComputeEarliestCompletionTime(t, schedule);
-        if (ect < minEct) {
-          result = t;
-          minEct = ect;
-        }
-      }
-      return result;
-    }
-    public static ItemList<Task> GetConflictSetForTask(Task conflictedTask, ItemList<Task> earliestTasksList, ItemList<Job> jobData, Schedule schedule) {
-      ItemList<Task> result = new ItemList<Task>();
-      double conflictedCompletionTime = ComputeEarliestCompletionTime(conflictedTask, schedule);
-      result.Add(conflictedTask);
-      foreach (Task t in earliestTasksList) {
-        if (t.ResourceNr == conflictedTask.ResourceNr) {
-          if (ComputeEarliestStartTime(t, schedule) < conflictedCompletionTime)
-            result.Add(t);
-        }
-      }
-      return result;
-    }
-
-    public static double ComputeEarliestStartTime(Task t, Schedule schedule) {
-      ScheduledTask previousTask = schedule.GetLastScheduledTaskForJobNr(t.JobNr);
-      Resource affectedResource = schedule.Resources[t.ResourceNr];
-      double lastMachineEndTime = affectedResource.TotalDuration;
-      double previousJobTaskEndTime = 0;
-      if (previousTask != null)
-        previousJobTaskEndTime = previousTask.EndTime;
-
-      return Math.Max(previousJobTaskEndTime, lastMachineEndTime);
-    }
-    public static double ComputeEarliestCompletionTime(Task t, Schedule schedule) {
-      return ComputeEarliestStartTime(t, schedule) + t.Duration;
-    }
-  }
-}
Index: able/HeuristicLab.Scripting/3.3/UserScriptBase.cs
===================================================================
--- /stable/HeuristicLab.Scripting/3.3/UserScriptBase.cs	(revision 13206)
+++ 	(revision )
@@ -1,111 +1,0 @@
-﻿#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 System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Dynamic;
-using System.IO;
-using System.Text;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Scripting {
-  public abstract class UserScriptBase {
-    protected dynamic vars;
-
-    private readonly EventWriter console;
-    protected EventWriter Console {
-      get { return console; }
-    }
-
-    protected UserScriptBase() {
-      console = new EventWriter(this);
-    }
-
-    public abstract void Main();
-
-    private void Execute(VariableStore variableStore) {
-      vars = new Variables(variableStore);
-      Main();
-    }
-
-    protected internal event EventHandler<EventArgs<string>> ConsoleOutputChanged;
-    private void OnConsoleOutputChanged(string args) {
-      var handler = ConsoleOutputChanged;
-      if (handler != null) handler(null, new EventArgs<string>(args));
-    }
-
-    protected class EventWriter : TextWriter {
-      private readonly UserScriptBase usb;
-
-      public EventWriter(UserScriptBase usb) {
-        this.usb = usb;
-      }
-
-      public override Encoding Encoding {
-        get { return Encoding.UTF8; }
-      }
-
-      #region Write/WriteLine Overrides
-      #region Write
-      public override void Write(bool value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(char value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(char[] buffer) { usb.OnConsoleOutputChanged(new string(buffer)); }
-      public override void Write(char[] buffer, int index, int count) { usb.OnConsoleOutputChanged(new string(buffer, index, count)); }
-      public override void Write(decimal value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(double value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(float value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(int value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(long value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(object value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(string value) { usb.OnConsoleOutputChanged(value); }
-      public override void Write(string format, object arg0) { usb.OnConsoleOutputChanged(string.Format(format, arg0)); }
-      public override void Write(string format, object arg0, object arg1) { usb.OnConsoleOutputChanged(string.Format(format, arg0, arg0)); }
-      public override void Write(string format, object arg0, object arg1, object arg2) { usb.OnConsoleOutputChanged(string.Format(format, arg0, arg1, arg2)); }
-      public override void Write(string format, params object[] arg) { usb.OnConsoleOutputChanged(string.Format(format, arg)); }
-      public override void Write(uint value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      public override void Write(ulong value) { usb.OnConsoleOutputChanged(value.ToString()); }
-      #endregion
-
-      #region WriteLine
-      public override void WriteLine() { usb.OnConsoleOutputChanged(Environment.NewLine); }
-      public override void WriteLine(bool value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(char value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(char[] buffer) { usb.OnConsoleOutputChanged(new string(buffer) + Environment.NewLine); }
-      public override void WriteLine(char[] buffer, int index, int count) { usb.OnConsoleOutputChanged(new string(buffer, index, count) + Environment.NewLine); }
-      public override void WriteLine(decimal value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(double value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(float value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(int value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(long value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(object value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(string value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(string format, object arg0) { usb.OnConsoleOutputChanged(string.Format(format, arg0) + Environment.NewLine); }
-      public override void WriteLine(string format, object arg0, object arg1) { usb.OnConsoleOutputChanged(string.Format(format, arg0, arg1) + Environment.NewLine); }
-      public override void WriteLine(string format, object arg0, object arg1, object arg2) { usb.OnConsoleOutputChanged(string.Format(format, arg0, arg1, arg2) + Environment.NewLine); }
-      public override void WriteLine(string format, params object[] arg) { usb.OnConsoleOutputChanged(string.Format(format, arg) + Environment.NewLine); }
-      public override void WriteLine(uint value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      public override void WriteLine(ulong value) { usb.OnConsoleOutputChanged(value + Environment.NewLine); }
-      #endregion
-      #endregion
-    }
-  }
-}
