Index: /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/HeuristicLab.Algorithms.LearningClassifierSystems-3.3.csproj
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/HeuristicLab.Algorithms.LearningClassifierSystems-3.3.csproj	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/HeuristicLab.Algorithms.LearningClassifierSystems-3.3.csproj	(revision 9160)
@@ -87,4 +87,5 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Random-3.3">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
Index: /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs	(revision 9160)
@@ -63,4 +63,7 @@
       get { return (ValueLookupParameter<PercentValue>)Parameters["MutationProbability"]; }
     }
+    public ValueLookupParameter<PercentValue> CrossoverProbabilityParameter {
+      get { return (ValueLookupParameter<PercentValue>)Parameters["CrossoverProbability"]; }
+    }
     public ValueLookupParameter<IOperator> MutatorParameter {
       get { return (ValueLookupParameter<IOperator>)Parameters["Mutator"]; }
@@ -111,5 +114,6 @@
       Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
       Parameters.Add(new ValueLookupParameter<IOperator>("AfterCrossover", "The operator executed after crossing the solutions."));
-      Parameters.Add(new ValueLookupParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution."));
+      Parameters.Add(new ValueLookupParameter<PercentValue>("CrossoverProbability", "The probability that the crossover operator is applied on a solution."));
+      Parameters.Add(new ValueLookupParameter<PercentValue>("MutationProbability", "The probability that druing the mutation operator a mutation takes place."));
       Parameters.Add(new ValueLookupParameter<IOperator>("Mutator", "The operator used to mutate solutions."));
       Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed."));
@@ -128,4 +132,9 @@
       ChildrenCreator childrenCreator = new ChildrenCreator();
       UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor();
+      StochasticBranch crossoverStochasticBranch = new StochasticBranch();
+      RandomSelector randomSelector = new RandomSelector();
+      PreservingRightReducer preservingRightReducer = new PreservingRightReducer();
+      Assigner numerosityAssigner = new Assigner();
+      Assigner experienceAssigner = new Assigner();
       Placeholder crossover = new Placeholder();
       Placeholder afterCrossover = new Placeholder();
@@ -167,6 +176,18 @@
       childrenCreator.ParentsPerChild = new IntValue(2);
 
+      crossoverStochasticBranch.ProbabilityParameter.ActualName = CrossoverProbabilityParameter.ActualName;
+      crossoverStochasticBranch.RandomParameter.ActualName = "Random";
+
+      randomSelector.CopySelected.Value = true;
+      randomSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1);
+
       crossover.Name = "Crossover";
       crossover.OperatorParameter.ActualName = "Crossover";
+
+      numerosityAssigner.LeftSideParameter.ActualName = "Numerosity";
+      numerosityAssigner.RightSideParameter.Value = new IntValue(1);
+
+      experienceAssigner.LeftSideParameter.ActualName = "Experience";
+      experienceAssigner.RightSideParameter.Value = new IntValue(0);
 
       afterCrossover.Name = "AfterCrossover";
@@ -228,8 +249,14 @@
       subScopesProcessor1.Successor = mergingReducer;
       childrenCreator.Successor = uniformSubScopesProcessor1;
-      uniformSubScopesProcessor1.Operator = crossover;
+      uniformSubScopesProcessor1.Operator = crossoverStochasticBranch;
       uniformSubScopesProcessor1.Successor = subScopesCounter;
+      crossoverStochasticBranch.FirstBranch = crossover;
+      crossoverStochasticBranch.SecondBranch = randomSelector;
+      randomSelector.Successor = preservingRightReducer;
+      preservingRightReducer.Successor = numerosityAssigner;
+      numerosityAssigner.Successor = experienceAssigner;
+      experienceAssigner.Successor = null;
+      crossoverStochasticBranch.Successor = mutator;
       crossover.Successor = afterCrossover;
-      afterCrossover.Successor = mutator;
       mutator.Successor = doGASubsumptionBranch1;
       doGASubsumptionBranch1.TrueBranch = checkGASubsumptionOperator;
Index: /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj	(revision 9160)
@@ -68,4 +68,5 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Selection-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
@@ -120,4 +121,5 @@
     <Compile Include="Selectors\IMatchSelector.cs" />
     <Compile Include="Selectors\MatchSelector.cs" />
+    <Compile Include="Selectors\PreservingRightReducer.cs" />
     <Compile Include="Subsumption\ActionSetSubsumptionOperator.cs" />
     <Compile Include="Subsumption\CheckGASubsumptionOperator.cs" />
Index: /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionProblemData.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionProblemData.cs	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionProblemData.cs	(revision 9160)
@@ -34,8 +34,4 @@
     IEnumerable<string> AllowedActionVariables { get; }
 
-    IntValue Length { get; }
-    IntValue ActionLength { get; }
-    IntMatrix Bounds { get; }
-
     IClassifier FetchClassifier(int rowNumber);
 
Index: /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Selectors/PreservingRightReducer.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Selectors/PreservingRightReducer.cs	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Selectors/PreservingRightReducer.cs	(revision 9160)
@@ -0,0 +1,58 @@
+﻿#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;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Selection;
+
+namespace HeuristicLab.Encodings.ConditionActionEncoding {
+  [Item("PreservingRightReducer", "")]
+  [StorableClass]
+  public sealed class PreservingRightReducer : Reducer, IReducer {
+    [StorableConstructor]
+    private PreservingRightReducer(bool deserializing) : base(deserializing) { }
+    private PreservingRightReducer(PreservingRightReducer original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PreservingRightReducer(this, cloner);
+    }
+    public PreservingRightReducer() : base() { }
+
+    protected override List<IScope> Reduce(List<IScope> scopes) {
+      IScope rightChild = scopes[scopes.Count - 1];
+      IScope leftChild = scopes[0];
+
+      if (rightChild.SubScopes.Count != 1) {
+        throw new ArgumentException("Right child is only allowed to have one sub scope");
+      }
+
+      foreach (var variable in rightChild.SubScopes[0].Variables) {
+        CurrentScope.Variables.Add(new Variable(variable.Name, variable.Value));
+      }
+
+      return leftChild.SubScopes.ToList();
+    }
+  }
+}
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/HeuristicLab.Problems.ConditionActionClassification-3.3.csproj
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/HeuristicLab.Problems.ConditionActionClassification-3.3.csproj	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/HeuristicLab.Problems.ConditionActionClassification-3.3.csproj	(revision 9160)
@@ -78,4 +78,5 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="System" />
     <Reference Include="System.Core" />
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblem.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblem.cs	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblem.cs	(revision 9160)
@@ -30,8 +30,10 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.ConditionActionClassification {
   [StorableClass]
-  public class ConditionActionClassificationProblem : HeuristicOptimizationProblem<XCSEvaluator, UniformRandomCombinedIntegerVectorCreator>, IConditionActionProblem {
+  public class ConditionActionClassificationProblem : HeuristicOptimizationProblem<XCSEvaluator, UniformRandomCombinedIntegerVectorCreator>, IConditionActionProblem,
+  IProblemInstanceConsumer<ConditionActionClassificationProblemData> {
     private const string ClassifierFetcherParameterName = "ClassifierFetcher";
     private const string ActionExecuterParameterName = "ActionExecuter";
@@ -87,4 +89,10 @@
     public ConditionActionClassificationProblemData ProblemData {
       get { return ProblemDataParameter.Value; }
+      protected set {
+        ProblemDataParameter.Value = value;
+        if (value != null) {
+          SetProblemDataSpecificParameters();
+        }
+      }
     }
     IParameter IConditionActionProblem.PossibleActionsConcreteClassParameter {
@@ -185,29 +193,33 @@
       Evaluator.InitialPredictionParameter.ActualName = "InitialPrediction";
 
+      coveringSolutionCreator.ChangeSymbolProbabilityParameter.ActualName = ChangeSymbolProbabilityInCoveringParameter.Name;
+      coveringSolutionCreator.CoverClassifierParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
+      coveringSolutionCreator.CreatedClassifierParameter.ActualName = "CombinedIntegerVector";
+
+      ClassifierFetcher.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
+
+      ActionExecuter.CurrentClassifierToMatchParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
+      ActionExecuter.NegativeRewardParameter.ActualName = NegativeRewardParameter.Name;
+      ActionExecuter.PositiveRewardParameter.ActualName = PositiveRewardParameter.Name;
+
+      ActionSetSubsumptionOperator.ClassifiersParameter.ActualName = "CombinedIntegerVector";
+
+      SetProblemDataSpecificParameters();
+      ThetaMinimalNumberOfActions.Value = PossibleActions.Count;
+
+      InitializeOperators();
+
+      problemData.Changed += new System.EventHandler(problemData_Changed);
+    }
+
+    private void problemData_Changed(object sender, System.EventArgs e) {
+      SetProblemDataSpecificParameters();
+    }
+
+    private void SetProblemDataSpecificParameters() {
       SolutionCreator.ActionPartLengthParameter.ActualName = ProblemData.ActionLengthParameter.Name;
       SolutionCreator.LengthParameter.ActualName = ProblemData.LengthParameter.Name;
       SolutionCreator.BoundsParameter.ActualName = ProblemData.BoundsParameter.Name;
 
-      coveringSolutionCreator.ChangeSymbolProbabilityParameter.ActualName = ChangeSymbolProbabilityInCoveringParameter.Name;
-      coveringSolutionCreator.CoverClassifierParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
-      coveringSolutionCreator.CreatedClassifierParameter.ActualName = "CombinedIntegerVector";
-
-      ClassifierFetcher.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
-
-      ActionExecuter.CurrentClassifierToMatchParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
-      ActionExecuter.NegativeRewardParameter.ActualName = NegativeRewardParameter.Name;
-      ActionExecuter.PositiveRewardParameter.ActualName = PositiveRewardParameter.Name;
-
-      ActionSetSubsumptionOperator.ClassifiersParameter.ActualName = "CombinedIntegerVector";
-
-      SetPossibleActions();
-      ThetaMinimalNumberOfActions.Value = PossibleActions.Count;
-
-      InitializeOperators();
-
-      problemData.Changed += new System.EventHandler(problemData_Changed);
-    }
-
-    private void problemData_Changed(object sender, System.EventArgs e) {
       SetPossibleActions();
     }
@@ -282,4 +294,10 @@
       return actionBounds;
     }
+
+    public void Load(ConditionActionClassificationProblemData data) {
+      Name = data.Name;
+      Description = data.Description;
+      ProblemData = data;
+    }
   }
 }
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblemData.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblemData.cs	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblemData.cs	(revision 9160)
@@ -40,5 +40,5 @@
       {0,0,1,1,0,0,0},
       {0,1,1,1,0,0,0},
-      {0,0,1,0,0,0,0},
+      {0,0,1,0,0,0,1},
       {1,0,1,0,1,1,0}
     };
@@ -117,10 +117,27 @@
       Parameters.Add(new FixedValueParameter<ReadOnlyCheckedItemList<StringValue>>("ActionVariables", "", actionVariables.AsReadOnly()));
       Parameters.Add(new FixedValueParameter<ReadOnlyCheckedItemList<StringValue>>("ConditionVariables", "", conditionVariables.AsReadOnly()));
-      Parameters.Add(new FixedValueParameter<IntValue>("Length", "", new IntValue(7)));
-      Parameters.Add(new FixedValueParameter<IntValue>("ActionLength", "", new IntValue(1)));
-      int[,] elements = new int[,] { { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 2 } };
-      Parameters.Add(new FixedValueParameter<IntMatrix>("Bounds", "", new IntMatrix(elements)));
+      Parameters.Add(new FixedValueParameter<IntValue>("Length", "", new IntValue(allowedConditionVariables.Count() + allowedActionVariables.Count())));
+      Parameters.Add(new FixedValueParameter<IntValue>("ActionLength", "", new IntValue(allowedActionVariables.Count())));
+      Parameters.Add(new FixedValueParameter<IntMatrix>("Bounds", "", GetBoundsMatrix(dataset, allowedConditionVariables, allowedActionVariables)));
 
       ((ValueParameter<Dataset>)DatasetParameter).ReactOnValueToStringChangedAndValueItemImageChanged = false;
+    }
+
+    private IntMatrix GetBoundsMatrix(Dataset dataset, IEnumerable<string> conditionVariables, IEnumerable<string> actionVariables) {
+      IntMatrix bounds = new IntMatrix(conditionVariables.Count() + actionVariables.Count(), 2);
+      int index = 0;
+      foreach (var variable in conditionVariables) {
+        var values = dataset.GetDoubleValues(variable);
+        bounds[index, 0] = (int)values.Min();
+        bounds[index, 1] = (int)values.Max() + 2;
+        index++;
+      }
+      foreach (var variable in actionVariables) {
+        var values = dataset.GetDoubleValues(variable);
+        bounds[index, 0] = (int)values.Min();
+        bounds[index, 1] = (int)values.Max() + 1;
+        index++;
+      }
+      return bounds;
     }
 
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionCVSInstanceProvider.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionCVSInstanceProvider.cs	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionCVSInstanceProvider.cs	(revision 9160)
@@ -0,0 +1,60 @@
+﻿#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;
+using HeuristicLab.Problems.ConditionActionClassification;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+
+namespace HeuristicLab.Problems.Instances.ConditionActionClassification {
+  public class ConditionActionCVSInstanceProvider : ConditionActionInstanceProvider<ConditionActionClassificationProblemData> {
+    public override string Description { get { return ""; } }
+
+    public override string Name {
+      get { return "CSV File"; }
+    }
+
+    public override string ReferencePublication {
+      get { return ""; }
+    }
+
+    public override Uri WebLink {
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/UsersFAQ#DataAnalysisImportFileFormat"); }
+    }
+
+    public override bool CanImportData {
+      get { return true; }
+    }
+
+    public override ConditionActionClassificationProblemData ImportData(string path) {
+      TableFileParser csvParser = new TableFileParser();
+      csvParser.Parse(path);
+      Dataset dataset = new Dataset(csvParser.VariableNames, csvParser.Values);
+
+      ConditionActionClassificationProblemData problemData = new ConditionActionClassificationProblemData(dataset,
+        csvParser.VariableNames.Take(csvParser.VariableNames.Count() - 1), new List<string>() { csvParser.VariableNames.Last() });
+
+      return problemData;
+    }
+  }
+}
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionInstanceProvider.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionInstanceProvider.cs	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/ConditionActionInstanceProvider.cs	(revision 9160)
@@ -0,0 +1,37 @@
+﻿#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 HeuristicLab.Encodings.ConditionActionEncoding;
+
+namespace HeuristicLab.Problems.Instances.ConditionActionClassification {
+  public abstract class ConditionActionInstanceProvider<T> : ProblemInstanceProvider<T>
+  where T : IConditionActionProblemData {
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      return new List<IDataDescriptor>();
+    }
+    public override T LoadData(IDataDescriptor descriptor) {
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/HeuristicLab.Problems.Instances.ConditionActionClassification.csproj
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/HeuristicLab.Problems.Instances.ConditionActionClassification.csproj	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/HeuristicLab.Problems.Instances.ConditionActionClassification.csproj	(revision 9160)
@@ -0,0 +1,94 @@
+﻿<?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>{1CC7585E-DD22-41FA-869B-93DE41EA8936}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.Instances.ConditionActionClassification</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.Instances.ConditionActionClassification-3.3</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>..\..\..\..\trunk\sources\bin\</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.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Problems.Instances-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances.DataAnalysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, 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>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+    <Compile Include="ConditionActionCVSInstanceProvider.cs" />
+    <Compile Include="ConditionActionInstanceProvider.cs" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.ConditionActionEncoding\3.3\HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj">
+      <Project>{422FB262-0845-4969-8D16-12F057AA90B1}</Project>
+      <Name>HeuristicLab.Encodings.ConditionActionEncoding-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.ConditionActionClassification\3.3\HeuristicLab.Problems.ConditionActionClassification-3.3.csproj">
+      <Project>{EA51D441-F6A3-41E1-9993-A2488E93C222}</Project>
+      <Name>HeuristicLab.Problems.ConditionActionClassification-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/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Plugin.cs.frame
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Plugin.cs.frame	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Plugin.cs.frame	(revision 9160)
@@ -0,0 +1,30 @@
+﻿#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.ConditionActionClassification {
+  [Plugin("HeuristicLab.Problems.Instances.ConditionActionClassification", "3.3.7.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.Instances.ConditionActionClassification-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsInstancesConditionActionClassificationPlugin : PluginBase {
+  }
+}
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Properties/AssemblyInfo.cs.frame	(revision 9160)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.Instances.ConditionActionClassification/3.3/Properties/AssemblyInfo.cs.frame	(revision 9160)
@@ -0,0 +1,56 @@
+﻿#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.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.ConditionActionClassification-3.3")]
+[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("dba8bda1-636b-4053-aafc-9294e05d05fb")]
+
+// 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.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.7.$WCREV$")]
Index: /branches/LearningClassifierSystems/HeuristicLab.Problems.XCS.Views/3.3/XCSModelView.cs
===================================================================
--- /branches/LearningClassifierSystems/HeuristicLab.Problems.XCS.Views/3.3/XCSModelView.cs	(revision 9159)
+++ /branches/LearningClassifierSystems/HeuristicLab.Problems.XCS.Views/3.3/XCSModelView.cs	(revision 9160)
@@ -52,23 +52,24 @@
         if (Content == null) {
           dataGridView.Rows.Clear();
+        } else {
+
+          dataGridView.RowCount = Content.Count;
+
+          int row = 0;
+          foreach (var xcsClassifier in Content) {
+            dataGridView[0, row].Value = xcsClassifier.Classifier.ToString();
+            dataGridView[1, row].Value = xcsClassifier.Prediction.ToString();
+            dataGridView[2, row].Value = xcsClassifier.PredictionError.ToString();
+            dataGridView[3, row].Value = xcsClassifier.Fitness.ToString();
+            dataGridView[4, row].Value = xcsClassifier.Numerosity.ToString();
+            dataGridView[5, row].Value = xcsClassifier.Timestamp.ToString();
+            dataGridView[6, row].Value = xcsClassifier.Experience.ToString();
+            dataGridView[7, row].Value = xcsClassifier.AverageActionSetSize.ToString();
+            row++;
+          }
+
+          dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.ColumnHeader);
+          dataGridView.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
         }
-
-        dataGridView.RowCount = Content.Count;
-
-        int row = 0;
-        foreach (var xcsClassifier in Content) {
-          dataGridView[0, row].Value = xcsClassifier.Classifier.ToString();
-          dataGridView[1, row].Value = xcsClassifier.Prediction.ToString();
-          dataGridView[2, row].Value = xcsClassifier.PredictionError.ToString();
-          dataGridView[3, row].Value = xcsClassifier.Fitness.ToString();
-          dataGridView[4, row].Value = xcsClassifier.Numerosity.ToString();
-          dataGridView[5, row].Value = xcsClassifier.Timestamp.ToString();
-          dataGridView[6, row].Value = xcsClassifier.Experience.ToString();
-          dataGridView[7, row].Value = xcsClassifier.AverageActionSetSize.ToString();
-          row++;
-        }
-
-        dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.ColumnHeader);
-        dataGridView.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
       }
     }
Index: /branches/LearningClassifierSystems/LearningClassifierSystem.sln
===================================================================
--- /branches/LearningClassifierSystems/LearningClassifierSystem.sln	(revision 9159)
+++ /branches/LearningClassifierSystems/LearningClassifierSystem.sln	(revision 9160)
@@ -17,4 +17,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.XCS.Views-3.3", "HeuristicLab.Problems.XCS.Views\3.3\HeuristicLab.Problems.XCS.Views-3.3.csproj", "{8FFB8E0F-BC17-4D72-AF0F-E67A22F8EDE5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.ConditionActionClassification", "HeuristicLab.Problems.Instances.ConditionActionClassification\3.3\HeuristicLab.Problems.Instances.ConditionActionClassification.csproj", "{1CC7585E-DD22-41FA-869B-93DE41EA8936}"
 EndProject
 Global
@@ -72,4 +74,12 @@
 		{8FFB8E0F-BC17-4D72-AF0F-E67A22F8EDE5}.Release|x64.ActiveCfg = Release|Any CPU
 		{8FFB8E0F-BC17-4D72-AF0F-E67A22F8EDE5}.Release|x86.ActiveCfg = Release|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|x64.ActiveCfg = Release|Any CPU
+		{1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
