数理最適化は自然科学・工学・社会科学など様々な分野で利用されるため、最適化問題は基本的な問題の一つである。実世界の現象の数理的な解析に関わる問題や抽象的な理論の多くをこの最適化問題という一般的なくくりに入れることができる。その歴史は18世紀の変分問題まで遡れ[2]、1940年代には線型計画法で線形最適化問題(線型計画問題)が定式化され、その後も様々なサブクラスが提案・研究されている(詳細は 数理最適化#歴史)[1]。
定義
編集ここでは最小化問題をもって最適化問題を定義する(参考: #最小化と最大化が等価)。
を集合、 を実数全体の集合、 を関数とする。最適化問題は次の問題である:
なる を求めよ
このとき を
つまり、最適化問題とは、制約が規定する実行可能領域 のなかから目的関数 を最小化する実行可能解 を求める問題である。
数理最適化の慣習として「解」は「点」と同義であり(言い換え例: 実行可能点)、これは「問題の(最適)解」を指す語ではない。また、最小化問題であることを強調する場合は を最小解、 を最小値と呼ぶ。
性質
編集最小化と最大化が等価
編集最適化問題において最小化問題と最大化問題は等価である。
最大化問題では となる を探す。ここで目的関数の符号を反転させると であるため、最大化問題は等価な最小化問題に書き直せる。つまり最適化問題では最小化と最大化は等価であり、最大化問題にも最小化用のアルゴリズムが使える[6]。
最大化問題あることを強調する場合、 を最大解、 を最大値とも呼ぶ。
分類
編集最適化問題は様々な観点から分類できる。
まず考える集合 A の含まれる空間によって、無限次元と有限次元の問題に大別される。すなわち、A が関数空間に含まれる場合、無限次元の最適化問題となり、変分問題や最適制御問題が代表的である。A がユークリッド空間に含まれる場合は、有限次元の最適化問題となる。
また A が全空間のように実質的に制約条件がない問題は無制約問題(制約なし問題)となり、そうでない場合は有制約問題(制約付き問題)となる。
有限次元の場合、最適化問題は目的関数・制約(実行可能領域)に基づき分類できる:
連続最適化問題
編集連続最適化問題(英: continuous optimization problem)とは、制約条件の集合 A がユークリッド空間 の部分集合の物。
無制約問題を解析的に解く場合は、最適性の必要条件(偏微分を取って 0 )を満たす点の中に最小解がある。束縛条件がある場合はラグランジュの未定乗数法が使える。
導関数が必要なアルゴリズム
編集導関数が必要なアルゴリズムを勾配法という。以下は、勾配法のアルゴリズム。
- 直線探索と信頼領域 - 勾配法における2つの主要な反復法の枠組み
- 最急降下法 - 最も単純な勾配法
- 確率的勾配降下法 - 最急降下法のオンライン学習版(ニューラルネットワークなどで使用)
- AdaGrad - 学習率の自動調整を行う
- RMSProp
- Adam
- 確率的勾配降下法 - 最急降下法のオンライン学習版(ニューラルネットワークなどで使用)
- 共役勾配法
- ニュートン法
- 準ニュートン法
- ガウス・ニュートン法 - 非線形最小二乗法の問題(平方和の最適化問題)を解く
- 内点法
MathematicaのFindMinimumのデフォルトの設定は、制約条件付きは内点法[7]、目的関数が平方和の場合はレーベンバーグ・マーカート法を使い[8]、そうで無い場合はBFGS法を使い、250次元以上の場合L-BFGS法を使う[9]。
導関数が不要なアルゴリズム
編集以下は、導関数が不要(英: Derivative-free optimization)なアルゴリズム。
MathematicaのNMinimumのデフォルトの設定は、線形計画問題ならば単体法を使い、整数パラメータがある場合などは差分進化を使い、それ以外はNelder-Mead法を使う[10]。
1次元用
編集2次元以上に対応している連続最適化問題のアルゴリズムでも内部で1次元用のアルゴリズムを使用している場合も多い。以下は、1次元用のアルゴリズム。
線形計画問題用
編集以下は線形計画問題用のアルゴリズム。
離散最適化問題
編集離散最適化問題(英: discrete optimization problem)とは、制約条件の集合 A が の部分集合の物。詳細は組合せ最適化を参照。
計算理論の問題のクラス
編集脚注
編集注釈
編集- ^ 物理学やコンピュータビジョンの分野
出典
編集参考文献
編集- 矢部博『工学基礎 最適化とその応用』(初版)数理工学社、2006年3月25日。ISBN 4-901683-34-9。