2

我有一个虚拟问题,我需要知道它的答案。我正在做一个需要 AMPL 和 CPLEX 作为求解器的项目。现在这个问题通常需要140多秒才能解决。在我搜索时,我进入了一个名为timelimit. 我将此选项与 value 一起使用option cplex_options 'timelimit=5',结果在 5 秒内显示。现在我的问题是,输出是否满足所有约束并且在我在代码中设置的范围内?还是我只是终止了进程,结果是当前“正在处理”的数据?感谢您的帮助。

4

1 回答 1

3

如果您不设置 timelimit 参数,则运行时间是在相对容差(默认为 1e-6)内达到可证明的最佳解决方案的时间。通过设置时间限制,您是在告诉 cplex 在 5 秒处停止。在这种情况下,无论目标函数的质量如何,它都会返回它找到的最佳解决方案。但是,cplex 不会为您提供违反约束的解决方案。如果在规定的时间内找不到可行的解决方案,那么您将无法获得解决方案。您可以检查exitcode模型的后缀以查看是否找到了解决方案。

于 2014-07-29T19:02:23.893 回答