信赖域算法研究Rosenbrock函数

使用optimtool库的trust_region模块

优化算法研究Rosenbrock函数,信赖域算法通过限制每次迭代的步长范围(信赖域半径)来保证优化的稳定性。它在每一步求解一个子问题,即在信赖域内寻找目标函数的近似模型(如二次模型)的最优解。信赖域半径根据模型与实际函数的匹配程度动态调整。

信赖域算法对非凸问题具有较好的鲁棒性,尤其适用于目标函数在局部近似不准确的情况。它不需要保证Hessian矩阵正定,但计算复杂度较高,需反复求解子问题。

import optimtool.unconstrain as ou
from optimtool.base import sp
x = sp.symbols("x1:5")
f = 100 * (x[1] - x[0]**2)**2 + \
    (1 - x[0])**2 + \
    100 * (x[3] - x[2]**2)**2 + \
    (1 - x[2])**2
x_0 = (0, 0, 0, 0)
ou.trust_region.steihaug_CG(f, x, x_0, verbose=True, draw=True)

Steihaug-CG方法的优势

Steihaug-CG方法作为信赖域方法中的子问题求解器,结合了共轭梯度法(CG)和信赖域框架的优点,具有以下显著优势:

高效处理大规模问题
传统牛顿法需要计算和存储完整的Hessian矩阵,而Steihaug-CG方法仅需矩阵-向量乘积操作,适用于高维问题。通过迭代逼近解,避免了直接分解矩阵的计算开销。

自动满足信赖域约束
在CG迭代过程中,若搜索方向导致步长超出信赖域边界,方法会直接截断至边界点。这种机制无需额外投影步骤,天然保证迭代点始终位于信赖域内。

灵活处理不定Hessian矩阵
当Hessian矩阵非正定时,标准CG可能失效。Steihaug-CG通过检测负曲率方向并沿边界终止,将问题转化为边界解,从而处理非凸问题。

理论收敛性保障
方法在有限步内终止,且生成的解满足全局收敛条件。结合信赖域框架的适应性调整,可保证算法收敛到一阶或二阶临界点。

低存储需求
仅需存储当前迭代点、梯度和搜索方向等少量向量,内存占用为O(n)级别,特别适合内存受限的大规模优化问题。

与其他方法的对比

相较于精确求解信赖域子问题的算法(如奇异值分解),Steihaug-CG以较低计算成本提供近似解,平衡了精度与效率。相比截断牛顿法,其信赖域约束处理更为自然,无需复杂的线搜索策略。

信赖域的输出结果

(0, 0, 0, 0)    2.0     0
(0, 0, 0, 0)    2.0     1
(0, 0, 0, 0)    2.0     2
[0.1767767 0.        0.1767767 0.       ]       1.5507057188134525      3
[0.29032474 0.0713953  0.29032474 0.0713953 ]   1.0405246607673213      4
[0.48863385 0.19943654 0.48863385 0.19943654]   0.8323054782555606      5
[0.54631561 0.29513356 0.54631561 0.29513356]   0.4138730825145653      6
[0.54631561 0.29513356 0.54631561 0.29513356]   0.4138730825145653      7
[0.54631561 0.29513356 0.54631561 0.29513356]   0.4138730825145653      8
[0.69530513 0.46204246 0.69530513 0.46204246]   0.27732784674527516     9
[0.75299771 0.56367711 0.75299771 0.56367711]   0.1242359583180978      10
[0.75299771 0.56367711 0.75299771 0.56367711]   0.1242359583180978      11
[0.89072142 0.77435432 0.89072142 0.77435432]   0.09631433535109457     12
[0.91345905 0.83389044 0.91345905 0.83389044]   0.015032128686181399    13
[0.99189022 0.97769476 0.99189022 0.97769476]   0.007699598816246098    14
[0.99552642 0.99105963 0.99552642 0.99105963]   4.006080480702178e-05   15
[0.9999882 0.9999565 0.9999882 0.9999565]       7.95400879592257e-08    16
[0.99999995 0.99999991 0.99999995 0.99999991]   4.3824634686890425e-15  17

##信赖域方法的可视化
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeeGLMath

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值