如何设置SDP约束?

时间:2014-09-01 15:18:56

标签: matlab variables cvx

Z是一个矩阵变量,由使用Matlab的CVX SDP代码产生;如何包含一个约束,即矩阵Z的元素值应该为零或一个?

有"带状"选项,但它不适用于矩阵。

1 个答案:

答案 0 :(得分:1)

你不能因为cvx不支持整数半定规划(Z是2x2的特殊情况是可能的,因为它是SOCP可表示的,因此可通过接口混合整数SOCP求解器Mosek解决)。

如果你想留在MATLAB中,你可以轻松地将你的代码转换为YALMIP(由我开发的无耻插件),因为那里支持混合整数SDP(Z = binvar(n),你基本完成了)。但请注意,没有可用的公共MISDP求解器,因此YALMIP将独立执行整个分支机构,依靠外部SDP求解器来解决松弛问题。

这是一个解决混合整数半定规划问题的例子。

http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Examples.ExperimentDesign