Changeset 11568


Ignore:
Timestamp:
11/24/14 13:31:03 (8 years ago)
Author:
pfleck
Message:

#2269 Added Parameters for ALPS-GA.

Location:
branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs

    r11567 r11568  
    2121
    2222using System;
     23using HeuristicLab.Analysis;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Core;
     26using HeuristicLab.Data;
     27using HeuristicLab.Operators;
    2528using HeuristicLab.Optimization;
     29using HeuristicLab.Parameters;
    2630using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2731
     
    4448
    4549    #region Parameter Properties
     50    private IValueParameter<IntValue> SeedParameter {
     51      get { return (IValueParameter<IntValue>)Parameters["Seed"]; }
     52    }
     53    private IValueParameter<BoolValue> SetSeedRandomlyParameter {
     54      get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
     55    }
     56    private IValueParameter<MultiAnalyzer> AnalyzerParameter {
     57      get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     58    }
     59    private IValueParameter<MultiAnalyzer> LayerAnalyzerParameter {
     60      get { return (IValueParameter<MultiAnalyzer>)Parameters["LayerAnalyzer"]; }
     61    }
     62    private IValueParameter<IntValue> NumberOfLayersParameter {
     63      get { return (IValueParameter<IntValue>)Parameters["NumberOfLayers"]; }
     64    }
     65    private IValueParameter<IntValue> PopulationSizeParameter {
     66      get { return (IValueParameter<IntValue>)Parameters["PopulationSize"]; }
     67    }
     68    private IValueParameter<IntValue> MaximumGenerationsParameter {
     69      get { return (IValueParameter<IntValue>)Parameters["MaximumGenerations"]; }
     70    }
     71    private IValueParameter<AgingScheme> AgingSchemeParameter {
     72      get { return (IValueParameter<AgingScheme>)Parameters["AgingScheme"]; }
     73    }
     74    private IValueParameter<IntValue> AgeGapParameter {
     75      get { return (IValueParameter<IntValue>)Parameters["AgeGap"]; }
     76    }
     77    private IValueParameter<IntArray> AgeLimitsParameter {
     78      get { return (IValueParameter<IntArray>)Parameters["AgeLimits"]; }
     79    }
     80    private IValueParameter<ReductionOperation> AgeInheritanceParameter {
     81      get { return (IValueParameter<ReductionOperation>)Parameters["AgeInheritance"]; }
     82    }
     83    public IConstrainedValueParameter<ISelector> SelectorParameter {
     84      get { return (IConstrainedValueParameter<ISelector>)Parameters["Selector"]; }
     85    }
     86    public IConstrainedValueParameter<ICrossover> CrossoverParameter {
     87      get { return (IConstrainedValueParameter<ICrossover>)Parameters["Crossover"]; }
     88    }
     89    private IValueParameter<PercentValue> MutationProbabilityParameter {
     90      get { return (IValueParameter<PercentValue>)Parameters["MutationProbability"]; }
     91    }
     92    public IConstrainedValueParameter<IManipulator> MutatorParameter {
     93      get { return (IConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; }
     94    }
     95    private IValueParameter<IntValue> ElitesParameter {
     96      get { return (IValueParameter<IntValue>)Parameters["Elites"]; }
     97    }
     98    private IFixedValueParameter<BoolValue> ReevaluateElitesParameter {
     99      get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; }
     100    }
    46101    #endregion
    47102
    48103    #region Properties
     104    public IntValue Seed {
     105      get { return SeedParameter.Value; }
     106      set { SeedParameter.Value = value; }
     107    }
     108    public BoolValue SetSeedRandomly {
     109      get { return SetSeedRandomlyParameter.Value; }
     110      set { SetSeedRandomlyParameter.Value = value; }
     111    }
     112    public MultiAnalyzer Analyzer {
     113      get { return AnalyzerParameter.Value; }
     114      set { AnalyzerParameter.Value = value; }
     115    }
     116    public MultiAnalyzer LayerAnalyzer {
     117      get { return LayerAnalyzerParameter.Value; }
     118      set { LayerAnalyzerParameter.Value = value; }
     119    }
     120    public IntValue NumberOfLayers {
     121      get { return NumberOfLayersParameter.Value; }
     122      set { NumberOfLayersParameter.Value = value; }
     123    }
     124
     125    public IntValue PopulationSize {
     126      get { return PopulationSizeParameter.Value; }
     127      set { PopulationSizeParameter.Value = value; }
     128    }
     129    public IntValue MaximumGenerations {
     130      get { return MaximumGenerationsParameter.Value; }
     131      set { MaximumGenerationsParameter.Value = value; }
     132    }
     133    public AgingScheme AgingScheme {
     134      get { return AgingSchemeParameter.Value; }
     135      set { AgingSchemeParameter.Value = value; }
     136    }
     137    public IntValue AgeGap {
     138      get { return AgeGapParameter.Value; }
     139      set { AgeGapParameter.Value = value; }
     140    }
     141    public IntArray AgeLimits {
     142      get { return AgeLimitsParameter.Value; }
     143      set { AgeLimitsParameter.Value = value; }
     144    }
     145    public ReductionOperation AgeInheritance {
     146      get { return AgeInheritanceParameter.Value; }
     147      set { AgeInheritanceParameter.Value = value; }
     148    }
     149    public ISelector Selector {
     150      get { return SelectorParameter.Value; }
     151      set { SelectorParameter.Value = value; }
     152    }
     153    public ICrossover Crossover {
     154      get { return CrossoverParameter.Value; }
     155      set { CrossoverParameter.Value = value; }
     156    }
     157    public PercentValue MutationProbability {
     158      get { return MutationProbabilityParameter.Value; }
     159      set { MutationProbabilityParameter.Value = value; }
     160    }
     161    public IManipulator Mutator {
     162      get { return MutatorParameter.Value; }
     163      set { MutatorParameter.Value = value; }
     164    }
     165    public IntValue Elites {
     166      get { return ElitesParameter.Value; }
     167      set { ElitesParameter.Value = value; }
     168    }
     169    public bool ReevaluteElites {
     170      get { return ReevaluateElitesParameter.Value.Value; }
     171      set { ReevaluateElitesParameter.Value.Value = value; }
     172    }
    49173    #endregion
    50174
     
    52176    private AlpsGeneticAlgorithm(bool deserializing)
    53177      : base(deserializing) { }
    54 
    55178    private AlpsGeneticAlgorithm(AlpsGeneticAlgorithm original, Cloner cloner)
    56179      : base(original, cloner) {
     
    60183      return new AlpsGeneticAlgorithm(this, cloner);
    61184    }
    62 
    63185    public AlpsGeneticAlgorithm()
    64186      : base() {
    65       // TODO
     187      Parameters.Add(new ValueParameter<IntValue>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntValue(0)));
     188      Parameters.Add(new ValueParameter<BoolValue>("SetSeedRandomly", "True if the random seed should be set to a random value, otherwise false.", new BoolValue(true)));
     189      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer()));
     190      Parameters.Add(new ValueParameter<MultiAnalyzer>("LayerAnalyzer", "The operator used to analyze each layer.", new MultiAnalyzer()));
     191      Parameters.Add(new ValueParameter<IntValue>("NumberOfLayers", "The number of layers.", new IntValue(5)));
     192      Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions each layer.", new IntValue(20)));
     193      Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations that should be processed.", new IntValue(1000)));
     194      Parameters.Add(new ValueParameter<AgingScheme>("AgingScheme", "The aging scheme for setting the age-limits for the layers.", new AgingScheme(AgingSchemes.Polynomial)));
     195      Parameters.Add(new ValueParameter<IntValue>("AgeGap", "The frequency of reseeding the lowest layer and scaling factor for the age-limits for the layers", new IntValue(5)));
     196      Parameters.Add(new ValueParameter<IntArray>("AgeLimits", new IntArray(new[] { 1, 20, 45, 80, 125 })) { Hidden = true });
     197      Parameters.Add(new ValueParameter<ReductionOperation>("AgeInheritance", "The operator for determining the age of an offspring based the parents age.", new ReductionOperation(ReductionOperations.Max)) { Hidden = true });
     198      Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction."));
     199      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions."));
     200      Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05)));
     201      Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
     202      Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
     203      Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true });
    66204    }
    67205  }
  • branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj

    r11567 r11568  
    7575    <Reference Include="System" />
    7676    <Reference Include="System.Core" />
     77    <Reference Include="System.Drawing" />
    7778  </ItemGroup>
    7879  <ItemGroup>
     80    <Compile Include="AgingScheme.cs" />
    7981    <Compile Include="AlpsGeneticAlgorithm.cs" />
    8082    <Compile Include="Plugin.cs" />
     
    9799      <Private>False</Private>
    98100    </ProjectReference>
     101    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     102      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
     103      <Name>HeuristicLab.Common.Resources-3.3</Name>
     104    </ProjectReference>
    99105    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    100106      <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>
     
    105111      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
    106112      <Name>HeuristicLab.Core-3.3</Name>
    107       <Private>False</Private>
    108113    </ProjectReference>
    109114    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
Note: See TracChangeset for help on using the changeset viewer.