Как получить оптимальные переменные оптимизации в Pulp с Python?

Я использую Pulp с Python для решения проблемы оптимизации.

я использую

import pulp
# code
pulp.prob.objective.value()

Теперь я хотел бы получить доступ к переменным оптимизации. Как это сделать?

В документации Pulp я нашел что-то вроде use_vars[i].varValue но я должен зациклить, чтобы получить весь вектор. Могу ли я получить это прямо как в объективной стоимости? Кто-нибудь знаком с Чтивом?

1 ответ

Решение

Чтобы получить весь вектор оптимизации вы можете сделать

pulp.prob.variables()

который вернет список всех ваших переменных. Чтобы получить доступ к i-му элементу вашего списка или i-тым переменным, вы должны сделать

pulp.prob.variables()[i].varValue

Вы можете вернуть объективное значение и переменные в функции, такие как

return pulp.prob.objective.value(), pulp.prob.variables()

а затем получить доступ к вашим переменным, используя цикл как

varsdict = {}
for v in prob.variables():
    varsdict[v.name] = v.varValue

Окончательные результаты будут в словаре varsdict это выглядит как

varsdict = {'x_10': 0.0, 'x_0': 1.0, ...}
Другие вопросы по тегам