Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/17/15 12:15:00 (9 years ago)
Author:
pfleck
Message:

#2269 Fixed typos and renamed some stuff suggested by ascheibe and adapted project for mono.

  • The initialization of layer 0 is done similar to other algorithms where general initialization is done in the algorithm itself and variables used and produced during the main-loop is initialized in the main-loop-operator.
  • The GeneralizedRankSelector is used as default selector because it generally works the best (rank compensates the large quality range of multiple layers and high selection pressure via pressure-parameter). Proportional selection performs very badly because the selection pressure is too low for ALPS.
  • Concerning ReduceToPopulationSize in the EldersEmigrator, the behavior it is not completely clear in the original paper. Reducing the population to the population size seems the more logical way, therefore it is default. An empty layer could happen in extremely rare situations, but it never happens to me so far.
  • Concerning opening a new layer, when taking a closer look at the ages, all individual tends to be as old as possible, in the standard version with AgeInheritance==1. That means they usually get too old in exactly after the generation the AgeLimits for the current last layer states. This way it is not necessary to check if any individual becomes too old for the current last layer. For AgeInheritance<1 it can happen that there would actually be no need to open a new layer; however, it will be opened anyway.
File:
1 moved

Legend:

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

    r13203 r13206  
    2929
    3030namespace HeuristicLab.Algorithms.ALPS {
    31   [Item("LastScopeCloner", "An operator that creates a new scope by cloning the current last one.")]
     31  [Item("LastLayerCloner", "An operator that creates a new layer by cloning the current last one.")]
    3232  [StorableClass]
    33   public sealed class LastScopeCloner : SingleSuccessorOperator {
    34     public OperatorParameter NewScopeOperatorParameter {
    35       get { return (OperatorParameter)Parameters["NewScopeOperator"]; }
     33  public sealed class LastLayerCloner : SingleSuccessorOperator {
     34    public OperatorParameter NewLayerOperatorParameter {
     35      get { return (OperatorParameter)Parameters["NewLayerOperator"]; }
    3636    }
    3737
    38     public IOperator NewScopeOperator {
    39       get { return NewScopeOperatorParameter.Value; }
    40       set { NewScopeOperatorParameter.Value = value; }
     38    public IOperator NewLayerOperator {
     39      get { return NewLayerOperatorParameter.Value; }
     40      set { NewLayerOperatorParameter.Value = value; }
    4141    }
    4242
    4343    [StorableConstructor]
    44     private LastScopeCloner(bool deserializing) : base(deserializing) { }
     44    private LastLayerCloner(bool deserializing) : base(deserializing) { }
    4545
    46     private LastScopeCloner(LastScopeCloner original, Cloner cloner)
     46    private LastLayerCloner(LastLayerCloner original, Cloner cloner)
    4747      : base(original, cloner) {
    4848    }
    4949    public override IDeepCloneable Clone(Cloner cloner) {
    50       return new LastScopeCloner(this, cloner);
     50      return new LastLayerCloner(this, cloner);
    5151    }
    5252
    53     public LastScopeCloner()
     53    public LastLayerCloner()
    5454      : base() {
    55       Parameters.Add(new OperatorParameter("NewScopeOperator", "An Operator that is performed on the new scope."));
     55      Parameters.Add(new OperatorParameter("NewLayerOperator", "An operator that is performed on the new layer."));
    5656    }
    5757
     
    7070
    7171      var next = new OperationCollection(base.Apply());
    72       if (NewScopeOperator != null)
    73         next.Insert(0, ExecutionContext.CreateOperation(NewScopeOperator, newScope));
     72      if (NewLayerOperator != null)
     73        next.Insert(0, ExecutionContext.CreateOperation(NewLayerOperator, newScope));
    7474      return next;
    7575    }
Note: See TracChangeset for help on using the changeset viewer.