5.3.c 线搜索方法代码解析
category
type
status
slug
date
summary
tags
password
icon
欲说还休,欲说还休。却道天凉好个秋. — 辛弃疾
🏰代码及环境配置:请参考 环境配置和代码运行!
本节提供了 线搜索方法的代码测试:
5.3.c.1 优化问题
在中定义了一个3维空间的二次函数:
显然, 这是一个凸函数并且最小点在.
函数和函数导数如下:
5.3.c.2 Armijo准则代码解析
在
armijo(x, d)
函数中, 我们定义了基于Armijo准则的线搜索方法.输入决策变量x和下降方向d, 在
while
循环中, 不停的缩小5.3.c.3 Goldstein准则代码解析
在
goldstein(x, d)
中, 我们使用了二分的方式, 快速找到满足两个不等式要求的点.5.3.c.3 Wolfe准则代码解析
类似的, 在
wolfe(x, d)
中, 也使用了二分的方式, 快速找到满足两个不等式要求的点.5.3.c.4 不同线搜索方法测试
在
line_search_test()
中, 定义了初始点, 基于梯度下降法, 使用不同的线搜索方法求最优解. 测试结果如下:
- Armijo: Step 67:[-1.77436662e-10 -5.51975406e-06]
- Goldstein: Step 35:[-1.24015340e-05 -3.81469727e-06]
- Wolfe: Step 35:[-1.89816443e-05 -2.27373675e-06]
可以看到Armijo方法迭代次数最多, Wolfe在前几次迭代时, 路径比Goldstein更优.
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...