Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (13 years ago)
Author:
swagner
Message:

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMove.cs

    r3376 r4722  
    3535    public RealVector RealVector { get; protected set; }
    3636
    37     public AdditiveMove()
    38       : this(-1, 0, null) {
     37    [StorableConstructor]
     38    protected AdditiveMove(bool deserializing) : base(deserializing) { }
     39    protected AdditiveMove(AdditiveMove original, Cloner cloner)
     40      : base(original, cloner) {
     41      this.Dimension = original.Dimension;
     42      this.MoveDistance = original.MoveDistance;
     43      if (original.RealVector != null)
     44        this.RealVector = cloner.Clone(original.RealVector);
    3945    }
    40 
    41     public AdditiveMove(int dimension, double moveDistance)
    42       : this(dimension, moveDistance, null) {
    43     }
    44 
     46    public AdditiveMove() : this(-1, 0, null) { }
     47    public AdditiveMove(int dimension, double moveDistance) : this(dimension, moveDistance, null) { }
    4548    public AdditiveMove(int dimension, double moveDistance, RealVector realVector)
    4649      : base() {
     
    5154
    5255    public override IDeepCloneable Clone(Cloner cloner) {
    53       AdditiveMove clone = (AdditiveMove)base.Clone(cloner);
    54       clone.Dimension = Dimension;
    55       clone.MoveDistance = MoveDistance;
    56       if (RealVector != null)
    57         clone.RealVector = (RealVector)RealVector.Clone(cloner);
    58       return clone;
     56      return new AdditiveMove(this, cloner);
    5957    }
    6058  }
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMoveGenerator.cs

    r4101 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Data;
     
    5051    }
    5152
     53    [StorableConstructor]
     54    protected AdditiveMoveGenerator(bool deserializing) : base(deserializing) { }
     55    protected AdditiveMoveGenerator(AdditiveMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    5256    public AdditiveMoveGenerator()
    5357      : base() {
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMoveMaker.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Data;
     
    4748    }
    4849
     50    [StorableConstructor]
     51    protected AdditiveMoveMaker(bool deserializing) : base(deserializing) { }
     52    protected AdditiveMoveMaker(AdditiveMoveMaker original, Cloner cloner) : base(original, cloner) { }
    4953    public AdditiveMoveMaker()
    5054      : base() {
     
    5357      Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The relative quality of the move."));
    5458      Parameters.Add(new LookupParameter<RealVector>("RealVector", "The solution as permutation."));
     59    }
     60
     61    public override IDeepCloneable Clone(Cloner cloner) {
     62      return new AdditiveMoveMaker(this, cloner);
    5563    }
    5664
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMoveTabuAttribute.cs

    r3376 r4722  
    3838
    3939    [StorableConstructor]
    40     private AdditiveMoveTabuAttribute(bool deserializing)
    41       : base() {
     40    protected AdditiveMoveTabuAttribute(bool deserializing) : base(deserializing) { }
     41    protected AdditiveMoveTabuAttribute(AdditiveMoveTabuAttribute original, Cloner cloner)
     42      : base(original, cloner) {
     43      this.Dimension = original.Dimension;
     44      this.OriginalPosition = original.OriginalPosition;
     45      this.MovedPosition = original.MovedPosition;
     46      this.MoveQuality = original.MoveQuality;
    4247    }
    43     public AdditiveMoveTabuAttribute()
    44       : base() {
    45       Dimension = -1;
    46       OriginalPosition = 0;
    47       MovedPosition = 0;
    48       MoveQuality = 0;
    49     }
    50 
     48    public AdditiveMoveTabuAttribute() : this(-1, 0, 0, 0) { }
    5149    public AdditiveMoveTabuAttribute(int dimension, double originalPosition, double movedPosition, double moveQuality)
    5250      : base() {
     
    5856
    5957    public override IDeepCloneable Clone(Cloner cloner) {
    60       AdditiveMoveTabuAttribute clone = (AdditiveMoveTabuAttribute)base.Clone(cloner);
    61       clone.Dimension = Dimension;
    62       clone.OriginalPosition = OriginalPosition;
    63       clone.MovedPosition = MovedPosition;
    64       clone.MoveQuality = MoveQuality;
    65       return clone;
     58      return new AdditiveMoveTabuAttribute(this, cloner);
    6659    }
    6760  }
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMoveTabuChecker.cs

    r4068 r4722  
    2121
    2222using System;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Data;
     
    6263    }
    6364
    64 
     65    [StorableConstructor]
     66    protected AdditiveMoveTabuChecker(bool deserializing) : base(deserializing) { }
     67    protected AdditiveMoveTabuChecker(AdditiveMoveTabuChecker original, Cloner cloner) : base(original, cloner) { }
    6568    public AdditiveMoveTabuChecker()
    6669      : base() {
     
    7275      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, else if it is a minimization problem."));
    7376      Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The quality of the current move."));
     77    }
     78
     79    public override IDeepCloneable Clone(Cloner cloner) {
     80      return new AdditiveMoveTabuChecker(this, cloner);
    7481    }
    7582
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/AdditiveMoveTabuMaker.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Optimization.Operators;
     
    3637    }
    3738
     39    [StorableConstructor]
     40    protected AdditiveMoveTabuMaker(bool deserializing) : base(deserializing) { }
     41    protected AdditiveMoveTabuMaker(AdditiveMoveTabuMaker original, Cloner cloner) : base(original, cloner) { }
    3842    public AdditiveMoveTabuMaker()
    3943      : base() {
    4044      Parameters.Add(new LookupParameter<AdditiveMove>("AdditiveMove", "The move to evaluate."));
    4145      Parameters.Add(new LookupParameter<RealVector>("RealVector", "The solution as permutation."));
     46    }
     47
     48    public override IDeepCloneable Clone(Cloner cloner) {
     49      return new AdditiveMoveTabuMaker(this, cloner);
    4250    }
    4351
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/StochasticNormalMultiMoveGenerator.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Data;
     
    3839    }
    3940
     41    [StorableConstructor]
     42    protected StochasticNormalMultiMoveGenerator(bool deserializing) : base(deserializing) { }
     43    protected StochasticNormalMultiMoveGenerator(StochasticNormalMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    4044    public StochasticNormalMultiMoveGenerator()
    4145      : base() {
    4246      Parameters.Add(new ValueLookupParameter<DoubleValue>("Sigma", "The standard deviation of the normal distribution.", new DoubleValue(1)));
    4347      Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "The number of moves that should be generated."));
     48    }
     49
     50    public override IDeepCloneable Clone(Cloner cloner) {
     51      return new StochasticNormalMultiMoveGenerator(this, cloner);
    4452    }
    4553
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Moves/StochasticPolynomialMultiMoveGenerator.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Data;
     
    4748    }
    4849
     50    [StorableConstructor]
     51    protected StochasticPolynomialMultiMoveGenerator(bool deserializing) : base(deserializing) { }
     52    protected StochasticPolynomialMultiMoveGenerator(StochasticPolynomialMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    4953    public StochasticPolynomialMultiMoveGenerator()
    5054      : base() {
     
    5256      Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "The number of moves that should be generated."));
    5357      Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumManipulation", "Specifies the maximum value that should be added or subtracted by the manipulation. If this value is set to 0 no mutation will be performed.", new DoubleValue(1)));
     58    }
     59
     60    public override IDeepCloneable Clone(Cloner cloner) {
     61      return new StochasticPolynomialMultiMoveGenerator(this, cloner);
    5462    }
    5563
Note: See TracChangeset for help on using the changeset viewer.