厳密な大域的最適化
はじめに | 一変数最適化 |
アルゴリズム | 停留点と特異点を見付けることによる最適化 |
CAD (Cylindrical Algebraic Decomposition)法による最適化 | 整数上の最適化 |
線形最適化 | 領域上の最適化 |
はじめに
大域的最適化問題は, Minimize,Maximize,MinValue,MaxValue,ArgMin,ArgMaxを使って厳密解を求めることができる.
アルゴリズム
問題のタイプに応じて,いくつかの異なるアルゴリズムを使うことができる.
最も一般的なメソッドはCAD (cylindrical algebraic decomposition)法に基づいている.これは目的関数と制約条件が実代数関数である場合に適用される.この方法では,常に大域的極値(達しない場合は極値)が計算できる.パラメータが存在する場合,極値はパラメータの区分代数関数として計算することができる.このメソッドの不利な点は,変数の数という点において,非常に高度で二重指数関数的な複雑性が伴うという点である.パラメータを含まない特殊な場合には,より速い方法が使える.
目的関数と制約条件すべてが線形である場合,大域的極値はシンプレックス法を使って厳密に計算することができる.このアプローチは線形分数目的関数にも使うことができる.
1変量問題では,制約条件の解集合,不連続点,集合内の目的関数の導関数の零点を見付けるのに.方程式および不等式の解法が使われる.
大域的極値を見付ける別の方法に,ラグランジェ乗数かKKT(Karush–Kuhn–Tucker)条件を使って局所的極値をすべて求め,最小(または最大)のものを選ぶというものがある.しかし,完全な自動メソッドでは,複雑さが増す.局所的極値に必要な条件を解く上に,目的関数の滑らかさと制約条件の滑らかさ・非縮退性をチェックする必要がある.また,制約条件により定義された集合の境界(集合が非有界ならば無限)における極値もチェックしなければならない.一般にこれには実数体上の方程式および不等式の系を余分に解くことが必要になる.このため,CADの計算はCADアルゴリズムによる最適化における計算より無難しくなることがある.現在,Wolfram言語では有界の四角形の中の同値制約,または有界解集合による単独の不等式制約についてのみラグランジェ乗数が使われている.このメソッドでも,制約条件の多数の停留点と多数の特異点が有限であることが要求される.CADベースのアルゴリズムよりもこのメソッドの方がよい点は,超越問題がWolfram言語で解ける方程式系に導かれる場合は,その超越問題が解けるという点である.
CAD (Cylindrical Algebraic Decomposition)法による最適化
例題
最適化にカスタマイズされたCAD法
CAD法は,Wolfram言語ではCylindricalDecompositionとして直接利用できる.このアルゴリズムについては,「実多項式系」についてのチュートリアルで詳述してある.「実多項式系」で説明されているCAD法のオプション,特にCADConstructionオプションを設定すると,最適化関数の性能に影響を及ぼす可能性がある.次では大域的最適化問題を解くためにCAD法をカスタマイズする方法を説明する.
座標関数の最小化への還元
代数的制約条件の解集合上の代数関数 を最小化する必要があるとする.ここで は変数のベクトル, はパラメータのベクトルである. を新しい変数とする.制約条件上の の最小化は,により与えられる半代数集合上の座標関数 の最小化と等価である.
が1つの変数 の単調関数ならば,新しい変数は必要ない.を最小化することができるからである.
CAD法の射影段階
まず変数 から始め,次に新しい変数 ,その次にパラメータ を投影する.
代数関数が存在する場合,それは新しい変数に置き換えられ,その変数が満足する方程式および不等式が加えられる.代数関数を置換する変数が最初に投影される.この変数はアルゴリズムのリフティング段階でも特別な注意が必要である.
ここで,同値制約の使用を含む,Hong,McCallun,Brownによる射影演算子の向上を使うことができる.新しい変数を導入する必要がある場合は,少なくとも1つの同値制約,つまり があることに注意する.
CAD法のリフティング段階
最初にパラメータ がリフトされ,セルの代数関数方程式および不等式の記述が構築される.パラメータのみに依存する制約条件があり,がパラメータセル上で完全に同じように偽であると判定できるならば,それ以上このセルをリフトする必要はない.
最小化変数 をリフトするときは, の最小値から開始し,制約条件を満足する最初のセルを見付けるまで続ける(残りの変数を深さ優先でリフトする).このセルが, の射影式の根に対応するならば,その根は の最小値であり,セルの任意の点の に対応する座標は最小に達した点を与える.パラメータが存在するならば,セルを囲む多項式の根に関するセルの点のパラメータ記述を得る.パラメータがない場合は,CAD法で使われる標本点を与えることができる.制約条件を満足する最初のセルが区間(ここで は の射影式の根)に対応するなら, は の値の下限であり,この下限値には達しない.また,制約条件を満足する最初のセルが区間に対応するならば, は下から有界でなくなる.
線形最適化
目的関数とすべての制約条件が線形であるならば,大域的極値はシンプレックス法を使って厳密に計算することができる.
一変数最適化
一変数の問題では,制約条件の解集合,集合内の目的関数の導関数の不連続点と零点を見付けるのに,方程式および不等式の解法が使われる.
停留点と特異点を見付けることによる最適化
次は同じ制約条件を持つ,三次元の例題である.目的関数によって,最大値には制約条件の解集合上の目的関数の停留点,制約条件の解集合の境界の目的関数の制約の停留点,制約条件の解集合の境界の境界で達する.
整数上の最適化
整数線形最適化
整数線形最適化とは目的関数が線形で,制約条件が線形有界であり,変数が整数範囲にある最適化問題である.
整数線形最適化問題を解くために,Wolfram言語はまず同値制約を解き,問題を不等式制約条件のみを含む問題に還元する.次に格子還元法を使い,不等式系をより簡単な形式に置き換える.最後に分枝限定法を使って簡約された最適化問題を解く.
整数解発見と組み合せた実数上の最適化
制約条件の整数解集合上で関数 を最小化しなければならないとする. をの実数解集合上の の最小値とする.を満足する整数点が存在するならば,はの整数解集合上の の最小値である.そうでない場合は,等の整数解を見付けなければならない.このヒューリスティックは,実最適化問題およびすべての整数解発見問題を解くことができ,前もって決まっている試行回数内に整数解を見付けることができる場合にのみ有効である.Wolfram言語ではデフォルトで10個の最適値候補を試す.IntegerOptimumCandidatesシステムオプションを使うと,この値を変更することができる.
領域上の最適化
制約条件を指定するために領域を使うことができる.領域上の最適化問題を解くために使われる方法は,どのようなタイプの領域記述が得やすいかによって決まる.