【问题标题】:How to get optimality gap using CPLEX Python API?如何使用 CPLEX Python API 获得最优差距?
【发布时间】:2018-06-06 15:18:49
【问题描述】:

如何使用 CPLEX Python API(CPLEX 12.5、Python 2.7.15)获得最优差距(相对和绝对)?是否有诸如get_optimal_gap() 之类的函数会给出最优差距?还是解析输出(如提到的here)是唯一的方法?我看到有自定义函数,例如solution.get_objective_value() - 如果有人可以建议在线资源,其中包含可应用于 cplex 对象/文件的所有函数的列表,那就太好了。目前我正在使用以下代码(礼貌:thisIBM 文档):

    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)

【问题讨论】:

    标签: python-2.7 cplex


    【解决方案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 参数。

    【讨论】:

    • 这太好了,谢谢!文档很棒!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多