我正在用 Python 编写代码进行优化。我正在使用库中differential_evolution
可用的算法。scipy
我在互联网资源的帮助下编写了以下代码:
from scipy.optimize import differential_evolution
from numpy import exp
from numpy import sqrt
from numpy import cos
from numpy import e
from numpy import pi
import math
def objective(v):
x, y = v
return -20.0 * exp(-0.2 * sqrt(0.5 * (x**2 + y**2))) - exp(0.5 * (cos(2 * pi * x) + cos(2 * pi * y))) + e + 20
result = differential_evolution(objective)
我得到了错误:
Exception has occurred: TypeError
differential_evolution() missing 1 required positional argument: 'bounds'
当我尝试使用边界相同的代码时,它可以工作:
result = differential_evolution(objective,[[-5.0,5.0],[-5.0,5.0]])
但根据文档,'bounds' 参数是可选的。(还有下面的截图)而且我真的不明白需要这个论点的意义。我真的不想提供这个论点,因为在大多数情况下,我真的不知道界限。
我在这里错过了什么吗?难道我做错了什么?