2

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

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

4

1 回答 1

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

于 2014-09-03T06:49:38.550 回答