微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在 Scipy 差分进化算法中不给出差分进化的“界限”参数?

如何解决有没有办法在 Scipy 差分进化算法中不给出差分进化的“界限”参数?

我正在用 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]])

但根据 documentation,'bounds' 参数是可选的。 (也是下面的截图)

enter image description here

而且我真的不明白需要那个参数的意义。我真的不想提供这个论点,因为在大多数情况下我真的不知道一个界限。

在这里遗漏了什么吗?难道我做错了什么?请帮忙。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。