制約付き最適化という数学の分野では、バリア関数は、引数が最適化問題の実行可能領域の境界に近づくにつれて値が無限大に増加する連続関数です。 [ 1 ] [ 2 ]このような関数は、不等式制約を扱いやすい目的関数のペナルティ項に置き換えるために使用されます。バリア関数は、解が実行可能領域の内部に留まるように強制するペナルティ関数であるため、内部ペナルティ関数とも呼ばれます。
最も一般的なバリア関数は、逆バリア関数と対数バリア関数の2種類である。対数バリア関数への関心が再び高まったのは、それらが主双対内点法と関連しているためである。
次の制約付き最適化問題を考えてみましょう。
ここで、bはある定数である。不等式制約を取り除きたい場合は、問題を次のように再定式化できる。
この問題は最初の問題と同等です。不等式は解消されますが、ペナルティ関数c、したがって目的関数f ( x ) + c ( x )が不連続になるという問題が生じ、微積分を用いて解くことができなくなります。
ここで、バリア関数は、x が下からbに近づくにつれて無限大に発散する、cに対するgの連続近似です。このような関数を使用して、新しい最適化問題が定式化されます。
ここでμ > 0は自由パラメータである。この問題は元の問題と等価ではないが、μがゼロに近づくにつれて、より良い近似となる。[ 3 ]
対数バリア関数の場合、は次のように定義される。いつそしてそれ以外の場合(1次元の場合。高次元の定義については下記を参照)。これは基本的に次の事実に基づいています。負の無限大に近づく0に近づく。
これにより、最適化される関数に勾配が導入され、極端でない値が優先されます。(この場合、以下の値)一方で、これらの極端な値から離れた値では、機能への影響は比較的小さい。
最適化対象の関数によっては、計算コストの低い逆バリア関数よりも対数バリア関数の方が好ましい場合がある。
各次元が独立している限り、高次元への拡張は簡単です。各変数についてこれは厳密に以下に制限されるべきである、 追加。
最小化する対象
厳密に実行可能であると仮定します。
対数障壁を定義する