Changeset 9407 for trunk/sources/HeuristicLab.Problems.TestFunctions
- Timestamp:
- 04/30/13 10:54:12 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.TestFunctions/3.3
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/AckleyEvaluator.cs
r9345 r9407 109 109 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 110 110 /// <returns>The result value of the Ackley function at the given point.</returns> 111 public override double Evaluate Function(RealVector point) {111 public override double Evaluate(RealVector point) { 112 112 return Apply(point); 113 113 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BealeEvaluator.cs
r9345 r9407 98 98 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 99 99 /// <returns>The result value of the Beale function at the given point.</returns> 100 public override double Evaluate Function(RealVector point) {100 public override double Evaluate(RealVector point) { 101 101 return Apply(point); 102 102 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BoothEvaluator.cs
r9345 r9407 94 94 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 95 95 /// <returns>The result value of the Booth function at the given point.</returns> 96 public override double Evaluate Function(RealVector point) {96 public override double Evaluate(RealVector point) { 97 97 return Apply(point); 98 98 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/GriewankEvaluator.cs
r9345 r9407 133 133 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 134 134 /// <returns>The result value of the Griewank function at the given point.</returns> 135 public override double Evaluate Function(RealVector point) {135 public override double Evaluate(RealVector point) { 136 136 if (point.Length > 100) 137 137 return Apply(point); -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/LevyEvaluator.cs
r9345 r9407 111 111 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 112 112 /// <returns>The result value of the Levy function at the given point.</returns> 113 public override double Evaluate Function(RealVector point) {113 public override double Evaluate(RealVector point) { 114 114 return Apply(point); 115 115 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MatyasEvaluator.cs
r9345 r9407 93 93 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 94 94 /// <returns>The result value of the Matyas function at the given point.</returns> 95 public override double Evaluate Function(RealVector point) {95 public override double Evaluate(RealVector point) { 96 96 return Apply(point); 97 97 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MultinormalEvaluator.cs
r9345 r9407 101 101 102 102 private double FastFindOptimum(out RealVector bestSolution) { 103 var optima = centers.Select((c, i) => new { f = Evaluate Function(c), i }).OrderBy(v => v.f).ToList();103 var optima = centers.Select((c, i) => new { f = Evaluate(c), i }).OrderBy(v => v.f).ToList(); 104 104 if (optima.Count == 0) { 105 105 bestSolution = new RealVector(); … … 161 161 } 162 162 163 public override double Evaluate Function(RealVector point) {163 public override double Evaluate(RealVector point) { 164 164 double value = 0; 165 165 if (centers.Count == 0) { -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RandomEvaluator.cs
r9345 r9407 86 86 } 87 87 88 public override double Evaluate Function(RealVector point) {88 public override double Evaluate(RealVector point) { 89 89 return ExecutionContext == null ? new System.Random().NextDouble() : RandomParameter.ActualValue.NextDouble(); 90 90 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RastriginEvaluator.cs
r9345 r9407 119 119 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 120 120 /// <returns>The result value of the Rastrigin function at the given point.</returns> 121 public override double Evaluate Function(RealVector point) {121 public override double Evaluate(RealVector point) { 122 122 return Apply(point, A.Value); 123 123 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RosenbrockEvaluator.cs
r9345 r9407 105 105 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 106 106 /// <returns>The result value of the Rosenbrock function at the given point.</returns> 107 public override double Evaluate Function(RealVector point) {107 public override double Evaluate(RealVector point) { 108 108 return Apply(point); 109 109 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SchwefelEvaluator.cs
r9345 r9407 96 96 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 97 97 /// <returns>The result value of the Schwefel function at the given point.</returns> 98 public override double Evaluate Function(RealVector point) {98 public override double Evaluate(RealVector point) { 99 99 return Apply(point); 100 100 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs
r9345 r9407 84 84 public override IOperation Apply() { 85 85 RealVector point = PointParameter.ActualValue; 86 double quality = Evaluate Function(point);86 double quality = Evaluate(point); 87 87 QualityParameter.ActualValue = new DoubleValue(quality); 88 88 return base.Apply(); … … 90 90 91 91 public virtual double Evaluate2D(double x, double y) { 92 return Evaluate Function(new RealVector(new double[] { x, y }));92 return Evaluate(new RealVector(new double[] { x, y })); 93 93 } 94 94 … … 98 98 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 99 99 /// <returns>The result value of the function at the given point.</returns> 100 public abstract double Evaluate Function(RealVector point);100 public abstract double Evaluate(RealVector point); 101 101 102 102 /// <summary> -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SphereEvaluator.cs
r9345 r9407 132 132 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 133 133 /// <returns>The result value of the Sphere function at the given point.</returns> 134 public override double Evaluate Function(RealVector point) {134 public override double Evaluate(RealVector point) { 135 135 return Apply(point, C.Value, Alpha.Value); 136 136 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SumSquaresEvaluator.cs
r9345 r9407 96 96 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 97 97 /// <returns>The result value of the Sum Squares function at the given point.</returns> 98 public override double Evaluate Function(RealVector point) {98 public override double Evaluate(RealVector point) { 99 99 return Apply(point); 100 100 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/ZakharovEvaluator.cs
r9345 r9407 100 100 /// <param name="point">N-dimensional point for which the test function should be evaluated.</param> 101 101 /// <returns>The result value of the Zakharov function at the given point.</returns> 102 public override double Evaluate Function(RealVector point) {102 public override double Evaluate(RealVector point) { 103 103 return Apply(point); 104 104 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Improvers/SingleObjectiveTestFunctionImprovementOperator.cs
r9345 r9407 125 125 throw new ArgumentException("Cannot improve solution because it has the wrong type."); 126 126 127 double bestSolQuality = Evaluator.EvaluateFunction(bestSol); 127 var evaluator = Evaluator; 128 129 double bestSolQuality = evaluator.Evaluate(bestSol); 128 130 129 131 // create perturbed solutions … … 139 141 for (int i = 0; i < ImprovementAttempts.Value; i++) { 140 142 // order according to their objective function value 141 Array.Sort(simplex, (x, y) => Evaluator.EvaluateFunction(x).CompareTo(Evaluator.EvaluateFunction(y)));143 Array.Sort(simplex, (x, y) => evaluator.Evaluate(x).CompareTo(evaluator.Evaluate(y))); 142 144 143 145 // calculate centroid … … 153 155 for (int j = 0; j < reflectionPoint.Length; j++) 154 156 reflectionPoint[j] = centroid[j] + Alpha.Value * (centroid[j] - simplex[simplex.Length - 1][j]); 155 double reflectionPointQuality = Evaluator.EvaluateFunction(reflectionPoint);156 if ( Evaluator.EvaluateFunction(simplex[0]) <= reflectionPointQuality157 && reflectionPointQuality < Evaluator.EvaluateFunction(simplex[simplex.Length - 2]))157 double reflectionPointQuality = evaluator.Evaluate(reflectionPoint); 158 if (evaluator.Evaluate(simplex[0]) <= reflectionPointQuality 159 && reflectionPointQuality < evaluator.Evaluate(simplex[simplex.Length - 2])) 158 160 simplex[simplex.Length - 1] = reflectionPoint; 159 161 160 162 // expansion 161 if (reflectionPointQuality < Evaluator.EvaluateFunction(simplex[0])) {163 if (reflectionPointQuality < evaluator.Evaluate(simplex[0])) { 162 164 RealVector expansionPoint = new RealVector(bestSol.Length); 163 165 for (int j = 0; j < expansionPoint.Length; j++) 164 166 expansionPoint[j] = centroid[j] + Beta.Value * (reflectionPoint[j] - centroid[j]); 165 simplex[simplex.Length - 1] = Evaluator.EvaluateFunction(expansionPoint) < reflectionPointQuality ? expansionPoint : reflectionPoint;167 simplex[simplex.Length - 1] = evaluator.Evaluate(expansionPoint) < reflectionPointQuality ? expansionPoint : reflectionPoint; 166 168 } 167 169 168 170 // contraction 169 if ( Evaluator.EvaluateFunction(simplex[simplex.Length - 2]) <= reflectionPointQuality170 && reflectionPointQuality < Evaluator.EvaluateFunction(simplex[simplex.Length - 1])) {171 if (evaluator.Evaluate(simplex[simplex.Length - 2]) <= reflectionPointQuality 172 && reflectionPointQuality < evaluator.Evaluate(simplex[simplex.Length - 1])) { 171 173 RealVector outsideContractionPoint = new RealVector(bestSol.Length); 172 174 for (int j = 0; j < outsideContractionPoint.Length; j++) 173 175 outsideContractionPoint[j] = centroid[j] + Gamma.Value * (reflectionPoint[j] - centroid[j]); 174 if ( Evaluator.EvaluateFunction(outsideContractionPoint) <= reflectionPointQuality) {176 if (evaluator.Evaluate(outsideContractionPoint) <= reflectionPointQuality) { 175 177 simplex[simplex.Length - 1] = outsideContractionPoint; 176 if ( Evaluator.EvaluateFunction(reflectionPoint) >= Evaluator.EvaluateFunction(simplex[simplex.Length - 1])) {178 if (evaluator.Evaluate(reflectionPoint) >= evaluator.Evaluate(simplex[simplex.Length - 1])) { 177 179 RealVector insideContractionPoint = new RealVector(bestSol.Length); 178 180 for (int j = 0; j < insideContractionPoint.Length; j++) 179 181 insideContractionPoint[j] = centroid[j] - Gamma.Value * (reflectionPoint[j] - centroid[j]); 180 if ( Evaluator.EvaluateFunction(insideContractionPoint) < Evaluator.EvaluateFunction(simplex[simplex.Length - 1])) simplex[simplex.Length - 1] = insideContractionPoint;182 if (evaluator.Evaluate(insideContractionPoint) < evaluator.Evaluate(simplex[simplex.Length - 1])) simplex[simplex.Length - 1] = insideContractionPoint; 181 183 } 182 184 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Interfaces/ISingleObjectiveTestFunctionProblemEvaluator.cs
r9345 r9407 39 39 40 40 double Evaluate2D(double x, double y); 41 double Evaluate Function(RealVector point);41 double Evaluate(RealVector point); 42 42 RealVector GetBestKnownSolution(int dimension); 43 43 } -
trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/MoveEvaluators/MultinormalAdditiveMoveEvaluator.cs
r9345 r9407 55 55 var eval = EvaluatorParameter.ActualValue as MultinormalEvaluator; 56 56 if (eval != null) 57 return eval.Evaluate Function(wrapper);57 return eval.Evaluate(wrapper); 58 58 throw new InvalidOperationException("evaluator is not a multinormal evaluator"); 59 59 }
Note: See TracChangeset
for help on using the changeset viewer.