Python 具有求和界的SciPy多元优化

Python 具有求和界的SciPy多元优化,python,optimization,scipy,Python,Optimization,Scipy,我正在尝试使用带有约束的scipy.optimize.minimize,执行多变量优化,但约束并不针对每个单独的变量;相反,它是关于变量的求和 以下是二次目标: 其中A是由m矩阵构成的对称m(m是点x和y的维数) 这个函数的导数很好A完全消失,使梯度成为一个常数,我可以预先计算。这是梯度: 下面是我用来执行优化的Python代码: retval = scipy.optimize.minimize(f, A.flatten(), args = (S, dAi.flatten(), A.

我正在尝试使用带有约束的
scipy.optimize.minimize
,执行多变量优化,但约束并不针对每个单独的变量;相反,它是关于变量的求和

以下是二次目标:

其中
A
是由
m
矩阵构成的对称
m
m
是点
x
y
的维数)

这个函数的导数很好
A
完全消失,使梯度成为一个常数,我可以预先计算。这是梯度:

下面是我用来执行优化的Python代码:

retval = scipy.optimize.minimize(f, A.flatten(),
    args = (S, dAi.flatten(), A.shape[0]),
    jac = True, method = 'SLSQP')
其中
A
是矩阵(展平),
S
是包含点对
x
y
的集合,
dAi
是预计算的梯度矩阵(也展平)。目标函数
f
如下所示:

def f(A, S, dfA, k):
    A = A.reshape((k, k))
    return [np.sum([np.dot(x - y, A).dot(x - y) for x, y in S]), dfA]
然而,这种实现会无限延伸,永远不会完成。我无法在任何地方指定求和约束,因为优化方法要求每个变量都有边界或不等式约束,而不是聚合约束

有没有一种方法让我错过了?但从未找到解决办法。但这只是一个错误推导的问题,但涉及熊猫,我不使用