Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/11/12 22:57:09 (11 years ago)
Author:
abeham
Message:

#1329:

  • Moved decoders and evaluators from encoding to problem
  • Removed unnecessary state variables in operators
  • Introduced parameters in interfaces and added wiring code
  • Removed ConcreteScheduleManipulator as it does not perform any manipulation
  • Made ErrorPolicy and ForcingStrategy configurable and added views for them
  • Renamed the SchedulingEvaluationAlgorithm and also converted the AlgorithmOperator to a SingleSuccessorOperator
  • Fixed Plugin- and AssemblyFileVersion
  • Added missing license headers
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Manipulators/JSMSwapManipulator.cs

    r8603 r8887  
    2020#endregion
    2121
     22using System;
    2223using HeuristicLab.Common;
    2324using HeuristicLab.Core;
     
    2627
    2728namespace HeuristicLab.Encodings.ScheduleEncoding.JobSequenceMatrix {
    28 
    2929  [Item("JSMSwapManipulator", "Represents a manipulation operation swapping parts of the individual.")]
    3030  [StorableClass]
    3131  public class JSMSwapManipulator : JSMManipulator {
     32
    3233    [StorableConstructor]
    3334    protected JSMSwapManipulator(bool deserializing) : base(deserializing) { }
    34     protected JSMSwapManipulator(JSMSwapManipulator original, Cloner cloner)
    35       : base(original, cloner) {
    36     }
     35    protected JSMSwapManipulator(JSMSwapManipulator original, Cloner cloner) : base(original, cloner) { }
     36    public JSMSwapManipulator() : base() { }
     37
    3738    public override IDeepCloneable Clone(Cloner cloner) {
    3839      return new JSMSwapManipulator(this, cloner);
    3940    }
    40 
    41     public JSMSwapManipulator() : base() { }
    42 
    4341
    4442    public static void Apply(IRandom random, JSMEncoding individual) {
     
    5250    }
    5351
    54     protected override void Manipulate(IRandom random, JSMEncoding individual) {
    55       Apply(random, individual);
     52    protected override void Manipulate(IRandom random, IScheduleEncoding individual) {
     53      var solution = individual as JSMEncoding;
     54      if (solution == null) throw new InvalidOperationException("Encoding is not of type JSMEncoding");
     55      Apply(random, solution);
    5656    }
    5757  }
Note: See TracChangeset for help on using the changeset viewer.