最优化复习要点
1. 线性规划
a. 标准形式
i. 必要时需要引入松弛变量
ii. 退化
B−1b>0 基变量的取值全为正(右边系数全正)
b. 单纯形法
i. 典式
ii. 单纯形表
初始基可行解
初始单纯形表:
- 约束条件和右边 不变
- 目标函数系数取反 −c
非基变量入基(选取最合适的 xk )
遵循两个原则:最大、最小
- 最大:即单纯形表最后一行, maxzj−cj
- 最小:最大对应的列, minb¯yik (必须是正数!!!)
初等行变换
iii. 大M法
2个重点
添加松弛变量后再引入人工变量
单纯形表最后一行: cBB−1pj−cj
式中 cB 为初始基变量对应系数,一般含M
注意 :最后一个数不是0!!!
c. 对偶原理
- 要先化成GLP一般形式
原问题min | 对偶问题max |
---|---|
目标函数系数 | 右端系数 |
右端系数 | 目标函数系数 |
约束矩阵 | 系数矩阵转置 |
第
i
个约束为 | 第
i
个变量 |
第
i
个约束为 | 第 i 个变量无约束 |
第 | 第
j
个约束为 |
第 j 个变量无约束 | 第 |
* 互补松弛性质
利用互补松弛条件验证是否是最优解:
- 假设是最优解,利用性质获得DGLP满足互补条件的解并验证是否可行,若可行,则为最优解
2. 无约束问题
a. 最优性条件
一阶导(梯度) ∇f(xk)=0 ;
二阶导(Hessian) ∇2f(x(k)) 正定。
b. 下降算法
i. 最速下降法
ii. 牛顿法
(二级收敛、二次终止性)
- 已知迭代点 x(k)
- 求初始梯度、Hessian矩阵,并求 ∇2f(x(k))−1
- 计算 x(k+1)=x(k)−∇2f(x(k))−1⋅∇f(x(k))
iii. 阻尼Newton法
iv. 共轭梯度法
v. 拟Newton法(变尺度法/秩
2
矫正/DFP算法)
拟牛顿条件
p(k)=Hk+1q(k)
式中:
-
p(k)=x(k+1)−x(k)
,
q(k)=∇f(x(k+1)−∇f(x(k)))
-
Hk+1≈∇2f(x(k))−1
DFP算法——秩
2
矫正
迭代初点x(k)
计算梯度
gk=∇f(x(k))
,置
H1=In
(单位矩阵)
选取可行下降方向
d(k)=−Hkgk
求步长
λk
令
x(k+1)=x(k)+λkd(k)
- 最优步长:
λk=−∇f(xk)TddkT∇2f(xk)dk
(一般情况为二次函数,
H=∇2f(x)
是固定的,只需要计算一次即可)
可接受步长:$$
检验重复
拟牛顿条件
式中:
- p(k)=x(k+1)−x(k) , q(k)=∇f(x(k+1)−∇f(x(k)))
- Hk+1≈∇2f(x(k))−1
DFP算法——秩 2 矫正
迭代初点
x(k) 计算梯度 gk=∇f(x(k)) ,置 H1=In (单位矩阵)
选取可行下降方向 d(k)=−Hkgk
求步长 λk
令 x(k+1)=x(k)+λkd(k)
- 最优步长: λk=−∇f(xk)TddkT∇2f(xk)dk (一般情况为二次函数, H=∇2f(x) 是固定的,只需要计算一次即可)
可接受步长:$$
检验重复
3. 约束非线性规划
a. 可行下降法
初始点 xk
计算 ∇f(xk) ,分解起作用约束与非其作用约束
[A1A2]and[b1b2]求解最优步长 dk (判断?)
min∇f(xk)Tdks.t.A1dk⩾0−1⩽dj⩽1
计算 d^=A2dk , b^=b2−A2xkλmax=min{b^id^i} or ∞ 如果 f(x) 是严格凸二次函数,最优步长 λk=min{−zk(dk)THdk , λmax}
计算 λk (带进 f(xk+λkdk) 直接计算,一般都是二次函数)
迭代得 xk+1