我有一个虚拟问题,我需要知道它的答案。我正在开发一个需要 AMPL 和 CPLEX 作为求解器的项目。现在这个问题一般需要140秒以上才能解决。当我搜索时,我遇到了一个名为timelimit
的选项。我将此选项与值 option cplex_options 'timelimit=5'
结合使用,结果在 5 秒内显示。现在我的问题是,输出是否满足所有约束并且在我在代码中设置的边界内?或者我只是终止了进程,结果是当前“正在处理”的数据?感谢您的帮助。
最佳答案
如果不设置 timelimit 参数,则运行时间是在相对容差(默认为 1e-6)内获得可证明最优解的时间。通过设置时间限制,您可以告诉 cplex 在 5 秒后停止。在这种情况下,无论目标函数的质量如何,它都会返回找到的最佳解决方案。但是,cplex 不会为您提供违反约束的解决方案。如果它无法在分配的时间内找到可行的解决方案,那么您将无法获得解决方案。您可以检查模型的exitcode
后缀,看看是否找到了解决方案。
关于mathematical-optimization - AMPL:对 cplex 使用选项 "timelimit"后的结果是否满足所有约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25021603/