将CVXPY变量存储在列表/ numpy数组中

问题描述

作为优化公式的一部分,我需要实现多项式logit。我的问题的一个非常简化的版本是这样的:

enter image description here

我想将所有V(k,d)存储在一个矩阵/列表/数组中,然后对它们求和。 我的CVXPY尝试是:

K = 30
N = 150


Z = cp.Variable((K,N))


V = np.zeros((K,N),dtype=object)
denom = np.zeros(N,dtype=object)

#######
cost = 0 
for d in range(N):
    for k in range(K):
        utility = Q[k] * Pi[i,k]
        V[k,d] = cp.multiply(Z[k,d],utility)
    denom[d] = cp.sum(V[d])

但这会导致以下错误:

ValueError: setting an array element with a sequence.

问题在于V [d]是一个表达式数组,而cp.sum(V [d])不喜欢这样。我猜这是因为cp.sum()期望使用CVXPY类型的对象,但是得到了一个数组。但是将中间CVXPY变量显式保存在某个地方将大大简化我的代码。有办法吗?

解决方法

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...