我正在使用C ++中的CPLEX Concert解决大量MIP实例。我为每个实例设置了CPLEX的时间限制(通过设置参数TiLim),但有些实例在内存不足时终止。以下是此类实例的最后几行输出:
8734238 3080224 431.8614 36 470.0000 429.0000 3.88e+008 8.72%
8752674 3084391 cutoff 470.0000 429.0000 3.89e+008 8.72%
Elapsed time = 59713.88 sec. (5451069.58 ticks, tree = 73513.33 MB, solutions = 6)
Nodefile size = 73384.21 MB (49191.99 MB after compression)
8770964 3089127 429.9550 82 470.0000 429.0000 3.90e+008 8.72%
8787928 3092972 442.7316 31 470.0000 429.0000 3.91e+008 8.72%
8809081 3099887 429.4993 68 470.0000 429.0000 3.92e+008 8.72%
8829373 3104804 cutoff 470.0000 429.0000 3.93e+008 8.72%
There may be further error information in the clone logs.
Cover cuts applied: 24
Implied bound cuts applied: 2
Flow cuts applied: 6
Mixed integer rounding cuts applied: 9
Zero-half cuts applied: 44
Gomory fractional cuts applied: 5
Root node processing (before b&c):
Real time = 7.19 sec. (744.51 ticks)
Parallel b&c, 8 threads:
Real time = 60536.50 sec. (5522542.15 ticks)
Sync time (average) = 0.00 sec.
Wait time (average) = 0.00 sec.
------------
Total (root+branch&cut) = 60543.69 sec. (5523286.67 ticks)
计算机具有32 GB RAM,但报告的树文件大小(71 GB,压缩后48 GB)超过了该值。 CPLEX报告的树文件大小是什么意思,它与可用内存有什么关系?我想将参数TreLim设置为一个可以防止内存不足错误的值,但我不清楚实际上是什么限制了树的大小。
顺便说一下,我没有使用CPLEX Error 1001 Out of memory的答案将树存储在硬盘上。我不关心为每个实例获得最佳解决方案;我只需要一种方法在每个实例上施加统一的时间或内存限制,这样一旦实例超出其限制,CPLEX就可以继续下一个实例。
答案 0 :(得分:0)
根据CPLEX用户手册,“[使用nodefiles]只需要非常小的运行时间增加”。
您可以使用节点文件并对实例施加时间限制。除非您的硬盘空间不足,否则应在达到内存错误之前达到时间限制。