快速爬山算法,可以在接近最优

时间:2017-12-08 01:04:38

标签: algorithm machine-learning hill-climbing

我有一个来自x的浮点数[1, 500],它以y的概率1生成p的二进制x。我正在尝试找到可以生成1最多或p最高的x。我假设只有一个最大值。

是否有一种算法可以快速收敛到p x最高x,同时确保它在e.x实现后不会跳得太多。在最优x的0.1%范围内?具体地说,如果它接近< 0.1%的最佳[1, 3000]

我知道我们可以通过模拟退火做到这一点,但我不认为我应该硬编码温度,因为当p来自this或{{1}时,我需要使用相同的算法分配是不同的。

1 个答案:

答案 0 :(得分:2)

This paper提供智能爬山算法。这个想法基本上就是你把n个样本作为起点。该算法如下(它被简化为您的问题的一维):

  1. 在搜索空间中取n个采样点。在本文中,他使用线性超立方采样,因为假设纸张中的数据尺寸很大。在您的情况下,因为它是一维的,您可以像往常一样使用随机树苗。
  2. 对于每个样本点,从其当地社区收集点数"并找到最佳拟合二次曲线。从二次曲线中找出新的最大候选者。如果新的最大候选者的目标函数实际上高于前一个候选者,则将样本点更新为新的最大候选者。与较小的"当地社区重复此步骤"每次迭代的大小。
  3. 使用样本点中的最佳点
  4. 重新启动:重复步骤2和3,然后比较最大值。如果没有改善,请停止。如果有改善,请再次重复。