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 (将#修改为@)