我有一个矩阵"最小化",我希望在第2列的总和必须等于0的约束条件下最小化第1列。第二个约束是行必须仅在第二列不等于零。如何最小化矩阵的第一列"最小化",受限于相应行值的第二列必须等于零?
minimize = np.array([[-10, 0]
[-7, -1]
[-5, 1]
[-3, 0]
[ 0, 1])
我正在最小化矩阵的第一列"最小化",受限于第二列必须等于0.因此,最优解应该等于-12 as(-7 + - 5 = -12,对于第二列等于约束-1 + 1 = 0)。
def objective_function(x):
column_sum = 0
for row in x:
column_sum += sum(x[0])
return column_sum
def con(x):
sum = 0
for row in x:
sum += sum(x[1])
return sum
def con1(x):
sum1 = 0
for row in x:
sum1 += 1 - sum(x[1])
return sum1
其中"缺点"等于约束:
cons = (
{'type': 'eq', 'fun': con}
{'type': 'ineq', 'fun': con1}
)
x0 = [-10]
scipy.optimize.minimize(objective_function, x0, constraints=cons)