Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/07/14 11:14:18 (11 years ago)
Author:
mkommend
Message:

#2119: Added interface for instrumented operators and adapted problem and encoding specific operators to provide instrumentation capabilities.

Location:
trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Crossovers/JSMCrossover.cs

    r9456 r10291  
    4040    public abstract JSMEncoding Cross(IRandom random, JSMEncoding parent1, JSMEncoding parent2);
    4141
    42     public override IOperation Apply() {
     42    public override IOperation InstrumentedApply() {
    4343      var parents = ParentsParameter.ActualValue;
    4444
     
    4646        Cross(RandomParameter.ActualValue, parents[0] as JSMEncoding, parents[1] as JSMEncoding);
    4747
    48       return base.Apply();
     48      return base.InstrumentedApply();
    4949    }
    5050  }
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Manipulators/JSMManipulator.cs

    r9456 r10291  
    3939    protected abstract void Manipulate(IRandom random, IScheduleEncoding individual);
    4040
    41     public override IOperation Apply() {
     41    public override IOperation InstrumentedApply() {
    4242      var solution = ScheduleEncodingParameter.ActualValue as JSMEncoding;
    4343      if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type JSMEncoding.");
    4444      Manipulate(RandomParameter.ActualValue, solution);
    45       return base.Apply();
     45      return base.InstrumentedApply();
    4646    }
    4747
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Crossovers/PWRCrossover.cs

    r9456 r10291  
    4040    public abstract PWREncoding Cross(IRandom random, PWREncoding parent1, PWREncoding parent2);
    4141
    42     public override IOperation Apply() {
     42    public override IOperation InstrumentedApply() {
    4343      var parents = ParentsParameter.ActualValue;
    4444
     
    4646        Cross(RandomParameter.ActualValue, parents[0] as PWREncoding, parents[1] as PWREncoding);
    4747
    48       return base.Apply();
     48      return base.InstrumentedApply();
    4949    }
    5050  }
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Manipulators/PWRManipulator.cs

    r9456 r10291  
    4040    protected abstract void Manipulate(IRandom random, PWREncoding individual);
    4141
    42     public override IOperation Apply() {
     42    public override IOperation InstrumentedApply() {
    4343      var solution = ScheduleEncodingParameter.ActualValue as PWREncoding;
    4444      if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type PWREncoding.");
    4545      Manipulate(RandomParameter.ActualValue, solution);
    46       return base.Apply();
     46      return base.InstrumentedApply();
    4747    }
    4848
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Crossovers/PRVCrossover.cs

    r9456 r10291  
    4040    public abstract PRVEncoding Cross(IRandom random, PRVEncoding parent1, PRVEncoding parent2);
    4141
    42     public override IOperation Apply() {
     42    public override IOperation InstrumentedApply() {
    4343      var parents = ParentsParameter.ActualValue;
    4444      ChildParameter.ActualValue =
    4545        Cross(RandomParameter.ActualValue, parents[0] as PRVEncoding, parents[1] as PRVEncoding);
    46       return base.Apply();
     46      return base.InstrumentedApply();
    4747    }
    4848  }
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Manipulators/PRVManipulator.cs

    r9456 r10291  
    3939    protected abstract void Manipulate(IRandom random, PRVEncoding individual);
    4040
    41     public override IOperation Apply() {
     41    public override IOperation InstrumentedApply() {
    4242      var solution = ScheduleEncodingParameter.ActualValue as PRVEncoding;
    4343      if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type PRVEncoding.");
    4444      Manipulate(RandomParameter.ActualValue, solution);
    45       return base.Apply();
     45      return base.InstrumentedApply();
    4646    }
    4747
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCreator.cs

    r9456 r10291  
    2929  [Item("ScheduleCreator", "Represents the generalized form of creators for Scheduling Problems.")]
    3030  [StorableClass]
    31   public abstract class ScheduleCreator : SingleSuccessorOperator, IScheduleCreator {
     31  public abstract class ScheduleCreator : InstrumentedOperator, IScheduleCreator {
    3232
    3333    public ILookupParameter<IScheduleEncoding> ScheduleEncodingParameter {
     
    4343    }
    4444
    45     public override IOperation Apply() {
     45    public override IOperation InstrumentedApply() {
    4646      ScheduleEncodingParameter.ActualValue = CreateSolution();
    47       return base.Apply();
     47      return base.InstrumentedApply();
    4848    }
    4949
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCrossover.cs

    r9456 r10291  
    3030  [Item("ScheduleCrossover", "A scheduling crossover operation.")]
    3131  [StorableClass]
    32   public abstract class ScheduleCrossover : SingleSuccessorOperator, IScheduleCrossover, IStochasticOperator {
     32  public abstract class ScheduleCrossover : InstrumentedOperator, IScheduleCrossover, IStochasticOperator {
    3333
    3434    public ILookupParameter<IScheduleEncoding> ChildParameter {
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Crossovers/DirectScheduleCrossover.cs

    r9456 r10291  
    4545    public abstract Schedule Cross(IRandom random, Schedule parent1, Schedule parent2);
    4646
    47     public override IOperation Apply() {
     47    public override IOperation InstrumentedApply() {
    4848      var parents = ParentsParameter.ActualValue;
    4949      ChildParameter.ActualValue =
    5050        Cross(RandomParameter.ActualValue, parents[0] as Schedule, parents[1] as Schedule);
    51       return base.Apply();
     51      return base.InstrumentedApply();
    5252    }
    5353  }
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Manipulators/DirectScheduleManipulator.cs

    r9456 r10291  
    4040    protected abstract void Manipulate(IRandom random, Schedule individual);
    4141
    42     public override IOperation Apply() {
     42    public override IOperation InstrumentedApply() {
    4343      var schedule = ScheduleEncodingParameter.ActualValue as Schedule;
    4444      if (schedule == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type Schedule.");
    4545      Manipulate(RandomParameter.ActualValue, schedule);
    46       return base.Apply();
     46      return base.InstrumentedApply();
    4747    }
    4848
  • trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleManipulator.cs

    r9456 r10291  
    3030  [Item("ScheduleManipulator", "A scheduling manipulation operation.")]
    3131  [StorableClass]
    32   public abstract class ScheduleManipulator : SingleSuccessorOperator, IScheduleManipulator, IStochasticOperator {
     32  public abstract class ScheduleManipulator : InstrumentedOperator, IScheduleManipulator, IStochasticOperator {
    3333
    3434    public ILookupParameter<IScheduleEncoding> ScheduleEncodingParameter {
Note: See TracChangeset for help on using the changeset viewer.