Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/01/17 11:07:48 (7 years ago)
Author:
mkommend
Message:

#2815: Corrected cloning and serializing of P3 and associated classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/EvaluationTracker.cs

    r14185 r15301  
    2727using HeuristicLab.Encodings.BinaryVectorEncoding;
    2828using HeuristicLab.Parameters;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2930using HeuristicLab.Problems.Binary;
    3031
     
    3334  // B. W. Goldman and W. F. Punch, "Parameter-less Population Pyramid," GECCO, pp. 785–792, 2014
    3435  // and the original source code in C++11 available from: https://github.com/brianwgoldman/Parameter-less_Population_Pyramid
     36  [StorableClass]
    3537  internal sealed class EvaluationTracker : BinaryProblem {
     38    [Storable]
    3639    private readonly BinaryProblem problem;
    37 
     40    [Storable]
    3841    private int maxEvaluations;
    3942
    4043    #region Properties
     44    [Storable]
    4145    public double BestQuality {
    4246      get;
    4347      private set;
    4448    }
    45 
     49    [Storable]
    4650    public int Evaluations {
    4751      get;
    4852      private set;
    4953    }
    50 
     54    [Storable]
    5155    public int BestFoundOnEvaluation {
    5256      get;
    5357      private set;
    5458    }
    55 
     59    [Storable]
    5660    public BinaryVector BestSolution {
    5761      get;
     
    5963    }
    6064    #endregion
     65
     66
     67    [StorableConstructor]
     68    private EvaluationTracker(bool deserializing) : base(deserializing) { }
    6169
    6270    private EvaluationTracker(EvaluationTracker original, Cloner cloner)
     
    6775      Evaluations = original.Evaluations;
    6876      BestFoundOnEvaluation = original.BestFoundOnEvaluation;
    69       BestSolution = cloner.Clone(BestSolution);
     77      BestSolution = cloner.Clone(original.BestSolution);
    7078    }
    7179    public override IDeepCloneable Clone(Cloner cloner) {
    7280      return new EvaluationTracker(this, cloner);
    7381    }
     82
    7483    public EvaluationTracker(BinaryProblem problem, int maxEvaluations) {
    7584      this.problem = problem;
Note: See TracChangeset for help on using the changeset viewer.