关于优化问题的“边界”类的问题

问题描述

我使用差分进化方法来最小化一个函数F
那是

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 (将#修改为@)