最速下降方向:负梯度方向
梯度:沿各个坐标轴方向的偏导数组成的函数向量。
方向导数:梯度·某一方向的单位向量, ( ∇ f ( X ) ) T ⋅ P / ∥ P ∥ (\nabla f(X))^T\cdot P/\|P\| (∇f(X))T⋅P/∥P∥。
黑塞矩阵:二阶偏导数,按列排列。第一列,为 f 1 ( X ) f_1(X) f1(X)的偏导数;
雅各布矩阵:向量值函数的一阶偏导数,按行排列。第一行,为 f ⃗ ( X ) \vec f(X) f(X)的第一个分量的梯度。
典型函数的梯度和黑塞矩阵:
f ( X ) = X T A X + b T X ; ∇ f ( X ) = ( A + A T ) X + b ; ∇ 2 f ( X ) = A + A T ; f(X)=X^TAX+b^TX;\nabla f(X)=(A+A^T)X+b;\nabla^2f(X)=A+A^T; f(X)=XTAX+bTX;∇f(X)=(A+AT)X+b;∇2f(X)=A+AT;
f ( X ) = ∥ X ∥ 2 ; ∇ f ( X ) = 1 ∥ X ∥ 2 X ; ∇ 2 f ( X ) = 1 ∥ X ∥ 2 ( E n − X X T ∥ X ∥ 2 2 ) ; f(X)=\| X\|_2;\nabla f(X)=\frac{1}{\| X \|_2}X;\nabla^2f(X)=\frac{1}{\|X\|_2}(E_n-\frac{XX^T}{\|X\|_2^2}); f(X)=∥X∥2;∇f(X)=∥X∥21X;∇2f(X)=∥X∥21(En−∥X∥22XXT);
f ( X ) = exp ( g ( X ) + h ( X ) ) ; ∇ f ( X ) = exp ( g ( X ) + h ( X ) ) ⋅ ( ∇ g ( X ) + ∇ h ( X ) ) ; ∇ 2 f ( X ) = exp ( g ( X ) + h ( X ) ) ⋅ [ ( ∇ g ( X ) + ∇ h ( X ) ) ⋅ ( ∇ g ( X ) + ∇ h ( X ) ) T + ∇ 2 g ( X ) + ∇ 2 h ( X ) ] ; f(X)=\exp(g(X)+h(X));\nabla f(X)=\exp(g(X)+h(X))\cdot(\nabla g(X)+\nabla h(X)) ;\\\nabla^2f(X) = \exp(g(X)+h(X))\cdot[(\nabla g(X)+\nabla h(X))\cdot(\nabla g(X)+\nabla h(X))^T+\nabla^2g(X)+\nabla^2h(X)]; f(X)=exp(g(X)+h(X));∇f(X)=exp(g(X)+h(X))⋅(∇g(X)+∇h(X));∇2f(X)=exp(g(X)+h(X))⋅[(∇g(X)+∇h(X))⋅(∇g(X)+∇h(X))T+∇2g(X)+∇2h(X)];
无约束优化问题的最优性条件: X ⋆ X^⋆ X⋆驻点, ∇ f ( X ⋆ ) = 0 ∇f (X^⋆) = 0 ∇f(X⋆)=0
一阶条件:
二阶条件:
凸组合: Y = k 1 x 1 + k 2 x 2 + . . . + k n x n Y=k_1x_1+k_2x_2+...+k_nx_n Y=k1x1+k2x2+...+knxn,若 k 1 + k 2 + . . . + k n = 1 k_1+k_2+...+k_n=1 k1+k2+...+kn=1,则称Y是X的凸组合。
凸集:欧式空间的一个集合,其中任意两点之间的连线,仍然属于该集合,则称之为凸集。(等价定义:集合S中任意有限个点的凸组合仍属于该集合。)
多面集表示定理
凸函数:可行域为非空凸集+ f ( α X 1 + ( 1 − α ) X 2 ) ≤ α f ( X 1 ) + ( 1 − α ) f ( X 2 ) f(αX1 +(1−α)X2)≤αf(X1)+(1−α)f(X2) f(αX1+(1−α)X2)≤αf(X1)+(1−α)f(X2)
极点:非空凸集S, x ∈ S x \in S x∈S,如果x不能表示为任意两个不同点的凸组合,那么称x为极点。(二维平面上, { x ∈ R 2 ∣ x < = r } \{x\in R^2|x<=r\} {x∈R2∣x<=r},圆周上的点均为极点)
极方向:对于一个闭凸集S,如果方向d不能表示任意两方向的正的线性组合,则称为极方向。对于集合S中的任意一个点,沿该向量d引出的射线均包含于S中,则称d为集合S的一个方向。有界集没有方向。
保凸运算:f(X)是凸函数,g(X)是凸函数
凸规划:目标函数和约束条件都是凸的。
| 无约束优化问题的最优性条件 | 凸函数的判定 | 凸规划的最优性条件 | |
|---|---|---|---|
| 一阶充分 | f(Y)>=f(X)+gT(X)(Y-X) | X*是稳定点,则f(X*)是局部极小值 | |
| 一阶必要 | 极小点在驻点处取得 | f如果是凸函数,则上式成立(取不等号,f是凸函数;取等号,f是严格凸函数) | 若X*是局部极小点,则X*是稳定点。 |
| 二阶充分 | H(X*)正定,且X*驻点,则严格局部极小点 | H(X)半正定,则f是凸函数;H(X)正定,则f是严格凸函数。 | |
| 二阶必要 | f是严格凸函数或者是凸函数,则H(X)半正定。且X是在整个凸集S上均半正定。 |
线性规划:凸规划的一种,线性函数也是一种凸函数。
标准形式:
m
i
n
:
C
T
X
s
.
t
.
:
A
X
=
b
X
≥
0
min :C^TX\\ s.t. :AX=b\\ X\ge 0
min:CTXs.t.:AX=bX≥0
单纯形法:
1. 最优解:所有判别数均小于0时。
2. 无有界最有解条件:判别数大于0,所在列
P
j
<
0
⃗
P_j <\vec 0
Pj<0。
3. 判别数:
σ
j
=
C
B
T
B
−
1
P
j
−
c
j
\sigma_j =C^T_BB^{−1}P_j − c_j
σj=CBTB−1Pj−cj,B为基,j=1,2,……,n;通常B会人为设计为E。
4. 进基列:选择判别数最大的列。使得迭代更加有效,即每次迭代函数值尽可能多的下降。
5. 进基变量:选
min
i
b
i
a
i
k
∣
a
i
k
>
0
\min_i{\frac{bi}{a_{ik}}|a_{ik}>0}
miniaikbi∣aik>0。确保初等行变换不会将b变为负值。
6. 转轴:初等行变换不改变解空间。
判别数: σ j = C B T B − 1 P j − c j \sigma_j =C^T_BB^{−1}P_j − c_j σj=CBTB−1Pj−cj
A = ( B , N ) , C = ( C B , C N ) T X = ( X B , X N ) T ≥ 0 A X = b = B X B + N X N X 0 = ( X B 0 , 0 ) T , A X 0 = b = B X B 0 , f ( X 0 ) = C B T X B 0 = C B T B − 1 b f ( X ) = C B T X B + C N T X N = C B T B − 1 ( b − N X N ) + C N T X N = f ( X 0 ) − ( C B T B − 1 N − C N T ) X N f ( X ) − f ( X 0 ) ≥ 0 , C B T B − 1 N − C N T ≤ 0 A = (B,N),C=(C_B,C_N)^T\\ X=(X_B,X_N)^T\ge0\\ AX=b=BX_B+NX_N\\ X^0=(X_B^0,0)^T,AX^0=b=BX_B^0,f(X^0)=C_B^TX_B^0=C_B^TB^{-1}b\\ f(X)=C_B^TX_B+C_N^TX_N=C_B^TB^{-1}(b-NX_N)+C_N^TX_N=f(X^0)-(C_B^TB^{-1}N-C_N^T)X_N\\ f(X)-f(X^0)\ge0 ,C_B^TB^{-1}N-C_N^T\le0\\ A=(B,N),C=(CB,CN)TX=(XB,XN)T≥0AX=b=BXB+NXNX0=(XB0,0)T,AX0=b=BXB0,f(X0)=CBTXB0=CBTB−1bf(X)=CBTXB+CNTXN=CBTB−1(b−NXN)+CNTXN=f(X0)−(CBTB−1N−CNT)XNf(X)−f(X0)≥0,CBTB−1N−CNT≤0
B是基,N是非基
X0是最优解,是基本可行解,非基变量为0。
两阶段法:出发点是原线性规划A中,不一定直接存在单位矩阵,如果使用非单位矩阵作为基,在计算判别数时,需要矩阵求逆,这是我们不希望出现的,因此引入人工变量直接构造单位矩阵。实际上,更严重的一个问题是,不能直接确定基可行解。当选定一组线性无关的列向量构成B,B-1b不一定大于0,那么只能重新选择一组线性无关的列向量,去尝试求得一个可行的基本解。
实际上,此方法,和初等行变换求矩阵逆有相似之处
辅助线性规划:引入人工变量,构造单位矩阵,并更换目标函数为y1+y2+…+ym;
求解辅助线性规划,如最优解(Y0,X0),对应的函数值>0,则原规划无可行解;若=0,则将(0,X0)作为原线性规划的初始基本可行解。
如果Y*不等于0,则原线性规划无可行解。
值得注意的是,在第一阶段使用单纯形方法求解的时候,基变量有两种情况:
下题用两阶段法就比较简单:
大M法:出发点是两阶段法,引入和人工变量,并更换了目标函数,大M法则只需要添加惩罚项,并且原线性规划最优解,就在辅助线性规划中。
辅助线性规划:引入人工变量,并加入惩罚项 M e T X a Me^TXa MeTXa,其中M是一个充分大的数。
求解辅助线性规划,最有解为(X0,Xa),若eTXa=0,则X0为最优解;若eTXa不等于0,则原线性规划无解。
人工变量不可再进基。
下题用大M法就比直接使用单纯形方法简单:
修正单纯形算法:只需要计算一次B-1,之后可通过E_kl矩阵快速计算下一个B-1。
对偶线性规划问题:
| 原规划P | 甲 | 乙 | 约束 |
|---|---|---|---|
| A | 5 | 2 | 50 |
| B | 7 | 9 | 30 |
| C | 8 | 6 | 80 |
| 利润 | 100 | 150 |
m
a
x
:
100
x
1
+
150
x
2
s
.
t
.
:
5
x
1
+
2
x
2
≤
50
7
x
1
+
9
x
2
≤
30
8
x
1
+
6
x
2
≤
80
x
i
≥
0
,
i
=
1
,
2
该公司出租ABC三套设备,A可以租50个小时,B可以租30个小时,C可以租80个小时,设计ABC三套设备的每小时租金,现在制定保底方案,至少要求不能比自己生成甲乙赚利润少。同时别人租走设备,不知道用来做什么,假设不小于自家生产甲乙产生的利润(因为你不知道别人租走设备究竟能产生多少价值,那么只能假设不会小于为100、150,不然别人为啥会来租你的设备)。
| A | B | C | 利润约束 | |
|---|---|---|---|---|
| 甲 | 5 | 7 | 8 | 100 |
| 乙 | 2 | 9 | 6 | 150 |
| 使用时长约束 | 50 | 30 | 80 |
m
i
n
:
50
y
1
+
30
y
2
+
80
y
3
s
.
t
.
:
5
y
1
+
7
y
2
+
8
y
3
≥
100
2
y
1
+
9
y
2
+
6
y
3
≥
150
y
i
≥
0
,
i
=
1
,
2
,
3
对偶规则
| 原规划(对偶规划)(P) | 对偶规划(原规划)(D) |
|---|---|
| min | max |
| 目标中系数 | 约束条件右端项 |
| 约束条件右端项 | 目标中系数 |
| 约束条件≥ | 变量≥ |
| 约束条件≤ | 变量≤ |
| 约束条件= | 变量无约束 |
| 变量≥ | 约束条件≤ |
| 变量≤ | 约束条件≥ |
| 变量无约束 | 约束条件= |
| 原规划(对偶规划)(P) | 对偶规划(原规划)(D) |
|---|---|
| max | min |
| 目标中系数 | 约束条件右端项 |
| 约束条件右端项 | 目标中系数 |
| 约束条件≥ | 变量≤ |
| 约束条件≤ | 变量≥ |
| 约束条件= | 变量无约束 |
| 变量≥ | 约束条件≥ |
| 变量≤ | 约束条件≤ |
| 变量无约束 | 约束条件= |
对偶定理:
§(D)有无界解,对应的对偶规划无可行解。
§与对偶(D)都有最优解的充要条件是它们都有可行解;§和(D)中有一个有最优解,另一个必有最优解,且二者最优值相等。
§的最优解为X*,对应的最优基为B,则(D)的最优解为W0:
C B T B − 1 = W 0 T C_B^TB^{-1}=W_0^T CBTB−1=W0T
设X是(P)的任一基本解,X对应于基B,W= ( C B T B − 1 ) T (C_B^TB^{-1})^T (CBTB−1)T,若又与W分别是(P)与(D)的可行解,则X与W分别是(P)与(D)的最优解。
X的判别数全部非正,等价于W= ( C B T B − 1 ) T (C_B^TB^{-1})^T (CBTB−1)T是(D)的可行解。
对偶单纯形方法:
单纯形方法的思想是,保持b>=0,来调节判别数,最后判别数全部小于等于0的时候得到最优解。
对偶单纯形方法的思想是,保持判别数全部小于等于0(这样的点称为正则解,对应的基称为正则基),来调节b,最后b全部大于等于0的时候得到最优解。
从以上分析来看,转轴操作的时候,选择bk<0的行,主元为akl,要求 min { σ j a k j ∣ a k j < 0 } \min\{\frac{\sigma_j}{akj}|akj<0\} min{akjσj∣akj<0}
比如下题,使用对偶单纯形方法就比较简便:
m
i
x
:
2
x
1
+
3
x
2
+
x
3
s
.
t
.
:
x
1
+
4
x
2
+
2
x
3
≥
8
3
x
1
+
2
x
2
≥
6
x
i
≥
0
,
i
=
1
,
2
,
3
由于改写成标准形式时,需要减去剩余变量,因此无直接的单位矩阵,因此就将增广矩阵取反,即存在现成的单位矩阵,此时b为[-8,-6]T,sigma全为负,调节b即可。