首页 文章

为什么SCIP服用这么长时间并且记忆如此之多?

提问于
浏览
0

我在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)

1 回答

  • 1

    如果二次函数是非凸的,这并不罕见 . 这很容易导致在任何合理有限的时间内使用当今算法无法解决的难以解决的难题 . 请注意,这不仅取决于问题的大小,而且通常较小的问题(类似类型)将更容易 .

    话虽这么说,SCIP可能已经找到了一个近乎最优的解决方案,即使超出时间或节点限制也可以访问 .

相关问题