返回当前最佳解决方案CPLEX Python API

2024-04-23 06:06:18 发布

您现在位置:Python中文网/ 问答频道 /正文

由于MIP问题需要较长的计算时间,当计算时间超过,例如一小时,相对差距为5%时,如何指示cplex返回当前的最佳解? 就个人而言,我相信我可以同时使用这两个函数:model.parameters.timelimit.set()和{},但是如何将两者结合起来呢?在


Tags: 函数model时间parameters小时set差距mip
1条回答
网友
1楼 · 发布于 2024-04-23 06:06:18

必须使用回调来强制执行这两个条件。CPLEX附带的mipex4.py示例正是如何做到这一点的。在

以下是示例中的回调:

class TimeLimitCallback(MIPInfoCallback):

    def __call__(self):
        if not self.aborted and self.has_incumbent():
            gap = 100.0 * self.get_MIP_relative_gap()
            timeused = self.get_time() - self.starttime
            if timeused > self.timelimit and gap < self.acceptablegap:
                print("Good enough solution at", timeused, "sec., gap =",
                      gap, "%, quitting.")
                self.aborted = True
                self.abort()

以及其他相关部分:

^{pr2}$

相关问题 更多 >