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/MultiEncodingCreator.cs

    r16565 r16782  
    2222using System;
    2323using System.Linq;
     24using HEAL.Attic;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
    26 using HEAL.Attic;
     27using HeuristicLab.Parameters;
    2728
    2829namespace HeuristicLab.Optimization {
    2930  [Item("MultiEncodingCreator", "Contains solution creators that together create a multi-encoding.")]
    3031  [StorableType("E261B506-6F74-4BC4-8164-5ACE20FBC319")]
    31   public sealed class MultiEncodingCreator : MultiEncodingOperator<ISolutionCreator>, ISolutionCreator {
     32  public sealed class MultiEncodingCreator : MultiEncodingOperator<ISolutionCreator>, ISolutionCreator, IStochasticOperator {
     33    public ILookupParameter<IRandom> RandomParameter {
     34      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
     35    }
     36
     37    public override string OperatorPrefix => "Creator";
     38
    3239    [StorableConstructor]
    3340    private MultiEncodingCreator(StorableConstructorFlag _) : base(_) { }
    3441
    3542    private MultiEncodingCreator(MultiEncodingCreator original, Cloner cloner) : base(original, cloner) { }
    36     public MultiEncodingCreator() { }
     43    public MultiEncodingCreator() {
     44      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator used by the individual operators."));
     45    }
    3746
    3847    public override IDeepCloneable Clone(Cloner cloner) {
    3948      return new MultiEncodingCreator(this, cloner);
     49    }
     50
     51    [StorableHook(HookType.AfterDeserialization)]
     52    private void AfterDeserialization() {
     53      if (!Parameters.ContainsKey("Random")) {
     54        Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator used by the individual operators."));
     55      }
    4056    }
    4157
Note: See TracChangeset for help on using the changeset viewer.