简单爬坡算法中的问题示例

时间:2019-03-28 10:59:50

标签: algorithm artificial-intelligence hill-climbing

有哪些示例会导致“简单爬山”遇到局部最大值,山脊和小巷以及高原问题等问题?我尝试搜索:

  • Link one:这给出了一个简单的很好的例子,说明了在块排列中简单爬坡卡在局部最大值的问题。但是,它没有显示步骤。
  • Link two:给出了在SHC中寻找解决方案的步骤。但是,我不明白当全部只有四个块并且其中四个放错了位置时,h(1)如何变为-6,因此仅产生-4。它也没有显示SHC遇到的问题。
  • Link three:我了解达到状态“ g”的概念如何使您的算法达到局部最大值并陷入困境。但是,状态是什么还很模棱两可,我不知道状态'g'和最终状态是指什么。

从我阅读的讲义中,我得到了TSP问题。该图是具有四个节点的完整图:A,B,C和D。我们同时使用了简单爬坡和最陡峭爬坡来解决问题。用于解决该问题的启发式值是每个状态的总距离。我们可以通过使用6种不同的组合(第一个字母<->第二个,第二个<->第三个等)切换字符“ ABCD”的位置来探索其他相邻状态。但是,在给出的示例中,它没有显示确切的“卡在局部最大值”是什么。它既没有显示出山脊和小巷问题,也没有显示出高原问题。

有人可以给我一个例子,说明我们如何解决这些问题以及这些问题在示例中的实际含义(我理解每个问题的定义:herehere)?作为参考,以下是我提到的TSP问题的图像: TSP Map

1 个答案:

答案 0 :(得分:1)

当您进行简单的爬坡时,Ridge沿着上升方向行走时,效率会很低,因为它将沿x或y方向行走,即遵循图中的线条。导致曲折运动。

要达到此状态,给定一个随机的起始位置,该算法会评估4个位置(x + 1,y)(x-1,y)(x,y + 1)(x,y-1)(对于步骤1)和图片最高。因此它将开始向山脊移动。

让我们用上一张图片说明这种行为。给定起点为原点(0,0),阶跃为1。表面上的细黑线相交为单位点((0,1),(0,2),...,(1, 0),...)通过该功能拍摄图像。该算法选择那些点,但只选择那些直接相邻的点(因为它沿轴移动)。 This是它要走的路。 (原谅我糟糕的绘画技巧)。

在链接2中,要计算启发式函数,请评估每个块,如果该块放错了位置(也就是不在堆上的正确索引处),则其下的每个块均加-1,否则,其下的每个块均加1。 +1。 h(1)= -3 -2 -1(A放错了位置,在它下面有3个块,所以-3,对于B来说是相同的,但在2个块之内,所以-2,C -1和D在它下面没有块,所以不加任何东西)

对于平稳问题,如果到达平坦的表面或几乎平坦,则算法将找不到更好的位置。

希望我能理解你的问题。