Index: /trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/EmptySolutionCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/EmptySolutionCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/EmptySolutionCreator.cs (revision 10291)
@@ -32,5 +32,5 @@
[StorableClass]
[NonDiscoverableType]
- public sealed class EmptySolutionCreator : Operator, ISolutionCreator {
+ public sealed class EmptySolutionCreator : SingleSuccessorOperator, ISolutionCreator {
private string exceptionMessage;
Index: /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj (revision 10290)
+++ /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj (revision 10291)
@@ -150,4 +150,5 @@
+
Index: /trunk/sources/HeuristicLab.Core/3.3/Interfaces/IInstrumentedOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Interfaces/IInstrumentedOperator.cs (revision 10291)
+++ /trunk/sources/HeuristicLab.Core/3.3/Interfaces/IInstrumentedOperator.cs (revision 10291)
@@ -0,0 +1,32 @@
+#region License Information
+
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+
+#endregion
+
+using System.Collections;
+using System.Collections.Generic;
+
+namespace HeuristicLab.Core {
+ public interface IInstrumentedOperator : IOperator {
+ IEnumerable BeforeExecutionOperators { get; }
+ IEnumerable AfterExecutionOperators { get; }
+ }
+}
Index: /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCreator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("BinaryVectorCreator", "A base class for operators creating bool-valued vectors.")]
[StorableClass]
- public abstract class BinaryVectorCreator : SingleSuccessorOperator, IBinaryVectorCreator, IStochasticOperator {
+ public abstract class BinaryVectorCreator : InstrumentedOperator, IBinaryVectorCreator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -58,7 +58,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
BinaryVectorParameter.ActualValue = Create(RandomParameter.ActualValue, LengthParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCrossover.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("BinaryVectorCrossover", "A base class for operators that perform a crossover of bool-valued vectors.")]
[StorableClass]
- public abstract class BinaryVectorCrossover : SingleSuccessorOperator, IBinaryVectorCrossover, IStochasticOperator {
+ public abstract class BinaryVectorCrossover : InstrumentedOperator, IBinaryVectorCrossover, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -59,7 +59,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
ChildParameter.ActualValue = Cross(RandomParameter.ActualValue, ParentsParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorManipulator.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("BinaryVectorManipulator", "A base class for operators that manipulate bool-valued vectors.")]
[StorableClass]
- public abstract class BinaryVectorManipulator : SingleSuccessorOperator, IBinaryVectorManipulator, IStochasticOperator {
+ public abstract class BinaryVectorManipulator : InstrumentedOperator, IBinaryVectorManipulator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -53,7 +53,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
Manipulate(RandomParameter.ActualValue, BinaryVectorParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCreator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("IntegerVectorCreator", "A base class for operators creating int-valued vectors.")]
[StorableClass]
- public abstract class IntegerVectorCreator : SingleSuccessorOperator, IIntegerVectorCreator, IStochasticOperator {
+ public abstract class IntegerVectorCreator : InstrumentedOperator, IIntegerVectorCreator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -79,7 +79,7 @@
#endregion
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
IntegerVectorParameter.ActualValue = Create(RandomParameter.ActualValue, LengthParameter.ActualValue, BoundsParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCrossover.cs (revision 10291)
@@ -58,7 +58,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
ChildParameter.ActualValue = Cross(RandomParameter.ActualValue, ParentsParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorManipulator.cs (revision 10291)
@@ -52,7 +52,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
Manipulate(RandomParameter.ActualValue, IntegerVectorParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorOperator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorOperator.cs (revision 10291)
@@ -29,5 +29,5 @@
[Item("IntegerVectorOperator", "Base class for integer vectoro operators.")]
[StorableClass]
- public abstract class IntegerVectorOperator : SingleSuccessorOperator, IIntegerVectorOperator {
+ public abstract class IntegerVectorOperator : InstrumentedOperator, IIntegerVectorOperator {
[StorableConstructor]
Index: /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("RandomPermutationCreator", "An operator which creates a new random permutation of integer values.")]
[StorableClass]
- public sealed class RandomPermutationCreator : SingleSuccessorOperator, IPermutationCreator, IStochasticOperator {
+ public sealed class RandomPermutationCreator : InstrumentedOperator, IPermutationCreator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -72,7 +72,7 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
PermutationParameter.ActualValue = new Permutation(PermutationType, LengthParameter.ActualValue.Value, RandomParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("PermutationCrossover", "A base class for permutation crossover operators.")]
[StorableClass]
- public abstract class PermutationCrossover : SingleSuccessorOperator, IPermutationCrossover, IStochasticOperator {
+ public abstract class PermutationCrossover : InstrumentedOperator, IPermutationCrossover, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -60,7 +60,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
ChildParameter.ActualValue = Cross(RandomParameter.ActualValue, ParentsParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("PermutationManipulator", "A base class for permutation manipulation operators.")]
[StorableClass]
- public abstract class PermutationManipulator : SingleSuccessorOperator, IPermutationManipulator, IStochasticOperator {
+ public abstract class PermutationManipulator : InstrumentedOperator, IPermutationManipulator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -54,7 +54,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
Manipulate(RandomParameter.ActualValue, PermutationParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCreator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("RealVectorCreator", "A base class for operators creating real-valued vectors.")]
[StorableClass]
- public abstract class RealVectorCreator : SingleSuccessorOperator, IRealVectorCreator, IStochasticOperator {
+ public abstract class RealVectorCreator : InstrumentedOperator, IRealVectorCreator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -63,7 +63,7 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
RealVectorParameter.ActualValue = Create(RandomParameter.ActualValue, LengthParameter.ActualValue, BoundsParameter.ActualValue);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCrossover.cs (revision 10291)
@@ -35,5 +35,5 @@
[Item("RealVectorCrossover", "A base class for operators that perform a crossover of real-valued vectors.")]
[StorableClass]
- public abstract class RealVectorCrossover : SingleSuccessorOperator, IRealVectorCrossover, IStochasticOperator {
+ public abstract class RealVectorCrossover : InstrumentedOperator, IRealVectorCrossover, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -96,9 +96,9 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
RealVector result = Cross(RandomParameter.ActualValue, ParentsParameter.ActualValue);
ChildParameter.ActualValue = result;
- IOperation successor = base.Apply();
+ IOperation successor = base.InstrumentedApply();
if (BoundsChecker != null) {
IOperation checkerOperation = ExecutionContext.CreateChildOperation(BoundsChecker);
Index: /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorManipulator.cs (revision 10291)
@@ -35,5 +35,5 @@
[Item("RealVectorManipulator", "A base class for operators that manipulate real-valued vectors.")]
[StorableClass]
- public abstract class RealVectorManipulator : SingleSuccessorOperator, IRealVectorManipulator, IStochasticOperator {
+ public abstract class RealVectorManipulator : InstrumentedOperator, IRealVectorManipulator, IStochasticOperator {
public override bool CanChangeName {
get { return false; }
@@ -90,9 +90,9 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
RealVector vector = RealVectorParameter.ActualValue;
Manipulate(RandomParameter.ActualValue, vector);
- IOperation successor = base.Apply();
+ IOperation successor = base.InstrumentedApply();
if (BoundsChecker != null) {
IOperation checkerOperation = ExecutionContext.CreateChildOperation(BoundsChecker);
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Crossovers/JSMCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Crossovers/JSMCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Crossovers/JSMCrossover.cs (revision 10291)
@@ -40,5 +40,5 @@
public abstract JSMEncoding Cross(IRandom random, JSMEncoding parent1, JSMEncoding parent2);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var parents = ParentsParameter.ActualValue;
@@ -46,5 +46,5 @@
Cross(RandomParameter.ActualValue, parents[0] as JSMEncoding, parents[1] as JSMEncoding);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Manipulators/JSMManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Manipulators/JSMManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/JobSequenceMatrix/Manipulators/JSMManipulator.cs (revision 10291)
@@ -39,9 +39,9 @@
protected abstract void Manipulate(IRandom random, IScheduleEncoding individual);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = ScheduleEncodingParameter.ActualValue as JSMEncoding;
if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type JSMEncoding.");
Manipulate(RandomParameter.ActualValue, solution);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Crossovers/PWRCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Crossovers/PWRCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Crossovers/PWRCrossover.cs (revision 10291)
@@ -40,5 +40,5 @@
public abstract PWREncoding Cross(IRandom random, PWREncoding parent1, PWREncoding parent2);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var parents = ParentsParameter.ActualValue;
@@ -46,5 +46,5 @@
Cross(RandomParameter.ActualValue, parents[0] as PWREncoding, parents[1] as PWREncoding);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Manipulators/PWRManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Manipulators/PWRManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PermutationWithRepetition/Manipulators/PWRManipulator.cs (revision 10291)
@@ -40,9 +40,9 @@
protected abstract void Manipulate(IRandom random, PWREncoding individual);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = ScheduleEncodingParameter.ActualValue as PWREncoding;
if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type PWREncoding.");
Manipulate(RandomParameter.ActualValue, solution);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Crossovers/PRVCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Crossovers/PRVCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Crossovers/PRVCrossover.cs (revision 10291)
@@ -40,9 +40,9 @@
public abstract PRVEncoding Cross(IRandom random, PRVEncoding parent1, PRVEncoding parent2);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var parents = ParentsParameter.ActualValue;
ChildParameter.ActualValue =
Cross(RandomParameter.ActualValue, parents[0] as PRVEncoding, parents[1] as PRVEncoding);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Manipulators/PRVManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Manipulators/PRVManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/PriorityRulesVector/Manipulators/PRVManipulator.cs (revision 10291)
@@ -39,9 +39,9 @@
protected abstract void Manipulate(IRandom random, PRVEncoding individual);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = ScheduleEncodingParameter.ActualValue as PRVEncoding;
if (solution == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type PRVEncoding.");
Manipulate(RandomParameter.ActualValue, solution);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCreator.cs (revision 10291)
@@ -29,5 +29,5 @@
[Item("ScheduleCreator", "Represents the generalized form of creators for Scheduling Problems.")]
[StorableClass]
- public abstract class ScheduleCreator : SingleSuccessorOperator, IScheduleCreator {
+ public abstract class ScheduleCreator : InstrumentedOperator, IScheduleCreator {
public ILookupParameter ScheduleEncodingParameter {
@@ -43,7 +43,7 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
ScheduleEncodingParameter.ActualValue = CreateSolution();
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleCrossover.cs (revision 10291)
@@ -30,5 +30,5 @@
[Item("ScheduleCrossover", "A scheduling crossover operation.")]
[StorableClass]
- public abstract class ScheduleCrossover : SingleSuccessorOperator, IScheduleCrossover, IStochasticOperator {
+ public abstract class ScheduleCrossover : InstrumentedOperator, IScheduleCrossover, IStochasticOperator {
public ILookupParameter ChildParameter {
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Crossovers/DirectScheduleCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Crossovers/DirectScheduleCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Crossovers/DirectScheduleCrossover.cs (revision 10291)
@@ -45,9 +45,9 @@
public abstract Schedule Cross(IRandom random, Schedule parent1, Schedule parent2);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var parents = ParentsParameter.ActualValue;
ChildParameter.ActualValue =
Cross(RandomParameter.ActualValue, parents[0] as Schedule, parents[1] as Schedule);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Manipulators/DirectScheduleManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Manipulators/DirectScheduleManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Manipulators/DirectScheduleManipulator.cs (revision 10291)
@@ -40,9 +40,9 @@
protected abstract void Manipulate(IRandom random, Schedule individual);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var schedule = ScheduleEncodingParameter.ActualValue as Schedule;
if (schedule == null) throw new InvalidOperationException("ScheduleEncoding was not found or is not of type Schedule.");
Manipulate(RandomParameter.ActualValue, schedule);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleManipulator.cs (revision 10291)
@@ -30,5 +30,5 @@
[Item("ScheduleManipulator", "A scheduling manipulation operation.")]
[StorableClass]
- public abstract class ScheduleManipulator : SingleSuccessorOperator, IScheduleManipulator, IStochasticOperator {
+ public abstract class ScheduleManipulator : InstrumentedOperator, IScheduleManipulator, IStochasticOperator {
public ILookupParameter ScheduleEncodingParameter {
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs (revision 10291)
@@ -94,5 +94,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) {
SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true;
@@ -104,5 +104,5 @@
(ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone()));
}
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/GrowTreeCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/GrowTreeCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/GrowTreeCreator.cs (revision 10291)
@@ -94,5 +94,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) {
SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true;
@@ -104,5 +104,5 @@
(ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone()));
}
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/ProbabilisticTreeCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/ProbabilisticTreeCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/ProbabilisticTreeCreator.cs (revision 10291)
@@ -87,5 +87,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) {
SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true;
@@ -96,5 +96,5 @@
globalScope.Variables.Add(new Variable(ClonedSymbolicExpressionTreeGrammarParameterName, (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone()));
}
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/RampedHalfAndHalfTreeCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/RampedHalfAndHalfTreeCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/RampedHalfAndHalfTreeCreator.cs (revision 10291)
@@ -95,5 +95,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) {
SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true;
@@ -105,5 +105,5 @@
(ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone()));
}
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/SymbolicExpressionTreeCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/SymbolicExpressionTreeCreator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/SymbolicExpressionTreeCreator.cs (revision 10291)
@@ -54,7 +54,7 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
SymbolicExpressionTree = Create(Random);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SymbolicExpressionTreeCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SymbolicExpressionTreeCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SymbolicExpressionTreeCrossover.cs (revision 10291)
@@ -63,5 +63,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
if (Parents.Length != 2)
throw new ArgumentException("Number of parents must be exactly two for symbolic expression tree crossover operators.");
@@ -70,5 +70,5 @@
Child = result;
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Manipulators/SymbolicExpressionTreeManipulator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Manipulators/SymbolicExpressionTreeManipulator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Manipulators/SymbolicExpressionTreeManipulator.cs (revision 10291)
@@ -22,5 +22,4 @@
using HeuristicLab.Common;
using HeuristicLab.Core;
-using HeuristicLab.Data;
using HeuristicLab.Parameters;
using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -55,9 +54,9 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
ISymbolicExpressionTree tree = SymbolicExpressionTreeParameter.ActualValue;
Manipulate(RandomParameter.ActualValue, tree);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeOperator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeOperator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("SymbolicExpressionTreeOperator", "A base class for operators for symbolic expression trees.")]
[StorableClass]
- public abstract class SymbolicExpressionTreeOperator : SingleSuccessorOperator, IStochasticOperator, ISymbolicExpressionTreeOperator {
+ public abstract class SymbolicExpressionTreeOperator : InstrumentedOperator, IStochasticOperator, ISymbolicExpressionTreeOperator {
private const string RandomParameterName = "Random";
Index: /trunk/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs (revision 10291)
@@ -20,4 +20,5 @@
#endregion
+using System.Collections.Generic;
using System.Linq;
using HeuristicLab.Common;
@@ -29,5 +30,5 @@
[Item("InstrumentedOperator", "A operator that can execute pre- and post actions.")]
[StorableClass]
- public abstract class InstrumentedOperator : SingleSuccessorOperator {
+ public abstract class InstrumentedOperator : SingleSuccessorOperator, IInstrumentedOperator {
private const string BeforeExecutionOperatorsParameterName = "BeforeExecutionOperators";
private const string AfterExecutionOperatorsParameterName = "AfterExecutionOperators";
@@ -40,7 +41,10 @@
}
+
+ IEnumerable IInstrumentedOperator.BeforeExecutionOperators { get { return BeforeExecutionOperators; } }
public OperatorList BeforeExecutionOperators {
get { return BeforeExecutionOperatorsParameter.Value; }
}
+ IEnumerable IInstrumentedOperator.AfterExecutionOperators { get { return AfterExecutionOperators; } }
public OperatorList AfterExecutionOperators {
get { return AfterExecutionOperatorsParameter.Value; }
Index: /trunk/sources/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs (revision 10291)
@@ -29,5 +29,5 @@
[Item("ParentCopyCrossover", "This operator creates an offspring by creating a clone of a randomly chosen parent. It can be used in situations where no crossover should occur after selection.")]
[StorableClass]
- public class ParentCopyCrossover : SingleSuccessorOperator, ICrossover, IStochasticOperator {
+ public class ParentCopyCrossover : InstrumentedOperator, ICrossover, IStochasticOperator {
public ILookupParameter RandomParameter {
get { return (ILookupParameter)Parameters["Random"]; }
@@ -43,5 +43,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IScope scope = ExecutionContext.Scope;
int index = RandomParameter.ActualValue.Next(scope.SubScopes.Count);
@@ -51,5 +51,5 @@
scope.Variables.Add((IVariable)var.Clone());
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs (revision 10291)
@@ -235,4 +235,7 @@
private sealed class EmptyUserDefinedProblemEvaluator : ParameterizedNamedItem, ISingleObjectiveEvaluator {
+ public IEnumerable BeforeExecutionOperators { get { throw new NotSupportedException(); } }
+ public IEnumerable AfterExecutionOperators { get { throw new NotSupportedException(); } }
+
[StorableConstructor]
private EmptyUserDefinedProblemEvaluator(bool deserializing) : base(deserializing) { }
Index: /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/Evaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/Evaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/Evaluator.cs (revision 10291)
@@ -32,5 +32,5 @@
[Item("ArtificialAntEvaluator", "Evaluates an artificial ant solution.")]
[StorableClass]
- public class Evaluator : SingleSuccessorOperator, ISingleObjectiveEvaluator {
+ public class Evaluator : InstrumentedOperator, ISingleObjectiveEvaluator {
public ILookupParameter QualityParameter {
@@ -60,5 +60,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
SymbolicExpressionTree expression = SymbolicExpressionTreeParameter.ActualValue;
BoolMatrix world = WorldParameter.ActualValue;
@@ -72,5 +72,5 @@
QualityParameter.ActualValue = new DoubleValue(interpreter.FoodEaten);
- return null;
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override IEnumerable Maximization { get { return new bool[2] { false, false }; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows);
QualitiesParameter.ActualValue = new DoubleArray(qualities);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override IEnumerable Maximization { get { return new bool[2] { true, false }; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualitiesParameter.ActualValue = new DoubleArray(qualities);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveBoundedMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveBoundedMeanSquaredErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveBoundedMeanSquaredErrorEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override bool Maximization { get { return false; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10291)
@@ -45,10 +45,10 @@
public override bool Maximization { get { return false; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePearsonRSquaredEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePearsonRSquaredEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePearsonRSquaredEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override bool Maximization { get { return true; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePenaltyScoreEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePenaltyScoreEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePenaltyScoreEvaluator.cs (revision 10291)
@@ -64,8 +64,8 @@
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
double quality = Evaluate(ExecutionContext, SymbolicExpressionTreeParameter.ActualValue, ProblemDataParameter.ActualValue, GenerateRowsToEvaluate());
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override IEnumerable Maximization { get { return new bool[2] { false, false }; } }
- public override Core.IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualitiesParameter.ActualValue = new DoubleArray(qualities);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs (revision 10291)
@@ -44,10 +44,10 @@
public override IEnumerable Maximization { get { return new bool[2] { true, false }; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
IEnumerable rows = GenerateRowsToEvaluate();
var solution = SymbolicExpressionTreeParameter.ActualValue;
double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
QualitiesParameter.ActualValue = new DoubleArray(qualities);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionConstantOptimizationEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionConstantOptimizationEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionConstantOptimizationEvaluator.cs (revision 10291)
@@ -102,5 +102,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
double quality;
@@ -121,8 +121,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- if (Successor != null)
- return ExecutionContext.CreateOperation(Successor);
- else
- return null;
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMaxAbsoluteErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMaxAbsoluteErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMaxAbsoluteErrorEvaluator.cs (revision 10291)
@@ -42,5 +42,5 @@
public SymbolicRegressionSingleObjectiveMaxAbsoluteErrorEvaluator() : base() { }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -49,5 +49,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator.cs (revision 10291)
@@ -42,5 +42,5 @@
public SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator() : base() { }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -49,5 +49,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10291)
@@ -42,5 +42,5 @@
public SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator() : base() { }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -49,5 +49,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs (revision 10291)
@@ -44,5 +44,5 @@
public override bool Maximization { get { return true; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -51,5 +51,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveMeanSquaredErrorEvaluator.cs (revision 10291)
@@ -44,5 +44,5 @@
public override bool Maximization { get { return false; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -56,5 +56,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisEvaluator.cs (revision 10291)
@@ -35,5 +35,5 @@
namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
[StorableClass]
- public abstract class SymbolicDataAnalysisEvaluator : SingleSuccessorOperator,
+ public abstract class SymbolicDataAnalysisEvaluator : InstrumentedOperator,
ISymbolicDataAnalysisEvaluator, ISymbolicDataAnalysisInterpreterOperator, ISymbolicDataAnalysisBoundedOperator, IStochasticOperator
where T : class, IDataAnalysisProblemData {
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/ProfitEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/ProfitEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/ProfitEvaluator.cs (revision 10291)
@@ -47,5 +47,5 @@
public override bool Maximization { get { return true; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -54,5 +54,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/SharpeRatioEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/SharpeRatioEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/SharpeRatioEvaluator.cs (revision 10291)
@@ -47,5 +47,5 @@
public override bool Maximization { get { return true; } }
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var solution = SymbolicExpressionTreeParameter.ActualValue;
IEnumerable rows = GenerateRowsToEvaluate();
@@ -54,5 +54,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Evaluators/KnapsackEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Evaluators/KnapsackEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Evaluators/KnapsackEvaluator.cs (revision 10291)
@@ -35,5 +35,5 @@
[Item("KnapsackEvaluator", "Evaluates solutions for the Knapsack problem.")]
[StorableClass]
- public class KnapsackEvaluator : SingleSuccessorOperator, IKnapsackEvaluator {
+ public class KnapsackEvaluator : InstrumentedOperator, IKnapsackEvaluator {
public ILookupParameter QualityParameter {
get { return (ILookupParameter)Parameters["Quality"]; }
@@ -129,5 +129,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
BinaryVector v = BinaryVectorParameter.ActualValue;
@@ -143,5 +143,5 @@
AppliedPenaltyParameter.ActualValue = evaluation.AppliedPenalty;
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.LawnMower/3.3/Evaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.LawnMower/3.3/Evaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.LawnMower/3.3/Evaluator.cs (revision 10291)
@@ -32,5 +32,5 @@
[StorableClass]
[Item("Lawn Mower Evaluator", "Evaluator for the lawn mower demo GP problem.")]
- public class Evaluator : SingleSuccessorOperator, ISingleObjectiveEvaluator {
+ public class Evaluator : InstrumentedOperator, ISingleObjectiveEvaluator {
private const string QualityParameterName = "Quality";
@@ -72,5 +72,5 @@
return new Evaluator(this, cloner);
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
int length = LawnLengthParameter.ActualValue.Value;
int width = LawnWidthParameter.ActualValue.Value;
@@ -88,5 +88,5 @@
QualityParameter.ActualValue = new DoubleValue(numberOfMowedCells);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPEvaluator.cs (revision 10291)
@@ -32,5 +32,5 @@
[Item("LAPEvaluator", "Evaluates a solution to the linear assignment problem.")]
[StorableClass]
- public class LAPEvaluator : SingleSuccessorOperator, ILAPEvaluator {
+ public class LAPEvaluator : InstrumentedOperator, ILAPEvaluator {
public ILookupParameter CostsParameter {
@@ -47,5 +47,6 @@
protected LAPEvaluator(bool deserializing) : base(deserializing) { }
protected LAPEvaluator(LAPEvaluator original, Cloner cloner) : base(original, cloner) { }
- public LAPEvaluator() : base() {
+ public LAPEvaluator()
+ : base() {
Parameters.Add(new LookupParameter("Costs", LinearAssignmentProblem.CostsDescription));
Parameters.Add(new LookupParameter("Assignment", "The assignment solution to evaluate."));
@@ -57,5 +58,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var costs = CostsParameter.ActualValue;
var assignment = AssignmentParameter.ActualValue;
@@ -69,5 +70,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Evaluators/OneMaxEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Evaluators/OneMaxEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Evaluators/OneMaxEvaluator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("OneMaxEvaluator", "Evaluates solutions for the OneMax problem.")]
[StorableClass]
- public class OneMaxEvaluator : SingleSuccessorOperator, IOneMaxEvaluator {
+ public class OneMaxEvaluator : InstrumentedOperator, IOneMaxEvaluator {
public ILookupParameter QualityParameter {
get { return (ILookupParameter)Parameters["Quality"]; }
@@ -56,5 +56,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
BinaryVector v = BinaryVectorParameter.ActualValue;
@@ -67,5 +67,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/Evaluators/QAPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/Evaluators/QAPEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/Evaluators/QAPEvaluator.cs (revision 10291)
@@ -30,5 +30,5 @@
namespace HeuristicLab.Problems.QuadraticAssignment {
[StorableClass]
- public class QAPEvaluator : SingleSuccessorOperator, IQAPEvaluator {
+ public class QAPEvaluator : InstrumentedOperator, IQAPEvaluator {
public ILookupParameter PermutationParameter {
@@ -78,5 +78,5 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
Permutation assignment = PermutationParameter.ActualValue;
DoubleMatrix weights = WeightsParameter.ActualValue;
@@ -86,5 +86,5 @@
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/ScheduleEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/ScheduleEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/ScheduleEvaluator.cs (revision 10291)
@@ -31,5 +31,5 @@
[Item("Schedule Evaluator", "Represents a base class for schedule evaluators.")]
[StorableClass]
- public abstract class ScheduleEvaluator : SingleSuccessorOperator, IScheduleEvaluator {
+ public abstract class ScheduleEvaluator : InstrumentedOperator, IScheduleEvaluator {
public ILookupParameter QualityParameter {
@@ -51,7 +51,7 @@
protected abstract double Evaluate(Schedule schedule);
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
QualityParameter.ActualValue = new DoubleValue(Evaluate(ScheduleParameter.ActualValue));
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs (revision 10291)
@@ -32,8 +32,8 @@
[Item("SchedulingEvaluator", "First applies the decoder operator to obtain a schedule from an encoding and then applies the evaluator to obtain a quality.")]
[StorableClass]
- public class SchedulingEvaluator : SingleSuccessorOperator, ISchedulingEvaluator {
+ public class SchedulingEvaluator : InstrumentedOperator, ISchedulingEvaluator {
public IValueLookupParameter ScheduleDecoderParameter {
- get { return (IValueLookupParameter) Parameters["ScheduleDecoder"]; }
+ get { return (IValueLookupParameter)Parameters["ScheduleDecoder"]; }
}
ILookupParameter ISchedulingEvaluator.ScheduleDecoderParameter {
@@ -41,5 +41,5 @@
}
public IValueLookupParameter ScheduleEvaluatorParameter {
- get { return (IValueLookupParameter) Parameters["ScheduleEvaluator"]; }
+ get { return (IValueLookupParameter)Parameters["ScheduleEvaluator"]; }
}
ILookupParameter ISchedulingEvaluator.ScheduleEvaluatorParameter {
@@ -65,10 +65,10 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
var decoder = ScheduleDecoderParameter.ActualValue;
var evaluator = ScheduleEvaluatorParameter.ActualValue;
if (evaluator == null) throw new InvalidOperationException("A ScheduleEvaluator could not be found.");
- var operations = new OperationCollection(base.Apply());
+ var operations = new OperationCollection(base.InstrumentedApply());
operations.Insert(0, ExecutionContext.CreateChildOperation(evaluator));
if (decoder != null) // decode before evaluating
Index: /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs (revision 10291)
@@ -34,5 +34,5 @@
[Item("Evaluator", "Base calls for single objective test function evaluators.")]
[StorableClass]
- public abstract class SingleObjectiveTestFunctionProblemEvaluator : SingleSuccessorOperator, ISingleObjectiveTestFunctionProblemEvaluator {
+ public abstract class SingleObjectiveTestFunctionProblemEvaluator : InstrumentedOperator, ISingleObjectiveTestFunctionProblemEvaluator {
///
/// The name of the function
@@ -86,9 +86,9 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
RealVector point = PointParameter.ActualValue;
double quality = Evaluate(point);
QualityParameter.ActualValue = new DoubleValue(quality);
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs (revision 10291)
@@ -84,5 +84,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
if (UseDistanceMatrixParameter.ActualValue.Value) {
Permutation p = PermutationParameter.ActualValue;
@@ -120,5 +120,5 @@
QualityParameter.ActualValue = new DoubleValue(length);
}
- return base.Apply();
+ return base.InstrumentedApply();
}
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPDistanceMatrixEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPDistanceMatrixEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPDistanceMatrixEvaluator.cs (revision 10291)
@@ -69,10 +69,10 @@
}
- public override IOperation Apply() {
+ public override IOperation InstrumentedApply() {
Permutation p = PermutationParameter.ActualValue;
DistanceMatrix dm = DistanceMatrixParameter.ActualValue;
QualityParameter.ActualValue = new DoubleValue(Apply(dm, p));
- return base.Apply();
+ return base.InstrumentedApply();
}
}
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPEvaluator.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPEvaluator.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("TSPEvaluator", "A base class for operators which evaluate TSP solutions.")]
[StorableClass]
- public abstract class TSPEvaluator : SingleSuccessorOperator, ITSPEvaluator {
+ public abstract class TSPEvaluator : InstrumentedOperator, ITSPEvaluator {
public override bool CanChangeName {
get { return false; }
Index: /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs (revision 10290)
+++ /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs (revision 10291)
@@ -33,5 +33,5 @@
[Item("Selector", "A base class for selection operators.")]
[StorableClass]
- public abstract class Selector : SingleSuccessorOperator {
+ public abstract class Selector : InstrumentedOperator {
public override bool CanChangeName {
get { return false; }
@@ -54,5 +54,5 @@
}
- public sealed override IOperation Apply() {
+ public sealed override IOperation InstrumentedApply() {
List scopes = new List(CurrentScope.SubScopes);
IScope[] selected = Select(scopes);
@@ -66,5 +66,5 @@
CurrentScope.SubScopes.Add(selectedScope);
- return base.Apply();
+ return base.InstrumentedApply();
}