我在matlab的OPTI工具箱中使用SCIP求解器来解决具有整数约束的二次优化问题。我使用以下规格运行它并且它已经运行了一天并且已经在我的系统中占用了55GB的ram并且还在计算中。我是matlab中的优化新手,我做错了什么,或者这是常见的吗?我尝试使用较少的maxnodes和maxtime,但程序在达到“节点限制”时停止。这些情况下的错误。这里是代码(H,Aeq等已经在代码中定义) -
X = sym('X%d%d', [104 1]);
fun = @(X) 1/2*X'*H*X;
options = optiset('solver', 'SCIP', 'maxnodes', 20000000, 'maxtime', 100000);
Opt = opti('fun', fun, 'eq', Aeq, Beq, 'xtype', xtype, 'options', options);
[xval,fval,exitflag,info] = solve(Opt)
答案 0 :(得分:1)
如果二次函数是非凸的,这并不罕见。这很容易导致在任何合理有限的时间内使用当今算法无法解决的难以解决的难题。请注意,这不仅取决于问题的大小,而且通常较小的问题(类似类型)会更容易。
话虽如此,SCIP可能已经找到了一个接近最优的解决方案,即使超出时间或节点限制也可以访问。