2014-09-01 91 views
2

Z是使用Matlab从CVX SDP代码得到的矩阵变量;我怎么能包含一个约束,即矩阵Z的元素值应该是零还是一个?如何设置SDP约束?

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

回答

1

因为cvx不支持整数半定规划(当Z是2x2时的特殊情况可能是SOCP可表示的,因此可通过接口混合整数SOCP求解器Mosek解决)。 (Z = binvar(n),你基本上完成了),如果你想留在MATLAB中,你可以很容易地将你的代码转换为YALMIP(由我开发的无耻插件)。但请注意,没有公开的MISDP解算器可供使用,因此YALMIP将自行执行整个分支机制,依靠外部SDP求解器来解决松弛问题。

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

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

+0

我很好奇为什么没人想开发MISDP解算器。我看到很多论文都在谈论如何解决MISDP。似乎没有理论上的限制... – 2015-11-25 03:07:08

+0

那么,YALMIP有MISDP支持。虽然商业球员没有大的市场,但没有足够多的申请成为一个特别有趣的研究领域。 – 2015-11-25 18:26:59