最適化の問題を解決するために Python で Pulp を使用しています。
私は使っている
import pulp
# code
pulp.prob.objective.value()
ここで、最適化変数にアクセスしたいと思います。これを行う方法?
Pulpのドキュメントで、次のようなものを見つけましたuse_vars[i].varValue
が、ベクター全体を取得するにはループする必要があります。客観的な値のように直接取得できますか? パルプに詳しい人いますか?
あなたができる最適化ベクトル全体を取得するには
pulp.prob.variables()
すべての変数のリストを返します。リストの i 番目の要素、または i 番目の変数にアクセスするには、次のことを行う必要があります。
pulp.prob.variables()[i].varValue
次のような関数で目的値と変数を返すことができます
return pulp.prob.objective.value(), pulp.prob.variables()
そして、次のような for ループを使用して変数にアクセスします
varsdict = {}
for v in prob.variables():
varsdict[v.name] = v.varValue
最終結果はvarsdict
次のような辞書になります
varsdict = {'x_10': 0.0, 'x_0': 1.0, ...}