tuneして求めたparamsをそのまま即座に使って最適化する
tuningツールがgurobiにはあって.
っていきなり話しても急ですね.
gurobiでは計算するにあたって,いろいろいじれるパラメータがあります.どんな解き方しますか~?みたいなもんです.具体的には,
model.params.~~ = ??
みたいな形で与えます.
で,そのパラメータなるものが膨大にあってわけわからんので,tuning toolというものがあり,
model.tune()
ってやってやると,そのmodelを解くのにいい感じのパラメータの組み合わせをgurobiが求めてくれる,というものでございます.
tuningの結果を出力するのに,model.getTuneResult()というメソッドを使います.そしてmodel.write("~~.prm")とやってやると,パラメータの組み合わせが書き込まれたprmファイルを出力してくれるわけです.
で,私は誤解してたんですが,このgetTuneResultメソッド,modelにパラメータを反映させる,というものなんですね.
これは,パラメータの組み合わせは複数あったりするんですが,そのパラメータの組み合わせのリストのうち何番目をmodelに反映させますか?というものです.
[パラメータの組み合わせ0,パラメータの組み合わせ1,・・・]
みたいなやつの何番目を選びますか?ということです.ちなみに1つめのパラメータの組み合わせが,一番よさそうだったパラメータの組み合わせになります.
というわけで
model.getTuneResult(0)としてやれば,一番よさげだったパラメータの組み合わせをmodelに反映させてくれるので,あとはそのままmodel.optimize()してやれば,求まったばかりほやほやのパラメータの組み合わせで計算を開始してくれるわけです.writeしてるのは,あれですね,記念みたいなもんですね.
ではまた.