Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab 3.3.sln
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab 3.3.sln	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab 3.3.sln	(revision 7682)
@@ -19,4 +19,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.Views-3.4", "HeuristicLab.Problems.Instances.Views\3.4\HeuristicLab.Problems.Instances.Views-3.4.csproj", "{B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.Classification-3.4", "HeuristicLab.Problems.Instances.Classification\3.4\HeuristicLab.Problems.Instances.Classification-3.4.csproj", "{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}"
 EndProject
 Global
@@ -120,4 +122,16 @@
 		{B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Release|x64.ActiveCfg = Release|Any CPU
 		{B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Release|x86.ActiveCfg = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|x64.ActiveCfg = Release|Any CPU
+		{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs	(revision 7682)
@@ -20,7 +20,11 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.DataAnalysis {
@@ -28,5 +32,6 @@
   [Item("Classification Problem", "A general classification problem.")]
   [Creatable("Problems")]
-  public class ClassificationProblem : DataAnalysisProblem<IClassificationProblemData>, IClassificationProblem, IStorableContent {
+  public class ClassificationProblem : DataAnalysisProblem<IClassificationProblemData>, IClassificationProblem, IStorableContent,
+    IProblemInstanceConsumer<ClassificationData>, IProblemInstanceExporter<ClassificationData>, IProblemInstanceConsumer {
     public string Filename { get; set; }
 
@@ -45,4 +50,40 @@
       ProblemData = problemData;
     }
+
+    public void Load(ClassificationData data) {
+      Name = data.Name;
+      Description = data.Description;
+      Dataset dataset = new Dataset(data.InputVariables, data.Values);
+      ProblemData = new ClassificationProblemData(dataset, data.AllowedInputVariables, data.TargetVariable);
+      ProblemData.TrainingPartition.Start = data.TrainingPartitionStart;
+      ProblemData.TrainingPartition.End = data.TrainingPartitionEnd;
+      ProblemData.TestPartition.Start = data.TestPartitionStart;
+      ProblemData.TestPartition.End = data.TestPartitionEnd;
+      OnReset();
+    }
+
+    public ClassificationData Export() {
+      if (!ProblemData.InputVariables.Count.Equals(ProblemData.Dataset.DoubleVariables.Count()))
+        throw new ArgumentException("Not all input variables are double variables! (Export only works with double variables)");
+
+      ClassificationData claData = new ClassificationData();
+      claData.Name = Name;
+      claData.Description = Description;
+      claData.TargetVariable = ProblemData.TargetVariable;
+      claData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
+      claData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
+      claData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
+      claData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
+      claData.TestPartitionStart = ProblemData.TestPartition.Start;
+      claData.TestPartitionEnd = ProblemData.TestPartition.End;
+
+      List<List<double>> data = new List<List<double>>();
+      foreach (var variable in ProblemData.Dataset.DoubleVariables) {
+        data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
+      }
+      claData.Values = Transformer.Transformation(data);
+
+      return claData;
+    }
   }
 }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs	(revision 7682)
@@ -71,6 +71,6 @@
       regData.Description = Description;
       regData.TargetVariable = ProblemData.TargetVariable;
-      regData.InputVariables = ProblemData.InputVariables.Select(x => x.Value);
-      regData.AllowedInputVariables = ProblemData.AllowedInputVariables;
+      regData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
+      regData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
       regData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
       regData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
@@ -82,20 +82,8 @@
         data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
       }
-      regData.Values = Transformation(data);
+      regData.Values = Transformer.Transformation(data);
 
       return regData;
     }
-
-    public static double[,] Transformation(List<List<double>> data) {
-      if (!data.All(x => x.Count.Equals(data.First().Count)))
-        throw new ArgumentException("Can't create jagged array.");
-      double[,] values = new double[data.First().Count, data.Count];
-      for (int i = 0; i < values.GetLength(0); i++) {
-        for (int j = 0; j < values.GetLength(1); j++) {
-          values[i, j] = data[j][i];
-        }
-      }
-      return values;
-    }
   }
 }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs	(revision 7682)
@@ -0,0 +1,54 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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;
+namespace HeuristicLab.Problems.Instances.Regression {
+  public abstract class ArtificialClassificationDataDescriptor : IDataDescriptor {
+    public abstract string Name { get; }
+    public abstract string Description { get; }
+
+    protected abstract string TargetVariable { get; }
+    protected abstract string[] InputVariables { get; }
+    protected abstract string[] AllowedInputVariables { get; }
+    protected abstract int TrainingPartitionStart { get; }
+    protected abstract int TrainingPartitionEnd { get; }
+    protected abstract int TestPartitionStart { get; }
+    protected abstract int TestPartitionEnd { get; }
+
+    public ClassificationData GenerateClassificationData() {
+      ClassificationData claData = new ClassificationData();
+      claData.Name = this.Name;
+      claData.Description = this.Description;
+      claData.InputVariables = this.InputVariables;
+      claData.AllowedInputVariables = this.AllowedInputVariables;
+      claData.TargetVariable = this.TargetVariable;
+      claData.Values = Transformer.Transformation(this.GenerateValues());
+      claData.TrainingPartitionStart = this.TrainingPartitionStart;
+      claData.TrainingPartitionEnd = this.TrainingPartitionEnd;
+      claData.TestPartitionStart = this.TestPartitionStart;
+      claData.TestPartitionEnd = this.TestPartitionEnd;
+      return claData;
+    }
+
+    protected abstract List<List<double>> GenerateValues();
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs	(revision 7682)
@@ -0,0 +1,29 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Instances.Regression {
+  public abstract class ArtificialClassificationInstanceProvider : ClassificationInstanceProvider {
+    public override ClassificationData LoadData(IDataDescriptor descriptor) {
+      return ((ArtificialClassificationDataDescriptor)descriptor).GenerateClassificationData();
+    }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs	(revision 7682)
@@ -0,0 +1,97 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.IO;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Instances.Regression {
+  public abstract class ClassificationInstanceProvider : IProblemInstanceProvider<ClassificationData> {
+    public ClassificationData LoadData(string path) {
+      TableFileParser csvFileParser = new TableFileParser();
+      csvFileParser.Parse(path);
+
+      ClassificationData claData = new ClassificationData();
+      int pos = path.LastIndexOf('\\');
+      if (pos < 0)
+        claData.Name = path;
+      else {
+        pos++;
+        claData.Name = path.Substring(pos, path.Length - pos);
+      }
+      claData.InputVariables = new List<string>(csvFileParser.VariableNames).ToArray();
+      claData.TargetVariable = csvFileParser.VariableNames.Last();
+      claData.AllowedInputVariables = claData.InputVariables.Where(x => !x.Equals(claData.TargetVariable)).ToArray();
+      //convert to multidimensional array
+      List<IList> values = csvFileParser.Values;
+      claData.Values = new double[values.First().Count, values.Count];
+      for (int i = 0; i < values.Count; i++) {
+        for (int j = 0; j < values.First().Count; j++) {
+          claData.Values[j, i] = (double)values[i][j];
+        }
+      }
+
+      int trainingPartEnd = csvFileParser.Rows * 2 / 3;
+      claData.TrainingPartitionStart = 0;
+      claData.TrainingPartitionEnd = trainingPartEnd;
+      claData.TestPartitionStart = trainingPartEnd;
+      claData.TestPartitionEnd = csvFileParser.Rows;
+      return claData;
+    }
+
+    public void SaveData(ClassificationData instance, string path) {
+      StringBuilder strBuilder = new StringBuilder();
+
+      foreach (var variable in instance.InputVariables) {
+        strBuilder.Append(variable + ";");
+      }
+      strBuilder.Remove(strBuilder.Length - 1, 1);
+      strBuilder.AppendLine();
+
+      double[,] values = instance.Values;
+
+      for (int i = 0; i < values.GetLength(0); i++) {
+        for (int j = 0; j < values.GetLength(1); j++) {
+          strBuilder.Append(values[i, j] + ";");
+        }
+        strBuilder.Remove(strBuilder.Length - 1, 1);
+        strBuilder.AppendLine();
+      }
+
+      using (StreamWriter writer = new StreamWriter(path)) {
+        writer.Write(strBuilder);
+      }
+    }
+
+    public abstract IEnumerable<IDataDescriptor> GetDataDescriptors();
+    public abstract ClassificationData LoadData(IDataDescriptor descriptor);
+
+    public abstract string Name { get; }
+    public abstract string Description { get; }
+    public abstract Uri WebLink { get; }
+    public abstract string ReferencePublication { get; }
+
+    public IProblemInstanceConsumer<ClassificationData> Consumer { get; set; }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj	(revision 7682)
@@ -0,0 +1,95 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{1BBFCD5B-8A1C-4225-A682-ADEC7800E683}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.Instances.Classification</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.Instances.Classification-3.4</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Optimization-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ArtificialClassificationDataDescriptor.cs" />
+    <Compile Include="ArtificialClassificationInstanceProvider.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ClassificationInstanceProvider.cs" />
+    <Compile Include="RealWorld\RealWorldInstanceProvider.cs" />
+    <Compile Include="ResourceClassificationDataDescriptor.cs" />
+    <Compile Include="ResourceClassificationInstanceProvider.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Data\RealWorld.zip" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
+      <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Plugin.cs.frame
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Plugin.cs.frame	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Plugin.cs.frame	(revision 7682)
@@ -0,0 +1,34 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.Instances.Classification {
+  [Plugin("HeuristicLab.Problems.Instances.Classification", "3.4.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.Instances.Classification-3.4.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsInstancesPlugin : PluginBase {
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs	(revision 7682)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.Instances.Classification-3.4")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Problems.Instances.Classification-3.4")]
+[assembly: AssemblyCopyright("Copyright ©  2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e76e5928-97e3-45b1-879c-fb203d64041d")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs.frame	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/Properties/AssemblyInfo.cs.frame	(revision 7682)
@@ -0,0 +1,57 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.Instances.Classification")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("HEAL")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e76e5928-97e3-45b1-879c-fb203d64041d")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.4.0.0")]
+[assembly: AssemblyFileVersion("3.4.0.$WCREV$")]
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/RealWorld/RealWorldInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/RealWorld/RealWorldInstanceProvider.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/RealWorld/RealWorldInstanceProvider.cs	(revision 7682)
@@ -0,0 +1,43 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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;
+
+namespace HeuristicLab.Problems.Instances.Regression {
+  public class RealWorldInstanceProvider : ResourceClassificationInstanceProvider {
+    public override string Name {
+      get { return "Real World Benchmark Problems"; }
+    }
+    public override string Description {
+      get {
+        return "";
+      }
+    }
+    public override Uri WebLink {
+      get { return null; }
+    }
+    public override string ReferencePublication {
+      get { return ""; }
+    }
+
+    protected override string FileExtension { get { return "RealWorld"; } }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationDataDescriptor.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationDataDescriptor.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationDataDescriptor.cs	(revision 7682)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Instances.Regression {
+  internal class ResourceClassificationDataDescriptor : IDataDescriptor {
+    public string Name { get; internal set; }
+    public string Description { get; internal set; }
+
+    internal string ResourceName { get; set; }
+    internal ResourceClassificationDataDescriptor(string name, string description, string resourceName) {
+      Name = name;
+      Description = description;
+      ResourceName = resourceName;
+    }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs	(revision 7682)
@@ -0,0 +1,88 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+using ICSharpCode.SharpZipLib.Zip;
+
+namespace HeuristicLab.Problems.Instances.Regression {
+  public abstract class ResourceClassificationInstanceProvider : ClassificationInstanceProvider {
+
+    protected abstract string FileExtension { get; }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var solutionsArchiveName = GetResourceName(FileExtension + @"\.zip");
+      if (!String.IsNullOrEmpty(solutionsArchiveName)) {
+        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+          foreach (var entry in GetZipContents(solutionsZipFile).OrderBy(x => x))
+            yield return new ResourceClassificationDataDescriptor(Path.GetFileNameWithoutExtension(entry), Description, entry);
+        }
+      }
+    }
+
+    public override ClassificationData LoadData(IDataDescriptor id) {
+      var descriptor = (ResourceClassificationDataDescriptor)id;
+
+      ClassificationData claData = LoadData(GetTempFileForResource(descriptor.ResourceName));
+      claData.Name = descriptor.Name;
+      claData.Description = descriptor.Description;
+
+      return claData;
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+              .Where(x => Regex.Match(x, @".*\.Data\." + fileName).Success).SingleOrDefault();
+    }
+
+    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
+      ZipEntry entry;
+      while ((entry = zipFile.GetNextEntry()) != null) {
+        yield return entry.Name;
+      }
+    }
+
+    private string GetTempFileForResource(string resourceName) {
+      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
+      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+        var entry = instancesZipFile.GetEntry(resourceName);
+        string path = Path.GetTempFileName();
+        using (var stream = instancesZipFile.GetInputStream(entry)) {
+          WriteStreamToTempFile(stream, path);
+        }
+        return path;
+      }
+    }
+
+    private void WriteStreamToTempFile(Stream stream, string path) {
+      using (FileStream output = new FileStream(path, FileMode.Create, FileAccess.Write)) {
+        int cnt = 0;
+        byte[] buffer = new byte[32 * 1024];
+        while ((cnt = stream.Read(buffer, 0, buffer.Length)) != 0)
+          output.Write(buffer, 0, cnt);
+      }
+    }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs	(revision 7682)
@@ -20,5 +20,4 @@
 #endregion
 
-
 using System.Collections.Generic;
 namespace HeuristicLab.Problems.Instances.Regression {
@@ -28,6 +27,6 @@
 
     protected abstract string TargetVariable { get; }
-    protected abstract IEnumerable<string> InputVariables { get; }
-    protected abstract IEnumerable<string> AllowedInputVariables { get; }
+    protected abstract string[] InputVariables { get; }
+    protected abstract string[] AllowedInputVariables { get; }
     protected abstract int TrainingPartitionStart { get; }
     protected abstract int TrainingPartitionEnd { get; }
@@ -42,5 +41,5 @@
       regData.AllowedInputVariables = this.AllowedInputVariables;
       regData.TargetVariable = this.TargetVariable;
-      regData.Values = this.GenerateValues();
+      regData.Values = Transformer.Transformation(this.GenerateValues());
       regData.TrainingPartitionStart = this.TrainingPartitionStart;
       regData.TrainingPartitionEnd = this.TrainingPartitionEnd;
@@ -50,5 +49,5 @@
     }
 
-    protected abstract double[,] GenerateValues();
+    protected abstract List<List<double>> GenerateValues();
   }
 }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionEight.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionEight.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionEight.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 1091; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateSteps(1, 100, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFifteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFifteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFifteen.cs	(revision 7682)
@@ -41,6 +41,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -48,5 +48,5 @@
     protected override int TestPartitionEnd { get { return 5000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -63,5 +63,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFour.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFour.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionFour.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 21; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 2022; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateSteps(-1, 1, 0.1));
@@ -58,5 +58,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSeven.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSeven.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSeven.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 50; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 170; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateSteps(1, 50, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSix.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSix.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSix.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "Z", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y", "Z" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "Z", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y", "Z" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 1000; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 11000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(TestPartitionEnd, -1, 1));
@@ -61,5 +61,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSixteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSixteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionSixteen.cs	(revision 7682)
@@ -41,6 +41,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -48,5 +48,5 @@
     protected override int TestPartitionEnd { get { return 5000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -63,5 +63,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionThirteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionThirteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionThirteen.cs	(revision 7682)
@@ -41,6 +41,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -48,5 +48,5 @@
     protected override int TestPartitionEnd { get { return 5000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -63,5 +63,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionTwelve.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionTwelve.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Keijzer/KeijzerFunctionTwelve.cs	(revision 7682)
@@ -41,6 +41,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -48,5 +48,5 @@
     protected override int TestPartitionEnd { get { return 5000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -63,5 +63,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEight.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEight.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEight.cs	(revision 7682)
@@ -45,6 +45,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -52,5 +52,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -68,5 +68,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEleven.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEleven.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionEleven.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFive.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFive.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFive.cs	(revision 7682)
@@ -45,6 +45,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -52,5 +52,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -66,5 +66,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFiveteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFiveteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFiveteen.cs	(revision 7682)
@@ -45,6 +45,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -52,5 +52,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -69,5 +69,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFour.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFour.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFour.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFourteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFourteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionFourteen.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -68,5 +68,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionNine.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionNine.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionNine.cs	(revision 7682)
@@ -45,6 +45,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -52,5 +52,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -69,5 +69,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionOne.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionOne.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionOne.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSeven.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSeven.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSeven.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSix.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSix.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionSix.cs	(revision 7682)
@@ -45,6 +45,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -52,5 +52,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -66,5 +66,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTen.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -68,5 +68,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThirteen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThirteen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThirteen.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -68,5 +68,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThree.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThree.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionThree.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -68,5 +68,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwelve.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwelve.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwelve.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -66,5 +66,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwo.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwo.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Korns/KornsFunctionTwo.cs	(revision 7682)
@@ -44,6 +44,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X0", "X1", "X2", "X3", "X4" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X0", "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5000; } }
@@ -51,5 +51,5 @@
     protected override int TestPartitionEnd { get { return 10000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -67,5 +67,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEight.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEight.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEight.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, 0, 4));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEleven.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEleven.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionEleven.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Z"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "Z" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "Z" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 1000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(TestPartitionEnd, 0, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFive.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFive.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFive.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFour.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFour.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionFour.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionNine.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionNine.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionNine.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Z"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "Z" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "Z" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 1000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(TestPartitionEnd, 0, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionOne.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionOne.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionOne.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSeven.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSeven.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSeven.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, 0, 2));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSix.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSix.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionSix.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTen.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Z"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "Z" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "Z" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 1000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(1000, 0, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionThree.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionThree.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionThree.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwelve.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwelve.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwelve.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Z"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "Z" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "Z" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 1000; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(1000, 0, 1));
@@ -59,5 +59,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwo.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwo.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Nguyen/NguyenFunctionTwo.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 20; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 350; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateUniformDistributedValues(500, -1, 1));
@@ -57,5 +57,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Properties/AssemblyInfo.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Properties/AssemblyInfo.cs	(revision 7682)
@@ -55,3 +55,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.4.0.0")]
-[assembly: AssemblyFileVersion("3.4.0.7666")]
+[assembly: AssemblyFileVersion("3.4.0.7667")]
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs	(revision 7682)
@@ -41,7 +41,7 @@
         regData.Name = path.Substring(pos, path.Length - pos);
       }
-      regData.InputVariables = new List<string>(csvFileParser.VariableNames);
+      regData.InputVariables = new List<string>(csvFileParser.VariableNames).ToArray();
       regData.TargetVariable = csvFileParser.VariableNames.Last();
-      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable));
+      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable)).ToArray();
       //convert to multidimensional array
       List<IList> values = csvFileParser.Values;
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs	(revision 7682)
@@ -49,5 +49,5 @@
 
       regData.TargetVariable = regData.InputVariables.First();
-      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable));
+      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable)).ToArray();
 
       return regData;
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs	(revision 7682)
@@ -28,16 +28,4 @@
   public class ValueGenerator {
     protected static FastRandom rand = new FastRandom();
-
-    public static double[,] Transformation(List<List<double>> data) {
-      if (!data.All(x => x.Count.Equals(data.First().Count)))
-        throw new ArgumentException("Can't create jagged array.");
-      double[,] values = new double[data.First().Count, data.Count];
-      for (int i = 0; i < values.GetLength(0); i++) {
-        for (int j = 0; j < values.GetLength(1); j++) {
-          values[i, j] = data[j][i];
-        }
-      }
-      return values;
-    }
 
     public static List<double> GenerateSteps(double start, double end, double stepWidth) {
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/BreimanOne.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/BreimanOne.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/BreimanOne.cs	(revision 7682)
@@ -36,6 +36,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 5001; } }
@@ -45,5 +45,5 @@
     protected static FastRandom rand = new FastRandom();
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       List<int> values = new List<int>() { -1, 1 };
@@ -76,5 +76,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
 
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/PolyTen.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/PolyTen.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/PolyTen.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 250; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 500; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -69,5 +69,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/SpatialCoevolution.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/SpatialCoevolution.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Various/SpatialCoevolution.cs	(revision 7682)
@@ -42,6 +42,6 @@
     }
     protected override string TargetVariable { get { return "F"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y", "F" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X", "Y" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 250; } }
@@ -49,5 +49,5 @@
     protected override int TestPartitionEnd { get { return 500; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
 
@@ -70,5 +70,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/KotanchekFunction.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/KotanchekFunction.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/KotanchekFunction.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 3025; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
 
@@ -66,5 +66,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialThreeDimensional.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialThreeDimensional.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialThreeDimensional.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "X3", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2", "X3" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 300; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 3700; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
 
@@ -76,5 +76,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialTwoDimensional.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialTwoDimensional.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RationalPolynomialTwoDimensional.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 50; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 2157; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
 
@@ -67,5 +67,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RippleFunction.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RippleFunction.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/RippleFunction.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 300; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 1300; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionOneDimensional.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionOneDimensional.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionOneDimensional.cs	(revision 7682)
@@ -38,6 +38,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 100; } }
@@ -45,5 +45,5 @@
     protected override int TestPartitionEnd { get { return 321; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       data.Add(ValueGenerator.GenerateSteps(0.05, 10, 0.1));
@@ -58,5 +58,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionTwoDimensional.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionTwoDimensional.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SalutowiczFunctionTwoDimensional.cs	(revision 7682)
@@ -40,6 +40,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 601; } }
@@ -47,5 +47,5 @@
     protected override int TestPartitionEnd { get { return 3155; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       List<List<double>> trainingData = new List<List<double>>() {
@@ -76,5 +76,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SineCosineFunction.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SineCosineFunction.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/SineCosineFunction.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 30; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 1461; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       List<double> oneVariableTestData = ValueGenerator.GenerateSteps(-0.05, 6.05, 0.02);
@@ -66,5 +66,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/UnwrappedBallFunctionFiveDimensional.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/UnwrappedBallFunctionFiveDimensional.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/Vladislavleva/UnwrappedBallFunctionFiveDimensional.cs	(revision 7682)
@@ -39,6 +39,6 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override IEnumerable<string> InputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5", "Y" }; } }
-    protected override IEnumerable<string> AllowedInputVariables { get { return new List<string>() { "X1", "X2", "X3", "X4", "X5" }; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
     protected override int TrainingPartitionEnd { get { return 1024; } }
@@ -46,5 +46,5 @@
     protected override int TestPartitionEnd { get { return 6024; } }
 
-    protected override double[,] GenerateValues() {
+    protected override List<List<double>> GenerateValues() {
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
@@ -65,5 +65,5 @@
       data.Add(results);
 
-      return ValueGenerator.Transformation(data);
+      return data;
     }
   }
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Plugin.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Plugin.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Plugin.cs	(revision 7682)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Instances.Views {
-  [Plugin("HeuristicLab.Problems.Instances.Views", "3.4.0.7666")]
+  [Plugin("HeuristicLab.Problems.Instances.Views", "3.4.0.7667")]
   [PluginFile("HeuristicLab.Problems.Instances.Views-3.4.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Common", "3.3")]
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Properties/AssemblyInfo.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Properties/AssemblyInfo.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Views/3.4/Properties/AssemblyInfo.cs	(revision 7682)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.4.0.0")]
-[assembly: AssemblyFileVersion("3.4.2.7666")]
+[assembly: AssemblyFileVersion("3.4.2.7667")]
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 7682)
@@ -116,5 +116,7 @@
     <Compile Include="IExportable.cs" />
     <Compile Include="TableFileParser.cs" />
+    <Compile Include="Transformer.cs" />
     <Compile Include="Types\ATSPData.cs" />
+    <Compile Include="Types\ClassificationData.cs" />
     <Compile Include="Types\RegressionData.cs" />
     <Compile Include="Types\CTAPData.cs" />
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Transformer.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Transformer.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Transformer.cs	(revision 7682)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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;
+
+namespace HeuristicLab.Problems.Instances {
+  public class Transformer {
+    public static double[,] Transformation(List<List<double>> data) {
+      if (!data.All(x => x.Count.Equals(data.First().Count)))
+        throw new ArgumentException("Can't create jagged array.");
+      double[,] values = new double[data.First().Count, data.Count];
+      for (int i = 0; i < values.GetLength(0); i++) {
+        for (int j = 0; j < values.GetLength(1); j++) {
+          values[i, j] = data[j][i];
+        }
+      }
+      return values;
+    }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/ClassificationData.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/ClassificationData.cs	(revision 7682)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/ClassificationData.cs	(revision 7682)
@@ -0,0 +1,72 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Instances {
+
+  /// <summary>
+  /// Describes instances of a Classification
+  /// Problem.
+  /// </summary>
+  public class ClassificationData {
+    /// <summary>
+    /// The name of the instance
+    /// </summary>
+    public string Name { get; set; }
+    /// <summary>
+    /// Optional! The description of the instance
+    /// </summary>
+    public string Description { get; set; }
+    /// <summary>
+    /// The target variable of a problem.
+    /// </summary>
+    public string TargetVariable { get; set; }
+    /// <summary>
+    /// All variables which are in the problem.
+    /// </summary>
+    public string[] InputVariables { get; set; }
+    /// <summary>
+    /// All variables which shall be used to solve the problem.
+    /// (Variables wich are not contained by AllowedInputVariables won't be checked initialy, when the problem is created.)
+    /// </summary>
+    public string[] AllowedInputVariables { get; set; }
+    /// <summary>
+    /// Start of the trainings partition
+    /// </summary>
+    public int TrainingPartitionStart { get; set; }
+    /// <summary>
+    /// End of the trainings partition
+    /// </summary>
+    public int TrainingPartitionEnd { get; set; }
+    /// <summary>
+    /// Start of the test partition
+    /// </summary>
+    public int TestPartitionStart { get; set; }
+    /// <summary>
+    /// End of the test partition
+    /// </summary>
+    public int TestPartitionEnd { get; set; }
+    /// <summary>
+    /// Contains all the values of the variables
+    /// </summary>
+    public double[,] Values { get; set; }
+  }
+}
Index: /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/RegressionData.cs
===================================================================
--- /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/RegressionData.cs	(revision 7681)
+++ /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/RegressionData.cs	(revision 7682)
@@ -20,6 +20,4 @@
 #endregion
 
-
-using System.Collections.Generic;
 namespace HeuristicLab.Problems.Instances {
 
@@ -36,17 +34,36 @@
     /// </summary>
     public string Description { get; set; }
-
+    /// <summary>
+    /// The target variable of a problem.
+    /// </summary>
     public string TargetVariable { get; set; }
-
-    public IEnumerable<string> InputVariables { get; set; }
-
-    public IEnumerable<string> AllowedInputVariables { get; set; }
-
+    /// <summary>
+    /// All variables which are in the problem.
+    /// </summary>
+    public string[] InputVariables { get; set; }
+    /// <summary>
+    /// All variables which shall be used to solve the problem.
+    /// (Variables wich are not contained by AllowedInputVariables won't be checked initialy, when the problem is created.)
+    /// </summary>
+    public string[] AllowedInputVariables { get; set; }
+    /// <summary>
+    /// Start of the trainings partition
+    /// </summary>
     public int TrainingPartitionStart { get; set; }
+    /// <summary>
+    /// End of the trainings partition
+    /// </summary>
     public int TrainingPartitionEnd { get; set; }
-
+    /// <summary>
+    /// Start of the test partition
+    /// </summary>
     public int TestPartitionStart { get; set; }
+    /// <summary>
+    /// End of the test partition
+    /// </summary>
     public int TestPartitionEnd { get; set; }
-
+    /// <summary>
+    /// Contains all the values of the variables
+    /// </summary>
     public double[,] Values { get; set; }
   }
