数理最適化で扱う問題のなかで,凸最適化問題は応用上よく使われること,また,ラグランジュ関数,ラグランジュ双対問題,最適性条件(KKT条件)は重要な概念であることはよく知られていると思います.それらを勉強するために読んだもののうち,Boyd and Vandenberghe(2004)の5章がとても好きなので,それをベースにして内容をまとめておくことにしました.準備として4章から用いた部分も少しあります.(凸最適化問題に限らない)主問題とそれに対するラグランジュ関数,ラグランジュ双対問題を設定し,KKT条件を導出していきます.
=================================================================================
[ 0. 準備 ]
標準的な最適化問題(optimization problem)を導入します. です.
(0.1)
を最適化問題(0.1)の定義域(domain)といいます, は関数の定義域です.点 が をみたすとき,点 は実行可能(feasible)といいます.少なくとも1点の実行可能な点が存在するとき問題(0.1)は実行可能といい,そうでないとき実行不可能(infeasible)といいます.すべての実行可能な点の集合を実行可能集合(feasible set)といいます. を目的関数(objective function)といいます. を不等式制約(inequality constraints), を不等式制約関数(inequality constraint functions), を等式制約(equality constraints), を等式制約関数(equality constraint functions)といいます.
問題(0.1)の最適値(optimal value)を と書くことにします.
(0.2)
が をとることを許容します.問題が実行不可能のとき,( という慣習にしたがい) です. となる実行可能な点 が存在するとき であり,このとき問題(0.1)は下に有界でない(unbounded below)といいます.
が実行可能な点で のとき を最適点(optimal point)といい,すべての最適点の集合 を最適集合(optimal set)といいます.
(0.3)
以下を明示しておきます.
(0.4)
(0.5)
ある集合 の2点を結ぶ線分が に含まれるとき,すなわち任意の と任意の について以下が成り立つとき, を凸集合(convex set)といいます.
(0.6)
関数 の定義域 が凸集合で任意の と任意の について以下が成り立つとき, を凸関数(convex function)といいます. が凸関数のとき, を凹関数(concave function)といいます.
(0.7)
凸最適化問題(convex optimization problem)とは,以下の最適化問題のことです.目的関数と不等式制約関数 は凸関数,等式制約関数はアフィン関数(affine function)です.
(0.8)
(あるいは と書く)
関数 が微分可能(すなわちその勾配 が の各点で存在し, は開集合)であると仮定します.このとき, が凸関数であることと, が凸集合かつ任意の について以下が成り立つことは同値になります.
(0.9)
この事実の証明は省略しますが,直感的な解釈はBoyd and Vandenberghe(2004) figure 3.2.にあります.(0.9)より, のときすべての について となります.すなわち微分可能な凸関数は勾配が となる点で最小値をとることがわかります.
[ 1. ラグランジュ関数とラグランジュ双対関数 ]
標準的な最適化問題を考えます.これを主問題(primal problem)ということにします.
(1.1)(先ほどの(0.1)に同じ)
定義域 は空集合でない,すなわち とします.(1.1)が凸最適化問題であることは仮定しません.(1.1)はつぎの問題として解釈することもできます.
(1.1)'
ラグランジュ双対性(Lagrangian duality)の基本的な考え方は(1.1)の不等式制約と等式制約を目的関数に組みいれることです.ラグランジュ関数(Lagrangian) を以下で定義します. をラグランジュ乗数(Lagrange multiplier)といいます.
(1.3)
ラグランジュ双対関数(Lagrange dual function)(あるいは単に双対関数)を定義します.
(1.4)
(1.3)が下に有界でないならば,(1.4)はその値に をとります.また定義より,(1.1)が凸最適化問題でなくてもラグランジュ双対関数(1.4)は凹関数です.そのことを示します.よく知られている性質(文献[2]Proposition 2.16.に証明があります) を使うと,ある について
であるので, はつねに凹関数です.
,すなわちベクトル の各要素 のとき,すべての について です.これと(1.1)'(1.4)から以下が成り立ち, のときラグランジュ双対関数 は最適値 の下界になっていることがわかります.
(1.5)
のとき,(1.5)は成り立ちますが意味を成しません. をみたすとき,すなわち のときラグランジュ双対関数は の(意味のある)下界となります.このとき は双対実行可能(dual feasible)といいます.
[ 2. ラグランジュ双対問題 ]
以下の問題をラグランジュ双対問題(Lagrange dual problem)といいます.
(2.1)
この問題は が凹関数で が凸集合であるので(主問題が凸最適化問題か否かにかかわらず)凸最適化問題です.(2.1)の最適値を ,そのときの を最適点 とします.以下を明示しておきます.
(2.2)
(1.5)もあわせて考えると は の最良の下界なので,(主問題が凸最適化問題か否かにかかわらず)以下が成り立ちます.
(2.3)
この性質を弱双対性(weak duality)といいます.主問題が下に有界でない()とき,双対実行可能でない() でなければなりません.逆に,ラグランジュ双対問題が上に有界でない()とき,主問題が実行不可能()でなければなりません.もし
(2.4)
が成り立つならば,強双対性(strong duality)が成り立つといいます. を最適双対ギャップ(optimal duality gap)といいます.
以下の事実が成り立ちます.
事実.
主問題(1.1)が凸最適化問題であるとき,すなわち(0.8)であるとき,つぎのスレーターの条件(Slater's condition)が成り立つならば,強双対性が成り立つ.
スレーターの条件
以下が成り立つような が存在する.(2.5)
証明.
省略.Boyd and Vandenberghe(2004) 5.3.2を参照.
は相対的内部(relative interior)であり,以下の過去記事にあります.
内部と相対的内部の違いについて考える - エンジニアを目指す浪人のブログ
凸最適化問題においてスレーターの条件が成り立つとき,(0.8)の不等式制約と等式制約をみたす実行可能な点 が存在します,すなわち です.したがって,凸最適化問題においてスレーターの条件が成り立つことは,強双対性が成り立つことだけでなく, を仮定すれば, となる双対実行可能な が存在することを意味しています.
[ 3. 最適性条件 ]
主問題(1.1)とラグランジュ双対問題(2.1)が実行可能と双対実行可能,すなわち となる最適点 が存在し,かつ強双対性が成り立つと仮定します.すると
(3.1)
(2.4)
(1.4)
の定義
(0.4)(0.5)(2.2)
となり,結果的に(3.1)の2つの不等号は等号となります.3行目の不等号が等号となるので, は を最小化することがわかります(他にも を最小化する が存在する場合があります).4行目の不等号が等号となるので,
(3.2)
となり,総和の各項は非正なので,以下を得ます.
(3.2)'
この条件を相補性条件(complementary slackness condition)といいます; これは(強双対性が成り立つとき)任意の と任意の について成り立ちます.相補性条件(3.2)'は以下2つの同値な条件(片方でよい)で表現することもできます.
(3.3)
(3.3)'
以下では, が微分可能(したがってそれらの定義域は開集合)であると仮定します.主問題(1.1)が凸最適化問題であることは(まだ)仮定しません.
主問題(1.1)とラグランジュ双対問題(2.1)が実行可能と双対実行可能,すなわち となる最適点 が存在し,かつ強双対性が成り立つと仮定します.このとき(3.1)の直後に述べたように は を最小化するので,(制約なし最小化問題についての)最適性の1次の必要条件(文献[3]THEOREM 1.1.1 に証明があります)よりその勾配は で ,すなわち以下でなければなりません.
(3.4)
ここまでの議論を整理します.主問題(1.1)とラグランジュ双対問題(2.1)が実行可能と双対実行可能,すなわち となる最適点 が存在すると仮定します.すると(0.4)(0.5)(2.2)は成り立ちます.強双対性が成り立つと仮定すると(3.2)'は必要条件です.強双対性が成り立つことと が微分可能であることを仮定すると(3.4)は必要条件です.したがって以下を得ます.
(3.5)
これをカルーシュ・キューン・タッカー条件(Karush-Kuhn-Tucker condition)(あるいはKKT条件)といいます.
まとめると,目的関数,不等式制約関数,等式制約関数が微分可能な任意の(凸最適化問題でなくてもよい)最適化問題は,実行可能かつ双対実行可能かつ強双対性が成り立つ(主問題とラグランジュ双対問題の最適点が存在する)ならばその最適点はKKT条件(3.5)をみたしていなければなりません.すなわちKKT条件は最適点 が存在し最適双対ギャップが であるための必要条件です.
主問題(1.1)が凸最適化問題のとき,すなわち(0.8)であるとき,KKT条件はそれをみたす点が最適点でありかつ最適双対ギャップが であるための十分条件です.いいかえると, が凸関数で がアフィン関数,さらに が以下のKKT条件
(3.6)
をみたす任意の点であるとき, は主問題とラグランジュ双対問題の最適点となり,最適双対ギャップは となります.このことを示します.
(3.6)が成り立っているとします.(3.6)の最初の2つの条件より主問題は で実行可能,すなわち となります.(3.6)の3つめの条件 と凸関数の非負加重和はまた凸関数であること(文献[4]Rule1に証明があります)より, は についての凸関数です; (3.6)の最後の条件はその勾配が で であることを意味しています,したがって(0.9)の直後に述べた事実により は で最小値をとります,すなわち を得ます.最終的に,
(3.7)
(1.3)
(3.6)の2つめの条件と4つめの条件
となり,最適双対ギャップは ,すなわち は最適値であることが得られます.
まとめると,目的関数,不等式制約関数,等式制約関数が微分可能な任意の凸最適化問題は,KKT条件をみたす任意の点 は強双対性をみたす最適点となります.
上で導出した十分条件は,凸最適化問題ではKKT条件をみたさない最適値が存在することを意味しています.(凸でなくてもよい)任意の最適化問題ではKKT条件は必要条件でした.凸最適化問題であるという条件を追加すると強双対性をみたす最適値が存在することがゆるい条件となり,KKT条件が(相対的に)きつい条件となり十分条件となるので,それをみたさない最適値が存在するということです.
使いやすくするために,先ほどの事実.を用います.目的関数,不等式制約関数,等式制約関数が微分可能なスレーターの条件をみたす凸最適化問題を考えます.スレーターの条件(2.5)は( を仮定すれば) となる双対実行可能な が存在することを意味しています.したがってKKT条件(3.5)(の導出と同様にこれ)を得ることができるので,このときKKT条件は必要条件で(も)あることがわかります.
まとめると,目的関数,不等式制約関数,等式制約関数が微分可能なスレーターの条件をみたす凸最適化問題は,KKT条件は最適点 が存在し最適双対ギャップが であるための必要十分条件です,いいかえると,最適双対ギャップが であり(必ず)KKT条件をみたす最適点が存在します.
=================================================================================
以上,Boyd and Vandenberghe(2004)の5章をベースにして,ラグランジュ関数,ラグランジュ双対問題,最適性条件(KKT条件)のあらすじをまとめました.
参考文献
[1] Boyd, S., and Vandenberghe, L. (2004), Convex Optimization, Cambridge University Press.
[2] University of California, Davis John K. Hunter先生のノート https://www.math.ucdavis.edu/~hunter/m125b/ch2.pdf
[3] University of Washington Jim Burke先生のノート https://sites.math.washington.edu/~burke/crs/516/notes/ch1.pdf
[4] Princeton University Amir Ali Ahmadi先生のノート http://www.princeton.edu/~amirali/Public/Teaching/ORF363_COS323/F14/ORF363_COS323_F14_Lec6.pdf
[5] Stanford University Stephen Boyd先生のノート https://stanford.edu/class/ee364a/lectures/duality.pdf
[6] Mathematics Stack Exchange http://math.stackexchange.com/questions/379543/kkt-and-slaters-condition
[7] Wikipedia Karush–Kuhn–Tucker conditionsのページ https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions