了解随机登山者

时间:2011-03-26 13:09:31

标签: java stochastic hill-climbing

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

PSUEDO-CODE - 来自如何解决它:现代启发式 - Zbugniew Michalewicz,David Fogel

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

1 个答案:

答案 0 :(得分:1)

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