问题描述
import numpy as np
import scipy.optimize as opt
global_min_DE=opt.differential_evolution(F,bounds)
我正在使用 here
中提到的bounds
类
如果我们有:
def F(X):
return X[0]**2+X[1]**2+X[2]**2+X[3]**2+X[4]**2
那么我们可以将边界写为:
lb=np.array([1,1,1])
ub=np.array([5,5,5])
bounds = opt.Bounds(lb,ub,keep_feasible=False)
但是如果我们定义函数如下:
def F1(x1,x2):
return x1[0]**2+x1[1]**2+x1[2]**2+x2[0]**2+x2[1]**2
然后我不知道如何正确地写边界。
我已经尝试了以下所有方法,但没有一种方法适用于开头提到的优化。
lb=2*np.ones(3)
ub=5*np.ones(2)
lb=np.array([[1,1],[1,1]])
ub=np.array([5,5],[5,5])
lb=np.array([1,5])
lb=np.concatenate((1*np.ones(3),np.array([1,1])),axis=None)
lb=np.concatenate((5*np.ones(3),np.array([5,5])),axis=None)
lb = np.array([np.array([1,1]),1])])
ub = np.array([[np.array([5,5])],[np.array([5,5])]])
感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)