如何在爬山算法中生成邻居?


9

爬山似乎是进行优化的强大工具。但是,如何生成解决方案的“邻居”总是让我感到困惑。

例如,我正在优化解决方案 (x1,x2,x3)。这里x1 在范围内 (0,0.1)x2 在范围内 (0,100)x3 在范围内 (0,1000000)。生成“邻居”的最佳方法是什么?我在这里不能真正选择“步长”,因为步长为1对x1,但对 x3

在爬山算法中生成“邻居”的最佳通用方法是什么?

Answers:


3

文森特的解决方案将帮助您克服第一个障碍。您可能仍然想知道如何选择步长,即使所有尺寸都具有相同范围。在这种情况下,它有助于理解函数的行为,因此您可以选择适当的值。另一种方法是根据梯度来自适应地设置步长(如果函数变化很大,则应略微踩一下)。

本文也可能有一些有趣的想法:关于具有自适应步长的爬山算法:寻求控制参数少的黑匣子优化算法


2

最简单(也是最安全)的方法是重新设置您的问题的参数,使所有参数都具有可比较的范围,例如[0,1]。

另外,您可以为每个参数使用不同的步长。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.