最適化問題に対する超高速&安定計算

大規模最適化問題、グラフ探索、機械学習やデジタルツインなどの研究のお話が中心

かなりハードな MIP その2

2011年07月13日 01時15分49秒 | Weblog
前回でも取り上げたある MIP を以下の計算サーバ上で CPLEX 12.2.0.2 を用いて解いていたのだが、結局メモリ不足で終了となっていた。CPLEX 24 コアとメモリ 128Gbytes を使用しても上限と下限の差がなかなか縮まらない。少し気になる点では、Iteration 数がオーバーフローを起こしてマイナスの値になっている。

○計算サーバ(4 CPU x 6 コア = 24 コア)
CPU : AMD Opteron 8439 (2.80GHz / 6MB L3) x 4
Memory : 128GB (32 x 4GB / 800MHz)
OS : Fedora 15 for x86_64

1345804802 806509418 234.2193 8 308.0000 231.3905 1.04e+10 24.87%

There may be further error information in the clone logs.

Clique cuts applied: 19
Cover cuts applied: 259

Implied bound cuts applied: 12
Zero-half cuts applied: 11
Gomory fractional cuts applied: 10

Root node processing (before b&c):
Real time = 0.13
Parallel b&c, 24 threads:
Real time = 116783.48
Sync time (average) = 1885.41
Wait time (average) = 101.39
-------
Total (root+branch&cut) = 116783.61 sec.
Warning: MIP starts not constructed because of out-of-memory status.

Consider using CPLEX node files to reduce memory usage.
CPLEX Error 1001: Out of memory.

Solution pool: 2 solutions saved.

MIP - Error termination, integer feasible: Objective = 3.0800000000e+02
Current MIP best bound = 2.3139095673e+02 (gap = 76.609, 24.87%)
Solution time = 116785.32 sec. Iterations = -2147483648 Nodes = 1346741630 (806963365)
コメント (5)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« かなりハードな MIP | トップ | 2011年日本OR学会秋季研究発表会 »
最新の画像もっと見る

5 コメント

コメント日が  古い順  |   新しい順
Unknown (Yuji)
2011-07-13 15:24:17
この場合,まず異なった定式化を試せるなら,そちらを試してみるべきです.定式化に関しては,相談できる人はまわりにいっぱいいると思います.政治的な理由で定式化には触れないという場合があったりしますが,そちらにはあてはまらないと思います.よりよい定式化が見つからない場合には,次にソルバのパラメタチューニング等を検討するのが筋だと思います.
返信する
Unknown (Fujisawa)
2011-07-13 17:01:22
この問題は実際には MIP ソルバーではなくヒューリスティックで解いています。元問題の性質から言って MIP ソルバーで最適に解く必要もなく、1問題を解くまでに与えられた時間を考慮すると速やかに解(近似解でも可)を求める必要があります。
ですから、この問題を解きたいというよりも MIP ソルバーの性質(性能)を調べるのが目的です。
返信する
Unknown (Yuji)
2011-07-13 18:05:10
実行可能解の存在がなんらかの理由で保証されていて,ヒューリスティックが必ずそれを見つけられるという保証があるのかどうかが個人的には気になります.ただ,そういったことが保証されているとしも,異なった定式化を試してみるのは良いのではないでしょうか?MIPソルバ内部では,読み込んだ問題を再定式化するので,どのような定式化が,現在のMIPソルバの性能を引き出す定式化なのかは,特殊なケースを除くと自明ではないです.教科書や論文に書かれている,頭で考えて良さそうに思われる方法が,大量の数値実験の結果によって覆されるケースがMIPでは結構あります.自ら実験して確かめるのがベストですし,ノウハウが蓄積されます.また,解きたい問題そのものへの理解も深まります.
返信する
Unknown (Fujisawa)
2011-07-17 12:25:07
SDP の場合でも同じですが、ほとんどのユーザーは単に MIP が解きたいだけで、MIP 自体の研究をしたいわけではないと思います。それに定式化や最適化手法についても詳しいとは限りませんので、ユーザーに過度の要求をすることは難しいと思います。そこで一般ユーザーが実際に自分達の問題が解けないときに、どのように対処したら良いのかについて、様々なノウハウを記載した Web サイト等があると好ましいと思いますので、MIP の研究者の方で作成されて中身を充実させていくのはいかがでしょうか?
返信する
Unknown (Yuji)
2011-07-18 19:13:04
SDPの場合と比較して,MIPのインスタンスが解けるかどうかの判断は困難なので,ノウハウを記載したWebサイトがあれば良いのですが,現実的には難しい気がします.まず,解きたい問題とその定式化を外に出せるかと言うと難しい気がします. 次に,ソルバ開発者側は,読み込んだ問題を再定式化することからわかるように,どのようなインスタンスに対しても対応できるソルバの開発を目指しています.アルゴリズム改善によりインスタンス自体が,時間とともに簡単に解けるインスタンスに分類されることもありますし,逆に,インスタンスのタイプを同定するヒューリスティックの振る舞いなどにより,ソルバのバージョンが上がって解く時間が長くなったりもします.実際,デフォルト設定で特定ソルバを利用した場合には,そのソルバの古いバージョンの方が早く解けるインスタンスもあるはずです.つまり,インスタンスに対して,どのソルバが効果的なのかもどんどん変化して行きます.本当に汎用的に使えるノウハウがあるなら,多分,そのノウハウはMIPソルバ内部に組み込まれている,あるいは,組み込まれて行く,気がします.

求められているようなページというのは,結局MIPLIB2010のページになってしまいます.人工的に作った問題というのは,極端に難しくなったり,極端に易しくなったりしますので,MIPLIB2010では現実問題から定式化されたインスタンスを集めていました.現実世界の問題を解きたいという考え方からです.ですから,どのような問題をどのように定式化して,どのくらいの変数や,どのようなタイプの制約式をどの程度含むインスタンスが,どの程度の難易度を持つ問題になり得るのかは,ある程度はMIPLIB2010のページに集約されています.また,最新の研究成果で,実際に問題を解くことに対して効果的だった論文は参照されるはずです.

定式化に関しては自由度があるので,ユーザ側の負担と考えれば,負担にはなるのですが,ユーザ側で改善の可能性はあります.解きたい問題を知っている人でないと他の定式化が可能なのかどうか判断ができないと思います.ですから,MIPソルバがもっと強力になるのを待つことにしてあきらめるか,ユーザ側で試行錯誤するかのどちらかになります.個人的には,数理計画の専門家と組んで,実際に解きたい問題に特化したノウハウを蓄積するのが良いと思います.私自身は,普通に定式化して簡単には解けなかった場合は,泥臭いのですが,試せるなら,さまざまな定式化を試して,様々なソルバでの計算の進行状況を眺めて,本当にあきらめるべきかどうかを含めて考えるしかない気がします.
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Weblog」カテゴリの最新記事