CVXPY 中表达式的二次形式 (quad_form)

问题描述

我正在使用 CVXPY 在二次优化问题 (QP) 中构建风险项,并且我正在努力使用 quad_form 将表达式与协方差矩阵结合起来。

from cvxpy import Variable,quad_form
from numpy import identity
from pandas import Series,DataFrame

assets = ['AAA','BBB','CCC','DDD']
optimal = Series(1 / 4,assets)
covariances = DataFrame(identity(4) * 0.20,index=assets,columns=assets)
covariances.iloc[2,3] += 0.01
covariances.iloc[3,2] = covariances.iloc[2,3]

target = Series([Variable(name=asset) for asset in assets],index=assets)
difference = target - optimal

active_variance = quad_form(difference.values,covariances.values)

我收到以下错误

ValueError: setting an array element with a sequence.

我可以在 Pandas 中进行计算,但是 CVXPY 不知道表达式是凸的。

active_variance = difference.T.dot(covariances).dot(difference)
print(active_variance.curvature)

这个问题与我的 earlier question with docplex 有关,尽管那里的解决方在这里不起作用,因为 docplex 不需要问题是凸的,但 CVXPY 可以。 CVXPY中是否有正确的形式?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)