Python gurobi: Как получить значение LinExpr для текущего решения в обратном вызове MIPSOL? - PullRequest
0 голосов
/ 20 декабря 2018

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