Changeset 9411


Ignore:
Timestamp:
04/30/13 16:54:43 (5 years ago)
Author:
sforsten
Message:

#1980:

  • added multiple discretizer to GAssist
  • created ensembles for LCS problems and edited CrossValidation to use them
Location:
branches/LearningClassifierSystems
Files:
18 added
4 deleted
41 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs

    r8970 r9411  
    2929using HeuristicLab.Core;
    3030using HeuristicLab.Data;
     31using HeuristicLab.Encodings.ConditionActionEncoding;
    3132using HeuristicLab.Optimization;
     33using HeuristicLab.Optimization.Operators.LCS;
    3234using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3335using HeuristicLab.Problems.DataAnalysis;
     
    405407        results.Add(result.Name, result.Value);
    406408      }
     409      foreach (IResult result in ExtractAndAggregateGAssistSolutions(resultCollections)) {
     410        results.Add(result.Name, result.Value);
     411      }
     412      foreach (IResult result in ExtractAndAggregateConditionActionSolutions(resultCollections)) {
     413        results.Add(result.Name, result.Value);
     414      }
    407415      results.Add("Execution Time", new TimeSpanValue(this.ExecutionTime));
    408416      results.Add("CrossValidation Folds", new RunCollection(runs));
     417    }
     418
     419    private IEnumerable<IResult> ExtractAndAggregateConditionActionSolutions(IEnumerable<KeyValuePair<string, IItem>> resultCollections) {
     420      Dictionary<string, List<IConditionActionSolution>> resultSolutions = new Dictionary<string, List<IConditionActionSolution>>();
     421      foreach (var result in resultCollections) {
     422        var conditionActionSolution = result.Value as IConditionActionSolution;
     423        if (conditionActionSolution != null) {
     424          if (resultSolutions.ContainsKey(result.Key)) {
     425            resultSolutions[result.Key].Add(conditionActionSolution);
     426          } else {
     427            resultSolutions.Add(result.Key, new List<IConditionActionSolution>() { conditionActionSolution });
     428          }
     429        }
     430      }
     431      List<IResult> aggregatedResults = new List<IResult>();
     432      foreach (KeyValuePair<string, List<IConditionActionSolution>> solutions in resultSolutions) {
     433        // clone manually to correctly clone references between cloned root objects
     434        Cloner cloner = new Cloner();
     435        var problemDataClone = (IConditionActionProblemData)cloner.Clone(Problem.ProblemData);
     436        // set partitions of problem data clone correctly
     437        problemDataClone.TrainingPartition.Start = SamplesStart.Value; problemDataClone.TrainingPartition.End = SamplesEnd.Value;
     438        problemDataClone.TestPartition.Start = SamplesStart.Value; problemDataClone.TestPartition.End = SamplesEnd.Value;
     439        // clone models
     440        var ensembleSolution = new ConditionActionEnsembleSolution(problemDataClone);
     441        ensembleSolution.AddConditionActionSolutions(solutions.Value);
     442
     443        aggregatedResults.Add(new Result(solutions.Key + " (ensemble)", ensembleSolution));
     444      }
     445      List<IResult> flattenedResults = new List<IResult>();
     446      CollectResultsRecursively("", aggregatedResults, flattenedResults);
     447      return flattenedResults;
     448    }
     449
     450    private IEnumerable<IResult> ExtractAndAggregateGAssistSolutions(IEnumerable<KeyValuePair<string, IItem>> resultCollections) {
     451      Dictionary<string, List<IGAssistSolution>> resultSolutions = new Dictionary<string, List<IGAssistSolution>>();
     452      foreach (var result in resultCollections) {
     453        var gassistSolution = result.Value as IGAssistSolution;
     454        if (gassistSolution != null) {
     455          if (resultSolutions.ContainsKey(result.Key)) {
     456            resultSolutions[result.Key].Add(gassistSolution);
     457          } else {
     458            resultSolutions.Add(result.Key, new List<IGAssistSolution>() { gassistSolution });
     459          }
     460        }
     461      }
     462      List<IResult> aggregatedResults = new List<IResult>();
     463      foreach (KeyValuePair<string, List<IGAssistSolution>> solutions in resultSolutions) {
     464        // clone manually to correctly clone references between cloned root objects
     465        Cloner cloner = new Cloner();
     466        var problemDataClone = (IGAssistProblemData)cloner.Clone(Problem.ProblemData);
     467        // set partitions of problem data clone correctly
     468        problemDataClone.TrainingPartition.Start = SamplesStart.Value; problemDataClone.TrainingPartition.End = SamplesEnd.Value;
     469        problemDataClone.TestPartition.Start = SamplesStart.Value; problemDataClone.TestPartition.End = SamplesEnd.Value;
     470        // clone models
     471        var ensembleSolution = new GAssistEnsembleSolution(problemDataClone);
     472        ensembleSolution.AddGAssistSolutions(solutions.Value);
     473
     474        aggregatedResults.Add(new Result(solutions.Key + " (ensemble)", ensembleSolution));
     475      }
     476      List<IResult> flattenedResults = new List<IResult>();
     477      CollectResultsRecursively("", aggregatedResults, flattenedResults);
     478      return flattenedResults;
    409479    }
    410480
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj

    r9359 r9411  
    4343    <DebugType>full</DebugType>
    4444    <Optimize>false</Optimize>
    45     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     45    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4646    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4747    <ErrorReport>prompt</ErrorReport>
     
    5252    <DebugType>pdbonly</DebugType>
    5353    <Optimize>true</Optimize>
    54     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     54    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5555    <DefineConstants>TRACE</DefineConstants>
    5656    <ErrorReport>prompt</ErrorReport>
     
    6262  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    6363    <DebugSymbols>true</DebugSymbols>
    64     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     64    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6565    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6666    <DebugType>full</DebugType>
     
    7070  </PropertyGroup>
    7171  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    72     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     72    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7373    <DefineConstants>TRACE</DefineConstants>
    7474    <DocumentationFile>
     
    8282  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    8383    <DebugSymbols>true</DebugSymbols>
    84     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     84    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8585    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8686    <DebugType>full</DebugType>
     
    9090  </PropertyGroup>
    9191  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    92     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     92    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    9393    <DefineConstants>TRACE</DefineConstants>
    9494    <DocumentationFile>
     
    102102  <ItemGroup>
    103103    <Reference Include="ALGLIB-3.7.0, Version=3.7.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    104       <HintPath>..\..\bin\ALGLIB-3.7.0.dll</HintPath>
     104      <HintPath>..\..\..\..\trunk\sources\bin\ALGLIB-3.7.0.dll</HintPath>
    105105      <Private>False</Private>
    106106    </Reference>
    107107    <Reference Include="AutoDiff-1.0, Version=1.0.0.14388, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    108108      <SpecificVersion>False</SpecificVersion>
    109       <HintPath>..\..\bin\AutoDiff-1.0.dll</HintPath>
     109      <HintPath>..\..\..\..\trunk\sources\bin\AutoDiff-1.0.dll</HintPath>
     110    </Reference>
     111    <Reference Include="HeuristicLab.Algorithms.GradientDescent-3.3">
     112      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.GradientDescent-3.3.dll</HintPath>
     113    </Reference>
     114    <Reference Include="HeuristicLab.Analysis-3.3">
     115      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
     116    </Reference>
     117    <Reference Include="HeuristicLab.Collections-3.3">
     118      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     119    </Reference>
     120    <Reference Include="HeuristicLab.Common-3.3">
     121      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     122    </Reference>
     123    <Reference Include="HeuristicLab.Common.Resources-3.3">
     124      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     125    </Reference>
     126    <Reference Include="HeuristicLab.Data-3.3">
     127      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     128    </Reference>
     129    <Reference Include="HeuristicLab.Encodings.RealVectorEncoding-3.3">
     130      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.RealVectorEncoding-3.3.dll</HintPath>
     131    </Reference>
     132    <Reference Include="HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4">
     133      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.dll</HintPath>
     134    </Reference>
     135    <Reference Include="HeuristicLab.Operators-3.3">
     136      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     137    </Reference>
     138    <Reference Include="HeuristicLab.Optimization-3.3">
     139      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     140    </Reference>
     141    <Reference Include="HeuristicLab.Parameters-3.3">
     142      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     143    </Reference>
     144    <Reference Include="HeuristicLab.Persistence-3.3">
     145      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     146    </Reference>
     147    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     148      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     149    </Reference>
     150    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4">
     151      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.dll</HintPath>
     152    </Reference>
     153    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4">
     154      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.dll</HintPath>
     155    </Reference>
     156    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4">
     157      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.dll</HintPath>
     158    </Reference>
     159    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4">
     160      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.dll</HintPath>
     161    </Reference>
     162    <Reference Include="HeuristicLab.Problems.Instances-3.3">
     163      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
     164    </Reference>
     165    <Reference Include="HeuristicLab.Random-3.3">
     166      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
    110167    </Reference>
    111168    <Reference Include="LibSVM-3.12, Version=3.12.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    112       <HintPath>..\..\bin\LibSVM-3.12.dll</HintPath>
     169      <HintPath>..\..\..\..\trunk\sources\bin\LibSVM-3.12.dll</HintPath>
    113170      <Private>False</Private>
    114171    </Reference>
     
    278335  </ItemGroup>
    279336  <ItemGroup>
    280     <ProjectReference Include="..\..\HeuristicLab.Algorithms.GradientDescent\3.3\HeuristicLab.Algorithms.GradientDescent-3.3.csproj">
    281       <Project>{1256B945-EEA9-4BE4-9880-76B5B113F089}</Project>
    282       <Name>HeuristicLab.Algorithms.GradientDescent</Name>
    283       <Private>False</Private>
    284     </ProjectReference>
    285     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    286       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    287       <Name>HeuristicLab.Analysis-3.3</Name>
    288       <Private>False</Private>
    289     </ProjectReference>
    290     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    291       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    292       <Name>HeuristicLab.Collections-3.3</Name>
    293       <Private>False</Private>
    294     </ProjectReference>
    295     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    296       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    297       <Name>HeuristicLab.Common.Resources-3.3</Name>
    298       <Private>False</Private>
    299     </ProjectReference>
    300     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    301       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    302       <Name>HeuristicLab.Common-3.3</Name>
    303       <Private>False</Private>
    304     </ProjectReference>
    305337    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    306338      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
     
    308340      <Private>False</Private>
    309341    </ProjectReference>
    310     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    311       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    312       <Name>HeuristicLab.Data-3.3</Name>
    313       <Private>False</Private>
     342    <ProjectReference Include="..\..\HeuristicLab.Encodings.ConditionActionEncoding\3.3\HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj">
     343      <Project>{422fb262-0845-4969-8d16-12f057aa90b1}</Project>
     344      <Name>HeuristicLab.Encodings.ConditionActionEncoding-3.3</Name>
    314345    </ProjectReference>
    315     <ProjectReference Include="..\..\HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj">
    316       <Project>{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}</Project>
    317       <Name>HeuristicLab.Encodings.RealVectorEncoding-3.3</Name>
    318       <Private>False</Private>
    319     </ProjectReference>
    320     <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
    321       <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
    322       <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
    323       <Private>False</Private>
    324     </ProjectReference>
    325     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    326       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    327       <Name>HeuristicLab.Operators-3.3</Name>
    328       <Private>False</Private>
    329     </ProjectReference>
    330     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    331       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    332       <Name>HeuristicLab.Optimization-3.3</Name>
    333       <Private>False</Private>
    334     </ProjectReference>
    335     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    336       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    337       <Name>HeuristicLab.Parameters-3.3</Name>
    338       <Private>False</Private>
    339     </ProjectReference>
    340     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    341       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    342       <Name>HeuristicLab.Persistence-3.3</Name>
    343       <Private>False</Private>
    344     </ProjectReference>
    345     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    346       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    347       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    348       <Private>False</Private>
    349     </ProjectReference>
    350     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj">
    351       <Project>{05BAE4E1-A9FA-4644-AA77-42558720159E}</Project>
    352       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4</Name>
    353       <Private>False</Private>
    354     </ProjectReference>
    355     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj">
    356       <Project>{5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}</Project>
    357       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4</Name>
    358       <Private>False</Private>
    359     </ProjectReference>
    360     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj">
    361       <Project>{07486E68-1517-4B9D-A58D-A38E99AE71AB}</Project>
    362       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4</Name>
    363     </ProjectReference>
    364     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj">
    365       <Project>{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}</Project>
    366       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name>
    367       <Private>False</Private>
     346    <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators.LCS\3.3\HeuristicLab.Optimization.Operators.LCS-3.3.csproj">
     347      <Project>{f2c6d3b0-bd4f-4747-b13e-b18e53a2a09d}</Project>
     348      <Name>HeuristicLab.Optimization.Operators.LCS-3.3</Name>
    368349    </ProjectReference>
    369350    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
    370351      <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
    371352      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
    372       <Private>False</Private>
    373     </ProjectReference>
    374     <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
    375       <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
    376       <Name>HeuristicLab.Problems.Instances-3.3</Name>
    377       <Private>False</Private>
    378     </ProjectReference>
    379     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
    380       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
    381       <Name>HeuristicLab.Random-3.3</Name>
    382353      <Private>False</Private>
    383354    </ProjectReference>
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.GAssist/3.3/GAssist.cs

    r9392 r9411  
    338338    private void UpdateDiscretizers() {
    339339      // change to add more
    340       DiscretizersParameter.Value.AddRange(ApplicationManager.Manager.GetInstances<IDiscretizer>());
     340      //DiscretizersParameter.Value.AddRange(ApplicationManager.Manager.GetInstances<IDiscretizer>());
     341      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(4));
     342      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(5));
     343      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(6));
     344      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(7));
     345      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(8));
     346      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(10));
     347      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(15));
     348      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(20));
     349      DiscretizersParameter.Value.Add(new UniformWidthDiscretizer(25));
    341350    }
    342351
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.GAssist/3.3/HeuristicLab.Algorithms.GAssist-3.3.csproj

    r9342 r9411  
    115115      <Name>HeuristicLab.Optimization.Operators.LCS-3.3</Name>
    116116    </ProjectReference>
     117    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
     118      <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
     119      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     120    </ProjectReference>
    117121  </ItemGroup>
    118122  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/HeuristicLab.Algorithms.LearningClassifierSystems-3.3.csproj

    r9342 r9411  
    133133      <Private>False</Private>
    134134    </ProjectReference>
     135    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
     136      <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
     137      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     138    </ProjectReference>
    135139  </ItemGroup>
    136140  <ItemGroup />
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/HeuristicLab.Encodings.CombinedIntegerVectorEncoding-3.3.csproj

    r9242 r9411  
    158158      <Private>False</Private>
    159159    </ProjectReference>
     160    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
     161      <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
     162      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     163    </ProjectReference>
    160164  </ItemGroup>
    161165  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj

    r9342 r9411  
    4646    <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    4747      <Private>False</Private>
     48    </Reference>
     49    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     50      <SpecificVersion>False</SpecificVersion>
     51      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
    4852    </Reference>
    4953    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     
    98102    <Compile Include="Deletion\CalculateNumberOfDeletionsOperator.cs" />
    99103    <Compile Include="Deletion\XCSDeletionOperator.cs" />
     104    <Compile Include="Ensemble\ConditionActionEnsembleModel.cs" />
     105    <Compile Include="Ensemble\ConditionActionEnsembleProblemData.cs" />
     106    <Compile Include="Ensemble\ConditionActionEnsembleSolution.cs" />
    100107    <Compile Include="Evaluators\XCSEvaluator.cs" />
    101108    <Compile Include="Evaluators\IConditionActionEvaluator.cs" />
     
    105112    <Compile Include="GA\XCSAfterCrossoverOperator.cs" />
    106113    <Compile Include="IClassifier.cs" />
     114    <Compile Include="Interfaces\IConditionActionEnsembleModel.cs" />
     115    <Compile Include="Interfaces\IConditionActionEnsembleProblemData.cs" />
     116    <Compile Include="Interfaces\IConditionActionEnsembleSolution.cs" />
    107117    <Compile Include="Interfaces\IConditionActionModel.cs" />
    108118    <Compile Include="Interfaces\IConditionActionProblem.cs" />
     
    151161    </ProjectReference>
    152162  </ItemGroup>
     163  <ItemGroup />
    153164  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    154165  <PropertyGroup>
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionProblem.cs

    r9226 r9411  
    2222using HeuristicLab.Core;
    2323using HeuristicLab.Optimization;
     24using HeuristicLab.Problems.DataAnalysis;
    2425
    2526namespace HeuristicLab.Encodings.ConditionActionEncoding {
    26   public interface IConditionActionProblem : IHeuristicOptimizationProblem {
     27  public interface IConditionActionProblem : IHeuristicOptimizationProblem, IDataAnalysisProblem {
    2728    string ChildName { get; }
    2829
    29     IParameter ProblemDataParameter { get; }
    30     IConditionActionProblemData ProblemData { get; }
     30    new IConditionActionProblemData ProblemData { get; }
    3131    IParameter ActionExecuterParameter { get; }
    3232    IActionExecuter ActionExecuter { get; }
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionProblemData.cs

    r9194 r9411  
    2020#endregion
    2121
    22 using System;
    2322using System.Collections.Generic;
    2423using HeuristicLab.Core;
     
    2726
    2827namespace HeuristicLab.Encodings.ConditionActionEncoding {
    29   public interface IConditionActionProblemData : INamedItem {
    30     Dataset Dataset { get; }
     28  public interface IConditionActionProblemData : IDataAnalysisProblemData {
    3129    ICheckedItemList<StringValue> ConditionVariables { get; }
    3230    ICheckedItemList<StringValue> ActionVariables { get; }
    3331    IEnumerable<string> AllowedConditionVariables { get; }
    3432    IEnumerable<string> AllowedActionVariables { get; }
    35 
    36     IntRange TrainingPartition { get; }
    37     IntRange TestPartition { get; }
    38 
    39     IEnumerable<int> TrainingIndices { get; }
    40     IEnumerable<int> TestIndices { get; }
    41 
    42     bool IsTrainingSample(int index);
    43     bool IsTestSample(int index);
    4433
    4534    IEnumerable<IInput> FetchInput(IEnumerable<int> rows);
     
    4938    IAction FetchAction(int rowNumber);
    5039
    51     event EventHandler Changed;
     40    IClassifierComparer ClassifierComparer { get; }
    5241  }
    5342}
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/Interfaces/IConditionActionSolution.cs

    r9175 r9411  
    2525
    2626namespace HeuristicLab.Encodings.ConditionActionEncoding {
    27   public interface IConditionActionSolution : INamedItem, IStorableContent {
     27  public interface IConditionActionSolution : IItem, IStorableContent {
    2828    IConditionActionModel Model { get; }
    2929    IConditionActionProblemData ProblemData { get; set; }
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/XCSModel.cs

    r9194 r9411  
    3434    public int ClassifierCount { get { return Count; } }
    3535
    36     public IClassifierComparer ClassifierComparer { get; set; }
     36    [Storable]
     37    private IClassifierComparer comparer;
     38    public IClassifierComparer ClassifierComparer {
     39      get { return comparer; }
     40      set { comparer = value; }
     41    }
    3742
    3843    [StorableConstructor]
     
    4247      name = (string)original.name.Clone();
    4348      description = (string)original.description.Clone();
     49      if (original.comparer != null) {
     50        comparer = (IClassifierComparer)original.comparer.Clone();
     51      }
    4452    }
    4553    public override IDeepCloneable Clone(Cloner cloner) {
     
    6775      }
    6876
    69       if (matchedClassifiers.Count == 0) { return null; }
     77      if (matchedClassifiers.Count == 0) {
     78        return null;
     79      }
    7080
    7181      IDictionary<IAction, double> predictionArray = CreatePredictionArray(matchedClassifiers);
     
    7484
    7585    private IDictionary<IAction, double> CreatePredictionArray(ItemCollection<XCSClassifier> matchedClassifiers) {
     86      if (ClassifierComparer == null) {
     87        throw new ArgumentException("No classifier comparer specified!");
     88      }
    7689      var predictionArray = new Dictionary<IAction, double>(ClassifierComparer);
    7790      var fitnessSumPerAction = new Dictionary<IAction, double>(ClassifierComparer);
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/IntAction.cs

    r9352 r9411  
    3434
    3535    public static IEqualityComparer<IGAssistNiche> Comparer {
    36       get { return new DecisionListNicheComparer(); }
     36      get { return new GAssistNicheComparer(); }
    3737    }
    3838    IEqualityComparer<IGAssistNiche> IGAssistNiche.Comparer {
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/StringAction.cs

    r9352 r9411  
    3434
    3535    public static IEqualityComparer<IGAssistNiche> Comparer {
    36       get { return new DecisionListNicheComparer(); }
     36      get { return new GAssistNicheComparer(); }
    3737    }
    3838
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionList.cs

    r9392 r9411  
    157157    }
    158158
    159     public IGAssistSolution CreateGAssistSolution(IGAssistNichesProblemData problemData) {
     159    public IGAssistSolution CreateGAssistSolution(IGAssistProblemData problemData) {
    160160      return new DecisionListSolution(this, problemData);
     161    }
     162    #endregion
     163
     164    #region IGAssistModel Members
     165    IEnumerable<IGAssistNiche> IGAssistModel.Evaluate(IEnumerable<IGAssistInput> input) {
     166      return Evaluate(input);
     167    }
     168    public IEnumerable<IGAssistNiche> Evaluate(IEnumerable<IGAssistInput> input, out ItemSet<IItem> aliveRules, out double theoryLength) {
     169      return Evaluate(input, out aliveRules, out theoryLength);
    161170    }
    162171    #endregion
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionListSolution.cs

    r9392 r9411  
    7373    }
    7474
    75     DecisionList IDecisionListSolution.Model {
     75    IGAssistModel IGAssistSolution.Model {
    7676      get { return Model; }
    7777    }
     
    8989    }
    9090
    91     public IGAssistNichesProblemData ProblemData {
    92       get { return (IGAssistNichesProblemData)this[ProblemDataResultName].Value; }
     91    public IGAssistProblemData ProblemData {
     92      get { return (IGAssistProblemData)this[ProblemDataResultName].Value; }
    9393      set {
    9494        if (this[ProblemDataResultName].Value != value) {
     
    110110      description = original.Description;
    111111    }
    112     public DecisionListSolution(DecisionList model, IGAssistNichesProblemData problemData)
     112    public DecisionListSolution(DecisionList model, IGAssistProblemData problemData)
    113113      : base() {
    114114      name = ItemName;
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/HeuristicLab.Encodings.DecisionList-3.3.csproj

    r9392 r9411  
    9898    <Compile Include="DecisionListCrossover.cs" />
    9999    <Compile Include="DecisionListManipulator.cs" />
    100     <Compile Include="DecisionListNicheComparer.cs" />
    101100    <Compile Include="DecisionListSolution.cs" />
    102101    <Compile Include="Evaluator\MDLEvaluator.cs" />
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListClassificationProblemData.cs

    r9392 r9411  
    2424
    2525namespace HeuristicLab.Encodings.DecisionList {
    26   public interface IDecisionListClassificationProblemData : IGAssistNichesProblemData {
     26  public interface IDecisionListClassificationProblemData : IGAssistProblemData {
    2727    IValueParameter<Rule> SampleRuleParameter { get; }
    2828  }
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListSolution.cs

    r9392 r9411  
    2525namespace HeuristicLab.Encodings.DecisionList {
    2626  public interface IDecisionListSolution : IGAssistSolution {
    27     DecisionList Model { get; }
    28     //IDecisionListClassificationProblemData ProblemData { get; set; }
     27    new DecisionList Model { get; }
    2928
    3029    event EventHandler ModelChanged;
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Properties

    • Property svn:ignore set to
      AssemblyInfo.cs
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.VariableVector/3.3/HeuristicLab.Encodings.VariableVector-3.3.csproj

    r9242 r9411  
    129129      <Private>False</Private>
    130130    </ProjectReference>
     131    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
     132      <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
     133      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     134    </ProjectReference>
    131135  </ItemGroup>
    132136  <ItemGroup />
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.VariableVector/3.3/VariableVectorAction.cs

    r9242 r9411  
    8383      var targetCast = target as VariableVectorAction;
    8484      if (targetCast == null) { return false; }
    85       if (!this.Order.SequenceEqual(targetCast.Order)) { return false; }
    86       foreach (var keyValuePair in targetCast.VariableDictionary) {
    87         if (!VariableDictionary[keyValuePair.Key].MatchVariable(keyValuePair.Value)) {
     85      foreach (var key in targetCast.VariableDictionary.Keys) {
     86        if (!VariableDictionary.ContainsKey(key) || !VariableDictionary[key].MatchVariable(targetCast.VariableDictionary[key])) {
    8887          return false;
    8988        }
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.VariableVector/3.3/VariableVectorActionComparer.cs

    r9392 r9411  
    4242
    4343    public bool Equals(VariableVectorAction x, VariableVectorAction y) {
    44       //if (!x.Order.SequenceEqual(y.Order)) return false;
    4544      var xEnumerator = x.VariableDictionary.Keys.GetEnumerator();
    4645      var yEnumerator = y.VariableDictionary.Keys.GetEnumerator();
    47       while (xEnumerator.MoveNext() && yEnumerator.MoveNext())
    48         foreach (var key in x.VariableDictionary.Keys) {
    49           if (xEnumerator.Current != yEnumerator.Current ||
    50             !x.VariableDictionary[xEnumerator.Current].Identical(y.VariableDictionary[yEnumerator.Current])) {
    51             return false;
    52           }
     46      while (xEnumerator.MoveNext() && yEnumerator.MoveNext()) {
     47        if (xEnumerator.Current != yEnumerator.Current ||
     48          !x.VariableDictionary[xEnumerator.Current].Identical(y.VariableDictionary[yEnumerator.Current])) {
     49          return false;
    5350        }
     51      }
    5452      return !xEnumerator.MoveNext() && !yEnumerator.MoveNext();
    5553    }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/DefaultRule/DefaultRuleOperator.cs

    r9352 r9411  
    4242      get { return (IValueLookupParameter<IGAssistNiche>)Parameters["DefaultClass"]; }
    4343    }
    44     public ILookupParameter<IGAssistNichesProblemData> GAssistNichesProblemDataParameter {
    45       get { return (ILookupParameter<IGAssistNichesProblemData>)Parameters["GAssistNichesProblemData"]; }
     44    public ILookupParameter<IGAssistProblemData> GAssistNichesProblemDataParameter {
     45      get { return (ILookupParameter<IGAssistProblemData>)Parameters["GAssistNichesProblemData"]; }
    4646    }
    4747    public ILookupParameter<ItemArray<IGAssistIndividual>> IndividualParameter {
     
    6363      Parameters.Add(new ValueLookupParameter<IntValue>("Niches"));
    6464      Parameters.Add(new ValueLookupParameter<IGAssistNiche>("DefaultClass"));
    65       Parameters.Add(new LookupParameter<IGAssistNichesProblemData>("GAssistNichesProblemData"));
     65      Parameters.Add(new LookupParameter<IGAssistProblemData>("GAssistNichesProblemData"));
    6666      Parameters.Add(new ScopeTreeLookupParameter<IGAssistIndividual>("Individual"));
    6767      Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator"));
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/DefaultRule/IDefaultRuleOperator.cs

    r9352 r9411  
    2828    IValueLookupParameter<IntValue> NichesParameter { get; }
    2929    IValueLookupParameter<IGAssistNiche> DefaultClassParameter { get; }
    30     ILookupParameter<IGAssistNichesProblemData> GAssistNichesProblemDataParameter { get; }
     30    ILookupParameter<IGAssistProblemData> GAssistNichesProblemDataParameter { get; }
    3131    ILookupParameter<ItemArray<IGAssistIndividual>> IndividualParameter { get; }
    3232    IValueLookupParameter<IOperator> EvaluatorParameter { get; }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/Discretizer/InitializeDiscretizersOperator.cs

    r9392 r9411  
    3333
    3434    #region Parameter Properties
    35     public ILookupParameter<IGAssistNichesProblemData> ProblemDataParameter {
    36       get { return (ILookupParameter<IGAssistNichesProblemData>)Parameters["ProblemData"]; }
     35    public ILookupParameter<IGAssistProblemData> ProblemDataParameter {
     36      get { return (ILookupParameter<IGAssistProblemData>)Parameters["ProblemData"]; }
    3737    }
    3838    public ILookupParameter<ItemCollection<IDiscretizer>> DiscretizersParameter {
     
    4848    public InitializeDiscretizersOperator()
    4949      : base() {
    50       Parameters.Add(new LookupParameter<IGAssistNichesProblemData>("ProblemData", ""));
     50      Parameters.Add(new LookupParameter<IGAssistProblemData>("ProblemData", ""));
    5151      Parameters.Add(new LookupParameter<ItemCollection<IDiscretizer>>("Discretizers", ""));
    5252    }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/GAssist/ILAS/ILASOperator.cs

    r9392 r9411  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
     24using System.Linq;
    2325using HeuristicLab.Common;
    2426using HeuristicLab.Core;
     
    3739      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
    3840    }
    39     public ILookupParameter<IGAssistNichesProblemData> ProblemDataParameter {
    40       get { return (ILookupParameter<IGAssistNichesProblemData>)Parameters["ProblemData"]; }
     41    public ILookupParameter<IGAssistProblemData> ProblemDataParameter {
     42      get { return (ILookupParameter<IGAssistProblemData>)Parameters["ProblemData"]; }
    4143    }
    4244    public IValueLookupParameter<IntValue> NumberOfStrataParameter {
     
    5658      : base() {
    5759      Parameters.Add(new LookupParameter<IRandom>("Random", "The random generator to use."));
    58       Parameters.Add(new LookupParameter<IGAssistNichesProblemData>("ProblemData", ""));
     60      Parameters.Add(new LookupParameter<IGAssistProblemData>("ProblemData", ""));
    5961      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfStrata", ""));
    6062      Parameters.Add(new ValueLookupParameter<ItemList<ItemList<IntValue>>>("Strata", ""));
     
    103105        }
    104106
     107        if (strata.Any(x => x.Count() == 0)) {
     108          throw new ArgumentException("At least one strata is empty. Use less strata or add more data.");
     109        }
     110
    105111        StrataParameter.ActualValue = strata;
    106112      }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/GAssist/Interfaces/IGAssistIndividual.cs

    r9392 r9411  
    2424
    2525namespace HeuristicLab.Optimization.Operators.LCS {
    26   public interface IGAssistIndividual : IItem {
     26  public interface IGAssistIndividual : IGAssistModel {
    2727    IGAssistNiche Niche { get; }
    2828    void SetNiche(IRandom random, IGAssistNiche niche);
     
    3030    void ApplyMerge(IRandom random, double probability);
    3131    void ApplyReinitialize(IRandom random, double probability, double oneProbability, IEnumerable<IDiscretizer> discretizers);
    32 
    33     IGAssistSolution CreateGAssistSolution(IGAssistNichesProblemData problemData);
    3432  }
    3533}
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/GAssist/Interfaces/IGAssistSolution.cs

    r9392 r9411  
    2424namespace HeuristicLab.Optimization.Operators.LCS {
    2525  public interface IGAssistSolution : IItem {
     26    IGAssistModel Model { get; }
     27    IGAssistProblemData ProblemData { get; set; }
     28
    2629    double TrainingAccuracy { get; }
    2730    double TestAccuracy { get; }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/GAssist/MDL/MDLIterationOperator.cs

    r9392 r9411  
    5656      get { return (ScopeTreeLookupParameter<IGAssistIndividual>)Parameters["Individual"]; }
    5757    }
    58     public LookupParameter<IGAssistNichesProblemData> ProblemDataParameter {
    59       get { return (LookupParameter<IGAssistNichesProblemData>)Parameters["ProblemData"]; }
     58    public LookupParameter<IGAssistProblemData> ProblemDataParameter {
     59      get { return (LookupParameter<IGAssistProblemData>)Parameters["ProblemData"]; }
    6060    }
    6161    public IScopeTreeLookupParameter<DoubleValue> QualityParameter {
     
    8282
    8383      Parameters.Add(new ScopeTreeLookupParameter<IGAssistIndividual>("Individual", ""));
    84       Parameters.Add(new LookupParameter<IGAssistNichesProblemData>("ProblemData", ""));
     84      Parameters.Add(new LookupParameter<IGAssistProblemData>("ProblemData", ""));
    8585      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the trees that should be analyzed."));
    8686      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "The direction of optimization."));
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/HeuristicLab.Optimization.Operators.LCS-3.3.csproj

    r9392 r9411  
    4646      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
    4747    </Reference>
     48    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     49      <SpecificVersion>False</SpecificVersion>
     50      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     51    </Reference>
    4852    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    4953      <SpecificVersion>False</SpecificVersion>
     
    9094    <Compile Include="DefaultRule\AutoDefaultRule.cs" />
    9195    <Compile Include="Discretizer\InitializeDiscretizersOperator.cs" />
    92     <Compile Include="GAssist\IGAssistNichesProblemData.cs" />
     96    <Compile Include="GAssist\GAssistNicheComparer.cs" />
     97    <Compile Include="GAssist\Ensemble\GAssistEnsembleModel.cs" />
     98    <Compile Include="GAssist\Ensemble\GAssistEnsembleProblemData.cs" />
     99    <Compile Include="GAssist\Ensemble\GAssistEnsembleSolution.cs" />
     100    <Compile Include="GAssist\Interfaces\IGAssistEnsembleProblemData.cs" />
     101    <Compile Include="GAssist\Interfaces\IGAssistProblemData.cs" />
    93102    <Compile Include="DefaultRule\MajorDefaultRule.cs" />
    94103    <Compile Include="DefaultRule\DefaultRuleOperator.cs" />
     
    98107    <Compile Include="Discretizer\UniformWidthDiscretizer.cs" />
    99108    <Compile Include="Discretizer\IDiscretizer.cs" />
    100     <Compile Include="GAssist\IGAssistProblem.cs" />
     109    <Compile Include="GAssist\Interfaces\IGAssistProblem.cs" />
    101110    <Compile Include="GAssist\ILAS\ILASOperator.cs" />
     111    <Compile Include="GAssist\Interfaces\IGAssistEnsembleModel.cs" />
     112    <Compile Include="GAssist\Interfaces\IGAssistEnsembleSolution.cs" />
    102113    <Compile Include="GAssist\Interfaces\IGAssistIndividual.cs" />
    103114    <Compile Include="GAssist\Interfaces\IGAssistIndividualCreator.cs" />
    104115    <Compile Include="GAssist\Interfaces\IGAssistInput.cs" />
     116    <Compile Include="GAssist\Interfaces\IGAssistModel.cs" />
    105117    <Compile Include="GAssist\Interfaces\IGAssistNiche.cs" />
    106118    <Compile Include="GAssist\Interfaces\IGAssistNicheEqualityComparer.cs" />
     
    137149    </ProjectReference>
    138150  </ItemGroup>
     151  <ItemGroup />
    139152  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    140153  <PropertyGroup>
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/Selection/INichingSingleObjectiveSelector.cs

    r9352 r9411  
    2525namespace HeuristicLab.Optimization.Operators.LCS {
    2626  public interface INichingSingleObjectiveSelector : ISingleObjectiveSelector {
    27     ILookupParameter<IGAssistNichesProblemData> GAssistNichesProblemDataParameter { get; }
     27    ILookupParameter<IGAssistProblemData> GAssistNichesProblemDataParameter { get; }
    2828    ILookupParameter<BoolValue> NichingParameter { get; }
    2929    IValueLookupParameter<IntValue> ParentsPerChildParameter { get; }
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/Selection/NichingTournamentSelector.cs

    r9392 r9411  
    3939      get { return (ValueLookupParameter<IntValue>)Parameters["GroupSize"]; }
    4040    }
    41     public ILookupParameter<IGAssistNichesProblemData> GAssistNichesProblemDataParameter {
    42       get { return (LookupParameter<IGAssistNichesProblemData>)Parameters["GAssistNichesProblemData"]; }
     41    public ILookupParameter<IGAssistProblemData> GAssistNichesProblemDataParameter {
     42      get { return (LookupParameter<IGAssistProblemData>)Parameters["GAssistNichesProblemData"]; }
    4343    }
    4444    public ILookupParameter<BoolValue> NichingParameter {
     
    6161      : base() {
    6262      Parameters.Add(new ValueLookupParameter<IntValue>("GroupSize", "The size of the tournament group.", new IntValue(2)));
    63       Parameters.Add(new LookupParameter<IGAssistNichesProblemData>("GAssistNichesProblemData", ""));
     63      Parameters.Add(new LookupParameter<IGAssistProblemData>("GAssistNichesProblemData", ""));
    6464      Parameters.Add(new LookupParameter<BoolValue>("Niching", ""));
    6565      Parameters.Add(new ValueLookupParameter<IntValue>("ParentsPerChild", ""));
     
    143143        }
    144144      }
    145 
    146145      return selected;
    147146    }
  • branches/LearningClassifierSystems/HeuristicLab.Problems.CombinedIntegerVectorClassification/3.3/CombinedIntegerVectorClassificationProblem.cs

    r9242 r9411  
    8787    public CombinedIntegerVectorClassificationProblem(CombinedIntegerVectorClassificationProblemData problemData, XCSEvaluator evaluator, UniformRandomCombinedIntegerVectorCreator solutionCreator, ICoveringSolutionCreator coveringSolutionCreator)
    8888      : base(problemData, evaluator, solutionCreator, coveringSolutionCreator) {
    89       Parameters.Add(new FixedValueParameter<CombinedIntegerVectorComparer>("ClassifierComparer", new CombinedIntegerVectorComparer()));
     89      Parameters.Add(new FixedValueParameter<CombinedIntegerVectorComparer>("ClassifierComparer", problemData.ConcreteClassifierComparer));
    9090      Parameters.Add(new FixedValueParameter<ItemSet<IAction>>("PossibleActions", new ItemSet<IAction>(ClassifierComparer)));
    9191      Parameters.Add(new FixedValueParameter<ItemSet<CombinedIntegerVector>>("PossibleActionsConcreteClass", new ItemSet<CombinedIntegerVector>(ClassifierComparer)));
  • branches/LearningClassifierSystems/HeuristicLab.Problems.CombinedIntegerVectorClassification/3.3/CombinedIntegerVectorClassificationProblemData.cs

    r9352 r9411  
    5454      get { return LengthParameter.Value; }
    5555    }
    56 
    5756    public IntValue ActionLength {
    5857      get { return ActionLengthParameter.Value; }
    5958    }
    60 
    6159    public IntMatrix Bounds {
    6260      get { return BoundsParameter.Value; }
     61    }
     62    public CombinedIntegerVectorComparer ConcreteClassifierComparer {
     63      get { return new CombinedIntegerVectorComparer(); }
     64    }
     65    public override IClassifierComparer ClassifierComparer {
     66      get { return ConcreteClassifierComparer; }
    6367    }
    6468    #endregion
  • branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/ConditionActionClassificationProblem.cs

    r9342 r9411  
    2929using HeuristicLab.Parameters;
    3030using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     31using HeuristicLab.Problems.DataAnalysis;
    3132using HeuristicLab.Problems.Instances;
    3233
     
    8283
    8384    #region properties
    84     IParameter IConditionActionProblem.ProblemDataParameter {
    85       get { return ProblemDataParameter; }
    86     }
    8785    IConditionActionProblemData IConditionActionProblem.ProblemData {
    8886      get { return ProblemData; }
     
    234232      ProblemData = data;
    235233    }
     234
     235    #region IDataAnalysisProblem Members
     236    IParameter DataAnalysis.IDataAnalysisProblem.ProblemDataParameter {
     237      get { return ProblemDataParameter; }
     238    }
     239    IDataAnalysisProblemData IDataAnalysisProblem.ProblemData {
     240      get { return ProblemData; }
     241    }
     242    public event EventHandler ProblemDataChanged;
     243    #endregion
    236244  }
    237245}
  • branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/ConditionActionClassificationProblemData.cs

    r9392 r9411  
    108108             TestPartition.Start <= index && index < TestPartition.End;
    109109    }
     110
     111    public abstract IClassifierComparer ClassifierComparer { get; }
    110112    #endregion
    111113
     
    193195    protected abstract void ActionConditionVariablesChanged();
    194196    #endregion
     197
     198    #region IDataAnalysisProblemData Members
     199    public bool IsEmpty {
     200      get { return true; }
     201    }
     202    public ICheckedItemList<StringValue> InputVariables {
     203      get { return ConditionVariables; }
     204    }
     205    public IEnumerable<string> AllowedInputVariables {
     206      get { return AllowedConditionVariables; }
     207    }
     208    #endregion
    195209  }
    196210}
  • branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3/DecisionListClassificationProblem.cs

    r9392 r9411  
    146146      autoDefaultRule.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    147147      autoDefaultRule.GAssistNichesProblemDataParameter.ActualName = ProblemDataParameter.Name;
    148       autoDefaultRule.NicheComparerParameter.Value = new DecisionListNicheComparer();
     148      autoDefaultRule.NicheComparerParameter.Value = new GAssistNicheComparer();
    149149      foreach (IDefaultRuleOperator op in Operators.OfType<IDefaultRuleOperator>()) {
    150150        op.IndividualParameter.ActualName = SolutionCreator.DecisionListParameter.ActualName;
     
    168168    }
    169169
    170     IParameter IGAssistProblem.ProblemDataParameter {
    171       get { return ProblemDataParameter; }
    172     }
    173 
    174170    public string NichingParameterName {
    175171      get { return "Niching"; }
     
    181177      ProblemData = data;
    182178    }
     179
     180    #region IDataAnalysisProblem Members
     181    IParameter IDataAnalysisProblem.ProblemDataParameter {
     182      get { return ProblemDataParameter; }
     183    }
     184    IDataAnalysisProblemData IDataAnalysisProblem.ProblemData {
     185      get { return ProblemData; }
     186    }
     187    public event System.EventHandler ProblemDataChanged;
     188    #endregion
    183189  }
    184190}
  • branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3/DecisionListClassificationProblemData.cs

    r9392 r9411  
    287287    }
    288288    #endregion
     289
     290    #region IDataAnalysisProblemData Members
     291    public bool IsEmpty {
     292      get { return true; }
     293    }
     294    public ICheckedItemList<StringValue> InputVariables {
     295      get { return ConditionVariables; }
     296    }
     297    public IEnumerable<string> AllowedInputVariables {
     298      get { return AllowedConditionVariables; }
     299    }
     300    #endregion
    289301  }
    290302}
  • branches/LearningClassifierSystems/HeuristicLab.Problems.VariableVectorClassification/3.3/VariableVectorClassificationProblem.cs

    r9342 r9411  
    9090    public VariableVectorClassificationProblem(VariableVectorClassificationProblemData problemData, XCSEvaluator evaluator, UniformRandomVariableVectorCreator solutionCreator, IVariableVectorCoveringCreator coveringSolutionCreator)
    9191      : base(problemData, evaluator, solutionCreator, coveringSolutionCreator) {
    92       Parameters.Add(new FixedValueParameter<VariableVectorActionComparer>("ClassifierComparer", new VariableVectorActionComparer()));
     92      Parameters.Add(new FixedValueParameter<VariableVectorActionComparer>("ClassifierComparer", problemData.ConcreteClassifierComparer));
    9393      Parameters.Add(new FixedValueParameter<ItemSet<IAction>>("PossibleActions", new ItemSet<IAction>(ClassifierComparer)));
    9494      Parameters.Add(new FixedValueParameter<ItemSet<VariableVectorAction>>("PossibleActionsConcreteClass", new ItemSet<VariableVectorAction>(ClassifierComparer)));
  • branches/LearningClassifierSystems/HeuristicLab.Problems.VariableVectorClassification/3.3/VariableVectorClassificationProblemData.cs

    r9392 r9411  
    5353    public PercentValue SpreadPercentage {
    5454      get { return SpreadPercentageParameter.Value; }
     55    }
     56
     57    public VariableVectorActionComparer ConcreteClassifierComparer {
     58      get { return new VariableVectorActionComparer(); }
     59    }
     60    public override IClassifierComparer ClassifierComparer {
     61      get { return ConcreteClassifierComparer; }
    5562    }
    5663    #endregion
  • branches/LearningClassifierSystems/LearningClassifierSystem.sln

    r9392 r9411  
    3737EndProject
    3838Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.LCS-3.3", "HeuristicLab.Problems.Instances.LCS\3.3\HeuristicLab.Problems.Instances.LCS-3.3.csproj", "{1CC7585E-DD22-41FA-869B-93DE41EA8936}"
     39EndProject
     40Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis-3.4", "HeuristicLab.Algorithms.DataAnalysis\3.4\HeuristicLab.Algorithms.DataAnalysis-3.4.csproj", "{2E782078-FA81-4B70-B56F-74CE38DAC6C8}"
    3941EndProject
    4042Global
     
    180182    {1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|x64.ActiveCfg = Release|Any CPU
    181183    {1CC7585E-DD22-41FA-869B-93DE41EA8936}.Release|x86.ActiveCfg = Release|Any CPU
     184    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     185    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
     186    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.ActiveCfg = Debug|x64
     187    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.Build.0 = Debug|x64
     188    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.ActiveCfg = Debug|x86
     189    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.Build.0 = Debug|x86
     190    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
     191    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.Build.0 = Release|Any CPU
     192    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.ActiveCfg = Release|x64
     193    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.Build.0 = Release|x64
     194    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.ActiveCfg = Release|x86
     195    {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.Build.0 = Release|x86
    182196  EndGlobalSection
    183197  GlobalSection(SolutionProperties) = preSolution
    184198    HideSolutionNode = FALSE
    185199  EndGlobalSection
    186   GlobalSection(Performance) = preSolution
    187     HasPerformanceSessions = true
    188   EndGlobalSection
    189200EndGlobal
Note: See TracChangeset for help on using the changeset viewer.