Free cookie consent management tool by TermsFeed Policy Generator

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

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/ExhaustiveInversionMoveGenerator.cs

    r4068 r4722  
    2121
    2222using System;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Optimization;
     
    2930  [StorableClass]
    3031  public class ExhaustiveInversionMoveGenerator : InversionMoveGenerator, IExhaustiveMoveGenerator {
     32    [StorableConstructor]
     33    protected ExhaustiveInversionMoveGenerator(bool deserializing) : base(deserializing) { }
     34    protected ExhaustiveInversionMoveGenerator(ExhaustiveInversionMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     35    public ExhaustiveInversionMoveGenerator() : base() { }
     36
     37    public override IDeepCloneable Clone(Cloner cloner) {
     38      return new ExhaustiveInversionMoveGenerator(this, cloner);
     39    }
     40
    3141    public static InversionMove[] Apply(Permutation permutation) {
    3242      int length = permutation.Length;
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMove.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    2728  [StorableClass]
    2829  public class InversionMove : TwoIndexMove {
    29     public InversionMove()
    30       : base() {
    31     }
     30    [StorableConstructor]
     31    protected InversionMove(bool deserializing) : base(deserializing) { }
     32    protected InversionMove(InversionMove original, Cloner cloner) : base(original, cloner) { }
     33    public InversionMove() : base() { }
     34    public InversionMove(int index1, int index2) : base(index1, index2, null) { }
     35    public InversionMove(int index1, int index2, Permutation permutation) : base(index1, index2, permutation) { }
    3236
    33     public InversionMove(int index1, int index2)
    34       : base(index1, index2, null) {
    35     }
    36 
    37     public InversionMove(int index1, int index2, Permutation permutation)
    38       : base(index1, index2, permutation) {
     37    public override IDeepCloneable Clone(Cloner cloner) {
     38      return new InversionMove(this, cloner);
    3939    }
    4040  }
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveAbsoluteAttribute.cs

    r3376 r4722  
    3838
    3939    [StorableConstructor]
    40     private InversionMoveAbsoluteAttribute(bool deserializing)
    41       : base() {
     40    protected InversionMoveAbsoluteAttribute(bool deserializing) : base(deserializing) { }
     41    protected InversionMoveAbsoluteAttribute(InversionMoveAbsoluteAttribute original, Cloner cloner)
     42      : base(original, cloner) {
     43      this.Index1 = original.Index1;
     44      this.Number1 = original.Number1;
     45      this.Index2 = original.Index2;
     46      this.Number2 = original.Number2;
    4247    }
    43 
    44     public InversionMoveAbsoluteAttribute()
    45       : this(-1, -1, -1, -1, -1) { }
    46 
     48    public InversionMoveAbsoluteAttribute() : this(-1, -1, -1, -1, -1) { }
    4749    public InversionMoveAbsoluteAttribute(int index1, int number1, int index2, int number2, double moveQuality)
    4850      : base(moveQuality) {
     
    5456
    5557    public override IDeepCloneable Clone(Cloner cloner) {
    56       InversionMoveAbsoluteAttribute clone = (InversionMoveAbsoluteAttribute)base.Clone(cloner);
    57       clone.Index1 = Index1;
    58       clone.Number1 = Number1;
    59       clone.Index2 = Index2;
    60       clone.Number2 = Number2;
    61       return clone;
     58      return new InversionMoveAbsoluteAttribute(this, cloner);
    6259    }
    6360  }
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveGenerator.cs

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Operators;
     
    4344    }
    4445
     46    [StorableConstructor]
     47    protected InversionMoveGenerator(bool deserializing) : base(deserializing) { }
     48    protected InversionMoveGenerator(InversionMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    4549    public InversionMoveGenerator()
    4650      : base() {
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveHardTabuCriterion.cs

    r4068 r4722  
    2121
    2222using System;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Data;
     
    6566    }
    6667
     68    [StorableConstructor]
     69    protected InversionMoveHardTabuCriterion(bool deserializing) : base(deserializing) { }
     70    protected InversionMoveHardTabuCriterion(InversionMoveHardTabuCriterion original, Cloner cloner) : base(original, cloner) { }
    6771    public InversionMoveHardTabuCriterion()
    6872      : base() {
     
    7478      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, else if it is a minimization problem."));
    7579      Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The quality of the current move."));
     80    }
     81
     82    public override IDeepCloneable Clone(Cloner cloner) {
     83      return new InversionMoveHardTabuCriterion(this, cloner);
    7684    }
    7785
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveMaker.cs

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

    r3376 r4722  
    3838
    3939    [StorableConstructor]
    40     private InversionMoveRelativeAttribute(bool deserializing)
    41       : base() {
     40    protected InversionMoveRelativeAttribute(bool deserializing) : base(deserializing) { }
     41    protected InversionMoveRelativeAttribute(InversionMoveRelativeAttribute original, Cloner cloner)
     42      : base(original, cloner) {
     43      this.Edge1Source = original.Edge1Source;
     44      this.Edge1Target = original.Edge1Target;
     45      this.Edge2Source = original.Edge2Source;
     46      this.Edge2Target = original.Edge2Target;
    4247    }
    43 
    44     public InversionMoveRelativeAttribute()
    45       : this(-1, -1, -1, -1, -1) { }
    46 
     48    public InversionMoveRelativeAttribute() : this(-1, -1, -1, -1, -1) { }
    4749    public InversionMoveRelativeAttribute(int edge1Source, int edge1Target, int edge2Source, int edge2Target, double moveQuality)
    4850      : base(moveQuality) {
     
    5456
    5557    public override IDeepCloneable Clone(Cloner cloner) {
    56       InversionMoveRelativeAttribute clone = (InversionMoveRelativeAttribute)base.Clone(cloner);
    57       clone.Edge1Source = Edge1Source;
    58       clone.Edge1Target = Edge1Target;
    59       clone.Edge2Source = Edge2Source;
    60       clone.Edge2Target = Edge2Target;
    61       return clone;
     58      return new InversionMoveRelativeAttribute(this, cloner);
    6259    }
    6360  }
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveSoftTabuCriterion.cs

    r4068 r4722  
    2121
    2222using System;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Data;
     
    6566    }
    6667
     68    [StorableConstructor]
     69    protected InversionMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { }
     70    protected InversionMoveSoftTabuCriterion(InversionMoveSoftTabuCriterion original, Cloner cloner) : base(original, cloner) { }
    6771    public InversionMoveSoftTabuCriterion()
    6872      : base() {
     
    7478      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, else if it is a minimization problem."));
    7579      Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The quality of the current move."));
     80    }
     81
     82    public override IDeepCloneable Clone(Cloner cloner) {
     83      return new InversionMoveSoftTabuCriterion(this, cloner);
    7684    }
    7785
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveTabuMaker.cs

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

    r4068 r4722  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Data;
     
    4243    }
    4344
     45    [StorableConstructor]
     46    protected StochasticInversionMultiMoveGenerator(bool deserializing) : base(deserializing) { }
     47    protected StochasticInversionMultiMoveGenerator(StochasticInversionMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    4448    public StochasticInversionMultiMoveGenerator()
    4549      : base() {
    4650      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator."));
    4751      Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "The number of moves to generate."));
     52    }
     53
     54    public override IDeepCloneable Clone(Cloner cloner) {
     55      return new StochasticInversionMultiMoveGenerator(this, cloner);
    4856    }
    4957
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionSingleMoveGenerator.cs

    r4068 r4722  
    2121
    2222using System;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Optimization;
     
    3435    }
    3536
     37    [StorableConstructor]
     38    protected StochasticInversionSingleMoveGenerator(bool deserializing) : base(deserializing) { }
     39    protected StochasticInversionSingleMoveGenerator(StochasticInversionSingleMoveGenerator original, Cloner cloner) : base(original, cloner) { }
    3640    public StochasticInversionSingleMoveGenerator()
    3741      : base() {
    3842      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator."));
     43    }
     44
     45    public override IDeepCloneable Clone(Cloner cloner) {
     46      return new StochasticInversionSingleMoveGenerator(this, cloner);
    3947    }
    4048
Note: See TracChangeset for help on using the changeset viewer.