
内点法(バリア法またはIPMとも呼ばれる)は、線形および非線形凸最適化問題を解くためのアルゴリズムです。IPMは、従来知られているアルゴリズムの2つの利点を組み合わせています。
実行可能領域の境界をたどるアクティブセット法(単体法など)や、実行可能領域を外側から境界付ける楕円体法とは対照的に、IPMは実行可能領域の内部をたどることで最適解に到達します。これがIPMという名前の由来です。
内点法は、1967 年にソ連の数学者 II ディキンによって発見されました。[ 1 ]この方法は、1980 年代半ばに米国で再発明されました。1984 年に、ナレンドラ・カルマルカーは、カルマルカーのアルゴリズムと呼ばれる線形計画法を開発しました。[ 2 ]これは、多項式時間 (Lビット数に対する演算( nは変数と定数の数) であり、実用上も非常に効率的です。カルマルカーの論文は、内点法への関心の高まりを引き起こしました。2 年後、ジェームズ・レネガーは、実行時間で最初のパス追跡内点法を発明しました。この方法は後に、凸集合を符号化するために使用される自己一致バリア関数に基づいて、線形最適化問題から凸最適化問題に拡張されました。[ 3 ]
任意の凸最適化問題は、エピグラフ形式に変換することにより、凸集合上の線形関数の最小化(または最大化)に変換できます。[ 4 ]: 143実行可能集合をバリアを使用してエンコードし、バリア法を設計するというアイデアは、1960 年代初頭に Anthony V. Fiacco、Garth P. McCormick らによって研究されました。これらのアイデアは主に一般的な非線形計画法のために開発されましたが、この種の問題に対するより競争力のある方法 (例えば、逐次二次計画法)の存在により、後に放棄されました。
ユーリ・ネステロフとアルカディ・ネミロフスキーは、任意の凸集合を符号化するために使用できる特殊なクラスのバリアを考案しました。彼らは、アルゴリズムの反復回数が次元の多項式と解の精度によって制限されることを保証します。[ 5 ] [ 3 ]
主双対経路追跡内点法のクラスは最も成功したクラスと考えられています。メロトラの予測子・修正子アルゴリズムは、このクラスのメソッドのほとんどの実装の基礎となっています。[ 6 ]
次のような凸プログラム が与えられます。ここで、f は凸関数であり、G は凸集合です。一般性を失うことなく、目的関数fは線形関数であると仮定できます。通常、凸集合Gは凸不等式と線形等式の集合で表されます。線形等式は線形代数を使用して消去できるため、簡単のために凸不等式のみが存在すると仮定し、プログラムは次のように記述できます。ここで、g iは凸関数です。制約関数は何らかのファミリー(例えば二次関数)に属すると仮定し、プログラムを有限個の係数ベクトル(例えば二次関数の係数)で表現できるものとします。この係数ベクトルの次元をプログラムのサイズと呼びます。与えられたプログラムファミリーに対する数値ソルバーとは、係数ベクトルが与えられたときに、有限個の算術演算を用いて、 t = 1, 2, ...に対する近似解x tのシーケンスを生成するアルゴリズムです。数値ソルバーは、ファミリー内の任意のプログラムと任意の正のε > 0 に対して、任意の t > Tに対して近似解x t がε 近似となるようなT(これはプログラムとεに依存する可能性があります)が存在する場合に収束すると言います。つまり、次のようになります。どこが最適解です。ソルバーは、最初のTステップにおける算術演算の総数が最大で の場合、多項式であると呼ばれます。
poly(問題のサイズ) * log( V / ε ) 、
ここで、V はデータに依存する定数であり、例えば、実行可能集合における最大値と最小値の差などです。言い換えれば、V / εは解の「相対精度」、つまり最大係数に対する精度です。log( V / ε ) は「精度の桁数」を表します。したがって、精度の桁数が1つ増えるごとに、問題のサイズに対して多項式となる演算回数が必要になる場合、ソルバーは「多項式的」であると言えます。
内点法には以下のような種類があります。
制約付き凸最適化プログラム (P) が与えられた場合、バリア関数を追加することで、制約なしプログラムに変換できます。具体的には、実行可能領域Gの内部で定義された滑らかな凸関数b を、任意のシーケンスに対して、となるようにします。その限界がGの境界上にあるもの:また、bは非退化であると仮定します。すなわち、次のようになります。は、interior(G) のすべての x に対して正定値である。次に、次のプログラム群を考えてみよう。
技術的には、 bはGの内部でのみ定義されているため、このプログラムは制約付きです。しかし実際には、関数を最小化しようとするソルバーはb が無限大に近づく境界に近づかないため、制約なしプログラムとして解くことができます。したがって、( P t ) は一意の解を持ち、それをx *( t ) とします。関数x * はtの連続関数であり、中心パスと呼ばれます。tが無限大に近づくときのx *のすべての極限点は、元のプログラム (P ) の最適解です。
パス追跡法とは、関数x * をある増加数列 t 1 ,t 2 ,... に沿って追跡する方法であり、すなわち、点x *( t i ) に対する十分な近似値x iを計算し、 i が無限大に近づくにつれて差分x i - x *( t i ) が 0 に近づくようにすることで、数列x i が(P) の最適解に近づくようにする。これには次の 3 つの事項を指定する必要があります。
この手法が多項式時間であることを証明する際の主な課題は、ペナルティパラメータが大きくなるにつれて解が境界に近づき、関数の傾きが急になることです。ニュートン法などのソルバーの実行時間が長くなり、全体の実行時間が多項式時間であることを証明するのが難しくなります。
Renegar [ 7 ]と Gonzaga [ 8 ]は、パス追跡法の特定のインスタンスが多項式時間であることを証明した。
彼らは、この場合、差x i - x *( t i ) は最大で 0.01 であり、f( x i ) - f* は最大でしたがって、解の精度はしたがって、精度を1桁追加するには、t iに 2 (またはその他の定数係数) を掛ければ十分であり、ニュートンステップ。各ニュートンステップはO( mn2 )回の演算を必要とするため、精度桁に対する全体の複雑さはO( m3 / 2n2 )回の演算となります。
ユーリ・ネステロフは、このアイデアを線形計画問題から非線形計画問題へと拡張した。彼は、上記の証明で使用されている対数バリアの主な特性は、有限のバリアパラメータと自己整合的であることだと指摘した。したがって、実行可能領域に適した自己整合的なバリア関数を見つけることができれば、他の多くの凸計画問題もパス追跡法を用いて多項式時間で解くことができる。[ 3 ]:第1節
凸最適化問題(P)が「標準形式」で与えられます。
Gにおいてc T x st xを最小化する、
ここで、Gは凸かつ閉集合である。また、 Gは有界であると仮定することもできる(十分大きなRに対して| x |≤Rという制約を追加することで容易に有界にすることができる)。[ 3 ]:第4節
内点法を用いるには、Gの自己一致バリアが必要です。bをGのM自己一致バリアとします。ここで、M ≥ 1 は自己一致パラメータです。Gの内部のすべての点 x に対して、 bの値、その勾配、およびそのヘッセ行列を効率的に計算できると仮定します。
t > 0 の任意の値に対して、ペナルティ付き目的関数f t (x) := t c T x + b( x )を定義します。最小化パスは、x*(t) := arg min f t (x)で定義されます。このパスは、増加数列t iに沿って近似されます。数列は、ある非自明な 2 段階初期化手順によって初期化されます。その後、次の規則に従って更新されます。 。
各t iに対して、 f tiの近似最小値x iを求めます。近似最小値は、次の「近接条件」を満たすように選択されます(ここでLはパス許容値です)。
。
x i +1を求めるには、 x iから始めて減衰ニュートン法を適用します。上記の「近接関係」が満たされるまで、この方法を数回繰り返します。この関係を満たす最初の点をx i +1とします。[ 3 ]:第4節
この方法の収束率は、すべてのiに対して次の式で与えられる。[ 3 ] :命題 4.4.1
取 x iからx i +1へ進むのに必要なニュートンステップ数は、 rとLのみに依存する固定数である。特に、ε近似解 (すなわち、c T x - c* ≤ εとなるようなG内のx を見つける) を見つけるのに必要なニュートンステップの総数は、最大で次の通りである。[ 3 ] :定理 4.4.1
ここで定数係数 O(1) はrとLのみに依存します。2 段階初期化手順に必要なニュートンステップ数は最大で次のようになります。[ 3 ] :定理 4.5.1
ここで定数係数O(1)はrとLのみに依存し、 、 そしてはGの内部のどこかの点である。全体として、 ε近似解を見つけるための全体的なニュートン複雑度 は最大で
ここで、Vは問題に依存する定数である。。
ニュートン法の各ステップは、O( n³ )回の算術演算を必要とする。
パス追跡法を初期化するには、実行可能領域Gの相対内部にある点が必要です。言い換えれば、Gが不等式g i ( x ) ≤ 0 で定義されている場合、 1,..., mのすべてのiに対してg i ( x ) < 0 となるようなxが必要です。そのような点がない場合は、いわゆるフェーズ I 法を使用して見つける必要があります。[ 4 ] : 11.4 単純なフェーズ I 法は、次の凸計画問題を解くことです。最適解を x*、s * と表記する。
このプログラムでは、内点を見つけるのは簡単です。x = 0 を任意に設定し、 s を max( f 1 (0),..., f m (0)) より大きい任意の数に設定すればよいのです。したがって、内点法を用いて解くことができます。ただし、実行時間は log(1/ s *) に比例します。s* が 0 に近づくにつれて、フェーズ I の問題の正確な解を見つけることがますます難しくなり、したがって、元の問題が実行可能かどうかを判断することも難しくなります。
理論的な保証では、ペナルティパラメータが次の割合で増加すると仮定しています。最悪の場合の必要なニュートンステップ数は理論的には、μが大きい場合(例えば2以上)、必要なニュートンステップの最悪ケースの数はしかし実際には、μが大きいほど収束ははるかに速くなります。これらの方法は長ステップ法と呼ばれます。[ 3 ]:第4.6節 実際には、μが3から100の間であれば、制約の数に関係なく、プログラムは20~40ニュートンステップ以内に収束します(ただし、各ニュートンステップの実行時間は制約の数とともに増加します)。この範囲内でのμの正確な値は、パフォーマンスにほとんど影響を与えません。[ 4 ]:第11章
ポテンシャル低減法の場合、問題は円錐形で表されます: [ 3 ] : Sec.5
{b+L} ∩ Kにおいてc T x st x を最小化する、
ここで、bは R nのベクトル、L はR nの線形部分空間(したがって、b + Lはアフィン平面)、Kは内部が空でない閉じた尖った凸錐である。すべての凸プログラムは円錐形式に変換できる。ポテンシャル縮小法(具体的には、カルマルカーのアルゴリズムを凸プログラミングに拡張したもの)を使用するには、次の仮定が必要である。[ 3 ]:第6節
仮定A、B、Dは、ほとんどの内点法で必要となる。仮定Cはカルマルカーの手法に特有のものであり、「スライディング目的値」を用いることで緩和できる。さらに、プログラムをカルマルカー形式に簡略化することも可能である。
M ∩ Kにおいてs T x st xを最小化し、e T x = 1 とする。
ここで、MはR nにおけるの線形部分空間であり、最適目的値は0である。この方法は、以下のスカラーポテンシャル関数に基づいている。
v ( x ) = F ( x ) + M ln( s T x )
ここで、Fは実行可能コーンのM自己一致バリアです。xが厳密に実行可能で、v ( x ) が非常に小さい (-非常に負) 場合、xは近似的に最適であることが証明できます。ポテンシャル低減法の考え方は、各反復でポテンシャルが少なくとも固定定数X (具体的には、X = 1/3 - ln(4/3))だけ低下するようにx を修正することです。これは、 i回の反復後、目的値と最適目的値の差が最大で V * exp(- i X / M ) であることを意味します。ここで、Vはデータ依存定数です。したがって、 ε近似解に必要なニュートンステップ数は最大で。
パス追跡メソッドでは、式は次のようになります。理論的にはMの方が優れているが、実際にはカルマルカーの方法の方が目標に向かってより大きなステップを踏むことができるため、理論上の保証よりもはるかに速く収束する可能性がある。
主双対法の考え方は、制約付き非線形最適化に対して容易に実証できる。[ 9 ] [ 10 ]簡単にするために、不等式制約付きの次の非線形最適化問題を考えてみよう。
この不等式制約付き最適化問題は、最小値を効率的に求めることができる制約なし目的関数に変換することで解決されます。具体的には、(1)に関連付けられた 対数バリア関数は次のようになります。
ここは小さな正のスカラーで、「バリアパラメータ」と呼ばれることもあります。最小値はゼロに収束します(1)の解に収束するはずである。
微分可能な関数の勾配と表記される障壁関数の勾配は
元の(「プライマル」)変数に加えてラグランジュ乗数に着想を得た双対変数を導入する
式(4)は、 KKT条件における「相補的緩み」に似ていることから、「摂動相補性」条件と呼ばれることもある。
私たちはそれらを見つけようとします障壁関数の勾配がゼロとなる場合。
代入(4)を(3)に代入すると、勾配の式が得られる。 行列は制約条件のヤコビアンです。。
(5)の背後にある直観は、制約の勾配によって張られる部分空間内に存在するはずです。小さな「摂動された相補性」(4)は、解が境界付近にあるべきであるという条件と理解できる。あるいは、勾配の投影制約コンポーネントについて正常値はほぼゼロであるべきだ。
させて反復更新のための探索方向とする(4)と(5)にニュートン法を適用すると、次の式が得られます。:
どこはヘッセ行列です、は対角行列である、 そしては対角行列です。
(1)と(4)の条件により
各段階で実施する必要があります。これは適切な選択を行うことで実現できます。:
以下に、内点法によって効率的に解ける凸計画問題の特殊なケースをいくつか示す。[ 3 ]:第10節
次の形式の線形計画問題を考えてみましょう。 バリアを使用してパス追跡法を適用できます 機能これは、パラメータM = m (制約の数)と自己整合的です。したがって、パス追跡法に必要なニュートンステップ数は O( mn 2 ) であり、全体の実行時間複雑度は O( m 3/2 n 2 ) です。
次のような形式の二次制約付き二次計画問題が与えられた場合: ここで、すべての行列A jは正定値半行列です。バリアを使用してパス追跡法を適用できます。 機能は、パラメータM = mを持つ自己整合バリアです。ニュートン複雑度は O( (m+n)n 2 ) であり、総実行時間複雑度は O( m 1/2 (m+n) n 2 ) です。
次のような問題を考えてみましょう。 それぞれはベクトルで、各はスカラーであり、はL pノルムで、標準形式に変換した後、パラメータM = 4 mの自己一致バリアを使用したパス追跡法を適用できます。ニュートン複雑度は O( (m+n)n 2 ) であり、総実行時間複雑度は O( m 1/2 (m+n) n 2 ) です。
問題を考察する
パラメータ 2 k + mを持つ自己整合バリアが存在する。パス追跡法のニュートン複雑度は O( mk 2 + k 3 + n 3 ) であり、全体の複雑度は O(( k+m ) 1/2 [ mk 2 + k 3 + n 3 ]) である。
内点法は半正定値計画問題を解くために使用できる。[ 3 ]:第11節