0

我在 matlab 的 OPTI 工具箱中使用 SCIP 求解器来求解具有整数约束的二次优化问题。我使用以下规格运行它,它已经运行了一天,并且已经在我的系统中占用了 55GB 的内存并且还在计数。我是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)
4

1 回答 1

1

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

话虽如此,SCIP 可能已经找到了一个接近最佳的解决方案,即使超过了时间或节点限制也可以访问。

于 2015-08-18T10:54:30.607 回答