我正在使用 C 编写我的代码并使用 CPLEX 优化器解决它。我想限制 CPLEX 上的时间,以便在时间大于 10 小时时停止求解。我在网上搜索了一下,找到了 CPLEX 的 timelimit 参数。但是,我不知道在哪里插入或如何使用它。任何帮助将非常感激!谢谢你。
问问题
4305 次
3 回答
3
C 接口中的时间限制参数是CPX_PARAM_TILIM。它是一个双参数,该值表示 cplex 在返回它迄今为止的最佳解决方案之前将运行的秒数(除非它更早地找到了最佳解决方案)。使用CPXsetdblparam函数设置参数。要设置 10 小时的时间限制,您可以调用
CPXsetdblparam(env, CPX_PARAM_TILIM, 36000.0);
默认情况下,cplex 使用挂钟时间,但如果您想要 10 小时的 CPU 时间,您可以将整数参数 CPX_PARAM_CLOCKTYPE 设置为值 1。
于 2013-09-22T20:56:20.503 回答
0
在 cplex(12.7.1 版本) c++ 接口中,我使用以下代码:
cplex.setParam(IloCplex::TiLim, 1);
所以 cplex 有限制运行时间:1s。
于 2017-07-20T06:27:09.383 回答
0
从 CPLEX 版本 12.9 开始,IloCplex::TiLim
不推荐使用。改为使用IloCplex::Param::TimeLimit
:
cplex.setParam(IloCplex::Param::TimeLimit, 7200);
于 2020-06-17T03:55:19.647 回答