微分情報なし 微分情報あり 線形 非線形 線形 非線形 自前実装 対策 ü シンプレックス法 ü 黄金分割法 ü ニュートン法 ü 最急降下法 ü 共役勾配法 ü 準ニュートン法 ü 線形計画法※ ü 有効制約法 ü 逐次二次計画法※ ü 混合整数計画法※ ソルバ必須 ü メタ解法※ 近傍定義が必要 ü メタ解法※ 近傍定義が必要 ü 制約プログラミング※ ソルバ必須 状況に応じて ソルバの 導入を推奨 独断と偏見による、最適化の種類と対策チートシート。基本的に自前実装は最終手段 ※はアルゴリズムでなくフレームワーク
微分情報なし 微分情報あり 線形 非線形 線形 非線形 自前実装 対策 ü シンプレックス法 ü 黄金分割法 ü ニュートン法 ü 最急降下法 ü 共役勾配法 ü 準ニュートン法 ü 線形計画法※ ü 有効制約法 ü 逐次二次計画法※ ü 混合整数計画法※ ☓ソルバ必須 ü メタ解法※ ◎近傍定義が必要 ü メタ解法※ ◎近傍定義が必要 ü 制約プログラミング※ ☓ソルバ必須 状況に応じて ソルバの 導入を推奨 独断と偏見の最適化の種類と対策チートシート。基本的に自前実装は最終手段 ※はアルゴリズムでなくフレームワーク 実社会の最適化問題の9割以上が組合せ最適化 Ø配送最適化 Ø施設配置問題 Øスケジューリング …
微分情報なし 微分情報あり 線形 非線形 線形 非線形 自前実装 対策 ü シンプレックス法 ü 黄金分割法 ü ニュートン法 ü 最急降下法 ü 共役勾配法 ü 準ニュートン法 ü 線形計画法※ ü 有効制約法 ü 逐次二次計画法※ ü 混合整数計画法※ ☓ソルバ必須 ü メタ解法※ ◎近傍定義が必要 ü メタ解法※ ◎近傍定義が必要 ü 制約プログラミング※ ☓ソルバ必須 独断と偏見の最適化の種類と対策チートシート。基本的に自前実装は最終手段 ※はアルゴリズムでなくフレームワーク 組合せ最適化 線形 非線形 ü 混合整数計画法※ ☓ソルバ必須 ü メタ解法※ ◎近傍定義が必要 ü メタ解法※ ◎近傍定義が必要 ü 制約プログラミング※ ☓ソルバ必須 機械学習や組合せ最適化の内部で必須 高速に解くことを義務づけられている 状況に応じて ソルバの 導入を推奨
多様な解を得られるがメモリを喰う ü 手順が多いのでパラメータが多く調整が大変 ü 解がバイナリ列なら、先行研究が多い タブーサーチ (TS) ü シンプルでクライアントに説明しやすい ü 過去の解の持ち方に工夫が必要 シミュレーテッド アニーリング法 (SA) ü 最適解への収束性を確率的に保証できる優等生 ü 現在解と最良解しか持たないのでメモリに優しい ü パラメータが少ないので実装簡単 ü ランダムネスを含んでいるので敬遠することも
速度が速いのはもちろんのこと、 活発に開発が進んでおりバージョンが上がるたびに先進的な機能が追加されている。 ü いち早くPythonインターフェイスを導入して、最適化屋さんをC言語から救った功績も あり、様々な点で業界をリードしている。 CPLEX ü 元はGurobiの中の人達がやっていたILOG社の製品だったが、 IBMが買収してIBM CPLEXとなったソルバー ü 買収後の大幅値上げ、Pythonインターフェイス導入遅れ、Gurobiの台頭などにより 最近はほとんど話を聞かない ü 最適化≒CPLEXだった時代もあり、悪いソルバーではないのだが・・・ Xpress Ø 使ったことないのでノーコメント 有料ソルバー