如何使用不同的变量矢量元素创建SOC约束

时间:2019-05-05 03:29:15

标签: python-3.x cvxpy convex-optimization

我正在研究cvxpy的优化问题。而且我需要创建一个SOC(二阶锥)约束。 cvxpy文档中描述的方式如下:

  

我们使用cp.SOC(t,x)创建SOC约束|| x || _2 <= t。   其中t是二阶约束的标量部分,x是一个矩阵,其行/列均为圆锥。

这是cvxpy解决SOCP problem的标准方法。

但是现在我需要从不同的位置提取Variable

import cvxpy as cvx

Y = cvx.Variable(3)
Z = cvx.Variable(3)
T = cvx.Variable(3)
soc_constraints = []
for in range(3):
   t = T[i]
   x = np.matrix([Y[i], Z[i]])
   soc_constraints += [cvx.SOC(t, x)]

但是我在这里遇到一个错误。

AttributeError: 'matrix' object has no attribute 'variables'

我认为x应该是cvxpy表达式。但是我如何才能从不同的变量向量创建SOC约束。 一些帮助,将不胜感激。

0 个答案:

没有答案