最近在使用YALMIP求解MILP问题是遇到了一个问题:
这个问题只有在某一个参数条件下才会出现,换成其他参数就没有问题。
按照网上的方法进行debug Yalmip的debug方法:
ops = sdpsettings('verbose',1,'debug',1,'solver','cplex','savesolveroutput',1,'savesolverinput',1);
ops.cplex.exportmodel='abc.lp';%这句就是用来输出线性模型文件,保存在根目录下。
通过‘abc.lp’文件发现最后生成的模型决策变量数量远远少于在程序中定义的决策变量数量。最后询问了YALMIP的作者,才知道在定义决策变量出错了。我用的是
sdpvar(n,m)
改成下面这样就可以了。
sdpvar(n,m,’full’)