【发布时间】:2020-03-30 10:00:52
【问题描述】:
关于 SO 的第一篇文章。
我正在研究一个二次优化问题。
我收到以下错误:
Aeq = beq = sostype =sosind = soswt = [] % for my specific problem
其他参数看起来定义正确。
Error using cplexmiqp
CPLEX Error 5002: %s is not convex.
Error in MIP_CPLEX_OptL2_CstrL0 (line 78)
[x,z,exitflag,output] = cplexmiqp(Hprim'*Hprim,(-y'*Hprim)',Aineq,bineq,Aeq,beq,sostype,sosind,soswt,lb,ub,ctype,z0,solveur);
我已经检查了矩阵的属性(它是半 PSD)。
只有大于 600 个变量的维度才会出现错误(连续和二进制 -> MIQP)。 低于此值,模型可以正常工作。
有人有什么想法吗?谢谢很多:)
【问题讨论】:
-
欢迎来到stackoverflow。请编辑您的问题以包含minimal, reproducible, example。
-
矩阵
Q=Hprim'*Hprim不是半正定的(您可能需要打印带有更多小数的东西才能看到)。除了修复 Q,您还可以重新表述问题(参见 link 示例)。
标签: matlab mathematical-optimization cplex quadratic-programming