原始-对偶:写对偶问题
1.什么是原始对偶
字面理解:原始问题与对偶问题
假定原始问题为:
m
i
n
f
(
x
)
s
.
t
.
{
g
i
≤
0
,
i
=
1
,
.
.
.
,
m
h
i
=
0
,
i
=
1
,
.
.
.
,
p
\begin{matrix} min \ \ f(x) \\ s.t. \begin {cases} g_i\leq 0 ,i=1,...,m\\ h_i=0 ,i=1,...,p \\ \end{cases} \end{matrix}
min f(x)s.t.{gi≤0,i=1,...,mhi=0,i=1,...,p
其对应的拉格朗日函数:
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
=
1
n
λ
i
g
i
(
x
)
+
∑
i
=
1
p
λ
i
h
i
(
x
)
L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{n}\lambda_ig_i(x)+\sum_{i=1}^{p}\lambda_ih_i(x)
L(x,λ,μ)=f(x)+i=1∑nλigi(x)+i=1∑pλihi(x)
其实原始问题就对应于拉格朗日函数取最大后最小,即:
m
i
n
f
(
x
)
=
m
i
n
m
a
x
L
(
x
,
λ
,
μ
)
min\ \ f(x)=min\ \ max\ \ L(x,\lambda,\mu)
min f(x)=min max L(x,λ,μ)
那么其对偶问题其实就是对拉格朗日函数求最小后最大
m
a
x
θ
(
λ
,
μ
)
=
m
a
x
m
i
n
L
(
x
,
λ
,
μ
)
max\ \ \theta(\lambda,\mu)=max\ \ min\ \ L(x,\lambda,\mu)
max θ(λ,μ)=max min L(x,λ,μ)
2. 原始问题与对偶问题的关系
假设原问题的最优解为:
p
∗
=
f
(
x
∗
)
p^* \ \ = f(x^*)
p∗ =f(x∗)
对偶问题的最优解为:
d
∗
=
θ
(
λ
∗
,
μ
∗
)
d^*=\theta(\lambda^*,\mu^*)
d∗=θ(λ∗,μ∗)
则对偶问题的最优解是小于或等于原始问题的最优解的
d
∗
≤
p
∗
d^*\ \ \leq p^*
d∗ ≤p∗
什么时候取等号呢?当然是满足KKT条件的时候。具体原因可以参考以下文章:
SVM原问题与对偶问题 - 简书 (jianshu.com)-
写出原始问题的对偶问题
假如存在如下优化问题(为原始问题):
m
a
x
Z
=
−
2
x
1
+
3
x
2
{
s
.
t
.
x
1
+
x
2
≤
3
3
x
1
+
4
x
2
≥
10
x
1
,
x
2
≥
0
\begin{aligned} max\ \ Z=-2x_1+3x_2 \\ \begin{cases} s.t.\ \ x_1+x_2 \leq 3 \\ \ \ 3x_1+4x_2 \geq 10 \\ \ \ x_1,x_2 \geq 0 \end{cases} \end{aligned}
max Z=−2x1+3x2⎩⎪⎨⎪⎧s.t. x1+x2≤3 3x1+4x2≥10 x1,x2≥0
相应的写出其对偶问题,首先看到问题为最大化问题,所以我们可以相应的写成最小化的问题,把约束条件的整数写成对偶问题的系数,即:
m
i
n
H
=
3
y
1
+
10
y
2
min \ \ H= 3y_1+10y_2 \\
min H=3y1+10y2
以原始问题最大化为例,关于对偶问题的约束一和二:将对偶问题的约束一等于 原始问题的约束条件一的x1的系数加上约束条件二的x1的系数,并将目标函数x1的系数作为约束一的整数,同理对偶问题的约束二进行相同处理,关于大小于号,根据原始问题的未知数x的约束进行判断,可以看到原始问题都是大于等于0(最后一个约束),故这里都使用大于等于。
注意:如果原始问题的约束条件如果是等式,表示对应的对偶问题的未知数没有约束 。
例如:如果原始问题x2无约束,则对偶问题的约束条件2取等号
m
i
n
H
=
3
y
1
+
10
y
2
s
.
t
.
y
1
+
3
y
2
≥
−
2
y
1
+
4
y
2
≥
3
\begin{aligned} min \ \ H= 3y_1+10y_2 \\ s.t.\ \ y_1+3y_2 \geq -2 \\ \ \ y_1+4y_2 \geq 3 \\ \end{aligned}
min H=3y1+10y2s.t. y1+3y2≥−2 y1+4y2≥3
关于对偶问题的最后一个约束,观察原始问题的约束条件一和二,一个是大于等于,一个小于于等于(要与约束问题相反),即:
y
1
≥
0
,
y
2
≤
0
y_1 \geq 0,y_2 \leq 0
y1≥0,y2≤0
至此我们得到了对偶问题:
m
i
n
H
=
3
y
1
+
10
y
2
{
s
.
t
.
y
1
+
3
y
2
≥
−
2
y
1
+
4
y
2
≥
3
y
1
≥
0
,
y
2
≤
0
\begin{aligned} min \ \ H= 3y_1+10y_2 \\ \begin{cases} s.t.\ \ y_1+3y_2 \geq -2 \\ \ \ y_1+4y_2 \geq 3 \\ \ \ y_1 \geq 0,y_2 \leq 0 \end{cases} \end{aligned}
min H=3y1+10y2⎩⎪⎨⎪⎧s.t. y1+3y2≥−2 y1+4y2≥3 y1≥0,y2≤0
原始问题为最小化,对偶问题一般为最大化,反之亦然。同理原始问题为最小化的问题可以根据这个情况进行逆推。