我在尝试使用YALMIP时遇到问题;我怀疑我在做一些愚蠢的事情,如果有人指出它是什么,我将不胜感激。
我正在尝试解决一些 SDP。当我没有定义目标时,YALMIP 会返回一个解决方案(暗示该问题是可行的)。然而,当我给它附加一个目标时,YALMIP 会返回这个问题是不可行的,这让我有点困惑。
这是我可以在其中发生上述情况的最简单 SDP 的代码。声明变量并设置约束如下:
y = sdpvar(6,1);
M = sdpvar(3,3);
C = [0,0,0,0,0,0; 0,0,0,0,0,0; -2,0,1.8,0,2,1; 0,0,0,0,0,0; 1,0,-1,0,-1.2,0;
0,0,0,0,0,0;];
F = [C*y==0, y(6) == 1, M>=0];
F = [F,M(1,1) == y(1), M(2,1) == y(2), M(3,1) == y(3),...
M(2,2) == y(4), M(3,2) == y(5), M(3,3) == y(6)];
现在,如果我只是要求 YALMIP 找到一个可行的解决方案
solvesdp(F)
它返回
info: 'Successfully solved (LMILAB)'
problem: 0
和一些可行的 M 和 y (我已经检查过它们确实是)。但是,如果我将目标“最小化 y(3)”(或者实际上是 y 条目的任何线性组合)附加到
solvesdp(F,y(3))
它返回问题是不可行的:
info: 'Infeasible problem (LMILAB)'
problem: 1
并且 y 和 M 充满了“NaN”标记。
提前谢谢了。