public void TwoDim_EvaluatesCorrectValues(double[] values) { var evaluator = new Schwefel(2); var ds = evaluator.GetGlobalOptimum().GetDecisionSpace(); var result = evaluator.Evaluate(DecisionVector.CreateFromArray(ds, new[] { values[0], values[1] })); Assert.True(Math.Abs(values[2] - result.ElementAt(0)) < 0.001); }
public void TwoDim_CorrectlyIdentifiesLegalSolution() { var evaluator = new Schwefel(2); var ds = evaluator.GetGlobalOptimum().GetDecisionSpace(); var legal = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { 1.0, 1.0 })); Assert.True(legal); }
public void TwoDim_CorrectlyIdentifiesIllegalSolution() { var evaluator = new Schwefel(2); var ds = DecisionSpace.CreateForUniformDoubleArray(2, double.MinValue, double.MaxValue); var legal = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { -501.0, 210.0 })); Assert.False(legal); var legal2 = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { -250.0, 620.0 })); Assert.False(legal2); }
public static void ObliczIndiwFitness(Particle ind) { switch (FunctionName.type) { case FunctionName.Type.Schwefel: Schwefel.setFitness(ind); break; case FunctionName.Type.DeJong1: DeJong1.setFitness(ind); break; case FunctionName.Type.Rastrigin: Rastrigin.setFitness(ind); break; case FunctionName.Type.Rosenbrock: Rosenbrock.setFitness(ind); break; } }
internal void ObliczPopulFitness(FunctionName.Type type) { for (int j = 0; j < population.Count; j++) { switch (type) { case FunctionName.Type.DeJong1: DeJong1.setFitness(population[j]); break; case FunctionName.Type.Schwefel: Schwefel.setFitness(population[j]); break; case FunctionName.Type.Rastrigin: Rastrigin.setFitness(population[j]); break; case FunctionName.Type.Rosenbrock: Rosenbrock.setFitness(population[j]); break; } } }