В обратном вызове 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)])