我想计算这里显示的函数 CROSS-IN-TRAY 的最大值:
所以我在Matlab中做了这个功能:
function f = CrossInTray2(x)
%the CrossInTray2 objective function
%
f = 0.0001 *(( abs(sin(x(:,1)).* sin(x(:,2)).*exp(abs(100 - sqrt(x(:,1).^2 + x(:,2).^2)/3.14159 )) )+1 ).^0.1);
end
我将整个公式乘以 (-1),所以函数是反转的,所以当我要寻找反转公式的最小值时,它实际上是原始公式的最大值。
然后,当我使用优化工具并选择 GA 算法并将下限和上限定义为 -3 和 3 时,它显示了大约 60 次迭代后的结果,大约为 0.13,最终点类似于 [0, 9.34]。最后一点怎么可能不在边界定义的范围内?这个函数的实际最大值是多少?