京都大学 情報学研究科 数理工学専攻 2012年8月実施 オペレーションズ・リサーチ
Author
思齐塾, 祭音Myyura
Description
f:Rn→R , gj:Rn→R ( j=1,...,m ) を連続的微分可能な凸関数とする. 次の非線形計画問題を考える.
P: Minimize f(x)
subject to gj(x)≤0 ( j=1,...,m )
この問題に対して, 以下のカルーシュ・キューン・タッカー(Karush-Kuhn-Tucker)条件を満たすベクトル x∗∈Rn と μ∗∈Rm とが存在するとする.
∇f(x∗)+j=1∑mμj∗∇gj(x∗)=0
gj(x∗)≤0,μj∗≥0,μj∗gj(x∗)=0(j=1,...,m)
ただし, μj∗ は μ∗ の第 j 成分を表す.
さらに, 関数 ℓ:Rn→R を以下のように定義する.
ℓ(x)=f(x)+j=1∑mμj∗gj(x)
以下の問いに答えよ.
(i) 任意の x,y∈Rn に対して次の不等式が成り立つことを示せ.
ℓ(x)−ℓ(y)≥∇ℓ(y)T(x−y)
ただし, T はベクトルの転置を表す.
(ii) 任意の x∈Rn に対して次の不等式が成り立つことを示せ.
ℓ(x)≥ℓ(x∗)
(iii) 問(ii)の不等式を用いて, x∗ が問題 P の大域的最適解であることを示せ.
(iv) n=2,m=2 とする. さらに, 凸関数 f,g1,g2 を以下のように定義する.
f(x)=21(x1−1)2+21(x2−1)2,g1(x)=−x1,g2(x)=x1+x2−1
ただし, x=(x1,x2)T である. このとき, 問題 P のカルーシュ・キューン・タッカー条件を満たすベクトル x∗∈R2 と μ∗∈R2 を求めよ.
题目描述
设 f:Rn→R 及 gj:Rn→R (j=1,…,m) 均为连续可微凸函数。考虑非线性规划
P:xmins.t.f(x)gj(x)≤0(j=1,…,m).
假设存在 x∗∈Rn、μ∗∈Rm 满足该问题的 Karush–Kuhn–Tucker(KKT)条件
∇f(x∗)+j=1∑mμj∗∇gj(x∗)=0,
gj(x∗)≤0,μj∗≥0,μj∗gj(x∗)=0(j=1,…,m),
其中 μj∗ 是 μ∗ 的第 j 个分量。定义
ℓ(x)=f(x)+j=1∑mμj∗gj(x).
完成以下各问,其中上标 T 表示转置:
-
证明对任意 x,y∈Rn,
ℓ(x)−ℓ(y)≥∇ℓ(y)T(x−y).
-
证明对任意 x∈Rn,
ℓ(x)≥ℓ(x∗).
-
利用第 2 问的不等式证明 x∗ 是问题 P 的全局最优解。
-
令 n=m=2,并取
f(x)=21(x1−1)2+21(x2−1)2,g1(x)=−x1,g2(x)=x1+x2−1,
其中 x=(x1,x2)T。求满足问题 P 的 KKT 条件的 x∗∈R2 与 μ∗∈R2。
Kai
(i) ℓ(x)=f(x)+∑j=1mμj∗gj(x) より
ℓ(x)−ℓ(y)=f(x)−f(y)+j=1∑mμj∗(gj(x)−gj(y))
f と gj は凸関数なので、
f(x)−f(y)≥∇f(y)T(x−y)
gj(x)−gj(y)≥∇gj(y)T(x−y)
したがって、
ℓ(x)−ℓ(y)≥∇f(y)T(x−y)+j=1∑mμj∗∇gj(y)T(x−y)=(∇f(y)+j=1∑mμj∗∇gj(y))T(x−y)=∇ℓ(y)T(x−y)
(ii) x∗ は KKT 条件を満たすので
∇f(x∗)+j=1∑mμj∗∇gj(x∗)=0
gj(x∗)≤0,μj∗≥0,μj∗gj(x∗)=0(j=1,...,m)
(i) より、
ℓ(x)−ℓ(x∗)≥∇ℓ(x∗)T(x−x∗)
ここで、 ∇ℓ(x∗)=∇f(x∗)+∑j=1mμj∗∇gj(x∗)=0 なので、
ℓ(x)−ℓ(x∗)≥0
ℓ(x)≥ℓ(x∗)
(iii) 問題 P の任意の実行可能解 x に対して、 ℓ(x)=f(x)+∑j=1mμj∗gj(x)≥ℓ(x∗) 。
gj(x)≤0 なので、 μj∗gj(x)≤0 。したがって
ℓ(x)=f(x)+j=1∑mμj∗gj(x)≤f(x)
ℓ(x∗)=f(x∗)+j=1∑mμj∗gj(x∗)=f(x∗)
よって、 f(x)≥ℓ(x)≥ℓ(x∗)=f(x∗) となり、 x∗ は問題Pの大域的最適解。
(iv) KKT 条件は
⎩⎨⎧x1−1−μ1+μ2=0,x2−1+μ2=0,x1≥0,x1+x2≤1,μ1,μ2≥0,μ1x1=0,μ2(x1+x2−1)=0.
制約 x1+x2≤1 が狭義なら μ2=0 となり、停留条件から x2=1 となって狭義性に矛盾する。従って
x1+x2=1.
もし x1=0 なら x2=1 であり、第2停留条件から μ2=0 、第1停留条件から μ1=−1 となって不可能である。よって x1>0 なので μ1=0 である。停留条件と x1+x2=1 を解くと
x1=x2=21,μ2=21.
従って求める KKT ベクトルは
x∗=(1/21/2),μ∗=(01/2).