Changeset 9129


Ignore:
Timestamp:
01/09/13 04:23:10 (7 years ago)
Author:
abeham
Message:

#1961:

  • Changed CMA-ES to reference RealVector directly and work with that encoding only (separation of algorithm and encoding was not trivial to achieve)
  • Simplified operator graph (also improves performance)
  • Simplified strategy parameters (those used only during update are initialized in update)
  • Added many termination criteria (same as in Hansen's Java version)
  • Added different ways to calculate the mean (different weightings)
Location:
branches/CMAES
Files:
17 added
6 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • branches/CMAES/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.3/HeuristicLab.Algorithms.CMAEvolutionStrategy-3.3.csproj

    r9115 r9129  
    9393  </PropertyGroup>
    9494  <ItemGroup>
     95    <Reference Include="ALGLIB-3.6.0, Version=3.6.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     96      <SpecificVersion>False</SpecificVersion>
     97      <HintPath>..\..\..\..\trunk\sources\bin\ALGLIB-3.6.0.dll</HintPath>
     98      <Private>False</Private>
     99    </Reference>
    95100    <Reference Include="HeuristicLab.Analysis-3.3">
    96101      <SpecificVersion>False</SpecificVersion>
     
    157162      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    158163    </Reference>
     164    <Reference Include="System.Drawing" />
    159165    <Reference Include="System.Xml.Linq">
    160166      <RequiredTargetFramework>3.5</RequiredTargetFramework>
     
    167173  </ItemGroup>
    168174  <ItemGroup>
     175    <Compile Include="CMAAnalyzer.cs" />
     176    <Compile Include="CMAOperators\CMAInitializer.cs" />
     177    <Compile Include="CMAOperators\CMALogweightedRecombinator.cs" />
     178    <Compile Include="CMAOperators\CMAMutator.cs" />
     179    <Compile Include="CMAOperators\CMALinearweightedRecombinator.cs" />
     180    <Compile Include="CMAOperators\CMAEqualweightedRecombinator.cs" />
     181    <Compile Include="CMAParameters.cs" />
     182    <Compile Include="CMAOperators\CMARecombinator.cs" />
     183    <Compile Include="CMAOperators\CMAUpdater.cs" />
     184    <Compile Include="Interfaces\ICMAInitializer.cs" />
     185    <Compile Include="Interfaces\ICMAManipulator.cs" />
     186    <Compile Include="Interfaces\ICMARecombinator.cs" />
     187    <Compile Include="Interfaces\ICMAUpdater.cs" />
    169188    <Compile Include="Plugin.cs" />
    170189    <Compile Include="Properties\AssemblyInfo.cs" />
    171190    <Compile Include="CMAEvolutionStrategy.cs" />
    172     <Compile Include="CMAEvolutionStrategyMainLoop.cs" />
     191    <Compile Include="Terminator.cs" />
    173192  </ItemGroup>
    174193  <ItemGroup>
     
    195214  </ItemGroup>
    196215  <ItemGroup>
     216    <ProjectReference Include="..\..\HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj">
     217      <Project>{bb6d334a-4bb6-4674-9883-31a6ebb32cab}</Project>
     218      <Name>HeuristicLab.Encodings.RealVectorEncoding-3.3</Name>
     219      <Private>False</Private>
     220    </ProjectReference>
    197221    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    198222      <Project>{14ab8d24-25bc-400c-a846-4627aa945192}</Project>
     
    201225    </ProjectReference>
    202226  </ItemGroup>
     227  <ItemGroup />
    203228  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    204229  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • branches/CMAES/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.3/Properties/AssemblyInfo.cs.frame

    r9115 r9129  
    2727// associated with an assembly.
    2828[assembly: AssemblyTitle("HeuristicLab.Algorithms.CMAEvolutionStrategy")]
    29 [assembly: AssemblyDescription("HeuristicLab CMA Evolution Strategy (CMA-ES)")]
     29[assembly: AssemblyDescription("HeuristicLab implementation of CMA Evolution Strategy (CMA-ES)")]
    3030[assembly: AssemblyConfiguration("")]
    3131[assembly: AssemblyCompany("")]
  • branches/CMAES/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj

    r9122 r9129  
    9999  </PropertyGroup>
    100100  <ItemGroup>
    101     <Reference Include="ALGLIB-3.6.0, Version=3.6.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    102       <SpecificVersion>False</SpecificVersion>
    103       <HintPath>..\..\..\..\trunk\sources\bin\ALGLIB-3.6.0.dll</HintPath>
    104       <Private>False</Private>
    105     </Reference>
    106101    <Reference Include="HeuristicLab.Analysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    107102      <SpecificVersion>False</SpecificVersion>
     
    173168  </ItemGroup>
    174169  <ItemGroup>
    175     <Compile Include="CMAESOperators\CMAAnalyzer.cs" />
    176     <Compile Include="CMAESOperators\CMARecombinator.cs" />
    177     <Compile Include="CMAESOperators\CMAParameters.cs" />
    178     <Compile Include="CMAESOperators\CMAInitializer.cs" />
    179     <Compile Include="CMAESOperators\CMAMutator.cs" />
    180     <Compile Include="CMAESOperators\CMAUpdater.cs" />
    181170    <Compile Include="Interfaces\IRealVectorMultiNeighborhoodShakingOperator.cs" />
    182171    <Compile Include="ParticleOperators\RealVectorParticleCreator.cs" />
  • branches/CMAES/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj

    r9115 r9129  
    154154  </ItemGroup>
    155155  <ItemGroup>
    156     <Compile Include="Interfaces\ICMAESRecombinator.cs" />
    157     <Compile Include="Interfaces\ICMAESManipulator.cs" />
    158     <Compile Include="Interfaces\ICMAESUpdater.cs" />
    159     <Compile Include="Interfaces\ICMAESInitializer.cs" />
    160156    <Compile Include="Interfaces\ISingleObjectivePathRelinker.cs" />
    161157    <Compile Include="Interfaces\ISingleObjectiveImprovementOperator.cs" />
  • branches/CMAES/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs

    r9122 r9129  
    401401        op.Bounds = Bounds;
    402402      }
    403       foreach (var op in Operators.OfType<CMAInitializer>()) {
    404         op.DimensionParameter.ActualName = ProblemSizeParameter.Name;
    405       }
    406       foreach (var op in Operators.OfType<CMAMutator>()) {
    407         op.BoundsParameter.ActualName = BoundsParameter.Name;
    408         op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    409       }
    410       foreach (var op in Operators.OfType<CMARecombinator>()) {
    411         op.MeanParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    412         op.OffspringParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    413       }
    414       foreach (var op in Operators.OfType<CMAUpdater>()) {
    415         op.MeansParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    416         op.OffspringParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    417       }
    418       foreach (var op in Operators.OfType<CMAAnalyzer>()) {
    419         op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    420       }
    421403    }
    422404    private void UpdateStrategyVectorBounds() {
Note: See TracChangeset for help on using the changeset viewer.