Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/15/19 14:13:13 (5 years ago)
Author:
abeham
Message:

#2740: Fixed problem with local random number generator and multi-encoding in ALPS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiEncodingManipulator.cs

    r16565 r16782  
    2020#endregion
    2121
     22using HEAL.Attic;
    2223using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    24 using HEAL.Attic;
     25using HeuristicLab.Parameters;
    2526
    2627namespace HeuristicLab.Optimization {
    2728  [Item("MultiEncoding Manipulator", "Applies different manipulators to change a multi-encoding.")]
    2829  [StorableType("574D0530-47E8-4FD9-8AC8-B8EA2DE3C203")]
    29   public sealed class MultiEncodingManipulator : MultiEncodingOperator<IManipulator>, IManipulator {
     30  public sealed class MultiEncodingManipulator : MultiEncodingOperator<IManipulator>, IManipulator, IStochasticOperator {
     31    public ILookupParameter<IRandom> RandomParameter {
     32      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
     33    }
     34
     35    public override string OperatorPrefix => "Manipulator";
     36
    3037    [StorableConstructor]
    3138    private MultiEncodingManipulator(StorableConstructorFlag _) : base(_) { }
    3239    private MultiEncodingManipulator(MultiEncodingManipulator original, Cloner cloner)
    3340      : base(original, cloner) { }
    34     public MultiEncodingManipulator() { }
     41    public MultiEncodingManipulator() {
     42      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator used by the individual operators."));
     43    }
    3544
    3645    public override IDeepCloneable Clone(Cloner cloner) { return new MultiEncodingManipulator(this, cloner); }
    3746
     47    [StorableHook(HookType.AfterDeserialization)]
     48    private void AfterDeserialization() {
     49      if (!Parameters.ContainsKey("Random")) {
     50        Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator used by the individual operators."));
     51      }
     52    }
     53
    3854  }
    3955}
Note: See TracChangeset for help on using the changeset viewer.