如何解决关于优化问题的“边界”类的问题
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 举报,一经查实,本站将立刻删除。