投影梯度法
投影梯度法求解约束问题

投影梯度法求解约束问题1.引言在优化问题中,当我们需要解决一个带约束条件的最优化问题时,投影梯度法(P ro je cte d Gr ad ie nt De sc ent)是一种常用的解决方法。
投影梯度法通过将迭代更新的方向投影到可行域上,从而保证每次更新都满足约束条件。
2.算法原理2.1梯度下降法梯度下降法是一种迭代优化算法,其目标是最小化一个函数。
该算法通过计算目标函数的梯度来确定下降的方向,并沿着梯度的负方向更新参数,直至达到最小值。
2.2投影操作在投影梯度法中,我们需要对更新的方向进行投影操作,以满足约束条件。
投影操作将迭代更新的方向限制在可行域内,确保每次更新都不会违背约束条件。
2.3投影梯度法投影梯度法结合了梯度下降法和投影操作。
算法的步骤如下:1.初始化参数$\m ath b f{x}$;2.计算目标函数的梯度$\na bl af(\mat h bf{x})$;3.更新方向为梯度的负方向$-\n ab la f(\ma th bf{x})$;4.进行投影操作,将更新的方向投影到可行域上;5.更新参数$\ma th bf{x}$;6.重复步骤2-5,直至满足停止条件。
3.实例应用为了更好地理解投影梯度法的应用,我们以一个具体的优化问题为例进行说明。
假设我们需要最小化目标函数$f(\ma th bf{x})=x_1^2+x_2^2$,并且有约束条件$x_1+x_2=1$和$x_1\ge q0$。
我们可以使用投影梯度法来解决这个优化问题。
具体步骤如下:1.初始化参数$\m ath b f{x}^0=(0,0)$;2.计算目标函数的梯度$\na bl af(\ma th bf{x}^k)=(2x_1^k,2x_2^k)$;3.更新方向为梯度的负方向$-\n ab la f(\ma th bf{x}^k)=(-2x_1^k,-2x_2^k)$;4.进行投影操作,将更新的方向投影到可行域上,即满足约束$x_1+x_2=1$和$x_1\ge q0$;5.更新参数$\ma th bf{x}^{k+1}$;6.判断是否满足停止条件,如果满足则停止,否则回到步骤2。
python中投影梯度法

python中投影梯度法投影梯度法是一种强有力的最优化算法,它能够快速有效地求解非凸优化问题。
在Python中,我们可以使用精确的数学工具来实现投影梯度法,从而提高优化的速度和精度,使其成为机器学习中非常有用的工具。
首先,让我们来了解一下投影梯度法的原理。
基本上,投影梯度法是一种迭代算法,它的思路是每一步都是找一个使损失函数最小的新解决方案,它和梯度下降法的差别在于它不是以梯度为核心,而是把优化问题式投影到更容易解决的子空间中去解决,这里可以更容易检测到极值和最优解。
实际上,投影梯度法的实现可以简化为以下步骤:(1)初始化搜索点,表示变量值的初始解。
(2)计算残差并评估迭代结果。
(3)计算梯度。
(4)投影差值到子空间中。
(5)通过梯度下降法迭代寻找更合适的新解。
(6)重复(2)(3)(4)(5)步,直到满足收敛要求。
以上就是投影梯度法的基本思想,下面我们就开始看看如何在Python中实现这一算法。
使用Python中的scipy库,我们可以完美地实现投影梯度法。
scipy提供了用于快速正确计算投影梯度法的minimize函数,它接受一个标准的函数及其参数,并返回一个OptimizeResult对象,其中包含了最终的函数最大值或最小值,以及所求解的参数。
如果我们需要解决一个多变量函数的优化问题,那么scipy中的minimize函数是一个非常有用的工具,它可以很容易地将投影梯度法应用到函数上,求解最佳解。
我们可以使用下面的代码实现一个简单的投影梯度法,以最小化一个函数:```import scipy.optimize as opt#义函数def function(x):return x*x + 10*np.sin(x)#用scipy.optimize.minimize函数res = opt.minimize(function, x0=0, method=CG#印最终结果print(res.x)```以上代码的输出就是函数的最小值出口位置,即x的最优值,如果我们需要使用投影梯度法实现更加复杂的函数优化,只需要做一些适当的改变就可以了。
rosen梯度投影法例题

rosen梯度投影法例题梯度投影法是一种优化算法,用于求解无约束优化问题。
该算法基于梯度下降法,但在每次迭代时会将梯度投影到一个凸集合上,以确保解在该凸集合内。
Rosen梯度投影法是该算法的一种变体,在求解非线性无约束优化问题时表现出色。
本文将介绍Rosen梯度投影法,并给出一个例题加以说明。
一、Rosen梯度投影法Rosen梯度投影法是由Howard Rosen在1960年提出的。
该算法的基本思想是在每次迭代时,将梯度向量投影到一个半径为R的球体上,以确保解在该球体内。
具体来说,设当前迭代点为x(k),梯度为g(k),则Rosen梯度投影法的迭代公式为:x(k+1) = x(k) - α(k)P[g(k)]其中,α(k)为步长,P[g(k)]为g(k)在球体上的投影。
P[g(k)]的计算方式如下:P[g(k)] = R*g(k)/||g(k)||, if ||g(k)|| > R= g(k), if ||g(k)|| ≤ R其中,||g(k)||为g(k)的模长,R为球体半径。
当||g(k)|| > R 时,P[g(k)]表示将g(k)缩放到半径为R的球体上;当||g(k)|| ≤ R 时,P[g(k)]表示g(k)已经在球体内部,无需缩放。
在实际应用中,步长α(k)可以通过线搜索或其他方法确定。
另外,球体半径R的选择也很重要,通常需要根据问题的特点进行调整。
二、例题说明考虑以下非线性无约束优化问题:min f(x) = 100(x2 - x1^2)^2 + (1 - x1)^2该问题的解析解为x* = (1, 1),f(x*) = 0。
我们将使用Rosen梯度投影法求解该问题。
首先,计算f(x)的梯度为:g(x) = [400x1(x1^2 - x2) + 2(x1 - 1), -200(x1^2 - x2)] 然后,选择初始点x(0) = (-1.2, 1)和步长α(k) = 0.001。
梯度投影法

梯度投影法的基本思想为: 当迭代点在可行域内部时,取该点 处的负梯皮方向为可行下降方向;当迭代点在可行域边界上 时,取该点处负梯度方向在可行域边界上的投影产生一个可行 下降方向(见图9.2.1).
基本概念 投影矩阵
梯度投影法
为投影矩阵, p 称为 x 在 V 上的投影.
由行满秩矩阵产生投影矩阵 则
VM { x | x M T y, y Rm }, (1) MT的列向量生成的子空间为:
(2) M的零空间为: VN=
(3) VN VM .
基本概念 由行满秩矩阵产生投影矩阵
梯度投影法
幂等对称阵
性质
梯度投影法
基本原理 可行下降方向的构造—定理9.2.2和定理9.2.3
如果M为空,即迭代点在可行域内部时,负梯度方向 为可行下降方向; 如果M非空,即迭代点在某些约束的边界上时,该点处的负梯度 在 M 的零空间上的投影为可行下降方向.
提出问题
梯度投影法
目标函数的最速下降方向是负梯度方向.但是,在有约束 情况下,沿最速下降方向移动可能导致非可行点. 措施:对负梯度进行投影,使得目标函数值不仅改进, 同时又保持迭代点的可行性.
梯度投影法(Gradient Projection Method)
简介
梯度投影法
梯度投影法是1960年由Rosen提出,并由Goldfarb和Lapidus 于1968年加以改进.
基本原理
梯度投影法
定理9.2.3
x是K-T点; 或可以构造新的投影矩阵以便求得可行下降方向.
梯度投影法
基本原理 一维搜索
同Zoutendijk法中的一维搜索,即
算法步骤 Step1 Step2 Step3 Step4 Step5
《梯度投影法》课件

投影向量的更新
投影向量的更新是梯度投影法中的重要步骤,用 于逐步逼近最优解。
更新投影向量的方法包括梯度下降法、牛顿法等 。
投影向量的更新过程需要满足一定的收敛条件, 以确保算法的收敛性和稳定性。
PART 03
梯度投影法的实现步骤
REPORTING
初始化参数
参数设置
在开始时,需要设定一个初始点,以 及一个初始的投影方向。
。
对大规模问题效率较低
对于大规模优化问题,梯度投影法的 计算复杂度较高,可能需要较长时间
才能得到结果。
未来研究方向与展望
要点一
改进算法
针对梯度投影法的局限性,研究改进算法以提高其性能和 适用范围。
要点二
扩展应用领域
将梯度投影法应用于更多类型的问题,如非线性规划、多 目标优化等。
未来研究方向与展望
《梯度投影法》ppt 课件
REPORTING
• 引言 • 梯度投影法的基本原理 • 梯度投影法的实现步骤 • 梯度投影法的优化策略 • 梯度投影法的应用实例 • 结论与展望
目录
PART 01
引言
REPORTING
梯度投影法的定义
01
梯度投影法是一种优化算法,通过迭代的方式寻找函数的最小 值点。
梯度投影法的优势与局限性
• 稳定性:梯度投影法在迭代过程 中表现出良好的稳定性,不易陷 入局部最优。
梯度投影法的优势与局限性
对初始点敏感
梯度投影法对初始点的选择较为敏感 ,如果初始点选择不当,可能导致算
法收敛到非全局最优解。
对约束条件要求高
该方法要求约束条件严格满足,否则 可能导致算法收敛失败或得到无效解
通用性
梯度投影法适用于各种类 型的函数优化问题,具有 广泛的适用范围。
可行方向法梯度投影法

Topkis – Veinott 全约束可行方向法 搜索方向
迭代步长
梯度投影法
g (x)
2
2
0 2
f (x)
g (x)
1
1
0 1
f (x) g (x) g (x)
1
1
2
2
0, 0
1
2
g2 (x) 0
P
2
g2 (x)
f (x)
x* g1(x)
g1(x) 0
g (x)
2
2
0 2
f (x)
g (x)
1
1
0 1
g (x) 1
f (x) g (x) g (x)
1
1
2
2
0, 0
1
1
f (x) g2 (x) 0 g2 (x)
P
2
P
g1 (x)
g1(x) 0 f (x)
解析搜索法:梯度投影法
f (x(k1) ) f (x(k ) ) T f (x(k ) )dk l
f (x(k ) ) T f (x(k ) ) dk f (x(k ) ) T f (x(k ) ) x dk
l
x l
解析搜索法:梯度投影法
解析搜索法:梯度投影法
解析搜索法:梯度投影法
搜索方向需要满足旳条件:
T f (x(k ) )xk 0 Axk b Exk 0
目旳函数下降旳条件: 约束条件:
可行方向法
f (x(k1) ) f (x(k ) ) T f (x(k ) )xk f (x(k1) ) f (x(k ) ) T f (x(k ) )dk
二次规划
f (x(k1) ) f (x(k ) ) T f (x(k ) )xk 1 TxkT f (x(k ) )xk 2
投影梯度计算法
投影梯度计算法投影梯度计算法1. 简介投影梯度计算法是一种优化算法,用于解决凸优化问题。
它通过在每次迭代中计算投影梯度并更新解向量,逐步逼近最优解。
该方法常用于处理约束条件下的优化问题,其优点在于能够在较短时间内找到接近最优解的解向量。
2. 基本原理投影梯度计算法基于梯度信息和投影操作来更新解向量。
在每次迭代中,我们首先计算当前解向量的梯度,然后将其投影到可行解空间,从而获得一个新的解向量。
具体来说,我们假设有一个凸优化问题:minimize f(x)subject to g(x) <= 0其中,f(x)是目标函数,g(x)是约束条件。
在投影梯度计算法中,我们定义梯度向量g(x)为目标函数f(x)的梯度加上约束条件的梯度的线性组合。
我们通过投影操作将解向量更新为一个满足约束条件的新向量。
3. 算法步骤投影梯度计算法的算法步骤如下:1) 初始化解向量x0。
2) 计算当前解向量x的梯度g(x)。
3) 计算新的解向量x' = x - λg(x),其中λ是一个步长参数。
4) 对于新的解向量x',将其投影到可行解空间,得到最终的解向量x。
5) 如果终止条件不满足,则返回步骤2;否则算法结束。
4. 优点和应用投影梯度计算法具有以下优点:- 算法过程简单,易于实现。
- 可以处理约束条件下的优化问题,求解凸优化问题效果良好。
- 通过每次迭代逼近最优解,适用于大规模问题。
投影梯度计算法在许多领域中有广泛的应用,如机器学习、图像处理和操作研究等。
投影梯度计算法可以用于线性规划、支持向量机、稀疏编码和最小二乘问题的求解。
5. 总结投影梯度计算法是一种用于解决凸优化问题的有效算法。
通过在每次迭代中计算投影梯度并更新解向量,该算法能够在较短时间内找到接近最优解的解向量。
投影梯度计算法简单易懂,适用于处理约束条件下的优化问题,并在许多领域中有广泛的应用。
值得一提的是,投影梯度计算法的性能高度依赖于步长参数的选择,因此在实际应用中需要进行合适的调参。
用投影梯度法解不等式约束的线性规划市公开课金奖市赛课一等奖课件
并且,B1 b NYˆ 0(相应约束是不起作用约束) 第11页
由于 f (Y ) CBT Z CNTY ,因此简约梯度为
r1
f
rnm
Yˆ
f Zˆ,Yˆ N T BT
Z
f Zˆ,Yˆ
Y
N T BTCB CN
(检查数)
m
f (Y ) ri yi i 1
定义 1, 2 Rk 下列:
1 Z Rk zi CiT D, i 1, 2,
2 Z Rk zi 0
, k, D Rn
CiT D 0, i 1,2,, k 无解 1 2 为空集
(凸集分离定理)
WTZ
b, Z 1,
W T Z b, Z 2
k
k
wiCiT D wi zi
首先考虑第三种情况 Wˆ 0
此时 Xˆ 已经满足K-T条件,下面分析这样得到 是什么解?
第3页
原问题
min CT X s.t. PiT X bi , 1 i l
对偶问题
l
max bi yi i 1 l
s.t. Pi yi C i 1
yi 0, 1 i l
Wˆ
现在已知
Wˆ
A1C 0
用投影梯度法解不等式约束线性规划
第1页
考虑不等式约束线性规划 min CT X s.t. PiT X bi , 1 i l
其中 X Rn ,l n , 假设已有可行解 Xˆ ,满足
PiT Xˆ bi , 1 i n, PiT Xˆ bi , n 1 i l
A P1, P2 ,, Pn 是列满秩矩阵
第5页
再考虑第二种情况
Wˆ
A1C
wˆ1
wˆ n
投影梯度下降法
投影梯度下降法投影梯度下降法(Projected Gradient Descent,PGD)是一种优化算法,通常用于求解有约束的凸优化问题。
相对于普通的梯度下降法,PGD 在更新参数时会先进行一个投影操作,将参数投影到一个约束集合中,然后再跟据梯度方向进行下降。
这个约束集合可以是一些常见的形式,比如凸锥、多边形等等。
PGD 可以看做是对梯度下降法的一种改进,它在每个迭代步骤中都会进行一次投影操作,这能够帮助算法更好的搜索最优解,特别是在约束集合比较复杂的情况下。
从它的名字中可以看出,PGD 算法包含两个主要的步骤:投影和梯度下降。
1. 投影在每一步迭代中,首先需要将当前参数向量 $\theta$ 投影到约束集合中。
我们可以用如下的方式获得投影的向量 $y$:$$y = \arg\min_{x \in K} \left\Vert x - \theta \right\Vert_2$$其中 $K$ 是我们需要将 $\theta$ 投影到的约束集合,通常它是一个凸集。
这个式子相当于在约束集合中找到一个离 $\theta$ 最近的点 $y$,然后将当前参数更新为$y$。
对于某些约束集合(比如球面),我们可以直接找到投影点 $y$ 的解析式。
但是大多数情况下,这个最小化问题是无法直接求解的。
在这种情况下,我们可以使用一个迭代算法,比如梯度投影法(Projected Gradient),去逼近最优解。
梯度投影法的通用形式为:其中 $\alpha_t$ 是迭代步长,$\nabla f(x^{(t)})$ 是当前位置 $x^{(t)}$ 的梯度,$\text{Proj}_K$ 是一个投影函数,将向量投影到 $K$ 属于的凸集内。
2. 梯度下降在进行了投影操作之后,我们需要再根据梯度的方向来更新参数。
具体的更新方法和普通的梯度下降法几乎相同:需要注意的是,由于在 PGD 中我们首先进行了投影操作,所以更新的参数$\theta$ 一定是在约束集合中的。
投影梯度法求解约束问题
投影梯度法求解约束问题1. 引言约束优化问题是现实生活中广泛存在的问题,涉及到许多领域,如经济学、工程学和运筹学等。
为了解决这类问题,我们需要采用一定的数学方法和算法。
本文将介绍投影梯度法这一求解约束问题的方法。
2. 约束优化问题约束优化问题可以被描述为以下形式:minimize f(x)subject to g i(x)≤0, i=1,2,…,mℎi(x)=0, i=1,2,…,p其中,f(x)是目标函数,g i(x)≤0是不等式约束条件,ℎi(x)=0是等式约束条件。
3. 投影梯度法投影梯度法是一种常用的求解约束优化问题的方法。
它通过梯度的投影来保证每一步迭代产生的解都满足约束条件。
3.1 梯度下降法在介绍投影梯度法之前,我们先来回顾一下梯度下降法。
梯度下降法是一种常用的无约束优化算法,通过迭代的方式逐步减小目标函数的值。
其迭代更新规则如下:x k+1=x k−αk∇f(x k)其中,x k是第k次迭代的解,αk是步长,∇f(x k)是目标函数在点x k处的梯度。
3.2 投影梯度法的思想梯度下降法只考虑了目标函数的优化,而没有考虑约束条件。
投影梯度法通过引入投影操作,保证每一步迭代的解都满足约束条件。
具体而言,投影梯度法的迭代更新规则如下:x k+1=P(x k−αk∇f(x k))其中,P(x)表示将点x投影到约束域上的操作。
3.3 投影操作投影操作的目的是将点x投影到满足约束条件的点。
对于不等式约束g i(x)≤0,投影操作可以通过将x移动到满足约束条件的最近点来实现:∥y−x∥2 s.t. g i(y)≤0, i=1,2,…,mP(x)=argminy对于等式约束ℎi(x)=0,投影操作可以通过将x移动到满足约束条件的最近点来实现:P(x)=argmin∥y−x∥2 s.t. ℎi(y)=0, i=1,2,…,py3.4 算法流程根据上述思路,我们可以得到投影梯度法的算法流程如下:1.初始化解x0;2.对于每一次迭代:–计算目标函数的梯度∇f(x k);–更新解x k+1=P(x k−αk∇f(x k));–如果满足停止条件,则输出解x k并终止迭代;–否则,返回步骤2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由 PM 是投影矩阵知, PMT = PM , PM2 = PM ,因此 PM = PMT PM ,于是
∇f ( xk )T sk = −∇f ( xk )T PM ∇f ( xk ) = −∇f ( xk )T PMT PM ∇f ( xk ) = − PM ∇f ( xk ) 2 < 0
由此知 sk 是 f 在 xk 处的下降方向。
⎟ ⎠
。
PM = 0 , s1 = −PM ∇f ( x1) = 0 。
u1
=
⎛ ⎜ ⎝
u2 u3
⎞ ⎟ ⎠
=
−(MM
T
)−1
M
∇f
(
x1)
=
(0,
−2)T
,
u3
<0 , 所 以 令
M = A11 = (1
1) 。 PM
=
1⎛ 1
2
⎜ ⎝
−1
−1⎞
1
⎟ ⎠
,
s1
=
− PM
∇f
( x1)
=
⎛ ⎜ ⎝
1⎞ −1⎟⎠
再由(5.6)、 Msk = 0 和 ∇f ( xk )T sk < 0 得
ai0T sk = −[∇f ( xk )T sk − wT Msk ] ui0 = − ∇f ( xk )T sk ui0 < 0 再根据(5.7)得知 sk 满足(5.1)。由此知 sk 是在(LNP1)在 xk 处的可行下降方向。证毕。
矩阵,我们通过投影矩阵 PM 将 −∇f ( xk ) 投影到 LM 上由此构造可行下降方向。
1
定理 5.1 设 xk ∈ S 是 S 的正则点,M 和 PM 如上定义, −PM ∇f ( xk ) ≠ 0 ,则 sk = −PM ∇f ( xk ) 是
(LNP1)在 xk 处的可行下降方向。
证明:显然 sk ≠ 0 。
4
k=2: ∇f
(x2)
=
⎛ −1⎞
⎜ ⎝
−1⎟⎠
,M
=
A11
=
(1
⎛2
1) ,
A12
=
⎜ ⎜
−1
⎜⎝ 0
−1⎞
⎛1⎞
0
⎟ ⎟
,
b11
=
(2)
,
b12
=⎜ ⎜0Fra bibliotek⎟ ⎟。
−1⎟⎠
⎜⎝ 0⎟⎠
PM
=
1⎛ 1
2
⎜ ⎝
−1
−1⎞
1
⎟ ⎠
,
s2 = −PM ∇f ( x2 ) = 0
。
u = u2 = −(MM T )−1 M ∇f ( x2 ) = 1 > 0 , 因 此
x2 = (1/ 2, 3 / 2)T 为 K-T 点。由于原问题为凸规划,因此 x* = x2 = (1/ 2, 3 / 2)T 为最优解。
注 5.2 当用 Rosen 投影梯度法求解(LNP1)时,其中 ε =0,若产生有限序列 x1,", xK 时,xK 是(LNP1)
的 K-T 点,但是若产生无限序列 x1, x2 ,",则不能保证{xk }的聚点是(LNP1)的 K-T 点。
证明:(1)由(5.4)知 ∇f ( xk ) + A1T1u + A2T v = 0 ,再由 u ≥ 0 得 xk 是(LNP1)的 K-T 点。
(2)记 M
中与 ui0
对应的行为
aT i0
,并且不妨设 u
=
⎛ ⎜
ui0
⎝u
⎞ ⎟ ,A11 ⎠
=
⎛ ⎜⎜⎝
aT i0
A11
⎞ ⎟⎟⎠
,w
=
⎛ ⎜
ui0
*§6 Wolfe 既约梯度法
本节考虑含标准线性约束的非线性规划问题
min f ( x) s.t. Ax = b
x ≥0
(LNP2)
其 中 f ( x) 是 可 微 函 数 , A ∈ Rm×n , A 行 满 秩 , b ∈ Rm , m<n 。 记 (LNP2) 的 可 行 域
(xk
)
。
若 u ≥ 0 则停,否则令 ui0 = min{ui} ,转 4。
4. 重新构造搜索方向。令 M 是从 M 中去掉与 ui0 对应的行后得到的矩阵,求 sk = −PM ∇f ( xk ) 。
5. 确定步长。令 λmax
=
min
⎧⎪ ⎨ ⎪⎩
(b12 (
− A12 xk A12 sk )i
> 0⎫⎪⎬ 。 ⎪⎭
下面给出 Rosen 投影梯度法的具体步骤。
算法 5.1:Rosen 投影梯度法
1. 初始步。给出初始点 x0 ∈ S ,精度参数 ε >0。令 k=0。
2. 构造搜索方向。对
A1 和 b1 进行分块,使
A1
=
⎛ ⎜
⎝
A11 A12
⎞ ⎟ ⎠
,
b1
=
⎛ ⎜ ⎝
b11 b12
⎞ ⎟ ⎠
5.2 Rosen 投影梯度法
利用投影矩阵得到可行下降方向 sk 后,同 Zoutendijk 可行方向法一样,需求解一维搜索问题
min
0≤λ ≤λmax
f (xk
+ λ sk ) ,其中 λmax
=
min
⎧⎪ ⎨ ⎪⎩
(b12 (
− A12 xk A12 sk )i
)i
∀i : ( A12sk )i
⎛ −1
⎜ ⎝
0
0⎞ −1⎠⎟
,
A12
=
⎛2
⎜ ⎝
1
−1⎞
1
⎟ ⎠
,
b11
=
⎛0⎞
⎜ ⎝
0
⎟ ⎠
,
b12
=
⎛1⎞
⎜ ⎝
2
⎟ ⎠
。
PM
= 0 ,s0
= −PM ∇f ( x0 ) = 0 。
u
=
⎛ ⎜ ⎝
u3 u4
⎞ ⎟ ⎠
=
−(
MM
T
)−1
M
∇f
(
x
0
)
=
∇f
(
x
0
)
=
(−2,
−4)T
,u4 <0,
§5 Rosen 投影梯度法
本节同样考虑含一般线性约束的非线性规划问题
min f ( x)
s.t. A1x ≤ b1 A2 x = b2
(LNP1)
其中 f ( x) 是连续可微函数,矩阵 A1 ∈ Rm×n , A2 ∈ R p×n ,向量 b1 ∈ Rm , b2 ∈ R p 。记(LNP1)的可行域
PA x =0。
设
xk
∈S
是当前迭代点,同
Zoutendijk
法一样,对
A1 和 b1 进行分块,使
A1
=
⎛ ⎜ ⎝
A11 A12
⎞ ⎟ ⎠
,
b1
=
⎛ ⎜ ⎝
b11 b12
⎞ ⎟ ⎠
,
A11 ∈ Rl1×n , b11 ∈ Rl1 ,其中
A11 xk = b1, A12 xk < b12 s ≠ 0 是 S 在 xk 处的可行方向当且仅当 s 满足条件
负梯度在可行域边界上的投影作为搜索方向。无论何种情况,所构造的方向都是可行下降方向。然后在
可行域内沿该方向进行最优一维搜索得到新的迭代点。
5.1 负梯度在边界上的投影
先介绍投影矩阵的概念及其构造。
定义 5.1 设矩阵 P ∈ Rn×n 。若 PT = P, P2 = P ,则称 P 为投影矩阵。
设 矩 阵 A ∈ Rl×n 行 满 秩 , 记 A 的 零 空 间 为 LA = {x ∈ Rn | Ax =0} , LA 的 正 交 空 间 为 LA 丄 ={AT y | y ∈ Rl} 。对 x ∈ Rn 进行正交分解 x = x1 + x2 ,使 x1 ∈ LA , x2 ∈ LA 丄,则 x1 = PA x ,其中 PA = I − AT ( AAT )−1 A 。则 PA 是投影矩阵,称为 A 的投影矩阵。当 x ∈ LA 时, PA x = x , x ∈ LA 丄时,
3
λk
=
min
⎧⎨− ⎩
∇f ( xk )T skT Hsk
sk
,
λmax
⎫ ⎬
⎭
例 5.1 用 Rosen 投影梯度法求解下列问题:
取 x0 = (0, 0)T 。
min f ( x) = x12 + x22 − 2x1 − 4x2 + 6 s.t. 2x1 − x2 ≤ 1
x1 + x2 ≤ 2 x1, x2 ≥ 0
所以令
M = A11 = (−1
0)
。
PM
=
⎛ ⎜ ⎝
0 0
0⎞
1
⎟ ⎠
,
s0
=
−PM ∇f
(x0)
=
⎛0⎞
⎜ ⎝
4
⎟ ⎠
,取
s0
=
⎛0⎞
⎜ ⎝
1
⎟ ⎠
。
b12 − A12 x0 = (1, 2)T
,
A12s0 = (−1,1)T
,
λmax
=
min
⎧2⎫
⎨ ⎩
1
⎬ ⎭
=
2
。
− ∇f ( x0 )T s0 s0T Hs0
(5.3)
我们记
其中 u ∈ Rl1 , v ∈ R p 。由(5.3),
w
=