【发布时间】:2014-10-25 20:42:32
【问题描述】:
Z 是一个矩阵变量,由使用 Matlab 的 CVX SDP 代码产生;如何包含矩阵 Z 元素的值应为零或一的约束?
有“带状”选项,但它不适用于矩阵。
【问题讨论】:
Z 是一个矩阵变量,由使用 Matlab 的 CVX SDP 代码产生;如何包含矩阵 Z 元素的值应为零或一的约束?
有“带状”选项,但它不适用于矩阵。
【问题讨论】:
你不能,因为 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
【讨论】: