汎⽤解法︓整数計画問題などに定式化して汎⽤ソルバーを適⽤する. ü 専⽤解法︓個々の問題の特徴を利⽤した専⽤ソルバーを開発する. 4 問題の特徴が利⽤できず⾼性能な アルゴリズムの実現が困難 アルゴリズムが適⽤可能な 範囲が狭く汎⽤性に⽋ける 多様な問題に適⽤可能な 汎⽤性の⾼いアルゴリズム 個々の問題の特徴を利⽤した ⾼性能なアルゴリズム a 整数計画問題 分枝限定法 b c d e 現実世界 a b c d e 現実世界 問題 a 問題 b 問題 e アルゴリズム a アルゴリズム b アルゴリズム e 「汎⽤的」かつ「⾼性能」なソルバーの実現は困難
現実的な計算時間で解ける問題の規模が限られる場合が多い. • 専⽤アルゴリズムを開発 ü 汎⽤の数理最適化ソルバーでは解けない⼤規模・複雑な問題. ü 問題構造を上⼿く利⽤すれば効率的なアルゴリズムが開発可能. ü ⼗分な知識・技術と開発期間が必要. 5 a 整数計画問題 b c d e 現実世界 a b c d e 現実世界 問題 b 専⽤アルゴリズム 汎⽤の数理最適化 ソルバー 最適化問題の定式化などの⼯夫で解決できることも多い
ILOG CPLEX (IBM) ü FICO Xpress Optimization (FICO Corporation) ü Numerical Optimizer (NTTデータ数理システム) ü その他いろいろ. • ⾮商⽤ソルバー ü SCIP, CBC, GLPK, lp_solve, その他いろいろ. • 商⽤・⾮商⽤ソルバー性能の現状 ü 線形計画問題︓商⽤ ⾮商⽤ ü 整数計画問題︓商⽤ ⾮商⽤ 8 ⾮線形な整数計画問題にも対応可能な整数計画ソルバーも現れつつあるが,線形の整数計画問題に ⽐べると効率良く解ける問題の規模は⾮常に⼩さい. 整数計画を含めた最適化ソルバー全般は,H. D. Mittelmannの Decision Tree for Optimization Softwareが詳しい. (http://plato.asu.edu/guide.html)
整数計画問題を解くソルバーの進歩は著しく「15年間で100万倍⾼速化した」 といわれる.この100万倍の内訳は,ハードウェアの⾼速化で1000倍,アル ゴリズムの⾼速化で1000倍である.この数字は数年前に⾔われていたもので あり,現在では「20年間で1000万倍(=3000倍×3000倍)」と⾔っても過⾔ ではない. (中略) どのぐらいの規模の問題を解けるのだろうか︖⼀概に⾔うことはできないが, 個⼈的には以下のような感覚を持っている. ü 変数が1000個未満︓何も考えずにソルバーで解かせる. ü 変数が5000固程度︓おそらく解ける. ü 変数が10000個程度︓最適性の証明が難しいこともある. ü 変数が50000個程度︓問題が簡単なら解ける. 個⼈⽤PCを利⽤ 整数計画問題の難しさは必ずしも⼊⼒サイズに⽐例しないので,⼩規模でも極めて難問であるという事 例は少なくない.