原文链接:
https://arxiv.org/abs/1710.10724arxiv.org算法实现:
首先,初始化参数
![9f81d97dc9181ac5757036b8d6f9392d.png](https://i-blog.csdnimg.cn/blog_migrate/283d260da33f89ce6c808031f17665ac.png)
在迭代求解过程中,首先完全随机地确定一个搜索方向:
然后沿着该方向及其反方向进行试探:
沿着较好的解的方向更新一定的步长:
这样一次搜索过程就完成了。然后更新下一次迭代使用的搜索范围和步长:
算法流程:
![7bc5c36d698e16a152ae60697acb2eb7.png](https://i-blog.csdnimg.cn/blog_migrate/0d2e10990a8621a14326b5cb5339fc2d.jpeg)
天牛须算法设计思想分析:
首先给出关于下降方向的定义和定理[1]:定义1 若存在
推论1
推论2 若
对比推论2和公式(4)(5),
基于local search思想的迭代过程:
将上述两个公式统一书写,就可以得到公式(3)。
天牛须算法的创新点:
在有理论保证的 local search过程中, 要保证步长
天牛须算法可能的改进点:
- 收敛速度慢:因为下降方向是随机选取的,可以定义一个更高效的搜索的方向。
- 局部搜索能力不足:尤其是在最开始的迭代过程中,不断跳出局部极小,但是并没有对这些局部极小区域进行充分探索,会遗漏发现更好的解的可能性。
参考
- ^马昌凤 . 《最优化方法及其matlab程序设计》