在YALMIP中应用了CPLEX,错误1001:内存不足

时间:2018-09-18 03:55:34

标签: cplex

YALMIP:求解器中的未知问题(在sdpsettings中打开“调试”)(使用cplexmilp时出错(第328行)CPLEX Error 1001: Out of memory.
我在yalmip中应用了cplex求解器,但是无法求解模型。我认为默认内存设置会导致此错误。 cplex设置代码无法在yalmip中使用。

  

cplex.setParam(IloCplex :: WorkDir,“ c:/ cplex /”);
          cplex.setParam(IloCplex :: NodeFileInd,2);    因此,如何正确设置内存。谢谢。

This is error information
There may be further error information in the clone logs.
Flow cuts applied:  116
Mixed integer rounding cuts applied:  299
Lift and project cuts applied:  75
Gomory fractional cuts applied:  60
Warning: MIP starts not constructed because of out-of-memory status.

Root node processing (before b&c):
  Real time             =    5.02 sec. (945.62 ticks)
Parallel b&c, 4 threads:
  Real time             =  957.66 sec. (874133.10 ticks)
  Sync time (average)   =   36.04 sec.
  Wait time (average)   =    0.05 sec.
                      ------------
Total (root+branch&cut) =  962.67 sec. (875078.72 ticks)

result = 

yalmiptime: NaN
solvertime: NaN
      info: [1x128 char]
   problem: 9

1 个答案:

答案 0 :(得分:0)

您的计算机没有足够的RAM来运行问题。

您可以做一些技巧

  • 将MIPEmphasis参数设置为1。这将使CPLEX强调寻找可行的解决方案,这可能会导致B&B树的大小变小。
  • 将NodeFileInt参数设置为3。它将强制将B&B树以压缩文件的形式存储到HD中。但是,这将大大降低求解器的速度。
  • 使用WorkMem参数。将其设置为可以由RAM处理的软限制。超出此限制后,CPLEX会查看自身使用的其他内存策略。
  • 仅将CPLEX与一个线程一起使用。因此,不会将任何变量或状态从一个线程复制到另一个线程。

如果这些策略都不起作用,那么我们无能为力。您需要重新调整型号或更换为具有更多RAM的PC。