バリア関数

提供: testwiki
2025年3月11日 (火) 09:30時点におけるimported>Oyyo37による版 (解消済み仮リンクの除去)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

数学の一分野である、制約付き最適化問題におけるバリア関数(バリアかんすう、テンプレート:Lang-en-short、障壁関数テンプレート:Sfn、しょうへきかんすう)とは、ある点が実行可能領域の境界に近付くにつれて、その点での値が無限大へと近付くような連続関数のことを言う(Nocedal and Wright 1999)。制約違反に対する罰則項として用いられる。最も一般的な二種類のバリア関数は、逆バリア関数と対数バリア関数である。対数バリア関数は、主双対内点法との関連で、再び興味を集めるものとなった。

関数 f(x) を最適化するとき、ある定数 b に対して代わりに関数 f(x)+g(x,b) を最適化することによって、変数 x をつねに b よりも厳密に小とすることができる。ここで、g(x,b) はバリア関数である。

対数バリア関数

対数バリア関数 g(x,b) は、x<b の場合 log(bx) で、それ以外の場合では となる関数として定義される(但し 1 次元の場合。より高い次元の場合は下記参照)。この定義は本質的には、t が 0 に向かうにつれて log(t) が 負の無限大へと発散する事実に由来する。

この定義は x の極値(この場合、値は b より小さい)がより少ないものを好むように最適化され、一方で極値から離れた関数に対してはあまり影響を与えないような、関数への勾配を導入するものである。

対数バリア関数は、最適化される関数に依存して、計算的に高価値でない逆バリア関数よりも、好まれるものであるかも知れない。

高次元

高次元への拡張は、各次元が独立である限り、簡単なものである。bi よりも厳密に小さいように制限された各変数 ai に対して、log(bixi) を足せばよい。

形式的定義

次を最小化せよ:𝐜Tx

次を仮定する: 𝐚iTxbi,i=1,,m

次の、厳密な実行可能領域を仮定する:{𝐱|Ax<b}0

次の対数バリア関数を定義する Φ(x)={i=1mlog(biaiTx)for Ax<b+otherwise

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

テンプレート:Commons category テンプレート:Refbegin

テンプレート:Refend

テンプレート:最適化アルゴリズム テンプレート:Applied-math-stub