Parameters 限制CPLEX内存的参数

Parameters 限制CPLEX内存的参数,parameters,cplex,opl,Parameters,Cplex,Opl,我在OPL CPLEX V12.9中的MIP模型目前使用的数据量较小,但从excel导入的数据库较大,运行1小时后,我出现以下错误: 错误1001:内存不足 我已经知道我可以在.ops中更改一些参数 我已尝试设置以下参数: CPX\u PARAM\u WORKMEM=1920.0(默认值2048.0) CPX\u PARAM\u nodefleind=3(内存中的默认节点文件已压缩) 之后我得到: 错误1422:无法打开文件%s进行写入 所以我改变了参数: CPX\u PARAM\u WORKD

我在OPL CPLEX V12.9中的MIP模型目前使用的数据量较小,但从excel导入的数据库较大,运行1小时后,我出现以下错误:

错误1001:内存不足

我已经知道我可以在.ops中更改一些参数

我已尝试设置以下参数:
CPX\u PARAM\u WORKMEM=1920.0(默认值2048.0)
CPX\u PARAM\u nodefleind=3(内存中的默认节点文件已压缩)

之后我得到:

错误1422:无法打开文件%s进行写入

所以我改变了参数:
CPX\u PARAM\u WORKDIR
to
C:\Users\..\opl

但我主要担心的是记忆问题。我使用的是surface 4 pro 配备4GB RAM、1867MHz和i5-6300U CPU

当模型运行时,我的CPU也达到99-100%


我可以更改哪些参数来解决内存问题?我应该将这些参数更改为什么值

预计CPU将达到几乎100%。事实上,这就是你想要的。您希望CPLEX使用您机器的所有电源。CPU负载应该与内存问题无关——除非操作系统正在疯狂地交换

您为workmem和nodefleind设置的参数看起来是正确的,如果您遇到“写入失败”,那么它们似乎处于活动状态。所以这是目前你能做的最好的了。如果模型有很多约束,可以尝试将其设置为1。这允许较小的搜索树节点,并可能节省一些内存。另一个选项是限制参数。一旦树的大小(磁盘和内存中)超过该限制,这将停止CPLEX。请注意,无论发生什么情况,这都将停止CPLEX。您将得到CPLEX找到的最佳解决方案,直到那时,它不一定是最佳解决方案。 如果由于树中有大量节点而导致内存不足,则可以启动节点预解、探测、强分支等参数,让CPLEX为每个节点花费更多的工作,从而潜在地减少要处理的节点数量


你可以用引擎日志更新你的问题,也许这会提供其他/新的想法。

所以我必须更新我的帖子。更改上述参数后,我的模型仍在运行24小时。我必须在下一次通过大量的数据。我的下一个问题是如何在不对结果质量产生重大影响的情况下减少运行时间?我知道使用CPX_PARAM_TILIM可以减少计算时间。但这并没有给我一个全局最优解。此外,我已激活预溶解指示器。你有什么想法吗?你必须至少显示引擎日志,这样我们才能看到发生了什么。可能是节点求解速度较慢。可能是CPLEX需要太多节点来求解模型。可能是双重或原始边界不移动。所有这些都需要不同的措施来应对。我用前面提到的参数开始了我的模型,并额外设置了48小时=172800秒的时间限制。模型运行9小时后,我收到消息,CPLEX不再运行,我应该重新启动的模型。在这里您可以看到相应的引擎日志。它不太长,我在Meal.CpxPARAMMIPMIGPROGYYX文件3中省略了一部分,CPXPARAMOMTIMEILIT 172800 CpxPARAMOMWorkMEM 1920 CPXPARAMOWORDIIR“C:\用户\ JAN\OPL”在0、14秒后找到值774802677456的在位者。(37,49个滴答声)尝试聚合器2次。MIP Presolve消除了325470行和167342列。MIP Presolve修改了18082系数。聚合器进行了1次替换。精简MIP有42448行、42898列和127342个非零。精简MIP有25380个二进制文件、0个将军、0个SoS和0个指示器。预溶解时间=1,31秒。(1734,00滴答声)探测时间=0,05秒。(3,86勾)集团表成员:232。MIP强调:平衡最佳性和可行性。MIP搜索方法:动态搜索。并行模式:确定性,最多使用4个线程。根松弛溶液时间=1,91秒。(755,63蜱)