1

我一直试图了解随机爬山者一段时间,但没有任何运气。我浏览了一本关于启发式的书并得到了一个伪代码。我不明白概率函数应该是什么样子。我知道新的解决方案是随机抽取的,并基于某种概率被接受,我不知道如何编程这个概率。谢谢

伪代码 - 从如何解决它:现代启发式 - Zbugniew Michalewicz,大卫福格尔

procedure stochastic hill-climber
begin
     t <- 0
     select a current string vc at random
     evaluate vc
     repeat
          select the string vn from the neighbourhood of vc
          select vn with probability 1/(1+(e^(evaluation(vc) - evaluation(vn))/T))
          t <- t + 1
     until t=MAX
end
4

1 回答 1

1

这是遗传算法的一种形式,具有称为评估的适应度函数。它选择当前和邻居之间具有较大正差的邻居。它有一个 sigmoid 激活函数 1/(1 + e^(something)),这意味着它将映射到区间 (0,1)。我相信 T 是随着时间的推移减小差异的大小,以使答案最终收敛到一个极限。t 只是一个计数器,代表算法中的一代。该算法将在 t 达到最大生成时立即结束。希望这可以帮助。

于 2011-03-26T13:33:59.643 回答