このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
二次计画法は线形制约に従って,二次关数を最小化するベクトルXを见つける问题です。
A·X≤B,AEQ·X = BEQ,升≤X≤ù年代pan>が条件になります。
年代ect我on>interior-point-convexquadprogアルゴリズム
interior-point-convexアルゴリズムは以下の手順を実行します。
メモ年代trong>
アルゴリズムには2つのコードパスがあります。一方はヘッセ行列Hが通常(フル)の双行列の場合に使用され,もう一方はHがスパース行列の場合に使用されます。スパースデータ型の詳細については,スパース行列 を参照してください。一般にHを稀疏的として指定すると,アルゴリズムは,比較的非ゼロの項が少ない大規模な問題の場合により高速になります。同様にHを完整的として指定すると,アルゴリズムは,小規模または比較的密な問題の場合により高速になります。
<年代ect我on itemprop="content">
解决の前处理と后处理
このアルゴリズムは,まず重复を取り除き制约を単纯化することで问题を単纯化しようと试みます。解决の前处理のステップで実行されるタスクには,次のようなものがあります。
范囲范囲上限と等しい等しいががするかかチェックするするどうかは実実性をチェックし,修正ししそれらの削除削除するを削除するを削除する削除を削除削除
含まれている変数が1つだけの線形不等式制約があるかどうかチェックする。見つかった場合はその実行可能性をチェックした後,線形制約を範囲に変更する。
含ま含まているいるがかたどうかするがか场はその実実性をチェックししし性をししををするそれらをを削除ををををを削除ををををををををををのののののの
ゼロの行をを制约行列があるかかチェックチェックする実実するする。
范囲制约と形制约に矛盾がないか判断判断。
目的関数内の線形項としてのみ含まれ,どの線形制約にも含まれない変数があるかどうかチェックする。見つかった場合はその実行可能性と有界性をチェックした後,それらの変数を修正して適切な範囲制約を設定する。
線形不等式制約があれば,スラック変数を追加して線形等式制約に変更する。
アルゴリズムは,実行不可能または非有界の問題を検出した場合,停止して適切な終了メッセージを表示します。
アルゴリズムgydF4y2Baが又一次の実点を得るようななますますますます。
アルゴリズムgydF4y2Baが解決の前処理のステップで実行不可能または非有界の問題を検出しなかった場合,および解決の前処理が解を生成しなかった場合,そのアルゴリズムは次のステップに進みます。停止条件に到達すると,アルゴリズムは元の問題を復元し,解決の前処理による変更を元に戻します。この最終ステップが解決の後処理ステップです。
詳細は,古尔德およびToint[63] を参照してください。
年代ect我on>
初期点点生成
アルゴリズムの初期点x0 は次のように决定されます。
x0を的(n, 1) に初期化します。n は^ h内の行数です。
上限UB. と下限磅 の両方をもつ要素の場合,x0 の要素が厳密に范囲内にないときには,その要素は(乌兰巴托+磅)/ 2 に設定されます。
要素の範囲制約が1つだけの場合は,必要に応じて要素に変更を加え,厳密に範囲内に収まるようにします。
予測子修正子のフルステップではなく,実行可能性の補正がわずかな予測子ステップ(予測子修正子 を参照)を実行します。これにより,予測子修正子のフルステップのオーバーヘッドを伴うことなく,初期点が“中心パス” に近づきます。中心パスの详细は,Nocedalと莱特[7] (397页)を参照してください。
スパース内点法凸アルゴリズムとフル内点法凸アルゴリズムは,主に予測子修正子フェーズで異なっています。アルゴリズムは類似していますが,一部の詳細部分が異なっています。アルゴリズムの基本的な説明については,Mehrotra
gydF4y2Baこのアルゴリズムでは,はじめに線形不等式Ax < = bをとbに1を乗算することによりAx > = bという形式の不等式に変換します。これは解に影響を与えませんが,同じ形式の問題を一部の文献で見つけることができるようになります。
スパース予测子修正子 -年代trong>粉刺内点法アルゴリズムと同様に,スパース
ここで
は,线形不等式として书かれた范囲を含む拡张された线形不等式行列です。<年代pan class="inlineequation"> は対応する线形不等式ベクトルで,范囲を含みます。
年代は不等式制約を等式に変換するスラックのベクトルです。年代の長さは m ですが、これは線形不等式と範囲の数です。
zは年代に対応するラグランジュ乗数のベクトルです。
ÿは等式制约に关连付けられたラグランジュ乘数のベクトルです。
アルゴリズムは最初にニュートン・ラフソン式からステップを予測し,その後,修正子ステップを計算します。修正子は非線形制約<年代pan class="inlineequation">年代<年代ub>我年代ub>z
予測子ステップに関する定義を以下に示します。
r<年代ub>dは双対残差です。
r<年代ub>情商年代ub>は主等式制約残差です。
r<年代ub>我n情商は主不等式制約残差で,範囲とスラックを含みます。
r<年代ub>年代Z.は相补性の残差です。
r<年代ub>年代Z.=深圳。
年代はスラック項の対角行列で,zはラグランジュ乗数の列行列です。
r<年代ub>cは平均相補性です。
ニュートンステップでは,x,, y,およびzにおける変化が次の式で計算されます。
ただしsおよびzに対する正値性制約のため,完全なニュートンステップが実行不可能な場合があります。したがって,
gydF4y2Baさらに,内部での中“心”的位置を維持するために,アルゴリズムは<年代pan class="inlineequation">年代<年代ub>我年代ub>z
年代<年代ub>我年代ub>z
quadprogはニュートンステップの方程式内のr<年代ub>年代Z.を
アルゴリズムはgydF4y2Ba,订正されたステップを计算した后计算実行して,现在のステップをするとともに,后続のステップを良いものするののうことができます。により,性能性能とロバスト性をとともも向向さられられられられははははははははははははは
<年代trong id="bvj25y3-1">フル予測子修正子-年代trong>フル予测子修正子アルゴリズムは,线形制约に范囲を组み合わせないため,范囲に対応する别のスラック変数セットがあります。アルゴリズムは下限をゼロにシフトします。さらに,変数の范囲が1つのみの场合,アルゴリズムは上限の不等式の符号を反転して,それをゼロの下限にします。
<年代pan class="inlineequation"> は,線形不等式および線形等式の両方を含む拡張された線形行列です。<年代pan class="inlineequation"> は,対応する線形等式ベクトルです。<年代pan class="inlineequation"> には,不等式制約を等式制約にするスラック変数年代でベクトルxを拡張するための項も含まれています。
ここでx<年代ub>0は元のベクトルxを意味します。
gydF4y2BaKKT条件は以下のとおりです。
解x,
ここでX, V, W,およびTはベクトルX, V, W,およびTにそれぞれ対応する対角行列です。方程式の最も右辺にある残差ベクトルは以下のとおりです。
r<年代ub>d: 双対残差
r<年代ub>p:主残差
r<年代ub>UB.年代ub>:上限残差
r<年代ub>vx: 下限相補性残差
r<年代ub>wt: 上限相補性残差
アルゴリズムは,最初に対称行列形式に変换してから
ここで,
DおよびRの定義に含まれる逆行列は,行列が対角であるため,すべて簡単に計算できます。
アルゴリズムはgydF4y2Ba,订正されたステップを计算した后计算実行して,现在のステップをするとともに,后続のステップを良いものするののうことができます。により,性能性能とロバスト性をとともも向向さられられられられははははははははははははは
フル
Altman, Anna和J. gonzio。线性和二次优化的内点法中的正则对称不定系统。优化方法与软件,1999。
范德贝,R. J.和T. J.卡朋特。内点法的对称不定系统。数学规划58,1993。学会页。
予测子修正子アルゴリズム,実行可口(许容误差范囲内に收まるようする制约を満たすさいさい点ににするするまで反复ししに到するするはしします到ますははははししのののようようににし。
これらこれらのすべての条件が満たされる,アルゴリズムが停止し。
ここで,
r<年代ub>cは相补性の残差を测定しますベクトルますますのはそれぞれベクトルベクトルベクトルベクトルののサイズを测定しベクトルベクトルベクトル相补のサイズサイズをしベクトルベクトルベクトルの性サイズををししベクトル的のサイズのサイズサイズししし的ののサイズサイズサイズにしおよびおよびののサイズサイズにですおよびおよびのににににますおよびおよび実质のににに
年代ect我on>quadprogは各反复で “メリット关数”<年代pan class="emphasis">φを計算します。メリット関数は実行可能性の尺度です。メリット関数が大きくなりすぎると
gydF4y2Baメリット関数は問題の马条件に関連しています。
と<年代pan class="inlineequation">
の表记は,线形不等式の系数に,スパースアルゴリズムの范囲を表す项が补足されていることを意味します。同様に<年代pan class="inlineequation">
の表记は,范囲制约を含む线形不等式制约のラグランジュ乘数を表します。これは
gydF4y2Baメリット关数φは次のようになります。
このメリット関数が大きくなりすぎると,
trust-region-reflectivequadprogアルゴリズム
优化工具箱™のソルバーで使用される多くのメソッドは,<年代pan class="emphasis">“信頼領域法”を基にしています。信頼領域法はシンプルなものですが最適化では重要な概念です。
gydF4y2Ba最適化の信頼領域法のアプローチを理解するために制約なし最小化問題を考え,f (x)を最小化します。ここで関数はベクトル引数を取り,スカラーを出力します。n空間の点 x を想定し、より小さい関数値へ移動して最小化を行う場合を考えてみましょう。基本的な概念は、シンプルな関数 q で f を近似することです。この関数は、点 x の近傍 N で関数 f の挙動をよく表すものです。この近傍が信頼領域です。テスト ステップ s が N における最小化 (または近似最小化) によって計算されます。信頼領域の部分問題を次に示します。
(6)年代trong>
F (x + s) < F (x)年代pan>の場合,現在の点がx + sに更新されます。そうでない場合は現在の点は変更されず,信頼領域Nは縮小され,テストステップの計算が繰り返されます。
f(x)を最小化するための信頼領域を決める上で重要な問題は,近似问(現在の点xで定義)の選択および計算方法,信頼領域Nの選択および変更方法,信頼領域の部分問題を解く精度です。この節では制約なしの問題に焦点をあてます。変数上に制約があるために複雑度が増す問題については,後節で取り扱います。
gydF4y2Ba標準的な信頼領域法([48] )では二次近似qは,Xにおける˚Fのテイラー近似のはじめの2项によって决められます。近傍Ñは球形または楕円体です。数学的に,信頼领域の部分问题は,次のように表现できます。
(7)年代trong>
ここで克は现在の点Xにおける˚Fの勾配です.Hはヘッセ行列(2次导关数の対称行列)です.Dは対角スケーリング行列であり,Δは正のスカラーです.∥。∥は2ノルムです。式7 を解くために適したアルゴリズムがあります([48] を参照)。このようなアルゴリズムは,Hのすべての固有値と以下の
このようなアルゴリズムにより
2次元の部分空间小号は,以下に示す
このように小号を选択する背景の考え方は,最急降下方向または负の曲率方向にグローバルな收束を进めることと,ニュートンステップが存在する场合は,これを介して迅速にローカルな收束を达成することです。
gydF4y2Ba信頼领域法の概念を使用した制约なしの最小化の概要は以下になります。
2次元の信頼領域の部分問題の定式化
テストステップ小号を决めるため,
F (x + s) < F (x)年代pan>の場合,<年代pan class="inlineequation">X = X + s年代pan>とします。
Δを调节します。
これら4つのステップは,收束するまで缲り返されます。信頼领域の大きさΔは标准的な规则に基づいて调整されます。特に,使用するステップが适用されない场合,すなわち<年代pan class="inlineequation">F (x + s)≥F (x)年代pan>の場合,内点集合は小さくなります。詳細は
gydF4y2Ba优化工具箱のソルバーは特定の関数fの重要かつ特別なケースをいくつか扱います。非線形最小二乗法,二次関数,線形最小二乗法を考えてみましょう。しかし,根底に存在するアルゴリズムは,一般的な場合と同じです。これらの特別な場合は後続の節で説明します。
部分空間の信頼領域法が探索方向を決定するのに使われます。gydF4y2Baただし,ステップを非線形最小化の場合と同じく(場合によっては)1つの反射ステップに制限する代わりに,区分的な
线形方程式系<年代pan class="inlineequation">惠普= - g年代pan>の大きな対称正定値システムを解く一般的な方法は,前处理付き共役勾配法(PCG)です。この反复法は,形式ħ·Vの行列ベクトル积を计算する机能を必要とします。ここでvは任意のベクトルです。対称正定値行列中号はħの<年代pan class="emphasis">“前提条件子” です。すなわち,<年代pan class="inlineequation">M = C<年代up>2年代pan>です。ここで、<年代pan class="inlineequation">C<年代up>-1年代up>HC
gydF4y2Ba最小化の过程で,ヘッセ行列ħが対称と仮定します。しかし,Hは,强い最小化子の近傍の中でのみ正定値であることが保证されます.PCGアルゴリズムは,负または0の曲率方向が検出された场合に终了します(<年代pan class="inlineequation">d<年代up>T高清≤0年代pan>)。PCG出力方向pは負の曲率方向またはニュートンシステム<年代pan class="inlineequation">惠普= - g年代pan>への近似解のどちらかです。いずれにせよpは信頼領域法のアプローチで使用される2次元部分空間を定義するために役立ちます(
線形制約は,制約なしの最小化問題に対して記述された状況を複雑にします。しかし,前述の基本的な考え方は,明確かつ効率的な形で踏襲されます。优化工具箱のソルバーの信頼領域法は、厳密に実行可能な反復処理を行います。
一般的な线形等号制约付き最小化问题は,次のように表现されます。
ここで,Aは米行Ñ列(<年代pan class="inlineequation">米≤Ñ年代pan>)の行列です。いくつかの优化工具箱のソルバーは一を前処理し,A<年代up>TのLU分解をベースにした手法(参考文献
ここで,<年代pan class="inlineequation">
は甲を近似(ランクを失わないという条件で甲の小さな非ゼロがゼロに设定される)し,Cはħへのスパース対称正定値近似,すなわち<年代pan class="inlineequation">C = H年代pan>です。详细は
ボックス制約問題は,次のように表現されます。
ここでlは下限を表すベクトル,uは上限を表すベクトルです。lの要素のいくつか (またはすべて) は –∞ にすることができ、u の要素のいくつか (またはすべて) は ∞ にすることができます。この方法は厳密な意味で実行可能点の列を生成します。ロバストな収束挙動を達成しながら、可能領域を維持するために 2 つの手法が使われます。1 つ目の手法ではスケーリングされた変更ニュートン ステップが (2 次元の部分空間 S を定義するために) 制約のないニュートン ステップと置き換わります。2 つ目の手法では反射がステップサイズを増加させるために使われます。
gydF4y2Baスケーリングされた変更ニュートンステップは
ここで,
ベクトルν(x)的は<年代pan class="inlineequation">1≤I≤n年代pan>の范囲で次のように定义されます。
g<年代ub>我年代ub>< 0および<年代pan class="inlineequation">u<年代ub>我年代ub><∞の場合,<年代pan class="inlineequation">v<年代ub>我年代ub>= x
g<年代ub>我年代ub>≥0および<年代pan class="inlineequation">l<年代ub>我年代ub>>-∞年代pan>の場合,<年代pan class="inlineequation">v<年代ub>我年代ub>= x
g<年代ub>我年代ub>< 0および<年代pan class="inlineequation">u<年代ub>我年代ub>=∞の場合,<年代pan class="inlineequation">v<年代ub>我年代ub>= 1とします。
g<年代ub>我年代ub>≥0および<年代pan class="inlineequation">l<年代ub>我年代ub>=-∞年代pan>の場合,<年代pan class="inlineequation">v<年代ub>我年代ub>= 1とします。
非线形システム
の第k反復における線形システムの解として定義されています。ここで
および以下となります。
ここでJ<年代up>vvは| |のヤコビアンの役割をします。対角行列J<年代up>vの個々の対角要素は0,1,1のいずれかに等しくなります。lとuのすべての要素が有限ならば,<年代pan class="inlineequation">J<年代up>v=诊断接头(签署(g))年代pan>になります。<年代pan class="inlineequation">g<年代ub>我年代ub>= 0の点では,v<年代ub>我年代ub>は微分可能にならない可能性があります。そのような点では,<年代pan class="inlineequation"> が定義されます。このような微分不可能性は,v<年代ub>我年代ub>がどの値を取るかは重要でないため,问题とはなりませんさらに,| V<年代ub>我年代ub>|はこの点でもまだ不連続となりますが,関数<年代pan class="inlineequation">| v<年代ub>我年代ub>|·g<年代ub>我年代ub>年代pan>は连続です。
2gydF4y2Baつ目の手法では
有效集quadprogアルゴリズム
解决の前处理のステップを完了した后,有效集 アルゴリズムは2つのフェーズに進みます。
フェーズ1 -すべての制約について実行可能点を取得します。
フェーズ2 - 目的关数を反复的に小さくしながら,アクティブな制约のリストを维持するとともに,各反复における実行可能性を维持します。
有效集手法(射影法とも呼ばれる)は,[18] と[17] に記述されている吉尔等による方法に似ています。
<年代ect我on itemprop="content">
解决の前处理のステップ
このアルゴリズムは,まず重复を取り除き制约を単纯化することで问题を単纯化しようと试みます。解决の前处理のステップで実行されるタスクには,次のようなものがあります。
范囲范囲上限と等しい等しいががするかかチェックするするどうかは実実性をチェックし,修正ししそれらの削除削除するを削除するを削除する削除を削除削除
含まれている変数が1つだけの線形不等式制約があるかどうかチェックする。見つかった場合はその実行可能性をチェックした後,線形制約を範囲に変更する。
含ま含まているいるがかたどうかするがか场はその実実性をチェックししし性をししををするそれらをを削除ををををを削除ををををををををををのののののの
ゼロの行をを制约行列があるかかチェックチェックする実実するする。
范囲制约と形制约に矛盾がないか判断判断。
目的関数内の線形項としてのみ含まれ,どの線形制約にも含まれない変数があるかどうかチェックする。見つかった場合はその実行可能性と有界性をチェックした後,それらの変数を修正して適切な範囲制約を設定する。
線形不等式制約があれば,スラック変数を追加して線形等式制約に変更する。
アルゴリズムは,実行不可能または非有界の問題を検出した場合,停止して適切な終了メッセージを表示します。
アルゴリズムgydF4y2Baが又一次の実点を得るようななますますますます。
アルゴリズムgydF4y2Baが解決の前処理のステップで実行不可能または非有界の問題を検出しなかった場合,および解決の前処理が解を生成しなかった場合,そのアルゴリズムは次のステップに進みます。停止条件に到達すると,アルゴリズムは元の問題を復元し,解決の前処理による変更を元に戻します。この最終ステップが解決の後処理ステップです。
詳細は,古尔德およびToint[63] を参照してください。
年代ect我on>
フェーズ1のアルゴリズム
フェーズ1では,アルゴリズムは目的関数を考慮せずにすべての制約を満たす点x を見つけようと試みます。quadprog は,提供された初期点x0 が実行不可能な场合にのみ,フェーズ1のアルゴリズムを実行します。
gydF4y2Baはじめに,アルゴリズムは,X = Aeq \说真的 など,すべての等式制約について実行可能な点を見つけようと試みます。方程式Aeq * x =说真的 に対する解x が存在しない場合,アルゴリズムは停止します。解X が存在する場合,範囲および線形不等式を満たすための次のステップに進みます。等式制約がない場合は初期点X = x0 を设定します。
アルゴリズムはXから開始してM = max(A*X - b, X - ub, lb - X) を計算します。中号<= options.ConstraintTolerance のとき点X は実行可能となり,フェーズ1のアルゴリズムは停止します。
M> options.ConstraintTolerance のとき,アルゴリズムは補助線形計画問題の非負のスラック変数γを導入します。
条件
ここで,ρは,一个 およびAeq の最大要素の絶対値で乗算されたConstraintTolerance オプションです。γ= 0であり等式および不等式を満たす点 x をアルゴリズムが見つけた場合、x はフェーズ 1 の実行可能点となります。γ = 0 で補助線形計画問題に対する解 x がない場合、フェーズ 1 の問題は実行不可能です。
補助線形計画問題を解くために,アルゴリズムはγ<年代ub>0=米+1,X<年代ub>0=X と設定し,アクティブセットを固定変数(存在する場合)およびすべての等式制約として初期化します。アルゴリズムは,線形計画変数pが現在の点x<年代ub>0からxのオフセット,つまり<年代pan class="inlineequation">x = x<年代ub>0+P.年代pan>となるように再定式化します。アルゴリズムは反復を使用して、この線形計画問題を解きます。フェーズ 2 においても、適切に修正されたヘッシアンと共にこの同じ反復を使用して二次計画問題を解きます。
年代ect我on>
フェーズ2のアルゴリズム
変数dに关して,问题は次のとおりです。
(17)年代trong>
ここで,<年代ub>我年代ub>は米行Ñ列の行列甲における我 番目の行を指します。
gydF4y2Baフェーズ2の間,アクティブセット<年代pan class="inlineequation">
は,解の点におけるアクティブな制約(制約境界上にある制約)の推定値となります。
アルゴリズムは,各反復kにおいて<年代pan class="inlineequation">
を更新し,探索方向d<年代ub>kの基底を作成します。等式制約は常にアクティブセット<年代pan class="inlineequation">
内にあります。探索方向d<年代ub>kが計算され,任意の有効制約境界上に存在したまま目的関数が最小化されます。アルゴリズムはd<年代ub>kの部分可能空间を基底ž<年代ub>kから作成します。この基底の列はアクティブセット<年代pan class="inlineequation">
の推定値に直交します(すなわち,<年代pan class="inlineequation">
)。したがって,Z<年代ub>kの列结合の线形和から作成される探索方向は,アクティブな制约条件の境界上にあることが保证されます。
アルゴリズムは,行列<年代pan class="inlineequation">
をQR分解した行列の終わりの<年代pan class="inlineequation">m - l年代pan>列から行列Z<年代ub>kを作成します。ここで升はアクティブな制约の数であり,升kは次のように与えられます。
(18)年代trong>
ここで,
アルゴリズムは,Z<年代ub>kを見つけるとq (d)を最小にする新しい探索方向d<年代ub>kを求めます。ここでd<年代ub>kはアクティブな制约条件のヌル空间です。つまり,d<年代ub>kはZ<年代ub>kの列の線形結合で,あるベクトルpに対して<年代pan class="inlineequation">
となります。
dkを置き換え,二次式をpの関数として見ると次のようになります。
(19)年代trong>
この方程式をpで微分すると,次の结果が得られます。
(20)年代trong>
∇q (p)年代pan>は,Z<年代ub>kが定義する部分空間の射影勾配であるため,二次関数の射影勾配になります。<年代pan class="inlineequation">
は射影ヘッシアンと呼ばれます。射影ヘッセ行列<年代pan class="inlineequation">
は半正定値であると仮定しているので,Z<年代ub>kが定义する部分空间における关数Q(P)の最小値は<年代pan class="inlineequation">∇q(P)= 0年代pan>で生じます。これは次の線形方程式系の解の場合に成り立ちます。
(21)年代trong>
その後,アルゴリズムは次を作成します。
ここで,
目的関数の二次式の性質により,各反復におけるステップ長αの選択肢は2つしかありません。d<年代ub>kに沿った単位长さのステップは,<年代pan class="inlineequation">
のヌル空間に制限された関数の最小値に向かう厳密なステップになります。アルゴリズムが制約に違反せずにこのようなステップを取ることが可能な場合、そのステップが二次計画法 (式 18)の解です。そうでない场合,最近傍の制约に向かうd<年代ub>kに沿ったステップが1単位より小さくなり,アルゴリズムは次の反復でアクティブセットに新しい制約を含めます。任意方向d<年代ub>kの制約境界までの距離は次式で与えられます。
これはアクティブセット内にない制約に対して定義され,方向d<年代ub>kは制约の境界に向かっています。すなわち,<年代pan class="inlineequation">
です。
gydF4y2BaアクティブセットがÑ个の独立した制约を含み,最小値の位置を含んでいない场合,アルゴリズムは,次の线形方程式の特异点にならないラグランジュ乘数λ<年代ub>kを計算します。
(22)年代trong>
λ<年代ub>kのすべての要素が正の場合,x<年代ub>kは二次計画問題式1の最適解です。しかし,λ<年代ub>kに负の要素があり,その要素が等式制约に対応していない场合,最小化は未完了となります。アルゴリズムは,最小の负の乘数に対応する要素を削除し,新しい反复を开始します。
すべてのgydF4y2Ba非負のラグランジュ乗数でソルバーが完了するような場合,1次の最適性の尺度が許容誤差を上回っているか,制約の許容誤差が満たされていません。このような場合,ソルバーは[1] に记述されている再开手続きに従って,より良い解を得ようと试みます。この手続きにおいて,ソルバーは现在のアクティブな制约セットを破弃し,制约をわずかに缓和してから新しいアクティブな制约セットを作成することにより,问题の求解におけるサイクル(同一の状态に缲り返し戻ること)を回避します。必要に応じて,ソルバーはこの再开手続きを何度も実行できます。
メモ年代trong>
アルゴリズムを早期に停止するためにConstraintTolerance オプションおよびOptimalityTolerance オプションに大きな値を設定することは避けてください。一般に,ソルバーは,潜在的な停止点に到達するまでこれらの値を確認せずに反復します。そして,停止点に到達した場合にのみ,許容誤差が満たされているかどうかを確認します。
有效集アルゴリズムでは,問題が非有界になる場合の検出が困難になることもあります。この問題は,非有界vの方向が二次の項v 'Hv = 0である方向となった場合に発生する可能性があります。数値安定性を確保し,コレスキー分解を可能にするために,有效集 アルゴリズムは,厳密に凸である小さな項を二次目的関数に追加します。この小さな項により,目的関数は-正 から外れた状态で有界となります。この场合,有效集 アルゴリズムは反復制限に到達し,解が非有界であることを報告しません。言い換えれば,このアルゴリズムは終了フラグ-3. ではなく0 で停止します。
参照
吉尔,体育博士,W.默里,M. A.桑德斯和M. H.赖特。一种实用的线性约束优化反循环算法。数学。程序设计45(1),1989年8月,第437-474页。