このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
制約付きの最小化は、スカラー関数 f(x)の局所的最小値のベクトル xを見つける問題です。この xには制約があります。
第1次のつ以上の式が成り立つ必要があります。c (x)≤0,测查(x) = 0, x·≤b, Aeq·x =说真的,l≤x≤u。半無限計画法で使用される制約もあります。
优化工具箱™のソルバーで使用される多くのメソッドは,"信頼領域法" を基にしています。信頼領域法はシンプルなものですが最適化では重要な概念です。
最適化の信頼領域法のアプローチを理解するために制約なし最小化問題を考え,f (x)を最小化します。ここで関数はベクトル引数を取り,スカラーを出力します。N空間の点 x を想定し、より小さい関数値へ移動して最小化を行う場合を考えてみましょう。基本的な概念は、シンプルな関数 q で f を近似することです。この関数は、点 x の近傍 N で関数 f の挙動をよく表すものです。この近傍が信頼領域です。テスト ステップ s が N における最小化 (または近似最小化) によって計算されます。信頼領域の部分問題を次に示します。
(1) |
f(x+s)
F(x)を最小化するための信頼領域を決める上で重要な問題は,近似问(現在の点xで定義)の選択および計算方法,信頼領域Nの選択および変更方法,信頼領域の部分問題を解く精度です。この節では制約なしの問題に焦点をあてます。変数上に制約があるために複雑度が増す問題については、後節で取り扱います。
標準的な信頼領域法 (
(2) |
ここで Gは現在の点 xにおける Fの勾配です。Hはヘッセ行列 (2 次導関数の対称行列) です。Dは対角スケーリング行列であり、Δ は正のスカラーです。∥ . ∥ は 2.ノルムです。
このようなアルゴリズムにより
2.次元の部分空間 sは、以下に示す
(3) |
(4) |
このように sを選択する背景の考え方は、最急降下方向または負の曲率方向にグローバルな収束を進めることと、ニュートン ステップが存在する場合は、これを介して迅速にローカルな収束を達成することです。
信頼領域法の概念を使用した制約なしの最小化の概要は以下になります。 2次元の信頼領域の部分問題の定式化 テスト ステップ sを決めるため、 f(x+s) Δ を調節します。
これら4つのステップは,収束するまで繰り返されます。信頼領域の大きさΔは標準的な規則に基づいて調整されます。特に,使用するステップが適用されない場合,すなわちF (x + s)≥F (x)の場合、内点集合は小さくなります。詳細は
优化工具箱のソルバーは特定の関数 Fの重要かつ特別なケースをいくつか扱います。非線形最小二乗法、二次関数、線形最小二乗法を考えてみましょう。しかし、根底に存在するアルゴリズムは、一般的な場合と同じです。これらの特別な場合は後続の節で説明します。
線形方程式系Hp=–gの大きな対称正定値システムを解く一般的な方法は、前処理付き共役勾配法 (PCG)です。この反復法は、形式 H·vの行列ベクトル積を計算する機能を必要とします。ここで vは任意のベクトルです。対称正定値行列 Mは Hの“前提条件子”です。すなわち,M = C2..です。ここで、C1.HC
最小化の過程で、ヘッセ行列 Hが対称と仮定します。しかし、Hは、強い最小化子の近傍の中でのみ正定値であることが保証されます。PCGアルゴリズムは、負または 0の曲率方向が検出された場合に終了します (DT高清≤ 0)。PCG出力方向pは負の曲率方向またはニュートンシステムHp=–gへの近似解のどちらかです。いずれにせよ、Pは信頼領域法のアプローチで使用される 2.次元部分空間を定義するために役立ちます (
線形制約は、制約なしの最小化問題に対して記述された状況を複雑にします。しかし、前述の基本的な考え方は、明確かつ効率的な形で踏襲されます。优化工具箱のソルバーの信頼領域法は、厳密に実行可能な反復処理を行います。
一般的な線形等号制約付き最小化問題は、次のように表現されます。
(5) |
ここで,はm行n列(M≤ N) の行列です。いくつかの 优化工具箱のソルバーは A.を前処理し、A.Tの鲁分解をベースにした手法 (参考文献
(6) |
ここでgYDF4y2Ba
は A.を近似 (ランクを失わないという条件で A.の小さな非ゼロがゼロに設定される) し、Cは Hへのスパース対称正定値近似、すなわちC=Hです。詳細は
ボックス制約問題は,次のように表現されます。
(7) |
ここで、Lは下限を表すベクトル、Uは上限を表すベクトルです。Lの要素のいくつか (またはすべて) は –∞ にすることができ、Uの要素のいくつか (またはすべて) は ∞ にすることができます。この方法は厳密な意味で実行可能点の列を生成します。ロバストな収束挙動を達成しながら、可能領域を維持するために 2.つの手法が使われます。1.つ目の手法ではスケーリングされた変更ニュートン ステップが (2 次元の部分空間 sを定義するために) 制約のないニュートン ステップと置き換わります。2.つ目の手法では
スケーリングされた変更ニュートンステップは
(8) |
ここでgYDF4y2Ba
はベクトルv (x)1.≤ 我≤ Nの範囲で次のように定義されます。
G我< 0およびU我<∞の場合,v我=x
G我≥0およびL我>-∞の場合,v我=x
G我< 0およびU我=∞の場合,v我= –1とします。
G我≥0およびL我=-∞の場合,v我= 1とします。
非線形システム
式 8.により与えられる非線形方程式系に対する,スケーリングされた変更ニュートンステップ年代Kは、 の第k反復における線形システムの解として定義されています。ここで および以下となります。 ここでJvは| v|のヤコビアンの役割をします。対角行列 Jvの個々の対角要素は0,1,1のいずれかに等しくなります。lとuのすべての要素が有限ならば,Jv=D我ag(符号(g))になります。G我= 0の点では,v我は微分可能にならない可能性があります。そのような点では、
が定義されます。このような微分不可能性は,v我がどの値を取るかは重要でないため、問題とはなりません。さらに、|v我|はこの点でもまだ不連続となりますが、関数| v我|·g我は連続です。 2..つ目の手法では
(9)
(10)
(11)
制約付き最適化における一般的な目的は、問題をより解き易い部分問題に変換し、部分問題を繰り返しの過程の基準として使用することです。初期に開発された多くの手法の特徴は、制約付き問題を、制約境界に近接または超過している制約にペナルティ関数を使って、基本的な非制約問題に変換することです。このように制約付き問題は、制約された問題に収束する(シーケンスの)範囲で制約されていないパラメータ化された最適化のシーケンスを使用して解決されます。現在、これらの方法は比較的効率が悪いと考えられており、
一般的な問題 全科医生(
(12) |
最初の方程式は、解の点で目的関数とアクティブな制約条件との間で勾配がキャンセルされることを示しています。勾配をキャンセルするためには、目的関数と制約勾配との大きさの違いを平衡させるために、ラグランジュ乗数 (λ
马の解は多くの非線形計画法アルゴリズムの基礎となっています。これらのアルゴリズムは,ラグランジュ乗数を直接計算しようとしています。制約付き準ニュートン法は,準ニュートン更新手法を使用する马方程式に関して2次の情報を集めることにより,超線形収束を保証します。QP部分問題がそれぞれの主な反復で解かれるので、これらの方法は一般に逐次二次計画法 (SQP: Sequential Quadratic Programming) と呼ばれています (Iterative Quadratic Programming 法、Recursive Quadratic Programming 法、Constrained Variable Metric 法としても知られています)。
“活动集”アルゴリズムは大規模なアルゴリズムではありません。
逐次二次計画法は、非線形計画法の中で最先端の技法です。たとえば、希特考斯基
比格斯
GP (
(13) |
ここで
(14) |
この部分問題は,どのQPアルゴリズムでも解くことができます(例は,
xK+1.=x
ステップ長パラメーターαKはメリット関数内で十分な減少が得られるように適当なライン探索手法により決められます(
非線形の制約付き問題は,SQP法を使った制約なし問題よりも少ない反復回数で解けることもあります。この理由の一つは,可能領域上に限定されているためで,オプティマイザーが探索方向とステップ長に関して情報に基づく決定を行っていることが一因しています。
罗森布鲁克関数に付加的な非線形不等式制約 g(x)を適用することを考慮します。
(15) |
制約なしの場合は 140回の反復であるのに対して、SQP法を使って解くと 96回の反復になります。
図6,非線形制約付き。関数におけるSQP法
SQP法は,次の小節で簡単に論議されている3つの部分から作られています。
ヘッセ行列の更新主要な各反復でラグランジュ関数のヘッシアンの正定値準ニュートン近似Hは,λ我,i=1,…,mをラグランジュ乗数の推定とする 高炉煤气法を使って計算されます。
(16) |
ここでgYDF4y2Ba
鲍威尔
(17) |
ここでgYDF4y2Ba
wは が正になるまでシステマチックに増加します。
関数铁铬镍铁合金、
fminimax、
fgoalattain、
费塞米夫は,すべてSQP法を使います。
黑森修改两次が表示されます。QP部分問題が実行不可能な場合、
不可行が表示されます。このような表示は、原因を求めるものではなく、問題が非常に高い非線形性であるとか、通常より収束に長い時間が必要であるということを示すものです。場合によってはメッセージ
二次計画法での解法-SQP法の主要な各反復で,以下の形式のQP問題を解きます。ここで一我はM行n列の行列一个の第
(18) |
优化工具箱関数で使われる方法は、有効制約法 (射影法として知られています) ですが、
解を求めるステップは,2つの部分からなっています。最初の段階は(解が存在する場合)可能領域点を計算します。2番目の段階は解に収束する可能領域点の列を生成します。このメソッドでは,有効制約法 が、求解点でアクティブな制約条件 (すなわち制約境界上にある制約条件) の推定値となるように維持されます。事実上、すべての QPアルゴリズムは有効制約法です。構造的には非常に類似しているにもかかわらず、異なる用語で記述されている多くの方法があるので、この点を強調しておきます。
は各反復 Kで更新され、探索方向 の基底を作成するために使われます。等式制約は常にアクティブ セット 内にあります。変数 の表記法は,ここではSQP法の主要反復のdKと区別するために使用されています。探索方向 が計算され、任意の有効制約境界上に存在したまま目的関数が最小化されます。 の部分可能空間は,基底ZKから作成されます。この基底の列はアクティブセット の推定値に直交します (すなわち、 )。これにより、ZKの列結合の線形和から形成される探索方向は,有効制約法の境界上にあることが保証されます。
行列ZKは行列
を QR分解した行列の最後のm - l列から形成されます。ここで Lはアクティブな制約の数であり、l
(19) |
ここでgYDF4y2Ba
ZKが見つかるとq (d)を最小にする新しい探索方向 が求められます。ここで はアクティブな制約条件のヌル空間です。つまり, は ZKの列の線形結合で、あるベクトル Pに対して となります。
を置き換え、二次式を Pの関数として見ると次のようになります。
(20) |
Pで微分すると、次の結果が得られます。
(21) |
∇q (p)は、ZKが定義する部分空間の射影勾配であるため、二次関数の射影勾配になります。 は射影ヘッシアンと呼ばれます。ヘッセ行列Hは(SQPのこの方法の場合)正定値であると仮定しているので,ZKが定義する部分空間における関数问(p)の最小値は∇q(p)=0で生じます。これは次の線形方程式系の解の場合に成り立ちます。
(22) |
ステップは次の式で計算されます。
(23) |
各反復で目的関数の二次式の性質により、ステップの長さ α の選択には 2.つの方法があります。
に沿った単位長さのステップは,
のヌル空間に制限された関数の最小値に向かう厳密なステップになります。制約に違反せずに,このようなステップをとることができれば,これはQPの解(
(24) |
これはアクティブ セットにない制約に対して定義され、方向 は制約の境界に向かっています。すなわち、 です。
N個の独立した制約がアクティブ セットに含まれ、最小値の位置を含んでいない場合、ラグランジュ乗数 λKは次の線形方程式の特異点にならないように計算されます。
(25) |
λKのすべての要素が正の場合、xKはQPの最適解です( 初期化-アルゴリズムは実行可能な初期点を必要とします。sQP 法における現在の点が実行可能でない場合は、次の線形計画問題を解いて点を求めることができます。 表記一我は行列 A.の 我番目の行です。 LP問題の前のQPアルゴリズムは,各反復で探索方向を最急降下方向に設定することにより変更できます。ここでgKは目的関数の勾配(線形目的関数の係数に等しい)です。 LP法を使って実行可能な点が求められたならば,メインのQP部分に移行します。探索方向
は、一連の線形方程式を解いて求まる探索方向
を使って初期化されます。 ここでgKは現在の反復xKでの目的関数の勾配です(すなわちHxK+Cです)。 QP問題で実行可能解が見つからない場合,メインのSQPルーチンの探索方向
が、γ を最小化する方向として用いられます。 ライン探索とメリット関数-QP部分問題の解はベクトルdKを生成し,次の新しい反復を作成するために使用されます。 ステップ長パラメーターαKは 鲍威尔は、ペナルティ パラメーターを設定することを推奨しています。 これは、QP解において前の反復では 忙碌的であったが現在 不活跃的となっている制約からの正の寄与を可能にするものです。これを実装するにあたり、ペナルティ パラメーター R我は最初に次のように設定されています。 ここで
はユークリッド ノルムを示します。 これは、解の点において制約が 忙碌的になる場合に、ペナルティ パラメーターへの小さな勾配をもつ制約からの大きな寄与を補償します。
(26)
(27)
(28)
(29)
(30)
(31)
(32)
sqpアルゴリズム(およびほぼ同一の
sqpアルゴリズムは実質的に
sqpと
sqpアルゴリズムは,範囲によって制約されている領域内ですべての反復ステップを取ります。さらに,有限差分ステップも範囲に従います。範囲は厳密ではありません。ステップは境界上に正確に置くことができます。この厳密な実行可能性は,目的関数または非線形制約関数が未定義または範囲によって制約される領域外で複雑であるときに便利です。
反復時に,
sqpアルゴリズムは異なるセットの線形代数ルーチンを使用して,二次計画法部分問題
sqpアルゴリズムは、制約が満たされないときの
sqpアルゴリズムは目的関数と制約関数を1つのメリット関数に結合します。このアルゴリズムは,緩和された制約に従ってメリット関数を最小化しようと試みます。変更されたこの問題により実行可能解が得られる場合があります。ただし,この方法は元の問題よりも多くの変数をもつので,
非線形制約が満たされず,試みたステップにより制約違反が増大するという状況を考えてみます。
制約付き最小化の内点法アプローチとは,一連の近似最小化問題を解くことです。元の問題は次のようになります。
(33) |
近似問題
近似問題を解くために、各反復でアルゴリズムは 2.種類のステップ タイプの中からいずれかを使用します。
既定の設定では、このアルゴリズムはまず直接ステップを試します。直接ステップが使えない場合、CGステップを試します。直接ステップが使えない場合として、近似問題が現在の反復で局所的に凸でない場合があります。
各反復でこのアルゴリズムは
パラメーター は解が可能領域に入るようにするため,反復数と共に増加します。実行したステップがメリット関数を減少させない場合,アルゴリズムは実行したステップを棄却して新しいステップを試します。
反復 x
function val = userFcn(x) try val =…%代码可以错误捕获val = NaN;结束
目的関数と制約は初期点で適切な値(
以下の変数は直接ステップの定義に使用されます。
Hは F
(35) |
JGは制約関数 Gのヤコビアンを示します。
JHは制約関数hのヤコビアンを示します。
S =诊断接头(S).
λ は次の制約に関連するラグランジュ乗数ベクトルを示します。 G
Λ=诊断接头(
Yは Hに関連するラグランジュ乗数ベクトルを示します。
eはgと同じサイズの1のベクトルを示します。
(36) |
(Δx,Δs)に対してこの式を解くために、このアルゴリズムは行列の 低密度脂蛋白分解を行います。(MATLAB)®低密度脂蛋白関数リファレンスページの
近似問題
特に Rは信頼領域の半径を示すようにし、他の変数を
そしてステップ(Δx,Δs)をとり、以下を近似して解きます。
(37) |
ここでは、内点法アルゴリズムのいくつかのオプションの効果と意味を説明します。
荣誉界—
HessianApproximation— 以下に設定された場合
“bfgs”:
“lbfgs”:
“fin-diff-grads”:
黑森—
HessianMultiplyFcn——ヘッシアンとベクトルの積を評価する別の関数を指定します。詳細については,
SubproblemAlgorithm——直接ニュートンステップを使うかどうかを判定します。既定の設定
オプションの完全な一覧については、选项
fminbndはMATLABをインストールすると使用できるソルバーです。このソルバーは範囲内の1次元で局所的最小値を求めるソルバーです。これは導関数をベースにしません。その代わり,黄金分割法と放物線内挿法を使用します。
费塞米夫は
c(x)≤0,ceq(x) = 0, A·x≤b, Aeq·x = beq, l≤x≤uが条件になります。
费塞米夫は上記の他に以下の半無限制約を追加します。1.次元または 2 次元の範囲空間または四角形 IJ内の WJと、連続関数K(x,w)のベクトルに対して制約は以下になります。
KJ(x,w)J)≤0(すべてのW
费塞米夫問題の“次元”は制約集合我の最大次元を意味します。すべての我Jが区間ならば 1.であり、少なくとも 1.つの 我Jが四角形ならば2になります。Kのベクトル サイズはこの概念の次元を示しません。
半無限計画法と呼ばれる理由は変数(xとwJ)の数は有限ですが、制約数が無限であるためです。これは xの制約が連続区間または四角形 我Jの集合上にあるためです。これは点数が無限にあるため、制約が無限にあります。無限個の点 WJに対して
制約が無限にある問題を解くのは不可能だと思うかもしれません。
(39) |
ここで |K|はベクトル Kの要素数です。すなわち、半無限制約関数の数です。xを固定するために、これは範囲区間または四角形上の一般最大化になります。
费塞米夫はさらに、ソルバーが使用する xごとに、区分的な二次または三次近似κJ(x,w)J)を関数KJ(x,w)J)にすることで,問題を簡略化します。
サンプリング点-半無限制約関数はサンプリング点(二次近似または三次近似に使用する点)を与える必要があります。これを行うには以下を行わなければなりません。
サンプリング点 W間の初期空間
sからサンプリング点wを生成する方法
初期空間
费塞米夫は行列
サンプリング点の作成例-2.つの半無限制約 K1..とK
当isnan(s(1,1)) s(1,1) = 0.2时,初始采样间隔为%;(1、2)= 0;end %采样集w1 = 2:s(1,1):12;
费塞米夫は制約関数をはじめて呼び出すときに
以下のコードは,各要素を1から100までにして正方形内のw2..からサンプリング集合を生成します。2..GYDF4y2Ba番目の要素より 1 番目の要素の方が初期サンプルが多くなります。
isnan(s(1,1)) s(2,1) = 0.2;s (2, 2) = 0.5;end %采样集w2x = 1:s(2,1):100;w2y = 1: s (2, 2): 100;(天气,王寅)= meshgrid (w2x w2y);
前のコードの一部は以下のように簡略化できます。
%初始采样间隔如果isnan(s(1,1)) s = [0.2 0;0.2 0.5];end %采样集w1 = 2:s(1,1):12;w2x = 1: s (2,1): 100;w2y = 1: s (2, 2): 100;(天气,王寅)= meshgrid (w2x w2y);
费塞米夫は基本的に半無限計画問題を
xの現在値での
费塞米夫は以下の
条件はc(x)≤0,ceq(x) = 0, A·x≤b, Aeq·x = beq, l≤x≤uです。ここでc (x)はすべてのWJ∈我Jに対して取られたκJ(x,w)J)のすべての最大値で拡張され,これはκJ(x,w)J,我)のjと我に対する最大値と等価です。
费塞米夫は、新しい点 xが停止判定に見合うか (反復を停止するか) を確認します。停止判定に合わない場合は手順 4.に進みます。
费塞米夫は半無限制約の離散化を更新しなければならないかを確認し,近似的にサンプリング点を更新します。これにより,更新された近似κJ(x,w)J)が提供されます。次に手順 1.を続行します。