-------------------------------- Rastrigin function: f(X,Y) = X^2 - a . cos(2*PI*X) + Y^2 - a . cos(2*PI*Y) + 2*a double result = 0; double a = 10; for (int i = 0; i < t.parameters.length; i++) { double v = t.parameters[i]; result += v * v - a * Math.cos(2 * Math.PI * v); } result += a * t.parameters.length; return result; -------------------------------- Schwefel function: f(x) = V*n + Sum(i=1,n) { -x_i*sin(sqrt(abs(x_i))) } double result = 0; for (int i = 0; i < t.parameters.length; i++) { double v = t.parameters[i]; result += -v * Math.sin(Math.sqrt(Math.abs(v))); } result += 418.9829 * t.parameters.length; return result; -------------------------------- Rosenbrock function: f(x) = \sum_{i=1}^{n-1}(100\cdot(x_{i+1}-x_i)^2 + (1-x_i)^2) double result = 0; for (int i = 0; i < t.parameters.length - 1; i++) { double v = t.parameters[i+1] - t.parameters[i]; result += 100*v*v; v = 1 - t.parameters[i]; result += v*v; } return result; -------------------------------- // Griewangk's Function double result = 1; double product = 1; for (int i = 0; i < t.parameters.length; i++) { double v = t.parameters[i]; result += v * v / 4000; product *= Math.cos(v/Math.sqrt(i+1)); } result -= product; return result; -------------------------------- // Ackley Function double squareSum = 0, cosSum = 0; for (int i = 0; i < t.parameters.length; i++) { double v = t.parameters[i]; squareSum += v * v; cosSum += Math.cos(2*Math.PI*v); } double result = 20 + Math.E - 20*Math.exp(-0.2*Math.sqrt(squareSum/t.parameters.length)) - Math.exp(cosSum/t.parameters.length); return result; -------------------------------- // Six hump camel backfunction double x1=t.parameters[0]; double x12=x1*x1; double x2=t.parameters[1]; double x22=x2*x2; return (4-2.1*x12+x12*x12/3)*x12+x1*x2+(-4+4*x22)*x22; -------------------------------- // Golden Price function double x1=t.parameters[0]; double x12=x1*x1; double x2=t.parameters[1]; double x22=x2*x2; return (1+(x1+x2+1)*(x1+x2+1)*(19-14*x1+3*x12-14*x2+6*x1*x2+3*x22)) *(30+(2*x1-3*x2)*(2*x1-3*x2)*(18-32*x1+12*x12+48*x2-36*x1*x2+27*x22)); --------------------------------