本文主要介紹在凸限制下的凸優化問題。我們將這個問題記為pr
oble
m(p)
,描述如下: mi
nf0(
x)滿足
如下條件
⎧⎩⎨f
i(x)
≤0,∀
i∈ig
i(x)
≤0,∀
i∈jg
i(x)
=0,∀
i∈k
其中f0:
rn→r
⋃ 是乙個凸函式,i,
j,k 是有限集,當然也可能是空集。fi
是凸的,非仿射函式,gi
是乙個仿射函式。
1.次微商,
次梯度
在解決這個問題之前我們需要次梯度,次微商的概念。令
f 為rn
上的凸函式,如果向量x^*滿足 f(
z)≥f
(x)+
x∗(z
−x),
∀z∈r
n 那麼x
∗ 為f 的次梯度,所有在
x處的次梯度稱為f 在
x的次微商,記為∂f
(x)
我們需要解釋一下次梯度的概念。如果乙個函式在某個點處是可微的,那麼它在這個點處存在唯一的切平面(原因是梯度的唯一),使得函式影象都是在這個切平面之上的,這裡的在切平面之上的意思就是 f(
z)≥f
(x)+
x∗(z
−x),
∀z∈r
n ,其中左面就是經過這個點的切平面。針對凸函式,有些點是不可微的,但是我們仍然可以通過這個點做乙個平面,使得這個函式的影象在這個平面之上。這樣的平面是不唯一的。我們把所有的符合這樣性質的平面的法向量收集起來,就是次梯度。
2.kkt條件
我們稱x¯
,(λi
)i∈i
,(μi
)i∈j
⋃k滿足pr
oble
m(p)
的kkt條
件 ,如果它們滿足如下四個條件: (1
)∀i∈
i,λi
≥0,f
i(x¯
)≤0,
λifi
(x¯)
=0(2
)∀i∈
j,μ≥
0,gi
(x¯)
≤0,μ
igi(
x¯)=
0(3)
∀i∈k
,gi(
x¯)=
0(4)
0∈∂f
0(x¯
)+∑i
∈iλ∂
fi(x
¯)+∑
i∈j⋃
kμi+
∂δc(
x¯)
kkt 條件的前三個是比較容易理解的,關鍵是第四個f0
,fi 不一定是可微的,所以我們用次微商,但是由於gi
是仿射函式,所以是可微的,用它的梯度表示。最後一項的作用保證x¯
在pro
blem
(p) 的定義域c內,δc
(x)=
0 如果x∈
c ,否則為無窮大。
如果x¯,
(λi)
i∈i,
(μi)
i∈j⋃
k 滿足kk
t 條件,那麼x¯
為pro
blem
(p) 的解。
3.problem(p)的拉格
朗日函式
根據kkt條件的最後一句話,我們只需找到滿足kkt
條件的x¯,
(λi)
i∈i,
(μi)
i∈j⋃
k 便可。接下來我們就用拉格朗日函式來解決這個問題。
(problem(p)的拉格朗日函式)l:
rp+×
rq+×
r(r−
q)×r
n←r⋃
,它的自變數為(λ
,μ,x
)=((
λi)i
∈i,(
μi)i
∈j,(
μi)i
∈k,x
) .l(
λ,μ,
x)=f
0(x)
+∑i∈
i(λi
fi)(
x)+∑
i∈jμ
gi(x
)+∑i
∈kμg
i(x)
我們稱(λ
¯,μ¯
,x¯)
為l的鞍點,如果∀(
λ,μ)
∈rp+
×rq+
×r(r
−q),
∀x∈r
n l(
λ,μ,
x¯)≤
l(λ¯
,μ¯,
x¯)≤
l(λ¯
,μ¯,
x)那麼我們給出拉格朗日函式和pr
oble
m(p)
之間的關係。如果(λ
¯,μ¯
,x¯)
為l的鞍點,那麼x¯
為pro
blem
(p) 的解,(λ
¯,μ¯
) 是kkt引數。
我們通常遇到的凸優化問題並非像pr
oble
m(p)
那樣,它的乙個變形如下,我們稱為pα
,β問題. mi
nf(x
)滿足如
下條件⎧
⎩⎨fi
(x)≥
αi,∀
i∈ig
i(x)
=βi,
∀i∈k
x∈rn
其中f 和f_i為凸函式,gi
為線性函式,fi
也可以是線性函式。
1.值函式
v(α,β)=
inf
其中α=(
αi)i
∈i∈r
p,β=
(βi)
i∈k∈
rr2.拉格朗
日函式
求解方法仍然是拉格朗日乘子法。令x¯
滿足fi
(x¯)
≥αi,
∀i∈i
,gi(
x¯)=
βi,∀i∈
k ,我們稱pα
,β在x
¯處的乘
子是(λ
,μ)∈
rp×r
r 滿足λ≥
0,λi
(fi(
x¯)−
αi)
=0,∀
i∈i
ψ(x)
=f(x
)+∑i
∈iλi
(f(x
)−αi
)+∑i
∈kμi
(gi(
x)−β
i)+δ
c(x)
在x¯處達到最小值。
總結為:如果x¯
滿足fi
(x¯)
≤αi,
gi(x
¯)=β
i ,如果pα
,β在x
¯ 有乙個拉格朗日乘子,那麼x¯
為pα,
β 的解.
同時,我們要明白如果x¯
為pα,
β的解,
那麼在x
¯處的乘
子等於−
∂v(α
,β)
凸優化 python解決凸優化問題
1 安裝cvx包 用pip安裝cvxopt 1.2.1 cp36 cp36m win amd64.whl和cvxpy 1.0.9 cp36 cp36m win amd64.whl 因為我是python3.6所以是cp36 cvxpy cvxopt 參考 2 遇到問題 error microsoft ...
《凸優化》筆記(一) 凸集
筆記是根據 convex optimization 寫的,對應第2章。2 凸集 2.1 凸集 convex sets 如果在集合cc中的任意兩點滿足 x1 1 x2 c x1 1 x2 c 其中0 10 1,則集合cc為凸集 2.2 重要例子 1 超平面與半空間 hyperplanes and ha...
凸優化1 什麼是凸優化問題
去年就想看一下優化和泛函變分相關的內容,但沒有空餘的排期,大部分學習時間花在了強化學習方面。今年,正好近期專案也有需要,凸優化提上了自學日程。全書700頁,計畫用半年的時間完成一刷。數學模型min iniz ef0 x su bjec ttof i x bi,i 1,2,m begin minini...