Changeset 10295
- Timestamp:
- 01/07/14 13:13:41 (11 years ago)
- Location:
- trunk/sources
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Analysis/3.3/MultiAnalyzer.cs
r9456 r10295 69 69 } 70 70 71 public override IOperation Apply() {71 public override IOperation InstrumentedApply() { 72 72 IntValue interval = UpdateIntervalParameter.ActualValue; 73 73 if (interval == null) interval = new IntValue(1); … … 84 84 foreach (IndexedItem<IAnalyzer> item in Operators.CheckedItems) 85 85 next.Add(ExecutionContext.CreateOperation(item.Value)); 86 next.Add(base. Apply());86 next.Add(base.InstrumentedApply()); 87 87 return next; 88 88 } else { 89 return base. Apply();89 return base.InstrumentedApply(); 90 90 } 91 91 } -
trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/Crossovers/MultiBinaryVectorCrossover.cs
r9456 r10295 90 90 } 91 91 92 public override IOperation Apply() {92 public override IOperation InstrumentedApply() { 93 93 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one binary vector crossover to choose from."); 94 return base. Apply();94 return base.InstrumentedApply(); 95 95 } 96 96 } -
trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/Crossovers/MultiIntegerVectorCrossover.cs
r9456 r10295 99 99 } 100 100 101 public override IOperation Apply() {101 public override IOperation InstrumentedApply() { 102 102 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one integer vector crossover to choose from."); 103 return base. Apply();103 return base.InstrumentedApply(); 104 104 } 105 105 } -
trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MultiPermutationCrossover.cs
r9456 r10295 90 90 } 91 91 92 public override IOperation Apply() {92 public override IOperation InstrumentedApply() { 93 93 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one permutation crossover to choose from."); 94 return base. Apply();94 return base.InstrumentedApply(); 95 95 } 96 96 } -
trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/MultiPermutationManipulator.cs
r9456 r10295 82 82 } 83 83 84 public override IOperation Apply() {84 public override IOperation InstrumentedApply() { 85 85 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one permutation manipulator to choose from."); 86 return base. Apply();86 return base.InstrumentedApply(); 87 87 } 88 88 } -
trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/MultiRealVectorCrossover.cs
r9456 r10295 97 97 } 98 98 99 public override IOperation Apply() {99 public override IOperation InstrumentedApply() { 100 100 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one real vector crossover to choose from."); 101 return base. Apply();101 return base.InstrumentedApply(); 102 102 } 103 103 } -
trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Manipulators/MultiRealVectorManipulator.cs
r9456 r10295 88 88 } 89 89 90 public override IOperation Apply() {90 public override IOperation InstrumentedApply() { 91 91 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one real vector manipulator to choose from."); 92 return base. Apply();92 return base.InstrumentedApply(); 93 93 } 94 94 } -
trunk/sources/HeuristicLab.Operators/3.3/MultiOperator.cs
r9838 r10295 34 34 [Item("MultiOperator", "A base class for operators which apply arbitrary many other operators of a specific type.")] 35 35 [StorableClass] 36 public abstract class MultiOperator<T> : SingleSuccessorOperator, IMultiOperator<T> where T : class, IOperator {36 public abstract class MultiOperator<T> : InstrumentedOperator, IMultiOperator<T> where T : class, IOperator { 37 37 private List<IValueParameter<T>> operatorParameters; 38 38 protected IEnumerable<IValueParameter<T>> OperatorParameters { get { return operatorParameters; } } -
trunk/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs
r9456 r10295 132 132 /// or all selected operators have zero probabitlity.</exception> 133 133 /// <returns>A new operation with the operator that was selected followed by the current operator's successor.</returns> 134 public override IOperation Apply() {134 public override IOperation InstrumentedApply() { 135 135 IRandom random = RandomParameter.ActualValue; 136 136 DoubleArray probabilities = ProbabilitiesParameter.ActualValue; … … 156 156 } 157 157 } 158 OperationCollection next = new OperationCollection(base. Apply());158 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 159 159 if (successor != null) { 160 160 if (TraceSelectedOperatorParameter.Value.Value) -
trunk/sources/HeuristicLab.Operators/3.3/SubScopesProcessor.cs
r9456 r10295 67 67 } 68 68 69 public override IOperation Apply() {69 public override IOperation InstrumentedApply() { 70 70 List<IScope> scopes = GetScopesOnLevel(ExecutionContext.Scope, Depth.Value).ToList(); 71 OperationCollection next = new OperationCollection(base. Apply());71 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 72 72 if (scopes.Count != Operators.Count) 73 73 throw new ArgumentException("The number of operators doesn't match the number of sub-scopes at depth " + Depth.Value); -
trunk/sources/HeuristicLab.Optimization.Operators/3.3/ShakingOperator.cs
r9456 r10295 56 56 } 57 57 58 public override IOperation Apply() {58 public override IOperation InstrumentedApply() { 59 59 if (NeighborhoodCountParameter.ActualValue == null) 60 60 NeighborhoodCountParameter.ActualValue = new IntValue(Operators.CheckedItems.Count()); … … 64 64 var shaker = base.Operators.CheckedItems.SingleOrDefault(x => x.Index == index); 65 65 66 OperationCollection next = new OperationCollection(base. Apply());66 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 67 67 if (shaker.Value != null) 68 68 next.Insert(0, ExecutionContext.CreateChildOperation(shaker.Value)); -
trunk/sources/HeuristicLab.Optimization.Operators/3.3/UserDefinedOperator.cs
r9456 r10295 35 35 public UserDefinedOperator() : base() { } 36 36 37 public override IOperation Apply() {37 public override IOperation InstrumentedApply() { 38 38 OperationCollection result = new OperationCollection(); 39 39 foreach (IOperator op in Operators.CheckedItems.OrderBy(x => x.Index).Select(x => x.Value)) { 40 40 result.Add(ExecutionContext.CreateOperation(op)); 41 41 } 42 result.Add(base. Apply());42 result.Add(base.InstrumentedApply()); 43 43 return result; 44 44 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/MultiSymbolicDataAnalysisExpressionCreator.cs
r9456 r10295 95 95 } 96 96 97 public override IOperation Apply() {97 public override IOperation InstrumentedApply() { 98 98 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) { 99 99 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true; … … 104 104 globalScope.Variables.Add(new Core.Variable(ClonedSymbolicExpressionTreeGrammarParameterName, (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone())); 105 105 } 106 return base. Apply();106 return base.InstrumentedApply(); 107 107 } 108 108 -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Creators/MultiVRPSolutionCreator.cs
r9456 r10295 97 97 } 98 98 99 public override IOperation Apply() {99 public override IOperation InstrumentedApply() { 100 100 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one VRP creator to choose from."); 101 return base. Apply();101 return base.InstrumentedApply(); 102 102 } 103 103 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Crossovers/BiasedMultiVRPSolutionCrossover.cs
r9462 r10295 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using System.Linq; 25 using System.Text; 24 using HeuristicLab.Analysis; 25 using HeuristicLab.Collections; 26 using HeuristicLab.Common; 26 27 using HeuristicLab.Core; 28 using HeuristicLab.Data; 29 using HeuristicLab.Optimization; 30 using HeuristicLab.Parameters; 27 31 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using HeuristicLab.Common;29 using HeuristicLab.Analysis;30 using HeuristicLab.Parameters;31 using HeuristicLab.Optimization;32 using HeuristicLab.Data;33 using HeuristicLab.Collections;34 32 35 33 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General { … … 81 79 } 82 80 83 public override IOperation Apply() {81 public override IOperation InstrumentedApply() { 84 82 IOperator successor = null; 85 83 … … 133 131 } 134 132 135 //////////////// 136 IRandom random = RandomParameter.ActualValue; 137 DoubleArray probabilities = ActualProbabilitiesParameter.ActualValue; 138 if (probabilities.Length != Operators.Count) { 139 throw new InvalidOperationException(Name + ": The list of probabilities has to match the number of operators"); 140 } 141 var checkedOperators = Operators.CheckedItems; 142 if (checkedOperators.Count() > 0) { 143 // select a random operator from the checked operators 144 double sum = (from indexedItem in checkedOperators select probabilities[indexedItem.Index]).Sum(); 145 if (sum == 0) throw new InvalidOperationException(Name + ": All selected operators have zero probability."); 146 double r = random.NextDouble() * sum; 147 sum = 0; 148 foreach (var indexedItem in checkedOperators) { 149 sum += probabilities[indexedItem.Index]; 150 if (sum > r) { 151 successor = indexedItem.Value; 152 break; 153 } 154 } 155 } 156 157 IOperation successorOp = null; 158 if (Successor != null) 159 successorOp = ExecutionContext.CreateOperation(Successor); 160 OperationCollection next = new OperationCollection(successorOp); 161 if (successor != null) { 162 SelectedOperatorParameter.ActualValue = new StringValue(successor.Name); 163 164 if (CreateChildOperation) 165 next.Insert(0, ExecutionContext.CreateChildOperation(successor)); 166 else next.Insert(0, ExecutionContext.CreateOperation(successor)); 167 } else { 168 SelectedOperatorParameter.ActualValue = new StringValue(""); 169 } 170 171 return next; 133 return base.InstrumentedApply(); 172 134 } 173 135 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Crossovers/MultiVRPSolutionCrossover.cs
r9456 r10295 106 106 } 107 107 108 public override IOperation Apply() {108 public override IOperation InstrumentedApply() { 109 109 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one permutation crossover to choose from."); 110 return base. Apply();110 return base.InstrumentedApply(); 111 111 } 112 112 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Manipulators/BiasedMultiVRPSolutionManipulator.cs
r9462 r10295 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using System.Linq; 25 using System.Text; 24 using HeuristicLab.Analysis; 25 using HeuristicLab.Collections; 26 using HeuristicLab.Common; 26 27 using HeuristicLab.Core; 28 using HeuristicLab.Data; 29 using HeuristicLab.Optimization; 30 using HeuristicLab.Parameters; 27 31 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using HeuristicLab.Common;29 using HeuristicLab.Analysis;30 using HeuristicLab.Parameters;31 using HeuristicLab.Optimization;32 using HeuristicLab.Data;33 using HeuristicLab.Collections;34 32 35 33 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General { … … 40 38 get { return (ValueLookupParameter<DoubleArray>)Parameters["ActualProbabilities"]; } 41 39 } 42 40 43 41 public ValueLookupParameter<StringValue> SuccessProgressAnalyisis { 44 42 get { return (ValueLookupParameter<StringValue>)Parameters["SuccessProgressAnalysis"]; } … … 63 61 : base() { 64 62 Parameters.Add(new ValueLookupParameter<DoubleArray>("ActualProbabilities", "The array of relative probabilities for each operator.")); 65 Parameters.Add(new ValueLookupParameter<StringValue>("SuccessProgressAnalysis", "The success progress analyisis to be considered", 63 Parameters.Add(new ValueLookupParameter<StringValue>("SuccessProgressAnalysis", "The success progress analyisis to be considered", 66 64 new StringValue("ExecutedMutationOperator"))); 67 65 … … 81 79 } 82 80 83 public override IOperation Apply() {81 public override IOperation InstrumentedApply() { 84 82 IOperator successor = null; 85 83 … … 133 131 } 134 132 135 //////////////// 136 IRandom random = RandomParameter.ActualValue; 137 DoubleArray probabilities = ActualProbabilitiesParameter.ActualValue; 138 if (probabilities.Length != Operators.Count) { 139 throw new InvalidOperationException(Name + ": The list of probabilities has to match the number of operators"); 140 } 141 var checkedOperators = Operators.CheckedItems; 142 if (checkedOperators.Count() > 0) { 143 // select a random operator from the checked operators 144 double sum = (from indexedItem in checkedOperators select probabilities[indexedItem.Index]).Sum(); 145 if (sum == 0) throw new InvalidOperationException(Name + ": All selected operators have zero probability."); 146 double r = random.NextDouble() * sum; 147 sum = 0; 148 foreach (var indexedItem in checkedOperators) { 149 sum += probabilities[indexedItem.Index]; 150 if (sum > r) { 151 successor = indexedItem.Value; 152 break; 153 } 154 } 155 } 156 157 IOperation successorOp = null; 158 if (Successor != null) 159 successorOp = ExecutionContext.CreateOperation(Successor); 160 OperationCollection next = new OperationCollection(successorOp); 161 if (successor != null) { 162 SelectedOperatorParameter.ActualValue = new StringValue(successor.Name); 163 164 if (CreateChildOperation) 165 next.Insert(0, ExecutionContext.CreateChildOperation(successor)); 166 else next.Insert(0, ExecutionContext.CreateOperation(successor)); 167 } else { 168 SelectedOperatorParameter.ActualValue = new StringValue(""); 169 } 170 171 return next; 133 return base.InstrumentedApply(); 172 134 } 173 135 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs
r9456 r10295 97 97 } 98 98 99 public override IOperation Apply() {99 public override IOperation InstrumentedApply() { 100 100 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one permutation manipulator to choose from."); 101 return base. Apply();101 return base.InstrumentedApply(); 102 102 } 103 103 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveGenerator.cs
r9456 r10295 153 153 } 154 154 155 public override IOperation Apply() {155 public override IOperation InstrumentedApply() { 156 156 if (Operators.Count == 0) throw new InvalidOperationException(Name + ": Please add at least one VRP move generator choose from."); 157 OperationCollection next = new OperationCollection(base. Apply());157 OperationCollection next = new OperationCollection(base.InstrumentedApply()); 158 158 159 159 for (int i = 0; i < SelectedOperatorsParameter.ActualValue.Value; i++) {
Note: See TracChangeset
for help on using the changeset viewer.