6

最適化の問題を解決するために Python で Pulp を使用しています。

私は使っている

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

ここで、最適化変数にアクセスしたいと思います。これを行う方法?

Pulpのドキュメントで、次のようなものを見つけましたuse_vars[i].varValueが、ベクター全体を取得するにはループする必要があります。客観的な値のように直接取得できますか? パルプに詳しい人いますか?

4

1 に答える 1

7

あなたができる最適化ベクトル全体を取得するには

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, ...}
于 2016-05-31T14:32:56.453 に答える