微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google OR 工具:MIP 问题中的绑定常量?

如何解决Google OR 工具:MIP 问题中的绑定常量?

如何找出在使用 Google OR 工具解决的混合整数编程 (MIP) 问题中存在哪些约束?我将所有约束存储在一个列表中,因此在运行 CBC 求解器后我可以访问它们。我正在使用他们的 Python 包装器 pywraplp。

如何找出使用 Google OR 工具解决的 MIP 中存在哪些约束?我将所有约束存储在一个列表中,因此在运行 CBC 求解器后我可以访问它们。我正在使用他们的 Python 包装器 pywraplp。

这是我的代码的简化版本:

from ortools.linear_solver import pywraplp

# here I populate xp,yp,namep and Cp_dict

solver = pywraplp.solver.CreateSolver('CBC')

constraints_all = []

for i,p_name in enumerate(namep):
    p_constraint = solver.Constraint(0,solver.infinity())
    p_constraint.SetCoefficient(xp[i],-1)

    for j in Cp_dict[p_name]:
        p_constraint.SetCoefficient(yf[j],1)
            
    constraints_all.append(p_constraint)

objective = solver.Objective()

for x in xp:
    objective.SetCoefficient(x,1)

objective.Setmaximization()
status = solver.solve()

# Here I want to check for binding constraints.

有什么想法吗?我在求解器或约束类中都找不到对应的 getter 或函数,而且只为连续问题计算双变量(MIP 不是这种情况)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。