如何使用CPLEX Python API获得最佳性差距?

时间:2018-06-06 15:18:49

标签: python-2.7 cplex

如何使用CPLEX Python API(CPLEX 12.5,Python 2.7.15)获得最佳性差距(相对和绝对)?是否有get_optimal_gap()这样的函数可以给出最优性差距?或者解析输出(如前所述here)唯一的方法?我看到有solution.get_objective_value()之类的自定义函数 - 如果有人可以建议具有可以在cplex对象/文件上应用的所有函数列表的在线资源,那将是很好的。目前我正在使用以下代码(礼貌:this IBM文档):

    import cplex
    import sys

    def sample1(filename):
        c = cplex.Cplex(filename)
        try:
            c.solve()
        except CplexSolverError:
            print "Exception raised during solve"
            return

        # solution.get_status() returns an integer code
        status = c.solution.get_status()
        print "Solution status = " , status, ":",
        print c.solution.status[status]
        print "Objective value = " , c.solution.get_objective_value()

    sample1(filename)

1 个答案:

答案 0 :(得分:1)

CPLEX Python API的文档是here(目前版本12.8)。

要获得相对mip间隙,您可以使用c.solution.MIP.get_mip_relative_gap()。要计算绝对mip间隙,您需要c.solution.MIP.get_best_objective()

如果您还没有,那么您还需要查看CPX_PARAM_EPGAPCPX_PARAM_EPAGAP参数。