【发布时间】:2020-08-18 00:19:19
【问题描述】:
我有一个约束条件下的多目标优化问题(最大化),实际上我通过加权技术将其转换为单目标问题,并添加了 2 个变量 x1, x2(用于优化)和约束 @987654321 @ 所以它们的总和必须严格小于 1 才能产生下面代码中描述的第三个目标函数。
当我执行时,总和总是大于 1。
for i in range(len(f1)):
def f(x):
x1= x[0]
x2= x[1]
return -(x1*f1[i]+ x2*f2[i]+ (1-x1-x2)*f3[i])
def constraint(x):
return x[0]+x[1]-1
b= (0.2, 0.8)
bnds= (b, b)
x0=[0.5,0.4]
cons= ({'type': 'ineq','fun':constraint})
res = minimize(f,x0, method= 'SLSQP', bounds=bnds, constraints=cons)
print('Vect_ponderation : ', res.x)
输出:
Vect_ponderation : [0.8 0.8]
Vect_ponderation : [0.8 0.8]
Vect_ponderation : [0.8 0.8]
Vect_ponderation : [0.8 0.8]
【问题讨论】:
标签: python optimization scipy constraints minimize