在GRB.Callback.MIPSOL
回调中,我想获取expression
的值(针对当前解决方案),它是LinExpr
。
尝试调用expression.getValue()
并在回调内部时得到一个AttributeError
(在优化完成后有效)。
我能找到的最好的是:
vals = model.cbGetSolution([expression.getVar(i) for i in range(expression.size())])
coefs = [expression.getCoeff(i) for i in range(expression.size())]
val = sum([a * b for a, b in zip(vals, coefs)])