如何解决为什么每次我求解模型时都会得到不同的运行时间?
我有一个用python编码并由gurobi解决的简单BQP模型。但是,每次我运行它时,尽管解决方案和obj值都相同,但是在某些情况下,运行时间甚至可以变化25%。我也有一个简单的LP模型,导致了同样的问题。我检查了两种型号的时间。 Runtime和time.time()都在为每个特定实例运行代码的迭代中更改。当我检查gurobi日志时,我看到每次运行模型时日志都大不相同。我想知道是否需要修复某些东西以获得一致的运行时间。应该指出的是,我有同样的问题(无论是在计算机上还是在共享群集上运行)。
我在这里共享了指向日志文件的链接:log file。
非常感谢您的协助。
解决方法
Gurobi在两次运行中的行为完全相同:
Run 1:
Cutting planes:
Gomory: 4
MIR: 13
Flow cover: 279
RLT: 168
BQP: 165
Explored 291452 nodes (10662765 simplex iterations) in 722.77 seconds
Run 2:
Cutting planes:
Gomory: 4
MIR: 13
Flow cover: 279
RLT: 168
BQP: 165
Explored 291452 nodes (10662765 simplex iterations) in 541.59 seconds
您看到不同的运行时间很可能是由于其他任务同时消耗了CPU和内存资源。为了获得可比的结果,您需要在求解时未做任何其他事情的机器上运行。例如,使用笔记本电脑进行此类实验不会给您可靠的结果。还有诸如热节流之类的事情可能会干扰精确的时间测量。
对此的一种可能的解决方案是多次运行同一实验,然后比较运行时间的最小值或平均值。无论如何,最好在专用的计算服务器上运行它。
另请参见Gurobi community forum中问题的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。