Index: trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/HeuristicLab.Selection.Uncertainty.csproj
===================================================================
--- trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/HeuristicLab.Selection.Uncertainty.csproj	(revision 1778)
+++ trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/HeuristicLab.Selection.Uncertainty.csproj	(revision 1778)
@@ -0,0 +1,134 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Selection.Uncertainty</RootNamespace>
+    <AssemblyName>HeuristicLab.Selection.Uncertainty-3.2</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </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>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="UncertainBestSelector.cs" />
+    <Compile Include="UncertainTournamentSelector.cs" />
+    <Compile Include="UncertaintyPlugin.cs" />
+    <None Include="HeuristicLab.snk" />
+    <None Include="Properties\AssemblyInfo.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.2\HeuristicLab.Core-3.2.csproj">
+      <Project>{F43B59AB-2B8C-4570-BC1E-15592086517C}</Project>
+      <Name>HeuristicLab.Core-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.2\HeuristicLab.Data-3.2.csproj">
+      <Project>{F473D9AF-3F09-4296-9F28-3C65118DAFFA}</Project>
+      <Name>HeuristicLab.Data-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Random\3.2\HeuristicLab.Random-3.2.csproj">
+      <Project>{47019A74-F7F7-482E-83AA-D3F4F777E879}</Project>
+      <Name>HeuristicLab.Random-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Selection\3.2\HeuristicLab.Selection-3.2.csproj">
+      <Project>{F7CF0571-25CB-43D5-8443-0843A1E2861A}</Project>
+      <Name>HeuristicLab.Selection-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.StatisticalAnalysis\3.2\HeuristicLab.StatisticalAnalysis-3.2.csproj">
+      <Project>{1DAA4952-8D6B-4D43-A9E5-5466053DA777}</Project>
+      <Name>HeuristicLab.StatisticalAnalysis-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Tracing\3.2\HeuristicLab.Tracing-3.2.csproj">
+      <Project>{EE2034D9-6E27-48A1-B855-42D45F69A4FC}</Project>
+      <Name>HeuristicLab.Tracing-3.2</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- 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>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/Properties/AssemblyInfo.frame
===================================================================
--- trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/Properties/AssemblyInfo.frame	(revision 1778)
+++ trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/Properties/AssemblyInfo.frame	(revision 1778)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2009 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;
+using HeuristicLab.PluginInfrastructure;
+
+// 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.Selection.Uncertainty")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("HEAL")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2009 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("3b489cb2-b422-405a-a542-8d54042a4380")]
+
+// 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.2.0.$WCREV$")]
+[assembly: AssemblyFileVersion("3.2.0.$WCREV$")]
+[assembly: AssemblyBuildDate("$WCNOW$")]
Index: trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainBestSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainBestSelector.cs	(revision 1778)
+++ trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainBestSelector.cs	(revision 1778)
@@ -0,0 +1,100 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2009 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.StatisticalAnalysis;
+
+namespace HeuristicLab.Selection.Uncertainty {
+  public class UncertainBestSelector : StochasticSelectorBase {
+    public override string Description {
+      get { return @"Selects an individual from a tournament group, based on tests of statistical significance of quality arrays."; }
+    }
+
+    public UncertainBestSelector()
+      : base() {
+      AddVariableInfo(new VariableInfo("QualitySamples", "The array of quality samples resulting from several evaluations", typeof(DoubleArrayData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Maximization", "Maximization problem", typeof(BoolData), VariableKind.In));
+      GetVariable("CopySelected").GetValue<BoolData>().Data = true;
+      AddVariableInfo(new VariableInfo("SignificanceLevel", "The significance level for the mann whitney wilcoxon rank sum test", typeof(DoubleData), VariableKind.In));
+      GetVariableInfo("SignificanceLevel").Local = true;
+      AddVariable(new Variable("SignificanceLevel", new DoubleData(0.05)));
+    }
+
+    protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
+      if (source.SubScopes.Count < 1) throw new InvalidOperationException("No source scopes available to select.");
+      IVariableInfo qualityInfo = GetVariableInfo("QualitySamples");
+      bool maximization = GetVariableValue<BoolData>("Maximization", source, true).Data;
+      double alpha = GetVariableValue<DoubleData>("SignificanceLevel", source, true).Data;
+
+      int poolSize = source.SubScopes.Count;
+      double[][] selectionGroupSamples = new double[poolSize][];
+      double[] selectionGroupAverages = new double[poolSize];
+      int[] selectionGroupIndices = new int[poolSize];
+      for (int j = 0; j < poolSize; j++) {
+        selectionGroupIndices[j] = j;
+        selectionGroupSamples[j] = source.SubScopes[j].GetVariableValue<DoubleArrayData>(qualityInfo.FormalName, false).Data;
+        double sum = 0.0;
+        for (int k = 0; k < selectionGroupSamples[j].Length; k++) {
+          sum += selectionGroupSamples[j][k];
+        }
+        selectionGroupAverages[j] = sum / (double)selectionGroupSamples[j].Length;
+      }
+
+      int[] rankList = new int[poolSize];
+      for (int j = 0; j < poolSize - 1; j++) {
+        for (int k = j + 1; k < poolSize; k++) {
+          if (MannWhitneyWilcoxonTest.TwoTailedTest(selectionGroupSamples[j], selectionGroupSamples[k], alpha)) { // if a 2-tailed test is successful it means that two solutions are likely different
+            if (maximization && selectionGroupAverages[j] > selectionGroupAverages[k]
+              || !maximization && selectionGroupAverages[j] < selectionGroupAverages[k]) {
+              rankList[j]++;
+            } else if (maximization && selectionGroupAverages[j] < selectionGroupAverages[k]
+              || !maximization && selectionGroupAverages[j] > selectionGroupAverages[k]) {
+              rankList[k]++;
+            }
+            // else there's a statistical significant difference, but equal average qualities... can that happen? in any case, nobody gets a rank increase
+          }
+        }
+      }
+
+      Array.Sort<int, int>(rankList, selectionGroupIndices);
+      Array.Sort<int>(rankList);
+
+      List<IScope> selectedScopes = new List<IScope>();
+      for (int i = 0; i < selected; i++) {        
+        int selectedScopeIndex = selectionGroupIndices[poolSize - i - 1];
+        IScope selectedScope = source.SubScopes[selectedScopeIndex];
+        target.AddSubScope((IScope)selectedScope.Clone());
+        selectedScopes.Add(selectedScope);
+      }
+      if (!copySelected) {
+        while (selectedScopes.Count > 0) {
+          source.RemoveSubScope(selectedScopes[0]);
+          selectedScopes.RemoveAt(0);
+        }
+      }
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainTournamentSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainTournamentSelector.cs	(revision 1778)
+++ trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertainTournamentSelector.cs	(revision 1778)
@@ -0,0 +1,126 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2009 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Selection;
+using HeuristicLab.StatisticalAnalysis;
+using HeuristicLab.Tracing;
+
+namespace HeuristicLab.Selection.Uncertainty {
+  public class UncertainTournamentSelector : StochasticSelectorBase {
+    public override string Description {
+      get { return @"Selects an individual from a tournament group, based on tests of statistical significance of quality arrays."; }
+    }
+
+    public UncertainTournamentSelector()
+      : base() {
+      AddVariableInfo(new VariableInfo("QualitySamples", "The array of quality samples resulting from several evaluations", typeof(DoubleArrayData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Maximization", "Maximization problem", typeof(BoolData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("GroupSize", "Size of the tournament group", typeof(IntData), VariableKind.In));
+      GetVariableInfo("GroupSize").Local = true;
+      AddVariable(new Variable("GroupSize", new IntData(2)));
+      GetVariable("CopySelected").GetValue<BoolData>().Data = true;
+      AddVariableInfo(new VariableInfo("SignificanceLevel", "The significance level for the mann whitney wilcoxon rank sum test", typeof(DoubleData), VariableKind.In));
+      GetVariableInfo("SignificanceLevel").Local = true;
+      AddVariable(new Variable("SignificanceLevel", new DoubleData(0.05)));
+    }
+
+    protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
+      IVariableInfo qualityInfo = GetVariableInfo("QualitySamples");
+      bool maximization = GetVariableValue<BoolData>("Maximization", source, true).Data;
+      int groupSize = GetVariableValue<IntData>("GroupSize", source, true).Data;
+      double alpha = GetVariableValue<DoubleData>("SignificanceLevel", source, true).Data;
+
+      int insignificantCount = 0;
+      int equalRankListSize = 0;
+      for (int i = 0; i < selected; i++) {
+        if (source.SubScopes.Count < 1) throw new InvalidOperationException("No source scopes available to select.");
+
+        double[][] tournamentGroup = new double[groupSize][];
+        int[] tournamentGroupIndices = new int[groupSize];
+        double[] tournamentGroupAverages = new double[groupSize];
+        for (int j = 0; j < groupSize; j++) {
+          tournamentGroupIndices[j] = random.Next(source.SubScopes.Count);
+          tournamentGroup[j] = source.SubScopes[tournamentGroupIndices[j]].GetVariableValue<DoubleArrayData>(qualityInfo.FormalName, false).Data;
+          double sum = 0.0;
+          for (int k = 0; k < tournamentGroup[j].Length; k++) {
+            sum += tournamentGroup[j][k];
+          }
+          tournamentGroupAverages[j] = sum / (double)tournamentGroup[j].Length;
+        }
+
+        int[] rankList = new int[groupSize];
+        int highestRank = 0;
+        IList<int> equalRankList = new List<int>(groupSize);
+        for (int j = 0; j < groupSize - 1; j++) {
+          for (int k = j + 1; k < groupSize; k++) {
+            if (MannWhitneyWilcoxonTest.TwoTailedTest(tournamentGroup[j], tournamentGroup[k], alpha)) { // if a 2-tailed test is successful it means that two solutions are likely different
+              if (maximization && tournamentGroupAverages[j] > tournamentGroupAverages[k]
+                || !maximization && tournamentGroupAverages[j] < tournamentGroupAverages[k]) {
+                rankList[j]++;
+                if (rankList[j] > highestRank) {
+                  highestRank = rankList[j];
+                  equalRankList.Clear();
+                  equalRankList.Add(j);
+                } else if (rankList[j] == highestRank) {
+                  equalRankList.Add(j);
+                }
+              } else if (maximization && tournamentGroupAverages[j] < tournamentGroupAverages[k]
+                || !maximization && tournamentGroupAverages[j] > tournamentGroupAverages[k]) {
+                rankList[k]++;
+                if (rankList[k] > highestRank) {
+                  highestRank = rankList[k];
+                  equalRankList.Clear();
+                  equalRankList.Add(k);
+                } else if (rankList[k] == highestRank) {
+                  equalRankList.Add(k);
+                }
+              }
+              // else there's a statistical significant difference, but equal average qualities... can that happen? in any case, nobody gets a rank increase
+            }
+          }
+        }
+        int selectedScopeIndex = 0;
+        if (equalRankList.Count == 0) {
+          insignificantCount++;
+          selectedScopeIndex = tournamentGroupIndices[random.Next(groupSize)]; // no significance in all the solutions, select one randomly
+        } else {
+          equalRankListSize += equalRankList.Count;
+          selectedScopeIndex = tournamentGroupIndices[equalRankList[random.Next(equalRankList.Count)]]; // select among those with the highest rank randomly
+        }
+        IScope selectedScope = source.SubScopes[selectedScopeIndex];
+
+        if (copySelected)
+          target.AddSubScope((IScope)selectedScope.Clone());
+        else {
+          source.RemoveSubScope(selectedScope);
+          target.AddSubScope(selectedScope);
+        }
+      }
+      Logger.Debug("Solutions selected: " + selected + ". Completely random selections: " + insignificantCount + ". Average size of highest rank pool: " + (double)equalRankListSize / (double)selected);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertaintyPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertaintyPlugin.cs	(revision 1778)
+++ trunk/sources/HeuristicLab.Selection.Uncertainty/3.2/UncertaintyPlugin.cs	(revision 1778)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2009 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Selection.Uncertainty {
+  [ClassInfo(Name = "HeuristicLab.Selection.Uncertainty-3.2")]
+  [PluginFile(Filename = "HeuristicLab.Selection.Uncertainty-3.2.dll", Filetype = PluginFileType.Assembly)]
+  [Dependency(Dependency = "HeuristicLab.Core-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Data-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Selection-3.2")]
+  [Dependency(Dependency = "HeuristicLab.StatisticalAnalysis-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Random-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Tracing-3.2")]
+  public class UncertaintyPlugin : PluginBase {
+  }
+}
Index: trunk/sources/HeuristicLab.sln
===================================================================
--- trunk/sources/HeuristicLab.sln	(revision 1777)
+++ trunk/sources/HeuristicLab.sln	(revision 1778)
@@ -197,5 +197,5 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Security.Server-3.2", "HeuristicLab.Security.Server\3.2\HeuristicLab.Security.Server-3.2.csproj", "{E3288D4B-7A51-499A-AC5B-019319CE51DC}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Selection.Uncertainty", "HeuristicLab.Selection.Uncertainty\v3.2\HeuristicLab.Selection.Uncertainty.csproj", "{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Selection.Uncertainty", "HeuristicLab.Selection.Uncertainty\3.2\HeuristicLab.Selection.Uncertainty.csproj", "{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}"
 EndProject
 Global
@@ -3423,6 +3423,8 @@
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x64.ActiveCfg = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x86.ActiveCfg = Debug|Any CPU
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x64.ActiveCfg = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x64.Build.0 = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x86.ActiveCfg = Debug|x86
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.CEDMA Debug|x86.Build.0 = Debug|x86
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -3433,6 +3435,8 @@
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x64.ActiveCfg = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x86.ActiveCfg = Debug|Any CPU
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x64.ActiveCfg = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x64.Build.0 = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x86.ActiveCfg = Debug|x86
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.GP Debug|x86.Build.0 = Debug|x86
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Release|Any CPU.Build.0 = Release|Any CPU
@@ -3441,14 +3445,16 @@
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Release|x86.ActiveCfg = Release|x86
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Release|x86.Build.0 = Release|x86
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|Any CPU.ActiveCfg = Release|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|Any CPU.Build.0 = Release|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x64.ActiveCfg = Release|x64
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x64.Build.0 = Release|x64
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x86.ActiveCfg = Release|x86
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x86.Build.0 = Release|x86
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x64.ActiveCfg = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x64.Build.0 = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x86.ActiveCfg = Debug|x86
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.v3.2 Debug|x86.Build.0 = Debug|x86
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x64.ActiveCfg = Debug|Any CPU
-		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x86.ActiveCfg = Debug|Any CPU
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x64.ActiveCfg = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x64.Build.0 = Debug|x64
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x86.ActiveCfg = Debug|x86
+		{4FB4120E-CE65-473F-B2F0-FC2E82FF3761}.Visualization Debug|x86.Build.0 = Debug|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
