Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/21/15 16:30:14 (9 years ago)
Author:
abeham
Message:

#2319: Added SinglePointCrossover

Location:
branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators/GraftManipulator.cs

    r12288 r12396  
    2424using HeuristicLab.Common;
    2525using HeuristicLab.Core;
    26 using HeuristicLab.Data;
    27 using HeuristicLab.Parameters;
    2826using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2927
     
    3331  public sealed class GraftManipulator : LinearLinkageManipulator {
    3432
    35     public IValueLookupParameter<IntValue> MaxGroupsParameter {
    36       get { return (IValueLookupParameter<IntValue>)Parameters["MaxGroups"]; }
    37     }
    38 
    3933    [StorableConstructor]
    4034    private GraftManipulator(bool deserializing) : base(deserializing) { }
    4135    private GraftManipulator(GraftManipulator original, Cloner cloner) : base(original, cloner) { }
    42     public GraftManipulator() {
    43       Parameters.Add(new ValueLookupParameter<IntValue>("MaxGroups", "The maximum number of groups. If a value less or equal than 0 is used the number of groups is not limited.", new IntValue(-1)));
    44     }
    45     public GraftManipulator(int maxGroups)
    46       : this() {
    47       MaxGroupsParameter.Value = new IntValue(maxGroups);
    48     }
     36    public GraftManipulator() { }
    4937
    5038    public override IDeepCloneable Clone(Cloner cloner) {
     
    5240    }
    5341
    54     public static void Apply(IRandom random, LinearLinkage lle, int maxGroups) {
     42    public static void Apply(IRandom random, LinearLinkage lle) {
    5543      int tries = lle.Length;
    5644      var index = random.Next(lle.Length);
     
    5947        tries--;
    6048      }
    61       if (lle[index] != index) Apply(random, lle, maxGroups, index);
     49      if (lle[index] != index) Apply(random, lle, index);
    6250    }
    6351
    64     public static void Apply(IRandom random, LinearLinkage lle, int maxGroups, int index) {
     52    public static void Apply(IRandom random, LinearLinkage lle, int index) {
    6553      var groups = lle.Select((val, idx) => Tuple.Create(idx, val))
    6654                      .Where(x => x.Item1 == x.Item2)
     
    8472
    8573    protected override void Manipulate(IRandom random, LinearLinkage lle) {
    86       var maxGroups = MaxGroupsParameter.ActualValue.Value;
    87       Apply(random, lle, maxGroups <= 0 ? int.MaxValue : maxGroups);
     74      Apply(random, lle);
    8875    }
    8976  }
  • branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators/MergeGroupManipulator.cs

    r12286 r12396  
    2828
    2929namespace HeuristicLab.Encodings.LinearLinkageEncoding {
    30   [Item("Merge Group Manipulator", "Performs a maximum of N merge operations on the groups. Groups may be merged multiple times.")]
     30  [Item("Merge Group Manipulator", "Performs a maximum of N merge operations on the groups. An already merged group may be merged again.")]
    3131  [StorableClass]
    3232  public sealed class MergeGroupManipulator : LinearLinkageManipulator {
  • branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators/MoveItemManipulator.cs

    r12286 r12396  
    2929
    3030namespace HeuristicLab.Encodings.LinearLinkageEncoding {
    31   [Item("Move Item Manipulator", "Performs a maximum of N move operations between groups or to new groups. Items may be moved multiple times.")]
     31  [Item("Move Item Manipulator", "Performs a maximum of N move operations between groups or to new groups. An already moved item may be moved again.")]
    3232  [StorableClass]
    3333  public sealed class MoveItemManipulator : LinearLinkageManipulator {
  • branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators/SplitGroupManipulator.cs

    r12286 r12396  
    3131
    3232namespace HeuristicLab.Encodings.LinearLinkageEncoding {
    33   [Item("Split Group Manipulator", "Performs a maximum of N split operations on the groups. Groups may be split multiple times.")]
     33  [Item("Split Group Manipulator", "Performs a maximum of N split operations on the groups. An already split group may be split again.")]
    3434  [StorableClass]
    3535  public sealed class SplitGroupManipulator : LinearLinkageManipulator {
  • branches/LinearLinkage/HeuristicLab.Encodings.LinearLinkageEncoding/3.3/Manipulators/SwapItemManipulator.cs

    r12286 r12396  
    2828
    2929namespace HeuristicLab.Encodings.LinearLinkageEncoding {
    30   [Item("Swap Item Manipulator", "Swaps items between groups. Items may be swapped multiple times.")]
     30  [Item("Swap Item Manipulator", "Performs N swaps operations of two items each. The same items may be swapped multiple times, at least two groups need to be present.")]
    3131  [StorableClass]
    3232  public sealed class SwapItemManipulator : LinearLinkageManipulator {
Note: See TracChangeset for help on using the changeset viewer.